summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.github/CODEOWNERS3
-rw-r--r--.github/workflows/editorconfig.yml22
-rw-r--r--.github/workflows/manual-nixos.yml28
-rw-r--r--.github/workflows/manual-nixpkgs.yml28
-rw-r--r--.github/workflows/rebase-staging.yml60
-rw-r--r--COPYING2
-rw-r--r--doc/builders/fetchers.chapter.md70
-rw-r--r--doc/builders/fetchers.xml150
-rw-r--r--doc/builders/packages/cataclysm-dda.section.md2
-rw-r--r--doc/builders/packages/index.xml4
-rw-r--r--doc/builders/packages/locales.section.md5
-rw-r--r--doc/builders/packages/locales.xml13
-rw-r--r--doc/builders/packages/steam.section.md69
-rw-r--r--doc/builders/packages/steam.xml125
-rw-r--r--doc/builders/special.xml4
-rw-r--r--doc/builders/special/fhs-environments.section.md45
-rw-r--r--doc/builders/special/fhs-environments.xml122
-rw-r--r--doc/builders/special/mkshell.section.md15
-rw-r--r--doc/builders/special/mkshell.xml24
-rw-r--r--doc/builders/trivial-builders.chapter.md52
-rw-r--r--doc/builders/trivial-builders.xml90
-rw-r--r--doc/languages-frameworks/agda.section.md7
-rw-r--r--doc/languages-frameworks/android.section.md7
-rw-r--r--doc/languages-frameworks/crystal.section.md2
-rw-r--r--doc/languages-frameworks/emscripten.section.md2
-rw-r--r--doc/languages-frameworks/haskell.section.md8
-rw-r--r--doc/languages-frameworks/idris.section.md2
-rw-r--r--doc/languages-frameworks/ios.section.md7
-rw-r--r--doc/languages-frameworks/lua.section.md8
-rw-r--r--doc/languages-frameworks/maven.section.md8
-rw-r--r--doc/languages-frameworks/node.section.md4
-rw-r--r--doc/languages-frameworks/php.section.md18
-rw-r--r--doc/languages-frameworks/python.section.md2
-rw-r--r--doc/languages-frameworks/r.section.md3
-rw-r--r--doc/languages-frameworks/rust.section.md43
-rw-r--r--doc/languages-frameworks/texlive.section.md1
-rw-r--r--doc/languages-frameworks/titanium.section.md7
-rw-r--r--doc/languages-frameworks/vim.section.md7
-rw-r--r--doc/manual.xml4
-rw-r--r--doc/preface.chapter.md8
-rw-r--r--lib/licenses.nix66
-rw-r--r--lib/systems/architectures.nix44
-rw-r--r--lib/systems/default.nix4
-rw-r--r--lib/systems/platforms.nix5
-rw-r--r--maintainers/maintainer-list.nix170
-rw-r--r--maintainers/scripts/check-hydra-by-maintainer.nix67
-rwxr-xr-xmaintainers/scripts/fetch-kde-qt.sh9
-rw-r--r--nixos/doc/manual/configuration/profiles/hardened.xml10
-rw-r--r--nixos/doc/manual/installation/installing-virtualbox-guest.xml2
-rw-r--r--nixos/doc/manual/release-notes/rl-2003.xml2
-rw-r--r--nixos/doc/manual/release-notes/rl-2009.xml6
-rw-r--r--nixos/doc/manual/release-notes/rl-2103.xml82
-rw-r--r--nixos/lib/make-disk-image.nix48
-rw-r--r--nixos/modules/config/console.nix21
-rw-r--r--nixos/modules/config/update-users-groups.pl12
-rw-r--r--nixos/modules/config/users-groups.nix8
-rw-r--r--nixos/modules/hardware/all-firmware.nix1
-rw-r--r--nixos/modules/hardware/keyboard/zsa.nix27
-rw-r--r--nixos/modules/hardware/opentabletdriver.nix67
-rw-r--r--nixos/modules/installer/cd-dvd/iso-image.nix7
-rw-r--r--nixos/modules/installer/cd-dvd/sd-image-aarch64.nix32
-rw-r--r--nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix32
-rw-r--r--nixos/modules/installer/cd-dvd/system-tarball-fuloong2f.nix2
-rw-r--r--nixos/modules/installer/cd-dvd/system-tarball-sheevaplug.nix2
-rw-r--r--nixos/modules/installer/tools/nix-fallback-paths.nix8
-rw-r--r--nixos/modules/installer/tools/nixos-enter.sh3
-rw-r--r--nixos/modules/misc/documentation.nix2
-rw-r--r--nixos/modules/module-list.nix12
-rw-r--r--nixos/modules/profiles/hardened.nix7
-rw-r--r--nixos/modules/profiles/installation-device.nix4
-rw-r--r--nixos/modules/programs/command-not-found/command-not-found.pl15
-rw-r--r--nixos/modules/programs/fish.nix8
-rw-r--r--nixos/modules/programs/msmtp.nix104
-rw-r--r--nixos/modules/programs/ssmtp.nix13
-rw-r--r--nixos/modules/security/acme.nix5
-rw-r--r--nixos/modules/security/acme.xml24
-rw-r--r--nixos/modules/security/pam.nix2
-rw-r--r--nixos/modules/services/computing/slurm/slurm.nix68
-rw-r--r--nixos/modules/services/databases/mongodb.nix2
-rw-r--r--nixos/modules/services/development/hoogle.nix7
-rw-r--r--nixos/modules/services/hardware/thermald.nix11
-rw-r--r--nixos/modules/services/hardware/throttled.nix6
-rw-r--r--nixos/modules/services/hardware/trezord.nix2
-rw-r--r--nixos/modules/services/hardware/udev.nix2
-rw-r--r--nixos/modules/services/mail/mailman.nix2
-rw-r--r--nixos/modules/services/misc/gitlab.nix4
-rw-r--r--nixos/modules/services/misc/matrix-appservice-discord.nix8
-rw-r--r--nixos/modules/services/monitoring/grafana-image-renderer.nix150
-rw-r--r--nixos/modules/services/monitoring/grafana.nix9
-rw-r--r--nixos/modules/services/monitoring/prometheus/default.nix175
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters.nix5
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters/bird.nix46
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters/json.nix28
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters/nginxlog.nix51
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix121
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters/smokeping.nix60
-rw-r--r--nixos/modules/services/network-filesystems/samba-wsdd.nix2
-rw-r--r--nixos/modules/services/networking/corerad.nix12
-rw-r--r--nixos/modules/services/networking/icecream/daemon.nix155
-rw-r--r--nixos/modules/services/networking/icecream/scheduler.nix101
-rw-r--r--nixos/modules/services/networking/kresd.nix2
-rw-r--r--nixos/modules/services/networking/privoxy.nix7
-rw-r--r--nixos/modules/services/networking/shellhub-agent.nix91
-rw-r--r--nixos/modules/services/networking/wakeonlan.nix2
-rw-r--r--nixos/modules/services/networking/wpa_supplicant.nix11
-rw-r--r--nixos/modules/services/security/tor.nix1389
-rw-r--r--nixos/modules/services/ttys/getty.nix (renamed from nixos/modules/services/ttys/agetty.nix)20
-rw-r--r--nixos/modules/services/web-apps/grocy.nix6
-rw-r--r--nixos/modules/services/web-apps/hedgedoc.nix (renamed from nixos/modules/services/web-apps/codimd.nix)108
-rw-r--r--nixos/modules/services/web-apps/nextcloud.nix2
-rw-r--r--nixos/modules/services/web-apps/plantuml-server.nix123
-rw-r--r--nixos/modules/services/web-apps/zabbix.nix16
-rw-r--r--nixos/modules/services/web-servers/apache-httpd/default.nix9
-rw-r--r--nixos/modules/services/web-servers/nginx/default.nix31
-rw-r--r--nixos/modules/services/web-servers/nginx/location-options.nix10
-rw-r--r--nixos/modules/services/x11/desktop-managers/plasma5.nix4
-rw-r--r--nixos/modules/services/x11/display-managers/sddm.nix190
-rw-r--r--nixos/modules/services/x11/display-managers/startx.nix12
-rw-r--r--nixos/modules/services/x11/window-managers/xmonad.nix58
-rw-r--r--nixos/modules/services/x11/xserver.nix16
-rw-r--r--nixos/modules/system/boot/resolved.nix5
-rw-r--r--nixos/modules/system/boot/stage-1.nix31
-rw-r--r--nixos/modules/tasks/filesystems/bcachefs.nix4
-rw-r--r--nixos/modules/tasks/network-interfaces-systemd.nix12
-rw-r--r--nixos/modules/virtualisation/amazon-init.nix2
-rw-r--r--nixos/modules/virtualisation/lxc-container.nix2
-rw-r--r--nixos/modules/virtualisation/nixos-containers.nix6
-rw-r--r--nixos/modules/virtualisation/oci-containers.nix4
-rw-r--r--nixos/release-combined.nix1
-rw-r--r--nixos/tests/all-tests.nix9
-rw-r--r--nixos/tests/codimd.nix60
-rw-r--r--nixos/tests/docker-tools.nix7
-rw-r--r--nixos/tests/dovecot.nix7
-rw-r--r--nixos/tests/git/hub.nix17
-rw-r--r--nixos/tests/grafana.nix14
-rw-r--r--nixos/tests/hedgedoc.nix60
-rw-r--r--nixos/tests/image-contents.nix51
-rw-r--r--nixos/tests/initrd-secrets.nix35
-rw-r--r--nixos/tests/kafka.nix9
-rw-r--r--nixos/tests/login.nix2
-rw-r--r--nixos/tests/loki.nix4
-rw-r--r--nixos/tests/mailhog.nix24
-rw-r--r--nixos/tests/postgresql-wal-receiver.nix16
-rw-r--r--nixos/tests/prometheus-exporters.nix122
-rw-r--r--nixos/tests/prometheus.nix2
-rw-r--r--nixos/tests/ripgrep.nix13
-rw-r--r--nixos/tests/shadow.nix116
-rw-r--r--nixos/tests/slurm.nix6
-rw-r--r--nixos/tests/tor.nix2
-rw-r--r--nixos/tests/uwsgi.nix18
-rw-r--r--nixos/tests/yq.nix12
-rw-r--r--pkgs/applications/audio/ams-lv2/default.nix4
-rw-r--r--pkgs/applications/audio/audacity/default.nix20
-rw-r--r--pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix80
-rw-r--r--pkgs/applications/audio/bs1770gain/default.nix22
-rw-r--r--pkgs/applications/audio/espeak-ng/default.nix7
-rw-r--r--pkgs/applications/audio/game-music-emu/default.nix8
-rw-r--r--pkgs/applications/audio/geonkick/default.nix4
-rw-r--r--pkgs/applications/audio/gpodder/default.nix4
-rw-r--r--pkgs/applications/audio/helio-workstation/default.nix6
-rw-r--r--pkgs/applications/audio/mda-lv2/default.nix4
-rw-r--r--pkgs/applications/audio/milkytracker/default.nix4
-rw-r--r--pkgs/applications/audio/mopidy/default.nix15
-rw-r--r--pkgs/applications/audio/mopidy/iris.nix4
-rw-r--r--pkgs/applications/audio/mopidy/local.nix4
-rw-r--r--pkgs/applications/audio/mopidy/mopidy.nix4
-rw-r--r--pkgs/applications/audio/mopidy/scrobbler.nix24
-rw-r--r--pkgs/applications/audio/mopidy/tunein.nix7
-rw-r--r--pkgs/applications/audio/mp3gain/default.nix18
-rw-r--r--pkgs/applications/audio/ncmpcpp/default.nix9
-rw-r--r--pkgs/applications/audio/ncspot/default.nix6
-rw-r--r--pkgs/applications/audio/netease-music-tui/cargo-lock.patch2309
-rw-r--r--pkgs/applications/audio/netease-music-tui/default.nix28
-rw-r--r--pkgs/applications/audio/new-session-manager/default.nix27
-rw-r--r--pkgs/applications/audio/noisetorch/default.nix8
-rw-r--r--pkgs/applications/audio/noisetorch/embedlibrnnoise.patch13
-rw-r--r--pkgs/applications/audio/opustags/default.nix37
-rw-r--r--pkgs/applications/audio/pavucontrol/default.nix13
-rw-r--r--pkgs/applications/audio/picard/default.nix4
-rw-r--r--pkgs/applications/audio/plujain-ramp/default.nix27
-rw-r--r--pkgs/applications/audio/pt2-clone/default.nix4
-rw-r--r--pkgs/applications/audio/qjackctl/default.nix28
-rw-r--r--pkgs/applications/audio/qtractor/default.nix80
-rw-r--r--pkgs/applications/audio/redoflacs/default.nix4
-rw-r--r--pkgs/applications/audio/rkrlv2/default.nix28
-rw-r--r--pkgs/applications/audio/sc68/default.nix39
-rw-r--r--pkgs/applications/audio/sonata/default.nix4
-rw-r--r--pkgs/applications/audio/spotify-tui/default.nix19
-rw-r--r--pkgs/applications/audio/stochas/default.nix33
-rw-r--r--pkgs/applications/audio/vcv-rack/default.nix8
-rw-r--r--pkgs/applications/blockchains/ledger-live-desktop/default.nix4
-rw-r--r--pkgs/applications/blockchains/monero-gui/default.nix9
-rw-r--r--pkgs/applications/blockchains/monero/default.nix4
-rw-r--r--pkgs/applications/blockchains/zcash/default.nix56
-rw-r--r--pkgs/applications/blockchains/zcash/librustzcash/default.nix33
-rw-r--r--pkgs/applications/editors/android-studio/common.nix6
-rw-r--r--pkgs/applications/editors/android-studio/default.nix11
-rw-r--r--pkgs/applications/editors/cudatext/default.nix5
-rw-r--r--pkgs/applications/editors/cudatext/deps.json20
-rw-r--r--pkgs/applications/editors/eclipse/default.nix32
-rw-r--r--pkgs/applications/editors/eclipse/plugins.nix12
-rw-r--r--pkgs/applications/editors/emacs-modes/elpa-generated.nix163
-rw-r--r--pkgs/applications/editors/emacs-modes/emacs2nix.nix4
-rw-r--r--pkgs/applications/editors/emacs-modes/org-generated.nix12
-rw-r--r--pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json4319
-rw-r--r--pkgs/applications/editors/emacs/generic.nix18
-rw-r--r--pkgs/applications/editors/emacs/site-start.el19
-rw-r--r--pkgs/applications/editors/glow/default.nix7
-rw-r--r--pkgs/applications/editors/jetbrains/common.nix13
-rw-r--r--pkgs/applications/editors/jetbrains/default.nix49
-rw-r--r--pkgs/applications/editors/joe/default.nix32
-rw-r--r--pkgs/applications/editors/kakoune/default.nix4
-rw-r--r--pkgs/applications/editors/kdevelop5/kdev-php.nix4
-rw-r--r--pkgs/applications/editors/kdevelop5/kdev-python.nix4
-rw-r--r--pkgs/applications/editors/mindforger/build.patch57
-rw-r--r--pkgs/applications/editors/mindforger/default.nix32
-rw-r--r--pkgs/applications/editors/moe/default.nix14
-rw-r--r--pkgs/applications/editors/texstudio/default.nix9
-rwxr-xr-xpkgs/applications/editors/vscode/update-vscode.sh8
-rwxr-xr-xpkgs/applications/editors/vscode/update-vscodium.sh20
-rw-r--r--pkgs/applications/editors/vscode/vscode.nix12
-rw-r--r--pkgs/applications/editors/vscode/vscodium.nix16
-rw-r--r--pkgs/applications/gis/qgis/unwrapped.nix25
-rw-r--r--pkgs/applications/graphics/darktable/default.nix4
-rw-r--r--pkgs/applications/graphics/digikam/default.nix1
-rw-r--r--pkgs/applications/graphics/drawio/default.nix4
-rw-r--r--pkgs/applications/graphics/emulsion/default.nix85
-rw-r--r--pkgs/applications/graphics/evilpixie/default.nix4
-rw-r--r--pkgs/applications/graphics/monado/default.nix101
-rw-r--r--pkgs/applications/graphics/ocrfeeder/default.nix73
-rw-r--r--pkgs/applications/graphics/paraview/default.nix5
-rw-r--r--pkgs/applications/graphics/xournalpp/default.nix10
-rw-r--r--pkgs/applications/kde/akonadi-calendar.nix2
-rw-r--r--pkgs/applications/kde/akonadi-contacts.nix2
-rw-r--r--pkgs/applications/kde/akonadi-import-wizard.nix2
-rw-r--r--pkgs/applications/kde/akonadi-mime.nix2
-rw-r--r--pkgs/applications/kde/akonadi-notes.nix2
-rw-r--r--pkgs/applications/kde/akonadi-search.nix2
-rw-r--r--pkgs/applications/kde/akonadi/default.nix13
-rw-r--r--pkgs/applications/kde/akonadiconsole.nix2
-rw-r--r--pkgs/applications/kde/akregator.nix2
-rw-r--r--pkgs/applications/kde/ark/default.nix2
-rw-r--r--pkgs/applications/kde/baloo-widgets.nix2
-rw-r--r--pkgs/applications/kde/bomber.nix2
-rw-r--r--pkgs/applications/kde/bovo.nix2
-rw-r--r--pkgs/applications/kde/calendarsupport.nix11
-rw-r--r--pkgs/applications/kde/default.nix9
-rw-r--r--pkgs/applications/kde/dolphin-plugins.nix2
-rw-r--r--pkgs/applications/kde/dolphin.nix2
-rw-r--r--pkgs/applications/kde/dragon.nix2
-rw-r--r--pkgs/applications/kde/elisa.nix4
-rw-r--r--pkgs/applications/kde/eventviews.nix2
-rw-r--r--pkgs/applications/kde/fetch.sh2
-rw-r--r--pkgs/applications/kde/ffmpegthumbs.nix2
-rw-r--r--pkgs/applications/kde/filelight.nix2
-rw-r--r--pkgs/applications/kde/granatier.nix2
-rw-r--r--pkgs/applications/kde/grantleetheme/default.nix3
-rw-r--r--pkgs/applications/kde/gwenview.nix2
-rw-r--r--pkgs/applications/kde/incidenceeditor.nix2
-rw-r--r--pkgs/applications/kde/k3b.nix2
-rw-r--r--pkgs/applications/kde/kaccounts-integration.nix23
-rw-r--r--pkgs/applications/kde/kaddressbook.nix11
-rw-r--r--pkgs/applications/kde/kalarm.nix2
-rw-r--r--pkgs/applications/kde/kalarmcal.nix2
-rw-r--r--pkgs/applications/kde/kalzium.nix2
-rw-r--r--pkgs/applications/kde/kapman.nix2
-rw-r--r--pkgs/applications/kde/kapptemplate.nix2
-rw-r--r--pkgs/applications/kde/kate.nix2
-rw-r--r--pkgs/applications/kde/katomic.nix2
-rw-r--r--pkgs/applications/kde/kblackbox.nix2
-rw-r--r--pkgs/applications/kde/kblocks.nix2
-rw-r--r--pkgs/applications/kde/kbounce.nix2
-rw-r--r--pkgs/applications/kde/kbreakout.nix2
-rw-r--r--pkgs/applications/kde/kcachegrind.nix2
-rw-r--r--pkgs/applications/kde/kcalc.nix2
-rw-r--r--pkgs/applications/kde/kcalutils.nix2
-rw-r--r--pkgs/applications/kde/kcharselect.nix2
-rw-r--r--pkgs/applications/kde/kcolorchooser.nix2
-rw-r--r--pkgs/applications/kde/kdebugsettings.nix2
-rw-r--r--pkgs/applications/kde/kdeconnect-kde.nix10
-rw-r--r--pkgs/applications/kde/kdegraphics-mobipocket.nix2
-rw-r--r--pkgs/applications/kde/kdegraphics-thumbnailers.nix2
-rw-r--r--pkgs/applications/kde/kdenetwork-filesharing.nix2
-rw-r--r--pkgs/applications/kde/kdenlive.nix2
-rw-r--r--pkgs/applications/kde/kdepim-addons.nix2
-rw-r--r--pkgs/applications/kde/kdepim-apps-libs/default.nix2
-rw-r--r--pkgs/applications/kde/kdepim-runtime/default.nix2
-rw-r--r--pkgs/applications/kde/kdf.nix2
-rw-r--r--pkgs/applications/kde/kdialog.nix2
-rw-r--r--pkgs/applications/kde/kdiamond.nix2
-rw-r--r--pkgs/applications/kde/keditbookmarks.nix2
-rw-r--r--pkgs/applications/kde/kfind.nix2
-rw-r--r--pkgs/applications/kde/kfloppy.nix2
-rw-r--r--pkgs/applications/kde/kgeography.nix2
-rw-r--r--pkgs/applications/kde/kget.nix2
-rw-r--r--pkgs/applications/kde/kgpg.nix2
-rw-r--r--pkgs/applications/kde/khelpcenter.nix2
-rw-r--r--pkgs/applications/kde/kidentitymanagement.nix2
-rw-r--r--pkgs/applications/kde/kig.nix2
-rw-r--r--pkgs/applications/kde/kigo.nix2
-rw-r--r--pkgs/applications/kde/killbots.nix2
-rw-r--r--pkgs/applications/kde/kimap.nix2
-rw-r--r--pkgs/applications/kde/kio-extras.nix2
-rw-r--r--pkgs/applications/kde/kipi-plugins.nix2
-rw-r--r--pkgs/applications/kde/kitinerary.nix2
-rw-r--r--pkgs/applications/kde/kldap.nix2
-rw-r--r--pkgs/applications/kde/kleopatra.nix2
-rw-r--r--pkgs/applications/kde/klettres.nix2
-rw-r--r--pkgs/applications/kde/klines.nix2
-rw-r--r--pkgs/applications/kde/kmag.nix2
-rw-r--r--pkgs/applications/kde/kmahjongg.nix2
-rw-r--r--pkgs/applications/kde/kmail-account-wizard.nix2
-rw-r--r--pkgs/applications/kde/kmail.nix2
-rw-r--r--pkgs/applications/kde/kmailtransport.nix2
-rw-r--r--pkgs/applications/kde/kmbox.nix2
-rw-r--r--pkgs/applications/kde/kmime.nix3
-rw-r--r--pkgs/applications/kde/kmines.nix2
-rw-r--r--pkgs/applications/kde/kmix.nix2
-rw-r--r--pkgs/applications/kde/kmplot.nix2
-rw-r--r--pkgs/applications/kde/knavalbattle.nix2
-rw-r--r--pkgs/applications/kde/knetwalk.nix2
-rw-r--r--pkgs/applications/kde/knights.nix2
-rw-r--r--pkgs/applications/kde/knotes.nix2
-rw-r--r--pkgs/applications/kde/kolf.nix2
-rw-r--r--pkgs/applications/kde/kollision.nix2
-rw-r--r--pkgs/applications/kde/kolourpaint.nix2
-rw-r--r--pkgs/applications/kde/kompare.nix15
-rw-r--r--pkgs/applications/kde/konqueror.nix2
-rw-r--r--pkgs/applications/kde/konquest.nix2
-rw-r--r--pkgs/applications/kde/konsole.nix2
-rw-r--r--pkgs/applications/kde/kontact.nix2
-rw-r--r--pkgs/applications/kde/kontactinterface.nix2
-rw-r--r--pkgs/applications/kde/korganizer.nix2
-rw-r--r--pkgs/applications/kde/kpat.nix2
-rw-r--r--pkgs/applications/kde/kpimtextedit.nix5
-rw-r--r--pkgs/applications/kde/kpkpass.nix4
-rw-r--r--pkgs/applications/kde/kqtquickcharts.nix2
-rw-r--r--pkgs/applications/kde/krdc.nix2
-rw-r--r--pkgs/applications/kde/kreversi.nix2
-rw-r--r--pkgs/applications/kde/krfb.nix2
-rw-r--r--pkgs/applications/kde/kruler.nix2
-rw-r--r--pkgs/applications/kde/kshisen.nix2
-rw-r--r--pkgs/applications/kde/ksmtp/default.nix2
-rw-r--r--pkgs/applications/kde/kspaceduel.nix4
-rw-r--r--pkgs/applications/kde/ksquares.nix2
-rw-r--r--pkgs/applications/kde/ksudoku.nix2
-rw-r--r--pkgs/applications/kde/ksystemlog.nix2
-rw-r--r--pkgs/applications/kde/kteatime.nix2
-rw-r--r--pkgs/applications/kde/ktimer.nix2
-rw-r--r--pkgs/applications/kde/ktnef.nix2
-rw-r--r--pkgs/applications/kde/ktouch.nix2
-rw-r--r--pkgs/applications/kde/kturtle.nix2
-rw-r--r--pkgs/applications/kde/kwalletmanager.nix2
-rw-r--r--pkgs/applications/kde/kwave.nix2
-rw-r--r--pkgs/applications/kde/libgravatar.nix2
-rw-r--r--pkgs/applications/kde/libkcddb.nix2
-rw-r--r--pkgs/applications/kde/libkdcraw.nix2
-rw-r--r--pkgs/applications/kde/libkdegames.nix2
-rw-r--r--pkgs/applications/kde/libkdepim.nix2
-rw-r--r--pkgs/applications/kde/libkexiv2.nix2
-rw-r--r--pkgs/applications/kde/libkgapi.nix5
-rw-r--r--pkgs/applications/kde/libkipi.nix2
-rw-r--r--pkgs/applications/kde/libkleo.nix2
-rw-r--r--pkgs/applications/kde/libkmahjongg.nix2
-rw-r--r--pkgs/applications/kde/libkomparediff2.nix2
-rw-r--r--pkgs/applications/kde/libksane.nix2
-rw-r--r--pkgs/applications/kde/libksieve.nix2
-rw-r--r--pkgs/applications/kde/mailcommon.nix2
-rw-r--r--pkgs/applications/kde/mailimporter.nix2
-rw-r--r--pkgs/applications/kde/marble.nix2
-rw-r--r--pkgs/applications/kde/mbox-importer.nix2
-rw-r--r--pkgs/applications/kde/messagelib.nix2
-rw-r--r--pkgs/applications/kde/minuet.nix2
-rw-r--r--pkgs/applications/kde/okular.nix2
-rw-r--r--pkgs/applications/kde/picmi.nix2
-rw-r--r--pkgs/applications/kde/pim-data-exporter.nix2
-rw-r--r--pkgs/applications/kde/pim-sieve-editor.nix2
-rw-r--r--pkgs/applications/kde/pimcommon.nix2
-rw-r--r--pkgs/applications/kde/print-manager.nix2
-rw-r--r--pkgs/applications/kde/rocs.nix2
-rw-r--r--pkgs/applications/kde/spectacle.nix2
-rw-r--r--pkgs/applications/kde/srcs.nix1728
-rw-r--r--pkgs/applications/kde/yakuake.nix6
-rw-r--r--pkgs/applications/misc/1password/default.nix8
-rw-r--r--pkgs/applications/misc/archivy/default.nix16
-rw-r--r--pkgs/applications/misc/buku/default.nix4
-rw-r--r--pkgs/applications/misc/clipmenu/default.nix46
-rw-r--r--pkgs/applications/misc/ctodo/default.nix25
-rw-r--r--pkgs/applications/misc/dasel/default.nix17
-rw-r--r--pkgs/applications/misc/dbeaver/default.nix7
-rw-r--r--pkgs/applications/misc/dfilemanager/default.nix17
-rw-r--r--pkgs/applications/misc/electrum/default.nix6
-rw-r--r--pkgs/applications/misc/elfx86exts/cargo-lock.patch1091
-rw-r--r--pkgs/applications/misc/elfx86exts/default.nix30
-rw-r--r--pkgs/applications/misc/gallery-dl/default.nix4
-rw-r--r--pkgs/applications/misc/geoipupdate/default.nix4
-rw-r--r--pkgs/applications/misc/gpsbabel/default.nix10
-rw-r--r--pkgs/applications/misc/gpxsee/default.nix6
-rw-r--r--pkgs/applications/misc/gpxsee/fix-qttranslations-path.diff16
-rw-r--r--pkgs/applications/misc/gramps/default.nix4
-rw-r--r--pkgs/applications/misc/herbe/default.nix33
-rw-r--r--pkgs/applications/misc/hubstaff/revision.json6
-rw-r--r--pkgs/applications/misc/inkcut/avoid-name-clash-between-inkcut-and-extension.patch85
-rw-r--r--pkgs/applications/misc/inkcut/default.nix10
-rw-r--r--pkgs/applications/misc/josm/default.nix8
-rw-r--r--pkgs/applications/misc/keeweb/default.nix12
-rw-r--r--pkgs/applications/misc/keystore-explorer/default.nix40
-rw-r--r--pkgs/applications/misc/koreader/default.nix8
-rw-r--r--pkgs/applications/misc/ksmoothdock/default.nix5
-rw-r--r--pkgs/applications/misc/librecad/default.nix10
-rw-r--r--pkgs/applications/misc/llpp/default.nix2
-rw-r--r--pkgs/applications/misc/mapproxy/default.nix33
-rw-r--r--pkgs/applications/misc/mediaelch/default.nix41
-rw-r--r--pkgs/applications/misc/merkaartor/default.nix28
-rw-r--r--pkgs/applications/misc/moolticute/default.nix4
-rw-r--r--pkgs/applications/misc/mwic/default.nix2
-rw-r--r--pkgs/applications/misc/obsidian/default.nix4
-rw-r--r--pkgs/applications/misc/orca/default.nix4
-rw-r--r--pkgs/applications/misc/overmind/default.nix4
-rw-r--r--pkgs/applications/misc/overmind/deps.nix18
-rw-r--r--pkgs/applications/misc/pdfpc/default.nix10
-rw-r--r--pkgs/applications/misc/polybar/default.nix4
-rw-r--r--pkgs/applications/misc/printrun/default.nix7
-rw-r--r--pkgs/applications/misc/redshift/default.nix2
-rw-r--r--pkgs/applications/misc/synergy/default.nix2
-rw-r--r--pkgs/applications/misc/tasknc/default.nix6
-rw-r--r--pkgs/applications/misc/terminal-typeracer/default.nix34
-rw-r--r--pkgs/applications/misc/tiramisu/default.nix36
-rw-r--r--pkgs/applications/misc/tty-share/default.nix24
-rw-r--r--pkgs/applications/misc/ulauncher/default.nix4
-rw-r--r--pkgs/applications/misc/upwork/default.nix6
-rw-r--r--pkgs/applications/misc/variety/default.nix71
-rw-r--r--pkgs/applications/misc/visidata/default.nix4
-rw-r--r--pkgs/applications/misc/xdg-launch/default.nix57
-rw-r--r--pkgs/applications/misc/zathura/wrapper.nix11
-rw-r--r--pkgs/applications/networking/Sylk/default.nix4
-rw-r--r--pkgs/applications/networking/apache-directory-studio/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/brave/default.nix13
-rwxr-xr-xpkgs/applications/networking/browsers/brave/update.sh5
-rw-r--r--pkgs/applications/networking/browsers/chromium/README.md3
-rw-r--r--pkgs/applications/networking/browsers/chromium/browser.nix17
-rw-r--r--pkgs/applications/networking/browsers/chromium/common.nix31
-rw-r--r--pkgs/applications/networking/browsers/chromium/default.nix19
-rw-r--r--pkgs/applications/networking/browsers/chromium/ungoogled.nix (renamed from pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled.nix)1
-rwxr-xr-xpkgs/applications/networking/browsers/chromium/update.py77
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.json29
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix770
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/release_sources.nix770
-rw-r--r--pkgs/applications/networking/browsers/firefox/common.nix13
-rw-r--r--pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx84.patch25
-rw-r--r--pkgs/applications/networking/browsers/firefox/packages.nix15
-rw-r--r--pkgs/applications/networking/browsers/palemoon/default.nix24
-rw-r--r--pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/ungoogled-chromium/browser.nix86
-rw-r--r--pkgs/applications/networking/browsers/ungoogled-chromium/common.nix345
-rw-r--r--pkgs/applications/networking/browsers/ungoogled-chromium/default.nix214
-rw-r--r--pkgs/applications/networking/browsers/ungoogled-chromium/patches/no-build-timestamps.patch17
-rw-r--r--pkgs/applications/networking/browsers/ungoogled-chromium/patches/widevine-79.patch13
-rw-r--r--pkgs/applications/networking/browsers/ungoogled-chromium/plugins.nix92
-rw-r--r--pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix6
-rwxr-xr-xpkgs/applications/networking/browsers/ungoogled-chromium/update.py121
-rw-r--r--pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.json46
-rw-r--r--pkgs/applications/networking/cluster/k3s/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/minikube/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/nerdctl/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/nomad/0.11.nix12
-rw-r--r--pkgs/applications/networking/cluster/nomad/0.12.nix12
-rw-r--r--pkgs/applications/networking/cluster/nomad/1.0.nix11
-rw-r--r--pkgs/applications/networking/cluster/nomad/generic.nix46
-rw-r--r--pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix6
-rw-r--r--pkgs/applications/networking/cluster/qbec/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/sonobuoy/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/stern/default.nix37
-rw-r--r--pkgs/applications/networking/cluster/stern/deps.nix336
-rw-r--r--pkgs/applications/networking/cluster/terraform-compliance/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/vercel/default.nix23
-rw-r--r--pkgs/applications/networking/cluster/terraform/default.nix14
-rw-r--r--pkgs/applications/networking/cluster/tilt/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/waypoint/default.nix46
-rw-r--r--pkgs/applications/networking/feedreaders/canto-daemon/default.nix16
-rw-r--r--pkgs/applications/networking/feedreaders/feeds/default.nix88
-rw-r--r--pkgs/applications/networking/feedreaders/feeds/listparser.nix31
-rw-r--r--pkgs/applications/networking/feedreaders/newsflash/default.nix10
-rw-r--r--pkgs/applications/networking/flexget/default.nix4
-rw-r--r--pkgs/applications/networking/icemon/default.nix24
-rw-r--r--pkgs/applications/networking/ids/zeek/default.nix5
-rw-r--r--pkgs/applications/networking/instant-messengers/bluejeans/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/element/element-desktop-package.json2
-rw-r--r--pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix8
-rw-r--r--pkgs/applications/networking/instant-messengers/element/element-desktop.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/element/element-web.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/hipchat/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/linphone/default.nix5
-rw-r--r--pkgs/applications/networking/instant-messengers/mirage/default.nix14
-rw-r--r--pkgs/applications/networking/instant-messengers/neochat/default.nix67
-rw-r--r--pkgs/applications/networking/instant-messengers/quaternion/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/rambox/pro.nix8
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/spectral/default.nix40
-rw-r--r--pkgs/applications/networking/instant-messengers/teams/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix7
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix15
-rw-r--r--pkgs/applications/networking/iptraf-ng/default.nix31
-rw-r--r--pkgs/applications/networking/mailreaders/aerc/default.nix6
-rw-r--r--pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch5
-rw-r--r--pkgs/applications/networking/mailreaders/imapfilter.nix10
-rw-r--r--pkgs/applications/networking/mailreaders/mailnag/default.nix6
-rw-r--r--pkgs/applications/networking/mailreaders/mailspring/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/mmh/default.nix5
-rw-r--r--pkgs/applications/networking/mailreaders/mutt/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix45
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix530
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird/default.nix24
-rw-r--r--pkgs/applications/networking/msmtp/default.nix4
-rw-r--r--pkgs/applications/networking/netperf/default.nix4
-rw-r--r--pkgs/applications/networking/openbazaar/client.nix4
-rw-r--r--pkgs/applications/networking/p2p/deluge/1.nix (renamed from pkgs/applications/networking/p2p/deluge/1/default.nix)4
-rw-r--r--pkgs/applications/networking/p2p/deluge/default.nix (renamed from pkgs/applications/networking/p2p/deluge/2/default.nix)4
-rw-r--r--pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix4
-rw-r--r--pkgs/applications/networking/p2p/qbittorrent/default.nix27
-rw-r--r--pkgs/applications/networking/p2p/tribler/default.nix2
-rw-r--r--pkgs/applications/networking/pcloud/default.nix6
-rw-r--r--pkgs/applications/networking/remote/teamviewer/default.nix7
-rw-r--r--pkgs/applications/networking/remote/waypipe/default.nix4
-rw-r--r--pkgs/applications/networking/seafile-client/default.nix10
-rw-r--r--pkgs/applications/networking/shellhub-agent/default.nix48
-rw-r--r--pkgs/applications/networking/sniffers/wireshark/default.nix7
-rw-r--r--pkgs/applications/networking/sync/desync/default.nix18
-rw-r--r--pkgs/applications/networking/sync/desync/deps.nix312
-rw-r--r--pkgs/applications/networking/sync/onedrive/default.nix4
-rw-r--r--pkgs/applications/networking/syncplay/default.nix4
-rw-r--r--pkgs/applications/office/libreoffice/default.nix2
-rw-r--r--pkgs/applications/office/libreoffice/src-fresh/download.nix16
-rw-r--r--pkgs/applications/office/libreoffice/src-fresh/primary.nix10
-rw-r--r--pkgs/applications/office/paperwork/paperwork-gtk.nix15
-rw-r--r--pkgs/applications/office/paperwork/paperwork-shell.nix2
-rw-r--r--pkgs/applications/office/paperwork/src.nix4
-rw-r--r--pkgs/applications/office/zanshin/default.nix11
-rw-r--r--pkgs/applications/printing/pappl/default.nix62
-rw-r--r--pkgs/applications/radio/sdrangel/default.nix8
-rw-r--r--pkgs/applications/radio/soapyaudio/default.nix31
-rw-r--r--pkgs/applications/radio/soapyuhd/default.nix15
-rw-r--r--pkgs/applications/radio/soundmodem/default.nix36
-rw-r--r--pkgs/applications/radio/soundmodem/matFix.patch11
-rw-r--r--pkgs/applications/radio/urh/default.nix4
-rw-r--r--pkgs/applications/science/astronomy/kstars/default.nix35
-rw-r--r--pkgs/applications/science/astronomy/kstars/fs-fixes.patch59
-rw-r--r--pkgs/applications/science/astronomy/kstars/indi-fix.patch50
-rw-r--r--pkgs/applications/science/astronomy/phd2/default.nix11
-rw-r--r--pkgs/applications/science/biology/bowtie/default.nix25
-rw-r--r--pkgs/applications/science/biology/bowtie2/default.nix12
-rw-r--r--pkgs/applications/science/biology/last/default.nix4
-rw-r--r--pkgs/applications/science/biology/raxml/default.nix2
-rw-r--r--pkgs/applications/science/biology/spades/default.nix4
-rw-r--r--pkgs/applications/science/biology/varscan/default.nix6
-rw-r--r--pkgs/applications/science/chemistry/openmolcas/default.nix6
-rw-r--r--pkgs/applications/science/chemistry/quantum-espresso/default.nix4
-rw-r--r--pkgs/applications/science/electronics/magic-vlsi/default.nix32
-rw-r--r--pkgs/applications/science/electronics/nanovna-saver/default.nix4
-rw-r--r--pkgs/applications/science/geometry/gama/default.nix8
-rw-r--r--pkgs/applications/science/logic/cryptoverif/default.nix6
-rw-r--r--pkgs/applications/science/math/bcal/default.nix9
-rw-r--r--pkgs/applications/science/math/geogebra/default.nix2
-rw-r--r--pkgs/applications/science/math/giac/default.nix4
-rw-r--r--pkgs/applications/science/math/mathematica/default.nix4
-rw-r--r--pkgs/applications/science/math/mathematica/l10ns.nix16
-rw-r--r--pkgs/applications/science/math/maxima/default.nix4
-rw-r--r--pkgs/applications/science/math/nauty/default.nix2
-rw-r--r--pkgs/applications/science/math/pari/default.nix3
-rw-r--r--pkgs/applications/science/math/pynac/default.nix9
-rw-r--r--pkgs/applications/science/math/sage/default.nix65
-rw-r--r--pkgs/applications/science/math/sage/env-locations.nix2
-rw-r--r--pkgs/applications/science/math/sage/flask-oldsessions.nix36
-rw-r--r--pkgs/applications/science/math/sage/flask-openid.nix28
-rw-r--r--pkgs/applications/science/math/sage/patches/Only-test-py2-py3-optional-tests-when-all-of-sage-is.patch21
-rw-r--r--pkgs/applications/science/math/sage/patches/do-not-test-find-library.patch33
-rw-r--r--pkgs/applications/science/math/sage/patches/docutils-0.15.patch24
-rw-r--r--pkgs/applications/science/math/sage/patches/ignore-cmp-deprecation.patch30
-rw-r--r--pkgs/applications/science/math/sage/patches/ignore-werkzeug-immutable-dict-deprecation.patch12
-rw-r--r--pkgs/applications/science/math/sage/patches/pari-stackwarn.patch20
-rw-r--r--pkgs/applications/science/math/sage/patches/pillow-update.patch39
-rw-r--r--pkgs/applications/science/math/sage/patches/python-5755-hotpatch.patch28
-rw-r--r--pkgs/applications/science/math/sage/patches/register-pretty-printer-earlier.patch36
-rw-r--r--pkgs/applications/science/math/sage/patches/sagenb-cmp-deprecation.patch13
-rw-r--r--pkgs/applications/science/math/sage/patches/sagespawn-implicit-casting.patch13
-rw-r--r--pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch2
-rw-r--r--pkgs/applications/science/math/sage/patches/sympow-cache.patch14
-rw-r--r--pkgs/applications/science/math/sage/patches/sympy-1.7-update.patch25
-rw-r--r--pkgs/applications/science/math/sage/pybrial.nix25
-rw-r--r--pkgs/applications/science/math/sage/python-openid.nix40
-rw-r--r--pkgs/applications/science/math/sage/sage-env.nix25
-rw-r--r--pkgs/applications/science/math/sage/sage-src.nix137
-rw-r--r--pkgs/applications/science/math/sage/sage-with-env.nix8
-rw-r--r--pkgs/applications/science/math/sage/sage.nix1
-rw-r--r--pkgs/applications/science/math/sage/sagedoc.nix24
-rw-r--r--pkgs/applications/science/math/sage/sagelib.nix4
-rw-r--r--pkgs/applications/science/math/sage/sagenb.nix57
-rw-r--r--pkgs/applications/science/misc/colmap/default.nix13
-rw-r--r--pkgs/applications/science/misc/root/default.nix23
-rw-r--r--pkgs/applications/science/misc/root/sw_vers.patch54
-rw-r--r--pkgs/applications/science/misc/simgrid/default.nix4
-rw-r--r--pkgs/applications/science/molecular-dynamics/viennarna/default.nix37
-rw-r--r--pkgs/applications/science/robotics/mavproxy/default.nix4
-rw-r--r--pkgs/applications/science/robotics/mission-planner/default.nix59
-rw-r--r--pkgs/applications/science/robotics/qgroundcontrol/default.nix4
-rw-r--r--pkgs/applications/terminal-emulators/foot/default.nix137
-rw-r--r--pkgs/applications/terminal-emulators/kitty/default.nix4
-rw-r--r--pkgs/applications/terminal-emulators/tilda/default.nix36
-rw-r--r--pkgs/applications/terminal-emulators/xterm/default.nix4
-rw-r--r--pkgs/applications/version-management/fossil/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/default.nix3
-rw-r--r--pkgs/applications/version-management/git-and-tools/delta/default.nix8
-rw-r--r--pkgs/applications/version-management/git-and-tools/ghr/default.nix30
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-machete/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/gitstatus/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/gitui/default.nix14
-rw-r--r--pkgs/applications/version-management/git-and-tools/hub/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/lab/default.nix20
-rw-r--r--pkgs/applications/version-management/gitea/default.nix4
-rw-r--r--pkgs/applications/version-management/gitlab/data.json14
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/Gemfile2
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock6
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/default.nix20
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/gemset.nix8
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-shell/default.nix4
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix6
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/Gemfile24
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock68
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix118
-rwxr-xr-xpkgs/applications/version-management/gitlab/update.py44
-rw-r--r--pkgs/applications/version-management/gitlab/yarnPkgs.nix96
-rw-r--r--pkgs/applications/version-management/gitoxide/default.nix16
-rw-r--r--pkgs/applications/version-management/pijul/default.nix6
-rw-r--r--pkgs/applications/version-management/redmine/default.nix7
-rw-r--r--pkgs/applications/video/droidcam/default.nix58
-rw-r--r--pkgs/applications/video/kodi/plugins.nix2
-rw-r--r--pkgs/applications/video/qmplay2/default.nix4
-rw-r--r--pkgs/applications/video/streamlink-twitch-gui/bin.nix37
-rw-r--r--pkgs/applications/video/streamlink/default.nix35
-rw-r--r--pkgs/applications/video/subtitleeditor/default.nix3
-rw-r--r--pkgs/applications/video/tartube/default.nix8
-rw-r--r--pkgs/applications/video/vdr/default.nix6
-rw-r--r--pkgs/applications/virtualization/charliecloud/default.nix4
-rw-r--r--pkgs/applications/virtualization/cntr/default.nix9
-rw-r--r--pkgs/applications/virtualization/conmon/default.nix11
-rw-r--r--pkgs/applications/virtualization/containerd/default.nix37
-rw-r--r--pkgs/applications/virtualization/docker-slim/default.nix5
-rw-r--r--pkgs/applications/virtualization/docker/default.nix2
-rw-r--r--pkgs/applications/virtualization/vpcs/default.nix27
-rw-r--r--pkgs/applications/virtualization/vpcs/vpcs-0.8-glibc-2.26.patch14
-rw-r--r--pkgs/applications/window-managers/i3/balance-workspace.nix23
-rw-r--r--pkgs/applications/window-managers/i3/gaps.nix2
-rw-r--r--pkgs/applications/window-managers/i3/i3-resurrect.nix22
-rw-r--r--pkgs/applications/window-managers/i3/lock-color.nix4
-rw-r--r--pkgs/applications/window-managers/icewm/default.nix101
-rw-r--r--pkgs/applications/window-managers/notion/default.nix4
-rw-r--r--pkgs/applications/window-managers/pekwm/default.nix43
-rw-r--r--pkgs/applications/window-managers/picom/default.nix2
-rw-r--r--pkgs/applications/window-managers/wayfire/applications.nix23
-rw-r--r--pkgs/applications/window-managers/wayfire/default.nix30
-rw-r--r--pkgs/applications/window-managers/wayfire/plugins.nix12
-rw-r--r--pkgs/applications/window-managers/wayfire/wcm.nix29
-rw-r--r--pkgs/applications/window-managers/wayfire/wf-config.nix23
-rw-r--r--pkgs/applications/window-managers/wayfire/wf-shell.nix30
-rw-r--r--pkgs/applications/window-managers/wayfire/wrapper.nix39
-rw-r--r--pkgs/applications/window-managers/wio/default.nix57
-rw-r--r--pkgs/applications/window-managers/yabar/build.nix2
-rw-r--r--pkgs/build-support/build-fhs-userenv/chrootenv/chrootenv.c16
-rw-r--r--pkgs/build-support/cc-wrapper/default.nix6
-rw-r--r--pkgs/build-support/docker/examples.nix11
-rw-r--r--pkgs/build-support/docker/stream_layered_image.py6
-rw-r--r--pkgs/build-support/emacs/generic.nix7
-rw-r--r--pkgs/build-support/emacs/setup-hook.sh11
-rw-r--r--pkgs/build-support/emacs/wrapper.nix31
-rw-r--r--pkgs/build-support/emacs/wrapper.sh20
-rw-r--r--pkgs/build-support/kernel/initrd-compressor-meta.nix53
-rw-r--r--pkgs/build-support/kernel/make-initrd.nix93
-rw-r--r--pkgs/build-support/kernel/make-initrd.sh11
-rw-r--r--pkgs/build-support/nix-gitignore/default.nix26
-rw-r--r--pkgs/build-support/ocaml/dune.nix4
-rw-r--r--pkgs/build-support/rust/build-rust-crate/test/default.nix18
-rw-r--r--pkgs/build-support/rust/default.nix13
-rw-r--r--pkgs/build-support/rust/fetchCargoTarball.nix15
-rw-r--r--pkgs/build-support/setup-hooks/auto-patchelf.sh20
-rw-r--r--pkgs/build-support/vm/default.nix2
-rw-r--r--pkgs/build-support/vm/windows/bootstrap.nix83
-rw-r--r--pkgs/build-support/vm/windows/controller/default.nix263
-rw-r--r--pkgs/build-support/vm/windows/cygwin-iso/default.nix56
-rw-r--r--pkgs/build-support/vm/windows/cygwin-iso/mkclosure.py78
-rw-r--r--pkgs/build-support/vm/windows/default.nix44
-rw-r--r--pkgs/build-support/vm/windows/install/default.nix74
-rw-r--r--pkgs/build-support/vm/windows/install/unattended-image.nix123
-rw-r--r--pkgs/data/fonts/iosevka/bin.nix2
-rw-r--r--pkgs/data/fonts/iosevka/variants.nix42
-rw-r--r--pkgs/data/fonts/jetbrains-mono/default.nix6
-rw-r--r--pkgs/data/fonts/meslo-lgs-nf/default.nix26
-rw-r--r--pkgs/data/fonts/stix-two/default.nix27
-rw-r--r--pkgs/data/fonts/unifont/default.nix6
-rw-r--r--pkgs/data/fonts/unifont_upper/default.nix4
-rw-r--r--pkgs/data/icons/kora-icon-theme/default.nix42
-rw-r--r--pkgs/data/icons/luna-icons/default.nix10
-rw-r--r--pkgs/data/icons/papirus-icon-theme/default.nix4
-rw-r--r--pkgs/data/misc/cacert/default.nix4
-rw-r--r--pkgs/data/misc/hackage/default.nix4
-rw-r--r--pkgs/data/themes/marwaita-manjaro/default.nix6
-rw-r--r--pkgs/data/themes/marwaita/default.nix4
-rw-r--r--pkgs/data/themes/sweet/default.nix30
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-desktop/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-menus/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-session/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-translations/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gdm/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/extensions/material-shell/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/games/iagno/default.nix9
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-tweaks/default.nix4
-rw-r--r--pkgs/desktops/lxqt/compton-conf/default.nix4
-rw-r--r--pkgs/desktops/lxqt/libfm-qt/default.nix4
-rw-r--r--pkgs/desktops/lxqt/liblxqt/default.nix4
-rw-r--r--pkgs/desktops/lxqt/libqtxdg/default.nix4
-rw-r--r--pkgs/desktops/lxqt/libsysstat/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lximage-qt/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-about/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-admin/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-archiver/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-build-tools/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-config/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-globalkeys/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-notificationd/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-openssh-askpass/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-panel/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-policykit/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-powermanagement/default.nix6
-rw-r--r--pkgs/desktops/lxqt/lxqt-qtplugin/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-runner/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-session/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-sudo/default.nix4
-rw-r--r--pkgs/desktops/lxqt/lxqt-themes/default.nix4
-rw-r--r--pkgs/desktops/lxqt/obconf-qt/default.nix4
-rw-r--r--pkgs/desktops/lxqt/pavucontrol-qt/default.nix4
-rw-r--r--pkgs/desktops/lxqt/pcmanfm-qt/default.nix4
-rw-r--r--pkgs/desktops/lxqt/qps/default.nix4
-rw-r--r--pkgs/desktops/lxqt/qterminal/default.nix4
-rw-r--r--pkgs/desktops/lxqt/qtermwidget/default.nix4
-rw-r--r--pkgs/desktops/lxqt/screengrab/default.nix4
-rw-r--r--pkgs/desktops/plasma-5/bluedevil.nix13
-rw-r--r--pkgs/desktops/plasma-5/default.nix3
-rw-r--r--pkgs/desktops/plasma-5/discover.nix5
-rw-r--r--pkgs/desktops/plasma-5/fetch.sh2
-rw-r--r--pkgs/desktops/plasma-5/kactivitymanagerd.nix5
-rw-r--r--pkgs/desktops/plasma-5/kde-gtk-config/default.nix4
-rw-r--r--pkgs/desktops/plasma-5/kdecoration.nix3
-rw-r--r--pkgs/desktops/plasma-5/kgamma5.nix5
-rw-r--r--pkgs/desktops/plasma-5/kinfocenter.nix4
-rw-r--r--pkgs/desktops/plasma-5/kscreenlocker.nix5
-rw-r--r--pkgs/desktops/plasma-5/ksshaskpass.nix3
-rw-r--r--pkgs/desktops/plasma-5/ksysguard.nix5
-rw-r--r--pkgs/desktops/plasma-5/kwayland-integration.nix3
-rw-r--r--pkgs/desktops/plasma-5/kwayland-server/0001-Use-KDE_INSTALL_TARGETS_DEFAULT_ARGS-when-installing.patch25
-rw-r--r--pkgs/desktops/plasma-5/kwayland-server/default.nix19
-rw-r--r--pkgs/desktops/plasma-5/kwin/default.nix11
-rw-r--r--pkgs/desktops/plasma-5/kwrited.nix3
-rw-r--r--pkgs/desktops/plasma-5/libkscreen/default.nix2
-rw-r--r--pkgs/desktops/plasma-5/libksysguard/default.nix9
-rw-r--r--pkgs/desktops/plasma-5/milou.nix5
-rw-r--r--pkgs/desktops/plasma-5/oxygen.nix4
-rw-r--r--pkgs/desktops/plasma-5/plasma-desktop/default.nix4
-rw-r--r--pkgs/desktops/plasma-5/plasma-disks.nix19
-rw-r--r--pkgs/desktops/plasma-5/plasma-nm/default.nix6
-rw-r--r--pkgs/desktops/plasma-5/plasma-pa.nix7
-rw-r--r--pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch68
-rw-r--r--pkgs/desktops/plasma-5/plasma-workspace/default.nix8
-rw-r--r--pkgs/desktops/plasma-5/polkit-kde-agent.nix5
-rw-r--r--pkgs/desktops/plasma-5/powerdevil.nix16
-rw-r--r--pkgs/desktops/plasma-5/sddm-kcm.nix5
-rw-r--r--pkgs/desktops/plasma-5/srcs.nix402
-rw-r--r--pkgs/desktops/plasma-5/user-manager.nix13
-rw-r--r--pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix12
-rw-r--r--pkgs/desktops/xfce/applications/mousepad/default.nix1
-rw-r--r--pkgs/desktops/xfce/applications/orage/default.nix32
-rw-r--r--pkgs/desktops/xfce/core/xfwm4/default.nix4
-rw-r--r--pkgs/desktops/xfce/mkXfceDerivation.nix14
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-namebar-plugin.nix37
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix1
-rw-r--r--pkgs/development/arduino/arduino-ci/default.nix9
-rw-r--r--pkgs/development/arduino/arduino-core/default.nix37
-rw-r--r--pkgs/development/arduino/arduino-core/downloads.nix18
-rw-r--r--pkgs/development/arduino/platformio/default.nix4
-rw-r--r--pkgs/development/compilers/crystal/build-package.nix71
-rw-r--r--pkgs/development/compilers/crystal/crystal2nix.cr42
-rw-r--r--pkgs/development/compilers/crystal/crystal2nix.nix22
-rw-r--r--pkgs/development/compilers/crystal2nix/default.nix36
-rw-r--r--pkgs/development/compilers/crystal2nix/shards.nix14
-rw-r--r--pkgs/development/compilers/cudatoolkit/default.nix9
-rw-r--r--pkgs/development/compilers/ecl/default.nix32
-rw-r--r--pkgs/development/compilers/flasm/default.nix30
-rw-r--r--pkgs/development/compilers/flutter/default.nix4
-rw-r--r--pkgs/development/compilers/flutter/flutter.nix63
-rw-r--r--pkgs/development/compilers/gcc-arm-embedded/10/default.nix53
-rw-r--r--pkgs/development/compilers/gcc-arm-embedded/6/default.nix10
-rw-r--r--pkgs/development/compilers/gcc-arm-embedded/7/default.nix10
-rw-r--r--pkgs/development/compilers/gcc-arm-embedded/8/default.nix10
-rw-r--r--pkgs/development/compilers/gcc-arm-embedded/9/default.nix10
-rw-r--r--pkgs/development/compilers/gcc/10/Added-mcf-thread-model-support-from-mcfgthread.patch306
-rw-r--r--pkgs/development/compilers/gcc/10/default.nix22
-rw-r--r--pkgs/development/compilers/gcc/4.8/default.nix7
-rw-r--r--pkgs/development/compilers/gcc/4.9/default.nix7
-rw-r--r--pkgs/development/compilers/gcc/6/Added-mcf-thread-model-support-from-mcfgthread.patch285
-rw-r--r--pkgs/development/compilers/gcc/6/default.nix14
-rw-r--r--pkgs/development/compilers/gcc/7/Added-mcf-thread-model-support-from-mcfgthread.patch285
-rw-r--r--pkgs/development/compilers/gcc/7/default.nix14
-rw-r--r--pkgs/development/compilers/gcc/8/Added-mcf-thread-model-support-from-mcfgthread.patch306
-rw-r--r--pkgs/development/compilers/gcc/8/default.nix22
-rw-r--r--pkgs/development/compilers/gcc/9/Added-mcf-thread-model-support-from-mcfgthread.patch306
-rw-r--r--pkgs/development/compilers/gcc/9/default.nix14
-rw-r--r--pkgs/development/compilers/gcc/common/configure-flags.nix9
-rw-r--r--pkgs/development/compilers/gcc/common/mfcgthreads-patches-repo.nix1
-rwxr-xr-xpkgs/development/compilers/gcc/update-mcfgthread-patches.sh15
-rw-r--r--pkgs/development/compilers/ghc/8.10.3.nix256
-rw-r--r--pkgs/development/compilers/ghc/9.0.1.nix14
-rw-r--r--pkgs/development/compilers/go/2-dev.nix262
-rw-r--r--pkgs/development/compilers/go/ssl-cert-file-2-dev.patch45
-rw-r--r--pkgs/development/compilers/idris2/default.nix4
-rw-r--r--pkgs/development/compilers/llvm/10/libc++/default.nix3
-rw-r--r--pkgs/development/compilers/llvm/10/libc++abi.nix3
-rw-r--r--pkgs/development/compilers/llvm/10/libunwind.nix4
-rw-r--r--pkgs/development/compilers/llvm/11/libc++/default.nix3
-rw-r--r--pkgs/development/compilers/llvm/11/libc++abi.nix3
-rw-r--r--pkgs/development/compilers/llvm/11/libunwind.nix4
-rw-r--r--pkgs/development/compilers/llvm/7/libc++/default.nix3
-rw-r--r--pkgs/development/compilers/llvm/7/libc++abi.nix3
-rw-r--r--pkgs/development/compilers/llvm/8/libc++/default.nix3
-rw-r--r--pkgs/development/compilers/llvm/8/libc++abi.nix3
-rw-r--r--pkgs/development/compilers/llvm/8/libunwind.nix4
-rw-r--r--pkgs/development/compilers/llvm/8/llvm.nix9
-rw-r--r--pkgs/development/compilers/llvm/9/libc++/default.nix3
-rw-r--r--pkgs/development/compilers/llvm/9/libc++abi.nix3
-rw-r--r--pkgs/development/compilers/llvm/9/libunwind.nix4
-rw-r--r--pkgs/development/compilers/llvm/rocm/default.nix4
-rw-r--r--pkgs/development/compilers/nextpnr/default.nix18
-rw-r--r--pkgs/development/compilers/ocaml/4.12.nix6
-rw-r--r--pkgs/development/compilers/openjdk/14.nix157
-rw-r--r--pkgs/development/compilers/openjdk/darwin/default.nix4
-rw-r--r--pkgs/development/compilers/openjdk/default.nix22
-rw-r--r--pkgs/development/compilers/openjdk/openjfx/15.nix (renamed from pkgs/development/compilers/openjdk/openjfx/14.nix)14
-rw-r--r--pkgs/development/compilers/reason/default.nix9
-rw-r--r--pkgs/development/compilers/rust/1_45.nix15
-rw-r--r--pkgs/development/compilers/rust/1_48.nix15
-rw-r--r--pkgs/development/compilers/rust/default.nix15
-rw-r--r--pkgs/development/compilers/rust/rustc.nix15
-rw-r--r--pkgs/development/compilers/tinygo/default.nix21
-rw-r--r--pkgs/development/compilers/tinygo/go.mod11
-rw-r--r--pkgs/development/compilers/yosys/default.nix6
-rw-r--r--pkgs/development/compilers/z88dk/default.nix18
-rw-r--r--pkgs/development/compilers/zig/default.nix6
-rw-r--r--pkgs/development/go-modules/generic/default.nix9
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix96
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix7
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix6
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix.yaml581
-rw-r--r--pkgs/development/haskell-modules/configuration-nix.nix27
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix4530
-rw-r--r--pkgs/development/haskell-modules/lib.nix12
-rw-r--r--pkgs/development/haskell-modules/non-hackage-packages.nix5
-rw-r--r--pkgs/development/interpreters/cling/default.nix2
-rw-r--r--pkgs/development/interpreters/clojure/default.nix6
-rw-r--r--pkgs/development/interpreters/erlang/generic-builder.nix3
-rw-r--r--pkgs/development/interpreters/evcxr/default.nix6
-rw-r--r--pkgs/development/interpreters/lua-5/CVE-2019-6706.patch22
-rw-r--r--pkgs/development/interpreters/lua-5/default.nix23
-rw-r--r--pkgs/development/interpreters/lua-5/liblua.so.patch60
-rw-r--r--pkgs/development/interpreters/luajit/2.0.nix6
-rw-r--r--pkgs/development/interpreters/luajit/2.1.nix6
-rw-r--r--pkgs/development/interpreters/octave/default.nix111
-rw-r--r--pkgs/development/interpreters/perl/default.nix8
-rw-r--r--pkgs/development/interpreters/php/generic.nix8
-rw-r--r--pkgs/development/interpreters/python/cpython/3.7/find_library.patch105
-rw-r--r--pkgs/development/interpreters/python/cpython/3.9/no-ldconfig.patch44
-rw-r--r--pkgs/development/interpreters/python/cpython/default.nix5
-rw-r--r--pkgs/development/interpreters/python/default.nix8
-rw-r--r--pkgs/development/interpreters/rakudo/default.nix4
-rw-r--r--pkgs/development/interpreters/rakudo/moarvm.nix4
-rw-r--r--pkgs/development/interpreters/rakudo/nqp.nix4
-rw-r--r--pkgs/development/interpreters/self/default.nix27
-rw-r--r--pkgs/development/libraries/CGAL/default.nix4
-rw-r--r--pkgs/development/libraries/a52dec/default.nix15
-rw-r--r--pkgs/development/libraries/accounts-qt/default.nix12
-rw-r--r--pkgs/development/libraries/aml/default.nix4
-rw-r--r--pkgs/development/libraries/arrow-cpp/default.nix3
-rw-r--r--pkgs/development/libraries/audiofile/default.nix2
-rw-r--r--pkgs/development/libraries/aws-c-cal/default.nix30
-rw-r--r--pkgs/development/libraries/aws-c-common/default.nix15
-rw-r--r--pkgs/development/libraries/aws-c-event-stream/default.nix9
-rw-r--r--pkgs/development/libraries/aws-c-io/default.nix32
-rw-r--r--pkgs/development/libraries/aws-checksums/default.nix19
-rw-r--r--pkgs/development/libraries/aws-sdk-cpp/cmake-dirs.patch10
-rw-r--r--pkgs/development/libraries/aws-sdk-cpp/default.nix16
-rw-r--r--pkgs/development/libraries/bcg729/default.nix30
-rw-r--r--pkgs/development/libraries/bctoolbox/default.nix6
-rw-r--r--pkgs/development/libraries/belcard/default.nix2
-rw-r--r--pkgs/development/libraries/belle-sip/default.nix8
-rw-r--r--pkgs/development/libraries/belr/default.nix10
-rw-r--r--pkgs/development/libraries/boost/1.75.nix15
-rw-r--r--pkgs/development/libraries/boost/generic.nix11
-rw-r--r--pkgs/development/libraries/botan/2.0.nix6
-rw-r--r--pkgs/development/libraries/botan/default.nix1
-rw-r--r--pkgs/development/libraries/botan/generic.nix7
-rw-r--r--pkgs/development/libraries/bzrtp/default.nix6
-rw-r--r--pkgs/development/libraries/cdo/default.nix9
-rw-r--r--pkgs/development/libraries/ceres-solver/default.nix4
-rw-r--r--pkgs/development/libraries/codec2/default.nix13
-rw-r--r--pkgs/development/libraries/crc32c/default.nix3
-rw-r--r--pkgs/development/libraries/entt/default.nix21
-rw-r--r--pkgs/development/libraries/ffmpegthumbnailer/default.nix9
-rw-r--r--pkgs/development/libraries/flatbuffers/default.nix15
-rw-r--r--pkgs/development/libraries/flite/default.nix24
-rw-r--r--pkgs/development/libraries/fmt/default.nix4
-rw-r--r--pkgs/development/libraries/folly/default.nix43
-rw-r--r--pkgs/development/libraries/gaia/default.nix4
-rw-r--r--pkgs/development/libraries/gdk-pixbuf/default.nix6
-rw-r--r--pkgs/development/libraries/gflags/default.nix4
-rw-r--r--pkgs/development/libraries/glew/1.10.nix7
-rw-r--r--pkgs/development/libraries/glew/default.nix5
-rw-r--r--pkgs/development/libraries/glib/default.nix4
-rw-r--r--pkgs/development/libraries/glibc/common.nix2
-rw-r--r--pkgs/development/libraries/glibc/darwin-cross-build.patch44
-rw-r--r--pkgs/development/libraries/gmp/5.1.x.nix5
-rw-r--r--pkgs/development/libraries/gmp/6.x.nix3
-rw-r--r--pkgs/development/libraries/gsm/default.nix3
-rw-r--r--pkgs/development/libraries/gstreamer/bad/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/base/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/core/default.nix6
-rw-r--r--pkgs/development/libraries/gstreamer/devtools/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/ges/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/good/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/libav/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/rtsp-server/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/ugly/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/vaapi/default.nix4
-rw-r--r--pkgs/development/libraries/gtk/3.x.nix13
-rw-r--r--pkgs/development/libraries/inih/default.nix30
-rw-r--r--pkgs/development/libraries/intel-media-driver/default.nix4
-rw-r--r--pkgs/development/libraries/itk/default.nix4
-rw-r--r--pkgs/development/libraries/java/lombok/default.nix10
-rw-r--r--pkgs/development/libraries/kde-frameworks/fetch.sh2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kded.nix14
-rw-r--r--pkgs/development/libraries/kde-frameworks/kglobalaccel.nix8
-rw-r--r--pkgs/development/libraries/kde-frameworks/kinit/0004-start_kdeinit-environ-hard-limit.patch2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kwindowsystem/0001-platform-plugins-path.patch50
-rw-r--r--pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix4
-rw-r--r--pkgs/development/libraries/kde-frameworks/kwindowsystem/platform-plugins-path.patch25
-rw-r--r--pkgs/development/libraries/kde-frameworks/purpose.nix3
-rw-r--r--pkgs/development/libraries/kde-frameworks/sonnet.nix4
-rw-r--r--pkgs/development/libraries/kde-frameworks/srcs.nix666
-rw-r--r--pkgs/development/libraries/kquickimageedit/default.nix19
-rw-r--r--pkgs/development/libraries/lcms/default.nix7
-rw-r--r--pkgs/development/libraries/lensfun/default.nix2
-rw-r--r--pkgs/development/libraries/libAfterImage/default.nix25
-rw-r--r--pkgs/development/libraries/libabigail/default.nix4
-rw-r--r--pkgs/development/libraries/libbacktrace/default.nix5
-rw-r--r--pkgs/development/libraries/libbfd/default.nix2
-rw-r--r--pkgs/development/libraries/libcryptui/default.nix2
-rw-r--r--pkgs/development/libraries/libctemplate/default.nix19
-rw-r--r--pkgs/development/libraries/libdatrie/default.nix31
-rw-r--r--pkgs/development/libraries/libev/default.nix5
-rw-r--r--pkgs/development/libraries/libexecinfo/default.nix5
-rw-r--r--pkgs/development/libraries/libfprint/default.nix4
-rw-r--r--pkgs/development/libraries/libgcrypt/default.nix5
-rw-r--r--pkgs/development/libraries/libiberty/default.nix4
-rw-r--r--pkgs/development/libraries/libiconv/default.nix4
-rw-r--r--pkgs/development/libraries/libinsane/default.nix4
-rw-r--r--pkgs/development/libraries/libjpeg-turbo/default.nix5
-rw-r--r--pkgs/development/libraries/liblangtag/default.nix10
-rw-r--r--pkgs/development/libraries/liblinphone/default.nix2
-rw-r--r--pkgs/development/libraries/libmd/default.nix12
-rw-r--r--pkgs/development/libraries/libmesode/default.nix37
-rw-r--r--pkgs/development/libraries/libmodulemd/default.nix2
-rw-r--r--pkgs/development/libraries/libnice/default.nix9
-rw-r--r--pkgs/development/libraries/libomxil-bellagio/default.nix2
-rw-r--r--pkgs/development/libraries/libopcodes/default.nix2
-rw-r--r--pkgs/development/libraries/libopus/default.nix2
-rw-r--r--pkgs/development/libraries/libow/default.nix4
-rw-r--r--pkgs/development/libraries/libpfm/default.nix4
-rw-r--r--pkgs/development/libraries/libquotient/default.nix6
-rw-r--r--pkgs/development/libraries/libraspberrypi/default.nix41
-rw-r--r--pkgs/development/libraries/librealsense/default.nix8
-rw-r--r--pkgs/development/libraries/libressl/default.nix4
-rw-r--r--pkgs/development/libraries/libseccomp/default.nix2
-rw-r--r--pkgs/development/libraries/libsmartcols/default.nix32
-rw-r--r--pkgs/development/libraries/libsolv/default.nix2
-rw-r--r--pkgs/development/libraries/libstrophe/default.nix25
-rw-r--r--pkgs/development/libraries/libsurvive/default.nix40
-rw-r--r--pkgs/development/libraries/libtorrent-rasterbar/1.1.nix (renamed from pkgs/development/libraries/libtorrent-rasterbar/1.1/default.nix)0
-rw-r--r--pkgs/development/libraries/libtorrent-rasterbar/1.2.nix (renamed from pkgs/development/libraries/libtorrent-rasterbar/1.2/default.nix)7
-rw-r--r--pkgs/development/libraries/libtorrent-rasterbar/default.nix47
-rw-r--r--pkgs/development/libraries/libusb1/default.nix4
-rw-r--r--pkgs/development/libraries/libuvc/default.nix30
-rw-r--r--pkgs/development/libraries/libva/utils.nix4
-rw-r--r--pkgs/development/libraries/libxml2/default.nix2
-rw-r--r--pkgs/development/libraries/libxsmm/default.nix2
-rw-r--r--pkgs/development/libraries/libzra/default.nix27
-rw-r--r--pkgs/development/libraries/mesa/default.nix45
-rw-r--r--pkgs/development/libraries/mp4v2/default.nix5
-rw-r--r--pkgs/development/libraries/mp4v2/fix-build-clang.patch13
-rw-r--r--pkgs/development/libraries/ncurses/default.nix2
-rw-r--r--pkgs/development/libraries/neon/default.nix4
-rw-r--r--pkgs/development/libraries/nghttp2/default.nix2
-rw-r--r--pkgs/development/libraries/ngt/default.nix15
-rw-r--r--pkgs/development/libraries/notcurses/default.nix49
-rw-r--r--pkgs/development/libraries/nss/default.nix4
-rw-r--r--pkgs/development/libraries/ntdb/default.nix2
-rw-r--r--pkgs/development/libraries/ntirpc/default.nix4
-rw-r--r--pkgs/development/libraries/nuspell/default.nix9
-rw-r--r--pkgs/development/libraries/oatpp/default.nix29
-rw-r--r--pkgs/development/libraries/opencv/4.x.nix4
-rw-r--r--pkgs/development/libraries/openssl/default.nix6
-rw-r--r--pkgs/development/libraries/ortp/default.nix2
-rw-r--r--pkgs/development/libraries/pcaudiolib/default.nix10
-rw-r--r--pkgs/development/libraries/physfs/default.nix7
-rw-r--r--pkgs/development/libraries/physics/yoda/default.nix2
-rw-r--r--pkgs/development/libraries/pmix/default.nix4
-rw-r--r--pkgs/development/libraries/polkit/default.nix3
-rw-r--r--pkgs/development/libraries/poppler/default.nix4
-rw-r--r--pkgs/development/libraries/ppl/default.nix4
-rw-r--r--pkgs/development/libraries/properties-cpp/default.nix32
-rw-r--r--pkgs/development/libraries/pslib/default.nix43
-rw-r--r--pkgs/development/libraries/qrcodegen/default.nix34
-rw-r--r--pkgs/development/libraries/qrupdate/default.nix8
-rw-r--r--pkgs/development/libraries/qt-5/5.12/default.nix25
-rw-r--r--pkgs/development/libraries/qt-5/5.12/fetch.sh3
-rw-r--r--pkgs/development/libraries/qt-5/5.12/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch30
-rw-r--r--pkgs/development/libraries/qt-5/5.12/qtlocation-gcc-9.patch21
-rw-r--r--pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-no-platform-check.patch16
-rw-r--r--pkgs/development/libraries/qt-5/5.12/srcs.nix323
-rw-r--r--pkgs/development/libraries/qt-5/5.14/default.nix19
-rw-r--r--pkgs/development/libraries/qt-5/5.14/fetch.sh3
-rw-r--r--pkgs/development/libraries/qt-5/5.14/qtlocation-gcc-9.patch21
-rw-r--r--pkgs/development/libraries/qt-5/5.14/qtwebkit-darwin-no-readline.patch15
-rw-r--r--pkgs/development/libraries/qt-5/5.15/default.nix19
-rw-r--r--pkgs/development/libraries/qt-5/5.15/fetch.sh3
-rw-r--r--pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0001-Revert-QCocoaDrag-set-image-only-on-the-first-drag-i.patch47
-rw-r--r--pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0002-Revert-QCocoaDrag-drag-make-sure-clipboard-is-ours-a.patch40
-rw-r--r--pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0003-Revert-QCocoaDrag-maybeDragMultipleItems-fix-erroneo.patch27
-rw-r--r--pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0004-Revert-QCocoaDrag-avoid-using-the-deprecated-API-if-.patch192
-rw-r--r--pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0005-Revert-macOS-Fix-use-of-deprecated-NSOffState.patch26
-rw-r--r--pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0006-git-checkout-v5.15.0-src-plugins-platforms-cocoa-qco.patch77
-rw-r--r--pkgs/development/libraries/qt-5/5.15/srcs.nix336
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtlocation.nix1
-rw-r--r--pkgs/development/libraries/qtpbfimageplugin/default.nix8
-rw-r--r--pkgs/development/libraries/qtstyleplugin-kvantum-qt4/default.nix4
-rw-r--r--pkgs/development/libraries/range-v3/default.nix4
-rw-r--r--pkgs/development/libraries/range-v3/gcc10.patch133
-rw-r--r--pkgs/development/libraries/redkite/default.nix8
-rw-r--r--pkgs/development/libraries/rocclr/default.nix4
-rw-r--r--pkgs/development/libraries/rocksdb/default.nix2
-rw-r--r--pkgs/development/libraries/rocm-comgr/default.nix2
-rw-r--r--pkgs/development/libraries/rocm-device-libs/default.nix2
-rw-r--r--pkgs/development/libraries/rocm-opencl-runtime/default.nix2
-rw-r--r--pkgs/development/libraries/rocm-runtime/default.nix2
-rw-r--r--pkgs/development/libraries/rocm-thunk/default.nix4
-rw-r--r--pkgs/development/libraries/s2n/default.nix29
-rw-r--r--pkgs/development/libraries/science/math/mkl/default.nix5
-rw-r--r--pkgs/development/libraries/science/math/openblas/default.nix4
-rw-r--r--pkgs/development/libraries/signond/default.nix30
-rw-r--r--pkgs/development/libraries/simgear/default.nix4
-rw-r--r--pkgs/development/libraries/smesh/default.nix5
-rw-r--r--pkgs/development/libraries/snappy/default.nix4
-rw-r--r--pkgs/development/libraries/sonic/default.nix24
-rw-r--r--pkgs/development/libraries/stellarsolver/default.nix30
-rw-r--r--pkgs/development/libraries/sundials/2.x.nix59
-rw-r--r--pkgs/development/libraries/sundials/default.nix57
-rw-r--r--pkgs/development/libraries/thrift/default.nix4
-rw-r--r--pkgs/development/libraries/umockdev/default.nix60
-rw-r--r--pkgs/development/libraries/umockdev/disable-failed-test.patch13
-rw-r--r--pkgs/development/libraries/umockdev/fix-test-paths.patch12
-rw-r--r--pkgs/development/libraries/utf8cpp/default.nix4
-rw-r--r--pkgs/development/libraries/utf8proc/default.nix4
-rw-r--r--pkgs/development/libraries/vtk/7.x.nix77
-rw-r--r--pkgs/development/libraries/vtk/8.x.nix9
-rw-r--r--pkgs/development/libraries/vtk/9.x.nix94
-rw-r--r--pkgs/development/libraries/vtk/default.nix67
-rw-r--r--pkgs/development/libraries/vtk/generic.nix96
-rw-r--r--pkgs/development/libraries/vulkan-headers/default.nix4
-rw-r--r--pkgs/development/libraries/vulkan-loader/default.nix4
-rw-r--r--pkgs/development/libraries/waffle/default.nix29
-rw-r--r--pkgs/development/libraries/webkitgtk/fix-bubblewrap-paths.patch3
-rw-r--r--pkgs/development/libraries/websocket++/default.nix2
-rw-r--r--pkgs/development/libraries/wxsqlite3/default.nix4
-rw-r--r--pkgs/development/libraries/xed/default.nix46
-rw-r--r--pkgs/development/libraries/zchunk/default.nix18
-rw-r--r--pkgs/development/libraries/zlib/default.nix10
-rw-r--r--pkgs/development/lua-modules/generic/default.nix11
-rw-r--r--pkgs/development/misc/resholve/README.md138
-rw-r--r--pkgs/development/misc/resholve/default.nix9
-rw-r--r--pkgs/development/misc/resholve/deps.nix120
-rw-r--r--pkgs/development/misc/resholve/resholve-package.nix97
-rw-r--r--pkgs/development/misc/resholve/resholve.nix74
-rw-r--r--pkgs/development/misc/rpiboot/unstable.nix20
-rw-r--r--pkgs/development/node-packages/default.nix19
-rw-r--r--pkgs/development/node-packages/node-packages.json7
-rw-r--r--pkgs/development/node-packages/node-packages.nix11160
-rw-r--r--pkgs/development/ocaml-modules/arp/default.nix57
-rw-r--r--pkgs/development/ocaml-modules/biocaml/default.nix12
-rw-r--r--pkgs/development/ocaml-modules/bisect_ppx-ocamlbuild/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/bisect_ppx/default.nix11
-rw-r--r--pkgs/development/ocaml-modules/bistro/default.nix13
-rw-r--r--pkgs/development/ocaml-modules/camlzip/default.nix31
-rw-r--r--pkgs/development/ocaml-modules/cfstream/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/csv/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/csv/lwt.nix2
-rw-r--r--pkgs/development/ocaml-modules/diet/default.nix26
-rw-r--r--pkgs/development/ocaml-modules/dns/certify.nix33
-rw-r--r--pkgs/development/ocaml-modules/dns/cli.nix48
-rw-r--r--pkgs/development/ocaml-modules/dns/mirage.nix18
-rw-r--r--pkgs/development/ocaml-modules/dns/resolver.nix32
-rw-r--r--pkgs/development/ocaml-modules/dns/server.nix34
-rw-r--r--pkgs/development/ocaml-modules/dns/stub.nix33
-rw-r--r--pkgs/development/ocaml-modules/dns/tsig.nix22
-rw-r--r--pkgs/development/ocaml-modules/ethernet/default.nix42
-rw-r--r--pkgs/development/ocaml-modules/irmin/chunk.nix18
-rw-r--r--pkgs/development/ocaml-modules/janestreet/0.13.nix601
-rw-r--r--pkgs/development/ocaml-modules/janestreet/0.14.nix857
-rw-r--r--pkgs/development/ocaml-modules/janestreet/janePackage_0_14.nix (renamed from pkgs/development/ocaml-modules/janestreet/janePackage_0_13.nix)14
-rw-r--r--pkgs/development/ocaml-modules/jingoo/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/lambda-term/default.nix23
-rw-r--r--pkgs/development/ocaml-modules/lwt-dllist/default.nix26
-rw-r--r--pkgs/development/ocaml-modules/mew/default.nix27
-rw-r--r--pkgs/development/ocaml-modules/mew_vi/default.nix27
-rw-r--r--pkgs/development/ocaml-modules/mirage-block-ramdisk/default.nix29
-rw-r--r--pkgs/development/ocaml-modules/mirage-block-unix/default.nix29
-rw-r--r--pkgs/development/ocaml-modules/mirage-block/combinators.nix17
-rw-r--r--pkgs/development/ocaml-modules/mirage-console/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/mirage-console/unix.nix17
-rw-r--r--pkgs/development/ocaml-modules/mirage-crypto/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/mirage-crypto/rng-async.nix25
-rw-r--r--pkgs/development/ocaml-modules/mirage-crypto/rng-mirage.nix6
-rw-r--r--pkgs/development/ocaml-modules/mirage-nat/default.nix50
-rw-r--r--pkgs/development/ocaml-modules/mirage-random-test/default.nix30
-rw-r--r--pkgs/development/ocaml-modules/mirage-vnetif/default.nix40
-rw-r--r--pkgs/development/ocaml-modules/mirage/default.nix23
-rw-r--r--pkgs/development/ocaml-modules/ocaml-lsp/default.nix20
-rw-r--r--pkgs/development/ocaml-modules/ocaml-monadic/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ocaml-r/default.nix19
-rw-r--r--pkgs/development/ocaml-modules/opam-format/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/opam-repository/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/opam-state/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ounit2/default.nix9
-rw-r--r--pkgs/development/ocaml-modules/pcap-format/default.nix41
-rw-r--r--pkgs/development/ocaml-modules/phylogenetics/default.nix11
-rw-r--r--pkgs/development/ocaml-modules/ppx_blob/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/ppx_import/default.nix15
-rw-r--r--pkgs/development/ocaml-modules/ppxlib/default.nix33
-rw-r--r--pkgs/development/ocaml-modules/sedlex/2.nix16
-rw-r--r--pkgs/development/ocaml-modules/sqlexpr/default.nix26
-rw-r--r--pkgs/development/ocaml-modules/sqlexpr/ppx.nix17
-rw-r--r--pkgs/development/ocaml-modules/syslog-message/default.nix35
-rw-r--r--pkgs/development/ocaml-modules/tcpip/default.nix70
-rw-r--r--pkgs/development/ocaml-modules/trie/default.nix23
-rw-r--r--pkgs/development/ocaml-modules/zarith/default.nix6
-rw-r--r--pkgs/development/php-packages/imagick/default.nix7
-rw-r--r--pkgs/development/python-modules/HAP-python/default.nix32
-rw-r--r--pkgs/development/python-modules/JPype1/default.nix4
-rw-r--r--pkgs/development/python-modules/WSME/default.nix3
-rw-r--r--pkgs/development/python-modules/abodepy/default.nix4
-rw-r--r--pkgs/development/python-modules/acme/default.nix5
-rw-r--r--pkgs/development/python-modules/adb-shell/default.nix4
-rw-r--r--pkgs/development/python-modules/adblock/default.nix63
-rw-r--r--pkgs/development/python-modules/aenum/default.nix3
-rw-r--r--pkgs/development/python-modules/aiobotocore/default.nix42
-rw-r--r--pkgs/development/python-modules/aioitertools/default.nix35
-rw-r--r--pkgs/development/python-modules/aiomultiprocess/default.nix36
-rw-r--r--pkgs/development/python-modules/aiomysql/default.nix2
-rw-r--r--pkgs/development/python-modules/aiopulse/default.nix37
-rw-r--r--pkgs/development/python-modules/ambiclimate/default.nix34
-rw-r--r--pkgs/development/python-modules/ansi2html/default.nix3
-rw-r--r--pkgs/development/python-modules/aplpy/default.nix21
-rw-r--r--pkgs/development/python-modules/asdf/default.nix9
-rw-r--r--pkgs/development/python-modules/asgiref/default.nix24
-rw-r--r--pkgs/development/python-modules/astropy-extension-helpers/default.nix31
-rw-r--r--pkgs/development/python-modules/astropy-extension-helpers/permissions.patch20
-rw-r--r--pkgs/development/python-modules/astropy/default.nix26
-rw-r--r--pkgs/development/python-modules/astroquery/default.nix6
-rw-r--r--pkgs/development/python-modules/asyncio-dgram/default.nix33
-rw-r--r--pkgs/development/python-modules/asyncssh/default.nix4
-rw-r--r--pkgs/development/python-modules/asyncwhois/default.nix36
-rw-r--r--pkgs/development/python-modules/auth0-python/default.nix4
-rw-r--r--pkgs/development/python-modules/autobahn/default.nix4
-rw-r--r--pkgs/development/python-modules/avea/default.nix32
-rw-r--r--pkgs/development/python-modules/awkward/default.nix29
-rw-r--r--pkgs/development/python-modules/awkward0/default.nix39
-rw-r--r--pkgs/development/python-modules/awkward1/default.nix35
-rw-r--r--pkgs/development/python-modules/azure-mgmt-cdn/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-databoxedge/default.nix32
-rw-r--r--pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix6
-rw-r--r--pkgs/development/python-modules/azure-mgmt-recoveryservices/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-synapse/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-synapse-artifacts/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-synapse-spark/default.nix4
-rw-r--r--pkgs/development/python-modules/backports_unittest-mock/default.nix5
-rw-r--r--pkgs/development/python-modules/bids-validator/default.nix4
-rw-r--r--pkgs/development/python-modules/billiard/default.nix14
-rw-r--r--pkgs/development/python-modules/bleak/default.nix4
-rw-r--r--pkgs/development/python-modules/blockchain/default.nix35
-rw-r--r--pkgs/development/python-modules/bluepy/default.nix2
-rw-r--r--pkgs/development/python-modules/boto3/default.nix4
-rw-r--r--pkgs/development/python-modules/botocore/default.nix4
-rw-r--r--pkgs/development/python-modules/branca/default.nix4
-rw-r--r--pkgs/development/python-modules/breathe/default.nix4
-rw-r--r--pkgs/development/python-modules/buildbot/default.nix4
-rw-r--r--pkgs/development/python-modules/buildbot/pkg.nix2
-rw-r--r--pkgs/development/python-modules/buildbot/plugins.nix10
-rw-r--r--pkgs/development/python-modules/buildbot/worker.nix2
-rw-r--r--pkgs/development/python-modules/bumps/default.nix4
-rw-r--r--pkgs/development/python-modules/cadquery/default.nix45
-rw-r--r--pkgs/development/python-modules/casbin/default.nix4
-rw-r--r--pkgs/development/python-modules/cfn-lint/default.nix36
-rw-r--r--pkgs/development/python-modules/chalice/default.nix4
-rw-r--r--pkgs/development/python-modules/channels-redis/default.nix43
-rw-r--r--pkgs/development/python-modules/channels/default.nix4
-rw-r--r--pkgs/development/python-modules/cheroot/default.nix10
-rw-r--r--pkgs/development/python-modules/ciscomobilityexpress/default.nix20
-rw-r--r--pkgs/development/python-modules/clickhouse-driver/default.nix4
-rw-r--r--pkgs/development/python-modules/clifford/default.nix7
-rw-r--r--pkgs/development/python-modules/cloudflare/default.nix4
-rw-r--r--pkgs/development/python-modules/confuse/default.nix27
-rw-r--r--pkgs/development/python-modules/connect_box/default.nix42
-rw-r--r--pkgs/development/python-modules/coveralls/default.nix4
-rw-r--r--pkgs/development/python-modules/croniter/default.nix4
-rw-r--r--pkgs/development/python-modules/cryptography/default.nix4
-rw-r--r--pkgs/development/python-modules/cryptography/vectors.nix2
-rw-r--r--pkgs/development/python-modules/cypari2/default.nix6
-rw-r--r--pkgs/development/python-modules/daphne/default.nix4
-rw-r--r--pkgs/development/python-modules/dask/default.nix1
-rw-r--r--pkgs/development/python-modules/datasets/default.nix4
-rw-r--r--pkgs/development/python-modules/datasette/default.nix12
-rw-r--r--pkgs/development/python-modules/datashader/default.nix7
-rw-r--r--pkgs/development/python-modules/dbutils/default.nix21
-rw-r--r--pkgs/development/python-modules/denonavr/default.nix22
-rw-r--r--pkgs/development/python-modules/discordpy/default.nix4
-rw-r--r--pkgs/development/python-modules/django-cors-headers/default.nix4
-rw-r--r--pkgs/development/python-modules/django-storages/default.nix4
-rw-r--r--pkgs/development/python-modules/django/3.nix4
-rw-r--r--pkgs/development/python-modules/django_contrib_comments/default.nix7
-rw-r--r--pkgs/development/python-modules/dnachisel/default.nix41
-rw-r--r--pkgs/development/python-modules/docplex/default.nix4
-rw-r--r--pkgs/development/python-modules/drms/default.nix14
-rw-r--r--pkgs/development/python-modules/elementpath/default.nix4
-rw-r--r--pkgs/development/python-modules/extension-helpers/default.nix41
-rw-r--r--pkgs/development/python-modules/eyed3/default.nix4
-rw-r--r--pkgs/development/python-modules/fastparquet/default.nix7
-rw-r--r--pkgs/development/python-modules/fiona/default.nix4
-rw-r--r--pkgs/development/python-modules/fixtures/default.nix2
-rw-r--r--pkgs/development/python-modules/flametree/default.nix26
-rw-r--r--pkgs/development/python-modules/flask-socketio/default.nix24
-rw-r--r--pkgs/development/python-modules/flask-testing/default.nix4
-rw-r--r--pkgs/development/python-modules/flower/default.nix2
-rw-r--r--pkgs/development/python-modules/flufl/i18n.nix4
-rw-r--r--pkgs/development/python-modules/fontparts/default.nix8
-rw-r--r--pkgs/development/python-modules/fonttools/default.nix6
-rw-r--r--pkgs/development/python-modules/geopandas/default.nix17
-rw-r--r--pkgs/development/python-modules/glances-api/default.nix34
-rw-r--r--pkgs/development/python-modules/globus-sdk/default.nix4
-rw-r--r--pkgs/development/python-modules/gmpy2/default.nix15
-rw-r--r--pkgs/development/python-modules/google_cloud_bigquery/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_resource_manager/default.nix4
-rw-r--r--pkgs/development/python-modules/google_cloud_runtimeconfig/default.nix4
-rw-r--r--pkgs/development/python-modules/gpy/default.nix41
-rw-r--r--pkgs/development/python-modules/hmmlearn/default.nix2
-rw-r--r--pkgs/development/python-modules/hole/default.nix33
-rw-r--r--pkgs/development/python-modules/howdoi/default.nix4
-rw-r--r--pkgs/development/python-modules/hstspreload/default.nix6
-rw-r--r--pkgs/development/python-modules/htmltreediff/default.nix26
-rw-r--r--pkgs/development/python-modules/hvac/default.nix4
-rw-r--r--pkgs/development/python-modules/imageio-ffmpeg/default.nix9
-rw-r--r--pkgs/development/python-modules/imbalanced-learn/default.nix20
-rw-r--r--pkgs/development/python-modules/impacket/default.nix10
-rw-r--r--pkgs/development/python-modules/influxdb-client/default.nix4
-rw-r--r--pkgs/development/python-modules/ircstates/default.nix4
-rw-r--r--pkgs/development/python-modules/jc/default.nix4
-rw-r--r--pkgs/development/python-modules/jinja2/default.nix2
-rw-r--r--pkgs/development/python-modules/jsonfield/default.nix24
-rw-r--r--pkgs/development/python-modules/jupyterlab-git/default.nix4
-rw-r--r--pkgs/development/python-modules/keepkey/default.nix4
-rw-r--r--pkgs/development/python-modules/ldapdomaindump/default.nix24
-rw-r--r--pkgs/development/python-modules/libusb1/default.nix4
-rw-r--r--pkgs/development/python-modules/lightgbm/default.nix4
-rw-r--r--pkgs/development/python-modules/liquidctl/default.nix37
-rw-r--r--pkgs/development/python-modules/macropy/default.nix2
-rw-r--r--pkgs/development/python-modules/mautrix/default.nix4
-rw-r--r--pkgs/development/python-modules/mediafile/default.nix44
-rw-r--r--pkgs/development/python-modules/micawber/default.nix4
-rw-r--r--pkgs/development/python-modules/mocket/default.nix4
-rw-r--r--pkgs/development/python-modules/modeled/default.nix24
-rw-r--r--pkgs/development/python-modules/mpd2/default.nix8
-rw-r--r--pkgs/development/python-modules/msgpack/default.nix5
-rw-r--r--pkgs/development/python-modules/mwparserfromhell/default.nix4
-rw-r--r--pkgs/development/python-modules/mypy/default.nix40
-rw-r--r--pkgs/development/python-modules/mysqlclient/default.nix4
-rw-r--r--pkgs/development/python-modules/netcdf4/default.nix4
-rw-r--r--pkgs/development/python-modules/netdata/default.nix33
-rw-r--r--pkgs/development/python-modules/nocaselist/default.nix4
-rw-r--r--pkgs/development/python-modules/numexpr/default.nix4
-rw-r--r--pkgs/development/python-modules/opensensemap-api/default.nix37
-rw-r--r--pkgs/development/python-modules/openwrt-luci-rpc/default.nix4
-rw-r--r--pkgs/development/python-modules/ovito/default.nix11
-rw-r--r--pkgs/development/python-modules/owslib/default.nix4
-rw-r--r--pkgs/development/python-modules/paho-mqtt/default.nix4
-rw-r--r--pkgs/development/python-modules/paramz/default.nix8
-rw-r--r--pkgs/development/python-modules/parsimonious/default.nix3
-rw-r--r--pkgs/development/python-modules/paste/default.nix4
-rw-r--r--pkgs/development/python-modules/patator/default.nix19
-rw-r--r--pkgs/development/python-modules/pipx/default.nix6
-rw-r--r--pkgs/development/python-modules/pkgconfig/default.nix15
-rw-r--r--pkgs/development/python-modules/progressbar2/default.nix25
-rw-r--r--pkgs/development/python-modules/psautohint/default.nix7
-rw-r--r--pkgs/development/python-modules/pulp/default.nix4
-rw-r--r--pkgs/development/python-modules/py-air-control-exporter/default.nix11
-rw-r--r--pkgs/development/python-modules/pyatv/default.nix4
-rw-r--r--pkgs/development/python-modules/pyaxmlparser/default.nix2
-rw-r--r--pkgs/development/python-modules/pybullet/default.nix4
-rw-r--r--pkgs/development/python-modules/pycapnp/default.nix31
-rw-r--r--pkgs/development/python-modules/pychromecast/default.nix10
-rw-r--r--pkgs/development/python-modules/pyclipper/default.nix4
-rw-r--r--pkgs/development/python-modules/pydantic/default.nix15
-rw-r--r--pkgs/development/python-modules/pydicom/default.nix48
-rw-r--r--pkgs/development/python-modules/pyerfa/default.nix42
-rw-r--r--pkgs/development/python-modules/pyeverlights/default.nix30
-rw-r--r--pkgs/development/python-modules/pyftdi/default.nix25
-rw-r--r--pkgs/development/python-modules/pygal/default.nix13
-rw-r--r--pkgs/development/python-modules/pygame/default.nix4
-rw-r--r--pkgs/development/python-modules/pyhomematic/default.nix4
-rw-r--r--pkgs/development/python-modules/pyi2cflash/default.nix31
-rw-r--r--pkgs/development/python-modules/pykka/default.nix28
-rw-r--r--pkgs/development/python-modules/pylast/default.nix4
-rw-r--r--pkgs/development/python-modules/pyppeteer/default.nix4
-rw-r--r--pkgs/development/python-modules/pyqt/5.x.nix4
-rw-r--r--pkgs/development/python-modules/pyro4/default.nix8
-rw-r--r--pkgs/development/python-modules/pyrsistent/default.nix3
-rw-r--r--pkgs/development/python-modules/pyscreenshot/default.nix4
-rw-r--r--pkgs/development/python-modules/pyspiflash/default.nix31
-rw-r--r--pkgs/development/python-modules/pysqlcipher3/default.nix24
-rw-r--r--pkgs/development/python-modules/pysvn/default.nix5
-rw-r--r--pkgs/development/python-modules/pysychonaut/default.nix28
-rw-r--r--pkgs/development/python-modules/pytest-astropy-header/default.nix18
-rw-r--r--pkgs/development/python-modules/pytest-black/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-datafiles/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-mypy/default.nix5
-rw-r--r--pkgs/development/python-modules/pytest-trio/default.nix6
-rw-r--r--pkgs/development/python-modules/python-codon-tables/default.nix27
-rw-r--r--pkgs/development/python-modules/python-engineio/default.nix23
-rw-r--r--pkgs/development/python-modules/python-mystrom/default.nix45
-rw-r--r--pkgs/development/python-modules/python-opendata-transport/default.nix36
-rw-r--r--pkgs/development/python-modules/python-socketio/default.nix44
-rw-r--r--pkgs/development/python-modules/python-tado/default.nix26
-rw-r--r--pkgs/development/python-modules/python-whois/default.nix41
-rw-r--r--pkgs/development/python-modules/pythonix/default.nix16
-rw-r--r--pkgs/development/python-modules/pythonocc-core/default.nix15
-rw-r--r--pkgs/development/python-modules/pytun/default.nix6
-rw-r--r--pkgs/development/python-modules/pyvcd/default.nix4
-rw-r--r--pkgs/development/python-modules/pyvips/default.nix4
-rw-r--r--pkgs/development/python-modules/pywilight/default.nix32
-rw-r--r--pkgs/development/python-modules/pywizlight/default.nix34
-rw-r--r--pkgs/development/python-modules/quandl/default.nix19
-rw-r--r--pkgs/development/python-modules/reflink/default.nix33
-rw-r--r--pkgs/development/python-modules/reproject/default.nix19
-rw-r--r--pkgs/development/python-modules/requests-hawk/default.nix4
-rw-r--r--pkgs/development/python-modules/runway-python/default.nix4
-rw-r--r--pkgs/development/python-modules/s3fs/default.nix4
-rw-r--r--pkgs/development/python-modules/sane/default.nix27
-rw-r--r--pkgs/development/python-modules/schiene/default.nix33
-rw-r--r--pkgs/development/python-modules/seaborn/default.nix4
-rw-r--r--pkgs/development/python-modules/setuptools-scm-git-archive/default.nix3
-rw-r--r--pkgs/development/python-modules/shapely/default.nix3
-rw-r--r--pkgs/development/python-modules/shapely/library-paths.patch11
-rw-r--r--pkgs/development/python-modules/slixmpp/default.nix4
-rw-r--r--pkgs/development/python-modules/smart_open/default.nix4
-rw-r--r--pkgs/development/python-modules/spectral-cube/default.nix28
-rw-r--r--pkgs/development/python-modules/spyder-kernels/0.x.nix55
-rw-r--r--pkgs/development/python-modules/sqlalchemy-migrate/default.nix4
-rw-r--r--pkgs/development/python-modules/sqlite-fts4/default.nix31
-rw-r--r--pkgs/development/python-modules/sqlite-utils/default.nix20
-rw-r--r--pkgs/development/python-modules/sqlmap/default.nix6
-rw-r--r--pkgs/development/python-modules/sunpy/default.nix25
-rw-r--r--pkgs/development/python-modules/sympy/default.nix4
-rw-r--r--pkgs/development/python-modules/tasklib/default.nix4
-rw-r--r--pkgs/development/python-modules/telethon/default.nix7
-rw-r--r--pkgs/development/python-modules/tensorflow/1/default.nix5
-rw-r--r--pkgs/development/python-modules/tld/default.nix4
-rw-r--r--pkgs/development/python-modules/tlslite-ng/default.nix4
-rw-r--r--pkgs/development/python-modules/toggl-cli/default.nix4
-rw-r--r--pkgs/development/python-modules/toposort/default.nix4
-rw-r--r--pkgs/development/python-modules/torchvision/default.nix54
-rw-r--r--pkgs/development/python-modules/tqdm/default.nix4
-rw-r--r--pkgs/development/python-modules/transformers/default.nix6
-rw-r--r--pkgs/development/python-modules/trimesh/default.nix4
-rw-r--r--pkgs/development/python-modules/trytond/default.nix4
-rw-r--r--pkgs/development/python-modules/typing-inspect/default.nix2
-rw-r--r--pkgs/development/python-modules/ufonormalizer/default.nix4
-rw-r--r--pkgs/development/python-modules/uproot-methods/default.nix28
-rw-r--r--pkgs/development/python-modules/uproot/default.nix59
-rw-r--r--pkgs/development/python-modules/uproot3-methods/default.nix30
-rw-r--r--pkgs/development/python-modules/uproot3/default.nix44
-rw-r--r--pkgs/development/python-modules/vcver/default.nix2
-rw-r--r--pkgs/development/python-modules/volkszaehler/default.nix33
-rw-r--r--pkgs/development/python-modules/weasyprint/default.nix4
-rw-r--r--pkgs/development/python-modules/weasyprint/library-paths.patch16
-rw-r--r--pkgs/development/python-modules/web/default.nix19
-rw-r--r--pkgs/development/python-modules/webthing/default.nix40
-rw-r--r--pkgs/development/python-modules/whois/default.nix32
-rw-r--r--pkgs/development/python-modules/wordcloud/default.nix21
-rw-r--r--pkgs/development/python-modules/wsnsimpy/default.nix31
-rw-r--r--pkgs/development/python-modules/xdot/default.nix15
-rw-r--r--pkgs/development/python-modules/xkcdpass/default.nix4
-rw-r--r--pkgs/development/python-modules/xml2rfc/default.nix11
-rw-r--r--pkgs/development/python-modules/xmodem/default.nix4
-rw-r--r--pkgs/development/python-modules/yowsup/default.nix2
-rw-r--r--pkgs/development/python-modules/yq/default.nix12
-rw-r--r--pkgs/development/python-modules/yq/jq-path.patch26
-rwxr-xr-xpkgs/development/python-modules/zstandard/default.nix4
-rw-r--r--pkgs/development/python-modules/zstd/default.nix4
-rw-r--r--pkgs/development/tools/analysis/clang-analyzer/0001-Fix-scan-build-to-use-NIX_CFLAGS_COMPILE.patch34
-rw-r--r--pkgs/development/tools/analysis/clang-analyzer/default.nix24
-rw-r--r--pkgs/development/tools/analysis/flow/default.nix4
-rw-r--r--pkgs/development/tools/analysis/lcov/default.nix27
-rw-r--r--pkgs/development/tools/analysis/tflint/default.nix6
-rw-r--r--pkgs/development/tools/analysis/tfsec/default.nix10
-rw-r--r--pkgs/development/tools/build-managers/bazel/buildtools/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/cmake/default.nix6
-rw-r--r--pkgs/development/tools/build-managers/dub/default.nix23
-rw-r--r--pkgs/development/tools/build-managers/leiningen/default.nix7
-rw-r--r--pkgs/development/tools/build-managers/meson/default.nix8
-rw-r--r--pkgs/development/tools/build-managers/rocm-cmake/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/sbt-extras/default.nix6
-rw-r--r--pkgs/development/tools/build-managers/sbt/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/shards/default.nix20
-rw-r--r--pkgs/development/tools/build-managers/wafHook/default.nix3
-rw-r--r--pkgs/development/tools/cargo-flamegraph/default.nix16
-rw-r--r--pkgs/development/tools/continuous-integration/buildkite-agent/default.nix2
-rw-r--r--pkgs/development/tools/continuous-integration/gitlab-runner/default.nix8
-rw-r--r--pkgs/development/tools/coursier/default.nix4
-rw-r--r--pkgs/development/tools/database/liquibase/default.nix4
-rw-r--r--pkgs/development/tools/database/litecli/default.nix24
-rw-r--r--pkgs/development/tools/database/pgcli/default.nix63
-rw-r--r--pkgs/development/tools/database/sqlitebrowser/default.nix6
-rw-r--r--pkgs/development/tools/documentation/gtk-doc/default.nix4
-rw-r--r--pkgs/development/tools/electron/default.nix1
-rw-r--r--pkgs/development/tools/electron/generic.nix3
-rw-r--r--pkgs/development/tools/flootty/default.nix2
-rw-r--r--pkgs/development/tools/github-commenter/default.nix2
-rw-r--r--pkgs/development/tools/go-minimock/default.nix26
-rw-r--r--pkgs/development/tools/haskell/haskell-language-server/default.nix36
-rw-r--r--pkgs/development/tools/haskell/haskell-language-server/hls-brittany.nix36
-rw-r--r--pkgs/development/tools/haskell/haskell-language-server/hls-explicit-imports-plugin.nix21
-rw-r--r--pkgs/development/tools/haskell/haskell-language-server/hls-hlint-plugin.nix4
-rw-r--r--pkgs/development/tools/haskell/haskell-language-server/hls-retrie-plugin.nix23
-rw-r--r--pkgs/development/tools/haskell/haskell-language-server/hls-tactics-plugin.nix12
-rwxr-xr-xpkgs/development/tools/haskell/haskell-language-server/update.sh32
-rw-r--r--pkgs/development/tools/hover/default.nix19
-rw-r--r--pkgs/development/tools/icestorm/default.nix20
-rw-r--r--pkgs/development/tools/impl/default.nix23
-rw-r--r--pkgs/development/tools/impl/deps.nix30
-rw-r--r--pkgs/development/tools/knightos/kcc/default.nix4
-rw-r--r--pkgs/development/tools/knightos/kimg/default.nix14
-rw-r--r--pkgs/development/tools/knightos/scas/default.nix10
-rw-r--r--pkgs/development/tools/knightos/z80e/default.nix4
-rw-r--r--pkgs/development/tools/lazygit/default.nix5
-rw-r--r--pkgs/development/tools/metals/default.nix4
-rw-r--r--pkgs/development/tools/misc/autoconf/2.69.nix52
-rw-r--r--pkgs/development/tools/misc/autoconf/default.nix11
-rw-r--r--pkgs/development/tools/misc/binutils/always-search-rpath.patch (renamed from pkgs/development/tools/misc/binutils/patches/2.31/always-search-rpath.patch)0
-rw-r--r--pkgs/development/tools/misc/binutils/build-components-separately.patch (renamed from pkgs/development/tools/misc/binutils/patches/2.34/build-components-separately.patch)0
-rw-r--r--pkgs/development/tools/misc/binutils/default.nix83
-rw-r--r--pkgs/development/tools/misc/binutils/deterministic.patch (renamed from pkgs/development/tools/misc/binutils/patches/2.31/deterministic.patch)0
-rw-r--r--pkgs/development/tools/misc/binutils/disambiguate-arm-targets.patch (renamed from pkgs/development/tools/misc/binutils/patches/2.31/disambiguate-arm-targets.patch)0
-rw-r--r--pkgs/development/tools/misc/binutils/no-plugins.patch (renamed from pkgs/development/tools/misc/binutils/patches/2.34/no-plugins.patch)0
-rw-r--r--pkgs/development/tools/misc/binutils/patches/2.31/0001-x86-Add-a-GNU_PROPERTY_X86_ISA_1_USED-note-if-needed.patch517
-rw-r--r--pkgs/development/tools/misc/binutils/patches/2.31/0001-x86-Properly-add-X86_ISA_1_NEEDED-property.patch137
-rw-r--r--pkgs/development/tools/misc/binutils/patches/2.31/0001-x86-Properly-merge-GNU_PROPERTY_X86_ISA_1_USED.patch583
-rw-r--r--pkgs/development/tools/misc/binutils/patches/2.31/build-components-separately.patch178
-rw-r--r--pkgs/development/tools/misc/binutils/patches/2.31/gold-symbol-visibility.patch79
-rw-r--r--pkgs/development/tools/misc/binutils/patches/2.31/no-plugins.patch19
-rw-r--r--pkgs/development/tools/misc/binutils/patches/2.34/always-search-rpath.patch14
-rw-r--r--pkgs/development/tools/misc/binutils/patches/2.34/deterministic.patch12
-rw-r--r--pkgs/development/tools/misc/binutils/patches/2.34/disambiguate-arm-targets.patch23
-rw-r--r--pkgs/development/tools/misc/circleci-cli/default.nix6
-rw-r--r--pkgs/development/tools/misc/clojure-lsp/default.nix21
-rw-r--r--pkgs/development/tools/misc/docopts/default.nix31
-rw-r--r--pkgs/development/tools/misc/docopts/deps.nix11
-rw-r--r--pkgs/development/tools/misc/fswatch/default.nix2
-rw-r--r--pkgs/development/tools/misc/hydra/default.nix3
-rw-r--r--pkgs/development/tools/misc/hydra/hydra-nix-receiveContents.patch18
-rw-r--r--pkgs/development/tools/misc/mdctags/default.nix22
-rw-r--r--pkgs/development/tools/misc/openocd/default.nix6
-rw-r--r--pkgs/development/tools/misc/rtss/default.nix22
-rw-r--r--pkgs/development/tools/misc/sccache/default.nix6
-rw-r--r--pkgs/development/tools/misc/sqitch/default.nix38
-rw-r--r--pkgs/development/tools/misc/terracognita/default.nix7
-rw-r--r--pkgs/development/tools/misc/terraform-ls/default.nix2
-rw-r--r--pkgs/development/tools/misc/tokei/default.nix6
-rw-r--r--pkgs/development/tools/misc/unused/default.nix23
-rw-r--r--pkgs/development/tools/mpfshell/default.nix11
-rw-r--r--pkgs/development/tools/ocaml/cppo/default.nix97
-rw-r--r--pkgs/development/tools/ocaml/cppo/ocamlbuild.nix17
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/camlp4.nix26
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix32
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/default.nix17
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/lwt.nix15
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/ocamlbuild.nix14
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/ppx.nix14
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/ppx_deriving_json.nix14
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/tyxml.nix16
-rw-r--r--pkgs/development/tools/ocaml/merlin/default.nix2
-rw-r--r--pkgs/development/tools/ocaml/merlin/dot-merlin-reader.nix6
-rw-r--r--pkgs/development/tools/ocaml/ocamlformat/generic.nix8
-rw-r--r--pkgs/development/tools/ocaml/utop/default.nix8
-rw-r--r--pkgs/development/tools/packer/default.nix4
-rw-r--r--pkgs/development/tools/packet-sd/default.nix2
-rw-r--r--pkgs/development/tools/pandoc/default.nix24
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/default.nix62
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammar.nix (renamed from pkgs/development/tools/parsing/tree-sitter/library.nix)12
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/default.nix45
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-agda.json10
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json10
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cpp.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-css.json10
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-fluent.json10
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-haskell.json10
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-javascript.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-julia.json10
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-lua.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ocaml.json10
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-python.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ql.json10
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-razor.json10
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-regex.json10
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ruby.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rust.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json10
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-swift.json10
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-verilog.json10
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/update.nix174
-rw-r--r--pkgs/development/tools/purescript/spago/default.nix4
-rw-r--r--pkgs/development/tools/purescript/spago/spago.nix33
-rw-r--r--pkgs/development/tools/quicktemplate/default.nix14
-rw-r--r--pkgs/development/tools/quicktemplate/deps.nix12
-rw-r--r--pkgs/development/tools/rust/cargo-c/default.nix8
-rw-r--r--pkgs/development/tools/rust/cargo-wipe/default.nix32
-rw-r--r--pkgs/development/tools/rust/racer/default.nix29
-rw-r--r--pkgs/development/tools/solarus-quest-editor/default.nix19
-rw-r--r--pkgs/development/tools/sourcetrail/python.nix4
-rw-r--r--pkgs/development/tools/statik/default.nix22
-rw-r--r--pkgs/development/tools/trellis/default.nix8
-rw-r--r--pkgs/development/tools/vulkan-validation-layers/default.nix34
-rw-r--r--pkgs/development/tools/wally-cli/default.nix1
-rw-r--r--pkgs/development/tools/wasm-bindgen-cli/Cargo.lock574
-rw-r--r--pkgs/development/tools/wasm-bindgen-cli/default.nix8
-rw-r--r--pkgs/development/tools/wire/default.nix24
-rw-r--r--pkgs/development/tools/wrangler/default.nix6
-rw-r--r--pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/urlToName.js10
-rw-r--r--pkgs/development/tools/yj/default.nix27
-rw-r--r--pkgs/development/tools/yj/deps.nix30
-rw-r--r--pkgs/development/tools/ytt/default.nix2
-rw-r--r--pkgs/development/web/deno/default.nix6
-rw-r--r--pkgs/development/web/deno/deps.nix8
-rw-r--r--pkgs/development/web/lucky-cli/default.nix5
-rw-r--r--pkgs/development/web/lucky-cli/shard.lock15
-rw-r--r--pkgs/development/web/lucky-cli/shards.nix16
-rw-r--r--pkgs/development/web/nodejs/v10.nix4
-rw-r--r--pkgs/development/web/nodejs/v12.nix4
-rw-r--r--pkgs/development/web/nodejs/v14.nix4
-rw-r--r--pkgs/development/web/nodejs/v15.nix4
-rw-r--r--pkgs/development/web/woff2/default.nix4
-rw-r--r--pkgs/games/anki/bin.nix64
-rw-r--r--pkgs/games/anki/default.nix2
-rw-r--r--pkgs/games/augustus/default.nix7
-rw-r--r--pkgs/games/banner/default.nix15
-rw-r--r--pkgs/games/cataclysm-dda/stable.nix4
-rw-r--r--pkgs/games/chiaki/default.nix58
-rw-r--r--pkgs/games/clonehero/default.nix73
-rw-r--r--pkgs/games/clonehero/fhs-wrapper.nix39
-rw-r--r--pkgs/games/clonehero/xdg-wrapper.nix21
-rw-r--r--pkgs/games/colobot/data.nix41
-rw-r--r--pkgs/games/colobot/default.nix41
-rw-r--r--pkgs/games/endless-sky/default.nix15
-rw-r--r--pkgs/games/flightgear/default.nix6
-rw-r--r--pkgs/games/freenukum/default.nix72
-rw-r--r--pkgs/games/frogatto/data.nix6
-rw-r--r--pkgs/games/frogatto/default.nix2
-rw-r--r--pkgs/games/frogatto/engine.nix4
-rw-r--r--pkgs/games/katago/default.nix7
-rw-r--r--pkgs/games/manaplus/default.nix32
-rw-r--r--pkgs/games/mindustry/default.nix29
-rw-r--r--pkgs/games/minecraft/default.nix4
-rwxr-xr-xpkgs/games/minecraft/update.sh6
-rw-r--r--pkgs/games/openxray/default.nix2
-rw-r--r--pkgs/games/osu-lazer/default.nix19
-rw-r--r--pkgs/games/osu-lazer/deps.nix724
-rw-r--r--pkgs/games/osu-lazer/osu.runtimeconfig.json9
-rwxr-xr-xpkgs/games/osu-lazer/update.sh4
-rw-r--r--pkgs/games/r2mod_cli/default.nix34
-rw-r--r--pkgs/games/simutrans/default.nix2
-rw-r--r--pkgs/games/spring/default.nix15
-rw-r--r--pkgs/games/spring/springlobby.nix4
-rw-r--r--pkgs/games/steam/fhsenv.nix25
-rw-r--r--pkgs/games/steam/steam.nix20
-rw-r--r--pkgs/games/trackballs/default.nix4
-rw-r--r--pkgs/games/warsow/default.nix2
-rw-r--r--pkgs/games/xonotic/default.nix2
-rw-r--r--pkgs/games/zdoom/default.nix2
-rw-r--r--pkgs/games/zdoom/zdbsp.nix18
-rw-r--r--pkgs/misc/beep/default.nix30
-rw-r--r--pkgs/misc/cups/drivers/kyodialog3/default.nix2
-rw-r--r--pkgs/misc/drivers/epkowa/default.nix34
-rw-r--r--pkgs/misc/drivers/utsushi/default.nix6
-rw-r--r--pkgs/misc/emulators/craftos-pc/default.nix43
-rw-r--r--pkgs/misc/emulators/dgen-sdl/default.nix70
-rw-r--r--pkgs/misc/emulators/duckstation/default.nix34
-rw-r--r--pkgs/misc/emulators/reicast/default.nix52
-rw-r--r--pkgs/misc/emulators/wine/base.nix30
-rw-r--r--pkgs/misc/emulators/wine/sources.nix4
-rw-r--r--pkgs/misc/emulators/wine/winetricks.nix3
-rw-r--r--pkgs/misc/emulators/yuzu/default.nix47
-rw-r--r--pkgs/misc/mxt-app/default.nix6
-rw-r--r--pkgs/misc/ptouch-print/default.nix34
-rw-r--r--pkgs/misc/seafile-shared/default.nix34
-rw-r--r--pkgs/misc/tmux-plugins/default.nix10
-rw-r--r--pkgs/misc/uboot/default.nix12
-rw-r--r--pkgs/misc/vim-plugins/generated.nix688
-rw-r--r--pkgs/misc/vim-plugins/overrides.nix2
-rw-r--r--pkgs/misc/vim-plugins/vim-plugin-names12
-rw-r--r--pkgs/os-specific/darwin/apple-source-releases/libiconv/default.nix4
-rw-r--r--pkgs/os-specific/linux/alsa-lib/default.nix7
-rw-r--r--pkgs/os-specific/linux/alsa-plugins/default.nix5
-rw-r--r--pkgs/os-specific/linux/anbox/default.nix55
-rw-r--r--pkgs/os-specific/linux/apparmor/default.nix4
-rw-r--r--pkgs/os-specific/linux/atop/default.nix20
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/default.nix2
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/linux-5.9.patch184
-rw-r--r--pkgs/os-specific/linux/btfs/default.nix4
-rw-r--r--pkgs/os-specific/linux/busybox/0001-Fix-build-with-glibc-2.31.patch71
-rw-r--r--pkgs/os-specific/linux/busybox/0001-wget-implement-TLS-verification-with-ENABLE_FEATURE_.patch94
-rw-r--r--pkgs/os-specific/linux/busybox/default.nix11
-rw-r--r--pkgs/os-specific/linux/cpuset/default.nix33
-rw-r--r--pkgs/os-specific/linux/displaylink/99-displaylink.rules1
-rw-r--r--pkgs/os-specific/linux/displaylink/default.nix30
-rw-r--r--pkgs/os-specific/linux/displaylink/udev-installer.patch18
-rw-r--r--pkgs/os-specific/linux/ell/0001-unit-test-dbus-pick-up-dbus-daemon-from-PATH.patch84
-rw-r--r--pkgs/os-specific/linux/ell/default.nix9
-rw-r--r--pkgs/os-specific/linux/ell/fix-dbus-tests.patch65
-rw-r--r--pkgs/os-specific/linux/ena/default.nix4
-rw-r--r--pkgs/os-specific/linux/erofs-utils/default.nix25
-rw-r--r--pkgs/os-specific/linux/evdi/default.nix6
-rw-r--r--pkgs/os-specific/linux/eventstat/default.nix4
-rw-r--r--pkgs/os-specific/linux/fatrace/default.nix21
-rw-r--r--pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix14
-rw-r--r--pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix14
-rw-r--r--pkgs/os-specific/linux/firmware/raspberrypi/armstubs.nix51
-rw-r--r--pkgs/os-specific/linux/firmware/raspberrypi/default.nix13
-rw-r--r--pkgs/os-specific/linux/firmware/raspberrypi/tools.nix29
-rw-r--r--pkgs/os-specific/linux/firmware/rtl8761b-firmware/default.nix29
-rw-r--r--pkgs/os-specific/linux/intel-compute-runtime/default.nix4
-rw-r--r--pkgs/os-specific/linux/iproute/default.nix7
-rw-r--r--pkgs/os-specific/linux/iwd/default.nix12
-rw-r--r--pkgs/os-specific/linux/kernel/common-config.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/hardened/patches.json29
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.14.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.19.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.9.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.10.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.9.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-lqx.nix25
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rpi.nix12
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rt-5.10.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rt-5.4.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix8
-rw-r--r--pkgs/os-specific/linux/kernel/linux-testing.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-zen.nix7
-rw-r--r--pkgs/os-specific/linux/kernel/manual-config.nix7
-rw-r--r--pkgs/os-specific/linux/kernel/patches.nix17
-rw-r--r--pkgs/os-specific/linux/kernel/rtl8761b-support.patch33
-rw-r--r--pkgs/os-specific/linux/keyutils/default.nix2
-rw-r--r--pkgs/os-specific/linux/kmod/default.nix3
-rw-r--r--pkgs/os-specific/linux/libcap/default.nix20
-rw-r--r--pkgs/os-specific/linux/libpsm2/default.nix9
-rw-r--r--pkgs/os-specific/linux/musl/default.nix4
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/default.nix20
-rw-r--r--pkgs/os-specific/linux/pam/default.nix14
-rw-r--r--pkgs/os-specific/linux/pam_ssh_agent_auth/default.nix69
-rw-r--r--pkgs/os-specific/linux/pam_ssh_agent_auth/edcsa-crash-fix.patch53
-rw-r--r--pkgs/os-specific/linux/pam_ssh_agent_auth/multiple-key-files.patch12
-rw-r--r--pkgs/os-specific/linux/radeontop/default.nix6
-rw-r--r--pkgs/os-specific/linux/raspberrypi-eeprom/default.nix12
-rw-r--r--pkgs/os-specific/linux/rdma-core/default.nix4
-rw-r--r--pkgs/os-specific/linux/rtl8821cu/default.nix6
-rw-r--r--pkgs/os-specific/linux/shadow/default.nix5
-rw-r--r--pkgs/os-specific/linux/syslinux/default.nix1
-rw-r--r--pkgs/os-specific/linux/syslinux/gcc10.patch33
-rw-r--r--pkgs/os-specific/linux/systemd/default.nix6
-rw-r--r--pkgs/os-specific/linux/tomb/default.nix4
-rw-r--r--pkgs/os-specific/linux/usbguard/default.nix2
-rw-r--r--pkgs/os-specific/linux/util-linux/default.nix4
-rw-r--r--pkgs/os-specific/linux/wireguard/default.nix4
-rw-r--r--pkgs/os-specific/linux/zfs/default.nix4
-rw-r--r--pkgs/os-specific/linux/zsa-udev-rules/default.nix33
-rw-r--r--pkgs/servers/adminer/default.nix22
-rw-r--r--pkgs/servers/apache-kafka/default.nix45
-rw-r--r--pkgs/servers/computing/slurm/default.nix4
-rw-r--r--pkgs/servers/demoit/default.nix1
-rw-r--r--pkgs/servers/dns/bind/default.nix9
-rw-r--r--pkgs/servers/dns/ncdns/default.nix10
-rw-r--r--pkgs/servers/dns/ncdns/deps.nix73
-rw-r--r--pkgs/servers/dns/pdns-recursor/default.nix4
-rw-r--r--pkgs/servers/dns/powerdns/default.nix10
-rw-r--r--pkgs/servers/ftp/vsftpd/default.nix1
-rw-r--r--pkgs/servers/gobetween/default.nix4
-rw-r--r--pkgs/servers/grocy/0001-Define-configs-with-env-vars.patch46
-rw-r--r--pkgs/servers/grocy/0002-Remove-check-for-config-file-as-it-s-stored-in-etc-g.patch46
-rw-r--r--pkgs/servers/grocy/default.nix6
-rw-r--r--pkgs/servers/home-assistant/appdaemon.nix8
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix57
-rw-r--r--pkgs/servers/home-assistant/default.nix4
-rw-r--r--pkgs/servers/home-assistant/frontend.nix4
-rwxr-xr-xpkgs/servers/home-assistant/parse-requirements.py3
-rw-r--r--pkgs/servers/http/apache-httpd/2.4.nix2
-rw-r--r--pkgs/servers/http/nginx/generic.nix2
-rw-r--r--pkgs/servers/http/nginx/mainline.nix4
-rw-r--r--pkgs/servers/http/tomcat/tomcat-native.nix4
-rw-r--r--pkgs/servers/icecream/default.nix25
-rw-r--r--pkgs/servers/irc/solanum/default.nix60
-rw-r--r--pkgs/servers/irc/solanum/dont-create-logdir.patch14
-rw-r--r--pkgs/servers/jitsi-videobridge/default.nix8
-rw-r--r--pkgs/servers/mail/dovecot/default.nix5
-rw-r--r--pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix4
-rw-r--r--pkgs/servers/mail/mailhog/default.nix12
-rw-r--r--pkgs/servers/mail/mailhog/deps.nix191
-rw-r--r--pkgs/servers/mail/spamassassin/default.nix6
-rw-r--r--pkgs/servers/matrix-appservice-discord/default.nix79
-rwxr-xr-xpkgs/servers/matrix-appservice-discord/generate.sh27
-rw-r--r--pkgs/servers/matrix-appservice-discord/node-packages.nix5251
-rw-r--r--pkgs/servers/matrix-appservice-discord/package.json80
-rw-r--r--pkgs/servers/matrix-appservice-discord/yarn-dependencies.nix4317
-rw-r--r--pkgs/servers/mattermost/matterircd.nix4
-rw-r--r--pkgs/servers/mautrix-whatsapp/default.nix6
-rw-r--r--pkgs/servers/metabase/default.nix6
-rw-r--r--pkgs/servers/meteor/default.nix4
-rw-r--r--pkgs/servers/monitoring/cadvisor/default.nix21
-rw-r--r--pkgs/servers/monitoring/fusion-inventory/default.nix23
-rw-r--r--pkgs/servers/monitoring/fusion-inventory/remove_software_test.patch67
-rw-r--r--pkgs/servers/monitoring/grafana-image-renderer/default.nix67
-rw-r--r--pkgs/servers/monitoring/grafana-image-renderer/package.json69
-rw-r--r--pkgs/servers/monitoring/grafana-image-renderer/yarn.lock3017
-rw-r--r--pkgs/servers/monitoring/grafana-image-renderer/yarn.nix3549
-rw-r--r--pkgs/servers/monitoring/grafana/default.nix8
-rw-r--r--pkgs/servers/monitoring/grafana/plugins/default.nix7
-rw-r--r--pkgs/servers/monitoring/grafana/plugins/grafana-clock-panel/default.nix13
-rw-r--r--pkgs/servers/monitoring/grafana/plugins/grafana-piechart-panel/default.nix13
-rw-r--r--pkgs/servers/monitoring/grafana/plugins/grafana-plugin.nix28
-rw-r--r--pkgs/servers/monitoring/grafana/plugins/grafana-polystat-panel/default.nix13
-rw-r--r--pkgs/servers/monitoring/grafana/plugins/grafana-worldmap-panel/default.nix13
-rw-r--r--pkgs/servers/monitoring/grafana/plugins/plugins.nix11
-rwxr-xr-xpkgs/servers/monitoring/grafana/plugins/update-grafana-plugin.sh8
-rw-r--r--pkgs/servers/monitoring/loki/default.nix22
-rw-r--r--pkgs/servers/monitoring/prometheus/bird-exporter.nix24
-rw-r--r--pkgs/servers/monitoring/prometheus/default.nix18
-rw-r--r--pkgs/servers/monitoring/prometheus/json-exporter.nix26
-rw-r--r--pkgs/servers/monitoring/prometheus/json-exporter_deps.nix111
-rw-r--r--pkgs/servers/monitoring/prometheus/lnd-exporter.nix10
-rw-r--r--pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix16
-rw-r--r--pkgs/servers/monitoring/prometheus/nginxlog-exporter_deps.nix282
-rw-r--r--pkgs/servers/monitoring/prometheus/promscale.nix6
-rw-r--r--pkgs/servers/monitoring/prometheus/smokeping-prober.nix43
-rw-r--r--pkgs/servers/monitoring/prometheus/webui-yarndeps.nix1408
-rw-r--r--pkgs/servers/mpd/default.nix2
-rw-r--r--pkgs/servers/nextcloud/default.nix4
-rw-r--r--pkgs/servers/nfs-ganesha/default.nix4
-rw-r--r--pkgs/servers/nfs-ganesha/sysstatedir.patch13
-rw-r--r--pkgs/servers/pinnwand/default.nix12
-rw-r--r--pkgs/servers/plex/raw.nix6
-rw-r--r--pkgs/servers/pulseaudio/default.nix5
-rw-r--r--pkgs/servers/roundcube/default.nix4
-rw-r--r--pkgs/servers/samba/0001-lib-util-Standardize-use-of-st_-acm-time-ns.patch569
-rw-r--r--pkgs/servers/samba/4.x.nix9
-rw-r--r--pkgs/servers/sql/postgresql/ext/postgis.nix4
-rw-r--r--pkgs/servers/trezord/default.nix2
-rw-r--r--pkgs/servers/unifi/default.nix14
-rw-r--r--pkgs/servers/uwsgi/additional-php-ldflags.patch13
-rw-r--r--pkgs/servers/uwsgi/default.nix30
-rw-r--r--pkgs/servers/uwsgi/no-ext-session-php_session.h-on-NixOS.patch29
-rw-r--r--pkgs/servers/web-apps/hedgedoc/default.nix (renamed from pkgs/servers/web-apps/codimd/default.nix)32
-rw-r--r--pkgs/servers/web-apps/hedgedoc/package.json (renamed from pkgs/servers/web-apps/codimd/package.json)135
-rw-r--r--pkgs/servers/web-apps/hedgedoc/yarn.lock (renamed from pkgs/servers/web-apps/codimd/yarn.lock)5413
-rw-r--r--pkgs/servers/web-apps/hedgedoc/yarn.nix (renamed from pkgs/servers/web-apps/codimd/yarn.nix)4882
-rw-r--r--pkgs/servers/web-apps/searx/default.nix2
-rw-r--r--pkgs/servers/wsdd/default.nix11
-rw-r--r--pkgs/servers/x11/xorg/default.nix12
-rw-r--r--pkgs/servers/x11/xorg/dont-create-logdir-during-build.patch32
-rw-r--r--pkgs/servers/x11/xorg/overrides.nix46
-rw-r--r--pkgs/servers/x11/xorg/tarballs.list4
-rw-r--r--pkgs/servers/xandikos/default.nix8
-rw-r--r--pkgs/shells/any-nix-shell/default.nix4
-rw-r--r--pkgs/shells/bash/5.1.nix (renamed from pkgs/shells/bash/5.0.nix)35
-rw-r--r--pkgs/shells/bash/bash-5.0-patches.nix22
-rw-r--r--pkgs/shells/bash/bash-5.1-patches.nix8
-rw-r--r--pkgs/shells/bash/pgrp-pipe-5.1.patch (renamed from pkgs/shells/bash/pgrp-pipe-5.0.patch)0
-rw-r--r--pkgs/shells/fish/plugins/build-fish-plugin.nix77
-rw-r--r--pkgs/shells/fish/plugins/default.nix13
-rw-r--r--pkgs/shells/fish/plugins/fishtape.nix32
-rw-r--r--pkgs/shells/fish/plugins/foreign-env/default.nix (renamed from pkgs/shells/fish/fish-foreign-env/default.nix)18
-rw-r--r--pkgs/shells/fish/plugins/foreign-env/suppress-harmless-warnings.patch (renamed from pkgs/shells/fish/fish-foreign-env/suppress-harmless-warnings.patch)0
-rw-r--r--pkgs/shells/fish/plugins/pure.nix29
-rw-r--r--pkgs/shells/ion/default.nix6
-rw-r--r--pkgs/shells/nushell/default.nix6
-rw-r--r--pkgs/shells/tcsh/default.nix10
-rw-r--r--pkgs/shells/zsh/default.nix1
-rw-r--r--pkgs/shells/zsh/oh-my-zsh/default.nix6
-rw-r--r--pkgs/shells/zsh/zsh-powerlevel10k/default.nix4
-rw-r--r--pkgs/test/default.nix1
-rw-r--r--pkgs/tools/X11/opentabletdriver/default.nix164
-rw-r--r--pkgs/tools/X11/opentabletdriver/deps.nix462
-rw-r--r--pkgs/tools/X11/opentabletdriver/shell.nix12
-rwxr-xr-xpkgs/tools/X11/opentabletdriver/update.sh64
-rw-r--r--pkgs/tools/X11/xkb-switch-i3/default.nix34
-rw-r--r--pkgs/tools/X11/xwallpaper/default.nix3
-rw-r--r--pkgs/tools/admin/aws-nuke/default.nix36
-rw-r--r--pkgs/tools/admin/awscli/default.nix4
-rw-r--r--pkgs/tools/admin/azure-cli/default.nix5
-rw-r--r--pkgs/tools/admin/azure-cli/python-packages.nix52
-rw-r--r--pkgs/tools/admin/chamber/default.nix14
-rw-r--r--pkgs/tools/admin/chkcrontab/default.nix2
-rw-r--r--pkgs/tools/admin/clair/default.nix7
-rw-r--r--pkgs/tools/admin/credhub-cli/default.nix44
-rw-r--r--pkgs/tools/admin/eksctl/default.nix6
-rw-r--r--pkgs/tools/admin/fastlane/Gemfile.lock97
-rw-r--r--pkgs/tools/admin/fastlane/gemset.nix173
-rw-r--r--pkgs/tools/admin/google-cloud-sdk/default.nix8
-rw-r--r--pkgs/tools/admin/lexicon/default.nix4
-rw-r--r--pkgs/tools/admin/trivy/default.nix6
-rw-r--r--pkgs/tools/archivers/p7zip/default.nix4
-rw-r--r--pkgs/tools/archivers/p7zip/gcc10.patch40
-rw-r--r--pkgs/tools/audio/aucdtect/default.nix33
-rw-r--r--pkgs/tools/audio/beets/badfiles-plugin-nix-paths.patch21
-rw-r--r--pkgs/tools/audio/beets/bash-completion-always-print.patch43
-rw-r--r--pkgs/tools/audio/beets/compatibility-with-breaking-changes-to-the-ast-module.patch55
-rw-r--r--pkgs/tools/audio/beets/convert-plugin-ffmpeg-path.patch43
-rw-r--r--pkgs/tools/audio/beets/default.nix179
-rw-r--r--pkgs/tools/audio/beets/keyfinder-default-bin.patch20
-rw-r--r--pkgs/tools/audio/beets/mutagen-1.43.patch40
-rw-r--r--pkgs/tools/audio/beets/plugins/alternatives.nix (renamed from pkgs/tools/audio/beets/alternatives-plugin.nix)0
-rw-r--r--pkgs/tools/audio/beets/plugins/check-tests.patch (renamed from pkgs/tools/audio/beets/beet-check-tests.patch)0
-rw-r--r--pkgs/tools/audio/beets/plugins/check.nix (renamed from pkgs/tools/audio/beets/check-plugin.nix)0
-rw-r--r--pkgs/tools/audio/beets/plugins/copyartifacts.nix (renamed from pkgs/tools/audio/beets/copyartifacts-plugin.nix)0
-rw-r--r--pkgs/tools/audio/beets/plugins/extrafiles.nix (renamed from pkgs/tools/audio/beets/extrafiles-plugin.nix)0
-rw-r--r--pkgs/tools/audio/beets/replaygain-default-bs1770gain.patch17
-rw-r--r--pkgs/tools/audio/beets/replaygain-default-ffmpeg.patch26
-rw-r--r--pkgs/tools/audio/kaldi/default.nix88
-rw-r--r--pkgs/tools/audio/volctl/default.nix46
-rw-r--r--pkgs/tools/backup/borg/default.nix4
-rw-r--r--pkgs/tools/backup/duplicacy/default.nix4
-rw-r--r--pkgs/tools/backup/duplicacy/deps.nix188
-rw-r--r--pkgs/tools/backup/duplicity/default.nix5
-rw-r--r--pkgs/tools/backup/duplicity/use-installed-scripts-in-test.patch18
-rw-r--r--pkgs/tools/bluetooth/blueberry/default.nix4
-rw-r--r--pkgs/tools/bootloaders/refind/0001-Fix-GCC-10-compile-problem.patch25
-rw-r--r--pkgs/tools/bootloaders/refind/default.nix1
-rw-r--r--pkgs/tools/cd-dvd/brasero/default.nix2
-rw-r--r--pkgs/tools/compression/brotli/default.nix4
-rw-r--r--pkgs/tools/compression/bzip2/default.nix2
-rw-r--r--pkgs/tools/compression/lz4/default.nix3
-rw-r--r--pkgs/tools/compression/xz/default.nix4
-rw-r--r--pkgs/tools/compression/zstd/default.nix2
-rw-r--r--pkgs/tools/filesystems/android-file-transfer/default.nix6
-rw-r--r--pkgs/tools/filesystems/bcachefs-tools/default.nix26
-rw-r--r--pkgs/tools/filesystems/e2fsprogs/default.nix4
-rw-r--r--pkgs/tools/filesystems/glusterfs/default.nix54
-rw-r--r--pkgs/tools/filesystems/glusterfs/glusterfs-fix-bug-1489610-glusterfind-var-data-under-prefix.patch27
-rw-r--r--pkgs/tools/filesystems/nixpart/0.4/parted.nix4
-rw-r--r--pkgs/tools/filesystems/xfsprogs/default.nix40
-rw-r--r--pkgs/tools/graphics/directx-shader-compiler/default.nix50
-rw-r--r--pkgs/tools/graphics/fim/default.nix10
-rw-r--r--pkgs/tools/graphics/gifsicle/default.nix5
-rw-r--r--pkgs/tools/graphics/graphviz/base.nix2
-rw-r--r--pkgs/tools/graphics/jhead/default.nix5
-rw-r--r--pkgs/tools/graphics/ldgallery/compiler/default.nix37
-rwxr-xr-xpkgs/tools/graphics/ldgallery/compiler/generate.sh19
-rw-r--r--pkgs/tools/graphics/ldgallery/default.nix53
-rw-r--r--pkgs/tools/graphics/ldgallery/viewer/default.nix53
-rwxr-xr-xpkgs/tools/graphics/ldgallery/viewer/generate.sh34
-rw-r--r--pkgs/tools/graphics/ldgallery/viewer/node-composition.nix (renamed from pkgs/servers/matrix-appservice-discord/node-composition.nix)2
-rw-r--r--pkgs/tools/graphics/ldgallery/viewer/node-packages.nix13269
-rw-r--r--pkgs/tools/graphics/luxcorerender/default.nix35
-rw-r--r--pkgs/tools/graphics/optipng/default.nix3
-rw-r--r--pkgs/tools/graphics/vulkan-tools-lunarg/default.nix17
-rw-r--r--pkgs/tools/graphics/vulkan-tools/default.nix4
-rw-r--r--pkgs/tools/misc/agedu/default.nix10
-rw-r--r--pkgs/tools/misc/barman/default.nix4
-rw-r--r--pkgs/tools/misc/bdf2psf/default.nix4
-rw-r--r--pkgs/tools/misc/betterdiscordctl/default.nix37
-rw-r--r--pkgs/tools/misc/broot/default.nix6
-rw-r--r--pkgs/tools/misc/calamares/default.nix17
-rw-r--r--pkgs/tools/misc/clac/default.nix15
-rw-r--r--pkgs/tools/misc/cod/default.nix2
-rw-r--r--pkgs/tools/misc/code-minimap/default.nix25
-rw-r--r--pkgs/tools/misc/coreboot-utils/default.nix6
-rw-r--r--pkgs/tools/misc/direnv/default.nix17
-rw-r--r--pkgs/tools/misc/disfetch/default.nix29
-rw-r--r--pkgs/tools/misc/duf/default.nix2
-rw-r--r--pkgs/tools/misc/esptool/default.nix22
-rw-r--r--pkgs/tools/misc/ethminer/default.nix11
-rw-r--r--pkgs/tools/misc/fbcat/default.nix33
-rw-r--r--pkgs/tools/misc/hdf4/default.nix38
-rw-r--r--pkgs/tools/misc/hdf5/default.nix2
-rw-r--r--pkgs/tools/misc/html-proofer/Gemfile.lock4
-rw-r--r--pkgs/tools/misc/html-proofer/gemset.nix8
-rw-r--r--pkgs/tools/misc/ipxe/default.nix4
-rw-r--r--pkgs/tools/misc/kcollectd/default.nix56
-rw-r--r--pkgs/tools/misc/kermit/default.nix5
-rw-r--r--pkgs/tools/misc/lf/default.nix6
-rw-r--r--pkgs/tools/misc/microplane/default.nix40
-rw-r--r--pkgs/tools/misc/microplane/deps.nix228
-rw-r--r--pkgs/tools/misc/miniserve/default.nix6
-rw-r--r--pkgs/tools/misc/mutagen/default.nix18
-rw-r--r--pkgs/tools/misc/nix-direnv/default.nix4
-rw-r--r--pkgs/tools/misc/nvimpager/default.nix47
-rw-r--r--pkgs/tools/misc/ovh-ttyrec/default.nix29
-rw-r--r--pkgs/tools/misc/parted/default.nix2
-rw-r--r--pkgs/tools/misc/patdiff/default.nix4
-rw-r--r--pkgs/tools/misc/picocom/default.nix48
-rw-r--r--pkgs/tools/misc/plantuml-server/default.nix58
-rw-r--r--pkgs/tools/misc/snapper/default.nix9
-rw-r--r--pkgs/tools/misc/starship/default.nix6
-rw-r--r--pkgs/tools/misc/topgrade/default.nix6
-rw-r--r--pkgs/tools/misc/toybox/default.nix4
-rw-r--r--pkgs/tools/misc/trash-cli/default.nix4
-rw-r--r--pkgs/tools/misc/ttygif/default.nix8
-rw-r--r--pkgs/tools/misc/ttyrec/clang-fixes.patch21
-rw-r--r--pkgs/tools/misc/ttyrec/default.nix31
-rw-r--r--pkgs/tools/misc/vorbisgain/default.nix2
-rw-r--r--pkgs/tools/misc/woof/default.nix25
-rw-r--r--pkgs/tools/misc/yad/default.nix4
-rw-r--r--pkgs/tools/misc/you-get/default.nix4
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix6
-rw-r--r--pkgs/tools/misc/ytree/default.nix7
-rw-r--r--pkgs/tools/misc/z-lua/default.nix10
-rw-r--r--pkgs/tools/misc/zalgo/default.nix25
-rw-r--r--pkgs/tools/networking/cjdns/default.nix6
-rw-r--r--pkgs/tools/networking/corerad/default.nix6
-rw-r--r--pkgs/tools/networking/curl/default.nix7
-rw-r--r--pkgs/tools/networking/dhcp/default.nix3
-rw-r--r--pkgs/tools/networking/dropbear/default.nix2
-rw-r--r--pkgs/tools/networking/fdm/default.nix20
-rw-r--r--pkgs/tools/networking/httpstat/default.nix4
-rw-r--r--pkgs/tools/networking/kapp/default.nix23
-rw-r--r--pkgs/tools/networking/libreswan/default.nix6
-rw-r--r--pkgs/tools/networking/megatools/default.nix4
-rw-r--r--pkgs/tools/networking/openssh/default.nix21
-rw-r--r--pkgs/tools/networking/proxify/default.nix31
-rw-r--r--pkgs/tools/networking/qr-filetransfer/default.nix30
-rw-r--r--pkgs/tools/networking/qr-filetransfer/deps.nix66
-rw-r--r--pkgs/tools/networking/qrcp/default.nix33
-rw-r--r--pkgs/tools/networking/saldl/default.nix2
-rw-r--r--pkgs/tools/networking/tcpdump/default.nix10
-rw-r--r--pkgs/tools/networking/wavemon/default.nix11
-rw-r--r--pkgs/tools/package-management/cargo-download/Cargo.nix6
-rw-r--r--pkgs/tools/package-management/cargo-download/crates-io.nix48
-rw-r--r--pkgs/tools/package-management/libdnf/darwin.patch35
-rw-r--r--pkgs/tools/package-management/libdnf/default.nix66
-rw-r--r--pkgs/tools/package-management/librepo/default.nix8
-rw-r--r--pkgs/tools/package-management/microdnf/default.nix24
-rw-r--r--pkgs/tools/package-management/nfpm/default.nix6
-rw-r--r--pkgs/tools/package-management/nix-update/default.nix4
-rw-r--r--pkgs/tools/package-management/nix/aws-sdk-cpp-TransferManager-ContentEncoding.patch127
-rw-r--r--pkgs/tools/package-management/nix/default.nix54
-rw-r--r--pkgs/tools/package-management/protontricks/default.nix52
-rw-r--r--pkgs/tools/package-management/protontricks/steam-run.patch254
-rw-r--r--pkgs/tools/package-management/rpm/default.nix26
-rw-r--r--pkgs/tools/security/dnsx/default.nix31
-rw-r--r--pkgs/tools/security/enpass/data.json10
-rw-r--r--pkgs/tools/security/enpass/default.nix11
-rw-r--r--pkgs/tools/security/ffuf/default.nix34
-rw-r--r--pkgs/tools/security/gau/default.nix29
-rw-r--r--pkgs/tools/security/ghidra/default.nix28
-rw-r--r--pkgs/tools/security/gospider/default.nix33
-rw-r--r--pkgs/tools/security/httpx/default.nix30
-rw-r--r--pkgs/tools/security/jwt-cli/default.nix6
-rw-r--r--pkgs/tools/security/naabu/default.nix38
-rw-r--r--pkgs/tools/security/neopg/default.nix1
-rw-r--r--pkgs/tools/security/nuclei/default.nix36
-rw-r--r--pkgs/tools/security/onlykey-cli/default.nix24
-rw-r--r--pkgs/tools/security/rbw/default.nix7
-rw-r--r--pkgs/tools/security/sequoia/default.nix6
-rw-r--r--pkgs/tools/security/stegseek/default.nix44
-rw-r--r--pkgs/tools/security/step-ca/default.nix30
-rw-r--r--pkgs/tools/security/step-ca/deps.nix291
-rw-r--r--pkgs/tools/security/step-cli/default.nix23
-rw-r--r--pkgs/tools/security/step-cli/deps.nix453
-rw-r--r--pkgs/tools/security/sudo/default.nix4
-rw-r--r--pkgs/tools/security/teler/default.nix33
-rw-r--r--pkgs/tools/security/tor/default.nix18
-rw-r--r--pkgs/tools/security/vault/default.nix4
-rw-r--r--pkgs/tools/security/vault/vault-bin.nix12
-rw-r--r--pkgs/tools/security/wad/default.nix43
-rw-r--r--pkgs/tools/system/bottom/default.nix10
-rw-r--r--pkgs/tools/system/clinfo/default.nix19
-rw-r--r--pkgs/tools/system/colorls/Gemfile.lock4
-rw-r--r--pkgs/tools/system/colorls/gemset.nix16
-rw-r--r--pkgs/tools/system/consul-template/default.nix21
-rw-r--r--pkgs/tools/system/daemon/default.nix6
-rw-r--r--pkgs/tools/system/efivar/default.nix3
-rw-r--r--pkgs/tools/system/gdu/default.nix33
-rw-r--r--pkgs/tools/system/htop/default.nix4
-rw-r--r--pkgs/tools/system/inxi/default.nix4
-rw-r--r--pkgs/tools/system/ipmitool/default.nix2
-rw-r--r--pkgs/tools/system/netdata/default.nix4
-rw-r--r--pkgs/tools/system/netdata/go.d.plugin.nix4
-rw-r--r--pkgs/tools/system/pciutils/default.nix2
-rw-r--r--pkgs/tools/system/rocm-smi/default.nix2
-rw-r--r--pkgs/tools/text/chroma/default.nix24
-rw-r--r--pkgs/tools/text/groff/default.nix1
-rw-r--r--pkgs/tools/text/languagetool/default.nix1
-rw-r--r--pkgs/tools/text/ripgrep/default.nix3
-rw-r--r--pkgs/tools/text/ugrep/default.nix4
-rw-r--r--pkgs/tools/text/vale/default.nix6
-rw-r--r--pkgs/tools/typesetting/bibclean/default.nix1
-rw-r--r--pkgs/tools/typesetting/lowdown/default.nix4
-rw-r--r--pkgs/tools/typesetting/tectonic/default.nix6
-rw-r--r--pkgs/tools/typesetting/tex/texlive/combine.nix4
-rw-r--r--pkgs/tools/virtualization/amazon-ecs-cli/default.nix6
-rw-r--r--pkgs/tools/virtualization/shipyard/default.nix29
-rw-r--r--pkgs/top-level/aliases.nix26
-rw-r--r--pkgs/top-level/all-packages.nix823
-rw-r--r--pkgs/top-level/beam-packages.nix9
-rw-r--r--pkgs/top-level/emacs-packages.nix2
-rw-r--r--pkgs/top-level/haskell-packages.nix15
-rw-r--r--pkgs/top-level/haxe-packages.nix4
-rw-r--r--pkgs/top-level/lua-packages.nix4
-rw-r--r--pkgs/top-level/ocaml-packages.nix79
-rw-r--r--pkgs/top-level/perl-packages.nix75
-rw-r--r--pkgs/top-level/php-packages.nix15
-rw-r--r--pkgs/top-level/python-packages.nix154
-rw-r--r--pkgs/top-level/release-alternatives.nix2
-rw-r--r--pkgs/top-level/static.nix192
2049 files changed, 82120 insertions, 37645 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 9835b765461..14e810f972c 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -220,3 +220,6 @@
 /pkgs/development/compilers/go @kalbasit @Mic92 @zowoq
 /pkgs/development/go-modules   @kalbasit @Mic92 @zowoq
 /pkgs/development/go-packages  @kalbasit @Mic92 @zowoq
+
+# Cinnamon
+/pkgs/desktops/cinnamon @mkg20001
diff --git a/.github/workflows/editorconfig.yml b/.github/workflows/editorconfig.yml
index be7a4ba02b6..6935d0bbd21 100644
--- a/.github/workflows/editorconfig.yml
+++ b/.github/workflows/editorconfig.yml
@@ -8,13 +8,22 @@ on:
 jobs:
   tests:
     runs-on: ubuntu-latest
+    if: github.repository_owner == 'NixOS'
     steps:
+    - name: Get list of changed files from PR
+      env:
+        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+      run: |
+        echo 'PR_DIFF<<EOF' >> $GITHUB_ENV
+        gh api \
+          repos/NixOS/nixpkgs/pulls/${{github.event.number}}/files --paginate \
+          | jq '.[] | select(.status != "removed") | .filename' \
+          >> $GITHUB_ENV
+        echo 'EOF' >> $GITHUB_ENV
     - uses: actions/checkout@v2
-      with:
-        fetch-depth: 0
-    - uses: technote-space/get-diff-action@v4.0.0
+      if: env.PR_DIFF
     - name: Fetch editorconfig-checker
-      if: env.GIT_DIFF
+      if: env.PR_DIFF
       env:
         ECC_VERSION: "2.2.0"
         ECC_URL: "https://github.com/editorconfig-checker/editorconfig-checker/releases/download"
@@ -23,7 +32,6 @@ jobs:
         tar xzf ec-linux-amd64.tar.gz && \
         mv ./bin/ec-linux-amd64 ./bin/editorconfig-checker
     - name: Checking EditorConfig
-      if: env.GIT_DIFF
+      if: env.PR_DIFF
       run: |
-        ./bin/editorconfig-checker -disable-indent-size \
-        ${{ env.GIT_DIFF }}
+        echo "$PR_DIFF" | xargs ./bin/editorconfig-checker -disable-indent-size
diff --git a/.github/workflows/manual-nixos.yml b/.github/workflows/manual-nixos.yml
new file mode 100644
index 00000000000..a75e8402930
--- /dev/null
+++ b/.github/workflows/manual-nixos.yml
@@ -0,0 +1,28 @@
+name: "Build NixOS manual"
+
+on:
+  pull_request_target:
+    branches:
+      - master
+    paths:
+      - 'nixos/**'
+
+jobs:
+  nixos:
+    runs-on: ubuntu-latest
+    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
+        with:
+          # explicitly enable sandbox
+          extra_nix_config: sandbox = true
+      - uses: cachix/cachix-action@v8
+        with:
+          # This cache is for the nixos/nixpkgs manual builds and should not be trusted or used elsewhere.
+          name: nixpkgs-ci
+          signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
+      - name: Building NixOS manual
+        run: NIX_PATH=nixpkgs=$(pwd) nix-build --option restrict-eval true nixos/release.nix -A manual.x86_64-linux
diff --git a/.github/workflows/manual-nixpkgs.yml b/.github/workflows/manual-nixpkgs.yml
new file mode 100644
index 00000000000..7596719d9b5
--- /dev/null
+++ b/.github/workflows/manual-nixpkgs.yml
@@ -0,0 +1,28 @@
+name: "Build Nixpkgs manual"
+
+on:
+  pull_request_target:
+    branches:
+      - master
+    paths:
+      - 'doc/**'
+
+jobs:
+  nixpkgs:
+    runs-on: ubuntu-latest
+    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
+        with:
+          # explicitly enable sandbox
+          extra_nix_config: sandbox = true
+      - uses: cachix/cachix-action@v8
+        with:
+          # This cache is for the nixos/nixpkgs manual builds and should not be trusted or used elsewhere.
+          name: nixpkgs-ci
+          signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
+      - name: Building Nixpkgs manual
+        run: NIX_PATH=nixpkgs=$(pwd) nix-build --option restrict-eval true pkgs/top-level/release.nix -A manual
diff --git a/.github/workflows/rebase-staging.yml b/.github/workflows/rebase-staging.yml
new file mode 100644
index 00000000000..41b06f95668
--- /dev/null
+++ b/.github/workflows/rebase-staging.yml
@@ -0,0 +1,60 @@
+on:
+  issue_comment:
+    types:
+      - created
+
+# This action allows people with write access to the repo to rebase a PRs base branch from
+# master to staging by commenting `/rebase-staging` 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-staging')
+    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 base branch is master
+        if: steps.check-write-access.outputs.has-permission
+        run: |
+          if [ "$(curl https://api.github.com/repos/NixOS/nixpkgs/pulls/${{ github.event.issue.number }} | jq -r '.base.ref')" != "master" ]; then
+            echo "This action only works when the current base branch is master."
+            exit 1
+          fi
+      - uses: actions/checkout@v2
+        with:
+          fetch-depth: 0
+        if: steps.check-write-access.outputs.has-permission
+      - name: rebase pull request
+        if: steps.check-write-access.outputs.has-permission
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+          PULL_REQUEST: ${{ github.event.issue.number }}
+        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/master origin/staging)" \
+            "HEAD~$(git rev-list --count HEAD ^master)"
+          git push --force
+          curl \
+            -X POST \
+            -H "Accept: application/vnd.github.v3+json" \
+            -H "Authorization: token $GITHUB_TOKEN" \
+            -d '{ "base": "staging" }' \
+            "https://api.github.com/repos/NixOS/nixpkgs/pulls/$PULL_REQUEST"
+      - uses: peter-evans/create-or-update-comment@v1
+        if: ${{ failure() }}
+        with:
+          issue-number: ${{ github.event.issue.number }}
+          body: |
+            [Failed to rebase on `staging`](https://github.com/NixOS/nixpkgs/actions/runs/${{ github.run_id }})
diff --git a/COPYING b/COPYING
index a422167e117..fe46c6a1d82 100644
--- a/COPYING
+++ b/COPYING
@@ -1,4 +1,4 @@
-Copyright (c) 2003-2020 Eelco Dolstra and the Nixpkgs/NixOS contributors
+Copyright (c) 2003-2021 Eelco Dolstra and the Nixpkgs/NixOS contributors
 
 Permission is hereby granted, free of charge, to any person obtaining
 a copy of this software and associated documentation files (the
diff --git a/doc/builders/fetchers.chapter.md b/doc/builders/fetchers.chapter.md
new file mode 100644
index 00000000000..d4cab056c70
--- /dev/null
+++ b/doc/builders/fetchers.chapter.md
@@ -0,0 +1,70 @@
+# Fetchers {#chap-pkgs-fetchers}
+
+When using Nix, you will frequently need to download source code and other files from the internet. Nixpkgs comes with a few helper functions that allow you to fetch fixed-output derivations in a structured way.
+
+The two fetcher primitives are `fetchurl` and `fetchzip`. Both of these have two required arguments, a URL and a hash. The hash is typically `sha256`, although many more hash algorithms are supported. Nixpkgs contributors are currently recommended to use `sha256`. This hash will be used by Nix to identify your source. A typical usage of fetchurl is provided below.
+
+```nix
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+  name = "hello";
+  src = fetchurl {
+    url = "http://www.example.org/hello.tar.gz";
+    sha256 = "1111111111111111111111111111111111111111111111111111";
+  };
+}
+```
+
+The main difference between `fetchurl` and `fetchzip` is in how they store the contents. `fetchurl` will store the unaltered contents of the URL within the Nix store. `fetchzip` on the other hand will decompress the archive for you, making files and directories directly accessible in the future. `fetchzip` can only be used with archives. Despite the name, `fetchzip` is not limited to .zip files and can also be used with any tarball.
+
+`fetchpatch` works very similarly to `fetchurl` with the same arguments expected. It expects patch files as a source and 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`
+
+Used with Subversion. Expects `url` to a Subversion directory, `rev`, and `sha256`.
+
+## `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`.
+
+## `fetchfossil`
+
+Used with Fossil. Expects `url` to a Fossil archive, `rev`, and `sha256`.
+
+## `fetchcvs`
+
+Used with CVS. Expects `cvsRoot`, `tag`, and `sha256`.
+
+## `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` 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.
+
+## `fetchFromGitLab`
+
+This is used with GitLab repositories. The arguments expected are very similar to fetchFromGitHub above.
+
+## `fetchFromGitiles`
+
+This is used with Gitiles repositories. The arguments expected are similar to fetchgit.
+
+## `fetchFromBitbucket`
+
+This is used with BitBucket repositories. The arguments expected are very similar to fetchFromGitHub above.
+
+## `fetchFromSavannah`
+
+This is used with Savannah repositories. The arguments expected are very similar to fetchFromGitHub above.
+
+## `fetchFromRepoOrCz`
+
+This is used with repo.or.cz repositories. The arguments expected are very similar to fetchFromGitHub above.
diff --git a/doc/builders/fetchers.xml b/doc/builders/fetchers.xml
deleted file mode 100644
index f07c310dcdf..00000000000
--- a/doc/builders/fetchers.xml
+++ /dev/null
@@ -1,150 +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-pkgs-fetchers">
- <title>Fetchers</title>
- <para>
-  When using Nix, you will frequently need to download source code and other files from the internet. Nixpkgs comes with a few helper functions that allow you to fetch fixed-output derivations in a structured way.
- </para>
- <para>
-  The two fetcher primitives are <function>fetchurl</function> and <function>fetchzip</function>. Both of these have two required arguments, a URL and a hash. The hash is typically <literal>sha256</literal>, although many more hash algorithms are supported. Nixpkgs contributors are currently recommended to use <literal>sha256</literal>. This hash will be used by Nix to identify your source. A typical usage of fetchurl is provided below.
- </para>
-<programlisting><![CDATA[
-{ stdenv, fetchurl }:
-
-stdenv.mkDerivation {
-  name = "hello";
-  src = fetchurl {
-    url = "http://www.example.org/hello.tar.gz";
-    sha256 = "1111111111111111111111111111111111111111111111111111";
-  };
-}
-]]></programlisting>
- <para>
-  The main difference between <function>fetchurl</function> and <function>fetchzip</function> is in how they store the contents. <function>fetchurl</function> will store the unaltered contents of the URL within the Nix store. <function>fetchzip</function> on the other hand will decompress the archive for you, making files and directories directly accessible in the future. <function>fetchzip</function> can only be used with archives. Despite the name, <function>fetchzip</function> is not limited to .zip files and can also be used with any tarball.
- </para>
- <para>
-  <function>fetchpatch</function> works very similarly to <function>fetchurl</function> with the same arguments expected. It expects patch files as a source and 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.
- </para>
- <para>
-  Other fetcher functions allow you to add source code directly from a VCS such as subversion or git. These are mostly straightforward names based on the name of the command used with the VCS system. Because they give you a working repository, they act most like <function>fetchzip</function>.
- </para>
- <variablelist>
-  <varlistentry>
-   <term>
-    <literal>fetchsvn</literal>
-   </term>
-   <listitem>
-    <para>
-     Used with Subversion. Expects <literal>url</literal> to a Subversion directory, <literal>rev</literal>, and <literal>sha256</literal>.
-    </para>
-   </listitem>
-  </varlistentry>
-  <varlistentry>
-   <term>
-    <literal>fetchgit</literal>
-   </term>
-   <listitem>
-    <para>
-     Used with Git. Expects <literal>url</literal> to a Git repo, <literal>rev</literal>, and <literal>sha256</literal>. <literal>rev</literal> in this case can be full the git commit id (SHA1 hash) or a tag name like <literal>refs/tags/v1.0</literal>.
-    </para>
-   </listitem>
-  </varlistentry>
-  <varlistentry>
-   <term>
-    <literal>fetchfossil</literal>
-   </term>
-   <listitem>
-    <para>
-     Used with Fossil. Expects <literal>url</literal> to a Fossil archive, <literal>rev</literal>, and <literal>sha256</literal>.
-    </para>
-   </listitem>
-  </varlistentry>
-  <varlistentry>
-   <term>
-    <literal>fetchcvs</literal>
-   </term>
-   <listitem>
-    <para>
-     Used with CVS. Expects <literal>cvsRoot</literal>, <literal>tag</literal>, and <literal>sha256</literal>.
-    </para>
-   </listitem>
-  </varlistentry>
-  <varlistentry>
-   <term>
-    <literal>fetchhg</literal>
-   </term>
-   <listitem>
-    <para>
-     Used with Mercurial. Expects <literal>url</literal>, <literal>rev</literal>, and <literal>sha256</literal>.
-    </para>
-   </listitem>
-  </varlistentry>
- </variablelist>
- <para>
-  A number of fetcher functions wrap part of <function>fetchurl</function> and <function>fetchzip</function>. They are mainly convenience functions intended for commonly used destinations of source code in Nixpkgs. These wrapper fetchers are listed below.
- </para>
- <variablelist>
-  <varlistentry>
-   <term>
-    <literal>fetchFromGitHub</literal>
-   </term>
-   <listitem>
-    <para>
-     <function>fetchFromGitHub</function> expects four arguments. <literal>owner</literal> is a string corresponding to the GitHub user or organization that controls this repository. <literal>repo</literal> corresponds to the name of the software repository. These are located at the top of every GitHub HTML page as <literal>owner</literal>/<literal>repo</literal>. <literal>rev</literal> corresponds to the Git commit hash or tag (e.g <literal>v1.0</literal>) that will be downloaded from Git. Finally, <literal>sha256</literal> corresponds to the hash of the extracted directory. Again, other hash algorithms are also available but <literal>sha256</literal> is currently preferred.
-    </para>
-   </listitem>
-  </varlistentry>
-  <varlistentry>
-   <term>
-    <literal>fetchFromGitLab</literal>
-   </term>
-   <listitem>
-    <para>
-     This is used with GitLab repositories. The arguments expected are very similar to fetchFromGitHub above.
-    </para>
-   </listitem>
-  </varlistentry>
-  <varlistentry>
-   <term>
-    <literal>fetchFromGitiles</literal>
-   </term>
-   <listitem>
-    <para>
-     This is used with Gitiles repositories. The arguments expected
-     are similar to fetchgit.
-    </para>
-   </listitem>
-  </varlistentry>
-  <varlistentry>
-   <term>
-    <literal>fetchFromBitbucket</literal>
-   </term>
-   <listitem>
-    <para>
-     This is used with BitBucket repositories. The arguments expected are very similar to fetchFromGitHub above.
-    </para>
-   </listitem>
-  </varlistentry>
-  <varlistentry>
-   <term>
-    <literal>fetchFromSavannah</literal>
-   </term>
-   <listitem>
-    <para>
-     This is used with Savannah repositories. The arguments expected are very similar to fetchFromGitHub above.
-    </para>
-   </listitem>
-  </varlistentry>
-  <varlistentry>
-   <term>
-    <literal>fetchFromRepoOrCz</literal>
-   </term>
-   <listitem>
-    <para>
-     This is used with repo.or.cz repositories. The arguments expected are very similar to fetchFromGitHub above.
-    </para>
-   </listitem>
-  </varlistentry>
- </variablelist>
-</chapter>
diff --git a/doc/builders/packages/cataclysm-dda.section.md b/doc/builders/packages/cataclysm-dda.section.md
index ae2ee56a010..1173fe32ada 100644
--- a/doc/builders/packages/cataclysm-dda.section.md
+++ b/doc/builders/packages/cataclysm-dda.section.md
@@ -1,4 +1,4 @@
-# Cataclysm: Dark Days Ahead
+# Cataclysm: Dark Days Ahead {#cataclysm-dark-days-ahead}
 
 ## How to install Cataclysm DDA
 
diff --git a/doc/builders/packages/index.xml b/doc/builders/packages/index.xml
index c7a4aa9f47d..732560ec199 100644
--- a/doc/builders/packages/index.xml
+++ b/doc/builders/packages/index.xml
@@ -14,11 +14,11 @@
  <xi:include href="ibus.xml" />
  <xi:include href="kakoune.section.xml" />
  <xi:include href="linux.section.xml" />
- <xi:include href="locales.xml" />
+ <xi:include href="locales.section.xml" />
  <xi:include href="nginx.section.xml" />
  <xi:include href="opengl.section.xml" />
  <xi:include href="shell-helpers.section.xml" />
- <xi:include href="steam.xml" />
+ <xi:include href="steam.section.xml" />
  <xi:include href="cataclysm-dda.section.xml" />
  <xi:include href="urxvt.section.xml" />
  <xi:include href="weechat.section.xml" />
diff --git a/doc/builders/packages/locales.section.md b/doc/builders/packages/locales.section.md
new file mode 100644
index 00000000000..e5a03700481
--- /dev/null
+++ b/doc/builders/packages/locales.section.md
@@ -0,0 +1,5 @@
+# Locales {#locales}
+
+To allow simultaneous use of packages linked against different versions of `glibc` with different locale archive formats Nixpkgs patches `glibc` to rely on `LOCALE_ARCHIVE` environment variable.
+
+On non-NixOS distributions this variable is obviously not set. This can cause regressions in language support or even crashes in some Nixpkgs-provided programs. The simplest way to mitigate this problem is exporting the `LOCALE_ARCHIVE` variable pointing to `${glibcLocales}/lib/locale/locale-archive`. The drawback (and the reason this is not the default) is the relatively large (a hundred MiB) size of the full set of locales. It is possible to build a custom set of locales by overriding parameters `allLocales` and `locales` of the package.
diff --git a/doc/builders/packages/locales.xml b/doc/builders/packages/locales.xml
deleted file mode 100644
index 44fdef034e7..00000000000
--- a/doc/builders/packages/locales.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<section xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xml:id="locales">
- <title>Locales</title>
-
- <para>
-  To allow simultaneous use of packages linked against different versions of <literal>glibc</literal> with different locale archive formats Nixpkgs patches <literal>glibc</literal> to rely on <literal>LOCALE_ARCHIVE</literal> environment variable.
- </para>
-
- <para>
-  On non-NixOS distributions this variable is obviously not set. This can cause regressions in language support or even crashes in some Nixpkgs-provided programs. The simplest way to mitigate this problem is exporting the <literal>LOCALE_ARCHIVE</literal> variable pointing to <literal>${glibcLocales}/lib/locale/locale-archive</literal>. The drawback (and the reason this is not the default) is the relatively large (a hundred MiB) size of the full set of locales. It is possible to build a custom set of locales by overriding parameters <literal>allLocales</literal> and <literal>locales</literal> of the package.
- </para>
-</section>
diff --git a/doc/builders/packages/steam.section.md b/doc/builders/packages/steam.section.md
new file mode 100644
index 00000000000..e33f1192f7c
--- /dev/null
+++ b/doc/builders/packages/steam.section.md
@@ -0,0 +1,69 @@
+# Steam {#sec-steam}
+
+## Steam in Nix {#sec-steam-nix}
+
+Steam is distributed as a `.deb` file, for now only as an i686 package (the amd64 package only has documentation). When unpacked, it has a script called `steam` that in Ubuntu (their target distro) would go to `/usr/bin`. When run for the first time, this script copies some files to the user's home, which include another script that is the ultimate responsible for launching the steam binary, which is also in \$HOME.
+
+Nix problems and constraints:
+
+- We don't have `/bin/bash` and many scripts point there. Similarly for `/usr/bin/python`.
+- We don't have the dynamic loader in `/lib`.
+- The `steam.sh` script in \$HOME can not be patched, as it is checked and rewritten by steam.
+- The steam binary cannot be patched, it's also checked.
+
+The current approach to deploy Steam in NixOS is composing a FHS-compatible chroot environment, as documented [here](http://sandervanderburg.blogspot.nl/2013/09/composing-fhs-compatible-chroot.html). This allows us to have binaries in the expected paths without disrupting the system, and to avoid patching them to work in a non FHS environment.
+
+## How to play {#sec-steam-play}
+
+Use `programs.steam.enable = true;` if you want to add steam to systemPackages and also enable a few workarrounds aswell as Steam controller support or other Steam supported controllers such as the DualShock 4 or Nintendo Switch Pr.
+
+## Troubleshooting {#sec-steam-troub}
+
+- **Steam fails to start. What do I do?**
+  Try to run
+
+  ```ShellSession
+  strace steam
+  ```
+
+  to see what is causing steam to fail.
+
+- **Using the FOSS Radeon or nouveau (nvidia) drivers**
+
+  - 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
+  ```
+
+  You need to add
+
+  ```nix
+  steam.override { withJava = true; };
+  ```
+
+## steam-run {#sec-steam-run}
+
+The FHS-compatible chroot used for steam can also be used to run other linux games that expect a FHS environment. To do it, add
+
+```nix
+pkgs.steam.override ({
+          nativeOnly = true;
+          newStdcpp = true;
+        }).run
+```
+
+to your configuration, rebuild, and run the game with
+
+```
+steam-run ./foo
+```
diff --git a/doc/builders/packages/steam.xml b/doc/builders/packages/steam.xml
deleted file mode 100644
index 59673328bac..00000000000
--- a/doc/builders/packages/steam.xml
+++ /dev/null
@@ -1,125 +0,0 @@
-<section xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xml:id="sec-steam">
- <title>Steam</title>
-
- <section xml:id="sec-steam-nix">
-  <title>Steam in Nix</title>
-
-  <para>
-   Steam is distributed as a <filename>.deb</filename> file, for now only as an i686 package (the amd64 package only has documentation). When unpacked, it has a script called <filename>steam</filename> that in Ubuntu (their target distro) would go to <filename>/usr/bin </filename>. When run for the first time, this script copies some files to the user's home, which include another script that is the ultimate responsible for launching the steam binary, which is also in $HOME.
-  </para>
-
-  <para>
-   Nix problems and constraints:
-   <itemizedlist>
-    <listitem>
-     <para>
-      We don't have <filename>/bin/bash</filename> and many scripts point there. Similarly for <filename>/usr/bin/python</filename> .
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      We don't have the dynamic loader in <filename>/lib </filename>.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      The <filename>steam.sh</filename> script in $HOME can not be patched, as it is checked and rewritten by steam.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      The steam binary cannot be patched, it's also checked.
-     </para>
-    </listitem>
-   </itemizedlist>
-  </para>
-
-  <para>
-   The current approach to deploy Steam in NixOS is composing a FHS-compatible chroot environment, as documented <link xlink:href="http://sandervanderburg.blogspot.nl/2013/09/composing-fhs-compatible-chroot.html">here</link>. This allows us to have binaries in the expected paths without disrupting the system, and to avoid patching them to work in a non FHS environment.
-  </para>
- </section>
-
- <section xml:id="sec-steam-play">
-  <title>How to play</title>
-
-  <para>
-   Use <programlisting>programs.steam.enable = true;</programlisting> if you want to add steam to systemPackages and also enable a few workarrounds aswell as Steam controller support or other Steam supported controllers such as the DualShock 4 or Nintendo Switch Pr.
-  </para>
- </section>
-
- <section xml:id="sec-steam-troub">
-  <title>Troubleshooting</title>
-
-  <para>
-   <variablelist>
-    <varlistentry>
-     <term>
-      Steam fails to start. What do I do?
-     </term>
-     <listitem>
-      <para>
-       Try to run
-<programlisting>strace steam</programlisting>
-       to see what is causing steam to fail.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      Using the FOSS Radeon or nouveau (nvidia) drivers
-     </term>
-     <listitem>
-      <itemizedlist>
-       <listitem>
-        <para>
-         The <literal>newStdcpp</literal> parameter was removed since NixOS 17.09 and should not be needed anymore.
-        </para>
-       </listitem>
-       <listitem>
-        <para>
-         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
-<programlisting>steam.sh: line 713: 7842 Segmentation fault (core dumped)</programlisting>
-         have a look at <link xlink:href="https://github.com/NixOS/nixpkgs/pull/20269">this pull request</link>.
-        </para>
-       </listitem>
-      </itemizedlist>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>
-      Java
-     </term>
-     <listitem>
-      <orderedlist>
-       <listitem>
-        <para>
-         There is no java in steam chrootenv by default. If you get a message like
-<programlisting>/home/foo/.local/share/Steam/SteamApps/common/towns/towns.sh: line 1: java: command not found</programlisting>
-         You need to add
-<programlisting> steam.override { withJava = true; };</programlisting>
-         to your configuration.
-        </para>
-       </listitem>
-      </orderedlist>
-     </listitem>
-    </varlistentry>
-   </variablelist>
-  </para>
- </section>
-
- <section xml:id="sec-steam-run">
-  <title>steam-run</title>
-
-  <para>
-   The FHS-compatible chroot used for steam can also be used to run other linux games that expect a FHS environment. To do it, add
-<programlisting>pkgs.(steam.override {
-          nativeOnly = true;
-          newStdcpp = true;
-        }).run</programlisting>
-   to your configuration, rebuild, and run the game with
-<programlisting>steam-run ./foo</programlisting>
-  </para>
- </section>
-</section>
diff --git a/doc/builders/special.xml b/doc/builders/special.xml
index 15fdba9a041..8902ce5c813 100644
--- a/doc/builders/special.xml
+++ b/doc/builders/special.xml
@@ -5,6 +5,6 @@
  <para>
   This chapter describes several special builders.
  </para>
- <xi:include href="special/fhs-environments.xml" />
- <xi:include href="special/mkshell.xml" />
+ <xi:include href="special/fhs-environments.section.xml" />
+ <xi:include href="special/mkshell.section.xml" />
 </chapter>
diff --git a/doc/builders/special/fhs-environments.section.md b/doc/builders/special/fhs-environments.section.md
new file mode 100644
index 00000000000..512a31cae0f
--- /dev/null
+++ b/doc/builders/special/fhs-environments.section.md
@@ -0,0 +1,45 @@
+# buildFHSUserEnv {#sec-fhs-environments}
+
+`buildFHSUserEnv` provides a way to build and run FHS-compatible lightweight sandboxes. It creates an isolated root with bound `/nix/store`, so its footprint in terms of disk space needed is quite small. This allows one to run software which is hard or unfeasible to patch for NixOS -- 3rd-party source trees with FHS assumptions, games distributed as tarballs, software with integrity checking and/or external self-updated binaries. It uses Linux namespaces feature to create temporary lightweight environments which are destroyed after all child processes exit, without root user rights requirement. Accepted arguments are:
+
+- `name`
+        Environment name.
+- `targetPkgs`
+        Packages to be installed for the main host's architecture (i.e. x86_64 on x86_64 installations). Along with libraries binaries are also installed.
+- `multiPkgs`
+        Packages to be installed for all architectures supported by a host (i.e. i686 and x86_64 on x86_64 installations). Only libraries are installed by default.
+- `extraBuildCommands`
+        Additional commands to be executed for finalizing the directory structure.
+- `extraBuildCommandsMulti`
+        Like `extraBuildCommands`, but executed only on multilib architectures.
+- `extraOutputsToInstall`
+        Additional derivation outputs to be linked for both target and multi-architecture packages.
+- `extraInstallCommands`
+        Additional commands to be executed for finalizing the derivation with runner script.
+- `runScript`
+        A command that would be executed inside the sandbox and passed all the command line arguments. It defaults to `bash`.
+
+One can create a simple environment using a `shell.nix` like that:
+
+```nix
+{ pkgs ? import <nixpkgs> {} }:
+
+(pkgs.buildFHSUserEnv {
+  name = "simple-x11-env";
+  targetPkgs = pkgs: (with pkgs;
+    [ udev
+      alsaLib
+    ]) ++ (with pkgs.xorg;
+    [ libX11
+      libXcursor
+      libXrandr
+    ]);
+  multiPkgs = pkgs: (with pkgs;
+    [ udev
+      alsaLib
+    ]);
+  runScript = "bash";
+}).env
+```
+
+Running `nix-shell` would then drop you into a shell with these libraries and binaries available. You can use this to run closed-source applications which expect FHS structure without hassles: simply change `runScript` to the application path, e.g. `./bin/start.sh` -- relative paths are supported.
diff --git a/doc/builders/special/fhs-environments.xml b/doc/builders/special/fhs-environments.xml
deleted file mode 100644
index e7b81e97a23..00000000000
--- a/doc/builders/special/fhs-environments.xml
+++ /dev/null
@@ -1,122 +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-fhs-environments">
- <title>buildFHSUserEnv</title>
-
- <para>
-  <function>buildFHSUserEnv</function> provides a way to build and run FHS-compatible lightweight sandboxes. It creates an isolated root with bound <filename>/nix/store</filename>, so its footprint in terms of disk space needed is quite small. This allows one to run software which is hard or unfeasible to patch for NixOS -- 3rd-party source trees with FHS assumptions, games distributed as tarballs, software with integrity checking and/or external self-updated binaries. It uses Linux namespaces feature to create temporary lightweight environments which are destroyed after all child processes exit, without root user rights requirement. Accepted arguments are:
- </para>
-
- <variablelist>
-  <varlistentry>
-   <term>
-    <literal>name</literal>
-   </term>
-   <listitem>
-    <para>
-     Environment name.
-    </para>
-   </listitem>
-  </varlistentry>
-  <varlistentry>
-   <term>
-    <literal>targetPkgs</literal>
-   </term>
-   <listitem>
-    <para>
-     Packages to be installed for the main host's architecture (i.e. x86_64 on x86_64 installations). Along with libraries binaries are also installed.
-    </para>
-   </listitem>
-  </varlistentry>
-  <varlistentry>
-   <term>
-    <literal>multiPkgs</literal>
-   </term>
-   <listitem>
-    <para>
-     Packages to be installed for all architectures supported by a host (i.e. i686 and x86_64 on x86_64 installations). Only libraries are installed by default.
-    </para>
-   </listitem>
-  </varlistentry>
-  <varlistentry>
-   <term>
-    <literal>extraBuildCommands</literal>
-   </term>
-   <listitem>
-    <para>
-     Additional commands to be executed for finalizing the directory structure.
-    </para>
-   </listitem>
-  </varlistentry>
-  <varlistentry>
-   <term>
-    <literal>extraBuildCommandsMulti</literal>
-   </term>
-   <listitem>
-    <para>
-     Like <literal>extraBuildCommands</literal>, but executed only on multilib architectures.
-    </para>
-   </listitem>
-  </varlistentry>
-  <varlistentry>
-   <term>
-    <literal>extraOutputsToInstall</literal>
-   </term>
-   <listitem>
-    <para>
-     Additional derivation outputs to be linked for both target and multi-architecture packages.
-    </para>
-   </listitem>
-  </varlistentry>
-  <varlistentry>
-   <term>
-    <literal>extraInstallCommands</literal>
-   </term>
-   <listitem>
-    <para>
-     Additional commands to be executed for finalizing the derivation with runner script.
-    </para>
-   </listitem>
-  </varlistentry>
-  <varlistentry>
-   <term>
-    <literal>runScript</literal>
-   </term>
-   <listitem>
-    <para>
-     A command that would be executed inside the sandbox and passed all the command line arguments. It defaults to <literal>bash</literal>.
-    </para>
-   </listitem>
-  </varlistentry>
- </variablelist>
-
- <para>
-  One can create a simple environment using a <literal>shell.nix</literal> like that:
- </para>
-
-<programlisting><![CDATA[
-{ pkgs ? import <nixpkgs> {} }:
-
-(pkgs.buildFHSUserEnv {
-  name = "simple-x11-env";
-  targetPkgs = pkgs: (with pkgs;
-    [ udev
-      alsaLib
-    ]) ++ (with pkgs.xorg;
-    [ libX11
-      libXcursor
-      libXrandr
-    ]);
-  multiPkgs = pkgs: (with pkgs;
-    [ udev
-      alsaLib
-    ]);
-  runScript = "bash";
-}).env
-]]></programlisting>
-
- <para>
-  Running <literal>nix-shell</literal> would then drop you into a shell with these libraries and binaries available. You can use this to run closed-source applications which expect FHS structure without hassles: simply change <literal>runScript</literal> to the application path, e.g. <filename>./bin/start.sh</filename> -- relative paths are supported.
- </para>
-</section>
diff --git a/doc/builders/special/mkshell.section.md b/doc/builders/special/mkshell.section.md
new file mode 100644
index 00000000000..1feb75cbd6f
--- /dev/null
+++ b/doc/builders/special/mkshell.section.md
@@ -0,0 +1,15 @@
+# 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`.
+
+## 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
+  inputsFrom = with pkgs; [ hello gnutar ];
+  buildInputs = [ pkgs.gnumake ];
+}
+```
diff --git a/doc/builders/special/mkshell.xml b/doc/builders/special/mkshell.xml
deleted file mode 100644
index cef65d06b88..00000000000
--- a/doc/builders/special/mkshell.xml
+++ /dev/null
@@ -1,24 +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-mkShell">
- <title>pkgs.mkShell</title>
-
- <para>
-  <function>pkgs.mkShell</function> is a special kind of derivation that is only useful when using it combined with <command>nix-shell</command>. It will in fact fail to instantiate when invoked with <command>nix-build</command>.
- </para>
-
- <section xml:id="sec-pkgs-mkShell-usage">
-  <title>Usage</title>
-
-<programlisting><![CDATA[
-{ pkgs ? import <nixpkgs> {} }:
-pkgs.mkShell {
-  # this will make all the build inputs from hello and gnutar
-  # available to the shell environment
-  inputsFrom = with pkgs; [ hello gnutar ];
-  buildInputs = [ pkgs.gnumake ];
-}
-]]></programlisting>
- </section>
-</section>
diff --git a/doc/builders/trivial-builders.chapter.md b/doc/builders/trivial-builders.chapter.md
new file mode 100644
index 00000000000..32944567c05
--- /dev/null
+++ b/doc/builders/trivial-builders.chapter.md
@@ -0,0 +1,52 @@
+# Trivial builders {#chap-trivial-builders}
+
+Nixpkgs provides a couple of functions that help with building derivations. The most important one, `stdenv.mkDerivation`, has already been documented above. The following functions wrap `stdenv.mkDerivation`, making it easier to use in certain cases.
+
+## `runCommand` {#trivial-builder-runCommand}
+
+This takes three arguments, `name`, `env`, and `buildCommand`. `name` is just the name that Nix will append to the store path in the same way that `stdenv.mkDerivation` uses its `name` attribute. `env` is an attribute set specifying environment variables that will be set for this derivation. These attributes are then passed to the wrapped `stdenv.mkDerivation`. `buildCommand` specifies the commands that will be run to create this derivation. Note that you will need to create `$out` for Nix to register the command as successful.
+
+An example of using `runCommand` is provided below.
+
+```nix
+(import <nixpkgs> {}).runCommand "my-example" {} ''
+  echo My example command is running
+
+  mkdir $out
+
+  echo I can write data to the Nix store > $out/message
+
+  echo I can also run basic commands like:
+
+  echo ls
+  ls
+
+  echo whoami
+  whoami
+
+  echo date
+  date
+''
+```
+
+## `runCommandCC` {#trivial-builder-runCommandCC}
+
+This works just like `runCommand`. The only difference is that it also provides a C compiler in `buildCommand`'s environment. To minimize your dependencies, you should only use this if you are sure you will need a C compiler as part of running your command.
+
+## `runCommandLocal` {#trivial-builder-runCommandLocal}
+
+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
+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`.
+:::
+
+## `writeTextFile`, `writeText`, `writeTextDir`, `writeScript`, `writeScriptBin` {#trivial-builder-writeText}
+
+These functions write `text` to the Nix store. This is useful for creating scripts from Nix expressions. `writeTextFile` takes an attribute set and expects two arguments, `name` and `text`. `name` corresponds to the name used in the Nix store path. `text` will be the contents of the file. You can also set `executable` to true to make this file have the executable bit set.
+
+Many more commands wrap `writeTextFile` including `writeText`, `writeTextDir`, `writeScript`, and `writeScriptBin`. These are convenience functions over `writeTextFile`.
+
+## `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.
diff --git a/doc/builders/trivial-builders.xml b/doc/builders/trivial-builders.xml
deleted file mode 100644
index 94948c57b91..00000000000
--- a/doc/builders/trivial-builders.xml
+++ /dev/null
@@ -1,90 +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-trivial-builders">
- <title>Trivial builders</title>
- <para>
-  Nixpkgs provides a couple of functions that help with building derivations. The most important one, <function>stdenv.mkDerivation</function>, has already been documented above. The following functions wrap <function>stdenv.mkDerivation</function>, making it easier to use in certain cases.
- </para>
- <variablelist>
-  <varlistentry xml:id="trivial-builder-runCommand">
-   <term>
-    <literal>runCommand</literal>
-   </term>
-   <listitem>
-    <para>
-     This takes three arguments, <literal>name</literal>, <literal>env</literal>, and <literal>buildCommand</literal>. <literal>name</literal> is just the name that Nix will append to the store path in the same way that <literal>stdenv.mkDerivation</literal> uses its <literal>name</literal> attribute. <literal>env</literal> is an attribute set specifying environment variables that will be set for this derivation. These attributes are then passed to the wrapped <literal>stdenv.mkDerivation</literal>. <literal>buildCommand</literal> specifies the commands that will be run to create this derivation. Note that you will need to create <literal>$out</literal> for Nix to register the command as successful.
-    </para>
-    <para>
-     An example of using <literal>runCommand</literal> is provided below.
-    </para>
-<programlisting>
-(import &lt;nixpkgs&gt; {}).runCommand "my-example" {} ''
-  echo My example command is running
-
-  mkdir $out
-
-  echo I can write data to the Nix store > $out/message
-
-  echo I can also run basic commands like:
-
-  echo ls
-  ls
-
-  echo whoami
-  whoami
-
-  echo date
-  date
-''
-</programlisting>
-   </listitem>
-  </varlistentry>
-  <varlistentry xml:id="trivial-builder-runCommandCC">
-   <term>
-    <literal>runCommandCC</literal>
-   </term>
-   <listitem>
-    <para>
-     This works just like <literal>runCommand</literal>. The only difference is that it also provides a C compiler in <literal>buildCommand</literal>’s environment. To minimize your dependencies, you should only use this if you are sure you will need a C compiler as part of running your command.
-    </para>
-   </listitem>
-  </varlistentry>
-  <varlistentry xml:id="trivial-builder-runCommandLocal">
-   <term>
-    <literal>runCommandLocal</literal>
-   </term>
-   <listitem>
-    <para>
-     Variant of <literal>runCommand</literal> that forces the derivation to be built locally, it is not substituted. This is intended for very cheap commands (&lt;1s execution time). It saves on the network roundrip and can speed up a build.
-    </para>
-    <note><para>
-      This sets <link xlink:href="https://nixos.org/nix/manual/#adv-attr-allowSubstitutes"><literal>allowSubstitutes</literal> to <literal>false</literal></link>, so only use <literal>runCommandLocal</literal> if you are certain the user will always have a builder for the <literal>system</literal> 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 <literal>system</literal> is usually the same as <literal>builtins.currentSystem</literal>.
-    </para></note>
-   </listitem>
-  </varlistentry>
-  <varlistentry xml:id="trivial-builder-writeText">
-   <term>
-    <literal>writeTextFile</literal>, <literal>writeText</literal>, <literal>writeTextDir</literal>, <literal>writeScript</literal>, <literal>writeScriptBin</literal>
-   </term>
-   <listitem>
-    <para>
-     These functions write <literal>text</literal> to the Nix store. This is useful for creating scripts from Nix expressions. <literal>writeTextFile</literal> takes an attribute set and expects two arguments, <literal>name</literal> and <literal>text</literal>. <literal>name</literal> corresponds to the name used in the Nix store path. <literal>text</literal> will be the contents of the file. You can also set <literal>executable</literal> to true to make this file have the executable bit set.
-    </para>
-    <para>
-     Many more commands wrap <literal>writeTextFile</literal> including <literal>writeText</literal>, <literal>writeTextDir</literal>, <literal>writeScript</literal>, and <literal>writeScriptBin</literal>. These are convenience functions over <literal>writeTextFile</literal>.
-    </para>
-   </listitem>
-  </varlistentry>
-  <varlistentry xml:id="trivial-builder-symlinkJoin">
-   <term>
-    <literal>symlinkJoin</literal>
-   </term>
-   <listitem>
-    <para>
-     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, <literal>name</literal>, and <literal>paths</literal>. <literal>name</literal> is the name used in the Nix store path for the created derivation. <literal>paths</literal> is a list of paths that will be symlinked. These paths can be to Nix store derivations or any other subdirectory contained within.
-    </para>
-   </listitem>
-  </varlistentry>
- </variablelist>
-</chapter>
diff --git a/doc/languages-frameworks/agda.section.md b/doc/languages-frameworks/agda.section.md
index 5ba4e285f42..66b4a208302 100644
--- a/doc/languages-frameworks/agda.section.md
+++ b/doc/languages-frameworks/agda.section.md
@@ -1,9 +1,4 @@
----
-title: Agda
-author: Alex Rice (alexarice)
-date: 2020-01-06
----
-# Agda
+# Agda {#agda}
 
 ## How to use Agda
 
diff --git a/doc/languages-frameworks/android.section.md b/doc/languages-frameworks/android.section.md
index f4f6c086a80..cfbacf1bccd 100644
--- a/doc/languages-frameworks/android.section.md
+++ b/doc/languages-frameworks/android.section.md
@@ -1,9 +1,4 @@
----
-title: Android
-author: Sander van der Burg
-date: 2018-11-18
----
-# Android
+# Android {#android}
 
 The Android build environment provides three major features and a number of
 supporting features.
diff --git a/doc/languages-frameworks/crystal.section.md b/doc/languages-frameworks/crystal.section.md
index af0853dbf75..74790132974 100644
--- a/doc/languages-frameworks/crystal.section.md
+++ b/doc/languages-frameworks/crystal.section.md
@@ -1,4 +1,4 @@
-# Crystal
+# Crystal {#crystal}
 
 ## Building a Crystal package
 
diff --git a/doc/languages-frameworks/emscripten.section.md b/doc/languages-frameworks/emscripten.section.md
index 3663f962d5f..8a47a7b320a 100644
--- a/doc/languages-frameworks/emscripten.section.md
+++ b/doc/languages-frameworks/emscripten.section.md
@@ -1,4 +1,4 @@
-# Emscripten
+# Emscripten {#emscripten}
 
 [Emscripten](https://github.com/kripken/emscripten): An LLVM-to-JavaScript Compiler
 
diff --git a/doc/languages-frameworks/haskell.section.md b/doc/languages-frameworks/haskell.section.md
index 67318a5b746..1fda505a225 100644
--- a/doc/languages-frameworks/haskell.section.md
+++ b/doc/languages-frameworks/haskell.section.md
@@ -1,10 +1,4 @@
----
-title: User's Guide for Haskell in Nixpkgs
-author: Peter Simons
-date: 2015-06-01
----
-
-# Haskell
+# Haskell {#haskell}
 
 The documentation for the Haskell infrastructure is published at
 <https://haskell4nix.readthedocs.io/>. The source code for that
diff --git a/doc/languages-frameworks/idris.section.md b/doc/languages-frameworks/idris.section.md
index f071b9ce178..2d06c4a19de 100644
--- a/doc/languages-frameworks/idris.section.md
+++ b/doc/languages-frameworks/idris.section.md
@@ -1,4 +1,4 @@
-# Idris
+# Idris {#idris}
 
 ## Installing Idris
 
diff --git a/doc/languages-frameworks/ios.section.md b/doc/languages-frameworks/ios.section.md
index 768e0690b96..a162e8d19fd 100644
--- a/doc/languages-frameworks/ios.section.md
+++ b/doc/languages-frameworks/ios.section.md
@@ -1,9 +1,4 @@
----
-title: iOS
-author: Sander van der Burg
-date: 2019-11-10
----
-# iOS
+# iOS {#ios}
 
 This component is basically a wrapper/workaround that makes it possible to
 expose an Xcode installation as a Nix package by means of symlinking to the
diff --git a/doc/languages-frameworks/lua.section.md b/doc/languages-frameworks/lua.section.md
index a0e9917b8ec..248e5971818 100644
--- a/doc/languages-frameworks/lua.section.md
+++ b/doc/languages-frameworks/lua.section.md
@@ -1,10 +1,4 @@
----
-title: Lua
-author: Matthieu Coudron
-date: 2019-02-05
----
-
-# User's Guide to Lua Infrastructure
+# User's Guide to Lua Infrastructure {#users-guide-to-lua-infrastructure}
 
 ## Using Lua
 
diff --git a/doc/languages-frameworks/maven.section.md b/doc/languages-frameworks/maven.section.md
index fe183e7ba3c..5f3979d69fd 100644
--- a/doc/languages-frameworks/maven.section.md
+++ b/doc/languages-frameworks/maven.section.md
@@ -1,10 +1,4 @@
----
-title: Maven
-author: Farid Zakaria
-date: 2020-10-15
----
-
-# Maven
+# Maven {#maven}
 
 Maven is a well-known build tool for the Java ecosystem however it has some challenges when integrating into the Nix build system.
 
diff --git a/doc/languages-frameworks/node.section.md b/doc/languages-frameworks/node.section.md
index 2120adfc0b4..847db22941f 100644
--- a/doc/languages-frameworks/node.section.md
+++ b/doc/languages-frameworks/node.section.md
@@ -1,5 +1,5 @@
-Node.js
-=======
+# Node.js {#node.js}
+
 The `pkgs/development/node-packages` folder contains a generated collection of
 [NPM packages](https://npmjs.com/) that can be installed with the Nix package
 manager.
diff --git a/doc/languages-frameworks/php.section.md b/doc/languages-frameworks/php.section.md
index 763beeb5935..5977363323f 100644
--- a/doc/languages-frameworks/php.section.md
+++ b/doc/languages-frameworks/php.section.md
@@ -135,3 +135,21 @@ Example of building `composer` with additional extensions:
   enabled ++ (with all; [ imagick redis ]))
 ).packages.composer
 ```
+
+### Overriding PHP packages {#ssec-php-user-guide-overriding-packages}
+
+`php-packages.nix` form a scope, allowing us to override the packages defined within. For example, to apply a patch to a `mysqlnd` extension, you can simply pass an overlay-style function to `php`’s `packageOverrides` argument:
+
+```nix
+php.override {
+  packageOverrides = final: prev: {
+    extensions = prev.extensions // {
+      mysqlnd = prev.extensions.mysqlnd.overrideAttrs (attrs: {
+        patches = attrs.patches or [] ++ [
+          …
+        ];
+      });
+    };
+  };
+}
+```
diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md
index 8a2fe2711c7..2dea2cb1bcc 100644
--- a/doc/languages-frameworks/python.section.md
+++ b/doc/languages-frameworks/python.section.md
@@ -1,4 +1,4 @@
-# Python
+# Python {#python}
 
 ## User Guide
 
diff --git a/doc/languages-frameworks/r.section.md b/doc/languages-frameworks/r.section.md
index d4e1617779c..d7154adc55b 100644
--- a/doc/languages-frameworks/r.section.md
+++ b/doc/languages-frameworks/r.section.md
@@ -1,5 +1,4 @@
-R
-=
+# R {#r}
 
 ## Installation
 
diff --git a/doc/languages-frameworks/rust.section.md b/doc/languages-frameworks/rust.section.md
index 0230993d3f0..231cbe900e7 100644
--- a/doc/languages-frameworks/rust.section.md
+++ b/doc/languages-frameworks/rust.section.md
@@ -1,10 +1,4 @@
----
-title: Rust
-author: Matthias Beyer
-date: 2017-03-05
----
-
-# Rust
+# Rust {#rust}
 
 To install the rust compiler and cargo put
 
@@ -27,16 +21,16 @@ Rust applications are packaged by using the `buildRustPackage` helper from `rust
 ```
 rustPlatform.buildRustPackage rec {
   pname = "ripgrep";
-  version = "11.0.2";
+  version = "12.1.1";
 
   src = fetchFromGitHub {
     owner = "BurntSushi";
     repo = pname;
     rev = version;
-    sha256 = "1iga3320mgi7m853la55xip514a3chqsdi1a1rwv25lr9b1p7vd3";
+    sha256 = "1hqps7l5qrjh9f914r5i6kmcz6f1yb951nv4lby0cjnp5l253kps";
   };
 
-  cargoSha256 = "17ldqr3asrdcsh4l29m3b5r37r5d0b3npq1lrgjmxb6vlx6a36qh";
+  cargoSha256 = "03wf9r2csi6jpa7v5sw5lpxkrk4wfzwmzx7k3991q3bdjzcwnnwp";
 
   meta = with stdenv.lib; {
     description = "A fast line-oriented regex search tool, similar to ag and ack";
@@ -47,10 +41,31 @@ rustPlatform.buildRustPackage rec {
 }
 ```
 
-`buildRustPackage` requires a `cargoSha256` attribute which is computed over
-all crate sources of this package. Currently it is obtained by inserting a
-fake checksum into the expression and building the package once. The correct
-checksum can then be taken from the failed build.
+`buildRustPackage` requires either the `cargoSha256` or the
+`cargoHash` attribute which is computed over all crate sources of this
+package. `cargoHash256` is used for traditional Nix SHA-256 hashes,
+such as the one in the example above. `cargoHash` should instead be
+used for [SRI](https://www.w3.org/TR/SRI/) hashes. For example:
+
+```
+  cargoHash = "sha256-l1vL2ZdtDRxSGvP0X/l3nMw8+6WF67KPutJEzUROjg8=";
+```
+
+Both types of hashes are permitted when contributing to nixpkgs. The
+Cargo hash is obtained by inserting a fake checksum into the
+expression and building the package once. The correct checksum can
+then be taken from the failed build. A fake hash can be used for
+`cargoSha256` as follows:
+
+```
+  cargoSha256 = stdenv.lib.fakeSha256;
+```
+
+For `cargoHash` you can use:
+
+```
+  cargoHash = stdenv.lib.fakeHash;
+```
 
 Per the instructions in the [Cargo Book](https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html)
 best practices guide, Rust applications should always commit the `Cargo.lock`
diff --git a/doc/languages-frameworks/texlive.section.md b/doc/languages-frameworks/texlive.section.md
index 9584c56bb52..c3028731f4e 100644
--- a/doc/languages-frameworks/texlive.section.md
+++ b/doc/languages-frameworks/texlive.section.md
@@ -1,4 +1,3 @@
-
 # TeX Live {#sec-language-texlive}
 
 Since release 15.09 there is a new TeX Live packaging that lives entirely under attribute `texlive`.
diff --git a/doc/languages-frameworks/titanium.section.md b/doc/languages-frameworks/titanium.section.md
index 7a97664ec59..57360f034b9 100644
--- a/doc/languages-frameworks/titanium.section.md
+++ b/doc/languages-frameworks/titanium.section.md
@@ -1,9 +1,4 @@
----
-title: Titanium
-author: Sander van der Burg
-date: 2018-11-18
----
-# Titanium
+# Titanium {#titanium}
 
 The Nixpkgs repository contains facilities to deploy a variety of versions of
 the [Titanium SDK](https://www.appcelerator.com) versions, a cross-platform
diff --git a/doc/languages-frameworks/vim.section.md b/doc/languages-frameworks/vim.section.md
index 84ad567e8c2..155dacc237b 100644
--- a/doc/languages-frameworks/vim.section.md
+++ b/doc/languages-frameworks/vim.section.md
@@ -1,9 +1,4 @@
----
-title: User's Guide for Vim in Nixpkgs
-author: Marc Weber
-date: 2016-06-25
----
-# Vim
+# Vim {#vim}
 
 Both Neovim and Vim can be configured to include your favorite plugins
 and additional libraries.
diff --git a/doc/manual.xml b/doc/manual.xml
index 4367c023b40..8cecb01fc22 100644
--- a/doc/manual.xml
+++ b/doc/manual.xml
@@ -23,8 +23,8 @@
  </part>
  <part>
   <title>Builders</title>
-  <xi:include href="builders/fetchers.xml" />
-  <xi:include href="builders/trivial-builders.xml" />
+  <xi:include href="builders/fetchers.chapter.xml" />
+  <xi:include href="builders/trivial-builders.chapter.xml" />
   <xi:include href="builders/special.xml" />
   <xi:include href="builders/images.xml" />
   <xi:include href="languages-frameworks/index.xml" />
diff --git a/doc/preface.chapter.md b/doc/preface.chapter.md
index 549e42de7aa..64c921c711b 100644
--- a/doc/preface.chapter.md
+++ b/doc/preface.chapter.md
@@ -1,10 +1,4 @@
----
-title: Preface
-author: Frederik Rietdijk
-date: 2015-11-25
----
-
-# Preface
+# Preface {#preface}
 
 The Nix Packages collection (Nixpkgs) is a set of thousands of packages for the
 [Nix package manager](https://nixos.org/nix/), released under a
diff --git a/lib/licenses.nix b/lib/licenses.nix
index 6e7cd62515c..ebeb1377339 100644
--- a/lib/licenses.nix
+++ b/lib/licenses.nix
@@ -623,6 +623,12 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     fullName = "Open Software License 3.0";
   };
 
+  parity70 = spdx {
+    spdxId = "Parity-7.0.0";
+    fullName = "Parity Public License 7.0.0";
+    url = "https://paritylicense.com/versions/7.0.0.html";
+  };
+
   php301 = spdx {
     spdxId = "PHP-3.01";
     fullName = "PHP License v3.01";
@@ -811,14 +817,54 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
   };
 } // {
   # TODO: remove legacy aliases
-  agpl3 = lib.licenses.agpl3Only;
-  fdl11 = lib.licenses.fdl11Only;
-  fdl12 = lib.licenses.fdl12Only;
-  fdl13 = lib.licenses.fdl13Only;
-  gpl1 = lib.licenses.gpl1Only;
-  gpl2 = lib.licenses.gpl2Only;
-  gpl3 = lib.licenses.gpl3Only;
-  lgpl2 = lib.licenses.lgpl2Only;
-  lgpl21 = lib.licenses.lgpl21Only;
-  lgpl3 = lib.licenses.lgpl3Only;
+  agpl3 = spdx {
+    spdxId = "AGPL-3.0";
+    fullName = "GNU Affero General Public License v3.0";
+    deprecated = true;
+  };
+  fdl11 = spdx {
+    spdxId = "GFDL-1.1";
+    fullName = "GNU Free Documentation License v1.1";
+    deprecated = true;
+  };
+  fdl12 = spdx {
+    spdxId = "GFDL-1.2";
+    fullName = "GNU Free Documentation License v1.2";
+    deprecated = true;
+  };
+  fdl13 = spdx {
+    spdxId = "GFDL-1.3";
+    fullName = "GNU Free Documentation License v1.3";
+    deprecated = true;
+  };
+  gpl1 = spdx {
+    spdxId = "GPL-1.0";
+    fullName = "GNU General Public License v1.0";
+    deprecated = true;
+  };
+  gpl2 = spdx {
+    spdxId = "GPL-2.0";
+    fullName = "GNU General Public License v2.0";
+    deprecated = true;
+  };
+  gpl3 = spdx {
+    spdxId = "GPL-3.0";
+    fullName = "GNU General Public License v3.0";
+    deprecated = true;
+  };
+  lgpl2 = spdx {
+    spdxId = "LGPL-2.0";
+    fullName = "GNU Library General Public License v2";
+    deprecated = true;
+  };
+  lgpl21 = spdx {
+    spdxId = "LGPL-2.1";
+    fullName = "GNU Lesser General Public License v2.1";
+    deprecated = true;
+  };
+  lgpl3 = spdx {
+    spdxId = "LGPL-3.0";
+    fullName = "GNU Lesser General Public License v3.0";
+    deprecated = true;
+  };
 }
diff --git a/lib/systems/architectures.nix b/lib/systems/architectures.nix
index bfecaec1ae8..8e3a56b0d7c 100644
--- a/lib/systems/architectures.nix
+++ b/lib/systems/architectures.nix
@@ -12,6 +12,12 @@ rec {
     broadwell      = [ "sse3" "ssse3" "sse4_1" "sse4_2"         "aes" "avx" "avx2"          "fma"        ];
     skylake        = [ "sse3" "ssse3" "sse4_1" "sse4_2"         "aes" "avx" "avx2"          "fma"        ];
     skylake-avx512 = [ "sse3" "ssse3" "sse4_1" "sse4_2"         "aes" "avx" "avx2" "avx512" "fma"        ];
+    cannonlake     = [ "sse3" "ssse3" "sse4_1" "sse4_2"         "aes" "avx" "avx2" "avx512" "fma"        ];
+    icelake-client = [ "sse3" "ssse3" "sse4_1" "sse4_2"         "aes" "avx" "avx2" "avx512" "fma"        ];
+    icelake-server = [ "sse3" "ssse3" "sse4_1" "sse4_2"         "aes" "avx" "avx2" "avx512" "fma"        ];
+    cascadelake    = [ "sse3" "ssse3" "sse4_1" "sse4_2"         "aes" "avx" "avx2" "avx512" "fma"        ];
+    cooperlake     = [ "sse3" "ssse3" "sse4_1" "sse4_2"         "aes" "avx" "avx2" "avx512" "fma"        ];
+    tigerlake      = [ "sse3" "ssse3" "sse4_1" "sse4_2"         "aes" "avx" "avx2" "avx512" "fma"        ];
     # x86_64 AMD
     btver1         = [ "sse3" "ssse3" "sse4_1" "sse4_2"                                                  ];
     btver2         = [ "sse3" "ssse3" "sse4_1" "sse4_2"         "aes" "avx"                              ];
@@ -21,6 +27,7 @@ rec {
     bdver4         = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx" "avx2"          "fma" "fma4" ];
     znver1         = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx" "avx2"          "fma"        ];
     znver2         = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx" "avx2"          "fma"        ];
+    znver3         = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx" "avx2"          "fma"        ];
     # other
     armv5te        = [ ];
     armv6          = [ ];
@@ -41,15 +48,38 @@ rec {
     broadwell      = [ "haswell"     ] ++ inferiors.haswell;
     skylake        = [ "broadwell"   ] ++ inferiors.broadwell;
     skylake-avx512 = [ "skylake"     ] ++ inferiors.skylake;
+
     # x86_64 AMD
+    # TODO: fill this (need testing)
     btver1         = [ ];
-    btver2         = [ ]; # TODO: fill this (need testing)
-    bdver1         = [ ]; # TODO: fill this (need testing)
-    bdver2         = [ ]; # TODO: fill this (need testing)
-    bdver3         = [ ]; # TODO: fill this (need testing)
-    bdver4         = [ ]; # TODO: fill this (need testing)
-    znver1         = [ ]; # TODO: fill this (need testing)
-    znver2         = [ ]; # TODO: fill this (need testing)
+    btver2         = [ ];
+    bdver1         = [ ];
+    bdver2         = [ ];
+    bdver3         = [ ];
+    bdver4         = [ ];
+    # Regarding `skylake` as inferior of `znver1`, there are reports of
+    # successful usage by Gentoo users and Phoronix benchmarking of different
+    # `-march` targets.
+    #
+    # The GCC documentation on extensions used and wikichip documentation
+    # regarding supperted extensions on znver1 and skylake was used to create
+    # this partial order.
+    #
+    # Note:
+    #
+    # - The succesors of `skylake` (`cannonlake`, `icelake`, etc) use `avx512`
+    #   which no current AMD Zen michroarch support.
+    # - `znver1` uses `ABM`, `CLZERO`, `CX16`, `MWAITX`, and `SSE4A` which no
+    #   current Intel microarch support.
+    #
+    # https://www.phoronix.com/scan.php?page=article&item=amd-znver3-gcc11&num=1
+    # https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html
+    # https://en.wikichip.org/wiki/amd/microarchitectures/zen
+    # https://en.wikichip.org/wiki/intel/microarchitectures/skylake
+    znver1         = [ "skylake" ] ++ inferiors.skylake;
+    znver2         = [ "znver1"  ] ++ inferiors.znver1;
+    znver3         = [ "znver2"  ] ++ inferiors.znver2;
+
     # other
     armv5te        = [ ];
     armv6          = [ ];
diff --git a/lib/systems/default.nix b/lib/systems/default.nix
index f6832945a23..4edcbeb36f1 100644
--- a/lib/systems/default.nix
+++ b/lib/systems/default.nix
@@ -83,7 +83,7 @@ rec {
         if final.isAarch32 then "arm"
         else if final.isAarch64 then "arm64"
         else if final.isx86_32 then "x86"
-        else if final.isx86_64 then "ia64"
+        else if final.isx86_64 then "x86"
         else if final.isMips then "mips"
         else final.parsed.cpu.name;
 
@@ -124,6 +124,8 @@ rec {
         then "${qemu-user}/bin/qemu-${final.qemuArch}"
         else if final.isWasi
         then "${pkgs.wasmtime}/bin/wasmtime"
+        else if final.isMmix
+        then "${pkgs.mmixware}/bin/mmix"
         else throw "Don't know how to run ${final.config} executables.";
 
     } // mapAttrs (n: v: v final.parsed) inspect.predicates
diff --git a/lib/systems/platforms.nix b/lib/systems/platforms.nix
index a0dccc85988..fdd127e5541 100644
--- a/lib/systems/platforms.nix
+++ b/lib/systems/platforms.nix
@@ -490,8 +490,9 @@ rec {
 
     # ARM
     else if platform.isAarch32 then let
-      version = platform.parsed.cpu.version or "";
-      in     if lib.versionOlder version "6" then sheevaplug
+      version = platform.parsed.cpu.version or null;
+      in     if version == null then pcBase
+        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
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index bc1cf0f8b8f..184089882ec 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -70,6 +70,18 @@
     githubId = 7414843;
     name = "Nicholas von Klitzing";
   };
+  _3noch = {
+    email = "eacameron@gmail.com";
+    github = "3noch";
+    githubId = 882455;
+    name = "Elliot Cameron";
+  };
+  _6AA4FD = {
+    email = "f6442954@gmail.com";
+    github = "6AA4FD";
+    githubId = 12578560;
+    name = "Quinn Bohner";
+  };
   a1russell = {
     email = "adamlr6+pub@gmail.com";
     github = "a1russell";
@@ -580,6 +592,12 @@
     githubId = 3808928;
     name = "Anders Sildnes";
   };
+  andys8 = {
+    email = "andys8@users.noreply.github.com";
+    github = "andys8";
+    githubId = 13085980;
+    name = "Andy";
+  };
   aneeshusa = {
     email = "aneeshusa@gmail.com";
     github = "aneeshusa";
@@ -811,6 +829,10 @@
     github = "aszlig";
     githubId = 192147;
     name = "aszlig";
+    keys = [{
+      longkeyid = "ed25519/0x684089CE67EBB691";
+      fingerprint = "DD52 6BC7 767D BA28 16C0 95E5 6840 89CE 67EB B691";
+    }];
   };
   atemu = {
     name = "Atemu";
@@ -1140,6 +1162,12 @@
     githubId = 37907;
     name = "Julian Stecklina";
   };
+  bloomvdomino = {
+    name = "Laura Fäßler";
+    email = "0x@ytex.de";
+    github = "bloomvdomino";
+    githubId = 33204710;
+  };
   bluescreen303 = {
     email = "mathijs@bluescreen303.nl";
     github = "bluescreen303";
@@ -1360,12 +1388,12 @@
     keys = [
       # compare with https://keybase.io/cab404
       {
-        longkeyid = "1BB96810926F4E715DEF567E6BA7C26C3FDF7BB3";
-        fingerprint = "rsa3072/0xCBDECF658C38079E";
+        fingerprint = "1BB96810926F4E715DEF567E6BA7C26C3FDF7BB3";
+        longkeyid = "rsa3072/0xCBDECF658C38079E";
       }
       {
-        longkeyid = "1EBC648C64D6045463013B3EB7EFFC271D55DB8A";
-        fingerprint = "ed25519/0xB7EFFC271D55DB8A";
+        fingerprint = "1EBC648C64D6045463013B3EB7EFFC271D55DB8A";
+        longkeyid = "ed25519/0xB7EFFC271D55DB8A";
       }
     ];
   };
@@ -2857,6 +2885,12 @@
     githubId = 30512529;
     name = "Evils";
   };
+  ewok = {
+    email = "ewok@ewok.ru";
+    github = "ewok";
+    githubId = 454695;
+    name = "Artur Taranchiev";
+  };
   exfalso = {
     email = "0slemi0@gmail.com";
     github = "exfalso";
@@ -2905,6 +2939,16 @@
     githubId = 11909469;
     name = "Fabian Geiselhart";
   };
+  fab = {
+    email = "mail@fabian-affolter.ch";
+    name = "Fabian Affolter";
+    github = "fabaff";
+    githubId = 116184;
+    keys = [{
+      longkeyid = "dsa1024/0xE23CD2DD36A4397F";
+      fingerprint = "2F6C 930F D3C4 7E38 6AFA  4EB4 E23C D2DD 36A4 397F";
+    }];
+  };
   fabianhauser = {
     email = "fabian.nixos@fh2.ch";
     github = "fabianhauser";
@@ -3587,6 +3631,12 @@
     email = "t@larkery.com";
     name = "Tom Hinton";
   };
+  hirenashah = {
+    email = "hiren@hiren.io";
+    github = "hirenashah";
+    githubId = 19825977;
+    name = "Hiren Shah";
+  };
   hjones2199 = {
     email = "hjones2199@gmail.com";
     github = "hjones2199";
@@ -3667,6 +3717,12 @@
     githubId = 2789926;
     name = "Imran Hossain";
   };
+  iammrinal0 = {
+    email = "nixpkgs@mrinalpurohit.in";
+    github = "iammrinal0";
+    githubId = 890062;
+    name = "Mrinal";
+  };
   iand675 = {
     email = "ian@iankduncan.com";
     github = "iand675";
@@ -3897,6 +3953,12 @@
     githubId = 2179419;
     name = "Arseniy Seroka";
   };
+  jakeisnt = {
+    name = "Jacob Chvatal";
+    email = "jake@isnt.online";
+    github = "jakeisnt";
+    githubId = 29869612;
+  };
   jakelogemann = {
     email = "jake.logemann@gmail.com";
     github = "jakelogemann";
@@ -4936,6 +4998,12 @@
     githubId = 45168934;
     name = "Louis Blin";
   };
+  lucc = {
+    email = "lucc+nix@posteo.de";
+    github = "lucc";
+    githubId = 1104419;
+    name = "Lucas Hoffmann";
+  };
   ldelelis = {
     email = "ldelelis@est.frba.utn.edu.ar";
     github = "ldelelis";
@@ -5205,16 +5273,10 @@
     github = "lovesegfault";
     githubId = 7243783;
     name = "Bernardo Meurer";
-    keys = [
-      {
-        longkeyid = "rsa2048/0xE421C74191EA186C";
-        fingerprint = "5894 12CE 19DF 582A E10A  3320 E421 C741 91EA 186C";
-      }
-      {
-        longkeyid = "rsa2048/0x4A6D87A0E7475769";
-        fingerprint = "56A8 E164 E834 290C 4AC0  EE3E 4A6D 87A0 E747 5769";
-      }
-    ];
+    keys = [{
+        longkeyid = "rsa4096/0xF4C0D53B8D14C246";
+        fingerprint = "F193 7596 57D5 6DA4 CCD4  786B F4C0 D53B 8D14 C246";
+    }];
   };
   lowfatcomputing = {
     email = "andreas.wagner@lowfatcomputing.org";
@@ -5222,6 +5284,10 @@
     githubId = 10626;
     name = "Andreas Wagner";
   };
+  lrworth = {
+    email = "luke@worth.id.au";
+    name = "Luke Worth";
+  };
   lschuermann = {
     email = "leon.git@is.currently.online";
     github = "lschuermann";
@@ -5895,6 +5961,12 @@
     githubId = 1001112;
     name = "Marcin Janczyk";
   };
+  mjlbach = {
+    email = "m.j.lbach@gmail.com";
+    github = "mjlbach";
+    githubId = 13316262;
+    name = "Michael Lingelbach";
+  };
   mjp = {
     email = "mike@mythik.co.uk";
     github = "MikePlayle";
@@ -6405,6 +6477,16 @@
     githubId = 1219785;
     name = "Félix Baylac-Jacqué";
   };
+  ninjin = {
+    email = "pontus@stenetorp.se";
+    github = "ninjin";
+    githubId = 354934;
+    name = "Pontus Stenetorp";
+    keys = [{
+      longkeyid = "rsa4096/0xD430287500E6483C";
+      fingerprint = "0966 2F9F 3FDA C22B C22E  4CE1 D430 2875 00E6 483C";
+    }];
+  };
   nioncode = {
     email = "nioncode+github@gmail.com";
     github = "nioncode";
@@ -6653,6 +6735,12 @@
     githubId = 111265;
     name = "Ozan Sener";
   };
+  otavio = {
+    email = "otavio.salvador@ossystems.com.br";
+    github = "otavio";
+    githubId = 25278;
+    name = "Otavio Salvador";
+  };
   otwieracz = {
     email = "slawek@otwiera.cz";
     github = "otwieracz";
@@ -7309,6 +7397,12 @@
     githubId = 14829269;
     name = "Ram Kromberg";
   };
+  ranfdev = {
+    email = "ranfdev@gmail.com";
+    name = "Lorenzo Miglietta";
+    github = "ranfdev";
+    githubId = 23294184;
+  };
   rardiol = {
     email = "ricardo.ardissone@gmail.com";
     github = "rardiol";
@@ -7343,6 +7437,12 @@
     githubId = 1758708;
     name = "Răzvan Flavius Panda";
   };
+  rb2k = {
+    email = "nix@marc-seeger.com";
+    github = "rb2k";
+    githubId = 9519;
+    name = "Marc Seeger";
+  };
   rbasso = {
     email = "rbasso@sharpgeeks.net";
     github = "rbasso";
@@ -7379,6 +7479,12 @@
     githubId = 816465;
     name = "Redvers Davies";
   };
+  reedrw = {
+    email = "reedrw5601@gmail.com";
+    github = "reedrw";
+    githubId = 21069876;
+    name = "Reed Williams";
+  };
   refnil = {
     email = "broemartino@gmail.com";
     github = "refnil";
@@ -8493,6 +8599,12 @@
     githubId = 638763;
     name = "Stuart Moss";
   };
+  stunkymonkey = {
+    email = "account@buehler.rocks";
+    github = "Stunkymonkey";
+    githubId = 1315818;
+    name = "Felix Bühler";
+  };
   suhr = {
     email = "suhr@i2pmail.org";
     github = "suhr";
@@ -8529,6 +8641,12 @@
     githubId = 1040871;
     name = "Mathis Antony";
   };
+  svrana = {
+    email = "shaw@vranix.com";
+    github = "svrana";
+    githubId = 850665;
+    name = "Shaw Vrana";
+  };
   svsdep = {
     email = "svsdep@gmail.com";
     github = "svsdep";
@@ -9045,6 +9163,12 @@
     githubId = 10110;
     name = "Travis B. Hartwell";
   };
+  TredwellGit = {
+    email = "tredwell@tutanota.com";
+    github = "TredwellGit";
+    githubId = 61860346;
+    name = "Tredwell";
+  };
   treemo = {
     email = "matthieu.chevrier@treemo.fr";
     github = "treemo";
@@ -9081,6 +9205,12 @@
     githubId = 483735;
     name = "Dmitry Geurkov";
   };
+  truh = {
+    email = "jakob-nixos@truh.in";
+    github = "truh";
+    githubId = 1183303;
+    name = "Jakob Klepp";
+  };
   tscholak = {
     email = "torsten.scholak@googlemail.com";
     github = "tscholak";
@@ -9308,6 +9438,12 @@
       fingerprint = "4D23 ECDF 880D CADF 5ECA  4458 874B D6F9 16FA A742";
     }];
   };
+  vel = {
+    email = "llathasa@outlook.com";
+    github = "llathasa-veleth";
+    githubId = 61933599;
+    name = "vel";
+  };
   velovix = {
     email = "xaviosx@gmail.com";
     github = "velovix";
@@ -9734,6 +9870,12 @@
     githubId = 1322201;
     name = "Yochai";
   };
+  yoctocell = {
+    email = "public@yoctocell.xyz";
+    github = "yoctocell";
+    githubId = 40352765;
+    name = "Yoctocell";
+  };
   yorickvp = {
     email = "yorickvanpelt@gmail.com";
     github = "yorickvp";
diff --git a/maintainers/scripts/check-hydra-by-maintainer.nix b/maintainers/scripts/check-hydra-by-maintainer.nix
new file mode 100644
index 00000000000..cecf65ec66d
--- /dev/null
+++ b/maintainers/scripts/check-hydra-by-maintainer.nix
@@ -0,0 +1,67 @@
+{ maintainer }:
+let
+  pkgs = import ./../../default.nix { };
+  maintainer_ = pkgs.lib.maintainers.${maintainer};
+  packagesWith = cond: return: prefix: set:
+    (pkgs.lib.flatten
+      (pkgs.lib.mapAttrsToList
+        (name: pkg:
+          let
+            result = builtins.tryEval
+              (
+                if pkgs.lib.isDerivation pkg && cond name pkg then
+                # Skip packages whose closure fails on evaluation.
+                # This happens for pkgs like `python27Packages.djangoql`
+                # that have disabled Python pkgs as dependencies.
+                  builtins.seq pkg.outPath
+                    [ (return "${prefix}${name}") ]
+                else if pkg.recurseForDerivations or false || pkg.recurseForRelease or false
+                # then packagesWith cond return pkg
+                then packagesWith cond return "${name}." pkg
+                else [ ]
+              );
+          in
+          if result.success then result.value
+          else [ ]
+        )
+        set
+      )
+    );
+
+  packages = packagesWith
+    (name: pkg:
+      (
+        if builtins.hasAttr "meta" pkg && builtins.hasAttr "maintainers" pkg.meta
+        then
+          (
+            if builtins.isList pkg.meta.maintainers
+            then builtins.elem maintainer_ pkg.meta.maintainers
+            else maintainer_ == pkg.meta.maintainers
+          )
+        else false
+      )
+    )
+    (name: name)
+    ("")
+    pkgs;
+
+in
+pkgs.stdenv.mkDerivation {
+  name = "nixpkgs-update-script";
+  buildCommand = ''
+    echo ""
+    echo "----------------------------------------------------------------"
+    echo ""
+    echo "nix-shell maintainers/scripts/check-hydra-by-maintainer.nix --argstr maintainer SuperSandro2000"
+    echo ""
+    echo "----------------------------------------------------------------"
+    exit 1
+  '';
+  shellHook = ''
+    unset shellHook # do not contaminate nested shells
+    echo "Please stand by"
+    echo nix-shell -p hydra-check --run "hydra-check ${builtins.concatStringsSep " " packages}"
+    nix-shell -p hydra-check --run "hydra-check ${builtins.concatStringsSep " " packages}"
+    exit $?
+  '';
+}
diff --git a/maintainers/scripts/fetch-kde-qt.sh b/maintainers/scripts/fetch-kde-qt.sh
index c6c980dd0cb..22d78151978 100755
--- a/maintainers/scripts/fetch-kde-qt.sh
+++ b/maintainers/scripts/fetch-kde-qt.sh
@@ -14,13 +14,12 @@ fi
 
 tmp=$(mktemp -d)
 pushd $tmp >/dev/null
-wget -nH -r -c --no-parent "${WGET_ARGS[@]}" -A '*.tar.xz.sha256' -A '*.mirrorlist' >/dev/null
-find -type f -name '*.mirrorlist' -delete
+wget -nH -r -c --no-parent "${WGET_ARGS[@]}" >/dev/null
 
 csv=$(mktemp)
 find . -type f | while read src; do
     # Sanitize file name
-    filename=$(gawk '{ print $2 }' "$src" | tr '@' '_')
+    filename=$(basename "$src" | tr '@' '_')
     nameVersion="${filename%.tar.*}"
     name=$(echo "$nameVersion" | sed -e 's,-[[:digit:]].*,,' | sed -e 's,-opensource-src$,,' | sed -e 's,-everywhere-src$,,')
     version=$(echo "$nameVersion" | sed -e 's,^\([[:alpha:]][[:alnum:]]*-\)\+,,')
@@ -40,8 +39,8 @@ gawk -F , "{ print \$1 }" $csv | sort | uniq | while read name; do
     latestVersion=$(echo "$versions" | sort -rV | head -n 1)
     src=$(gawk -F , "/^$name,$latestVersion,/ { print \$3 }" $csv)
     filename=$(gawk -F , "/^$name,$latestVersion,/ { print \$4 }" $csv)
-    url="$(dirname "${src:2}")/$filename"
-    sha256=$(gawk '{ print $1 }' "$src")
+    url="${src:2}"
+    sha256=$(nix-hash --type sha256 --base32 --flat "$src")
     cat >>"$SRCS" <<EOF
   $name = {
     version = "$latestVersion";
diff --git a/nixos/doc/manual/configuration/profiles/hardened.xml b/nixos/doc/manual/configuration/profiles/hardened.xml
index dc83fc837e2..4a51754cc7a 100644
--- a/nixos/doc/manual/configuration/profiles/hardened.xml
+++ b/nixos/doc/manual/configuration/profiles/hardened.xml
@@ -7,7 +7,7 @@
 
  <para>
   A profile with most (vanilla) hardening options enabled by default,
-  potentially at the cost of features and performance.
+  potentially at the cost of stability, features and performance.
  </para>
 
  <para>
@@ -21,4 +21,12 @@
    xlink:href="https://github.com/nixos/nixpkgs/tree/master/nixos/modules/profiles/hardened.nix">
   profile source</literal> for further detail on which settings are altered.
  </para>
+ <warning>
+   <para>
+     This profile enables options that are known to affect system
+     stability. If you experience any stability issues when using the
+     profile, try disabling it. If you report an issue and use this
+     profile, always mention that you do.
+   </para>
+ </warning>
 </section>
diff --git a/nixos/doc/manual/installation/installing-virtualbox-guest.xml b/nixos/doc/manual/installation/installing-virtualbox-guest.xml
index 1cffeed4807..4957b700946 100644
--- a/nixos/doc/manual/installation/installing-virtualbox-guest.xml
+++ b/nixos/doc/manual/installation/installing-virtualbox-guest.xml
@@ -83,7 +83,7 @@
   VirtualBox settings (Machine / Settings / Shared Folders, then click on the
   "Add" icon). Add the following to the
   <literal>/etc/nixos/configuration.nix</literal> to auto-mount them. If you do
-  not add <literal>"nofail"</literal>, the system will no boot properly. The
+  not add <literal>"nofail"</literal>, the system will not boot properly. The
   same goes for disabling <literal>rngd</literal> which is normally used to get
   randomness but this does not work in virtual machines.
  </para>
diff --git a/nixos/doc/manual/release-notes/rl-2003.xml b/nixos/doc/manual/release-notes/rl-2003.xml
index 87f12285619..2331375c2c2 100644
--- a/nixos/doc/manual/release-notes/rl-2003.xml
+++ b/nixos/doc/manual/release-notes/rl-2003.xml
@@ -650,7 +650,7 @@ See https://github.com/NixOS/nixpkgs/pull/71684 for details.
       <listitem>
        <para>
          <literal>boot.extraTTYs</literal> renamed to
-         <link linkend="opt-console.extraTTYs">console.extraTTYs</link>
+         <literal>console.extraTTYs</literal>.
        </para>
       </listitem>
     </itemizedlist>
diff --git a/nixos/doc/manual/release-notes/rl-2009.xml b/nixos/doc/manual/release-notes/rl-2009.xml
index afb09d7c5d2..3da8080958e 100644
--- a/nixos/doc/manual/release-notes/rl-2009.xml
+++ b/nixos/doc/manual/release-notes/rl-2009.xml
@@ -1344,6 +1344,12 @@ CREATE ROLE postgres LOGIN SUPERUSER;
       that makes it unsuitable to be a default app.
     </para>
    </listitem>
+   <listitem>
+     <para>
+       If you want to manage the configuration of <package>wpa_supplicant</package> outside of NixOS you must ensure that none of <xref linkend="opt-networking.wireless.networks" />, <xref linkend="opt-networking.wireless.extraConfig" /> or <xref linkend="opt-networking.wireless.userControlled.enable" /> is being used or <literal>true</literal>.
+       Using any of those options will cause <package>wpa_supplicant</package> to be started with a NixOS generated configuration file instead of your own.
+    </para>
+   </listitem>
   </itemizedlist>
  </section>
 
diff --git a/nixos/doc/manual/release-notes/rl-2103.xml b/nixos/doc/manual/release-notes/rl-2103.xml
index 458170e803b..05daca1d710 100644
--- a/nixos/doc/manual/release-notes/rl-2103.xml
+++ b/nixos/doc/manual/release-notes/rl-2103.xml
@@ -169,6 +169,14 @@
     </para>
    </listitem>
    <listitem>
+     <para>
+       xfsprogs was update from 4.19 to 5.10. 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
+       with <literal>mkfs.xfs -m reflink=0</literal>.
+     </para>
+   </listitem>
+   <listitem>
     <para>
     <package>btc1</package> has been abandoned upstream, and removed.
     </para>
@@ -278,6 +286,73 @@
       <xref linkend="opt-services.privoxy.enableTor" /> = true;
     </programlisting>
    </listitem>
+   <listitem>
+    <para>
+      The <literal>services.tor</literal> module has a new exhaustively typed <xref linkend="opt-services.tor.settings" /> option following RFC 0042; backward compatibility with old options has been preserved when aliasing was possible.
+      The corresponding systemd service has been hardened,
+      but there is a chance that the service still requires more permissions,
+      so please report any related trouble on the bugtracker.
+      Onion services v3 are now supported in <xref linkend="opt-services.tor.relay.onionServices" />.
+      A new <xref linkend="opt-services.tor.openFirewall" /> option as been introduced for allowing connections on all the TCP ports configured.
+    </para>
+   </listitem>
+   <listitem>
+     <para>
+       The options <literal>services.slurm.dbdserver.storagePass</literal>
+       and <literal>services.slurm.dbdserver.configFile</literal> have been removed.
+       Use <literal>services.slurm.dbdserver.storagePassFile</literal> instead to provide the database password.
+       Extra config options can be given via the option <literal>services.slurm.dbdserver.extraConfig</literal>. The actual configuration file is created on the fly on startup of the service.
+       This avoids that the password gets exposed in the nix store.
+     </para>
+   </listitem>
+   <listitem>
+     <para>
+       The <literal>wafHook</literal> hook does not wrap Python anymore.
+       Packages depending on <literal>wafHook</literal> need to include any Python into their <literal>nativeBuildInputs</literal>.
+     </para>
+   </listitem>
+   <listitem>
+     <para>
+       Starting with version 1.7.0, the project formerly named <literal>CodiMD</literal>
+       is now named <literal>HedgeDoc</literal>.
+       New installations will no longer use the old name for users, state directories and such, this needs to be considered when moving state to a more recent NixOS installation.
+       Based on <xref linkend="opt-system.stateVersion" />, existing installations will continue to work.
+     </para>
+   </listitem>
+   <listitem>
+    <para>
+     <package>fish-foreign-env</package> is now an alias for the
+     <package>fishPlugins.foreign-env</package> package, in which the fish
+     functions have been relocated to the
+     <literal>vendor_functions.d</literal> directory to be loaded automatically.
+    </para>
+   </listitem>
+   <listitem>
+     <para>
+       The prometheus json exporter is now managed by the prometheus community. Together with additional features
+       some backwards incompatibilities were introduced.
+       Most importantly the exporter no longer accepts a fixed command-line parameter to specify the URL of the
+       endpoint serving JSON. It now expects this URL to be passed as an URL parameter, when scraping the exporter's
+       <literal>/probe</literal> endpoint.
+       In the prometheus scrape configuration the scrape target might look like this:
+       <programlisting>
+http://some.json-exporter.host:7979/probe?target=https://example.com/some/json/endpoint
+       </programlisting>
+     </para>
+     <para>
+       Existing configuration for the exporter needs to be updated, but can partially be re-used.
+       Documentation is available in the upstream repository and a small example for NixOS is available
+       in the corresponding NixOS test.
+     </para>
+     <para>
+       These changes also affect <xref linkend="opt-services.prometheus.exporters.rspamd.enable" />, which is
+       just a preconfigured instance of the json exporter.
+     </para>
+     <para>
+       For more information, take a look at the <link xlink:href="https://github.com/prometheus-community/json_exporter">
+       official documentation</link> of the json_exporter.
+     </para>
+   </listitem>
   </itemizedlist>
  </section>
 
@@ -422,6 +497,13 @@
      been dropped from upstream releases.
     </para>
    </listitem>
+   <listitem>
+    <para>
+     <xref linkend="opt-users.users._name_.createHome" /> now always ensures home directory permissions to be <literal>0700</literal>.
+     Permissions had previously been ignored for already existing home directories, possibly leaving them readable by others.
+     The option's description was incorrect regarding ownership management and has been simplified greatly.
+    </para>
+   </listitem>
   </itemizedlist>
  </section>
 </section>
diff --git a/nixos/lib/make-disk-image.nix b/nixos/lib/make-disk-image.nix
index 0ad0cf1fef5..3f50bb431c5 100644
--- a/nixos/lib/make-disk-image.nix
+++ b/nixos/lib/make-disk-image.nix
@@ -18,9 +18,13 @@
   bootSize ? "256M"
 
 , # The files and directories to be placed in the target file system.
-  # This is a list of attribute sets {source, target} where `source'
-  # is the file system object (regular file or directory) to be
-  # grafted in the file system at path `target'.
+  # This is a list of attribute sets {source, target, mode, user, group} where
+  # `source' is the file system object (regular file or directory) to be
+  # grafted in the file system at path `target', `mode' is a string containing
+  # the permissions that will be set (ex. "755"), `user' and `group' are the
+  # user and group name that will be set as owner of the files.
+  # `mode', `user', and `group' are optional.
+  # When setting one of `user' or `group', the other needs to be set too.
   contents ? []
 
 , # Type of partition table to use; either "legacy", "efi", or "none".
@@ -60,6 +64,11 @@
 assert partitionTableType == "legacy" || partitionTableType == "legacy+gpt" || partitionTableType == "efi" || partitionTableType == "hybrid" || partitionTableType == "none";
 # We use -E offset=X below, which is only supported by e2fsprogs
 assert partitionTableType != "none" -> fsType == "ext4";
+# Either both or none of {user,group} need to be set
+assert lib.all
+         (attrs: ((attrs.user  or null) == null)
+              == ((attrs.group or null) == null))
+         contents;
 
 with lib;
 
@@ -148,6 +157,9 @@ let format' = format; in let
   # !!! should use XML.
   sources = map (x: x.source) contents;
   targets = map (x: x.target) contents;
+  modes   = map (x: x.mode  or "''") contents;
+  users   = map (x: x.user  or "''") contents;
+  groups  = map (x: x.group or "''") contents;
 
   closureInfo = pkgs.closureInfo { rootPaths = [ config.system.build.toplevel channelSources ]; };
 
@@ -174,22 +186,33 @@ let format' = format; in let
     set -f
     sources_=(${concatStringsSep " " sources})
     targets_=(${concatStringsSep " " targets})
+    modes_=(${concatStringsSep " " modes})
     set +f
 
     for ((i = 0; i < ''${#targets_[@]}; i++)); do
       source="''${sources_[$i]}"
       target="''${targets_[$i]}"
+      mode="''${modes_[$i]}"
 
+      if [ -n "$mode" ]; then
+        rsync_chmod_flags="--chmod=$mode"
+      else
+        rsync_chmod_flags=""
+      fi
+      # Unfortunately cptofs only supports modes, not ownership, so we can't use
+      # rsync's --chown option. Instead, we change the ownerships in the
+      # VM script with chown.
+      rsync_flags="-a --no-o --no-g $rsync_chmod_flags"
       if [[ "$source" =~ '*' ]]; then
         # If the source name contains '*', perform globbing.
         mkdir -p $root/$target
         for fn in $source; do
-          rsync -a --no-o --no-g "$fn" $root/$target/
+          rsync $rsync_flags "$fn" $root/$target/
         done
       else
         mkdir -p $root/$(dirname $target)
         if ! [ -e $root/$target ]; then
-          rsync -a --no-o --no-g $source $root/$target
+          rsync $rsync_flags $source $root/$target
         else
           echo "duplicate entry $target -> $source"
           exit 1
@@ -284,6 +307,21 @@ in pkgs.vmTools.runInLinuxVM (
       # The above scripts will generate a random machine-id and we don't want to bake a single ID into all our images
       rm -f $mountPoint/etc/machine-id
 
+      # Set the ownerships of the contents. The modes are set in preVM.
+      # No globbing on targets, so no need to set -f
+      targets_=(${concatStringsSep " " targets})
+      users_=(${concatStringsSep " " users})
+      groups_=(${concatStringsSep " " groups})
+      for ((i = 0; i < ''${#targets_[@]}; i++)); do
+        target="''${targets_[$i]}"
+        user="''${users_[$i]}"
+        group="''${groups_[$i]}"
+        if [ -n "$user$group" ]; then
+          # We have to nixos-enter since we need to use the user and group of the VM
+          nixos-enter --root $mountPoint -- chown -R "$user:$group" "$target"
+        fi
+      done
+
       umount -R /mnt
 
       # Make sure resize2fs works. Note that resize2fs has stricter criteria for resizing than a normal
diff --git a/nixos/modules/config/console.nix b/nixos/modules/config/console.nix
index f662ed62d31..ab166760517 100644
--- a/nixos/modules/config/console.nix
+++ b/nixos/modules/config/console.nix
@@ -90,20 +90,6 @@ in
       '';
     };
 
-    extraTTYs = mkOption {
-      default = [];
-      type = types.listOf types.str;
-      example = ["tty8" "tty9"];
-      description = ''
-        TTY (virtual console) devices, in addition to the consoles on
-        which mingetty and syslogd run, that must be initialised.
-        Only useful if you have some program that you want to run on
-        some fixed console.  For example, the NixOS installation CD
-        opens the manual in a web browser on console 7, so it sets
-        <option>console.extraTTYs</option> to <literal>["tty7"]</literal>.
-      '';
-    };
-
     useXkbConfig = mkOption {
       type = types.bool;
       default = false;
@@ -159,7 +145,8 @@ in
         '';
 
         systemd.services.systemd-vconsole-setup =
-          { before = [ "display-manager.service" ];
+          {
+            before = optional config.services.xserver.enable "display-manager.service";
             after = [ "systemd-udev-settle.service" ];
             restartTriggers = [ vconsoleConf consoleEnv ];
           };
@@ -199,5 +186,9 @@ in
     (mkRenamedOptionModule [ "i18n" "consoleUseXkbConfig" ] [ "console" "useXkbConfig" ])
     (mkRenamedOptionModule [ "boot" "earlyVconsoleSetup" ] [ "console" "earlySetup" ])
     (mkRenamedOptionModule [ "boot" "extraTTYs" ] [ "console" "extraTTYs" ])
+    (mkRemovedOptionModule [ "console" "extraTTYs" ] ''
+      Since NixOS switched to systemd (circa 2012), TTYs have been spawned on
+      demand, so there is no need to configure them manually.
+    '')
   ];
 }
diff --git a/nixos/modules/config/update-users-groups.pl b/nixos/modules/config/update-users-groups.pl
index fd3affae899..44040217b02 100644
--- a/nixos/modules/config/update-users-groups.pl
+++ b/nixos/modules/config/update-users-groups.pl
@@ -209,10 +209,11 @@ foreach my $u (@{$spec->{users}}) {
         }
     }
 
-    # Create a home directory.
+    # Ensure home directory incl. ownership and permissions.
     if ($u->{createHome}) {
         make_path($u->{home}, { mode => 0700 }) if ! -e $u->{home};
         chown $u->{uid}, $u->{gid}, $u->{home};
+        chmod 0700, $u->{home};
     }
 
     if (defined $u->{passwordFile}) {
@@ -226,6 +227,15 @@ foreach my $u (@{$spec->{users}}) {
         $u->{hashedPassword} = hashPassword($u->{password});
     }
 
+    if (!defined $u->{shell}) {
+        if (defined $existing) {
+            $u->{shell} = $existing->{shell};
+        } else {
+            warn "warning: no declarative or previous shell for ‘$name’, setting shell to nologin\n";
+            $u->{shell} = "/run/current-system/sw/bin/nologin";
+        }
+    }
+
     $u->{fakePassword} = $existing->{fakePassword} // "x";
     $usersOut{$name} = $u;
 
diff --git a/nixos/modules/config/users-groups.nix b/nixos/modules/config/users-groups.nix
index 72285fe631d..e90a7d567d4 100644
--- a/nixos/modules/config/users-groups.nix
+++ b/nixos/modules/config/users-groups.nix
@@ -153,7 +153,7 @@ let
       };
 
       shell = mkOption {
-        type = types.either types.shellPackage types.path;
+        type = types.nullOr (types.either types.shellPackage types.path);
         default = pkgs.shadow;
         defaultText = "pkgs.shadow";
         example = literalExample "pkgs.bashInteractive";
@@ -198,10 +198,8 @@ let
         type = types.bool;
         default = false;
         description = ''
-          If true, the home directory will be created automatically. If this
-          option is true and the home directory already exists but is not
-          owned by the user, directory owner and group will be changed to
-          match the user.
+          Whether to create the home directory and ensure ownership as well as
+          permissions to match the user.
         '';
       };
 
diff --git a/nixos/modules/hardware/all-firmware.nix b/nixos/modules/hardware/all-firmware.nix
index b07edb0f6ac..8cf3e5633dc 100644
--- a/nixos/modules/hardware/all-firmware.nix
+++ b/nixos/modules/hardware/all-firmware.nix
@@ -48,6 +48,7 @@ in {
         rtl8192su-firmware
         rt5677-firmware
         rtl8723bs-firmware
+        rtl8761b-firmware
         rtlwifi_new-firmware
         zd1211fw
         alsa-firmware
diff --git a/nixos/modules/hardware/keyboard/zsa.nix b/nixos/modules/hardware/keyboard/zsa.nix
new file mode 100644
index 00000000000..5cb09e5af49
--- /dev/null
+++ b/nixos/modules/hardware/keyboard/zsa.nix
@@ -0,0 +1,27 @@
+{ config, lib, pkgs, ... }:
+
+let
+  inherit (lib) mkOption mkIf types;
+  cfg = config.hardware.keyboard.zsa;
+in
+{
+  # TODO: make group configurable like in https://github.com/NixOS/nixpkgs/blob/0b2b4b8c4e729535a61db56468809c5c2d3d175c/pkgs/tools/security/nitrokey-app/udev-rules.nix ?
+  options.hardware.keyboard.zsa = {
+    enable = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Enables udev rules for keyboards from ZSA like the ErgoDox EZ, Planck EZ and Moonlander Mark I.
+        You need it when you want to flash a new configuration on the keyboard
+        or use their live training in the browser.
+        Access to the keyboard is granted to users in the "plugdev" group.
+        You may want to install the wally-cli package.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    services.udev.packages = [ pkgs.zsa-udev-rules ];
+    users.groups.plugdev = {};
+  };
+}
diff --git a/nixos/modules/hardware/opentabletdriver.nix b/nixos/modules/hardware/opentabletdriver.nix
new file mode 100644
index 00000000000..0f34d903f68
--- /dev/null
+++ b/nixos/modules/hardware/opentabletdriver.nix
@@ -0,0 +1,67 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+  cfg = config.hardware.opentabletdriver;
+in
+{
+  options = {
+    hardware.opentabletdriver = {
+      enable = mkOption {
+        default = false;
+        type = types.bool;
+        description = ''
+          Enable OpenTabletDriver udev rules, user service and blacklist kernel
+          modules known to conflict with OpenTabletDriver.
+        '';
+      };
+
+      blacklistedKernelModules = mkOption {
+        type = types.listOf types.str;
+        default = [ "hid-uclogic" "wacom" ];
+        description = ''
+          Blacklist of kernel modules known to conflict with OpenTabletDriver.
+        '';
+      };
+
+      package = mkOption {
+        type = types.package;
+        default = pkgs.opentabletdriver;
+        defaultText = "pkgs.opentabletdriver";
+        description = ''
+          OpenTabletDriver derivation to use.
+        '';
+      };
+
+      daemon = {
+        enable = mkOption {
+          default = true;
+          type = types.bool;
+          description = ''
+            Whether to start OpenTabletDriver daemon as a systemd user service.
+          '';
+        };
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    environment.systemPackages = [ cfg.package ];
+
+    services.udev.packages = [ cfg.package ];
+
+    boot.blacklistedKernelModules = cfg.blacklistedKernelModules;
+
+    systemd.user.services.opentabletdriver = with pkgs; mkIf cfg.daemon.enable {
+      description = "Open source, cross-platform, user-mode tablet driver";
+      wantedBy = [ "graphical-session.target" ];
+      partOf = [ "graphical-session.target" ];
+
+      serviceConfig = {
+        Type = "simple";
+        ExecStart = "${cfg.package}/bin/otd-daemon -c ${cfg.package}/lib/OpenTabletDriver/Configurations";
+        Restart = "on-failure";
+      };
+    };
+  };
+}
diff --git a/nixos/modules/installer/cd-dvd/iso-image.nix b/nixos/modules/installer/cd-dvd/iso-image.nix
index 405fbfa10db..43d20a556f8 100644
--- a/nixos/modules/installer/cd-dvd/iso-image.nix
+++ b/nixos/modules/installer/cd-dvd/iso-image.nix
@@ -143,6 +143,13 @@ let
     LINUX /boot/${config.system.boot.loader.kernelFile}
     APPEND init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} loglevel=7
     INITRD /boot/${config.system.boot.loader.initrdFile}
+
+    # A variant to boot with a serial console enabled
+    LABEL boot-serial
+    MENU LABEL NixOS ${config.system.nixos.label}${config.isoImage.appendToMenuLabel} (serial console=ttyS0,115200n8)
+    LINUX /boot/${config.system.boot.loader.kernelFile}
+    APPEND init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} console=ttyS0,115200n8
+    INITRD /boot/${config.system.boot.loader.initrdFile}
   '';
 
   isolinuxMemtest86Entry = ''
diff --git a/nixos/modules/installer/cd-dvd/sd-image-aarch64.nix b/nixos/modules/installer/cd-dvd/sd-image-aarch64.nix
index bef6cd2fb5a..e4ec2d6240d 100644
--- a/nixos/modules/installer/cd-dvd/sd-image-aarch64.nix
+++ b/nixos/modules/installer/cd-dvd/sd-image-aarch64.nix
@@ -17,8 +17,7 @@
   # The serial ports listed here are:
   # - ttyS0: for Tegra (Jetson TX1)
   # - ttyAMA0: for QEMU's -machine virt
-  # Also increase the amount of CMA to ensure the virtual console on the RPi3 works.
-  boot.kernelParams = ["cma=32M" "console=ttyS0,115200n8" "console=ttyAMA0,115200n8" "console=tty0"];
+  boot.kernelParams = ["console=ttyS0,115200n8" "console=ttyAMA0,115200n8" "console=tty0"];
 
   boot.initrd.availableKernelModules = [
     # Allows early (earlier) modesetting for the Raspberry Pi
@@ -30,13 +29,25 @@
   sdImage = {
     populateFirmwareCommands = let
       configTxt = pkgs.writeText "config.txt" ''
+        [pi3]
         kernel=u-boot-rpi3.bin
 
+        [pi4]
+        kernel=u-boot-rpi4.bin
+        enable_gic=1
+        armstub=armstub8-gic.bin
+
+        # Otherwise the resolution will be weird in most cases, compared to
+        # what the pi3 firmware does by default.
+        disable_overscan=1
+
+        [all]
         # Boot in 64-bit mode.
-        arm_control=0x200
+        arm_64bit=1
 
-        # U-Boot used to need this to work, regardless of whether UART is actually used or not.
-        # TODO: check when/if this can be removed.
+        # U-Boot needs this to work, regardless of whether UART is actually used or not.
+        # Look in arch/arm/mach-bcm283x/Kconfig in the U-Boot tree to see if this is still
+        # a requirement in the future.
         enable_uart=1
 
         # Prevent the firmware from smashing the framebuffer setup done by the mainline kernel
@@ -45,8 +56,17 @@
       '';
       in ''
         (cd ${pkgs.raspberrypifw}/share/raspberrypi/boot && cp bootcode.bin fixup*.dat start*.elf $NIX_BUILD_TOP/firmware/)
-        cp ${pkgs.ubootRaspberryPi3_64bit}/u-boot.bin firmware/u-boot-rpi3.bin
+
+        # Add the config
         cp ${configTxt} firmware/config.txt
+
+        # Add pi3 specific files
+        cp ${pkgs.ubootRaspberryPi3_64bit}/u-boot.bin firmware/u-boot-rpi3.bin
+
+        # Add pi4 specific files
+        cp ${pkgs.ubootRaspberryPi4_64bit}/u-boot.bin firmware/u-boot-rpi4.bin
+        cp ${pkgs.raspberrypi-armstubs}/armstub8-gic.bin firmware/armstub8-gic.bin
+        cp ${pkgs.raspberrypifw}/share/raspberrypi/boot/bcm2711-rpi-4-b.dtb firmware/
       '';
     populateRootCommands = ''
       mkdir -p ./files/boot
diff --git a/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix b/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix
index 87545e84203..5bdec7de86e 100644
--- a/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix
+++ b/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix
@@ -3,36 +3,6 @@
 { config, lib, pkgs, ... }:
 
 {
-  imports = [
-    ../../profiles/base.nix
-    ../../profiles/installation-device.nix
-    ./sd-image.nix
-  ];
-
-  boot.loader.grub.enable = false;
-  boot.loader.raspberryPi.enable = true;
-  boot.loader.raspberryPi.version = 4;
+  imports = [ ./sd-image-aarch64.nix ];
   boot.kernelPackages = pkgs.linuxPackages_rpi4;
-
-  boot.consoleLogLevel = lib.mkDefault 7;
-
-  sdImage = {
-    firmwareSize = 128;
-    firmwarePartitionName = "NIXOS_BOOT";
-    # This is a hack to avoid replicating config.txt from boot.loader.raspberryPi
-    populateFirmwareCommands =
-      "${config.system.build.installBootLoader} ${config.system.build.toplevel} -d ./firmware";
-    # As the boot process is done entirely in the firmware partition.
-    populateRootCommands = "";
-  };
-
-  fileSystems."/boot/firmware" = {
-    # This effectively "renames" the attrsOf entry set in sd-image.nix
-    mountPoint = "/boot";
-    neededForBoot = true;
-  };
-
-  # 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/nixos/modules/installer/cd-dvd/system-tarball-fuloong2f.nix b/nixos/modules/installer/cd-dvd/system-tarball-fuloong2f.nix
index 6d4ba96dba0..8159576a62a 100644
--- a/nixos/modules/installer/cd-dvd/system-tarball-fuloong2f.nix
+++ b/nixos/modules/installer/cd-dvd/system-tarball-fuloong2f.nix
@@ -104,7 +104,7 @@ in
     '';
 
   # Some more help text.
-  services.mingetty.helpLine =
+  services.getty.helpLine =
     ''
 
       Log in as "root" with an empty password.  ${
diff --git a/nixos/modules/installer/cd-dvd/system-tarball-sheevaplug.nix b/nixos/modules/installer/cd-dvd/system-tarball-sheevaplug.nix
index 0e67ae7de69..95579f3ca06 100644
--- a/nixos/modules/installer/cd-dvd/system-tarball-sheevaplug.nix
+++ b/nixos/modules/installer/cd-dvd/system-tarball-sheevaplug.nix
@@ -122,7 +122,7 @@ in
       device = "/dev/something";
     };
 
-  services.mingetty = {
+  services.getty = {
     # Some more help text.
     helpLine = ''
       Log in as "root" with an empty password.  ${
diff --git a/nixos/modules/installer/tools/nix-fallback-paths.nix b/nixos/modules/installer/tools/nix-fallback-paths.nix
index 699fb555615..6b1f54beee2 100644
--- a/nixos/modules/installer/tools/nix-fallback-paths.nix
+++ b/nixos/modules/installer/tools/nix-fallback-paths.nix
@@ -1,6 +1,6 @@
 {
-  x86_64-linux = "/nix/store/fwak7l5jjl0py4wldsqjbv7p7rdzql0b-nix-2.3.9";
-  i686-linux = "/nix/store/jlqrx9zw3vkwcczndaar5ban1j8g519z-nix-2.3.9";
-  aarch64-linux = "/nix/store/kzvpzlm12185hw27l5znrprgvcja54d0-nix-2.3.9";
-  x86_64-darwin = "/nix/store/kanh3awpf370pxfnjfvkh2m343wr3hj0-nix-2.3.9";
+  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";
 }
diff --git a/nixos/modules/installer/tools/nixos-enter.sh b/nixos/modules/installer/tools/nixos-enter.sh
index c72ef6e9c28..450d7761814 100644
--- a/nixos/modules/installer/tools/nixos-enter.sh
+++ b/nixos/modules/installer/tools/nixos-enter.sh
@@ -69,6 +69,9 @@ mount --rbind /sys "$mountPoint/sys"
 
     # Run the activation script. Set $LOCALE_ARCHIVE to supress some Perl locale warnings.
     LOCALE_ARCHIVE="$system/sw/lib/locale/locale-archive" chroot "$mountPoint" "$system/activate" 1>&2 || true
+
+    # Create /tmp
+    chroot "$mountPoint" systemd-tmpfiles --create --remove --exclude-prefix=/dev 1>&2 || true
 )
 
 exec chroot "$mountPoint" "${command[@]}"
diff --git a/nixos/modules/misc/documentation.nix b/nixos/modules/misc/documentation.nix
index fe0263f158f..d81d6c6cb9b 100644
--- a/nixos/modules/misc/documentation.nix
+++ b/nixos/modules/misc/documentation.nix
@@ -261,7 +261,7 @@ in
         ++ optionals cfg.doc.enable ([ manual.manualHTML nixos-help ]
            ++ optionals config.services.xserver.enable [ pkgs.nixos-icons ]);
 
-      services.mingetty.helpLine = mkIf cfg.doc.enable (
+      services.getty.helpLine = mkIf cfg.doc.enable (
           "\nRun 'nixos-help' for the NixOS manual."
       );
     })
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index d3f6e85327b..8fd5d4519fd 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -47,6 +47,7 @@
   ./hardware/digitalbitbox.nix
   ./hardware/device-tree.nix
   ./hardware/sensor/iio.nix
+  ./hardware/keyboard/zsa.nix
   ./hardware/ksm.nix
   ./hardware/ledger.nix
   ./hardware/logitech.nix
@@ -65,6 +66,7 @@
   ./hardware/tuxedo-keyboard.nix
   ./hardware/usb-wwan.nix
   ./hardware/onlykey.nix
+  ./hardware/opentabletdriver.nix
   ./hardware/wooting.nix
   ./hardware/uinput.nix
   ./hardware/video/amdgpu.nix
@@ -140,6 +142,7 @@
   ./programs/light.nix
   ./programs/mosh.nix
   ./programs/mininet.nix
+  ./programs/msmtp.nix
   ./programs/mtr.nix
   ./programs/nano.nix
   ./programs/neovim.nix
@@ -537,6 +540,7 @@
   ./services/monitoring/do-agent.nix
   ./services/monitoring/fusion-inventory.nix
   ./services/monitoring/grafana.nix
+  ./services/monitoring/grafana-image-renderer.nix
   ./services/monitoring/grafana-reporter.nix
   ./services/monitoring/graphite.nix
   ./services/monitoring/hdaps.nix
@@ -654,6 +658,8 @@
   ./services/networking/hylafax/default.nix
   ./services/networking/i2pd.nix
   ./services/networking/i2p.nix
+  ./services/networking/icecream/scheduler.nix
+  ./services/networking/icecream/daemon.nix
   ./services/networking/iodine.nix
   ./services/networking/iperf3.nix
   ./services/networking/ircd-hybrid/default.nix
@@ -740,6 +746,7 @@
   ./services/networking/skydns.nix
   ./services/networking/shadowsocks.nix
   ./services/networking/shairport-sync.nix
+  ./services/networking/shellhub-agent.nix
   ./services/networking/shorewall.nix
   ./services/networking/shorewall6.nix
   ./services/networking/shout.nix
@@ -845,7 +852,7 @@
   ./services/torrent/peerflix.nix
   ./services/torrent/rtorrent.nix
   ./services/torrent/transmission.nix
-  ./services/ttys/agetty.nix
+  ./services/ttys/getty.nix
   ./services/ttys/gpm.nix
   ./services/ttys/kmscon.nix
   ./services/wayland/cage.nix
@@ -854,7 +861,6 @@
   ./services/web-apps/atlassian/confluence.nix
   ./services/web-apps/atlassian/crowd.nix
   ./services/web-apps/atlassian/jira.nix
-  ./services/web-apps/codimd.nix
   ./services/web-apps/convos.nix
   ./services/web-apps/cryptpad.nix
   ./services/web-apps/documize.nix
@@ -863,6 +869,7 @@
   ./services/web-apps/gerrit.nix
   ./services/web-apps/gotify-server.nix
   ./services/web-apps/grocy.nix
+  ./services/web-apps/hedgedoc.nix
   ./services/web-apps/icingaweb2/icingaweb2.nix
   ./services/web-apps/icingaweb2/module-monitoring.nix
   ./services/web-apps/ihatemoney
@@ -876,6 +883,7 @@
   ./services/web-apps/moodle.nix
   ./services/web-apps/nextcloud.nix
   ./services/web-apps/nexus.nix
+  ./services/web-apps/plantuml-server.nix
   ./services/web-apps/pgpkeyserver-lite.nix
   ./services/web-apps/matomo.nix
   ./services/web-apps/moinmoin.nix
diff --git a/nixos/modules/profiles/hardened.nix b/nixos/modules/profiles/hardened.nix
index 42ed62b0630..680fa40b911 100644
--- a/nixos/modules/profiles/hardened.nix
+++ b/nixos/modules/profiles/hardened.nix
@@ -1,5 +1,10 @@
 # A profile with most (vanilla) hardening options enabled by default,
-# potentially at the cost of features and performance.
+# potentially at the cost of stability, features and performance.
+#
+# This profile enables options that are known to affect system
+# stability. If you experience any stability issues when using the
+# profile, try disabling it. If you report an issue and use this
+# profile, always mention that you do.
 
 { config, lib, pkgs, ... }:
 
diff --git a/nixos/modules/profiles/installation-device.nix b/nixos/modules/profiles/installation-device.nix
index e68ea1b0877..7dc493fb495 100644
--- a/nixos/modules/profiles/installation-device.nix
+++ b/nixos/modules/profiles/installation-device.nix
@@ -45,10 +45,10 @@ with lib;
     };
 
     # Automatically log in at the virtual consoles.
-    services.mingetty.autologinUser = "nixos";
+    services.getty.autologinUser = "nixos";
 
     # Some more help text.
-    services.mingetty.helpLine = ''
+    services.getty.helpLine = ''
       The "nixos" and "root" accounts have empty passwords.
 
       An ssh daemon is running. You then must set a password
diff --git a/nixos/modules/programs/command-not-found/command-not-found.pl b/nixos/modules/programs/command-not-found/command-not-found.pl
index ab7aa204653..7515dd975c3 100644
--- a/nixos/modules/programs/command-not-found/command-not-found.pl
+++ b/nixos/modules/programs/command-not-found/command-not-found.pl
@@ -27,8 +27,8 @@ if (!defined $res || scalar @$res == 0) {
     my $package = @$res[0]->{package};
     if ($ENV{"NIX_AUTO_INSTALL"} // "") {
         print STDERR <<EOF;
-The program ‘$program’ is currently not installed. It is provided by
-the package ‘$package’, which I will now install for you.
+The program '$program' is currently not installed. It is provided by
+the package '$package', which I will now install for you.
 EOF
         ;
         exit 126 if system("nix-env", "-iA", "nixos.$package") == 0;
@@ -36,16 +36,17 @@ EOF
         exec("nix-shell", "-p", $package, "--run", shell_quote("exec", @ARGV));
     } else {
         print STDERR <<EOF;
-The program ‘$program’ is currently not installed. You can install it by typing:
-  nix-env -iA nixos.$package
+The program '$program' is not in your PATH. You can make it available in an
+ephemeral shell by typing:
+  nix-shell -p $package
 EOF
     }
 } else {
     print STDERR <<EOF;
-The program ‘$program’ is currently not installed. It is provided by
-several packages. You can install it by typing one of the following:
+The program '$program' is not in your PATH. It is provided by several packages.
+You can make it available in an ephemeral shell by typing one of the following:
 EOF
-    print STDERR "  nix-env -iA nixos.$_->{package}\n" foreach @$res;
+    print STDERR "  nix-shell -p $_->{package}\n" foreach @$res;
 }
 
 exit 127;
diff --git a/nixos/modules/programs/fish.nix b/nixos/modules/programs/fish.nix
index 50d1077dd41..34a0dc6a2df 100644
--- a/nixos/modules/programs/fish.nix
+++ b/nixos/modules/programs/fish.nix
@@ -112,7 +112,7 @@ in
     environment.etc."fish/nixos-env-preinit.fish".text = ''
       # This happens before $__fish_datadir/config.fish sets fish_function_path, so it is currently
       # unset. We set it and then completely erase it, leaving its configuration to $__fish_datadir/config.fish
-      set fish_function_path ${pkgs.fish-foreign-env}/share/fish-foreign-env/functions $__fish_datadir/functions
+      set fish_function_path ${pkgs.fishPlugins.foreign-env}/share/fish/vendor_functions.d $__fish_datadir/functions
 
       # source the NixOS environment config
       if [ -z "$__NIXOS_SET_ENVIRONMENT_DONE" ]
@@ -128,7 +128,7 @@ in
 
       # if we haven't sourced the general config, do it
       if not set -q __fish_nixos_general_config_sourced
-        set fish_function_path ${pkgs.fish-foreign-env}/share/fish-foreign-env/functions $fish_function_path
+        set --prepend fish_function_path ${pkgs.fishPlugins.foreign-env}/share/fish/vendor_functions.d
         fenv source /etc/fish/foreign-env/shellInit > /dev/null
         set -e fish_function_path[1]
 
@@ -142,7 +142,7 @@ in
       # if we haven't sourced the login config, do it
       status --is-login; and not set -q __fish_nixos_login_config_sourced
       and begin
-        set fish_function_path ${pkgs.fish-foreign-env}/share/fish-foreign-env/functions $fish_function_path
+        set --prepend fish_function_path ${pkgs.fishPlugins.foreign-env}/share/fish/vendor_functions.d
         fenv source /etc/fish/foreign-env/loginShellInit > /dev/null
         set -e fish_function_path[1]
 
@@ -158,7 +158,7 @@ in
       and begin
         ${fishAliases}
 
-        set fish_function_path ${pkgs.fish-foreign-env}/share/fish-foreign-env/functions $fish_function_path
+        set --prepend fish_function_path ${pkgs.fishPlugins.foreign-env}/share/fish/vendor_functions.d
         fenv source /etc/fish/foreign-env/interactiveShellInit > /dev/null
         set -e fish_function_path[1]
 
diff --git a/nixos/modules/programs/msmtp.nix b/nixos/modules/programs/msmtp.nix
new file mode 100644
index 00000000000..217060e6b3b
--- /dev/null
+++ b/nixos/modules/programs/msmtp.nix
@@ -0,0 +1,104 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.programs.msmtp;
+
+in {
+  meta.maintainers = with maintainers; [ pacien ];
+
+  options = {
+    programs.msmtp = {
+      enable = mkEnableOption "msmtp - an SMTP client";
+
+      setSendmail = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Whether to set the system sendmail to msmtp's.
+        '';
+      };
+
+      defaults = mkOption {
+        type = types.attrs;
+        default = {};
+        example = {
+          aliases = "/etc/aliases";
+          port = 587;
+          tls = true;
+        };
+        description = ''
+          Default values applied to all accounts.
+          See msmtp(1) for the available options.
+        '';
+      };
+
+      accounts = mkOption {
+        type = with types; attrsOf attrs;
+        default = {};
+        example = {
+          "default" = {
+            host = "smtp.example";
+            auth = true;
+            user = "someone";
+            passwordeval = "cat /secrets/password.txt";
+          };
+        };
+        description = ''
+          Named accounts and their respective configurations.
+          The special name "default" allows a default account to be defined.
+          See msmtp(1) for the available options.
+
+          Use `programs.msmtp.extraConfig` instead of this attribute set-based
+          option if ordered account inheritance is needed.
+
+          It is advised to use the `passwordeval` setting to read the password
+          from a secret file to avoid having it written in the world-readable
+          nix store. The password file must end with a newline (`\n`).
+        '';
+      };
+
+      extraConfig = mkOption {
+        type = types.lines;
+        default = "";
+        description = ''
+          Extra lines to add to the msmtp configuration verbatim.
+          See msmtp(1) for the syntax and available options.
+        '';
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    environment.systemPackages = [ pkgs.msmtp ];
+
+    services.mail.sendmailSetuidWrapper = mkIf cfg.setSendmail {
+      program = "sendmail";
+      source = "${pkgs.msmtp}/bin/sendmail";
+      setuid = false;
+      setgid = false;
+    };
+
+    environment.etc."msmtprc".text = let
+      mkValueString = v:
+        if v == true then "on"
+        else if v == false then "off"
+        else generators.mkValueStringDefault {} v;
+      mkKeyValueString = k: v: "${k} ${mkValueString v}";
+      mkInnerSectionString =
+        attrs: concatStringsSep "\n" (mapAttrsToList mkKeyValueString attrs);
+      mkAccountString = name: attrs: ''
+        account ${name}
+        ${mkInnerSectionString attrs}
+      '';
+    in ''
+      defaults
+      ${mkInnerSectionString cfg.defaults}
+
+      ${concatStringsSep "\n" (mapAttrsToList mkAccountString cfg.accounts)}
+
+      ${cfg.extraConfig}
+    '';
+  };
+}
diff --git a/nixos/modules/programs/ssmtp.nix b/nixos/modules/programs/ssmtp.nix
index 1f49ddc91bb..8039763facc 100644
--- a/nixos/modules/programs/ssmtp.nix
+++ b/nixos/modules/programs/ssmtp.nix
@@ -162,15 +162,16 @@ in
       (mkIf (cfg.authPassFile != null) { AuthPassFile = cfg.authPassFile; })
     ];
 
-    environment.etc."ssmtp/ssmtp.conf".source =
-      let
-        toStr = value:
+    # careful here: ssmtp REQUIRES all config lines to end with a newline char!
+    environment.etc."ssmtp/ssmtp.conf".text = with generators; toKeyValue {
+      mkKeyValue = mkKeyValueDefault {
+        mkValueString = value:
           if value == true then "YES"
           else if value == false then "NO"
-          else builtins.toString value
+          else mkValueStringDefault {} value
         ;
-      in
-        pkgs.writeText "ssmtp.conf" (concatStringsSep "\n" (mapAttrsToList (key: value: "${key}=${toStr value}") cfg.settings));
+      } "=";
+    } cfg.settings;
 
     environment.systemPackages = [pkgs.ssmtp];
 
diff --git a/nixos/modules/security/acme.nix b/nixos/modules/security/acme.nix
index 47f6bead7c3..8e646ae1567 100644
--- a/nixos/modules/security/acme.nix
+++ b/nixos/modules/security/acme.nix
@@ -104,7 +104,7 @@ let
     mkHash = with builtins; val: substring 0 20 (hashString "sha256" val);
     certDir = mkHash hashData;
     domainHash = mkHash "${concatStringsSep " " extraDomains} ${data.domain}";
-    othersHash = mkHash "${toString acmeServer} ${data.keyType}";
+    othersHash = mkHash "${toString acmeServer} ${data.keyType} ${data.email}";
     accountDir = "/var/lib/acme/.lego/accounts/" + othersHash;
 
     protocolOpts = if useDns then (
@@ -253,7 +253,8 @@ let
         echo '${domainHash}' > domainhash.txt
 
         # Check if we can renew
-        if [ -e 'certificates/${keyName}.key' -a -e 'certificates/${keyName}.crt' ]; then
+        # Certificates and account credentials must exist
+        if [ -e 'certificates/${keyName}.key' -a -e 'certificates/${keyName}.crt' -a "$(ls -1 accounts)" ]; then
 
           # When domains are updated, there's no need to do a full
           # Lego run, but it's likely renew won't work if days is too low.
diff --git a/nixos/modules/security/acme.xml b/nixos/modules/security/acme.xml
index 17e94bc12fb..f2481129172 100644
--- a/nixos/modules/security/acme.xml
+++ b/nixos/modules/security/acme.xml
@@ -263,4 +263,28 @@ chmod 400 /var/lib/secrets/certs.secret
    ones.
   </para>
  </section>
+ <section xml:id="module-security-acme-fix-jws">
+  <title>Fixing JWS Verification error</title>
+
+  <para>
+   It is possible that your account credentials file may become corrupt and need
+   to be regenerated. In this scenario lego will produce the error <literal>JWS verification error</literal>.
+   The solution is to simply delete the associated accounts file and
+   re-run the affected service(s).
+  </para>
+
+<programlisting>
+# Find the accounts folder for the certificate
+systemctl cat acme-example.com.service | grep -Po 'accounts/[^:]*'
+export accountdir="$(!!)"
+# Move this folder to some place else
+mv /var/lib/acme/.lego/$accountdir{,.bak}
+# Recreate the folder using systemd-tmpfiles
+systemd-tmpfiles --create
+# Get a new account and reissue certificates
+# Note: Do this for all certs that share the same account email address
+systemctl start acme-example.com.service
+</programlisting>
+
+ </section>
 </chapter>
diff --git a/nixos/modules/security/pam.nix b/nixos/modules/security/pam.nix
index a428103eaa9..1522111dbdd 100644
--- a/nixos/modules/security/pam.nix
+++ b/nixos/modules/security/pam.nix
@@ -394,7 +394,7 @@ let
           ${optionalString cfg.requireWheel
               "auth required pam_wheel.so use_uid"}
           ${optionalString cfg.logFailures
-              "auth required pam_tally.so"}
+              "auth required pam_faillock.so"}
           ${optionalString (config.security.pam.enableSSHAgentAuth && cfg.sshAgentAuth)
               "auth sufficient ${pkgs.pam_ssh_agent_auth}/libexec/pam_ssh_agent_auth.so file=${lib.concatStringsSep ":" config.services.openssh.authorizedKeysFiles}"}
           ${optionalString cfg.fprintAuth
diff --git a/nixos/modules/services/computing/slurm/slurm.nix b/nixos/modules/services/computing/slurm/slurm.nix
index 705390a21d4..302f058926c 100644
--- a/nixos/modules/services/computing/slurm/slurm.nix
+++ b/nixos/modules/services/computing/slurm/slurm.nix
@@ -34,13 +34,12 @@ let
      ${cfg.extraCgroupConfig}
    '';
 
-  slurmdbdConf = pkgs.writeTextDir "slurmdbd.conf"
+  slurmdbdConf = pkgs.writeText "slurmdbd.conf"
    ''
      DbdHost=${cfg.dbdserver.dbdHost}
      SlurmUser=${cfg.user}
      StorageType=accounting_storage/mysql
      StorageUser=${cfg.dbdserver.storageUser}
-     ${optionalString (cfg.dbdserver.storagePass != null) "StoragePass=${cfg.dbdserver.storagePass}"}
      ${cfg.dbdserver.extraConfig}
    '';
 
@@ -95,26 +94,12 @@ in
           '';
         };
 
-        storagePass = mkOption {
-          type = types.nullOr types.str;
+        storagePassFile = mkOption {
+          type = with types; nullOr str;
           default = null;
           description = ''
-            Database password. Note that this password will be publicable
-            readable in the nix store. Use <option>configFile</option>
-            to store the and config file and password outside the nix store.
-          '';
-        };
-
-        configFile = mkOption {
-          type = types.nullOr types.str;
-          default = null;
-          description = ''
-            Path to <literal>slurmdbd.conf</literal>. The password for the database connection
-            is stored in the config file. Use this option to specfify a path
-            outside the nix store. If this option is unset a configuration file
-            will be generated. See also:
-            <citerefentry><refentrytitle>slurmdbd.conf</refentrytitle>
-            <manvolnum>8</manvolnum></citerefentry>.
+            Path to file with database password. The content of this will be used to
+            create the password for the <literal>StoragePass</literal> option.
           '';
         };
 
@@ -122,7 +107,9 @@ in
           type = types.lines;
           default = "";
           description = ''
-            Extra configuration for <literal>slurmdbd.conf</literal>
+            Extra configuration for <literal>slurmdbd.conf</literal> See also:
+            <citerefentry><refentrytitle>slurmdbd.conf</refentrytitle>
+            <manvolnum>8</manvolnum></citerefentry>.
           '';
         };
       };
@@ -292,6 +279,16 @@ in
 
   };
 
+  imports = [
+    (mkRemovedOptionModule [ "services" "slurm" "dbdserver" "storagePass" ] ''
+      This option has been removed so that the database password is not exposed via the nix store.
+      Use services.slurm.dbdserver.storagePassFile to provide the database password.
+    '')
+    (mkRemovedOptionModule [ "services" "slurm" "dbdserver" "configFile" ] ''
+      This option has been removed. Use services.slurm.dbdserver.storagePassFile
+      and services.slurm.dbdserver.extraConfig instead.
+    '')
+  ];
 
   ###### implementation
 
@@ -386,23 +383,34 @@ in
       '';
     };
 
-    systemd.services.slurmdbd = mkIf (cfg.dbdserver.enable) {
+    systemd.services.slurmdbd = let
+      # slurm strips the last component off the path
+      configPath = "$RUNTIME_DIRECTORY/slurmdbd.conf";
+    in mkIf (cfg.dbdserver.enable) {
       path = with pkgs; [ wrappedSlurm munge coreutils ];
 
       wantedBy = [ "multi-user.target" ];
       after = [ "network.target" "munged.service" "mysql.service" ];
       requires = [ "munged.service" "mysql.service" ];
 
-      # slurm strips the last component off the path
-      environment.SLURM_CONF =
-        if (cfg.dbdserver.configFile == null) then
-          "${slurmdbdConf}/slurm.conf"
-        else
-          cfg.dbdserver.configFile;
+      preStart = ''
+        cp ${slurmdbdConf} ${configPath}
+        chmod 600 ${configPath}
+        chown ${cfg.user} ${configPath}
+        ${optionalString (cfg.dbdserver.storagePassFile != null) ''
+          echo "StoragePass=$(cat ${cfg.dbdserver.storagePassFile})" \
+            >> ${configPath}
+        ''}
+      '';
+
+      script = ''
+        export SLURM_CONF=${configPath}
+        exec ${cfg.package}/bin/slurmdbd -D
+      '';
 
       serviceConfig = {
-        Type = "forking";
-        ExecStart = "${cfg.package}/bin/slurmdbd";
+        RuntimeDirectory = "slurmdbd";
+        Type = "simple";
         PIDFile = "/run/slurmdbd.pid";
         ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
       };
diff --git a/nixos/modules/services/databases/mongodb.nix b/nixos/modules/services/databases/mongodb.nix
index 4453a182990..4af0b9d44e1 100644
--- a/nixos/modules/services/databases/mongodb.nix
+++ b/nixos/modules/services/databases/mongodb.nix
@@ -176,7 +176,7 @@ in
         postStart = ''
             if test -e "${cfg.dbpath}/.first_startup"; then
               ${optionalString (cfg.initialScript != null) ''
-                ${mongodb}/bin/mongo -u root -p ${cfg.initialRootPassword} admin "${cfg.initialScript}"
+                ${mongodb}/bin/mongo ${optionalString (cfg.enableAuth) "-u root -p ${cfg.initialRootPassword}"} admin "${cfg.initialScript}"
               ''}
               rm -f "${cfg.dbpath}/.first_startup"
             fi
diff --git a/nixos/modules/services/development/hoogle.nix b/nixos/modules/services/development/hoogle.nix
index cbf13f027de..a661e3acae3 100644
--- a/nixos/modules/services/development/hoogle.nix
+++ b/nixos/modules/services/development/hoogle.nix
@@ -49,6 +49,11 @@ in {
       default = "https://hoogle.haskell.org";
     };
 
+    host = mkOption {
+      type = types.str;
+      description = "Set the host to bind on.";
+      default = "127.0.0.1";
+    };
   };
 
   config = mkIf cfg.enable {
@@ -59,7 +64,7 @@ in {
 
       serviceConfig = {
         Restart = "always";
-        ExecStart = ''${hoogleEnv}/bin/hoogle server --local --port ${toString cfg.port} --home ${cfg.home}'';
+        ExecStart = ''${hoogleEnv}/bin/hoogle server --local --port ${toString cfg.port} --home ${cfg.home} --host ${cfg.host}'';
 
         DynamicUser = true;
 
diff --git a/nixos/modules/services/hardware/thermald.nix b/nixos/modules/services/hardware/thermald.nix
index 6be255cebf1..aa936ac09d1 100644
--- a/nixos/modules/services/hardware/thermald.nix
+++ b/nixos/modules/services/hardware/thermald.nix
@@ -23,19 +23,26 @@ in {
         default = null;
         description = "the thermald manual configuration file.";
       };
+
+      package = mkOption {
+        type = types.package;
+        default = pkgs.thermald;
+        defaultText = "pkgs.thermald";
+        description = "Which thermald package to use.";
+      };
     };
   };
 
   ###### implementation
   config = mkIf cfg.enable {
-    services.dbus.packages = [ pkgs.thermald ];
+    services.dbus.packages = [ cfg.package ];
 
     systemd.services.thermald = {
       description = "Thermal Daemon Service";
       wantedBy = [ "multi-user.target" ];
       serviceConfig = {
         ExecStart = ''
-          ${pkgs.thermald}/sbin/thermald \
+          ${cfg.package}/sbin/thermald \
             --no-daemon \
             ${optionalString cfg.debug "--loglevel=debug"} \
             ${optionalString (cfg.configFile != null) "--config-file ${cfg.configFile}"} \
diff --git a/nixos/modules/services/hardware/throttled.nix b/nixos/modules/services/hardware/throttled.nix
index 7617c4492d7..1905eb565c6 100644
--- a/nixos/modules/services/hardware/throttled.nix
+++ b/nixos/modules/services/hardware/throttled.nix
@@ -26,5 +26,11 @@ in {
       if cfg.extraConfig != ""
       then pkgs.writeText "lenovo_fix.conf" cfg.extraConfig
       else "${pkgs.throttled}/etc/lenovo_fix.conf";
+
+    # Kernel 5.9 spams warnings whenever userspace writes to CPU MSRs.
+    # See https://github.com/erpalma/throttled/issues/215
+    boot.kernelParams =
+      optional (versionAtLeast config.boot.kernelPackages.kernel.version "5.9")
+      "msr.allow_writes=on";
   };
 }
diff --git a/nixos/modules/services/hardware/trezord.nix b/nixos/modules/services/hardware/trezord.nix
index 2594ac74371..8c609bbf825 100644
--- a/nixos/modules/services/hardware/trezord.nix
+++ b/nixos/modules/services/hardware/trezord.nix
@@ -47,7 +47,7 @@ in {
     services.udev.packages = [ pkgs.trezor-udev-rules ];
 
     systemd.services.trezord = {
-      description = "TREZOR Bridge";
+      description = "Trezor Bridge";
       after = [ "systemd-udev-settle.service" "network.target" ];
       wantedBy = [ "multi-user.target" ];
       path = [];
diff --git a/nixos/modules/services/hardware/udev.nix b/nixos/modules/services/hardware/udev.nix
index a212adb7342..63027f7744d 100644
--- a/nixos/modules/services/hardware/udev.nix
+++ b/nixos/modules/services/hardware/udev.nix
@@ -205,7 +205,7 @@ in
       extraRules = mkOption {
         default = "";
         example = ''
-          KERNEL=="eth*", ATTR{address}=="00:1D:60:B9:6D:4F", NAME="my_fast_network_card"
+          SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1D:60:B9:6D:4F", KERNEL=="eth*", NAME="my_fast_network_card"
         '';
         type = types.lines;
         description = ''
diff --git a/nixos/modules/services/mail/mailman.nix b/nixos/modules/services/mail/mailman.nix
index bf19da32324..832b496f31c 100644
--- a/nixos/modules/services/mail/mailman.nix
+++ b/nixos/modules/services/mail/mailman.nix
@@ -367,7 +367,7 @@ in {
 
       mailman-web-setup = {
         description = "Prepare mailman-web files and database";
-        before = [ "uwsgi.service" "mailman-uwsgi.service" ];
+        before = [ "mailman-uwsgi.service" ];
         requiredBy = [ "mailman-uwsgi.service" ];
         restartTriggers = [ config.environment.etc."mailman3/settings.py".source ];
         script = ''
diff --git a/nixos/modules/services/misc/gitlab.nix b/nixos/modules/services/misc/gitlab.nix
index 3ee7a81dc37..35a9dccdff2 100644
--- a/nixos/modules/services/misc/gitlab.nix
+++ b/nixos/modules/services/misc/gitlab.nix
@@ -44,6 +44,9 @@ let
     [gitlab-shell]
     dir = "${cfg.packages.gitlab-shell}"
 
+    [hooks]
+    custom_hooks_dir = "${cfg.statePath}/custom_hooks"
+
     [gitlab]
     secret_file = "${cfg.statePath}/gitlab_shell_secret"
     url = "http+unix://${pathUrlQuote gitlabSocket}"
@@ -65,7 +68,6 @@ let
     repos_path = "${cfg.statePath}/repositories";
     secret_file = "${cfg.statePath}/gitlab_shell_secret";
     log_file = "${cfg.statePath}/log/gitlab-shell.log";
-    custom_hooks_dir = "${cfg.statePath}/custom_hooks";
     redis = {
       bin = "${pkgs.redis}/bin/redis-cli";
       host = "127.0.0.1";
diff --git a/nixos/modules/services/misc/matrix-appservice-discord.nix b/nixos/modules/services/misc/matrix-appservice-discord.nix
index 49c41ff637a..71d1227f4ff 100644
--- a/nixos/modules/services/misc/matrix-appservice-discord.nix
+++ b/nixos/modules/services/misc/matrix-appservice-discord.nix
@@ -5,7 +5,7 @@ with lib;
 let
   dataDir = "/var/lib/matrix-appservice-discord";
   registrationFile = "${dataDir}/discord-registration.yaml";
-  appDir = "${pkgs.matrix-appservice-discord}/lib/node_modules/matrix-appservice-discord";
+  appDir = "${pkgs.matrix-appservice-discord}/${pkgs.matrix-appservice-discord.passthru.nodeAppDir}";
   cfg = config.services.matrix-appservice-discord;
   # TODO: switch to configGen.json once RFC42 is implemented
   settingsFile = pkgs.writeText "matrix-appservice-discord-settings.json" (builtins.toJSON cfg.settings);
@@ -22,12 +22,6 @@ in {
         default = {
           database = {
             filename = "${dataDir}/discord.db";
-
-            # TODO: remove those old config keys once the following issues are solved:
-            # * https://github.com/Half-Shot/matrix-appservice-discord/issues/490
-            # * https://github.com/Half-Shot/matrix-appservice-discord/issues/498
-            userStorePath = "${dataDir}/user-store.db";
-            roomStorePath = "${dataDir}/room-store.db";
           };
 
           # empty values necessary for registration file generation
diff --git a/nixos/modules/services/monitoring/grafana-image-renderer.nix b/nixos/modules/services/monitoring/grafana-image-renderer.nix
new file mode 100644
index 00000000000..a010a5316ba
--- /dev/null
+++ b/nixos/modules/services/monitoring/grafana-image-renderer.nix
@@ -0,0 +1,150 @@
+{ lib, pkgs, config, ... }:
+
+with lib;
+
+let
+  cfg = config.services.grafana-image-renderer;
+
+  format = pkgs.formats.json { };
+
+  configFile = format.generate "grafana-image-renderer-config.json" cfg.settings;
+in {
+  options.services.grafana-image-renderer = {
+    enable = mkEnableOption "grafana-image-renderer";
+
+    chromium = mkOption {
+      type = types.package;
+      description = ''
+        The chromium to use for image rendering.
+      '';
+    };
+
+    verbose = mkEnableOption "verbosity for the service";
+
+    provisionGrafana = mkEnableOption "Grafana configuration for grafana-image-renderer";
+
+    settings = mkOption {
+      type = types.submodule {
+        freeformType = format.type;
+
+        options = {
+          service = {
+            port = mkOption {
+              type = types.port;
+              default = 8081;
+              description = ''
+                The TCP port to use for the rendering server.
+              '';
+            };
+            logging.level = mkOption {
+              type = types.enum [ "error" "warning" "info" "debug" ];
+              default = "info";
+              description = ''
+                The log-level of the <filename>grafana-image-renderer.service</filename>-unit.
+              '';
+            };
+          };
+          rendering = {
+            width = mkOption {
+              default = 1000;
+              type = types.ints.positive;
+              description = ''
+                Width of the PNG used to display the alerting graph.
+              '';
+            };
+            height = mkOption {
+              default = 500;
+              type = types.ints.positive;
+              description = ''
+                Height of the PNG used to display the alerting graph.
+              '';
+            };
+            mode = mkOption {
+              default = "default";
+              type = types.enum [ "default" "reusable" "clustered" ];
+              description = ''
+                Rendering mode of <package>grafana-image-renderer</package>:
+                <itemizedlist>
+                <listitem><para><literal>default:</literal> Creates on browser-instance
+                  per rendering request.</para></listitem>
+                <listitem><para><literal>reusable:</literal> One browser instance
+                  will be started and reused for each rendering request.</para></listitem>
+                <listitem><para><literal>clustered:</literal> allows to precisely
+                  configure how many browser-instances are supposed to be used. The values
+                  for that mode can be declared in <literal>rendering.clustering</literal>.
+                  </para></listitem>
+                </itemizedlist>
+              '';
+            };
+            args = mkOption {
+              type = types.listOf types.str;
+              default = [ "--no-sandbox" ];
+              description = ''
+                List of CLI flags passed to <package>chromium</package>.
+              '';
+            };
+          };
+        };
+      };
+
+      default = {};
+
+      description = ''
+        Configuration attributes for <package>grafana-image-renderer</package>.
+
+        See <link xlink:href="https://github.com/grafana/grafana-image-renderer/blob/ce1f81438e5f69c7fd7c73ce08bab624c4c92e25/default.json" />
+        for supported values.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    assertions = [
+      { assertion = cfg.provisionGrafana -> config.services.grafana.enable;
+        message = ''
+          To provision a Grafana instance to use grafana-image-renderer,
+          `services.grafana.enable` must be set to `true`!
+        '';
+      }
+    ];
+
+    services.grafana.extraOptions = mkIf cfg.provisionGrafana {
+      RENDERING_SERVER_URL = "http://localhost:${toString cfg.settings.service.port}/render";
+      RENDERING_CALLBACK_URL = "http://localhost:${toString config.services.grafana.port}";
+    };
+
+    services.grafana-image-renderer.chromium = mkDefault pkgs.chromium;
+
+    services.grafana-image-renderer.settings = {
+      rendering = mapAttrs (const mkDefault) {
+        chromeBin = "${cfg.chromium}/bin/chromium";
+        verboseLogging = cfg.verbose;
+        timezone = config.time.timeZone;
+      };
+
+      services = {
+        logging.level = mkIf cfg.verbose (mkDefault "debug");
+        metrics.enabled = mkDefault false;
+      };
+    };
+
+    systemd.services.grafana-image-renderer = {
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network.target" ];
+      description = " A Grafana backend plugin that handles rendering of panels & dashboards to PNGs using headless browser (Chromium/Chrome)";
+
+      environment = {
+        PUPPETEER_SKIP_CHROMIUM_DOWNLOAD = "true";
+      };
+
+      serviceConfig = {
+        DynamicUser = true;
+        PrivateTmp = true;
+        ExecStart = "${pkgs.grafana-image-renderer}/bin/grafana-image-renderer server --config=${configFile}";
+        Restart = "always";
+      };
+    };
+  };
+
+  meta.maintainers = with maintainers; [ ma27 ];
+}
diff --git a/nixos/modules/services/monitoring/grafana.nix b/nixos/modules/services/monitoring/grafana.nix
index b0c81a46d4d..c8515c4b898 100644
--- a/nixos/modules/services/monitoring/grafana.nix
+++ b/nixos/modules/services/monitoring/grafana.nix
@@ -5,10 +5,11 @@ with lib;
 let
   cfg = config.services.grafana;
   opt = options.services.grafana;
+  declarativePlugins = pkgs.linkFarm "grafana-plugins" (builtins.map (pkg: { name = pkg.pname; path = pkg; }) cfg.declarativePlugins);
 
   envOptions = {
     PATHS_DATA = cfg.dataDir;
-    PATHS_PLUGINS = "${cfg.dataDir}/plugins";
+    PATHS_PLUGINS = if builtins.isNull cfg.declarativePlugins then "${cfg.dataDir}/plugins" else declarativePlugins;
     PATHS_LOGS = "${cfg.dataDir}/log";
 
     SERVER_PROTOCOL = cfg.protocol;
@@ -260,6 +261,12 @@ 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 ]";
+    };
 
     dataDir = mkOption {
       description = "Data directory.";
diff --git a/nixos/modules/services/monitoring/prometheus/default.nix b/nixos/modules/services/monitoring/prometheus/default.nix
index 72428957109..4f9be38f7f1 100644
--- a/nixos/modules/services/monitoring/prometheus/default.nix
+++ b/nixos/modules/services/monitoring/prometheus/default.nix
@@ -32,6 +32,8 @@ let
       (pkgs.writeText "prometheus.rules" (concatStringsSep "\n" cfg.rules))
     ]);
     scrape_configs = filterValidPrometheus cfg.scrapeConfigs;
+    remote_write = filterValidPrometheus cfg.remoteWrite;
+    remote_read = filterValidPrometheus cfg.remoteRead;
     alerting = {
       inherit (cfg) alertmanagers;
     };
@@ -101,6 +103,157 @@ let
     };
   };
 
+  promTypes.remote_read = types.submodule {
+    options = {
+      url = mkOption {
+        type = types.str;
+        description = ''
+          ServerName extension to indicate the name of the server.
+          http://tools.ietf.org/html/rfc4366#section-3.1
+        '';
+      };
+      name = mkOpt types.string ''
+        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.
+      '';
+      required_matchers = mkOpt (types.attrsOf types.str) ''
+        An optional list of equality matchers which have to be
+        present in a selector to query the remote read endpoint.
+      '';
+      remote_timeout = mkOpt types.str ''
+        Timeout for requests to the remote read endpoint.
+      '';
+      read_recent = mkOpt types.bool ''
+        Whether reads should be made for queries for time ranges that
+        the local storage should have complete data for.
+      '';
+      basic_auth = mkOpt (types.submodule {
+        options = {
+          username = mkOption {
+            type = types.str;
+            description = ''
+              HTTP username
+            '';
+          };
+          password = mkOpt types.str "HTTP password";
+          password_file = mkOpt types.str "HTTP password file";
+        };
+      }) ''
+        Sets the `Authorization` header on every remote read request with the
+        configured username and password.
+        password and password_file are mutually exclusive.
+      '';
+      bearer_token = mkOpt types.str ''
+        Sets the `Authorization` header on every remote read request with
+        the configured bearer token. It is mutually exclusive with `bearer_token_file`.
+      '';
+      bearer_token_file = mkOpt types.str ''
+        Sets the `Authorization` header on every remote read request with the bearer token
+        read from the configured file. It is mutually exclusive with `bearer_token`.
+      '';
+      tls_config = mkOpt promTypes.tls_config ''
+        Configures the remote read request's TLS settings.
+      '';
+      proxy_url = mkOpt types.str "Optional Proxy URL.";
+    };
+  };
+
+  promTypes.remote_write = types.submodule {
+    options = {
+      url = mkOption {
+        type = types.str;
+        description = ''
+          ServerName extension to indicate the name of the server.
+          http://tools.ietf.org/html/rfc4366#section-3.1
+        '';
+      };
+      remote_timeout = mkOpt types.str ''
+        Timeout for requests to the remote write endpoint.
+      '';
+      write_relabel_configs = mkOpt (types.listOf promTypes.relabel_config) ''
+        List of remote write relabel configurations.
+      '';
+      name = mkOpt types.string ''
+        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.
+      '';
+      basic_auth = mkOpt (types.submodule {
+        options = {
+          username = mkOption {
+            type = types.str;
+            description = ''
+              HTTP username
+            '';
+          };
+          password = mkOpt types.str "HTTP password";
+          password_file = mkOpt types.str "HTTP password file";
+        };
+      }) ''
+        Sets the `Authorization` header on every remote write request with the
+        configured username and password.
+        password and password_file are mutually exclusive.
+      '';
+      bearer_token = mkOpt types.str ''
+        Sets the `Authorization` header on every remote write request with
+        the configured bearer token. It is mutually exclusive with `bearer_token_file`.
+      '';
+      bearer_token_file = mkOpt types.str ''
+        Sets the `Authorization` header on every remote write request with the bearer token
+        read from the configured file. It is mutually exclusive with `bearer_token`.
+      '';
+      tls_config = mkOpt promTypes.tls_config ''
+        Configures the remote write request's TLS settings.
+      '';
+      proxy_url = mkOpt types.str "Optional Proxy URL.";
+      queue_config = mkOpt (types.submodule {
+        options = {
+          capacity = mkOpt types.int ''
+            Number of samples to buffer per shard before we block reading of more
+            samples from the WAL. It is recommended to have enough capacity in each
+            shard to buffer several requests to keep throughput up while processing
+            occasional slow remote requests.
+          '';
+          max_shards = mkOpt types.int ''
+            Maximum number of shards, i.e. amount of concurrency.
+          '';
+          min_shards = mkOpt types.int ''
+            Minimum number of shards, i.e. amount of concurrency.
+          '';
+          max_samples_per_send = mkOpt types.int ''
+            Maximum number of samples per send.
+          '';
+          batch_send_deadline = mkOpt types.str ''
+            Maximum time a sample will wait in buffer.
+          '';
+          min_backoff = mkOpt types.str ''
+            Initial retry delay. Gets doubled for every retry.
+          '';
+          max_backoff = mkOpt types.str ''
+            Maximum retry delay.
+          '';
+        };
+      }) ''
+        Configures the queue used to write to remote storage.
+      '';
+      metadata_config = mkOpt (types.submodule {
+        options = {
+          send = mkOpt types.bool ''
+            Whether metric metadata is sent to remote storage or not.
+          '';
+          send_interval = mkOpt types.str ''
+            How frequently metric metadata is sent to remote storage.
+          '';
+        };
+      }) ''
+        Configures the sending of series metadata to remote storage.
+        Metadata configuration is subject to change at any point
+        or be removed in future releases.
+      '';
+    };
+  };
+
   promTypes.scrape_config = types.submodule {
     options = {
       job_name = mkOption {
@@ -432,10 +585,10 @@ let
         regular expression matches.
       '';
 
-      action = mkDefOpt (types.enum ["replace" "keep" "drop"]) "replace" ''
+      action =
+        mkDefOpt (types.enum ["replace" "keep" "drop" "hashmod" "labelmap" "labeldrop" "labelkeep"]) "replace" ''
         Action to perform based on regex matching.
       '';
-
     };
   };
 
@@ -580,6 +733,24 @@ in {
       '';
     };
 
+    remoteRead = mkOption {
+      type = types.listOf promTypes.remote_read;
+      default = [];
+      description = ''
+        Parameters of the endpoints to query from.
+        See <link xlink:href="https://prometheus.io/docs/prometheus/latest/configuration/configuration/#remote_read">the official documentation</link> for more information.
+      '';
+    };
+
+    remoteWrite = mkOption {
+      type = types.listOf promTypes.remote_write;
+      default = [];
+      description = ''
+        Parameters of the endpoints to send samples to.
+        See <link xlink:href="https://prometheus.io/docs/prometheus/latest/configuration/configuration/#remote_write">the official documentation</link> for more information.
+      '';
+    };
+
     rules = mkOption {
       type = types.listOf types.str;
       default = [];
diff --git a/nixos/modules/services/monitoring/prometheus/exporters.nix b/nixos/modules/services/monitoring/prometheus/exporters.nix
index 1f8c5aeded1..1fd85c66f84 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters.nix
@@ -23,6 +23,7 @@ let
   exporterOpts = genAttrs [
     "apcupsd"
     "bind"
+    "bird"
     "blackbox"
     "collectd"
     "dnsmasq"
@@ -37,6 +38,7 @@ let
     "modemmanager"
     "nextcloud"
     "nginx"
+    "nginxlog"
     "node"
     "openvpn"
     "postfix"
@@ -46,6 +48,7 @@ let
     "rspamd"
     "rtl_433"
     "snmp"
+    "smokeping"
     "sql"
     "surfboard"
     "tor"
@@ -233,8 +236,6 @@ in
     services.prometheus.exporters.minio.minioAddress  = mkDefault "http://localhost:9000";
     services.prometheus.exporters.minio.minioAccessKey = mkDefault config.services.minio.accessKey;
     services.prometheus.exporters.minio.minioAccessSecret = mkDefault config.services.minio.secretKey;
-  })] ++ [(mkIf config.services.rspamd.enable {
-    services.prometheus.exporters.rspamd.url = mkDefault "http://localhost:11334/stat";
   })] ++ [(mkIf config.services.prometheus.exporters.rtl_433.enable {
     hardware.rtl-sdr.enable = mkDefault true;
   })] ++ [(mkIf config.services.nginx.enable {
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/bird.nix b/nixos/modules/services/monitoring/prometheus/exporters/bird.nix
new file mode 100644
index 00000000000..d8a526eafce
--- /dev/null
+++ b/nixos/modules/services/monitoring/prometheus/exporters/bird.nix
@@ -0,0 +1,46 @@
+{ config, lib, pkgs, options }:
+
+with lib;
+
+let
+  cfg = config.services.prometheus.exporters.bird;
+in
+{
+  port = 9324;
+  extraOpts = {
+    birdVersion = mkOption {
+      type = types.enum [ 1 2 ];
+      default = 2;
+      description = ''
+        Specifies whether BIRD1 or BIRD2 is in use.
+      '';
+    };
+    birdSocket = mkOption {
+      type = types.path;
+      default = "/var/run/bird.ctl";
+      description = ''
+        Path to BIRD2 (or BIRD1 v4) socket.
+      '';
+    };
+    newMetricFormat = mkOption {
+      type = types.bool;
+      default = true;
+      description = ''
+        Enable the new more-generic metric format.
+      '';
+    };
+  };
+  serviceOpts = {
+    serviceConfig = {
+      SupplementaryGroups = singleton (if cfg.birdVersion == 1 then "bird" else "bird2");
+      ExecStart = ''
+        ${pkgs.prometheus-bird-exporter}/bin/bird_exporter \
+          -web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
+          -bird.socket ${cfg.birdSocket} \
+          -bird.v2=${if cfg.birdVersion == 2 then "true" else "false"} \
+          -format.new=${if cfg.newMetricFormat then "true" else "false"} \
+          ${concatStringsSep " \\\n  " cfg.extraFlags}
+      '';
+    };
+  };
+}
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/json.nix b/nixos/modules/services/monitoring/prometheus/exporters/json.nix
index bd0026b55f7..1800da69a25 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/json.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/json.nix
@@ -8,28 +8,36 @@ in
 {
   port = 7979;
   extraOpts = {
-    url = mkOption {
-      type = types.str;
-      description = ''
-        URL to scrape JSON from.
-      '';
-    };
     configFile = mkOption {
       type = types.path;
       description = ''
         Path to configuration file.
       '';
     };
-    listenAddress = {}; # not used
   };
   serviceOpts = {
     serviceConfig = {
       ExecStart = ''
-        ${pkgs.prometheus-json-exporter}/bin/prometheus-json-exporter \
-          --port ${toString cfg.port} \
-          ${cfg.url} ${escapeShellArg cfg.configFile} \
+        ${pkgs.prometheus-json-exporter}/bin/json_exporter \
+          --config.file ${escapeShellArg cfg.configFile} \
+          --web.listen-address="${cfg.listenAddress}:${toString cfg.port}" \
           ${concatStringsSep " \\\n  " cfg.extraFlags}
       '';
     };
   };
+  imports = [
+    (mkRemovedOptionModule [ "url" ] ''
+      This option was removed. The URL of the endpoint serving JSON
+      must now be provided to the exporter by prometheus via the url
+      parameter `target'.
+
+      In prometheus a scrape URL would look like this:
+
+        http://some.json-exporter.host:7979/probe?target=https://example.com/some/json/endpoint
+
+      For more information, take a look at the official documentation
+      (https://github.com/prometheus-community/json_exporter) of the json_exporter.
+    '')
+     ({ options.warnings = options.warnings; options.assertions = options.assertions; })
+  ];
 }
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/nginxlog.nix b/nixos/modules/services/monitoring/prometheus/exporters/nginxlog.nix
new file mode 100644
index 00000000000..8c1f552d58a
--- /dev/null
+++ b/nixos/modules/services/monitoring/prometheus/exporters/nginxlog.nix
@@ -0,0 +1,51 @@
+{ config, lib, pkgs, options }:
+
+with lib;
+
+let
+  cfg = config.services.prometheus.exporters.nginxlog;
+in {
+  port = 9117;
+  extraOpts = {
+    settings = mkOption {
+      type = types.attrs;
+      default = {};
+      description = ''
+        All settings of nginxlog expressed as an Nix attrset.
+
+        Check the official documentation for the corresponding YAML
+        settings that can all be used here: https://github.com/martin-helmich/prometheus-nginxlog-exporter
+
+        The `listen` object is already generated by `port`, `listenAddress` and `metricsEndpoint` and
+        will be merged with the value of `settings` before writting it as JSON.
+      '';
+    };
+
+    metricsEndpoint = mkOption {
+      type = types.str;
+      default = "/metrics";
+      description = ''
+        Path under which to expose metrics.
+      '';
+    };
+  };
+
+  serviceOpts = let
+    listenConfig = {
+      listen = {
+        port = cfg.port;
+        address = cfg.listenAddress;
+        metrics_endpoint = cfg.metricsEndpoint;
+      };
+    };
+    completeConfig = pkgs.writeText "nginxlog-exporter.yaml" (builtins.toJSON (lib.recursiveUpdate listenConfig cfg.settings));
+  in {
+    serviceConfig = {
+      ExecStart = ''
+        ${pkgs.prometheus-nginxlog-exporter}/bin/prometheus-nginxlog-exporter -config-file ${completeConfig}
+      '';
+      Restart="always";
+      ProtectSystem="full";
+    };
+  };
+}
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix b/nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix
index 1f02ae20724..78fe120e4d9 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix
@@ -10,64 +10,55 @@ let
       echo '${builtins.toJSON conf}' | ${pkgs.buildPackages.jq}/bin/jq '.' > $out
     '';
 
-  generateConfig = extraLabels: (map (path: {
-    name = "rspamd_${replaceStrings [ "." " " ] [ "_" "_" ] path}";
-    path = "$.${path}";
-    labels = extraLabels;
-  }) [
-    "actions.'add header'"
-    "actions.'no action'"
-    "actions.'rewrite subject'"
-    "actions.'soft reject'"
-    "actions.greylist"
-    "actions.reject"
-    "bytes_allocated"
-    "chunks_allocated"
-    "chunks_freed"
-    "chunks_oversized"
-    "connections"
-    "control_connections"
-    "ham_count"
-    "learned"
-    "pools_allocated"
-    "pools_freed"
-    "read_only"
-    "scanned"
-    "shared_chunks_allocated"
-    "spam_count"
-    "total_learns"
-  ]) ++ [{
-    name = "rspamd_statfiles";
-    type = "object";
-    path = "$.statfiles[*]";
-    labels = recursiveUpdate {
-      symbol = "$.symbol";
-      type = "$.type";
-    } extraLabels;
-    values = {
-      revision = "$.revision";
-      size = "$.size";
-      total = "$.total";
-      used = "$.used";
-      languages = "$.languages";
-      users = "$.users";
-    };
-  }];
+  generateConfig = extraLabels: {
+    metrics = (map (path: {
+      name = "rspamd_${replaceStrings [ "." " " ] [ "_" "_" ] path}";
+      path = "$.${path}";
+      labels = extraLabels;
+    }) [
+      "actions.'add header'"
+      "actions.'no action'"
+      "actions.'rewrite subject'"
+      "actions.'soft reject'"
+      "actions.greylist"
+      "actions.reject"
+      "bytes_allocated"
+      "chunks_allocated"
+      "chunks_freed"
+      "chunks_oversized"
+      "connections"
+      "control_connections"
+      "ham_count"
+      "learned"
+      "pools_allocated"
+      "pools_freed"
+      "read_only"
+      "scanned"
+      "shared_chunks_allocated"
+      "spam_count"
+      "total_learns"
+    ]) ++ [{
+      name = "rspamd_statfiles";
+      type = "object";
+      path = "$.statfiles[*]";
+      labels = recursiveUpdate {
+        symbol = "$.symbol";
+        type = "$.type";
+      } extraLabels;
+      values = {
+        revision = "$.revision";
+        size = "$.size";
+        total = "$.total";
+        used = "$.used";
+        languages = "$.languages";
+        users = "$.users";
+      };
+    }];
+  };
 in
 {
   port = 7980;
   extraOpts = {
-    listenAddress = {}; # not used
-
-    url = mkOption {
-      type = types.str;
-      description = ''
-        URL to the rspamd metrics endpoint.
-        Defaults to http://localhost:11334/stat when
-        <option>services.rspamd.enable</option> is true.
-      '';
-    };
-
     extraLabels = mkOption {
       type = types.attrsOf types.str;
       default = {
@@ -84,9 +75,25 @@ in
     };
   };
   serviceOpts.serviceConfig.ExecStart = ''
-    ${pkgs.prometheus-json-exporter}/bin/prometheus-json-exporter \
-      --port ${toString cfg.port} \
-      ${cfg.url} ${prettyJSON (generateConfig cfg.extraLabels)} \
+    ${pkgs.prometheus-json-exporter}/bin/json_exporter \
+      --config.file ${prettyJSON (generateConfig cfg.extraLabels)} \
+      --web.listen-address "${cfg.listenAddress}:${toString cfg.port}" \
       ${concatStringsSep " \\\n  " cfg.extraFlags}
   '';
+
+  imports = [
+    (mkRemovedOptionModule [ "url" ] ''
+      This option was removed. The URL of the rspamd metrics endpoint
+      must now be provided to the exporter by prometheus via the url
+      parameter `target'.
+
+      In prometheus a scrape URL would look like this:
+
+        http://some.rspamd-exporter.host:7980/probe?target=http://some.rspamd.host:11334/stat
+
+      For more information, take a look at the official documentation
+      (https://github.com/prometheus-community/json_exporter) of the json_exporter.
+    '')
+     ({ options.warnings = options.warnings; options.assertions = options.assertions; })
+  ];
 }
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/smokeping.nix b/nixos/modules/services/monitoring/prometheus/exporters/smokeping.nix
new file mode 100644
index 00000000000..0a7bb9c27be
--- /dev/null
+++ b/nixos/modules/services/monitoring/prometheus/exporters/smokeping.nix
@@ -0,0 +1,60 @@
+{ config, lib, pkgs, options }:
+
+with lib;
+
+let
+  cfg = config.services.prometheus.exporters.smokeping;
+  goDuration = types.mkOptionType {
+    name = "goDuration";
+    description = "Go duration (https://golang.org/pkg/time/#ParseDuration)";
+    check = x: types.str.check x && builtins.match "(-?[0-9]+(\.[0-9]+)?(ns|us|µs|ms|s|m|h))+" x != null;
+    inherit (types.str) merge;
+  };
+in
+{
+  port = 9374;
+  extraOpts = {
+    telemetryPath = mkOption {
+      type = types.str;
+      default = "/metrics";
+      description = ''
+        Path under which to expose metrics.
+      '';
+    };
+    pingInterval = mkOption {
+      type = goDuration;
+      default = "1s";
+      description = ''
+        Interval between pings.
+      '';
+    };
+    buckets = mkOption {
+      type = types.commas;
+      default = "5e-05,0.0001,0.0002,0.0004,0.0008,0.0016,0.0032,0.0064,0.0128,0.0256,0.0512,0.1024,0.2048,0.4096,0.8192,1.6384,3.2768,6.5536,13.1072,26.2144";
+      description = ''
+        List of buckets to use for the response duration histogram.
+      '';
+    };
+    hosts = mkOption {
+      type = with types; listOf str;
+      description = ''
+        List of endpoints to probe.
+      '';
+    };
+  };
+  serviceOpts = {
+    serviceConfig = {
+      AmbientCapabilities = [ "CAP_NET_RAW" ];
+      ExecStart = ''
+        ${pkgs.prometheus-smokeping-prober}/bin/smokeping_prober \
+          --web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
+          --web.telemetry-path ${cfg.telemetryPath} \
+          --buckets ${cfg.buckets} \
+          --ping.interval ${cfg.pingInterval} \
+          --privileged \
+          ${concatStringsSep " \\\n  " cfg.extraFlags} \
+          ${concatStringsSep " " cfg.hosts}
+      '';
+    };
+  };
+}
diff --git a/nixos/modules/services/network-filesystems/samba-wsdd.nix b/nixos/modules/services/network-filesystems/samba-wsdd.nix
index 004d07064af..c68039c79e2 100644
--- a/nixos/modules/services/network-filesystems/samba-wsdd.nix
+++ b/nixos/modules/services/network-filesystems/samba-wsdd.nix
@@ -108,7 +108,7 @@ in {
         ProtectKernelModules = true;
         ProtectKernelLogs = true;
         ProtectControlGroups = true;
-        RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
+        RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" "AF_NETLINK" ];
         RestrictNamespaces = true;
         LockPersonality = true;
         MemoryDenyWriteExecute = true;
diff --git a/nixos/modules/services/networking/corerad.nix b/nixos/modules/services/networking/corerad.nix
index d90a5923bc6..4acdd1d69cc 100644
--- a/nixos/modules/services/networking/corerad.nix
+++ b/nixos/modules/services/networking/corerad.nix
@@ -4,13 +4,7 @@ with lib;
 
 let
   cfg = config.services.corerad;
-
-  writeTOML = name: x:
-    pkgs.runCommandNoCCLocal name {
-      passAsFile = ["config"];
-      config = builtins.toJSON x;
-      buildInputs = [ pkgs.go-toml ];
-    } "jsontoml < $configPath > $out";
+  settingsFormat = pkgs.formats.toml {};
 
 in {
   meta.maintainers = with maintainers; [ mdlayher ];
@@ -19,7 +13,7 @@ in {
     enable = mkEnableOption "CoreRAD IPv6 NDP RA daemon";
 
     settings = mkOption {
-      type = types.uniq types.attrs;
+      type = settingsFormat.type;
       example = literalExample ''
         {
           interfaces = [
@@ -64,7 +58,7 @@ in {
 
   config = mkIf cfg.enable {
     # Prefer the config file over settings if both are set.
-    services.corerad.configFile = mkDefault (writeTOML "corerad.toml" cfg.settings);
+    services.corerad.configFile = mkDefault (settingsFormat.generate "corerad.toml" cfg.settings);
 
     systemd.services.corerad = {
       description = "CoreRAD IPv6 NDP RA daemon";
diff --git a/nixos/modules/services/networking/icecream/daemon.nix b/nixos/modules/services/networking/icecream/daemon.nix
new file mode 100644
index 00000000000..2975696f9c2
--- /dev/null
+++ b/nixos/modules/services/networking/icecream/daemon.nix
@@ -0,0 +1,155 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.icecream.daemon;
+in {
+
+  ###### interface
+
+  options = {
+
+    services.icecream.daemon = {
+
+     enable = mkEnableOption "Icecream Daemon";
+
+      openFirewall = mkOption {
+        type = types.bool;
+        description = ''
+          Whether to automatically open receive port in the firewall.
+        '';
+      };
+
+      openBroadcast = mkOption {
+        type = types.bool;
+        description = ''
+          Whether to automatically open the firewall for scheduler discovery.
+        '';
+      };
+
+      cacheLimit = mkOption {
+        type = types.ints.u16;
+        default = 256;
+        description = ''
+          Maximum size in Megabytes of cache used to store compile environments of compile clients.
+        '';
+      };
+
+      netName = mkOption {
+        type = types.str;
+        default = "ICECREAM";
+        description = ''
+          Network name to connect to. A scheduler with the same name needs to be running.
+        '';
+      };
+
+      noRemote = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Prevent jobs from other nodes being scheduled on this daemon.
+        '';
+      };
+
+      schedulerHost = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        description = ''
+          Explicit scheduler hostname, useful in firewalled environments.
+
+          Uses scheduler autodiscovery via broadcast if set to null.
+        '';
+      };
+
+      maxProcesses = mkOption {
+        type = types.nullOr types.ints.u16;
+        default = null;
+        description = ''
+          Maximum number of compile jobs started in parallel for this daemon.
+
+          Uses the number of CPUs if set to null.
+        '';
+      };
+
+      nice = mkOption {
+        type = types.int;
+        default = 5;
+        description = ''
+          The level of niceness to use.
+        '';
+      };
+
+      hostname = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        description = ''
+          Hostname of the daemon in the icecream infrastructure.
+
+          Uses the hostname retrieved via uname if set to null.
+        '';
+      };
+
+      user = mkOption {
+        type = types.str;
+        default = "icecc";
+        description = ''
+          User to run the icecream daemon as. Set to root to enable receive of
+          remote compile environments.
+        '';
+      };
+
+      package = mkOption {
+        default = pkgs.icecream;
+        defaultText = "pkgs.icecream";
+        type = types.package;
+        description = "Icecream package to use.";
+      };
+
+      extraArgs = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        description = "Additional command line parameters.";
+        example = [ "-v" ];
+      };
+    };
+  };
+
+  ###### implementation
+
+  config = mkIf cfg.enable {
+    networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ 10245 ];
+    networking.firewall.allowedUDPPorts = mkIf cfg.openBroadcast [ 8765 ];
+
+    systemd.services.icecc-daemon = {
+      description = "Icecream compile daemon";
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+
+      serviceConfig = {
+        ExecStart = escapeShellArgs ([
+          "${getBin cfg.package}/bin/iceccd"
+          "-b" "$STATE_DIRECTORY"
+          "-u" "icecc"
+          (toString cfg.nice)
+        ]
+        ++ optionals (cfg.schedulerHost != null) ["-s" cfg.schedulerHost]
+        ++ optionals (cfg.netName != null) [ "-n" cfg.netName ]
+        ++ optionals (cfg.cacheLimit != null) [ "--cache-limit" (toString cfg.cacheLimit) ]
+        ++ optionals (cfg.maxProcesses != null) [ "-m" (toString cfg.maxProcesses) ]
+        ++ optionals (cfg.hostname != null) [ "-N" (cfg.hostname) ]
+        ++ optional  cfg.noRemote "--no-remote"
+        ++ cfg.extraArgs);
+        DynamicUser = true;
+        User = "icecc";
+        Group = "icecc";
+        StateDirectory = "icecc";
+        RuntimeDirectory = "icecc";
+        AmbientCapabilities = "CAP_SYS_CHROOT";
+        CapabilityBoundingSet = "CAP_SYS_CHROOT";
+      };
+    };
+  };
+
+  meta.maintainers = with lib.maintainers; [ emantor ];
+}
diff --git a/nixos/modules/services/networking/icecream/scheduler.nix b/nixos/modules/services/networking/icecream/scheduler.nix
new file mode 100644
index 00000000000..4ccbf27015d
--- /dev/null
+++ b/nixos/modules/services/networking/icecream/scheduler.nix
@@ -0,0 +1,101 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.icecream.scheduler;
+in {
+
+  ###### interface
+
+  options = {
+
+    services.icecream.scheduler = {
+      enable = mkEnableOption "Icecream Scheduler";
+
+      netName = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        description = ''
+          Network name for the icecream scheduler.
+
+          Uses the default ICECREAM if null.
+        '';
+      };
+
+      port = mkOption {
+        type = types.port;
+        default = 8765;
+        description = ''
+          Server port to listen for icecream daemon requests.
+        '';
+      };
+
+      openFirewall = mkOption {
+        type = types.bool;
+        description = ''
+          Whether to automatically open the daemon port in the firewall.
+        '';
+      };
+
+      openTelnet = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to open the telnet TCP port on 8766.
+        '';
+      };
+
+      persistentClientConnection = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to prevent clients from connecting to a better scheduler.
+        '';
+      };
+
+      package = mkOption {
+        default = pkgs.icecream;
+        defaultText = "pkgs.icecream";
+        type = types.package;
+        description = "Icecream package to use.";
+      };
+
+      extraArgs = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        description = "Additional command line parameters";
+        example = [ "-v" ];
+      };
+    };
+  };
+
+  ###### implementation
+
+  config = mkIf cfg.enable {
+    networking.firewall.allowedTCPPorts = mkMerge [
+      (mkIf cfg.openFirewall [ cfg.port ])
+      (mkIf cfg.openTelnet [ 8766 ])
+    ];
+
+    systemd.services.icecc-scheduler = {
+      description = "Icecream scheduling server";
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+
+      serviceConfig = {
+        ExecStart = escapeShellArgs ([
+          "${getBin cfg.package}/bin/icecc-scheduler"
+          "-p" (toString cfg.port)
+        ]
+        ++ optionals (cfg.netName != null) [ "-n" (toString cfg.netName) ]
+        ++ optional cfg.persistentClientConnection "-r"
+        ++ cfg.extraArgs);
+
+        DynamicUser = true;
+      };
+    };
+  };
+
+  meta.maintainers = with lib.maintainers; [ emantor ];
+}
diff --git a/nixos/modules/services/networking/kresd.nix b/nixos/modules/services/networking/kresd.nix
index 6f1c4c48b43..074830fc352 100644
--- a/nixos/modules/services/networking/kresd.nix
+++ b/nixos/modules/services/networking/kresd.nix
@@ -135,6 +135,8 @@ in {
       CacheDirectory = "knot-resolver";
       CacheDirectoryMode = "0770";
     };
+    # We don't mind running stop phase from wrong version.  It seems less racy.
+    systemd.services."kresd@".stopIfChanged = false;
 
     # Try cleaning up the previously default location of cache file.
     # Note that /var/cache/* should always be safe to remove.
diff --git a/nixos/modules/services/networking/privoxy.nix b/nixos/modules/services/networking/privoxy.nix
index e3b34cb0c61..7caae328203 100644
--- a/nixos/modules/services/networking/privoxy.nix
+++ b/nixos/modules/services/networking/privoxy.nix
@@ -16,7 +16,7 @@ let
     ${concatMapStrings (f: "actionsfile ${f}\n") cfg.actionsFiles}
     ${concatMapStrings (f: "filterfile ${f}\n") cfg.filterFiles}
   '' + optionalString cfg.enableTor ''
-    forward-socks4a / ${config.services.tor.client.socksListenAddressFaster} .
+    forward-socks5t / 127.0.0.1:9063 .
     toggle 1
     enable-remote-toggle 0
     enable-edit-actions 0
@@ -123,6 +123,11 @@ in
       serviceConfig.ProtectSystem = "full";
     };
 
+    services.tor.settings.SOCKSPort = mkIf cfg.enableTor [
+      # Route HTTP traffic over a faster port (without IsolateDestAddr).
+      { addr = "127.0.0.1"; port = 9063; IsolateDestAddr = false; }
+    ];
+
   };
 
   meta.maintainers = with lib.maintainers; [ rnhmjoj ];
diff --git a/nixos/modules/services/networking/shellhub-agent.nix b/nixos/modules/services/networking/shellhub-agent.nix
new file mode 100644
index 00000000000..4ce4b8250bc
--- /dev/null
+++ b/nixos/modules/services/networking/shellhub-agent.nix
@@ -0,0 +1,91 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+  cfg = config.services.shellhub-agent;
+in {
+
+  ###### interface
+
+  options = {
+
+    services.shellhub-agent = {
+
+      enable = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to enable the ShellHub Agent daemon, which allows
+          secure remote logins.
+        '';
+      };
+
+      package = mkOption {
+        type = types.package;
+        default = pkgs.shellhub-agent;
+        defaultText = "pkgs.shellhub-agent";
+        description = ''
+          Which ShellHub Agent package to use.
+        '';
+      };
+
+      tenantId = mkOption {
+        type = types.str;
+        example = "ba0a880c-2ada-11eb-a35e-17266ef329d6";
+        description = ''
+          The tenant ID to use when connecting to the ShellHub
+          Gateway.
+        '';
+      };
+
+      server = mkOption {
+        type = types.str;
+        default = "https://cloud.shellhub.io";
+        description = ''
+          Server address of ShellHub Gateway to connect.
+        '';
+      };
+
+      privateKey = mkOption {
+        type = types.path;
+        default = "/var/lib/shellhub-agent/private.key";
+        description = ''
+          Location where to store the ShellHub Agent private
+          key.
+        '';
+      };
+    };
+  };
+
+  ###### implementation
+
+  config = mkIf cfg.enable {
+
+    systemd.services.shellhub-agent = {
+      description = "ShellHub Agent";
+
+      wantedBy = [ "multi-user.target" ];
+      requires = [ "local-fs.target" ];
+      wants = [ "network-online.target" ];
+      after = [
+        "local-fs.target"
+        "network.target"
+        "network-online.target"
+        "time-sync.target"
+      ];
+
+      environment.SERVER_ADDRESS = cfg.server;
+      environment.PRIVATE_KEY = cfg.privateKey;
+      environment.TENANT_ID = cfg.tenantId;
+
+      serviceConfig = {
+        # The service starts sessions for different users.
+        User = "root";
+        Restart = "on-failure";
+        ExecStart = "${cfg.package}/bin/agent";
+      };
+    };
+
+    environment.systemPackages = [ cfg.package ];
+  };
+}
diff --git a/nixos/modules/services/networking/wakeonlan.nix b/nixos/modules/services/networking/wakeonlan.nix
index ebfba263cd8..35ff67937fc 100644
--- a/nixos/modules/services/networking/wakeonlan.nix
+++ b/nixos/modules/services/networking/wakeonlan.nix
@@ -51,6 +51,6 @@ in
 
   ###### implementation
 
-  config.powerManagement.powerDownCommands = lines;
+  config.powerManagement.powerUpCommands = lines;
 
 }
diff --git a/nixos/modules/services/networking/wpa_supplicant.nix b/nixos/modules/services/networking/wpa_supplicant.nix
index 3cfcb535ef5..39513987903 100644
--- a/nixos/modules/services/networking/wpa_supplicant.nix
+++ b/nixos/modules/services/networking/wpa_supplicant.nix
@@ -233,10 +233,9 @@ in {
       path = [ pkgs.wpa_supplicant ];
 
       script = ''
-        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."
+        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}"
         ${if ifaces == [] then ''
           for i in $(cd /sys/class/net && echo *); do
@@ -249,10 +248,6 @@ in {
               fi
             fi
           done
-          if [ -z "$args" ]; then
-            echo >&2 "<3>No wireless interfaces detected (yet)."
-            exit 1
-          fi
         '' else ''
           args="${concatMapStringsSep " -N " (i: "-i${i} $iface_args") ifaces}"
         ''}
@@ -266,7 +261,7 @@ in {
 
     # Restart wpa_supplicant when a wlan device appears or disappears.
     services.udev.extraRules = ''
-      ACTION=="add|remove", SUBSYSTEM=="net", ENV{DEVTYPE}=="wlan", RUN+="/run/current-system/systemd/bin/systemctl restart wpa_supplicant.service"
+      ACTION=="add|remove", SUBSYSTEM=="net", ENV{DEVTYPE}=="wlan", RUN+="/run/current-system/systemd/bin/systemctl try-restart wpa_supplicant.service"
     '';
   };
 
diff --git a/nixos/modules/services/security/tor.nix b/nixos/modules/services/security/tor.nix
index 1cceee065b1..390dcfccfec 100644
--- a/nixos/modules/services/security/tor.nix
+++ b/nixos/modules/services/security/tor.nix
@@ -1,297 +1,300 @@
 { config, lib, pkgs, ... }:
 
+with builtins;
 with lib;
 
 let
   cfg = config.services.tor;
-  torDirectory = "/var/lib/tor";
-  torRunDirectory = "/run/tor";
-
-  opt    = name: value: optionalString (value != null) "${name} ${value}";
-  optint = name: value: optionalString (value != null && value != 0)    "${name} ${toString value}";
-
-  isolationOptions = {
-    type = types.listOf (types.enum [
-      "IsolateClientAddr"
-      "IsolateSOCKSAuth"
-      "IsolateClientProtocol"
-      "IsolateDestPort"
-      "IsolateDestAddr"
+  stateDir = "/var/lib/tor";
+  runDir = "/run/tor";
+  descriptionGeneric = option: ''
+    See <link xlink:href="https://2019.www.torproject.org/docs/tor-manual.html.en#${option}">torrc manual</link>.
+  '';
+  bindsPrivilegedPort =
+    any (p0:
+      let p1 = if p0 ? "port" then p0.port else p0; in
+      if p1 == "auto" then false
+      else let p2 = if isInt p1 then p1 else toInt p1; in
+        p1 != null && 0 < p2 && p2 < 1024)
+    (flatten [
+      cfg.settings.ORPort
+      cfg.settings.DirPort
+      cfg.settings.DNSPort
+      cfg.settings.ExtORPort
+      cfg.settings.HTTPTunnelPort
+      cfg.settings.NATDPort
+      cfg.settings.SOCKSPort
+      cfg.settings.TransPort
     ]);
+  optionBool = optionName: mkOption {
+    type = with types; nullOr bool;
+    default = null;
+    description = descriptionGeneric optionName;
+  };
+  optionInt = optionName: mkOption {
+    type = with types; nullOr int;
+    default = null;
+    description = descriptionGeneric optionName;
+  };
+  optionString = optionName: mkOption {
+    type = with types; nullOr str;
+    default = null;
+    description = descriptionGeneric optionName;
+  };
+  optionStrings = optionName: mkOption {
+    type = with types; listOf str;
     default = [];
-    example = [
-      "IsolateClientAddr"
-      "IsolateSOCKSAuth"
-      "IsolateClientProtocol"
-      "IsolateDestPort"
-      "IsolateDestAddr"
+    description = descriptionGeneric optionName;
+  };
+  optionAddress = mkOption {
+    type = with types; nullOr str;
+    default = null;
+    example = "0.0.0.0";
+    description = ''
+      IPv4 or IPv6 (if between brackets) address.
+    '';
+  };
+  optionUnix = mkOption {
+    type = with types; nullOr path;
+    default = null;
+    description = ''
+      Unix domain socket path to use.
+    '';
+  };
+  optionPort = mkOption {
+    type = with types; nullOr (oneOf [port (enum ["auto"])]);
+    default = null;
+  };
+  optionPorts = optionName: mkOption {
+    type = with types; listOf port;
+    default = [];
+    description = descriptionGeneric optionName;
+  };
+  optionIsolablePort = with types; oneOf [
+    port (enum ["auto"])
+    (submodule ({config, ...}: {
+      options = {
+        addr = optionAddress;
+        port = optionPort;
+        flags = optionFlags;
+        SessionGroup = mkOption { type = nullOr int; default = null; };
+      } // genAttrs isolateFlags (name: mkOption { type = types.bool; default = false; });
+      config = {
+        flags = filter (name: config.${name} == true) isolateFlags ++
+                optional (config.SessionGroup != null) "SessionGroup=${toString config.SessionGroup}";
+      };
+    }))
+  ];
+  optionIsolablePorts = optionName: mkOption {
+    default = [];
+    type = with types; either optionIsolablePort (listOf optionIsolablePort);
+    description = descriptionGeneric optionName;
+  };
+  isolateFlags = [
+    "IsolateClientAddr"
+    "IsolateClientProtocol"
+    "IsolateDestAddr"
+    "IsolateDestPort"
+    "IsolateSOCKSAuth"
+    "KeepAliveIsolateSOCKSAuth"
+  ];
+  optionSOCKSPort = doConfig: let
+    flags = [
+      "CacheDNS" "CacheIPv4DNS" "CacheIPv6DNS" "GroupWritable" "IPv6Traffic"
+      "NoDNSRequest" "NoIPv4Traffic" "NoOnionTraffic" "OnionTrafficOnly"
+      "PreferIPv6" "PreferIPv6Automap" "PreferSOCKSNoAuth" "UseDNSCache"
+      "UseIPv4Cache" "UseIPv6Cache" "WorldWritable"
+    ] ++ isolateFlags;
+    in with types; oneOf [
+      port (submodule ({config, ...}: {
+        options = {
+          unix = optionUnix;
+          addr = optionAddress;
+          port = optionPort;
+          flags = optionFlags;
+          SessionGroup = mkOption { type = nullOr int; default = null; };
+        } // genAttrs flags (name: mkOption { type = types.bool; default = false; });
+        config = mkIf doConfig { # Only add flags in SOCKSPort to avoid duplicates
+          flags = filter (name: config.${name} == true) flags ++
+                  optional (config.SessionGroup != null) "SessionGroup=${toString config.SessionGroup}";
+        };
+      }))
     ];
-    description = "Tor isolation options";
+  optionFlags = mkOption {
+    type = with types; listOf str;
+    default = [];
+  };
+  optionORPort = optionName: mkOption {
+    default = [];
+    example = 443;
+    type = with types; oneOf [port (enum ["auto"]) (listOf (oneOf [
+      port
+      (enum ["auto"])
+      (submodule ({config, ...}:
+        let flags = [ "IPv4Only" "IPv6Only" "NoAdvertise" "NoListen" ];
+        in {
+        options = {
+          addr = optionAddress;
+          port = optionPort;
+          flags = optionFlags;
+        } // genAttrs flags (name: mkOption { type = types.bool; default = false; });
+        config = {
+          flags = filter (name: config.${name} == true) flags;
+        };
+      }))
+    ]))];
+    description = descriptionGeneric optionName;
+  };
+  optionBandwith = optionName: mkOption {
+    type = with types; nullOr (either int str);
+    default = null;
+    description = descriptionGeneric optionName;
+  };
+  optionPath = optionName: mkOption {
+    type = with types; nullOr path;
+    default = null;
+    description = descriptionGeneric optionName;
   };
 
-
-  torRc = ''
-    User tor
-    DataDirectory ${torDirectory}
-    ${optionalString cfg.enableGeoIP ''
-      GeoIPFile ${cfg.package.geoip}/share/tor/geoip
-      GeoIPv6File ${cfg.package.geoip}/share/tor/geoip6
-    ''}
-
-    ${optint "ControlPort" cfg.controlPort}
-    ${optionalString cfg.controlSocket.enable "ControlPort unix:${torRunDirectory}/control GroupWritable RelaxDirModeCheck"}
-  ''
-  # Client connection config
-  + optionalString cfg.client.enable ''
-    SOCKSPort ${cfg.client.socksListenAddress} ${toString cfg.client.socksIsolationOptions}
-    SOCKSPort ${cfg.client.socksListenAddressFaster}
-    ${opt "SocksPolicy" cfg.client.socksPolicy}
-
-    ${optionalString cfg.client.transparentProxy.enable ''
-    TransPort ${cfg.client.transparentProxy.listenAddress} ${toString cfg.client.transparentProxy.isolationOptions}
-    ''}
-
-    ${optionalString cfg.client.dns.enable ''
-    DNSPort ${cfg.client.dns.listenAddress} ${toString cfg.client.dns.isolationOptions}
-    AutomapHostsOnResolve 1
-    AutomapHostsSuffixes ${concatStringsSep "," cfg.client.dns.automapHostsSuffixes}
-    ''}
-  ''
-  # Explicitly disable the SOCKS server if the client is disabled.  In
-  # particular, this makes non-anonymous hidden services possible.
-  + optionalString (! cfg.client.enable) ''
-  SOCKSPort 0
-  ''
-  # Relay config
-  + optionalString cfg.relay.enable ''
-    ORPort ${toString cfg.relay.port}
-    ${opt "Address" cfg.relay.address}
-    ${opt "Nickname" cfg.relay.nickname}
-    ${opt "ContactInfo" cfg.relay.contactInfo}
-
-    ${optint "RelayBandwidthRate" cfg.relay.bandwidthRate}
-    ${optint "RelayBandwidthBurst" cfg.relay.bandwidthBurst}
-    ${opt "AccountingMax" cfg.relay.accountingMax}
-    ${opt "AccountingStart" cfg.relay.accountingStart}
-
-    ${if (cfg.relay.role == "exit") then
-        opt "ExitPolicy" cfg.relay.exitPolicy
-      else
-        "ExitPolicy reject *:*"}
-
-    ${optionalString (elem cfg.relay.role ["bridge" "private-bridge"]) ''
-      BridgeRelay 1
-      ServerTransportPlugin ${concatStringsSep "," cfg.relay.bridgeTransports} exec ${pkgs.obfs4}/bin/obfs4proxy managed
-      ExtORPort auto
-      ${optionalString (cfg.relay.role == "private-bridge") ''
-        ExtraInfoStatistics 0
-        PublishServerDescriptor 0
-      ''}
-    ''}
-  ''
-  # Hidden services
-  + concatStrings (flip mapAttrsToList cfg.hiddenServices (n: v: ''
-    HiddenServiceDir ${torDirectory}/onion/${v.name}
-    ${optionalString (v.version != null) "HiddenServiceVersion ${toString v.version}"}
-    ${flip concatMapStrings v.map (p: ''
-      HiddenServicePort ${toString p.port} ${p.destination}
-    '')}
-    ${optionalString (v.authorizeClient != null) ''
-      HiddenServiceAuthorizeClient ${v.authorizeClient.authType} ${concatStringsSep "," v.authorizeClient.clientNames}
-    ''}
-  ''))
-  + cfg.extraConfig;
-
-  torRcFile = pkgs.writeText "torrc" torRc;
-
+  mkValueString = k: v:
+    if v == null then ""
+    else if isBool v then
+      (if v then "1" else "0")
+    else if v ? "unix" && v.unix != null then
+      "unix:"+v.unix +
+      optionalString (v ? "flags") (" " + concatStringsSep " " v.flags)
+    else if v ? "port" && v.port != null then
+      optionalString (v ? "addr" && v.addr != null) "${v.addr}:" +
+      toString v.port +
+      optionalString (v ? "flags") (" " + concatStringsSep " " v.flags)
+    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
+    else generators.mkValueStringDefault {} v;
+  genTorrc = settings:
+    generators.toKeyValue {
+      listsAsDuplicateKeys = true;
+      mkKeyValue = k: generators.mkKeyValueDefault { mkValueString = mkValueString k; } " " k;
+    }
+    (lib.mapAttrs (k: v:
+      # Not necesssary, but prettier rendering
+      if elem k [ "AutomapHostsSuffixes" "DirPolicy" "ExitPolicy" "SocksPolicy" ]
+      && v != []
+      then concatStringsSep "," v
+      else v)
+    (lib.filterAttrs (k: v: !(v == null || v == ""))
+    settings));
+  torrc = pkgs.writeText "torrc" (
+    genTorrc cfg.settings +
+    concatStrings (mapAttrsToList (name: onion:
+      "HiddenServiceDir ${onion.path}\n" +
+      genTorrc onion.settings) cfg.relay.onionServices)
+  );
 in
 {
   imports = [
-    (mkRemovedOptionModule [ "services" "tor" "client" "privoxy" "enable" ] ''
-      Use services.privoxy.enable and services.privoxy.enableTor instead.
-    '')
-    (mkRenamedOptionModule [ "services" "tor" "relay" "portSpec" ] [ "services" "tor" "relay" "port" ])
+    (mkRenamedOptionModule [ "services" "tor" "client" "dns" "automapHostsSuffixes" ] [ "services" "tor" "settings" "AutomapHostsSuffixes" ])
+    (mkRemovedOptionModule [ "services" "tor" "client" "dns" "isolationOptions" ] "Use services.tor.settings.DNSPort instead.")
+    (mkRemovedOptionModule [ "services" "tor" "client" "dns" "listenAddress" ] "Use services.tor.settings.DNSPort instead.")
+    (mkRemovedOptionModule [ "services" "tor" "client" "privoxy" "enable" ] "Use services.privoxy.enable and services.privoxy.enableTor instead.")
+    (mkRemovedOptionModule [ "services" "tor" "client" "socksIsolationOptions" ] "Use services.tor.settings.SOCKSPort instead.")
+    (mkRemovedOptionModule [ "services" "tor" "client" "socksListenAddressFaster" ] "Use services.tor.settings.SOCKSPort instead.")
+    (mkRenamedOptionModule [ "services" "tor" "client" "socksPolicy" ] [ "services" "tor" "settings" "SocksPolicy" ])
+    (mkRemovedOptionModule [ "services" "tor" "client" "transparentProxy" "isolationOptions" ] "Use services.tor.settings.TransPort instead.")
+    (mkRemovedOptionModule [ "services" "tor" "client" "transparentProxy" "listenAddress" ] "Use services.tor.settings.TransPort instead.")
+    (mkRenamedOptionModule [ "services" "tor" "controlPort" ] [ "services" "tor" "settings" "ControlPort" ])
+    (mkRemovedOptionModule [ "services" "tor" "extraConfig" ] "Plese use services.tor.settings instead.")
+    (mkRenamedOptionModule [ "services" "tor" "hiddenServices" ] [ "services" "tor" "relay" "onionServices" ])
+    (mkRenamedOptionModule [ "services" "tor" "relay" "accountingMax" ] [ "services" "tor" "settings" "AccountingMax" ])
+    (mkRenamedOptionModule [ "services" "tor" "relay" "accountingStart" ] [ "services" "tor" "settings" "AccountingStart" ])
+    (mkRenamedOptionModule [ "services" "tor" "relay" "address" ] [ "services" "tor" "settings" "Address" ])
+    (mkRenamedOptionModule [ "services" "tor" "relay" "bandwidthBurst" ] [ "services" "tor" "settings" "BandwidthBurst" ])
+    (mkRenamedOptionModule [ "services" "tor" "relay" "bandwidthRate" ] [ "services" "tor" "settings" "BandwidthRate" ])
+    (mkRenamedOptionModule [ "services" "tor" "relay" "bridgeTransports" ] [ "services" "tor" "settings" "ServerTransportPlugin" "transports" ])
+    (mkRenamedOptionModule [ "services" "tor" "relay" "contactInfo" ] [ "services" "tor" "settings" "ContactInfo" ])
+    (mkRenamedOptionModule [ "services" "tor" "relay" "exitPolicy" ] [ "services" "tor" "settings" "ExitPolicy" ])
     (mkRemovedOptionModule [ "services" "tor" "relay" "isBridge" ] "Use services.tor.relay.role instead.")
     (mkRemovedOptionModule [ "services" "tor" "relay" "isExit" ] "Use services.tor.relay.role instead.")
+    (mkRenamedOptionModule [ "services" "tor" "relay" "nickname" ] [ "services" "tor" "settings" "Nickname" ])
+    (mkRenamedOptionModule [ "services" "tor" "relay" "port" ] [ "services" "tor" "settings" "ORPort" ])
+    (mkRenamedOptionModule [ "services" "tor" "relay" "portSpec" ] [ "services" "tor" "settings" "ORPort" ])
   ];
 
   options = {
     services.tor = {
-      enable = mkOption {
-        type = types.bool;
-        default = false;
-        description = ''
-          Enable the Tor daemon. By default, the daemon is run without
-          relay, exit, bridge or client connectivity.
-        '';
-      };
+      enable = mkEnableOption ''Tor daemon.
+        By default, the daemon is run without
+        relay, exit, bridge or client connectivity'';
+
+      openFirewall = mkEnableOption "opening of the relay port(s) in the firewall";
 
       package = mkOption {
         type = types.package;
         default = pkgs.tor;
         defaultText = "pkgs.tor";
         example = literalExample "pkgs.tor";
-        description = ''
-          Tor package to use
-        '';
+        description = "Tor package to use.";
       };
 
-      enableGeoIP = mkOption {
-        type = types.bool;
-        default = true;
-        description = ''
-          Whenever to configure Tor daemon to use GeoIP databases.
+      enableGeoIP = mkEnableOption ''use of GeoIP databases.
+        Disabling this will disable by-country statistics for bridges and relays
+        and some client and third-party software functionality'' // { default = true; };
 
-          Disabling this will disable by-country statistics for
-          bridges and relays and some client and third-party software
-          functionality.
-        '';
-      };
-
-      extraConfig = mkOption {
-        type = types.lines;
-        default = "";
-        description = ''
-          Extra configuration. Contents will be added verbatim to the
-          configuration file at the end.
-        '';
-      };
-
-      controlPort = mkOption {
-        type = types.nullOr (types.either types.int types.str);
-        default = null;
-        example = 9051;
-        description = ''
-          If set, Tor will accept connections on the specified port
-          and allow them to control the tor process.
-        '';
-      };
-
-      controlSocket = {
-        enable = mkOption {
-          type = types.bool;
-          default = false;
-          description = ''
-            Whether to enable Tor control socket. Control socket is created
-            in <literal>${torRunDirectory}/control</literal>
-          '';
-        };
-      };
+      controlSocket.enable = mkEnableOption ''control socket,
+        created in <literal>${runDir}/control</literal>'';
 
       client = {
-        enable = mkOption {
-          type = types.bool;
-          default = false;
-          description = ''
-            Whether to enable Tor daemon to route application
-            connections.  You might want to disable this if you plan
-            running a dedicated Tor relay.
-          '';
-        };
+        enable = mkEnableOption ''the routing of application connections.
+          You might want to disable this if you plan running a dedicated Tor relay'';
 
-        socksListenAddress = mkOption {
-          type = types.str;
-          default = "127.0.0.1:9050";
-          example = "192.168.0.1:9100";
-          description = ''
-            Bind to this address to listen for connections from
-            Socks-speaking applications. Provides strong circuit
-            isolation, separate circuit per IP address.
-          '';
-        };
+        transparentProxy.enable = mkEnableOption "transparent proxy";
+        dns.enable = mkEnableOption "DNS resolver";
 
-        socksListenAddressFaster = mkOption {
-          type = types.str;
-          default = "127.0.0.1:9063";
-          example = "192.168.0.1:9101";
+        socksListenAddress = mkOption {
+          type = optionSOCKSPort false;
+          default = {addr = "127.0.0.1"; port = 9050; IsolateDestAddr = true;};
+          example = {addr = "192.168.0.1"; port = 9090; IsolateDestAddr = true;};
           description = ''
             Bind to this address to listen for connections from
-            Socks-speaking applications. Same as
-            <option>socksListenAddress</option> but uses weaker
-            circuit isolation to provide performance suitable for a
-            web browser.
-           '';
-         };
-
-        socksPolicy = mkOption {
-          type = types.nullOr types.str;
-          default = null;
-          example = "accept 192.168.0.0/16, reject *";
-          description = ''
-            Entry policies to allow/deny SOCKS requests based on IP
-            address. First entry that matches wins. If no SocksPolicy
-            is set, we accept all (and only) requests from
-            <option>socksListenAddress</option>.
+            Socks-speaking applications.
           '';
         };
 
-        socksIsolationOptions = mkOption (isolationOptions // {
-          default = ["IsolateDestAddr"];
-        });
-
-        transparentProxy = {
-          enable = mkOption {
-            type = types.bool;
-            default = false;
-            description = "Whether to enable tor transparent proxy";
-          };
-
-          listenAddress = mkOption {
-            type = types.str;
-            default = "127.0.0.1:9040";
-            example = "192.168.0.1:9040";
-            description = ''
-              Bind transparent proxy to this address.
-            '';
-          };
-
-          isolationOptions = mkOption isolationOptions;
-        };
-
-        dns = {
-          enable = mkOption {
-            type = types.bool;
-            default = false;
-            description = "Whether to enable tor dns resolver";
-          };
-
-          listenAddress = mkOption {
-            type = types.str;
-            default = "127.0.0.1:9053";
-            example = "192.168.0.1:9053";
-            description = ''
-              Bind tor dns to this address.
-            '';
-          };
-
-          isolationOptions = mkOption isolationOptions;
-
-          automapHostsSuffixes = mkOption {
-            type = types.listOf types.str;
-            default = [".onion" ".exit"];
-            example = [".onion"];
-            description = "List of suffixes to use with automapHostsOnResolve";
+        onionServices = mkOption {
+          description = descriptionGeneric "HiddenServiceDir";
+          default = {};
+          example = {
+            "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" = {
+              clientAuthorizations = ["/run/keys/tor/alice.prv.x25519"];
+            };
           };
+          type = types.attrsOf (types.submodule ({name, config, ...}: {
+            options.clientAuthorizations = mkOption {
+              description = ''
+                Clients' authorizations for a v3 onion service,
+                as a list of files containing each one private key, in the format:
+                <screen>descriptor:x25519:&lt;base32-private-key&gt;</screen>
+              '' + descriptionGeneric "_client_authorization";
+              type = with types; listOf path;
+              default = [];
+              example = ["/run/keys/tor/alice.prv.x25519"];
+            };
+          }));
         };
       };
 
       relay = {
-        enable = mkOption {
-          type = types.bool;
-          default = false;
-          description = ''
-            Whether to enable relaying TOR traffic for others.
+        enable = mkEnableOption ''relaying of Tor traffic for others.
 
-            See <link xlink:href="https://www.torproject.org/docs/tor-doc-relay" />
-            for details.
+          See <link xlink:href="https://www.torproject.org/docs/tor-doc-relay" />
+          for details.
 
-            Setting this to true requires setting
-            <option>services.tor.relay.role</option>
-            and
-            <option>services.tor.relay.port</option>
-            options.
-          '';
-        };
+          Setting this to true requires setting
+          <option>services.tor.relay.role</option>
+          and
+          <option>services.tor.settings.ORPort</option>
+          options'';
 
         role = mkOption {
           type = types.enum [ "exit" "relay" "bridge" "private-bridge" ];
@@ -310,13 +313,13 @@ in
                 <important><para>
                   Running an exit relay may expose you to abuse
                   complaints. See
-                  <link xlink:href="https://www.torproject.org/faq.html.en#ExitPolicies" />
+                  <link xlink:href="https://www.torproject.org/faq.html.en#ExitPolicies"/>
                   for more info.
                 </para></important>
 
                 <para>
                   You can specify which services Tor users may access via
-                  your exit relay using <option>exitPolicy</option> option.
+                  your exit relay using <option>settings.ExitPolicy</option> option.
                 </para>
               </listitem>
             </varlistentry>
@@ -369,15 +372,14 @@ in
                 <important>
                   <para>
                     WARNING: THE FOLLOWING PARAGRAPH IS NOT LEGAL ADVICE.
-                    Consult with your lawer when in doubt.
+                    Consult with your lawyer when in doubt.
                   </para>
 
                   <para>
                     This role should be safe to use in most situations
                     (unless the act of forwarding traffic for others is
                     a punishable offence under your local laws, which
-                    would be pretty insane as it would make ISP
-                    illegal).
+                    would be pretty insane as it would make ISP illegal).
                   </para>
                 </important>
 
@@ -404,7 +406,7 @@ in
 
                 <para>
                   Use this if you want to run a private bridge, for
-                  example because you'll give out your bridge address
+                  example because you'll give out your bridge addr
                   manually to your friends.
                 </para>
 
@@ -426,269 +428,393 @@ in
           '';
         };
 
-        bridgeTransports = mkOption {
-          type = types.listOf types.str;
-          default = ["obfs4"];
-          example = ["obfs2" "obfs3" "obfs4" "scramblesuit"];
-          description = "List of pluggable transports";
-        };
-
-        nickname = mkOption {
-          type = types.str;
-          default = "anonymous";
-          description = ''
-            A unique handle for your TOR relay.
-          '';
-        };
-
-        contactInfo = mkOption {
-          type = types.nullOr types.str;
-          default = null;
-          example = "admin@relay.com";
-          description = ''
-            Contact information for the relay owner (e.g. a mail
-            address and GPG key ID).
-          '';
-        };
-
-        accountingMax = mkOption {
-          type = types.nullOr types.str;
-          default = null;
-          example = "450 GBytes";
-          description = ''
-            Specify maximum bandwidth allowed during an accounting period. This
-            allows you to limit overall tor bandwidth over some time period.
-            See the <literal>AccountingMax</literal> option by looking at the
-            tor manual <citerefentry><refentrytitle>tor</refentrytitle>
-            <manvolnum>1</manvolnum></citerefentry> for more.
-
-            Note this limit applies individually to upload and
-            download; if you specify <literal>"500 GBytes"</literal>
-            here, then you may transfer up to 1 TBytes of overall
-            bandwidth (500 GB upload, 500 GB download).
-          '';
-        };
-
-        accountingStart = mkOption {
-          type = types.nullOr types.str;
-          default = null;
-          example = "month 1 1:00";
-          description = ''
-            Specify length of an accounting period. This allows you to limit
-            overall tor bandwidth over some time period. See the
-            <literal>AccountingStart</literal> option by looking at the tor
-            manual <citerefentry><refentrytitle>tor</refentrytitle>
-            <manvolnum>1</manvolnum></citerefentry> for more.
-          '';
-        };
-
-        bandwidthRate = mkOption {
-          type = types.nullOr types.int;
-          default = null;
-          example = 100;
-          description = ''
-            Specify this to limit the bandwidth usage of relayed (server)
-            traffic. Your own traffic is still unthrottled. Units: bytes/second.
-          '';
-        };
-
-        bandwidthBurst = mkOption {
-          type = types.nullOr types.int;
-          default = cfg.relay.bandwidthRate;
-          example = 200;
-          description = ''
-            Specify this to allow bursts of the bandwidth usage of relayed (server)
-            traffic. The average usage will still be as specified in relayBandwidthRate.
-            Your own traffic is still unthrottled. Units: bytes/second.
-          '';
-        };
-
-        address = mkOption {
-          type    = types.nullOr types.str;
-          default = null;
-          example = "noname.example.com";
-          description = ''
-            The IP address or full DNS name for advertised address of your relay.
-            Leave unset and Tor will guess.
-          '';
-        };
-
-        port = mkOption {
-          type    = types.either types.int types.str;
-          example = 143;
-          description = ''
-            What port to advertise for Tor connections. This corresponds to the
-            <literal>ORPort</literal> section in the Tor manual; see
-            <citerefentry><refentrytitle>tor</refentrytitle>
-            <manvolnum>1</manvolnum></citerefentry> for more details.
-
-            At a minimum, you should just specify the port for the
-            relay to listen on; a common one like 143, 22, 80, or 443
-            to help Tor users who may have very restrictive port-based
-            firewalls.
-          '';
-        };
-
-        exitPolicy = mkOption {
-          type    = types.nullOr types.str;
-          default = null;
-          example = "accept *:6660-6667,reject *:*";
-          description = ''
-            A comma-separated list of exit policies. They're
-            considered first to last, and the first match wins. If you
-            want to _replace_ the default exit policy, end this with
-            either a reject *:* or an accept *:*. Otherwise, you're
-            _augmenting_ (prepending to) the default exit policy.
-            Leave commented to just use the default, which is
-            available in the man page or at
-            <link xlink:href="https://www.torproject.org/documentation.html" />.
-
-            Look at
-            <link xlink:href="https://www.torproject.org/faq-abuse.html#TypicalAbuses" />
-            for issues you might encounter if you use the default
-            exit policy.
-
-            If certain IPs and ports are blocked externally, e.g. by
-            your firewall, you should update your exit policy to
-            reflect this -- otherwise Tor users will be told that
-            those destinations are down.
-          '';
+        onionServices = mkOption {
+          description = descriptionGeneric "HiddenServiceDir";
+          default = {};
+          example = {
+            "example.org/www" = {
+              map = [ 80 ];
+              authorizedClients = [
+                "descriptor:x25519:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+              ];
+            };
+          };
+          type = types.attrsOf (types.submodule ({name, config, ...}: {
+            options.path = mkOption {
+              type = types.path;
+              description = ''
+                Path where to store the data files of the hidden service.
+                If the <option>secretKey</option> is null
+                this defaults to <literal>${stateDir}/onion/$onion</literal>,
+                otherwise to <literal>${runDir}/onion/$onion</literal>.
+              '';
+            };
+            options.secretKey = mkOption {
+              type = with types; nullOr path;
+              default = null;
+              example = "/run/keys/tor/onion/expyuzz4wqqyqhjn/hs_ed25519_secret_key";
+              description = ''
+                Secret key of the onion service.
+                If null, Tor reuses any preexisting secret key (in <option>path</option>)
+                or generates a new one.
+                The associated public key and hostname are deterministically regenerated
+                from this file if they do not exist.
+              '';
+            };
+            options.authorizeClient = mkOption {
+              description = descriptionGeneric "HiddenServiceAuthorizeClient";
+              default = null;
+              type = types.nullOr (types.submodule ({...}: {
+                options = {
+                  authType = mkOption {
+                    type = types.enum [ "basic" "stealth" ];
+                    description = ''
+                      Either <literal>"basic"</literal> for a general-purpose authorization protocol
+                      or <literal>"stealth"</literal> for a less scalable protocol
+                      that also hides service activity from unauthorized clients.
+                    '';
+                  };
+                  clientNames = mkOption {
+                    type = with types; nonEmptyListOf (strMatching "[A-Za-z0-9+-_]+");
+                    description = ''
+                      Only clients that are listed here are authorized to access the hidden service.
+                      Generated authorization data can be found in <filename>${stateDir}/onion/$name/hostname</filename>.
+                      Clients need to put this authorization data in their configuration file using
+                      <xref linkend="opt-services.tor.settings.HidServAuth"/>.
+                    '';
+                  };
+                };
+              }));
+            };
+            options.authorizedClients = mkOption {
+              description = ''
+                Authorized clients for a v3 onion service,
+                as a list of public key, in the format:
+                <screen>descriptor:x25519:&lt;base32-public-key&gt;</screen>
+              '' + descriptionGeneric "_client_authorization";
+              type = with types; listOf str;
+              default = [];
+              example = ["descriptor:x25519:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"];
+            };
+            options.map = mkOption {
+              description = descriptionGeneric "HiddenServicePort";
+              type = with types; listOf (oneOf [
+                port (submodule ({...}: {
+                  options = {
+                    port = optionPort;
+                    target = mkOption {
+                      default = null;
+                      type = nullOr (submodule ({...}: {
+                        options = {
+                          unix = optionUnix;
+                          addr = optionAddress;
+                          port = optionPort;
+                        };
+                      }));
+                    };
+                  };
+                }))
+              ]);
+              apply = map (v: if isInt v then {port=v; target=null;} else v);
+            };
+            options.version = mkOption {
+              description = descriptionGeneric "HiddenServiceVersion";
+              type = with types; nullOr (enum [2 3]);
+              default = null;
+            };
+            options.settings = mkOption {
+              description = ''
+                Settings of the onion service.
+              '' + descriptionGeneric "_hidden_service_options";
+              default = {};
+              type = types.submodule {
+                freeformType = with types;
+                  (attrsOf (nullOr (oneOf [str int bool (listOf str)]))) // {
+                    description = "settings option";
+                  };
+                options.HiddenServiceAllowUnknownPorts = optionBool "HiddenServiceAllowUnknownPorts";
+                options.HiddenServiceDirGroupReadable = optionBool "HiddenServiceDirGroupReadable";
+                options.HiddenServiceExportCircuitID = mkOption {
+                  description = descriptionGeneric "HiddenServiceExportCircuitID";
+                  type = with types; nullOr (enum ["haproxy"]);
+                  default = null;
+                };
+                options.HiddenServiceMaxStreams = mkOption {
+                  description = descriptionGeneric "HiddenServiceMaxStreams";
+                  type = with types; nullOr (ints.between 0 65535);
+                  default = null;
+                };
+                options.HiddenServiceMaxStreamsCloseCircuit = optionBool "HiddenServiceMaxStreamsCloseCircuit";
+                options.HiddenServiceNumIntroductionPoints = mkOption {
+                  description = descriptionGeneric "HiddenServiceNumIntroductionPoints";
+                  type = with types; nullOr (ints.between 0 20);
+                  default = null;
+                };
+                options.HiddenServiceSingleHopMode = optionBool "HiddenServiceSingleHopMode";
+                options.RendPostPeriod = optionString "RendPostPeriod";
+              };
+            };
+            config = {
+              path = mkDefault ((if config.secretKey == null then stateDir else runDir) + "/onion/${name}");
+              settings.HiddenServiceVersion = config.version;
+              settings.HiddenServiceAuthorizeClient =
+                if config.authorizeClient != null then
+                  config.authorizeClient.authType + " " +
+                  concatStringsSep "," config.authorizeClient.clientNames
+                else null;
+              settings.HiddenServicePort = map (p: mkValueString "" p.port + " " + mkValueString "" p.target) config.map;
+            };
+          }));
         };
       };
 
-      hiddenServices = mkOption {
+      settings = mkOption {
         description = ''
-          A set of static hidden services that terminate their Tor
-          circuits at this node.
-
-          Every element in this set declares a virtual onion host.
-
-          You can specify your onion address by putting corresponding
-          private key to an appropriate place in ${torDirectory}.
-
-          For services without private keys in ${torDirectory} Tor
-          daemon will generate random key pairs (which implies random
-          onion addresses) on restart. The latter could take a while,
-          please be patient.
-
-          <note><para>
-            Hidden services can be useful even if you don't intend to
-            actually <emphasis>hide</emphasis> them, since they can
-            also be seen as a kind of NAT traversal mechanism.
-
-            E.g. the example will make your sshd, whatever runs on
-            "8080" and your mail server available from anywhere where
-            the Tor network is available (which, with the help from
-            bridges, is pretty much everywhere), even if both client
-            and server machines are behind NAT you have no control
-            over.
-          </para></note>
+          See <link xlink:href="https://2019.www.torproject.org/docs/tor-manual.html.en">torrc manual</link>
+          for documentation.
         '';
         default = {};
-        example = literalExample ''
-          { "my-hidden-service-example".map = [
-              { port = 22; }                # map ssh port to this machine's ssh
-              { port = 80; toPort = 8080; } # map http port to whatever runs on 8080
-              { port = "sip"; toHost = "mail.example.com"; toPort = "imap"; } # because we can
-            ];
-          }
-        '';
-        type = types.attrsOf (types.submodule ({name, ...}: {
-          options = {
-
-             name = mkOption {
-               type = types.str;
-               description = ''
-                 Name of this tor hidden service.
-
-                 This is purely descriptive.
-
-                 After restarting Tor daemon you should be able to
-                 find your .onion address in
-                 <literal>${torDirectory}/onion/$name/hostname</literal>.
-               '';
-             };
-
-             map = mkOption {
-               default = [];
-               description = "Port mapping for this hidden service.";
-               type = types.listOf (types.submodule ({config, ...}: {
-                 options = {
-
-                   port = mkOption {
-                     type = types.either types.int types.str;
-                     example = 80;
-                     description = ''
-                       Hidden service port to "bind to".
-                     '';
-                   };
-
-                   destination = mkOption {
-                     internal = true;
-                     type = types.str;
-                     description = "Forward these connections where?";
-                   };
-
-                   toHost = mkOption {
-                     type = types.str;
-                     default = "127.0.0.1";
-                     description = "Mapping destination host.";
-                   };
-
-                   toPort = mkOption {
-                     type = types.either types.int types.str;
-                     example = 8080;
-                     description = "Mapping destination port.";
-                   };
-
-                 };
-
-                 config = {
-                   toPort = mkDefault config.port;
-                   destination = mkDefault "${config.toHost}:${toString config.toPort}";
-                 };
-               }));
-             };
-
-             authorizeClient = mkOption {
-               default = null;
-               description = "If configured, the hidden service is accessible for authorized clients only.";
-               type = types.nullOr (types.submodule ({...}: {
-
-                 options = {
-
-                   authType = mkOption {
-                     type = types.enum [ "basic" "stealth" ];
-                     description = ''
-                       Either <literal>"basic"</literal> for a general-purpose authorization protocol
-                       or <literal>"stealth"</literal> for a less scalable protocol
-                       that also hides service activity from unauthorized clients.
-                     '';
-                   };
-
-                   clientNames = mkOption {
-                     type = types.nonEmptyListOf (types.strMatching "[A-Za-z0-9+-_]+");
-                     description = ''
-                       Only clients that are listed here are authorized to access the hidden service.
-                       Generated authorization data can be found in <filename>${torDirectory}/onion/$name/hostname</filename>.
-                       Clients need to put this authorization data in their configuration file using <literal>HidServAuth</literal>.
-                     '';
-                   };
-                 };
-               }));
-             };
-
-             version = mkOption {
-               default = null;
-               description = "Rendezvous service descriptor version to publish for the hidden service. Currently, versions 2 and 3 are supported. (Default: 2)";
-               type = types.nullOr (types.enum [ 2 3 ]);
-             };
+        type = types.submodule {
+          freeformType = with types;
+            (attrsOf (nullOr (oneOf [str int bool (listOf str)]))) // {
+              description = "settings option";
+            };
+          options.Address = optionString "Address";
+          options.AssumeReachable = optionBool "AssumeReachable";
+          options.AccountingMax = optionBandwith "AccountingMax";
+          options.AccountingStart = optionString "AccountingStart";
+          options.AuthDirHasIPv6Connectivity = optionBool "AuthDirHasIPv6Connectivity";
+          options.AuthDirListBadExits = optionBool "AuthDirListBadExits";
+          options.AuthDirPinKeys = optionBool "AuthDirPinKeys";
+          options.AuthDirSharedRandomness = optionBool "AuthDirSharedRandomness";
+          options.AuthDirTestEd25519LinkKeys = optionBool "AuthDirTestEd25519LinkKeys";
+          options.AuthoritativeDirectory = optionBool "AuthoritativeDirectory";
+          options.AutomapHostsOnResolve = optionBool "AutomapHostsOnResolve";
+          options.AutomapHostsSuffixes = optionStrings "AutomapHostsSuffixes" // {
+            default = [".onion" ".exit"];
+            example = [".onion"];
           };
-
-          config = {
-            name = mkDefault name;
+          options.BandwidthBurst = optionBandwith "BandwidthBurst";
+          options.BandwidthRate = optionBandwith "BandwidthRate";
+          options.BridgeAuthoritativeDir = optionBool "BridgeAuthoritativeDir";
+          options.BridgeRecordUsageByCountry = optionBool "BridgeRecordUsageByCountry";
+          options.BridgeRelay = optionBool "BridgeRelay" // { default = false; };
+          options.CacheDirectory = optionPath "CacheDirectory";
+          options.CacheDirectoryGroupReadable = optionBool "CacheDirectoryGroupReadable"; # default is null and like "auto"
+          options.CellStatistics = optionBool "CellStatistics";
+          options.ClientAutoIPv6ORPort = optionBool "ClientAutoIPv6ORPort";
+          options.ClientDNSRejectInternalAddresses = optionBool "ClientDNSRejectInternalAddresses";
+          options.ClientOnionAuthDir = mkOption {
+            description = descriptionGeneric "ClientOnionAuthDir";
+            default = null;
+            type = with types; nullOr path;
+          };
+          options.ClientPreferIPv6DirPort = optionBool "ClientPreferIPv6DirPort"; # default is null and like "auto"
+          options.ClientPreferIPv6ORPort = optionBool "ClientPreferIPv6ORPort"; # default is null and like "auto"
+          options.ClientRejectInternalAddresses = optionBool "ClientRejectInternalAddresses";
+          options.ClientUseIPv4 = optionBool "ClientUseIPv4";
+          options.ClientUseIPv6 = optionBool "ClientUseIPv6";
+          options.ConnDirectionStatistics = optionBool "ConnDirectionStatistics";
+          options.ConstrainedSockets = optionBool "ConstrainedSockets";
+          options.ContactInfo = optionString "ContactInfo";
+          options.ControlPort = mkOption rec {
+            description = descriptionGeneric "ControlPort";
+            default = [];
+            example = [{port = 9051;}];
+            type = with types; oneOf [port (enum ["auto"]) (listOf (oneOf [
+              port (enum ["auto"]) (submodule ({config, ...}: let
+                flags = ["GroupWritable" "RelaxDirModeCheck" "WorldWritable"];
+                in {
+                options = {
+                  unix = optionUnix;
+                  flags = optionFlags;
+                  addr = optionAddress;
+                  port = optionPort;
+                } // genAttrs flags (name: mkOption { type = types.bool; default = false; });
+                config = {
+                  flags = filter (name: config.${name} == true) flags;
+                };
+              }))
+            ]))];
+          };
+          options.ControlPortFileGroupReadable= optionBool "ControlPortFileGroupReadable";
+          options.ControlPortWriteToFile = optionPath "ControlPortWriteToFile";
+          options.ControlSocket = optionPath "ControlSocket";
+          options.ControlSocketsGroupWritable = optionBool "ControlSocketsGroupWritable";
+          options.CookieAuthFile = optionPath "CookieAuthFile";
+          options.CookieAuthFileGroupReadable = optionBool "CookieAuthFileGroupReadable";
+          options.CookieAuthentication = optionBool "CookieAuthentication";
+          options.DataDirectory = optionPath "DataDirectory" // { default = stateDir; };
+          options.DataDirectoryGroupReadable = optionBool "DataDirectoryGroupReadable";
+          options.DirPortFrontPage = optionPath "DirPortFrontPage";
+          options.DirAllowPrivateAddresses = optionBool "DirAllowPrivateAddresses";
+          options.DormantCanceledByStartup = optionBool "DormantCanceledByStartup";
+          options.DormantOnFirstStartup = optionBool "DormantOnFirstStartup";
+          options.DormantTimeoutDisabledByIdleStreams = optionBool "DormantTimeoutDisabledByIdleStreams";
+          options.DirCache = optionBool "DirCache";
+          options.DirPolicy = mkOption {
+            description = descriptionGeneric "DirPolicy";
+            type = with types; listOf str;
+            default = [];
+            example = ["accept *:*"];
+          };
+          options.DirPort = optionORPort "DirPort";
+          options.DirReqStatistics = optionBool "DirReqStatistics";
+          options.DisableAllSwap = optionBool "DisableAllSwap";
+          options.DisableDebuggerAttachment = optionBool "DisableDebuggerAttachment";
+          options.DisableNetwork = optionBool "DisableNetwork";
+          options.DisableOOSCheck = optionBool "DisableOOSCheck";
+          options.DNSPort = optionIsolablePorts "DNSPort";
+          options.DoSCircuitCreationEnabled = optionBool "DoSCircuitCreationEnabled";
+          options.DoSConnectionEnabled = optionBool "DoSConnectionEnabled"; # default is null and like "auto"
+          options.DoSRefuseSingleHopClientRendezvous = optionBool "DoSRefuseSingleHopClientRendezvous";
+          options.DownloadExtraInfo = optionBool "DownloadExtraInfo";
+          options.EnforceDistinctSubnets = optionBool "EnforceDistinctSubnets";
+          options.EntryStatistics = optionBool "EntryStatistics";
+          options.ExitPolicy = optionStrings "ExitPolicy" // {
+            default = ["reject *:*"];
+            example = ["accept *:*"];
+          };
+          options.ExitPolicyRejectLocalInterfaces = optionBool "ExitPolicyRejectLocalInterfaces";
+          options.ExitPolicyRejectPrivate = optionBool "ExitPolicyRejectPrivate";
+          options.ExitPortStatistics = optionBool "ExitPortStatistics";
+          options.ExitRelay = optionBool "ExitRelay"; # default is null and like "auto"
+          options.ExtORPort = mkOption {
+            description = descriptionGeneric "ExtORPort";
+            default = null;
+            type = with types; nullOr (oneOf [
+              port (enum ["auto"]) (submodule ({...}: {
+                options = {
+                  addr = optionAddress;
+                  port = optionPort;
+                };
+              }))
+            ]);
+            apply = p: if isInt p || isString p then { port = p; } else p;
           };
-        }));
+          options.ExtORPortCookieAuthFile = optionPath "ExtORPortCookieAuthFile";
+          options.ExtORPortCookieAuthFileGroupReadable = optionBool "ExtORPortCookieAuthFileGroupReadable";
+          options.ExtendAllowPrivateAddresses = optionBool "ExtendAllowPrivateAddresses";
+          options.ExtraInfoStatistics = optionBool "ExtraInfoStatistics";
+          options.FascistFirewall = optionBool "FascistFirewall";
+          options.FetchDirInfoEarly = optionBool "FetchDirInfoEarly";
+          options.FetchDirInfoExtraEarly = optionBool "FetchDirInfoExtraEarly";
+          options.FetchHidServDescriptors = optionBool "FetchHidServDescriptors";
+          options.FetchServerDescriptors = optionBool "FetchServerDescriptors";
+          options.FetchUselessDescriptors = optionBool "FetchUselessDescriptors";
+          options.ReachableAddresses = optionStrings "ReachableAddresses";
+          options.ReachableDirAddresses = optionStrings "ReachableDirAddresses";
+          options.ReachableORAddresses = optionStrings "ReachableORAddresses";
+          options.GeoIPFile = optionPath "GeoIPFile";
+          options.GeoIPv6File = optionPath "GeoIPv6File";
+          options.GuardfractionFile = optionPath "GuardfractionFile";
+          options.HidServAuth = mkOption {
+            description = descriptionGeneric "HidServAuth";
+            default = [];
+            type = with types; listOf (oneOf [
+              (submodule {
+                options = {
+                  onion = mkOption {
+                    type = strMatching "[a-z2-7]{16}(\\.onion)?";
+                    description = "Onion address.";
+                    example = "xxxxxxxxxxxxxxxx.onion";
+                  };
+                  auth = mkOption {
+                    type = strMatching "[A-Za-z0-9+/]{22}";
+                    description = "Authentication cookie.";
+                  };
+                };
+              })
+            ]);
+          };
+          options.HiddenServiceNonAnonymousMode = optionBool "HiddenServiceNonAnonymousMode";
+          options.HiddenServiceStatistics = optionBool "HiddenServiceStatistics";
+          options.HSLayer2Nodes = optionStrings "HSLayer2Nodes";
+          options.HSLayer3Nodes = optionStrings "HSLayer3Nodes";
+          options.HTTPTunnelPort = optionIsolablePorts "HTTPTunnelPort";
+          options.IPv6Exit = optionBool "IPv6Exit";
+          options.KeyDirectory = optionPath "KeyDirectory";
+          options.KeyDirectoryGroupReadable = optionBool "KeyDirectoryGroupReadable";
+          options.LogMessageDomains = optionBool "LogMessageDomains";
+          options.LongLivedPorts = optionPorts "LongLivedPorts";
+          options.MainloopStats = optionBool "MainloopStats";
+          options.MaxAdvertisedBandwidth = optionBandwith "MaxAdvertisedBandwidth";
+          options.MaxCircuitDirtiness = optionInt "MaxCircuitDirtiness";
+          options.MaxClientCircuitsPending = optionInt "MaxClientCircuitsPending";
+          options.NATDPort = optionIsolablePorts "NATDPort";
+          options.NewCircuitPeriod = optionInt "NewCircuitPeriod";
+          options.Nickname = optionString "Nickname";
+          options.ORPort = optionORPort "ORPort";
+          options.OfflineMasterKey = optionBool "OfflineMasterKey";
+          options.OptimisticData = optionBool "OptimisticData"; # default is null and like "auto"
+          options.PaddingStatistics = optionBool "PaddingStatistics";
+          options.PerConnBWBurst = optionBandwith "PerConnBWBurst";
+          options.PerConnBWRate = optionBandwith "PerConnBWRate";
+          options.PidFile = optionPath "PidFile";
+          options.ProtocolWarnings = optionBool "ProtocolWarnings";
+          options.PublishHidServDescriptors = optionBool "PublishHidServDescriptors";
+          options.PublishServerDescriptor = mkOption {
+            description = descriptionGeneric "PublishServerDescriptor";
+            type = with types; nullOr (enum [false true 0 1 "0" "1" "v3" "bridge"]);
+            default = null;
+          };
+          options.ReducedExitPolicy = optionBool "ReducedExitPolicy";
+          options.RefuseUnknownExits = optionBool "RefuseUnknownExits"; # default is null and like "auto"
+          options.RejectPlaintextPorts = optionPorts "RejectPlaintextPorts";
+          options.RelayBandwidthBurst = optionBandwith "RelayBandwidthBurst";
+          options.RelayBandwidthRate = optionBandwith "RelayBandwidthRate";
+          #options.RunAsDaemon
+          options.Sandbox = optionBool "Sandbox";
+          options.ServerDNSAllowBrokenConfig = optionBool "ServerDNSAllowBrokenConfig";
+          options.ServerDNSAllowNonRFC953Hostnames = optionBool "ServerDNSAllowNonRFC953Hostnames";
+          options.ServerDNSDetectHijacking = optionBool "ServerDNSDetectHijacking";
+          options.ServerDNSRandomizeCase = optionBool "ServerDNSRandomizeCase";
+          options.ServerDNSResolvConfFile = optionPath "ServerDNSResolvConfFile";
+          options.ServerDNSSearchDomains = optionBool "ServerDNSSearchDomains";
+          options.ServerTransportPlugin = mkOption {
+            description = descriptionGeneric "ServerTransportPlugin";
+            default = null;
+            type = with types; nullOr (submodule ({...}: {
+              options = {
+                transports = mkOption {
+                  description = "List of pluggable transports.";
+                  type = listOf str;
+                  example = ["obfs2" "obfs3" "obfs4" "scramblesuit"];
+                };
+                exec = mkOption {
+                  type = types.str;
+                  description = "Command of pluggable transport.";
+                };
+              };
+            }));
+          };
+          options.SocksPolicy = optionStrings "SocksPolicy" // {
+            example = ["accept *:*"];
+          };
+          options.SOCKSPort = mkOption {
+            description = descriptionGeneric "SOCKSPort";
+            default = if cfg.settings.HiddenServiceNonAnonymousMode == true then [{port = 0;}] else [];
+            example = [{port = 9090;}];
+            type = types.listOf (optionSOCKSPort true);
+          };
+          options.TestingTorNetwork = optionBool "TestingTorNetwork";
+          options.TransPort = optionIsolablePorts "TransPort";
+          options.TransProxyType = mkOption {
+            description = descriptionGeneric "TransProxyType";
+            type = with types; nullOr (enum ["default" "TPROXY" "ipfw" "pf-divert"]);
+            default = null;
+          };
+          #options.TruncateLogFile
+          options.UnixSocksGroupWritable = optionBool "UnixSocksGroupWritable";
+          options.UseDefaultFallbackDirs = optionBool "UseDefaultFallbackDirs";
+          options.UseMicrodescriptors = optionBool "UseMicrodescriptors";
+          options.V3AuthUseLegacyKey = optionBool "V3AuthUseLegacyKey";
+          options.V3AuthoritativeDirectory = optionBool "V3AuthoritativeDirectory";
+          options.VersioningAuthoritativeDirectory = optionBool "VersioningAuthoritativeDirectory";
+          options.VirtualAddrNetworkIPv4 = optionString "VirtualAddrNetworkIPv4";
+          options.VirtualAddrNetworkIPv6 = optionString "VirtualAddrNetworkIPv6";
+          options.WarnPlaintextPorts = optionPorts "WarnPlaintextPorts";
+        };
       };
     };
   };
@@ -696,79 +822,216 @@ in
   config = mkIf cfg.enable {
     # Not sure if `cfg.relay.role == "private-bridge"` helps as tor
     # sends a lot of stats
-    warnings = optional (cfg.relay.enable && cfg.hiddenServices != {})
+    warnings = optional (cfg.settings.BridgeRelay &&
+      flatten (mapAttrsToList (n: o: o.map) cfg.relay.onionServices) != [])
       ''
         Running Tor hidden services on a public relay makes the
         presence of hidden services visible through simple statistical
         analysis of publicly available data.
+        See https://trac.torproject.org/projects/tor/ticket/8742
 
         You can safely ignore this warning if you don't intend to
         actually hide your hidden services. In either case, you can
         always create a container/VM with a separate Tor daemon instance.
-      '';
+      '' ++
+      flatten (mapAttrsToList (n: o:
+        optional (o.settings.HiddenServiceVersion == 2) [
+          (optional (o.settings.HiddenServiceExportCircuitID != null) ''
+            HiddenServiceExportCircuitID is used in the HiddenService: ${n}
+            but this option is only for v3 hidden services.
+          '')
+        ] ++
+        optional (o.settings.HiddenServiceVersion != 2) [
+          (optional (o.settings.HiddenServiceAuthorizeClient != null) ''
+            HiddenServiceAuthorizeClient is used in the HiddenService: ${n}
+            but this option is only for v2 hidden services.
+          '')
+          (optional (o.settings.RendPostPeriod != null) ''
+            RendPostPeriod is used in the HiddenService: ${n}
+            but this option is only for v2 hidden services.
+          '')
+        ]
+      ) cfg.relay.onionServices);
 
     users.groups.tor.gid = config.ids.gids.tor;
     users.users.tor =
       { description = "Tor Daemon User";
         createHome  = true;
-        home        = torDirectory;
+        home        = stateDir;
         group       = "tor";
         uid         = config.ids.uids.tor;
       };
 
-    # We have to do this instead of using RuntimeDirectory option in
-    # the service below because systemd has no way to set owners of
-    # RuntimeDirectory and putting this into the service below
-    # requires that service to relax it's sandbox since this needs
-    # writable /run
-    systemd.services.tor-init =
-      { description = "Tor Daemon Init";
-        wantedBy = [ "tor.service" ];
-        script = ''
-          install -m 0700 -o tor -g tor -d ${torDirectory} ${torDirectory}/onion
-          install -m 0750 -o tor -g tor -d ${torRunDirectory}
-        '';
-        serviceConfig = {
-          Type = "oneshot";
-          RemainAfterExit = true;
-        };
-      };
+    services.tor.settings = mkMerge [
+      (mkIf cfg.enableGeoIP {
+        GeoIPFile = "${cfg.package.geoip}/share/tor/geoip";
+        GeoIPv6File = "${cfg.package.geoip}/share/tor/geoip6";
+      })
+      (mkIf cfg.controlSocket.enable {
+        ControlPort = [ { unix = runDir + "/control"; GroupWritable=true; RelaxDirModeCheck=true; } ];
+      })
+      (mkIf cfg.relay.enable (
+        optionalAttrs (cfg.relay.role != "exit") {
+          ExitPolicy = mkForce ["reject *:*"];
+        } //
+        optionalAttrs (elem cfg.relay.role ["bridge" "private-bridge"]) {
+          BridgeRelay = true;
+          ExtORPort.port = mkDefault "auto";
+          ServerTransportPlugin.transports = mkDefault ["obfs4"];
+          ServerTransportPlugin.exec = mkDefault "${pkgs.obfs4}/bin/obfs4proxy managed";
+        } // optionalAttrs (cfg.relay.role == "private-bridge") {
+          ExtraInfoStatistics = false;
+          PublishServerDescriptor = false;
+        }
+      ))
+      (mkIf (!cfg.relay.enable) {
+        # Avoid surprises when leaving ORPort/DirPort configurations in cfg.settings,
+        # because it would still enable Tor as a relay,
+        # which can trigger all sort of problems when not carefully done,
+        # like the blocklisting of the machine's IP addresses
+        # by some hosting providers...
+        DirPort = mkForce [];
+        ORPort = mkForce [];
+        PublishServerDescriptor = mkForce false;
+      })
+      (mkIf cfg.client.enable (
+        { SOCKSPort = [ cfg.client.socksListenAddress ];
+        } // optionalAttrs cfg.client.transparentProxy.enable {
+          TransPort = [{ addr = "127.0.0.1"; port = 9040; }];
+        } // optionalAttrs cfg.client.dns.enable {
+          DNSPort = [{ addr = "127.0.0.1"; port = 9053; }];
+          AutomapHostsOnResolve = true;
+        } // optionalAttrs (flatten (mapAttrsToList (n: o: o.clientAuthorizations) cfg.client.onionServices) != []) {
+          ClientOnionAuthDir = runDir + "/ClientOnionAuthDir";
+        }
+      ))
+    ];
 
-    systemd.services.tor =
-      { description = "Tor Daemon";
-        path = [ pkgs.tor ];
-
-        wantedBy = [ "multi-user.target" ];
-        after    = [ "tor-init.service" "network.target" ];
-        restartTriggers = [ torRcFile ];
-
-        serviceConfig =
-          { Type         = "simple";
-            # Translated from the upstream contrib/dist/tor.service.in
-            ExecStartPre = "${cfg.package}/bin/tor -f ${torRcFile} --verify-config";
-            ExecStart    = "${cfg.package}/bin/tor -f ${torRcFile}";
-            ExecReload   = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
-            KillSignal   = "SIGINT";
-            TimeoutSec   = 30;
-            Restart      = "on-failure";
-            LimitNOFILE  = 32768;
-
-            # Hardening
-            # this seems to unshare /run despite what systemd.exec(5) says
-            PrivateTmp              = mkIf (!cfg.controlSocket.enable) "yes";
-            PrivateDevices          = "yes";
-            ProtectHome             = "yes";
-            ProtectSystem           = "strict";
-            InaccessiblePaths       = "/home";
-            ReadOnlyPaths           = "/";
-            ReadWritePaths          = [ torDirectory torRunDirectory ];
-            NoNewPrivileges         = "yes";
-
-            # tor.service.in has this in, but this line it fails to spawn a namespace when using hidden services
-            #CapabilityBoundingSet   = "CAP_SETUID CAP_SETGID CAP_NET_BIND_SERVICE";
-          };
+    networking.firewall = mkIf cfg.openFirewall {
+      allowedTCPPorts =
+        concatMap (o: optional (isInt o && o > 0 || o ? "port" && isInt o.port && o.port > 0) o.port)
+        (flatten [
+          cfg.settings.ORPort
+          cfg.settings.DirPort
+        ]);
+    };
+
+    systemd.services.tor = {
+      description = "Tor Daemon";
+      path = [ pkgs.tor ];
+
+      wantedBy = [ "multi-user.target" ];
+      after    = [ "network.target" ];
+      restartTriggers = [ torrc ];
+
+      serviceConfig = {
+        Type = "simple";
+        User = "tor";
+        Group = "tor";
+        ExecStartPre = [
+          "${cfg.package}/bin/tor -f ${torrc} --verify-config"
+          # DOC: Appendix G of https://spec.torproject.org/rend-spec-v3
+          ("+" + pkgs.writeShellScript "ExecStartPre" (concatStringsSep "\n" (flatten (["set -eu"] ++
+            mapAttrsToList (name: onion:
+              optional (onion.authorizedClients != []) ''
+                rm -rf ${escapeShellArg onion.path}/authorized_clients
+                install -d -o tor -g tor -m 0700 ${escapeShellArg onion.path} ${escapeShellArg onion.path}/authorized_clients
+              '' ++
+              imap0 (i: pubKey: ''
+                echo ${pubKey} |
+                install -o tor -g tor -m 0400 /dev/stdin ${escapeShellArg onion.path}/authorized_clients/${toString i}.auth
+              '') onion.authorizedClients ++
+              optional (onion.secretKey != null) ''
+                install -d -o tor -g tor -m 0700 ${escapeShellArg onion.path}
+                key="$(cut -f1 -d: ${escapeShellArg onion.secretKey})"
+                case "$key" in
+                 ("== ed25519v"*"-secret")
+                  install -o tor -g tor -m 0400 ${escapeShellArg onion.secretKey} ${escapeShellArg onion.path}/hs_ed25519_secret_key;;
+                 (*) echo >&2 "NixOS does not (yet) support secret key type for onion: ${name}"; exit 1;;
+                esac
+              ''
+            ) cfg.relay.onionServices ++
+            mapAttrsToList (name: onion: imap0 (i: prvKeyPath:
+              let hostname = removeSuffix ".onion" name; in ''
+              printf "%s:" ${escapeShellArg hostname} | cat - ${escapeShellArg prvKeyPath} |
+              install -o tor -g tor -m 0700 /dev/stdin \
+               ${runDir}/ClientOnionAuthDir/${escapeShellArg hostname}.${toString i}.auth_private
+            '') onion.clientAuthorizations)
+            cfg.client.onionServices
+          ))))
+        ];
+        ExecStart = "${cfg.package}/bin/tor -f ${torrc}";
+        ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
+        KillSignal = "SIGINT";
+        TimeoutSec = 30;
+        Restart = "on-failure";
+        LimitNOFILE = 32768;
+        RuntimeDirectory = [
+          # g+x allows access to the control socket
+          "tor"
+          "tor/root"
+          # g+x can't be removed in ExecStart=, but will be removed by Tor
+          "tor/ClientOnionAuthDir"
+        ];
+        RuntimeDirectoryMode = "0710";
+        StateDirectoryMode = "0700";
+        StateDirectory = [
+            "tor"
+            "tor/onion"
+          ] ++
+          flatten (mapAttrsToList (name: onion:
+            optional (onion.secretKey == null) "tor/onion/${name}"
+          ) cfg.relay.onionServices);
+        # The following options are only to optimize:
+        # systemd-analyze security tor
+        RootDirectory = runDir + "/root";
+        RootDirectoryStartOnly = true;
+        #InaccessiblePaths = [ "-+${runDir}/root" ];
+        UMask = "0066";
+        BindPaths = [ stateDir ];
+        BindReadOnlyPaths = [ storeDir "/etc" ];
+        AmbientCapabilities   = [""] ++ lib.optional bindsPrivilegedPort "CAP_NET_BIND_SERVICE";
+        CapabilityBoundingSet = [""] ++ lib.optional bindsPrivilegedPort "CAP_NET_BIND_SERVICE";
+        # ProtectClock= adds DeviceAllow=char-rtc r
+        DeviceAllow = "";
+        LockPersonality = true;
+        MemoryDenyWriteExecute = true;
+        NoNewPrivileges = true;
+        PrivateDevices = true;
+        PrivateMounts = true;
+        PrivateNetwork = mkDefault false;
+        PrivateTmp = true;
+        # Tor cannot currently bind privileged port when PrivateUsers=true,
+        # see https://gitlab.torproject.org/legacy/trac/-/issues/20930
+        PrivateUsers = !bindsPrivilegedPort;
+        ProtectClock = true;
+        ProtectControlGroups = true;
+        ProtectHome = true;
+        ProtectHostname = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectSystem = "strict";
+        RemoveIPC = true;
+        RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+        # See also the finer but experimental option settings.Sandbox
+        SystemCallFilter = [
+          "@system-service"
+          # Groups in @system-service which do not contain a syscall listed by:
+          # perf stat -x, 2>perf.log -e 'syscalls:sys_enter_*' tor
+          # in tests, and seem likely not necessary for tor.
+          "~@aio" "~@chown" "~@keyring" "~@memlock" "~@resources" "~@setuid" "~@timer"
+        ];
+        SystemCallArchitectures = "native";
+        SystemCallErrorNumber = "EPERM";
       };
+    };
 
     environment.systemPackages = [ cfg.package ];
   };
+
+  meta.maintainers = with lib.maintainers; [ julm ];
 }
diff --git a/nixos/modules/services/ttys/agetty.nix b/nixos/modules/services/ttys/getty.nix
index d07746be237..68ab8183777 100644
--- a/nixos/modules/services/ttys/agetty.nix
+++ b/nixos/modules/services/ttys/getty.nix
@@ -4,7 +4,7 @@ with lib;
 
 let
 
-  autologinArg = optionalString (config.services.mingetty.autologinUser != null) "--autologin ${config.services.mingetty.autologinUser}";
+  autologinArg = optionalString (config.services.getty.autologinUser != null) "--autologin ${config.services.getty.autologinUser}";
   gettyCmd = extraArgs: "@${pkgs.util-linux}/sbin/agetty agetty --login-program ${pkgs.shadow}/bin/login ${autologinArg} ${extraArgs}";
 
 in
@@ -13,9 +13,13 @@ in
 
   ###### interface
 
+  imports = [
+    (mkRenamedOptionModule [ "services" "mingetty" ] [ "services" "getty" ])
+  ];
+
   options = {
 
-    services.mingetty = {
+    services.getty = {
 
       autologinUser = mkOption {
         type = types.nullOr types.str;
@@ -29,7 +33,7 @@ in
       greetingLine = mkOption {
         type = types.str;
         description = ''
-          Welcome line printed by mingetty.
+          Welcome line printed by agetty.
           The default shows current NixOS version label, machine type and tty.
         '';
       };
@@ -38,7 +42,7 @@ in
         type = types.lines;
         default = "";
         description = ''
-          Help line printed by mingetty below the welcome line.
+          Help line printed by agetty below the welcome line.
           Used by the installation CD to give some hints on
           how to proceed.
         '';
@@ -65,7 +69,7 @@ in
   config = {
     # Note: this is set here rather than up there so that changing
     # nixos.label would not rebuild manual pages
-    services.mingetty.greetingLine = mkDefault ''<<< Welcome to NixOS ${config.system.nixos.label} (\m) - \l >>>'';
+    services.getty.greetingLine = mkDefault ''<<< Welcome to NixOS ${config.system.nixos.label} (\m) - \l >>>'';
 
     systemd.services."getty@" =
       { serviceConfig.ExecStart = [
@@ -76,7 +80,7 @@ in
       };
 
     systemd.services."serial-getty@" =
-      let speeds = concatStringsSep "," (map toString config.services.mingetty.serialSpeed); in
+      let speeds = concatStringsSep "," (map toString config.services.getty.serialSpeed); in
       { serviceConfig.ExecStart = [
           "" # override upstream default with an empty ExecStart
           (gettyCmd "%I ${speeds} $TERM")
@@ -106,8 +110,8 @@ in
       { # Friendly greeting on the virtual consoles.
         source = pkgs.writeText "issue" ''
 
-          ${config.services.mingetty.greetingLine}
-          ${config.services.mingetty.helpLine}
+          ${config.services.getty.greetingLine}
+          ${config.services.getty.helpLine}
 
         '';
       };
diff --git a/nixos/modules/services/web-apps/grocy.nix b/nixos/modules/services/web-apps/grocy.nix
index 568bdfd0c42..be2de638dd9 100644
--- a/nixos/modules/services/web-apps/grocy.nix
+++ b/nixos/modules/services/web-apps/grocy.nix
@@ -115,9 +115,9 @@ in {
       user = "grocy";
       group = "nginx";
 
-      # PHP 7.3 is the only version which is supported/tested by upstream:
-      # https://github.com/grocy/grocy/blob/v2.6.0/README.md#how-to-install
-      phpPackage = pkgs.php73;
+      # PHP 7.4 is the only version which is supported/tested by upstream:
+      # https://github.com/grocy/grocy/blob/v3.0.0/README.md#how-to-install
+      phpPackage = pkgs.php74;
 
       inherit (cfg.phpfpm) settings;
 
diff --git a/nixos/modules/services/web-apps/codimd.nix b/nixos/modules/services/web-apps/hedgedoc.nix
index 0fbc9ee820e..3f646d7db0c 100644
--- a/nixos/modules/services/web-apps/codimd.nix
+++ b/nixos/modules/services/web-apps/hedgedoc.nix
@@ -3,10 +3,14 @@
 with lib;
 
 let
-  cfg = config.services.codimd;
+  cfg = config.services.hedgedoc;
+
+  name = if versionAtLeast config.system.stateVersion "21.03"
+    then "hedgedoc"
+    else "codimd";
 
   prettyJSON = conf:
-    pkgs.runCommandLocal "codimd-config.json" {
+    pkgs.runCommandLocal "hedgedoc-config.json" {
       nativeBuildInputs = [ pkgs.jq ];
     } ''
       echo '${builtins.toJSON conf}' | jq \
@@ -14,22 +18,26 @@ let
     '';
 in
 {
-  options.services.codimd = {
-    enable = mkEnableOption "the CodiMD Markdown Editor";
+  imports = [
+    (mkRenamedOptionModule [ "services" "codimd" ] [ "services" "hedgedoc" ])
+  ];
+
+  options.services.hedgedoc = {
+    enable = mkEnableOption "the HedgeDoc Markdown Editor";
 
     groups = mkOption {
       type = types.listOf types.str;
       default = [];
       description = ''
-        Groups to which the codimd user should be added.
+        Groups to which the user ${name} should be added.
       '';
     };
 
     workDir = mkOption {
       type = types.path;
-      default = "/var/lib/codimd";
+      default = "/var/lib/${name}";
       description = ''
-        Working directory for the CodiMD service.
+        Working directory for the HedgeDoc service.
       '';
     };
 
@@ -38,17 +46,17 @@ in
       domain = mkOption {
         type = types.nullOr types.str;
         default = null;
-        example = "codimd.org";
+        example = "hedgedoc.org";
         description = ''
-          Domain name for the CodiMD instance.
+          Domain name for the HedgeDoc instance.
         '';
       };
       urlPath = mkOption {
         type = types.nullOr types.str;
         default = null;
-        example = "/url/path/to/codimd";
+        example = "/url/path/to/hedgedoc";
         description = ''
-          Path under which CodiMD is accessible.
+          Path under which HedgeDoc is accessible.
         '';
       };
       host = mkOption {
@@ -69,7 +77,7 @@ in
       path = mkOption {
         type = types.nullOr types.str;
         default = null;
-        example = "/run/codimd.sock";
+        example = "/run/hedgedoc.sock";
         description = ''
           Specify where a UNIX domain socket should be placed.
         '';
@@ -77,7 +85,7 @@ in
       allowOrigin = mkOption {
         type = types.listOf types.str;
         default = [];
-        example = [ "localhost" "codimd.org" ];
+        example = [ "localhost" "hedgedoc.org" ];
         description = ''
           List of domains to whitelist.
         '';
@@ -201,7 +209,7 @@ in
         '';
         description = ''
           Specify which database to use.
-          CodiMD supports mysql, postgres, sqlite and mssql.
+          HedgeDoc supports mysql, postgres, sqlite and mssql.
           See <link xlink:href="https://sequelize.readthedocs.io/en/v3/">
           https://sequelize.readthedocs.io/en/v3/</link> for more information.
           Note: This option overrides <option>db</option>.
@@ -213,12 +221,12 @@ in
         example = literalExample ''
           {
             dialect = "sqlite";
-            storage = "/var/lib/codimd/db.codimd.sqlite";
+            storage = "/var/lib/${name}/db.${name}.sqlite";
           }
         '';
         description = ''
           Specify the configuration for sequelize.
-          CodiMD supports mysql, postgres, sqlite and mssql.
+          HedgeDoc supports mysql, postgres, sqlite and mssql.
           See <link xlink:href="https://sequelize.readthedocs.io/en/v3/">
           https://sequelize.readthedocs.io/en/v3/</link> for more information.
           Note: This option overrides <option>db</option>.
@@ -227,7 +235,7 @@ in
       sslKeyPath= mkOption {
         type = types.nullOr types.str;
         default = null;
-        example = "/var/lib/codimd/codimd.key";
+        example = "/var/lib/hedgedoc/hedgedoc.key";
         description = ''
           Path to the SSL key. Needed when <option>useSSL</option> is enabled.
         '';
@@ -235,7 +243,7 @@ in
       sslCertPath = mkOption {
         type = types.nullOr types.str;
         default = null;
-        example = "/var/lib/codimd/codimd.crt";
+        example = "/var/lib/hedgedoc/hedgedoc.crt";
         description = ''
           Path to the SSL cert. Needed when <option>useSSL</option> is enabled.
         '';
@@ -243,7 +251,7 @@ in
       sslCAPath = mkOption {
         type = types.listOf types.str;
         default = [];
-        example = [ "/var/lib/codimd/ca.crt" ];
+        example = [ "/var/lib/hedgedoc/ca.crt" ];
         description = ''
           SSL ca chain. Needed when <option>useSSL</option> is enabled.
         '';
@@ -251,7 +259,7 @@ in
       dhParamPath = mkOption {
         type = types.nullOr types.str;
         default = null;
-        example = "/var/lib/codimd/dhparam.pem";
+        example = "/var/lib/hedgedoc/dhparam.pem";
         description = ''
           Path to the SSL dh params. Needed when <option>useSSL</option> is enabled.
         '';
@@ -260,10 +268,10 @@ in
         type = types.str;
         default = "/tmp";
         description = ''
-          Path to the temp directory CodiMD should use.
+          Path to the temp directory HedgeDoc should use.
           Note that <option>serviceConfig.PrivateTmp</option> is enabled for
-          the CodiMD systemd service by default.
-          (Non-canonical paths are relative to CodiMD's base directory)
+          the HedgeDoc systemd service by default.
+          (Non-canonical paths are relative to HedgeDoc's base directory)
         '';
       };
       defaultNotePath = mkOption {
@@ -271,7 +279,7 @@ in
         default = "./public/default.md";
         description = ''
           Path to the default Note file.
-          (Non-canonical paths are relative to CodiMD's base directory)
+          (Non-canonical paths are relative to HedgeDoc's base directory)
         '';
       };
       docsPath = mkOption {
@@ -279,7 +287,7 @@ in
         default = "./public/docs";
         description = ''
           Path to the docs directory.
-          (Non-canonical paths are relative to CodiMD's base directory)
+          (Non-canonical paths are relative to HedgeDoc's base directory)
         '';
       };
       indexPath = mkOption {
@@ -287,7 +295,7 @@ in
         default = "./public/views/index.ejs";
         description = ''
           Path to the index template file.
-          (Non-canonical paths are relative to CodiMD's base directory)
+          (Non-canonical paths are relative to HedgeDoc's base directory)
         '';
       };
       hackmdPath = mkOption {
@@ -295,7 +303,7 @@ in
         default = "./public/views/hackmd.ejs";
         description = ''
           Path to the hackmd template file.
-          (Non-canonical paths are relative to CodiMD's base directory)
+          (Non-canonical paths are relative to HedgeDoc's base directory)
         '';
       };
       errorPath = mkOption {
@@ -304,7 +312,7 @@ in
         defaultText = "./public/views/error.ejs";
         description = ''
           Path to the error template file.
-          (Non-canonical paths are relative to CodiMD's base directory)
+          (Non-canonical paths are relative to HedgeDoc's base directory)
         '';
       };
       prettyPath = mkOption {
@@ -313,7 +321,7 @@ in
         defaultText = "./public/views/pretty.ejs";
         description = ''
           Path to the pretty template file.
-          (Non-canonical paths are relative to CodiMD's base directory)
+          (Non-canonical paths are relative to HedgeDoc's base directory)
         '';
       };
       slidePath = mkOption {
@@ -322,13 +330,13 @@ in
         defaultText = "./public/views/slide.hbs";
         description = ''
           Path to the slide template file.
-          (Non-canonical paths are relative to CodiMD's base directory)
+          (Non-canonical paths are relative to HedgeDoc's base directory)
         '';
       };
       uploadsPath = mkOption {
         type = types.str;
         default = "${cfg.workDir}/uploads";
-        defaultText = "/var/lib/codimd/uploads";
+        defaultText = "/var/lib/${name}/uploads";
         description = ''
           Path under which uploaded files are saved.
         '';
@@ -766,7 +774,7 @@ in
               type = types.str;
               default = "";
               description = ''
-                LDAP field which is used as the username on CodiMD.
+                LDAP field which is used as the username on HedgeDoc.
                 By default <option>useridField</option> is used.
               '';
             };
@@ -774,7 +782,7 @@ in
               type = types.str;
               example = "uid";
               description = ''
-                LDAP field which is a unique identifier for users on CodiMD.
+                LDAP field which is a unique identifier for users on HedgeDoc.
               '';
             };
             tlsca = mkOption {
@@ -840,7 +848,7 @@ in
             requiredGroups = mkOption {
               type = types.listOf types.str;
               default = [];
-              example = [ "Hackmd-users" "Codimd-users" ];
+              example = [ "Hedgedoc-Users" ];
               description = ''
                 Required group names.
               '';
@@ -883,7 +891,7 @@ in
     environmentFile = mkOption {
       type = with types; nullOr path;
       default = null;
-      example = "/var/lib/codimd/codimd.env";
+      example = "/var/lib/hedgedoc/hedgedoc.env";
       description = ''
         Environment file as defined in <citerefentry>
         <refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum>
@@ -894,9 +902,9 @@ in
         setting these variables accordingly in the environment file.
 
         <programlisting>
-          # snippet of CodiMD-related config
-          services.codimd.configuration.dbURL = "postgres://codimd:\''${DB_PASSWORD}@db-host:5432/codimddb";
-          services.codimd.configuration.minio.secretKey = "$MINIO_SECRET_KEY";
+          # snippet of HedgeDoc-related config
+          services.hedgedoc.configuration.dbURL = "postgres://hedgedoc:\''${DB_PASSWORD}@db-host:5432/hedgedocdb";
+          services.hedgedoc.configuration.minio.secretKey = "$MINIO_SECRET_KEY";
         </programlisting>
 
         <programlisting>
@@ -906,15 +914,15 @@ in
         </programlisting>
 
         Note that this file needs to be available on the host on which
-        <literal>CodiMD</literal> is running.
+        <literal>HedgeDoc</literal> is running.
       '';
     };
 
     package = mkOption {
       type = types.package;
-      default = pkgs.codimd;
+      default = pkgs.hedgedoc;
       description = ''
-        Package that provides CodiMD.
+        Package that provides HedgeDoc.
       '';
     };
   };
@@ -924,20 +932,20 @@ in
       { assertion = cfg.configuration.db == {} -> (
           cfg.configuration.dbURL != "" && cfg.configuration.dbURL != null
         );
-        message = "Database configuration for CodiMD missing."; }
+        message = "Database configuration for HedgeDoc missing."; }
     ];
-    users.groups.codimd = {};
-    users.users.codimd = {
-      description = "CodiMD service user";
-      group = "codimd";
+    users.groups.${name} = {};
+    users.users.${name} = {
+      description = "HedgeDoc service user";
+      group = name;
       extraGroups = cfg.groups;
       home = cfg.workDir;
       createHome = true;
       isSystemUser = true;
     };
 
-    systemd.services.codimd = {
-      description = "CodiMD Service";
+    systemd.services.hedgedoc = {
+      description = "HedgeDoc Service";
       wantedBy = [ "multi-user.target" ];
       after = [ "networking.target" ];
       preStart = ''
@@ -947,14 +955,14 @@ in
       '';
       serviceConfig = {
         WorkingDirectory = cfg.workDir;
-        ExecStart = "${cfg.package}/bin/codimd";
+        ExecStart = "${cfg.package}/bin/hedgedoc";
         EnvironmentFile = mkIf (cfg.environmentFile != null) [ cfg.environmentFile ];
         Environment = [
           "CMD_CONFIG_FILE=${cfg.workDir}/config.json"
           "NODE_ENV=production"
         ];
         Restart = "always";
-        User = "codimd";
+        User = name;
         PrivateTmp = true;
       };
     };
diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix
index 0dad85d681a..da019aa2507 100644
--- a/nixos/modules/services/web-apps/nextcloud.nix
+++ b/nixos/modules/services/web-apps/nextcloud.nix
@@ -39,7 +39,7 @@ let
     export NEXTCLOUD_CONFIG_DIR="${cfg.home}/config"
     $sudo \
       ${phpPackage}/bin/php \
-      occ $*
+      occ "$@"
   '';
 
   inherit (config.system) stateVersion;
diff --git a/nixos/modules/services/web-apps/plantuml-server.nix b/nixos/modules/services/web-apps/plantuml-server.nix
new file mode 100644
index 00000000000..a39f594c274
--- /dev/null
+++ b/nixos/modules/services/web-apps/plantuml-server.nix
@@ -0,0 +1,123 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+  cfg = config.services.plantuml-server;
+
+in
+
+{
+  options = {
+    services.plantuml-server = {
+      enable = mkEnableOption "PlantUML server";
+
+      package = mkOption {
+        type = types.package;
+        default = pkgs.plantuml-server;
+        description = "PlantUML server package to use";
+      };
+
+      user = mkOption {
+        type = types.str;
+        default = "plantuml";
+        description = "User which runs PlantUML server.";
+      };
+
+      group = mkOption {
+        type = types.str;
+        default = "plantuml";
+        description = "Group which runs PlantUML server.";
+      };
+
+      home = mkOption {
+        type = types.str;
+        default = "/var/lib/plantuml";
+        description = "Home directory of the PlantUML server instance.";
+      };
+
+      listenHost = mkOption {
+        type = types.str;
+        default = "127.0.0.1";
+        description = "Host to listen on.";
+      };
+
+      listenPort = mkOption {
+        type = types.int;
+        default = 8080;
+        description = "Port to listen on.";
+      };
+
+      plantumlLimitSize = mkOption {
+        type = types.int;
+        default = 4096;
+        description = "Limits image width and height.";
+      };
+
+      graphvizPackage = mkOption {
+        type = types.package;
+        default = pkgs.graphviz_2_32;
+        description = "Package containing the dot executable.";
+      };
+
+      plantumlStats = mkOption {
+        type = types.bool;
+        default = false;
+        description = "Set it to on to enable statistics report (https://plantuml.com/statistics-report).";
+      };
+
+      httpAuthorization = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        description = "When calling the proxy endpoint, the value of HTTP_AUTHORIZATION will be used to set the HTTP Authorization header.";
+      };
+
+      allowPlantumlInclude = mkOption {
+        type = types.bool;
+        default = false;
+        description = "Enables !include processing which can read files from the server into diagrams. Files are read relative to the current working directory.";
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    users.users.${cfg.user} = {
+      isSystemUser = true;
+      group = cfg.group;
+      home = cfg.home;
+      createHome = true;
+    };
+
+    users.groups.${cfg.group} = {};
+
+    systemd.services.plantuml-server = {
+      description = "PlantUML server";
+      wantedBy = [ "multi-user.target" ];
+      path = [ cfg.home ];
+      environment = {
+        PLANTUML_LIMIT_SIZE = builtins.toString cfg.plantumlLimitSize;
+        GRAPHVIZ_DOT = "${cfg.graphvizPackage}/bin/dot";
+        PLANTUML_STATS = if cfg.plantumlStats then "on" else "off";
+        HTTP_AUTHORIZATION = cfg.httpAuthorization;
+        ALLOW_PLANTUML_INCLUDE = if cfg.allowPlantumlInclude then "true" else "false";
+      };
+      script = ''
+      ${pkgs.jre}/bin/java \
+        -jar ${pkgs.jetty}/start.jar \
+          --module=deploy,http,jsp \
+          jetty.home=${pkgs.jetty} \
+          jetty.base=${cfg.package} \
+          jetty.http.host=${cfg.listenHost} \
+          jetty.http.port=${builtins.toString cfg.listenPort}
+      '';
+      serviceConfig = {
+        User = cfg.user;
+        Group = cfg.group;
+        PrivateTmp = true;
+      };
+    };
+  };
+
+  meta.maintainers = with lib.maintainers; [ truh ];
+}
diff --git a/nixos/modules/services/web-apps/zabbix.nix b/nixos/modules/services/web-apps/zabbix.nix
index 00719512834..e94861a90b5 100644
--- a/nixos/modules/services/web-apps/zabbix.nix
+++ b/nixos/modules/services/web-apps/zabbix.nix
@@ -3,7 +3,7 @@
 let
 
   inherit (lib) mkDefault mkEnableOption mkForce mkIf mkMerge mkOption types;
-  inherit (lib) literalExample mapAttrs optionalString;
+  inherit (lib) literalExample mapAttrs optionalString versionAtLeast;
 
   cfg = config.services.zabbixWeb;
   fpm = config.services.phpfpm.pools.zabbix;
@@ -28,6 +28,8 @@ let
     $ZBX_SERVER_PORT = '${toString cfg.server.port}';
     $ZBX_SERVER_NAME = ''';
     $IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
+
+    ${cfg.extraConfig}
   '';
 
 in
@@ -143,6 +145,14 @@ in
         '';
       };
 
+      extraConfig = mkOption {
+        type = types.lines;
+        default = "";
+        description = ''
+          Additional configuration to be copied verbatim into <filename>zabbix.conf.php</filename>.
+        '';
+      };
+
     };
   };
 
@@ -150,6 +160,10 @@ in
 
   config = mkIf cfg.enable {
 
+    services.zabbixWeb.extraConfig = optionalString ((versionAtLeast config.system.stateVersion "20.09") && (versionAtLeast cfg.package.version "5.0.0")) ''
+      $DB['DOUBLE_IEEE754'] = 'true';
+    '';
+
     systemd.tmpfiles.rules = [
       "d '${stateDir}' 0750 ${user} ${group} - -"
       "d '${stateDir}/session' 0750 ${user} ${config.services.httpd.group} - -"
diff --git a/nixos/modules/services/web-servers/apache-httpd/default.nix b/nixos/modules/services/web-servers/apache-httpd/default.nix
index dc78728d663..de3c7d693d4 100644
--- a/nixos/modules/services/web-servers/apache-httpd/default.nix
+++ b/nixos/modules/services/web-servers/apache-httpd/default.nix
@@ -126,6 +126,13 @@ let
     </IfModule>
   '';
 
+  luaSetPaths = ''
+    <IfModule mod_lua.c>
+      LuaPackageCPath ${cfg.package.lua5}/lib/lua/${cfg.package.lua5.lua.luaversion}/?.so
+      LuaPackagePath  ${cfg.package.lua5}/share/lua/${cfg.package.lua5.lua.luaversion}/?.lua
+    </IfModule>
+  '';
+
   mkVHostConf = hostOpts:
     let
       adminAddr = if hostOpts.adminAddr != null then hostOpts.adminAddr else cfg.adminAddr;
@@ -326,6 +333,8 @@ let
 
     ${sslConf}
 
+    ${if cfg.package.luaSupport then luaSetPaths else ""}
+
     # Fascist default - deny access to everything.
     <Directory />
         Options FollowSymLinks
diff --git a/nixos/modules/services/web-servers/nginx/default.nix b/nixos/modules/services/web-servers/nginx/default.nix
index 62671e9d748..7fcd61880ea 100644
--- a/nixos/modules/services/web-servers/nginx/default.nix
+++ b/nixos/modules/services/web-servers/nginx/default.nix
@@ -27,6 +27,33 @@ let
   ) cfg.virtualHosts;
   enableIPv6 = config.networking.enableIPv6;
 
+  defaultFastcgiParams = {
+    SCRIPT_FILENAME   = "$document_root$fastcgi_script_name";
+    QUERY_STRING      = "$query_string";
+    REQUEST_METHOD    = "$request_method";
+    CONTENT_TYPE      = "$content_type";
+    CONTENT_LENGTH    = "$content_length";
+
+    SCRIPT_NAME       = "$fastcgi_script_name";
+    REQUEST_URI       = "$request_uri";
+    DOCUMENT_URI      = "$document_uri";
+    DOCUMENT_ROOT     = "$document_root";
+    SERVER_PROTOCOL   = "$server_protocol";
+    REQUEST_SCHEME    = "$scheme";
+    HTTPS             = "$https if_not_empty";
+
+    GATEWAY_INTERFACE = "CGI/1.1";
+    SERVER_SOFTWARE   = "nginx/$nginx_version";
+
+    REMOTE_ADDR       = "$remote_addr";
+    REMOTE_PORT       = "$remote_port";
+    SERVER_ADDR       = "$server_addr";
+    SERVER_PORT       = "$server_port";
+    SERVER_NAME       = "$server_name";
+
+    REDIRECT_STATUS   = "200";
+  };
+
   recommendedProxyConfig = pkgs.writeText "nginx-recommended-proxy-headers.conf" ''
     proxy_set_header        Host $host;
     proxy_set_header        X-Real-IP $remote_addr;
@@ -283,6 +310,10 @@ let
         proxy_set_header Upgrade $http_upgrade;
         proxy_set_header Connection $connection_upgrade;
       ''}
+      ${concatStringsSep "\n"
+        (mapAttrsToList (n: v: ''fastcgi_param ${n} "${v}";'')
+          (optionalAttrs (config.fastcgiParams != {})
+            (defaultFastcgiParams // config.fastcgiParams)))}
       ${optionalString (config.index != null) "index ${config.index};"}
       ${optionalString (config.tryFiles != null) "try_files ${config.tryFiles};"}
       ${optionalString (config.root != null) "root ${config.root};"}
diff --git a/nixos/modules/services/web-servers/nginx/location-options.nix b/nixos/modules/services/web-servers/nginx/location-options.nix
index f2fc0725572..5a7f5188b6c 100644
--- a/nixos/modules/services/web-servers/nginx/location-options.nix
+++ b/nixos/modules/services/web-servers/nginx/location-options.nix
@@ -101,6 +101,16 @@ with lib;
       '';
     };
 
+    fastcgiParams = mkOption {
+      type = types.attrsOf types.str;
+      default = {};
+      description = ''
+        FastCGI parameters to override.  Unlike in the Nginx
+        configuration file, overriding only some default parameters
+        won't unset the default values for other parameters.
+      '';
+    };
+
     extraConfig = mkOption {
       type = types.lines;
       default = "";
diff --git a/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixos/modules/services/x11/desktop-managers/plasma5.nix
index 8cc579af2ca..5f1c099c283 100644
--- a/nixos/modules/services/x11/desktop-managers/plasma5.nix
+++ b/nixos/modules/services/x11/desktop-managers/plasma5.nix
@@ -8,8 +8,7 @@ let
   cfg = xcfg.desktopManager.plasma5;
 
   inherit (pkgs) kdeApplications kdeFrameworks plasma5;
-  libsForQt5 = pkgs.libsForQt514;
-  qt5 = pkgs.qt514;
+  inherit (pkgs) qt5 libsForQt5;
   inherit (pkgs) writeText;
 
   pulseaudio = config.hardware.pulseaudio;
@@ -238,6 +237,7 @@ in
           kidletime
           kimageformats
           kinit
+          kirigami2  # In system profile for SDDM theme. TODO: wrapper.
           kio
           kjobwidgets
           knewstuff
diff --git a/nixos/modules/services/x11/display-managers/sddm.nix b/nixos/modules/services/x11/display-managers/sddm.nix
index a39bb55b38c..116994db1c1 100644
--- a/nixos/modules/services/x11/display-managers/sddm.nix
+++ b/nixos/modules/services/x11/display-managers/sddm.nix
@@ -1,102 +1,94 @@
 { config, lib, pkgs, ... }:
 
 with lib;
-
 let
-
   xcfg = config.services.xserver;
   dmcfg = xcfg.displayManager;
   cfg = dmcfg.sddm;
   xEnv = config.systemd.services.display-manager.environment;
 
-  sddm = if config.services.xserver.desktopManager.lxqt.enable then
-    # TODO: Move lxqt to libsForQt515
-    pkgs.libsForQt514.sddm
-  else
-    pkgs.libsForQt5.sddm
-  ;
+  sddm = pkgs.libsForQt5.sddm;
+
+  iniFmt = pkgs.formats.ini { };
 
-  xserverWrapper = pkgs.writeScript "xserver-wrapper" ''
-    #!/bin/sh
+  xserverWrapper = pkgs.writeShellScript "xserver-wrapper" ''
     ${concatMapStrings (n: "export ${n}=\"${getAttr n xEnv}\"\n") (attrNames xEnv)}
     exec systemd-cat -t xserver-wrapper ${dmcfg.xserverBin} ${toString dmcfg.xserverArgs} "$@"
   '';
 
-  Xsetup = pkgs.writeScript "Xsetup" ''
-    #!/bin/sh
+  Xsetup = pkgs.writeShellScript "Xsetup" ''
     ${cfg.setupScript}
     ${dmcfg.setupCommands}
   '';
 
-  Xstop = pkgs.writeScript "Xstop" ''
-    #!/bin/sh
+  Xstop = pkgs.writeShellScript "Xstop" ''
     ${cfg.stopScript}
   '';
 
-  cfgFile = pkgs.writeText "sddm.conf" ''
-    [General]
-    HaltCommand=/run/current-system/systemd/bin/systemctl poweroff
-    RebootCommand=/run/current-system/systemd/bin/systemctl reboot
-    ${optionalString cfg.autoNumlock ''
-    Numlock=on
-    ''}
-
-    [Theme]
-    Current=${cfg.theme}
-    ThemeDir=/run/current-system/sw/share/sddm/themes
-    FacesDir=/run/current-system/sw/share/sddm/faces
-
-    [Users]
-    MaximumUid=${toString config.ids.uids.nixbld}
-    HideUsers=${concatStringsSep "," dmcfg.hiddenUsers}
-    HideShells=/run/current-system/sw/bin/nologin
-
-    [X11]
-    MinimumVT=${toString (if xcfg.tty != null then xcfg.tty else 7)}
-    ServerPath=${xserverWrapper}
-    XephyrPath=${pkgs.xorg.xorgserver.out}/bin/Xephyr
-    SessionCommand=${dmcfg.sessionData.wrapper}
-    SessionDir=${dmcfg.sessionData.desktops}/share/xsessions
-    XauthPath=${pkgs.xorg.xauth}/bin/xauth
-    DisplayCommand=${Xsetup}
-    DisplayStopCommand=${Xstop}
-    EnableHidpi=${boolToString cfg.enableHidpi}
-
-    [Wayland]
-    EnableHidpi=${boolToString cfg.enableHidpi}
-    SessionDir=${dmcfg.sessionData.desktops}/share/wayland-sessions
-
-    ${optionalString dmcfg.autoLogin.enable ''
-    [Autologin]
-    User=${dmcfg.autoLogin.user}
-    Session=${autoLoginSessionName}.desktop
-    Relogin=${boolToString cfg.autoLogin.relogin}
-    ''}
-
-    ${cfg.extraConfig}
-  '';
+  defaultConfig = {
+    General = {
+      HaltCommand = "/run/current-system/systemd/bin/systemctl poweroff";
+      RebootCommand = "/run/current-system/systemd/bin/systemctl reboot";
+      Numlock = if cfg.autoNumlock then "on" else "none"; # on, off none
+    };
+
+    Theme = {
+      Current = cfg.theme;
+      ThemeDir = "/run/current-system/sw/share/sddm/themes";
+      FacesDir = "/run/current-system/sw/share/sddm/faces";
+    };
+
+    Users = {
+      MaximumUid = config.ids.uids.nixbld;
+      HideUsers = concatStringsSep "," dmcfg.hiddenUsers;
+      HideShells = "/run/current-system/sw/bin/nologin";
+    };
 
-  autoLoginSessionName = dmcfg.sessionData.autologinSession;
+    X11 = {
+      MinimumVT = if xcfg.tty != null then xcfg.tty else 7;
+      ServerPath = toString xserverWrapper;
+      XephyrPath = "${pkgs.xorg.xorgserver.out}/bin/Xephyr";
+      SessionCommand = toString dmcfg.sessionData.wrapper;
+      SessionDir = "${dmcfg.sessionData.desktops}/share/xsessions";
+      XauthPath = "${pkgs.xorg.xauth}/bin/xauth";
+      DisplayCommand = toString Xsetup;
+      DisplayStopCommand = toString Xstop;
+      EnableHiDPI = cfg.enableHidpi;
+    };
+
+    Wayland = {
+      EnableHiDPI = cfg.enableHidpi;
+      SessionDir = "${dmcfg.sessionData.desktops}/share/wayland-sessions";
+    };
+  } // lib.optionalAttrs dmcfg.autoLogin.enable {
+    Autologin = {
+      User = dmcfg.autoLogin.user;
+      Session = autoLoginSessionName;
+      Relogin = cfg.autoLogin.relogin;
+    };
+  };
+
+  cfgFile =
+    iniFmt.generate "sddm.conf" (lib.recursiveUpdate defaultConfig cfg.settings);
+
+  autoLoginSessionName =
+    "${dmcfg.sessionData.autologinSession}.desktop";
 
 in
 {
   imports = [
-    (mkRemovedOptionModule [ "services" "xserver" "displayManager" "sddm" "themes" ]
+    (mkRemovedOptionModule
+      [ "services" "xserver" "displayManager" "sddm" "themes" ]
       "Set the option `services.xserver.displayManager.sddm.package' instead.")
-    (mkRenamedOptionModule [ "services" "xserver" "displayManager" "sddm" "autoLogin" "enable" ] [
-      "services"
-      "xserver"
-      "displayManager"
-      "autoLogin"
-      "enable"
-    ])
-    (mkRenamedOptionModule [ "services" "xserver" "displayManager" "sddm" "autoLogin" "user" ] [
-      "services"
-      "xserver"
-      "displayManager"
-      "autoLogin"
-      "user"
-    ])
+    (mkRenamedOptionModule
+      [ "services" "xserver" "displayManager" "sddm" "autoLogin" "enable" ]
+      [ "services" "xserver" "displayManager" "autoLogin" "enable" ])
+    (mkRenamedOptionModule
+      [ "services" "xserver" "displayManager" "sddm" "autoLogin" "user" ]
+      [ "services" "xserver" "displayManager" "autoLogin" "user" ])
+    (mkRemovedOptionModule
+      [ "services" "xserver" "displayManager" "sddm" "extraConfig" ]
+      "Set the option `services.xserver.displayManager.sddm.settings' instead.")
   ];
 
   options = {
@@ -115,22 +107,22 @@ in
         default = true;
         description = ''
           Whether to enable automatic HiDPI mode.
-          </para>
-          <para>
-          Versions up to 0.17 are broken so this only works from 0.18 onwards.
         '';
       };
 
-      extraConfig = mkOption {
-        type = types.lines;
-        default = "";
+      settings = mkOption {
+        type = iniFmt.type;
+        default = { };
         example = ''
-          [Autologin]
-          User=john
-          Session=plasma.desktop
+          {
+            Autologin = {
+              User = "john";
+              Session = "plasma.desktop";
+            };
+          }
         '';
         description = ''
-          Extra lines appended to the configuration of SDDM.
+          Extra settings merged in and overwritting defaults in sddm.conf.
         '';
       };
 
@@ -173,28 +165,38 @@ in
       };
 
       # Configuration for automatic login specific to SDDM
-      autoLogin.relogin = mkOption {
-        type = types.bool;
-        default = false;
-        description = ''
-          If true automatic login will kick in again on session exit (logout), otherwise it
-          will only log in automatically when the display-manager is started.
-        '';
+      autoLogin = {
+        relogin = mkOption {
+          type = types.bool;
+          default = false;
+          description = ''
+            If true automatic login will kick in again on session exit (logout), otherwise it
+            will only log in automatically when the display-manager is started.
+          '';
+        };
+
+        minimumUid = mkOption {
+          type = types.ints.u16;
+          default = 1000;
+          description = ''
+            Minimum user ID for auto-login user.
+          '';
+        };
       };
-
     };
-
   };
 
   config = mkIf cfg.enable {
 
     assertions = [
-      { assertion = xcfg.enable;
+      {
+        assertion = xcfg.enable;
         message = ''
           SDDM requires services.xserver.enable to be true
         '';
       }
-      { assertion = dmcfg.autoLogin.enable -> autoLoginSessionName != null;
+      {
+        assertion = dmcfg.autoLogin.enable -> autoLoginSessionName != null;
         message = ''
           SDDM auto-login requires that services.xserver.displayManager.defaultSession is set.
         '';
@@ -235,7 +237,7 @@ in
 
       sddm-autologin.text = ''
         auth     requisite pam_nologin.so
-        auth     required  pam_succeed_if.so uid >= 1000 quiet
+        auth     required  pam_succeed_if.so uid >= ${toString cfg.autoLogin.minimumUid} quiet
         auth     required  pam_permit.so
 
         account  include   sddm
diff --git a/nixos/modules/services/x11/display-managers/startx.nix b/nixos/modules/services/x11/display-managers/startx.nix
index 3980203b945..6cd46cdf964 100644
--- a/nixos/modules/services/x11/display-managers/startx.nix
+++ b/nixos/modules/services/x11/display-managers/startx.nix
@@ -39,6 +39,18 @@ in
       displayManager.lightdm.enable = lib.mkForce false;
     };
     systemd.services.display-manager.enable = false;
+
+    # Other displayManagers log to /dev/null because they're services and put
+    # Xorg's stdout in the journal
+    #
+    # To send log to Xorg's default log location ($XDG_DATA_HOME/xorg/), we do
+    # not specify a log file when running X
+    services.xserver.logFile = mkDefault null;
+
+    # Implement xserverArgs via xinit's system-wide xserverrc
+    environment.etc."X11/xinit/xserverrc".source = pkgs.writeShellScript "xserverrc" ''
+      exec ${pkgs.xorg.xorgserver}/bin/X ${toString config.services.xserver.displayManager.xserverArgs} "$@"
+    '';
     environment.systemPackages =  with pkgs; [ xorg.xinit ];
   };
 
diff --git a/nixos/modules/services/x11/window-managers/xmonad.nix b/nixos/modules/services/x11/window-managers/xmonad.nix
index b9013ca1ff9..2bb4827be9d 100644
--- a/nixos/modules/services/x11/window-managers/xmonad.nix
+++ b/nixos/modules/services/x11/window-managers/xmonad.nix
@@ -5,25 +5,37 @@ let
   inherit (lib) mkOption mkIf optionals literalExample;
   cfg = config.services.xserver.windowManager.xmonad;
 
+  ghcWithPackages = cfg.haskellPackages.ghcWithPackages;
+  packages = self: cfg.extraPackages self ++
+                   optionals cfg.enableContribAndExtras
+                   [ self.xmonad-contrib self.xmonad-extras ];
+
   xmonad-vanilla = pkgs.xmonad-with-packages.override {
-    ghcWithPackages = cfg.haskellPackages.ghcWithPackages;
-    packages = self: cfg.extraPackages self ++
-                     optionals cfg.enableContribAndExtras
-                     [ self.xmonad-contrib self.xmonad-extras ];
+    inherit ghcWithPackages packages;
   };
 
-  xmonad-config = pkgs.writers.writeHaskellBin "xmonad" {
-    ghc = cfg.haskellPackages.ghc;
-    libraries = [ cfg.haskellPackages.xmonad ] ++
-                cfg.extraPackages cfg.haskellPackages ++
-                optionals cfg.enableContribAndExtras
-                (with cfg.haskellPackages; [ xmonad-contrib xmonad-extras ]);
-    inherit (cfg) ghcArgs;
-  } cfg.config;
+  xmonad-config =
+    let
+      xmonadAndPackages = self: [ self.xmonad ] ++ packages self;
+      xmonadEnv = ghcWithPackages xmonadAndPackages;
+      configured = pkgs.writers.writeHaskellBin "xmonad" {
+        ghc = cfg.haskellPackages.ghc;
+        libraries = xmonadAndPackages cfg.haskellPackages;
+        inherit (cfg) ghcArgs;
+      } cfg.config;
+    in
+      pkgs.runCommandLocal "xmonad" {
+        nativeBuildInputs = [ pkgs.makeWrapper ];
+      } ''
+        install -D ${xmonadEnv}/share/man/man1/xmonad.1.gz $out/share/man/man1/xmonad.1.gz
+        makeWrapper ${configured}/bin/xmonad $out/bin/xmonad \
+          --set NIX_GHC "${xmonadEnv}/bin/ghc" \
+          --set XMONAD_XMESSAGE "${pkgs.xorg.xmessage}/bin/xmessage"
+      '';
 
   xmonad = if (cfg.config != null) then xmonad-config else xmonad-vanilla;
 in {
-  meta.maintainers = with maintainers; [ lassulus xaverdh ];
+  meta.maintainers = with maintainers; [ lassulus xaverdh ivanbrennan ];
 
   options = {
     services.xserver.windowManager.xmonad = {
@@ -72,13 +84,13 @@ in {
           This setup is then analogous to other (non-NixOS) linux distributions.
 
           If you do set this option, you likely want to use "launch" as your
-          entry point for xmonad (as in the example), to avoid xmonads
+          entry point for xmonad (as in the example), to avoid xmonad's
           recompilation logic on startup. Doing so will render the default
           "mod+q" restart key binding dysfunctional though, because that attempts
           to call your binary with the "--restart" command line option, unless
           you implement that yourself. You way mant to bind "mod+q" to
           <literal>(restart "xmonad" True)</literal> instead, which will just restart
-          xmonad from PATH. This allows e.g. switching to the new xmonad binary,
+          xmonad from PATH. This allows e.g. switching to the new xmonad binary
           after rebuilding your system with nixos-rebuild.
 
           If you actually want to run xmonad with a config specified here, but
@@ -91,6 +103,7 @@ in {
         example = ''
           import XMonad
           import XMonad.Util.EZConfig (additionalKeys)
+          import Control.Monad (when)
           import Text.Printf (printf)
           import System.Posix.Process (executeFile)
           import System.Info (arch,os)
@@ -99,16 +112,21 @@ in {
 
           compiledConfig = printf "xmonad-%s-%s" arch os
 
-          compileRestart = whenX (recompile True) . catchIO $ do
-              dir  <- getXMonadDataDir
-              args <- getArgs
-              executeFile (dir </> compiledConfig) False args Nothing
+          compileRestart resume =
+            whenX (recompile True) $
+              when resume writeStateToFile
+                *> catchIO
+                  ( do
+                      dir <- getXMonadDataDir
+                      args <- getArgs
+                      executeFile (dir </> compiledConfig) False args Nothing
+                  )
 
           main = launch defaultConfig
               { modMask = mod4Mask -- Use Super instead of Alt
               , terminal = "urxvt" }
               `additionalKeys`
-              [ ( (mod4Mask,xK_r), compileRestart )
+              [ ( (mod4Mask,xK_r), compileRestart True)
               , ( (mod4Mask,xK_q), restart "xmonad" True ) ]
         '';
       };
diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix
index 9e971671c47..eb8c4c17e98 100644
--- a/nixos/modules/services/x11/xserver.nix
+++ b/nixos/modules/services/x11/xserver.nix
@@ -518,6 +518,19 @@ in
         '';
       };
 
+      logFile = mkOption {
+        type = types.nullOr types.str;
+        default = "/dev/null";
+        example = "/var/log/Xorg.0.log";
+        description = ''
+          Controls the file Xorg logs to.
+
+          The default of <literal>/dev/null</literal> is set so that systemd services (like <literal>displayManagers</literal>) only log to the journal and don't create their own log files.
+
+          Setting this to <literal>null</literal> will not pass the <literal>-logfile</literal> argument to Xorg which allows it to log to its default logfile locations instead (see <literal>man Xorg</literal>). You probably only want this behaviour when running Xorg manually (e.g. via <literal>startx</literal>).
+        '';
+      };
+
       verbose = mkOption {
         type = types.nullOr types.int;
         default = 3;
@@ -692,11 +705,10 @@ in
     services.xserver.displayManager.xserverArgs =
       [ "-config ${configFile}"
         "-xkbdir" "${cfg.xkbDir}"
-        # Log at the default verbosity level to stderr rather than /var/log/X.*.log.
-         "-logfile" "/dev/null"
       ] ++ optional (cfg.display != null) ":${toString cfg.display}"
         ++ optional (cfg.tty     != null) "vt${toString cfg.tty}"
         ++ optional (cfg.dpi     != null) "-dpi ${toString cfg.dpi}"
+        ++ optional (cfg.logFile != null) "-logfile ${toString cfg.logFile}"
         ++ optional (cfg.verbose != null) "-verbose ${toString cfg.verbose}"
         ++ optional (!cfg.enableTCP) "-nolisten tcp"
         ++ optional (cfg.autoRepeatDelay != null) "-ardelay ${toString cfg.autoRepeatDelay}"
diff --git a/nixos/modules/system/boot/resolved.nix b/nixos/modules/system/boot/resolved.nix
index 84bc9b78076..7fe8f4dfb7e 100644
--- a/nixos/modules/system/boot/resolved.nix
+++ b/nixos/modules/system/boot/resolved.nix
@@ -1,4 +1,4 @@
-{ config, lib, ... }:
+{ config, pkgs, lib, ... }:
 
 with lib;
 let
@@ -150,6 +150,9 @@ in
       wantedBy = [ "multi-user.target" ];
       aliases = [ "dbus-org.freedesktop.resolve1.service" ];
       restartTriggers = [ config.environment.etc."systemd/resolved.conf".source ];
+      # Upstream bug: https://github.com/systemd/systemd/issues/18078
+      # systemd-resolved without libidn2 is broken
+      environment.LD_LIBRARY_PATH = "${lib.getLib pkgs.libidn2}/lib";
     };
 
     environment.etc = {
diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix
index 0f5787a1921..86bfde6349c 100644
--- a/nixos/modules/system/boot/stage-1.nix
+++ b/nixos/modules/system/boot/stage-1.nix
@@ -308,7 +308,7 @@ let
   # the initial RAM disk.
   initialRamdisk = pkgs.makeInitrd {
     name = "initrd-${kernel-name}";
-    inherit (config.boot.initrd) compressor prepend;
+    inherit (config.boot.initrd) compressor compressorArgs prepend;
 
     contents =
       [ { object = bootStage1;
@@ -334,7 +334,9 @@ let
 
   # Script to add secret files to the initrd at bootloader update time
   initialRamdiskSecretAppender =
-    pkgs.writeScriptBin "append-initrd-secrets"
+    let
+      compressorExe = initialRamdisk.compressorExecutableFunction pkgs;
+    in pkgs.writeScriptBin "append-initrd-secrets"
       ''
         #!${pkgs.bash}/bin/bash -e
         function usage {
@@ -376,7 +378,7 @@ let
          }
 
         (cd "$tmp" && find . -print0 | sort -z | cpio -o -H newc -R +0:+0 --reproducible --null) | \
-          ${config.boot.initrd.compressor} >> "$1"
+          ${compressorExe} ${lib.escapeShellArgs initialRamdisk.compressorArgs} >> "$1"
       '';
 
 in
@@ -511,13 +513,28 @@ in
     };
 
     boot.initrd.compressor = mkOption {
-      internal = true;
-      default = "gzip -9n";
-      type = types.str;
-      description = "The compressor to use on the initrd image.";
+      default = "gzip";
+      type = types.unspecified; # We don't have a function type...
+      description = ''
+        The compressor to use on the initrd image. May be any of:
+
+        <itemizedlist>
+         <listitem><para>The name of one of the predefined compressors, see <filename>pkgs/build-support/kernel/initrd-compressor-meta.nix</filename> for the definitions.</para></listitem>
+         <listitem><para>A function which, given the nixpkgs package set, returns the path to a compressor tool, e.g. <literal>pkgs: "''${pkgs.pigz}/bin/pigz"</literal></para></listitem>
+         <listitem><para>(not recommended, because it does not work when cross-compiling) the full path to a compressor tool, e.g. <literal>"''${pkgs.pigz}/bin/pigz"</literal></para></listitem>
+        </itemizedlist>
+
+        The given program should read data from stdin and write it to stdout compressed.
+      '';
       example = "xz";
     };
 
+    boot.initrd.compressorArgs = mkOption {
+      default = null;
+      type = types.nullOr (types.listOf types.str);
+      description = "Arguments to pass to the compressor for the initrd image, or null to use the compressor's defaults.";
+    };
+
     boot.initrd.secrets = mkOption
       { default = {};
         type = types.attrsOf (types.nullOr types.path);
diff --git a/nixos/modules/tasks/filesystems/bcachefs.nix b/nixos/modules/tasks/filesystems/bcachefs.nix
index 5fda24adb97..ac41ba5f93a 100644
--- a/nixos/modules/tasks/filesystems/bcachefs.nix
+++ b/nixos/modules/tasks/filesystems/bcachefs.nix
@@ -49,8 +49,8 @@ in
     }
 
     (mkIf ((elem "bcachefs" config.boot.initrd.supportedFilesystems) || (bootFs != {})) {
-      # the cryptographic modules are required only for decryption attempts
-      boot.initrd.availableKernelModules = [ "bcachefs" "chacha20" "poly1305" ];
+      # chacha20 and poly1305 are required only for decryption attempts
+      boot.initrd.availableKernelModules = [ "bcachefs" "sha256" "chacha20" "poly1305" ];
 
       boot.initrd.extraUtilsCommands = ''
         copy_bin_and_libs ${pkgs.bcachefs-tools}/bin/bcachefs
diff --git a/nixos/modules/tasks/network-interfaces-systemd.nix b/nixos/modules/tasks/network-interfaces-systemd.nix
index 23e1e611a71..088bffd7c50 100644
--- a/nixos/modules/tasks/network-interfaces-systemd.nix
+++ b/nixos/modules/tasks/network-interfaces-systemd.nix
@@ -93,7 +93,17 @@ in
             (if i.useDHCP != null then i.useDHCP else false));
           address = forEach (interfaceIps i)
             (ip: "${ip.address}/${toString ip.prefixLength}");
-          networkConfig.IPv6PrivacyExtensions = "kernel";
+          # IPv6PrivacyExtensions=kernel seems to be broken with networkd.
+          # Instead of using IPv6PrivacyExtensions=kernel, configure it according to the value of
+          # `tempAddress`:
+          networkConfig.IPv6PrivacyExtensions = {
+            # generate temporary addresses and use them by default
+            "default" = true;
+            # generate temporary addresses but keep using the standard EUI-64 ones by default
+            "enabled" = "prefer-public";
+            # completely disable temporary addresses
+            "disabled" = false;
+          }.${i.tempAddress};
           linkConfig = optionalAttrs (i.macAddress != null) {
             MACAddress = i.macAddress;
           } // optionalAttrs (i.mtu != null) {
diff --git a/nixos/modules/virtualisation/amazon-init.nix b/nixos/modules/virtualisation/amazon-init.nix
index 8c12e0e49bf..c5470b7af09 100644
--- a/nixos/modules/virtualisation/amazon-init.nix
+++ b/nixos/modules/virtualisation/amazon-init.nix
@@ -7,7 +7,7 @@ let
     echo "attempting to fetch configuration from EC2 user data..."
 
     export HOME=/root
-    export PATH=${pkgs.lib.makeBinPath [ config.nix.package pkgs.systemd pkgs.gnugrep pkgs.git pkgs.gnutar pkgs.gzip pkgs.gnused config.system.build.nixos-rebuild]}:$PATH
+    export PATH=${pkgs.lib.makeBinPath [ config.nix.package pkgs.systemd pkgs.gnugrep pkgs.git pkgs.gnutar pkgs.gzip pkgs.gnused pkgs.xz config.system.build.nixos-rebuild]}:$PATH
     export NIX_PATH=nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixos:nixos-config=/etc/nixos/configuration.nix:/nix/var/nix/profiles/per-user/root/channels
 
     userData=/etc/ec2-metadata/user-data
diff --git a/nixos/modules/virtualisation/lxc-container.nix b/nixos/modules/virtualisation/lxc-container.nix
index d4936484018..e47bd59dc01 100644
--- a/nixos/modules/virtualisation/lxc-container.nix
+++ b/nixos/modules/virtualisation/lxc-container.nix
@@ -11,7 +11,7 @@ with lib;
   users.users.root.initialHashedPassword = mkOverride 150 "";
 
   # Some more help text.
-  services.mingetty.helpLine =
+  services.getty.helpLine =
     ''
 
       Log in as "root" with an empty password.
diff --git a/nixos/modules/virtualisation/nixos-containers.nix b/nixos/modules/virtualisation/nixos-containers.nix
index 26398afb3cf..757d73421b8 100644
--- a/nixos/modules/virtualisation/nixos-containers.nix
+++ b/nixos/modules/virtualisation/nixos-containers.nix
@@ -56,10 +56,10 @@ let
             ip -6 route add $HOST_ADDRESS6 dev eth0
             ip -6 route add default via $HOST_ADDRESS6
           fi
-
-          ${concatStringsSep "\n" (mapAttrsToList renderExtraVeth cfg.extraVeths)}
         fi
 
+        ${concatStringsSep "\n" (mapAttrsToList renderExtraVeth cfg.extraVeths)}
+
         # Start the regular stage 1 script.
         exec "$1"
       ''
@@ -223,8 +223,8 @@ let
             ${ipcall cfg "ip route" "$LOCAL_ADDRESS" "localAddress"}
             ${ipcall cfg "ip -6 route" "$LOCAL_ADDRESS6" "localAddress6"}
           fi
-          ${concatStringsSep "\n" (mapAttrsToList renderExtraVeth cfg.extraVeths)}
         fi
+        ${concatStringsSep "\n" (mapAttrsToList renderExtraVeth cfg.extraVeths)}
       ''
   );
 
diff --git a/nixos/modules/virtualisation/oci-containers.nix b/nixos/modules/virtualisation/oci-containers.nix
index a46dd65eb49..ee9fe62187d 100644
--- a/nixos/modules/virtualisation/oci-containers.nix
+++ b/nixos/modules/virtualisation/oci-containers.nix
@@ -176,10 +176,10 @@ let
           description = ''
             Define which other containers this one depends on. They will be added to both After and Requires for the unit.
 
-            Use the same name as the attribute under <literal>virtualisation.oci-containers</literal>.
+            Use the same name as the attribute under <literal>virtualisation.oci-containers.containers</literal>.
           '';
           example = literalExample ''
-            virtualisation.oci-containers = {
+            virtualisation.oci-containers.containers = {
               node1 = {};
               node2 = {
                 dependsOn = [ "node1" ];
diff --git a/nixos/release-combined.nix b/nixos/release-combined.nix
index 5f8a64702a8..ea82adf09ad 100644
--- a/nixos/release-combined.nix
+++ b/nixos/release-combined.nix
@@ -145,6 +145,7 @@ in rec {
         (onFullSupported "nixos.tests.printing")
         (onFullSupported "nixos.tests.proxy")
         (onFullSupported "nixos.tests.sddm.default")
+        (onFullSupported "nixos.tests.shadow")
         (onFullSupported "nixos.tests.simple")
         (onFullSupported "nixos.tests.switchTest")
         (onFullSupported "nixos.tests.udisks2")
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index 0c06e3f4424..c491b559213 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -63,7 +63,6 @@ in
   clickhouse = handleTest ./clickhouse.nix {};
   cloud-init = handleTest ./cloud-init.nix {};
   cockroachdb = handleTestOn ["x86_64-linux"] ./cockroachdb.nix {};
-  codimd = handleTest ./codimd.nix {};
   consul = handleTest ./consul.nix {};
   containers-bridge = handleTest ./containers-bridge.nix {};
   containers-custom-pkgs.nix = handleTest ./containers-custom-pkgs.nix {};
@@ -147,6 +146,7 @@ in
   handbrake = handleTestOn ["x86_64-linux"] ./handbrake.nix {};
   haproxy = handleTest ./haproxy.nix {};
   hardened = handleTest ./hardened.nix {};
+  hedgedoc = handleTest ./hedgedoc.nix {};
   installed-tests = pkgs.recurseIntoAttrs (handleTest ./installed-tests {});
   oci-containers = handleTestOn ["x86_64-linux"] ./oci-containers.nix {};
   # 9pnet_virtio used to mount /nix partition doesn't support
@@ -158,6 +158,7 @@ in
   home-assistant = handleTest ./home-assistant.nix {};
   hostname = handleTest ./hostname.nix {};
   hound = handleTest ./hound.nix {};
+  hub = handleTest ./git/hub.nix {};
   hydra = handleTest ./hydra {};
   i3wm = handleTest ./i3wm.nix {};
   icingaweb2 = handleTest ./icingaweb2.nix {};
@@ -168,6 +169,7 @@ in
   initrd-network-openvpn = handleTest ./initrd-network-openvpn {};
   initrd-network-ssh = handleTest ./initrd-network-ssh {};
   initrdNetwork = handleTest ./initrd-network.nix {};
+  initrd-secrets = handleTest ./initrd-secrets.nix {};
   installer = handleTest ./installer.nix {};
   iodine = handleTest ./iodine.nix {};
   ipfs = handleTest ./ipfs.nix {};
@@ -210,6 +212,7 @@ in
   magic-wormhole-mailbox-server = handleTest ./magic-wormhole-mailbox-server.nix {};
   magnetico = handleTest ./magnetico.nix {};
   mailcatcher = handleTest ./mailcatcher.nix {};
+  mailhog = handleTest ./mailhog.nix {};
   mariadb-galera-mariabackup = handleTest ./mysql/mariadb-galera-mariabackup.nix {};
   mariadb-galera-rsync = handleTest ./mysql/mariadb-galera-rsync.nix {};
   matomo = handleTest ./matomo.nix {};
@@ -278,6 +281,7 @@ in
   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 {};
+  image-contents = handleTest ./image-contents.nix {};
   orangefs = handleTest ./orangefs.nix {};
   os-prober = handleTestOn ["x86_64-linux"] ./os-prober.nix {};
   osrm-backend = handleTest ./osrm-backend.nix {};
@@ -321,6 +325,7 @@ in
   redis = handleTest ./redis.nix {};
   redmine = handleTest ./redmine.nix {};
   restic = handleTest ./restic.nix {};
+  ripgrep = handleTest ./ripgrep.nix {};
   robustirc-bridge = handleTest ./robustirc-bridge.nix {};
   roundcube = handleTest ./roundcube.nix {};
   rspamd = handleTest ./rspamd.nix {};
@@ -336,6 +341,7 @@ in
   scala = handleTest ./scala.nix {};
   sddm = handleTest ./sddm.nix {};
   service-runner = handleTest ./service-runner.nix {};
+  shadow = handleTest ./shadow.nix {};
   shadowsocks = handleTest ./shadowsocks {};
   shattered-pixel-dungeon = handleTest ./shattered-pixel-dungeon.nix {};
   shiori = handleTest ./shiori.nix {};
@@ -410,6 +416,7 @@ in
   xterm = handleTest ./xterm.nix {};
   yabar = handleTest ./yabar.nix {};
   yggdrasil = handleTest ./yggdrasil.nix {};
+  yq = handleTest ./yq.nix {};
   zfs = handleTest ./zfs.nix {};
   zigbee2mqtt = handleTest ./zigbee2mqtt.nix {};
   zoneminder = handleTest ./zoneminder.nix {};
diff --git a/nixos/tests/codimd.nix b/nixos/tests/codimd.nix
deleted file mode 100644
index aa581dfeb58..00000000000
--- a/nixos/tests/codimd.nix
+++ /dev/null
@@ -1,60 +0,0 @@
-import ./make-test-python.nix ({ pkgs, lib, ... }:
-{
-  name = "codimd";
-
-  meta = with lib.maintainers; {
-    maintainers = [ willibutz ];
-  };
-
-  nodes = {
-    codimdSqlite = { ... }: {
-      services = {
-        codimd = {
-          enable = true;
-          configuration.dbURL = "sqlite:///var/lib/codimd/codimd.db";
-        };
-      };
-    };
-
-    codimdPostgres = { ... }: {
-      systemd.services.codimd.after = [ "postgresql.service" ];
-      services = {
-        codimd = {
-          enable = true;
-          configuration.dbURL = "postgres://codimd:\${DB_PASSWORD}@localhost:5432/codimddb";
-
-          /*
-           * Do not use pkgs.writeText for secrets as
-           * they will end up in the world-readable Nix store.
-           */
-          environmentFile = pkgs.writeText "codimd-env" ''
-            DB_PASSWORD=snakeoilpassword
-          '';
-        };
-        postgresql = {
-          enable = true;
-          initialScript = pkgs.writeText "pg-init-script.sql" ''
-            CREATE ROLE codimd LOGIN PASSWORD 'snakeoilpassword';
-            CREATE DATABASE codimddb OWNER codimd;
-          '';
-        };
-      };
-    };
-  };
-
-  testScript = ''
-    start_all()
-
-    with subtest("CodiMD sqlite"):
-        codimdSqlite.wait_for_unit("codimd.service")
-        codimdSqlite.wait_for_open_port(3000)
-        codimdSqlite.wait_until_succeeds("curl -sSf http://localhost:3000/new")
-
-    with subtest("CodiMD postgres"):
-        codimdPostgres.wait_for_unit("postgresql.service")
-        codimdPostgres.wait_for_unit("codimd.service")
-        codimdPostgres.wait_for_open_port(5432)
-        codimdPostgres.wait_for_open_port(3000)
-        codimdPostgres.wait_until_succeeds("curl -sSf http://localhost:3000/new")
-  '';
-})
diff --git a/nixos/tests/docker-tools.nix b/nixos/tests/docker-tools.nix
index 8402ba68b72..369ef94f9fa 100644
--- a/nixos/tests/docker-tools.nix
+++ b/nixos/tests/docker-tools.nix
@@ -247,5 +247,12 @@ import ./make-test-python.nix ({ pkgs, ... }: {
             ).strip()
             == "${if pkgs.system == "aarch64-linux" then "amd64" else "arm64"}"
         )
+
+    with subtest("buildLayeredImage doesn't dereference /nix/store symlink layers"):
+        docker.succeed(
+            "docker load --input='${examples.layeredStoreSymlink}'",
+            "docker run --rm ${examples.layeredStoreSymlink.imageName} bash -c 'test -L ${examples.layeredStoreSymlink.passthru.symlink}'",
+            "docker rmi ${examples.layeredStoreSymlink.imageName}",
+        )
   '';
 })
diff --git a/nixos/tests/dovecot.nix b/nixos/tests/dovecot.nix
index bcbe234fd80..1129e3b45d9 100644
--- a/nixos/tests/dovecot.nix
+++ b/nixos/tests/dovecot.nix
@@ -4,8 +4,11 @@ import ./make-test-python.nix {
   machine = { pkgs, ... }: {
     imports = [ common/user-account.nix ];
     services.postfix.enable = true;
-    services.dovecot2.enable = true;
-    services.dovecot2.protocols = [ "imap" "pop3" ];
+    services.dovecot2 = {
+      enable = true;
+      protocols = [ "imap" "pop3" ];
+      modules = [ pkgs.dovecot_pigeonhole ];
+    };
     environment.systemPackages = let
       sendTestMail = pkgs.writeScriptBin "send-testmail" ''
         #!${pkgs.runtimeShell}
diff --git a/nixos/tests/git/hub.nix b/nixos/tests/git/hub.nix
new file mode 100644
index 00000000000..e2359e887ef
--- /dev/null
+++ b/nixos/tests/git/hub.nix
@@ -0,0 +1,17 @@
+import ../make-test-python.nix ({ pkgs, ...} : {
+  name = "hub";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ nequissimus ];
+  };
+
+  nodes.hub = { pkgs, ... }:
+    {
+      environment.systemPackages = [ pkgs.gitAndTools.hub ];
+    };
+
+  testScript =
+    ''
+      assert "git version ${pkgs.git.version}\nhub version ${pkgs.gitAndTools.hub.version}\n" in hub.succeed("hub version")
+      assert "These GitHub commands are provided by hub" in hub.succeed("hub help")
+    '';
+})
diff --git a/nixos/tests/grafana.nix b/nixos/tests/grafana.nix
index 4b453ece7f1..4ba091b893f 100644
--- a/nixos/tests/grafana.nix
+++ b/nixos/tests/grafana.nix
@@ -17,6 +17,10 @@ let
   };
 
   extraNodeConfs = {
+    declarativePlugins = {
+      services.grafana.declarativePlugins = [ pkgs.grafanaPlugins.grafana-clock-panel ];
+    };
+
     postgresql = {
       services.grafana.database = {
         host = "127.0.0.1:5432";
@@ -52,7 +56,7 @@ let
     nameValuePair dbName (mkMerge [
     baseGrafanaConf
     (extraNodeConfs.${dbName} or {})
-  ])) [ "sqlite" "postgresql" "mysql" ]);
+  ])) [ "sqlite" "declarativePlugins" "postgresql" "mysql" ]);
 
 in {
   name = "grafana";
@@ -66,6 +70,14 @@ in {
   testScript = ''
     start_all()
 
+    with subtest("Declarative plugins installed"):
+        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"
+        )
+        declarativePlugins.shutdown()
+
     with subtest("Successful API query as admin user with sqlite db"):
         sqlite.wait_for_unit("grafana.service")
         sqlite.wait_for_open_port(3000)
diff --git a/nixos/tests/hedgedoc.nix b/nixos/tests/hedgedoc.nix
new file mode 100644
index 00000000000..657d49c555e
--- /dev/null
+++ b/nixos/tests/hedgedoc.nix
@@ -0,0 +1,60 @@
+import ./make-test-python.nix ({ pkgs, lib, ... }:
+{
+  name = "hedgedoc";
+
+  meta = with lib.maintainers; {
+    maintainers = [ willibutz ];
+  };
+
+  nodes = {
+    hedgedocSqlite = { ... }: {
+      services = {
+        hedgedoc = {
+          enable = true;
+          configuration.dbURL = "sqlite:///var/lib/hedgedoc/hedgedoc.db";
+        };
+      };
+    };
+
+    hedgedocPostgres = { ... }: {
+      systemd.services.hedgedoc.after = [ "postgresql.service" ];
+      services = {
+        hedgedoc = {
+          enable = true;
+          configuration.dbURL = "postgres://hedgedoc:\${DB_PASSWORD}@localhost:5432/hedgedocdb";
+
+          /*
+           * Do not use pkgs.writeText for secrets as
+           * they will end up in the world-readable Nix store.
+           */
+          environmentFile = pkgs.writeText "hedgedoc-env" ''
+            DB_PASSWORD=snakeoilpassword
+          '';
+        };
+        postgresql = {
+          enable = true;
+          initialScript = pkgs.writeText "pg-init-script.sql" ''
+            CREATE ROLE hedgedoc LOGIN PASSWORD 'snakeoilpassword';
+            CREATE DATABASE hedgedocdb OWNER hedgedoc;
+          '';
+        };
+      };
+    };
+  };
+
+  testScript = ''
+    start_all()
+
+    with subtest("HedgeDoc sqlite"):
+        hedgedocSqlite.wait_for_unit("hedgedoc.service")
+        hedgedocSqlite.wait_for_open_port(3000)
+        hedgedocSqlite.wait_until_succeeds("curl -sSf http://localhost:3000/new")
+
+    with subtest("HedgeDoc postgres"):
+        hedgedocPostgres.wait_for_unit("postgresql.service")
+        hedgedocPostgres.wait_for_unit("hedgedoc.service")
+        hedgedocPostgres.wait_for_open_port(5432)
+        hedgedocPostgres.wait_for_open_port(3000)
+        hedgedocPostgres.wait_until_succeeds("curl -sSf http://localhost:3000/new")
+  '';
+})
diff --git a/nixos/tests/image-contents.nix b/nixos/tests/image-contents.nix
new file mode 100644
index 00000000000..90908968a7e
--- /dev/null
+++ b/nixos/tests/image-contents.nix
@@ -0,0 +1,51 @@
+# Tests the contents attribute of nixos/lib/make-disk-image.nix
+# including its user, group, and mode attributes.
+{ system ? builtins.currentSystem,
+  config ? {},
+  pkgs ? import ../.. { inherit system config; }
+}:
+
+with import ../lib/testing-python.nix { inherit system pkgs; };
+with pkgs.lib;
+
+with import common/ec2.nix { inherit makeTest pkgs; };
+
+let
+  config = (import ../lib/eval-config.nix {
+    inherit system;
+    modules = [
+      ../modules/testing/test-instrumentation.nix
+      ../modules/profiles/qemu-guest.nix
+      {
+        fileSystems."/".device = "/dev/disk/by-label/nixos";
+        boot.loader.grub.device = "/dev/vda";
+        boot.loader.timeout = 0;
+      }
+    ];
+  }).config;
+  image = (import ../lib/make-disk-image.nix {
+    inherit pkgs config;
+    lib = pkgs.lib;
+    format = "qcow2";
+    contents = [{
+      source = pkgs.writeText "testFile" "contents";
+      target = "/testFile";
+      user = "1234";
+      group = "5678";
+      mode = "755";
+    }];
+  }) + "/nixos.qcow2";
+
+in makeEc2Test {
+  name = "image-contents";
+  inherit image;
+  userData = null;
+  script = ''
+    machine.start()
+    assert "content" in machine.succeed("cat /testFile")
+    fileDetails = machine.succeed("ls -l /testFile")
+    assert "1234" in fileDetails
+    assert "5678" in fileDetails
+    assert "rwxr-xr-x" in fileDetails
+  '';
+}
diff --git a/nixos/tests/initrd-secrets.nix b/nixos/tests/initrd-secrets.nix
new file mode 100644
index 00000000000..10dd908502d
--- /dev/null
+++ b/nixos/tests/initrd-secrets.nix
@@ -0,0 +1,35 @@
+{ system ? builtins.currentSystem
+, config ? {}
+, pkgs ? import ../.. { inherit system config; }
+, lib ? pkgs.lib
+, testing ? import ../lib/testing-python.nix { inherit system pkgs; }
+}:
+let
+  secretInStore = pkgs.writeText "topsecret" "iamasecret";
+  testWithCompressor = compressor: testing.makeTest {
+    name = "initrd-secrets-${compressor}";
+
+    meta.maintainers = [ lib.maintainers.lheckemann ];
+
+    machine = { ... }: {
+      virtualisation.useBootLoader = true;
+      boot.initrd.secrets."/test" = secretInStore;
+      boot.initrd.postMountCommands = ''
+        cp /test /mnt-root/secret-from-initramfs
+      '';
+      boot.initrd.compressor = compressor;
+      # zstd compression is only supported from 5.9 onwards. Remove when 5.10 becomes default.
+      boot.kernelPackages = pkgs.linuxPackages_latest;
+    };
+
+    testScript = ''
+      start_all()
+      machine.wait_for_unit("multi-user.target")
+      machine.succeed(
+          "cmp ${secretInStore} /secret-from-initramfs"
+      )
+    '';
+  };
+in lib.flip lib.genAttrs testWithCompressor [
+  "cat" "gzip" "bzip2" "xz" "lzma" "lzop" "pigz" "pixz" "zstd"
+]
diff --git a/nixos/tests/kafka.nix b/nixos/tests/kafka.nix
index 88e30b62baa..373e939c00d 100644
--- a/nixos/tests/kafka.nix
+++ b/nixos/tests/kafka.nix
@@ -80,15 +80,6 @@ let
   }) { inherit system; });
 
 in with pkgs; {
-  kafka_0_9  = makeKafkaTest "kafka_0_9"  apacheKafka_0_9;
-  kafka_0_10 = makeKafkaTest "kafka_0_10" apacheKafka_0_10;
-  kafka_0_11 = makeKafkaTest "kafka_0_11" apacheKafka_0_11;
-  kafka_1_0  = makeKafkaTest "kafka_1_0"  apacheKafka_1_0;
-  kafka_1_1  = makeKafkaTest "kafka_1_1"  apacheKafka_1_1;
-  kafka_2_0  = makeKafkaTest "kafka_2_0"  apacheKafka_2_0;
-  kafka_2_1  = makeKafkaTest "kafka_2_1"  apacheKafka_2_1;
-  kafka_2_2  = makeKafkaTest "kafka_2_2"  apacheKafka_2_2;
-  kafka_2_3  = makeKafkaTest "kafka_2_3"  apacheKafka_2_3;
   kafka_2_4  = makeKafkaTest "kafka_2_4"  apacheKafka_2_4;
   kafka_2_5  = makeKafkaTest "kafka_2_5"  apacheKafka_2_5;
 }
diff --git a/nixos/tests/login.nix b/nixos/tests/login.nix
index d36c1a91be4..ce11e1f942a 100644
--- a/nixos/tests/login.nix
+++ b/nixos/tests/login.nix
@@ -50,7 +50,7 @@ import ./make-test-python.nix ({ pkgs, latestKernel ? false, ... }:
       with subtest("Virtual console logout"):
           machine.send_chars("exit\n")
           machine.wait_until_fails("pgrep -u alice bash")
-          machine.screenshot("mingetty")
+          machine.screenshot("getty")
 
       with subtest("Check whether ctrl-alt-delete works"):
           machine.send_key("ctrl-alt-delete")
diff --git a/nixos/tests/loki.nix b/nixos/tests/loki.nix
index bede775b7d3..0c6dff3fdf1 100644
--- a/nixos/tests/loki.nix
+++ b/nixos/tests/loki.nix
@@ -46,7 +46,9 @@ import ./make-test-python.nix ({ lib, pkgs, ... }:
     machine.wait_for_open_port(9080)
     machine.succeed("echo 'Loki Ingestion Test' > /var/log/testlog")
     # should not have access to journal unless specified
-    machine.fail("systemctl show --property=SupplementaryGroups promtail | grep -q systemd-journal")
+    machine.fail(
+        "systemctl show --property=SupplementaryGroups promtail | grep -q systemd-journal"
+    )
     machine.wait_until_succeeds(
         "${pkgs.grafana-loki}/bin/logcli --addr='http://localhost:3100' query --no-labels '{job=\"varlogs\",filename=\"/var/log/testlog\"}' | grep -q 'Loki Ingestion Test'"
     )
diff --git a/nixos/tests/mailhog.nix b/nixos/tests/mailhog.nix
new file mode 100644
index 00000000000..aece57178dd
--- /dev/null
+++ b/nixos/tests/mailhog.nix
@@ -0,0 +1,24 @@
+import ./make-test-python.nix ({ lib, ... }: {
+  name = "mailhog";
+  meta.maintainers = with lib.maintainers; [ jojosch ];
+
+  machine = { pkgs, ... }: {
+    services.mailhog.enable = true;
+
+    environment.systemPackages = with pkgs; [ swaks ];
+  };
+
+  testScript = ''
+    start_all()
+
+    machine.wait_for_unit("mailhog.service")
+    machine.wait_for_open_port("1025")
+    machine.wait_for_open_port("8025")
+    machine.succeed(
+        'echo "this is the body of the email" | swaks --to root@example.org --body - --server localhost:1025'
+    )
+    assert "this is the body of the email" in machine.succeed(
+        "curl --fail http://localhost:8025/api/v2/messages"
+    )
+  '';
+})
diff --git a/nixos/tests/postgresql-wal-receiver.nix b/nixos/tests/postgresql-wal-receiver.nix
index 432b46234f9..0e8b3bfd6c3 100644
--- a/nixos/tests/postgresql-wal-receiver.nix
+++ b/nixos/tests/postgresql-wal-receiver.nix
@@ -1,11 +1,19 @@
+{ system ? builtins.currentSystem,
+  config ? {},
+  pkgs ? import ../.. { inherit system config; }
+}:
+
+with import ../lib/testing-python.nix { inherit system pkgs; };
+
 let
+  lib = pkgs.lib;
+
   # Makes a test for a PostgreSQL package, given by name and looked up from `pkgs`.
   makePostgresqlWalReceiverTest = postgresqlPackage:
   {
     name = postgresqlPackage;
     value =
-      import ./make-test-python.nix ({ pkgs, lib, ... }: let
-
+      let
         pkg = pkgs."${postgresqlPackage}";
         postgresqlDataDir = "/var/lib/postgresql/${pkg.psqlSchema}";
         replicationUser = "wal_receiver_user";
@@ -19,7 +27,7 @@ let
             then pkgs.writeTextDir "recovery.signal" ""
             else pkgs.writeTextDir "recovery.conf" "restore_command = 'cp ${walBackupDir}/%f %p'";
 
-      in {
+      in makeTest {
         name = "postgresql-wal-receiver-${postgresqlPackage}";
         meta.maintainers = with lib.maintainers; [ pacien ];
 
@@ -104,7 +112,7 @@ let
               "test $(sudo -u postgres psql --pset='pager=off' --tuples-only --command='select count(distinct val) from dummy;') -eq 100"
           )
         '';
-      });
+      };
     };
 
 # Maps the generic function over all attributes of PostgreSQL packages
diff --git a/nixos/tests/prometheus-exporters.nix b/nixos/tests/prometheus-exporters.nix
index 3eb4341e39c..8fcb0a7aa2c 100644
--- a/nixos/tests/prometheus-exporters.nix
+++ b/nixos/tests/prometheus-exporters.nix
@@ -96,6 +96,31 @@ let
       '';
     };
 
+    bird = {
+      exporterConfig = {
+        enable = true;
+      };
+      metricProvider = {
+        services.bird2.enable = true;
+        services.bird2.config = ''
+          protocol kernel MyObviousTestString {
+            ipv4 {
+              import all;
+              export none;
+            };
+          }
+
+          protocol device {
+          }
+        '';
+      };
+      exporterTest = ''
+        wait_for_unit("prometheus-bird-exporter.service")
+        wait_for_open_port(9324)
+        succeed("curl -sSf http://localhost:9324/metrics | grep -q 'MyObviousTestString'")
+      '';
+    };
+
     blackbox = {
       exporterConfig = {
         enable = true;
@@ -197,10 +222,11 @@ let
       exporterConfig = {
         enable = true;
         url = "http://localhost";
-        configFile = pkgs.writeText "json-exporter-conf.json" (builtins.toJSON [{
-          name = "json_test_metric";
-          path = "$.test";
-        }]);
+        configFile = pkgs.writeText "json-exporter-conf.json" (builtins.toJSON {
+          metrics = [
+            { name = "json_test_metric"; path = "$.test"; }
+          ];
+        });
       };
       metricProvider = {
         systemd.services.prometheus-json-exporter.after = [ "nginx.service" ];
@@ -216,7 +242,9 @@ let
         wait_for_open_port(80)
         wait_for_unit("prometheus-json-exporter.service")
         wait_for_open_port(7979)
-        succeed("curl -sSf localhost:7979/metrics | grep -q 'json_test_metric 1'")
+        succeed(
+            "curl -sSf 'localhost:7979/probe?target=http://localhost' | grep -q 'json_test_metric 1'"
+        )
       '';
     };
 
@@ -444,6 +472,67 @@ let
       '';
     };
 
+    nginxlog = {
+      exporterConfig = {
+        enable = true;
+        group = "nginx";
+        settings = {
+          namespaces = [
+            {
+              name = "filelogger";
+              source = {
+                files = [ "/var/log/nginx/filelogger.access.log" ];
+              };
+            }
+            {
+              name = "syslogger";
+              source = {
+                syslog = {
+                  listen_address = "udp://127.0.0.1:10000";
+                  format = "rfc3164";
+                  tags = ["nginx"];
+                };
+              };
+            }
+          ];
+        };
+      };
+      metricProvider = {
+        services.nginx = {
+          enable = true;
+          httpConfig = ''
+            server {
+              listen 80;
+              server_name filelogger.local;
+              access_log /var/log/nginx/filelogger.access.log;
+            }
+            server {
+              listen 81;
+              server_name syslogger.local;
+              access_log syslog:server=127.0.0.1:10000,tag=nginx,severity=info;
+            }
+          '';
+        };
+      };
+      exporterTest = ''
+        wait_for_unit("nginx.service")
+        wait_for_unit("prometheus-nginxlog-exporter.service")
+        wait_for_open_port(9117)
+        wait_for_open_port(80)
+        wait_for_open_port(81)
+        succeed("curl http://localhost")
+        execute("sleep 1")
+        succeed(
+            "curl -sSf http://localhost:9117/metrics | grep 'filelogger_http_response_count_total' | grep -q 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"
+        )
+      '';
+    };
+
     node = {
       exporterConfig = {
         enable = true;
@@ -573,7 +662,7 @@ let
         wait_for_open_port(11334)
         wait_for_open_port(7980)
         wait_until_succeeds(
-            "curl -sSf localhost:7980/metrics | grep -q 'rspamd_scanned{host=\"rspamd\"} 0'"
+            "curl -sSf 'localhost:7980/probe?target=http://localhost:11334/stat' | grep -q 'rspamd_scanned{host=\"rspamd\"} 0'"
         )
       '';
     };
@@ -609,6 +698,27 @@ let
       '';
     };
 
+    smokeping = {
+      exporterConfig = {
+        enable = true;
+        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(
+                'smokeping_requests_total{host="127.0.0.1",ip="127.0.0.1"} '
+            )
+        )
+        wait_until_succeeds(
+            "curl -sSf localhost:9374/metrics | grep -q '{}'".format(
+                'smokeping_response_ttl{host="127.0.0.1",ip="127.0.0.1"}'
+            )
+        )
+      '';
+    };
+
     snmp = {
       exporterConfig = {
         enable = true;
diff --git a/nixos/tests/prometheus.nix b/nixos/tests/prometheus.nix
index 6881c659e6d..70ac78a4a46 100644
--- a/nixos/tests/prometheus.nix
+++ b/nixos/tests/prometheus.nix
@@ -36,6 +36,7 @@ in import ./make-test-python.nix {
   nodes = {
     prometheus = { pkgs, ... }: {
       virtualisation.diskSize = 2 * 1024;
+      virtualisation.memorySize = 2048;
       environment.systemPackages = [ pkgs.jq ];
       networking.firewall.allowedTCPPorts = [ grpcPort ];
       services.prometheus = {
@@ -132,6 +133,7 @@ in import ./make-test-python.nix {
 
     store = { pkgs, ... }: {
       virtualisation.diskSize = 2 * 1024;
+      virtualisation.memorySize = 2048;
       environment.systemPackages = with pkgs; [ jq thanos ];
       services.thanos.store = {
         enable = true;
diff --git a/nixos/tests/ripgrep.nix b/nixos/tests/ripgrep.nix
new file mode 100644
index 00000000000..9f76290488f
--- /dev/null
+++ b/nixos/tests/ripgrep.nix
@@ -0,0 +1,13 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "ripgrep";
+  meta = with pkgs.stdenv.lib.maintainers; { maintainers = [ nequissimus ]; };
+
+  nodes.ripgrep = { pkgs, ... }: { environment.systemPackages = [ pkgs.ripgrep ]; };
+
+  testScript = ''
+    ripgrep.succeed('echo "abc\nbcd\ncde" > /tmp/foo')
+    assert "bcd" in ripgrep.succeed("rg -N 'bcd' /tmp/foo")
+    assert "bcd\ncde" in ripgrep.succeed("rg -N 'cd' /tmp/foo")
+    assert "ripgrep ${pkgs.ripgrep.version}" in ripgrep.succeed("rg --version | head -1")
+  '';
+})
diff --git a/nixos/tests/shadow.nix b/nixos/tests/shadow.nix
new file mode 100644
index 00000000000..8f8cdef7ef9
--- /dev/null
+++ b/nixos/tests/shadow.nix
@@ -0,0 +1,116 @@
+let
+  password1 = "foobar";
+  password2 = "helloworld";
+  password3 = "bazqux";
+  password4 = "asdf123";
+in import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "shadow";
+  meta = with pkgs.stdenv.lib.maintainers; { maintainers = [ nequissimus ]; };
+
+  nodes.shadow = { pkgs, ... }: {
+    environment.systemPackages = [ pkgs.shadow ];
+
+    users = {
+      mutableUsers = true;
+      users.emma = {
+        password = password1;
+        shell = pkgs.bash;
+      };
+      users.layla = {
+        password = password2;
+        shell = pkgs.shadow;
+      };
+      users.ash = {
+        password = password4;
+        shell = pkgs.bash;
+      };
+    };
+  };
+
+  testScript = ''
+    shadow.wait_for_unit("multi-user.target")
+    shadow.wait_until_succeeds("pgrep -f 'agetty.*tty1'")
+
+    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_tty_matches(2, "login: ")
+        shadow.send_chars("emma\n")
+        shadow.wait_until_tty_matches(2, "login: emma")
+        shadow.wait_until_succeeds("pgrep login")
+        shadow.sleep(2)
+        shadow.send_chars("${password1}\n")
+        shadow.send_chars("whoami > /tmp/1\n")
+        shadow.wait_for_file("/tmp/1")
+        assert "emma" in shadow.succeed("cat /tmp/1")
+
+    with subtest("Switch user"):
+        shadow.send_chars("su - ash\n")
+        shadow.sleep(2)
+        shadow.send_chars("${password4}\n")
+        shadow.sleep(2)
+        shadow.send_chars("whoami > /tmp/3\n")
+        shadow.wait_for_file("/tmp/3")
+        assert "ash" in shadow.succeed("cat /tmp/3")
+
+    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_tty_matches(3, "login: ")
+        shadow.send_chars("emma\n")
+        shadow.wait_until_tty_matches(3, "login: emma")
+        shadow.wait_until_succeeds("pgrep login")
+        shadow.sleep(2)
+        shadow.send_chars("${password1}\n")
+        shadow.send_chars("passwd\n")
+        shadow.sleep(2)
+        shadow.send_chars("${password1}\n")
+        shadow.sleep(2)
+        shadow.send_chars("${password3}\n")
+        shadow.sleep(2)
+        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_tty_matches(4, "login: ")
+        shadow.send_chars("emma\n")
+        shadow.wait_until_tty_matches(4, "login: emma")
+        shadow.wait_until_succeeds("pgrep login")
+        shadow.sleep(2)
+        shadow.send_chars("${password1}\n")
+        shadow.wait_until_tty_matches(4, "Login incorrect")
+        shadow.wait_until_tty_matches(4, "login:")
+        shadow.send_chars("emma\n")
+        shadow.wait_until_tty_matches(4, "login: emma")
+        shadow.wait_until_succeeds("pgrep login")
+        shadow.sleep(2)
+        shadow.send_chars("${password3}\n")
+        shadow.send_chars("whoami > /tmp/2\n")
+        shadow.wait_for_file("/tmp/2")
+        assert "emma" in shadow.succeed("cat /tmp/2")
+
+    with subtest("Groups"):
+        assert "foobar" not in shadow.succeed("groups emma")
+        shadow.succeed("groupadd foobar")
+        shadow.succeed("usermod -a -G foobar emma")
+        assert "foobar" in shadow.succeed("groups emma")
+
+    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_tty_matches(5, "login: ")
+        shadow.send_chars("layla\n")
+        shadow.wait_until_tty_matches(5, "login: layla")
+        shadow.wait_until_succeeds("pgrep login")
+        shadow.send_chars("${password2}\n")
+        shadow.wait_until_tty_matches(5, "login:")
+  '';
+})
diff --git a/nixos/tests/slurm.nix b/nixos/tests/slurm.nix
index a54c5d9db48..97e031a6279 100644
--- a/nixos/tests/slurm.nix
+++ b/nixos/tests/slurm.nix
@@ -86,14 +86,16 @@ in {
 
     dbd =
       { pkgs, ... } :
-      {
+      let
+        passFile = pkgs.writeText "dbdpassword" "password123";
+      in {
         networking.firewall.enable = false;
         systemd.tmpfiles.rules = [
           "f /etc/munge/munge.key 0400 munge munge - mungeverryweakkeybuteasytointegratoinatest"
         ];
         services.slurm.dbdserver = {
           enable = true;
-          storagePass = "password123";
+          storagePassFile = "${passFile}";
         };
         services.mysql = {
           enable = true;
diff --git a/nixos/tests/tor.nix b/nixos/tests/tor.nix
index ad07231557c..c061f59226c 100644
--- a/nixos/tests/tor.nix
+++ b/nixos/tests/tor.nix
@@ -17,7 +17,7 @@ rec {
       environment.systemPackages = with pkgs; [ netcat ];
       services.tor.enable = true;
       services.tor.client.enable = true;
-      services.tor.controlPort = 9051;
+      services.tor.settings.ControlPort = 9051;
     };
 
   testScript = ''
diff --git a/nixos/tests/uwsgi.nix b/nixos/tests/uwsgi.nix
index 7f4945a8803..5c0b294e2d2 100644
--- a/nixos/tests/uwsgi.nix
+++ b/nixos/tests/uwsgi.nix
@@ -4,12 +4,13 @@ import ./make-test-python.nix ({ pkgs, ... }:
   meta = with pkgs.stdenv.lib.maintainers; {
     maintainers = [ lnl7 ];
   };
+
   machine = { pkgs, ... }: {
     services.uwsgi.enable = true;
-    services.uwsgi.plugins = [ "python3" ];
+    services.uwsgi.plugins = [ "python3" "php" ];
     services.uwsgi.instance = {
       type = "emperor";
-      vassals.hello = {
+      vassals.python = {
         type = "normal";
         master = true;
         workers = 2;
@@ -25,6 +26,17 @@ import ./make-test-python.nix ({ pkgs, ... }:
         '';
         pythonPackages = self: with self; [ flask ];
       };
+      vassals.php = {
+        type = "normal";
+        master = true;
+        workers = 2;
+        http-socket = ":8001";
+        http-socket-modifier1 = 14;
+        php-index = "index.php";
+        php-docroot = pkgs.writeTextDir "index.php" ''
+          <?php echo "Hello World\n"; ?>
+        '';
+      };
     };
   };
 
@@ -33,6 +45,8 @@ import ./make-test-python.nix ({ pkgs, ... }:
       machine.wait_for_unit("multi-user.target")
       machine.wait_for_unit("uwsgi.service")
       machine.wait_for_open_port(8000)
+      machine.wait_for_open_port(8001)
       assert "Hello World" in machine.succeed("curl -fv 127.0.0.1:8000")
+      assert "Hello World" in machine.succeed("curl -fv 127.0.0.1:8001")
     '';
 })
diff --git a/nixos/tests/yq.nix b/nixos/tests/yq.nix
new file mode 100644
index 00000000000..7c0e8e3d055
--- /dev/null
+++ b/nixos/tests/yq.nix
@@ -0,0 +1,12 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "yq";
+  meta = with pkgs.stdenv.lib.maintainers; { maintainers = [ nequissimus ]; };
+
+  nodes.yq = { pkgs, ... }: { environment.systemPackages = with pkgs; [ jq yq ]; };
+
+  testScript = ''
+    assert "hello:\n  foo: bar\n" in yq.succeed(
+        'echo \'{"hello":{"foo":"bar"}}\' | yq -y .'
+    )
+  '';
+})
diff --git a/pkgs/applications/audio/ams-lv2/default.nix b/pkgs/applications/audio/ams-lv2/default.nix
index 34f5667bfca..a978b67c5dc 100644
--- a/pkgs/applications/audio/ams-lv2/default.nix
+++ b/pkgs/applications/audio/ams-lv2/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, cairo, fftw, gtkmm2, lv2, lvtk, pkgconfig
-, wafHook }:
+, wafHook, python3 }:
 
 stdenv.mkDerivation  rec {
   pname = "ams-lv2";
@@ -12,7 +12,7 @@ stdenv.mkDerivation  rec {
     sha256 = "1lz2mvk4gqsyf92yxd3aaldx0d0qi28h4rnnvsaz4ls0ccqm80nk";
   };
 
-  nativeBuildInputs = [ pkgconfig wafHook ];
+  nativeBuildInputs = [ pkgconfig wafHook python3 ];
   buildInputs = [ cairo fftw gtkmm2 lv2 lvtk ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/audio/audacity/default.nix b/pkgs/applications/audio/audacity/default.nix
index 20526c8c6c5..1a29ed8b978 100644
--- a/pkgs/applications/audio/audacity/default.nix
+++ b/pkgs/applications/audio/audacity/default.nix
@@ -1,8 +1,8 @@
 { stdenv, fetchzip, wxGTK30, pkgconfig, file, gettext,
   libvorbis, libmad, libjack2, lv2, lilv, serd, sord, sratom, suil, alsaLib, libsndfile, soxr, flac, lame,
   expat, libid3tag, ffmpeg_3, soundtouch, /*, portaudio - given up fighting their portaudio.patch */
-  autoconf, automake, libtool
-  }:
+  cmake
+}:
 
 with stdenv.lib;
 
@@ -15,16 +15,8 @@ stdenv.mkDerivation rec {
     sha256 = "1xk0piv72d2xd3p7igr916fhcbrm76fhjr418k1rlqdzzg1hfljn";
   };
 
-  preConfigure = /* we prefer system-wide libs */ ''
-    autoreconf -vi # use system libraries
-
-    # we will get a (possibly harmless) warning during configure without this
-    substituteInPlace configure \
-      --replace /usr/bin/file ${file}/bin/file
-  '';
-
-  configureFlags = [
-    "--with-libsamplerate"
+  cmakeFlags = [
+    "-DCMAKE_BUILD_TYPE=Release"
   ];
 
   # audacity only looks for lame and ffmpeg at runtime, so we need to link them in manually
@@ -43,15 +35,13 @@ stdenv.mkDerivation rec {
     "-lswscale"
   ];
 
-  nativeBuildInputs = [ pkgconfig autoconf automake libtool ];
+  nativeBuildInputs = [ pkgconfig cmake ];
   buildInputs = [
     file gettext wxGTK30 expat alsaLib
     libsndfile soxr libid3tag libjack2 lv2 lilv serd sord sratom suil wxGTK30.gtk
     ffmpeg_3 libmad lame libvorbis flac soundtouch
   ]; #ToDo: detach sbsms
 
-  enableParallelBuilding = true;
-
   dontDisableStatic = true;
   doCheck = false; # Test fails
 
diff --git a/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix b/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
index 6841cd6e75d..1e2a61a169a 100644
--- a/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
+++ b/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
@@ -1,23 +1,77 @@
-{ fetchurl, bitwig-studio1, pulseaudio, libjack2, xorg }:
+{ stdenv, fetchurl, alsaLib, cairo, dpkg, freetype
+, gdk-pixbuf, glib, gtk3, lib, xorg
+, libglvnd, libjack2, ffmpeg_3
+, libxkbcommon, xdg_utils, zlib, pulseaudio
+, wrapGAppsHook, makeWrapper }:
 
-bitwig-studio1.overrideAttrs (oldAttrs: rec {
-  name = "bitwig-studio-${version}";
-  version = "3.2.8";
+stdenv.mkDerivation rec {
+  pname = "bitwig-studio";
+  version = "3.3.1";
 
   src = fetchurl {
-    url = "https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb";
-    sha256 = "18ldgmnv7bigb4mch888kjpf4abalpiwmlhwd7rjb9qf6p72fhpj";
+    url = "https://downloads.bitwig.com/stable/${version}/${pname}-${version}.deb";
+    sha256 = "0f7xysk0cl48q7i28m25hasmrp30grgm3kah0s7xmkjgm33887pi";
   };
 
-  buildInputs = oldAttrs.buildInputs ++ [ xorg.libXtst ];
+  nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ];
 
-  runtimeDependencies = [ pulseaudio libjack2 ];
+  unpackCmd = ''
+    mkdir -p root
+    dpkg-deb -x $curSrc root
+  '';
+
+  dontBuild = true;
+  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
+  ];
+
+  binPath = lib.makeBinPath [
+    xdg_utils ffmpeg_3
+  ];
+
+  ldLibraryPath = lib.strings.makeLibraryPath buildInputs;
 
   installPhase = ''
-    ${oldAttrs.installPhase}
+    mkdir -p $out/bin
+    cp -r opt/bitwig-studio $out/libexec
+    ln -s $out/libexec/bitwig-studio $out/bin/bitwig-studio
+    cp -r usr/share $out/share
+    substitute usr/share/applications/bitwig-studio.desktop \
+      $out/share/applications/bitwig-studio.desktop \
+      --replace /usr/bin/bitwig-studio $out/bin/bitwig-studio
+  '';
+
+  postFixup = ''
+    # patchelf fails to set rpath on BitwigStudioEngine, so we use
+    # the LD_LIBRARY_PATH way
+
+    find $out -type f -executable \
+      -not -name '*.so.*' \
+      -not -name '*.so' \
+      -not -name '*.jar' \
+      -not -path '*/resources/*' | \
+    while IFS= read -r f ; do
+      patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" $f
+      wrapProgram $f \
+        "''${gappsWrapperArgs[@]}" \
+        --prefix PATH : "${binPath}" \
+        --prefix LD_LIBRARY_PATH : "${ldLibraryPath}"
+    done
 
-    # recover commercial jre
-    rm -f $out/libexec/lib/jre
-    cp -r opt/bitwig-studio/lib/jre $out/libexec/lib
   '';
-})
+
+  meta = with stdenv.lib; {
+    description = "A digital audio workstation";
+    longDescription = ''
+      Bitwig Studio is a multi-platform music-creation system for
+      production, performance and DJing, with a focus on flexible
+      editing tools and a super-fast workflow.
+    '';
+    homepage = "https://www.bitwig.com/";
+    license = licenses.unfree;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ bfortz michalrus mrVanDalo ];
+  };
+}
diff --git a/pkgs/applications/audio/bs1770gain/default.nix b/pkgs/applications/audio/bs1770gain/default.nix
deleted file mode 100644
index 76a78935619..00000000000
--- a/pkgs/applications/audio/bs1770gain/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ stdenv, fetchurl, ffmpeg, sox }:
-
-stdenv.mkDerivation rec {
-  pname = "bs1770gain";
-  version = "0.5.2";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/bs1770gain/${pname}-${version}.tar.gz";
-    sha256 = "1p6yz5q7czyf9ard65sp4kawdlkg40cfscr3b24znymmhs3p7rbk";
-  };
-
-  buildInputs = [ ffmpeg sox ];
-
-  NIX_CFLAGS_COMPILE = "-Wno-error";
-
-  meta = with stdenv.lib; {
-    description = "A audio/video loudness scanner implementing ITU-R BS.1770";
-    license = licenses.gpl2Plus;
-    homepage = "http://bs1770gain.sourceforge.net/";
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/applications/audio/espeak-ng/default.nix b/pkgs/applications/audio/espeak-ng/default.nix
index 32cec811d00..a284be43832 100644
--- a/pkgs/applications/audio/espeak-ng/default.nix
+++ b/pkgs/applications/audio/espeak-ng/default.nix
@@ -21,15 +21,16 @@ stdenv.mkDerivation rec {
 
   preConfigure = "./autogen.sh";
 
-  postInstall = ''
+  postInstall = lib.optionalString stdenv.isLinux ''
     patchelf --set-rpath "$(patchelf --print-rpath $out/bin/espeak-ng)" $out/bin/speak-ng
   '';
 
   meta = with stdenv.lib; {
     description = "Open source speech synthesizer that supports over 70 languages, based on eSpeak";
-    homepage = src.meta.homepage;
+    homepage = "https://github.com/espeak-ng/espeak-ng";
+    changelog = "https://github.com/espeak-ng/espeak-ng/blob/${version}/CHANGELOG.md";
     license = licenses.gpl3;
     maintainers = with maintainers; [ aske ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/audio/game-music-emu/default.nix b/pkgs/applications/audio/game-music-emu/default.nix
index 51f895ea2d5..7cc431583ed 100644
--- a/pkgs/applications/audio/game-music-emu/default.nix
+++ b/pkgs/applications/audio/game-music-emu/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, cmake }:
 
 stdenv.mkDerivation rec {
-  version = "0.6.1";
+  version = "0.6.3";
   pname = "game-music-emu";
 
   src = fetchurl {
-    url = "https://bitbucket.org/mpyne/game-music-emu/downloads/${pname}-${version}.tar.bz2";
-    sha256 = "08fk7zddpn7v93d0fa7fcypx7hvgwx9b5psj9l6m8b87k2hbw4fw";
+    url = "https://bitbucket.org/mpyne/game-music-emu/downloads/${pname}-${version}.tar.xz";
+    sha256 = "07857vdkak306d9s5g6fhmjyxk7vijzjhkmqb15s7ihfxx9lx8xb";
   };
 
   buildInputs = [ cmake ];
@@ -16,6 +16,6 @@ stdenv.mkDerivation rec {
     description = "A collection of video game music file emulators";
     license = licenses.lgpl21Plus;
     platforms = platforms.all;
-    maintainers = [ ];
+    maintainers = with maintainers; [ luc65r ];
   };
 }
diff --git a/pkgs/applications/audio/geonkick/default.nix b/pkgs/applications/audio/geonkick/default.nix
index 804aaf75feb..0e6f45194e5 100644
--- a/pkgs/applications/audio/geonkick/default.nix
+++ b/pkgs/applications/audio/geonkick/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "geonkick";
-  version = "2.5.1";
+  version = "2.6.1";
 
   src = fetchFromGitLab {
     owner = "iurie-sw";
     repo = pname;
     rev = "v${version}";
-    sha256 = "14svwrxqw15j6wjy3x8s28yyrafa31bm7d1ns5h6gvpndccwc1kw";
+    sha256 = "1l647j11pb9lkknnh4q99mmfcvr644b02lfcdjh98z60vqm1s54c";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/applications/audio/gpodder/default.nix b/pkgs/applications/audio/gpodder/default.nix
index 4a21868f097..b153298d978 100644
--- a/pkgs/applications/audio/gpodder/default.nix
+++ b/pkgs/applications/audio/gpodder/default.nix
@@ -5,14 +5,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "gpodder";
-  version = "3.10.16";
+  version = "3.10.17";
   format = "other";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "0pbpaasd7kj6y25nm45y1qyb9sxd4570f7g6zkfcpf6pa3nx7qkq";
+    sha256 = "0wrk8d4q6ricbcjzlhk10vrk1qg9hi323kgyyd0c8nmh7a82h8pd";
   };
 
   patches = [
diff --git a/pkgs/applications/audio/helio-workstation/default.nix b/pkgs/applications/audio/helio-workstation/default.nix
index 5fbfdc787eb..a4f58671283 100644
--- a/pkgs/applications/audio/helio-workstation/default.nix
+++ b/pkgs/applications/audio/helio-workstation/default.nix
@@ -5,14 +5,14 @@
 
 stdenv.mkDerivation rec {
   pname = "helio-workstation";
-  version = "3.1";
+  version = "3.3";
 
   src = fetchFromGitHub {
     owner = "helio-fm";
     repo = pname;
     rev = version;
     fetchSubmodules = true;
-    sha256 = "10pna4k43g648gapviykq2zk82iwy5rqff4lbfh5vzxqpg5v4ma6";
+    sha256 = "sha256-meeNqV1jKUwWc7P3p/LicPsbpzpKKFmQ1wP9DuXc9NY=";
   };
 
   buildInputs = [
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "One music sequencer for all major platforms, both desktop and mobile";
     homepage = "https://helio.fm/";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     maintainers = [ maintainers.suhr ];
     platforms = [ "x86_64-linux" ];
   };
diff --git a/pkgs/applications/audio/mda-lv2/default.nix b/pkgs/applications/audio/mda-lv2/default.nix
index 2464abb6585..6e96bf45294 100644
--- a/pkgs/applications/audio/mda-lv2/default.nix
+++ b/pkgs/applications/audio/mda-lv2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fftwSinglePrec, lv2, pkgconfig, wafHook }:
+{ stdenv, fetchurl, fftwSinglePrec, lv2, pkgconfig, wafHook, python3 }:
 
 stdenv.mkDerivation rec {
   pname = "mda-lv2";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1a3cv6w5xby9yn11j695rbh3c4ih7rxfxmkca9s1324ljphh06m8";
   };
 
-  nativeBuildInputs = [ pkgconfig wafHook ];
+  nativeBuildInputs = [ pkgconfig wafHook python3 ];
   buildInputs = [ fftwSinglePrec lv2 ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/audio/milkytracker/default.nix b/pkgs/applications/audio/milkytracker/default.nix
index 405787e8871..5a76e55d667 100644
--- a/pkgs/applications/audio/milkytracker/default.nix
+++ b/pkgs/applications/audio/milkytracker/default.nix
@@ -2,14 +2,14 @@
 , SDL2, alsaLib, libjack2, lhasa, perl, rtmidi, zlib, zziplib }:
 
 stdenv.mkDerivation rec {
-  version = "1.02.00";
+  version = "1.03.00";
   pname = "milkytracker";
 
   src = fetchFromGitHub {
     owner  = "milkytracker";
     repo   = "MilkyTracker";
     rev    = "v${version}";
-    sha256 = "05a6d7l98k9i82dwrgi855dnccm3f2lkb144gi244vhk1156n0ca";
+    sha256 = "025fj34gq2kmkpwcswcyx7wdxb89vm944dh685zi4bxx0hz16vvk";
   };
 
   nativeBuildInputs = [ cmake pkgconfig makeWrapper ];
diff --git a/pkgs/applications/audio/mopidy/default.nix b/pkgs/applications/audio/mopidy/default.nix
index fc532482cba..f4d4e416de4 100644
--- a/pkgs/applications/audio/mopidy/default.nix
+++ b/pkgs/applications/audio/mopidy/default.nix
@@ -14,9 +14,9 @@ let
 
     mopidy-gmusic = callPackage ./gmusic.nix { };
 
-    mopidy-local = callPackage ./local.nix { };
+    mopidy-iris = callPackage ./iris.nix { };
 
-    mopidy-spotify = callPackage ./spotify.nix { };
+    mopidy-local = callPackage ./local.nix { };
 
     mopidy-moped = callPackage ./moped.nix { };
 
@@ -26,20 +26,21 @@ let
 
     mopidy-mpris = callPackage ./mpris.nix { };
 
-    mopidy-somafm = callPackage ./somafm.nix { };
+    mopidy-musicbox-webclient = callPackage ./musicbox-webclient.nix { };
 
-    mopidy-spotify-tunigo = callPackage ./spotify-tunigo.nix { };
+    mopidy-scrobbler = callPackage ./scrobbler.nix { };
 
-    mopidy-youtube = callPackage ./youtube.nix { };
+    mopidy-somafm = callPackage ./somafm.nix { };
 
     mopidy-soundcloud = callPackage ./soundcloud.nix { };
 
-    mopidy-musicbox-webclient = callPackage ./musicbox-webclient.nix { };
+    mopidy-spotify = callPackage ./spotify.nix { };
 
-    mopidy-iris = callPackage ./iris.nix { };
+    mopidy-spotify-tunigo = callPackage ./spotify-tunigo.nix { };
 
     mopidy-tunein = callPackage ./tunein.nix { };
 
+    mopidy-youtube = callPackage ./youtube.nix { };
   };
 
 in self
diff --git a/pkgs/applications/audio/mopidy/iris.nix b/pkgs/applications/audio/mopidy/iris.nix
index 48f955fd713..a8530a30458 100644
--- a/pkgs/applications/audio/mopidy/iris.nix
+++ b/pkgs/applications/audio/mopidy/iris.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "Mopidy-Iris";
-  version = "3.50.0";
+  version = "3.54.0";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "04miwf0dqb8jir9g7xkfnn3l62bdn74ap03kqzz2v3byg64f1p0g";
+    sha256 = "0qnshn77dv7fl6smwnpnbq67mbc1vic9gf85skiqnqy8v8w5829f";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/audio/mopidy/local.nix b/pkgs/applications/audio/mopidy/local.nix
index 43554280565..6cbb8424d35 100644
--- a/pkgs/applications/audio/mopidy/local.nix
+++ b/pkgs/applications/audio/mopidy/local.nix
@@ -5,11 +5,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "Mopidy-Local";
-  version = "3.1.1";
+  version = "3.2.0";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "13m0iz14lyplnpm96gfpisqvv4n89ls30kmkg21z7v238lm0h19j";
+    sha256 = "14f78sb3wkg83dg3xcqlq77dh059zzcwry5l9ilyhnmvmyrkhqx0";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/audio/mopidy/mopidy.nix b/pkgs/applications/audio/mopidy/mopidy.nix
index eb5672fe135..f2f3734ec2e 100644
--- a/pkgs/applications/audio/mopidy/mopidy.nix
+++ b/pkgs/applications/audio/mopidy/mopidy.nix
@@ -38,10 +38,6 @@ pythonPackages.buildPythonApplication rec {
   # There are no tests
   doCheck = false;
 
-  preFixup = ''
-    gappsWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH")
-  '';
-
   meta = with stdenv.lib; {
     homepage = "https://www.mopidy.com/";
     description = ''
diff --git a/pkgs/applications/audio/mopidy/scrobbler.nix b/pkgs/applications/audio/mopidy/scrobbler.nix
new file mode 100644
index 00000000000..19c5a29c8a4
--- /dev/null
+++ b/pkgs/applications/audio/mopidy/scrobbler.nix
@@ -0,0 +1,24 @@
+{ stdenv, python3Packages, mopidy }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "Mopidy-Scrobbler";
+  version = "2.0.1";
+
+  src = python3Packages.fetchPypi {
+    inherit pname version;
+    sha256 = "11vxgax4xgkggnq4fr1rh2rcvzspkkimck5p3h4phdj3qpnj0680";
+  };
+
+  propagatedBuildInputs = with python3Packages; [ mopidy pylast ];
+
+  # no tests implemented
+  doCheck = false;
+  pythonImportsCheck = [ "mopidy_scrobbler" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/mopidy/mopidy-scrobbler";
+    description = "Mopidy extension for scrobbling played tracks to Last.fm.";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ jakeisnt ];
+  };
+}
diff --git a/pkgs/applications/audio/mopidy/tunein.nix b/pkgs/applications/audio/mopidy/tunein.nix
index 9ab03232052..90deea7c02b 100644
--- a/pkgs/applications/audio/mopidy/tunein.nix
+++ b/pkgs/applications/audio/mopidy/tunein.nix
@@ -2,21 +2,18 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "mopidy-tunein";
-  version = "1.0.0";
+  version = "1.0.2";
 
   src = python3Packages.fetchPypi {
     inherit version;
     pname = "Mopidy-TuneIn";
-    sha256 = "0insasf4w8ajsqjh5zmax7pkzmrk1p245vh4y8ddicldj45p6qfj";
+    sha256 = "1mvfhka8wi835yk9869yn3b6mdkfwqkylp14vpjkbm42d0kj4lkc";
   };
 
   propagatedBuildInputs = [
     mopidy
   ];
 
-  # tests fail with "ValueError: Namespace Gst not available" in mopidy itself
-  doCheck = false;
-
   pythonImportsCheck = [ "mopidy_tunein.tunein" ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/audio/mp3gain/default.nix b/pkgs/applications/audio/mp3gain/default.nix
index f2b4564c7cc..4502acfa113 100644
--- a/pkgs/applications/audio/mp3gain/default.nix
+++ b/pkgs/applications/audio/mp3gain/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, unzip, mpg123 }:
+{ stdenv, fetchurl, fetchpatch, unzip, mpg123 }:
 
 stdenv.mkDerivation {
   name = "mp3gain-1.6.2";
@@ -11,17 +11,25 @@ stdenv.mkDerivation {
 
   sourceRoot = ".";
 
+  patches = [
+    (fetchpatch {
+      name = "0001-fix-security-bugs.patch";
+      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-sound/mp3gain/files/mp3gain-1.6.2-CVE-2019-18359-plus.patch?id=36f8689f7903548f5d89827a6e7bdf70a9882cee";
+      sha256 = "10n53wm0xynlcxqlnaqfgamjzcpfz41q1jlg0bhw4kq1kzhs4yyw";
+    })
+  ];
+
   buildFlags = [ "OSTYPE=linux" ];
 
   installPhase = ''
     install -vD mp3gain "$out/bin/mp3gain"
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Lossless mp3 normalizer with statistical analysis";
     homepage = "http://mp3gain.sourceforge.net/";
-    license = stdenv.lib.licenses.lgpl21;
-    platforms = stdenv.lib.platforms.linux;
-    maintainers = [ stdenv.lib.maintainers.devhell ];
+    license = licenses.lgpl21;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ devhell ];
   };
 }
diff --git a/pkgs/applications/audio/ncmpcpp/default.nix b/pkgs/applications/audio/ncmpcpp/default.nix
index f8adc522fcb..33308ebc61a 100644
--- a/pkgs/applications/audio/ncmpcpp/default.nix
+++ b/pkgs/applications/audio/ncmpcpp/default.nix
@@ -12,11 +12,11 @@ assert taglibSupport -> (taglib != null);
 with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "ncmpcpp";
-  version = "0.8.2";
+  version = "0.9.1";
 
   src = fetchurl {
-    url = "https://ncmpcpp.rybczak.net/stable/${pname}-${version}.tar.bz2";
-    sha256 = "0m0mjb049sl62vx13h9waavysa30mk0rphacksnvf94n13la62v5";
+    url = "https://rybczak.net/ncmpcpp/stable/${pname}-${version}.tar.bz2";
+    sha256 = "0x35nd4v31sma8fliqdbn1nxpjyi8hv472318sfb3xbmr4wlm0fb";
   };
 
   configureFlags = [ "BOOST_LIB_SUFFIX=" ]
@@ -33,7 +33,8 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A featureful ncurses based MPD client inspired by ncmpc";
-    homepage    = "https://ncmpcpp.rybczak.net/";
+    homepage    = "https://rybczak.net/ncmpcpp/";
+    changelog   = "https://github.com/ncmpcpp/ncmpcpp/blob/${version}/CHANGELOG.md";
     license     = licenses.gpl2Plus;
     maintainers = with maintainers; [ jfrankenau koral lovek323 ];
     platforms   = platforms.all;
diff --git a/pkgs/applications/audio/ncspot/default.nix b/pkgs/applications/audio/ncspot/default.nix
index 623682f4173..a1019880318 100644
--- a/pkgs/applications/audio/ncspot/default.nix
+++ b/pkgs/applications/audio/ncspot/default.nix
@@ -14,16 +14,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "ncspot";
-  version = "0.2.5";
+  version = "0.2.6";
 
   src = fetchFromGitHub {
     owner = "hrkfdn";
     repo = "ncspot";
     rev = "v${version}";
-    sha256 = "19jy1ma2viqnyfbqdpm4cf8mpdrc0xyxrk7sayx1b7dqmkxcyp5c";
+    sha256 = "0x40qzgw9zcih4q6mzclb7gqkw8h76hrmqzmg6nimpla29jcdxss";
   };
 
-  cargoSha256 = "0lgd4ff70qsjplm847hkx1hgs3kpwv2ahmgyhsld3mng3k7qfm09";
+  cargoSha256 = "1pfl7cblf7d4ci514vlkdh1ybgby71x4aszxmlsrqmn92bq56jys";
 
   cargoBuildFlags = [ "--no-default-features" "--features" "${lib.concatStringsSep "," features}" ];
 
diff --git a/pkgs/applications/audio/netease-music-tui/cargo-lock.patch b/pkgs/applications/audio/netease-music-tui/cargo-lock.patch
new file mode 100644
index 00000000000..2b3366476d6
--- /dev/null
+++ b/pkgs/applications/audio/netease-music-tui/cargo-lock.patch
@@ -0,0 +1,2309 @@
+diff --git a/Cargo.lock b/Cargo.lock
+new file mode 100644
+index 0000000..45720a8
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,2303 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++[[package]]
++name = "addr2line"
++version = "0.14.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7c0929d69e78dd9bf5408269919fcbcaeb2e35e5d43e5815517cdc6a8e11a423"
++dependencies = [
++ "gimli",
++]
++
++[[package]]
++name = "adler"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e"
++
++[[package]]
++name = "aho-corasick"
++version = "0.7.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5"
++dependencies = [
++ "memchr",
++]
++
++[[package]]
++name = "alsa-sys"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b0edcbbf9ef68f15ae1b620f722180b82a98b6f0628d30baa6b8d2a5abc87d58"
++dependencies = [
++ "libc",
++ "pkg-config",
++]
++
++[[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 = "async-compression"
++version = "0.3.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b72c1f1154e234325b50864a349b9c8e56939e266a4c307c0f159812df2f9537"
++dependencies = [
++ "bytes 0.5.6",
++ "flate2",
++ "futures-core",
++ "memchr",
++ "pin-project-lite 0.2.0",
++]
++
++[[package]]
++name = "autocfg"
++version = "1.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
++
++[[package]]
++name = "backtrace"
++version = "0.3.55"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ef5140344c85b01f9bbb4d4b7288a8aa4b3287ccef913a14bcc78a1063623598"
++dependencies = [
++ "addr2line",
++ "cfg-if 1.0.0",
++ "libc",
++ "miniz_oxide",
++ "object",
++ "rustc-demangle",
++]
++
++[[package]]
++name = "base-x"
++version = "0.2.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b"
++
++[[package]]
++name = "base64"
++version = "0.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
++
++[[package]]
++name = "base64"
++version = "0.13.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
++
++[[package]]
++name = "bindgen"
++version = "0.56.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2da379dbebc0b76ef63ca68d8fc6e71c0f13e59432e0987e508c1820e6ab5239"
++dependencies = [
++ "bitflags",
++ "cexpr",
++ "clang-sys",
++ "lazy_static 1.4.0",
++ "lazycell",
++ "peeking_take_while",
++ "proc-macro2",
++ "quote",
++ "regex",
++ "rustc-hash",
++ "shlex",
++]
++
++[[package]]
++name = "bitflags"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
++
++[[package]]
++name = "blake2b_simd"
++version = "0.5.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587"
++dependencies = [
++ "arrayref",
++ "arrayvec",
++ "constant_time_eq",
++]
++
++[[package]]
++name = "bumpalo"
++version = "3.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820"
++
++[[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",
++ "iovec",
++]
++
++[[package]]
++name = "bytes"
++version = "0.5.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38"
++
++[[package]]
++name = "cassowary"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53"
++
++[[package]]
++name = "cc"
++version = "1.0.66"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4c0496836a84f8d0495758516b8621a622beb77c0fed418570e50764093ced48"
++
++[[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 0.2.14",
++ "time 0.1.44",
++ "winapi 0.3.9",
++]
++
++[[package]]
++name = "clang-sys"
++version = "1.0.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0659001ab56b791be01d4b729c44376edc6718cf389a502e579b77b758f3296c"
++dependencies = [
++ "glob",
++ "libc",
++ "libloading",
++]
++
++[[package]]
++name = "claxon"
++version = "0.4.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4bfbf56724aa9eca8afa4fcfadeb479e722935bb2a0900c2d37e0cc477af0688"
++
++[[package]]
++name = "config"
++version = "0.9.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f9107d78ed62b3fa5a86e7d18e647abed48cfd8f8fab6c72f4cdb982d196f7e6"
++dependencies = [
++ "lazy_static 1.4.0",
++ "nom 4.2.3",
++ "rust-ini",
++ "serde 1.0.118",
++ "serde-hjson",
++ "serde_json",
++ "toml",
++ "yaml-rust",
++]
++
++[[package]]
++name = "const_fn"
++version = "0.4.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cd51eab21ab4fd6a3bf889e2d0958c0a6e3a61ad04260325e919e652a2a62826"
++
++[[package]]
++name = "constant_time_eq"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
++
++[[package]]
++name = "cookie"
++version = "0.14.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "784ad0fbab4f3e9cef09f20e0aea6000ae08d2cb98ac4c0abc53df18803d702f"
++dependencies = [
++ "percent-encoding",
++ "time 0.2.23",
++ "version_check 0.9.2",
++]
++
++[[package]]
++name = "cookie_store"
++version = "0.12.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3818dfca4b0cb5211a659bbcbb94225b7127407b2b135e650d717bfb78ab10d3"
++dependencies = [
++ "cookie",
++ "idna",
++ "log",
++ "publicsuffix",
++ "serde 1.0.118",
++ "serde_json",
++ "time 0.2.23",
++ "url",
++]
++
++[[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.6.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b"
++
++[[package]]
++name = "core-foundation-sys"
++version = "0.8.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b"
++
++[[package]]
++name = "coreaudio-rs"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f229761965dad3e9b11081668a6ea00f1def7aa46062321b5ec245b834f6e491"
++dependencies = [
++ "bitflags",
++ "coreaudio-sys",
++]
++
++[[package]]
++name = "coreaudio-sys"
++version = "0.2.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2b7e3347be6a09b46aba228d6608386739fb70beff4f61e07422da87b0bb31fa"
++dependencies = [
++ "bindgen",
++]
++
++[[package]]
++name = "cpal"
++version = "0.10.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3ded070249be850b5b59e1e3a44a70b8ae395e0e5c65b487131d8909a8208120"
++dependencies = [
++ "alsa-sys",
++ "core-foundation-sys 0.6.2",
++ "coreaudio-rs",
++ "failure",
++ "lazy_static 1.4.0",
++ "libc",
++ "num-traits 0.2.14",
++ "stdweb 0.1.3",
++ "winapi 0.3.9",
++]
++
++[[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-utils"
++version = "0.8.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d"
++dependencies = [
++ "autocfg",
++ "cfg-if 1.0.0",
++ "lazy_static 1.4.0",
++]
++
++[[package]]
++name = "dbus"
++version = "0.7.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "add8dd36d6d34a084220eb9fe216d3e230d52b37c31702e1ffda4fb2d4ef950e"
++dependencies = [
++ "libc",
++ "libdbus-sys",
++]
++
++[[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.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8e93d7f5705de3e49895a2b5e0b8855a1c27f080192ae9c32a6432d50741a57a"
++dependencies = [
++ "libc",
++ "redox_users",
++ "winapi 0.3.9",
++]
++
++[[package]]
++name = "discard"
++version = "1.0.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0"
++
++[[package]]
++name = "dtoa"
++version = "0.4.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "134951f4028bdadb9b84baf4232681efbf277da25144b9b0ad65df75946c422b"
++
++[[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.26"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "801bbab217d7f79c0062f4f7205b5d4427c6d1a7bd7aafdd1475f7c59d62b283"
++dependencies = [
++ "cfg-if 1.0.0",
++]
++
++[[package]]
++name = "error-chain"
++version = "0.12.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc"
++dependencies = [
++ "version_check 0.9.2",
++]
++
++[[package]]
++name = "failure"
++version = "0.1.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86"
++dependencies = [
++ "backtrace",
++ "failure_derive",
++]
++
++[[package]]
++name = "failure_derive"
++version = "0.1.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++ "synstructure",
++]
++
++[[package]]
++name = "flate2"
++version = "1.0.19"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7411863d55df97a419aa64cb4d2f167103ea9d767e2c54a1868b7ac3f6b47129"
++dependencies = [
++ "cfg-if 1.0.0",
++ "crc32fast",
++ "libc",
++ "miniz_oxide",
++]
++
++[[package]]
++name = "fnv"
++version = "1.0.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
++
++[[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 = "form_urlencoded"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ece68d15c92e84fa4f19d3780f1294e5ca82a78a6d515f1efaabcc144688be00"
++dependencies = [
++ "matches",
++ "percent-encoding",
++]
++
++[[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.3.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9b3b0c040a1fe6529d30b3c5944b280c7f0dcb2930d2c3062bca967b602583d0"
++dependencies = [
++ "futures-channel",
++ "futures-core",
++ "futures-executor",
++ "futures-io",
++ "futures-sink",
++ "futures-task",
++ "futures-util",
++]
++
++[[package]]
++name = "futures-channel"
++version = "0.3.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4b7109687aa4e177ef6fe84553af6280ef2778bdb7783ba44c9dc3399110fe64"
++dependencies = [
++ "futures-core",
++ "futures-sink",
++]
++
++[[package]]
++name = "futures-core"
++version = "0.3.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "847ce131b72ffb13b6109a221da9ad97a64cbe48feb1028356b836b47b8f1748"
++
++[[package]]
++name = "futures-executor"
++version = "0.3.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4caa2b2b68b880003057c1dd49f1ed937e38f22fcf6c212188a121f08cf40a65"
++dependencies = [
++ "futures-core",
++ "futures-task",
++ "futures-util",
++]
++
++[[package]]
++name = "futures-io"
++version = "0.3.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "611834ce18aaa1bd13c4b374f5d653e1027cf99b6b502584ff8c9a64413b30bb"
++
++[[package]]
++name = "futures-macro"
++version = "0.3.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "77408a692f1f97bcc61dc001d752e00643408fbc922e4d634c655df50d595556"
++dependencies = [
++ "proc-macro-hack",
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "futures-sink"
++version = "0.3.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f878195a49cee50e006b02b93cf7e0a95a38ac7b776b4c4d9cc1207cd20fcb3d"
++
++[[package]]
++name = "futures-task"
++version = "0.3.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7c554eb5bf48b2426c4771ab68c6b14468b6e76cc90996f528c3338d761a4d0d"
++dependencies = [
++ "once_cell",
++]
++
++[[package]]
++name = "futures-util"
++version = "0.3.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d304cff4a7b99cfb7986f7d43fbe93d175e72e704a8860787cc95e9ffd85cbd2"
++dependencies = [
++ "futures-channel",
++ "futures-core",
++ "futures-io",
++ "futures-macro",
++ "futures-sink",
++ "futures-task",
++ "memchr",
++ "pin-project 1.0.2",
++ "pin-utils",
++ "proc-macro-hack",
++ "proc-macro-nested",
++ "slab",
++]
++
++[[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 0.9.0+wasi-snapshot-preview1",
++]
++
++[[package]]
++name = "gimli"
++version = "0.23.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce"
++
++[[package]]
++name = "glob"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
++
++[[package]]
++name = "h2"
++version = "0.2.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5e4728fd124914ad25e99e3d15a9361a879f6620f63cb56bbb08f95abb97a535"
++dependencies = [
++ "bytes 0.5.6",
++ "fnv",
++ "futures-core",
++ "futures-sink",
++ "futures-util",
++ "http",
++ "indexmap",
++ "slab",
++ "tokio",
++ "tokio-util",
++ "tracing",
++ "tracing-futures",
++]
++
++[[package]]
++name = "hashbrown"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04"
++
++[[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 = "hound"
++version = "3.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8a164bb2ceaeff4f42542bdb847c41517c78a60f5649671b2a07312b6e117549"
++
++[[package]]
++name = "http"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "84129d298a6d57d246960ff8eb831ca4af3f96d29e2e28848dae275408658e26"
++dependencies = [
++ "bytes 0.5.6",
++ "fnv",
++ "itoa",
++]
++
++[[package]]
++name = "http-body"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b"
++dependencies = [
++ "bytes 0.5.6",
++ "http",
++]
++
++[[package]]
++name = "httparse"
++version = "1.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
++
++[[package]]
++name = "httpdate"
++version = "0.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47"
++
++[[package]]
++name = "hyper"
++version = "0.13.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f6ad767baac13b44d4529fcf58ba2cd0995e36e7b435bc5b039de6f47e880dbf"
++dependencies = [
++ "bytes 0.5.6",
++ "futures-channel",
++ "futures-core",
++ "futures-util",
++ "h2",
++ "http",
++ "http-body",
++ "httparse",
++ "httpdate",
++ "itoa",
++ "pin-project 1.0.2",
++ "socket2",
++ "tokio",
++ "tower-service",
++ "tracing",
++ "want",
++]
++
++[[package]]
++name = "hyper-tls"
++version = "0.4.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d979acc56dcb5b8dddba3917601745e877576475aa046df3226eabdecef78eed"
++dependencies = [
++ "bytes 0.5.6",
++ "hyper",
++ "native-tls",
++ "tokio",
++ "tokio-tls",
++]
++
++[[package]]
++name = "idna"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
++dependencies = [
++ "matches",
++ "unicode-bidi",
++ "unicode-normalization",
++]
++
++[[package]]
++name = "indexmap"
++version = "1.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4fb1fa934250de4de8aef298d81c729a7d33d8c239daa3a7575e6b92bfc7313b"
++dependencies = [
++ "autocfg",
++ "hashbrown",
++]
++
++[[package]]
++name = "iovec"
++version = "0.1.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "ipnet"
++version = "2.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "47be2f14c678be2fdcab04ab1171db51b2762ce6f0a8ee87c8dd4a04ed216135"
++
++[[package]]
++name = "itertools"
++version = "0.8.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484"
++dependencies = [
++ "either",
++]
++
++[[package]]
++name = "itoa"
++version = "0.4.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
++
++[[package]]
++name = "js-sys"
++version = "0.3.46"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf3d7383929f7c9c7c2d0fa596f325832df98c3704f2c60553080f7127a58175"
++dependencies = [
++ "wasm-bindgen",
++]
++
++[[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 = "0.2.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73"
++
++[[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 = "lewton"
++version = "0.9.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8d542c1a317036c45c2aa1cf10cc9d403ca91eb2d333ef1a4917e5cb10628bd0"
++dependencies = [
++ "byteorder",
++ "ogg",
++ "smallvec",
++]
++
++[[package]]
++name = "libc"
++version = "0.2.81"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1482821306169ec4d07f6aca392a4681f66c75c9918aa49641a2595db64053cb"
++
++[[package]]
++name = "libdbus-sys"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dc12a3bc971424edbbf7edaf6e5740483444db63aa8e23d3751ff12a30f306f0"
++dependencies = [
++ "pkg-config",
++]
++
++[[package]]
++name = "libloading"
++version = "0.6.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e9367bdfa836b7e3cf895867f7a570283444da90562980ec2263d6e1569b16bc"
++dependencies = [
++ "cfg-if 1.0.0",
++ "winapi 0.3.9",
++]
++
++[[package]]
++name = "linked-hash-map"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6d262045c5b87c0861b3f004610afd0e2c851e2908d08b6c870cbb9d5f494ecd"
++dependencies = [
++ "serde 0.8.23",
++ "serde_test",
++]
++
++[[package]]
++name = "linked-hash-map"
++version = "0.5.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8dd5a6d5999d9907cda8ed67bbd137d3af8085216c2ac62de5be860bd41f304a"
++
++[[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",
++]
++
++[[package]]
++name = "log-panics"
++version = "2.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ae0136257df209261daa18d6c16394757c63e032e27aafd8b07788b051082bef"
++dependencies = [
++ "log",
++]
++
++[[package]]
++name = "mach"
++version = "0.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "matches"
++version = "0.1.8"
++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.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
++
++[[package]]
++name = "mime"
++version = "0.3.16"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
++
++[[package]]
++name = "mime_guess"
++version = "2.0.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2684d4c2e97d99848d30b324b00c8fcc7e5c897b7cbb5819b09e7c90e8baf212"
++dependencies = [
++ "mime",
++ "unicase",
++]
++
++[[package]]
++name = "minimp3"
++version = "0.3.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dce0cff6a0bfd3f8b6b2350819bbddd63bc65cc45e53888bdd0ff49dde16d2d5"
++dependencies = [
++ "minimp3-sys",
++ "slice-deque",
++]
++
++[[package]]
++name = "minimp3-sys"
++version = "0.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e21c73734c69dc95696c9ed8926a2b393171d98b3f5f5935686a26a487ab9b90"
++dependencies = [
++ "cc",
++]
++
++[[package]]
++name = "miniz_oxide"
++version = "0.4.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0f2d26ec3309788e423cfbf68ad1800f061638098d76a83681af979dc4eda19d"
++dependencies = [
++ "adler",
++ "autocfg",
++]
++
++[[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",
++ "net2",
++ "slab",
++ "winapi 0.2.8",
++]
++
++[[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 = "mp3-duration"
++version = "0.1.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "348bdc7300502f0801e5b57c448815713cd843b744ef9bda252a2698fdf90a0f"
++dependencies = [
++ "thiserror",
++]
++
++[[package]]
++name = "native-tls"
++version = "0.2.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6fcc7939b5edc4e4f86b1b4a04bb1498afaaf871b1a6691838ed06fcb48d3a3f"
++dependencies = [
++ "lazy_static 1.4.0",
++ "libc",
++ "log",
++ "openssl",
++ "openssl-probe",
++ "openssl-sys",
++ "schannel",
++ "security-framework",
++ "security-framework-sys",
++ "tempfile",
++]
++
++[[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 = "netease_music_tui"
++version = "0.1.1"
++dependencies = [
++ "base64 0.11.0",
++ "byteorder",
++ "bytes 0.4.12",
++ "chrono",
++ "config",
++ "dbus",
++ "dirs",
++ "failure",
++ "futures",
++ "hex",
++ "lazy_static 1.4.0",
++ "log",
++ "log-panics",
++ "mp3-duration",
++ "num-bigint",
++ "openssl",
++ "rand",
++ "regex",
++ "reqwest",
++ "rodio",
++ "serde 1.0.118",
++ "serde_derive",
++ "serde_json",
++ "serde_urlencoded 0.6.1",
++ "simple-logging",
++ "tempfile",
++ "termion",
++ "tokio",
++ "tui",
++ "unicode-width",
++]
++
++[[package]]
++name = "nom"
++version = "4.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6"
++dependencies = [
++ "memchr",
++ "version_check 0.1.5",
++]
++
++[[package]]
++name = "nom"
++version = "5.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
++dependencies = [
++ "memchr",
++ "version_check 0.9.2",
++]
++
++[[package]]
++name = "num-bigint"
++version = "0.2.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304"
++dependencies = [
++ "autocfg",
++ "num-integer",
++ "num-traits 0.2.14",
++]
++
++[[package]]
++name = "num-integer"
++version = "0.1.44"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
++dependencies = [
++ "autocfg",
++ "num-traits 0.2.14",
++]
++
++[[package]]
++name = "num-traits"
++version = "0.1.43"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
++dependencies = [
++ "num-traits 0.2.14",
++]
++
++[[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 = "numtoa"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef"
++
++[[package]]
++name = "object"
++version = "0.22.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8d3b63360ec3cb337817c2dbd47ab4a0f170d285d8e5a2064600f3def1402397"
++
++[[package]]
++name = "ogg"
++version = "0.7.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "13e571c3517af9e1729d4c63571a27edd660ade0667973bfc74a67c660c2b651"
++dependencies = [
++ "byteorder",
++]
++
++[[package]]
++name = "once_cell"
++version = "1.5.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0"
++
++[[package]]
++name = "openssl"
++version = "0.10.32"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "038d43985d1ddca7a9900630d8cd031b56e4794eecc2e9ea39dd17aa04399a70"
++dependencies = [
++ "bitflags",
++ "cfg-if 1.0.0",
++ "foreign-types",
++ "lazy_static 1.4.0",
++ "libc",
++ "openssl-sys",
++]
++
++[[package]]
++name = "openssl-probe"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
++
++[[package]]
++name = "openssl-sys"
++version = "0.9.60"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "921fc71883267538946025deffb622905ecad223c28efbfdef9bb59a0175f3e6"
++dependencies = [
++ "autocfg",
++ "cc",
++ "libc",
++ "pkg-config",
++ "vcpkg",
++]
++
++[[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.27"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2ffbc8e94b38ea3d2d8ba92aea2983b503cd75d0888d75b86bb37970b5698e15"
++dependencies = [
++ "pin-project-internal 0.4.27",
++]
++
++[[package]]
++name = "pin-project"
++version = "1.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9ccc2237c2c489783abd8c4c80e5450fc0e98644555b1364da68cc29aa151ca7"
++dependencies = [
++ "pin-project-internal 1.0.2",
++]
++
++[[package]]
++name = "pin-project-internal"
++version = "0.4.27"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "65ad2ae56b6abe3a1ee25f15ee605bacadb9a764edaba9c2bf4103800d4a1895"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "pin-project-internal"
++version = "1.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f8e8d2bf0b23038a4424865103a4df472855692821aab4e4f5c3312d461d9e5f"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "pin-project-lite"
++version = "0.1.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c917123afa01924fc84bb20c4c03f004d9c38e5127e3c039bbf7f4b9c76a2f6b"
++
++[[package]]
++name = "pin-project-lite"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6b063f57ec186e6140e2b8b6921e5f1bd89c7356dda5b33acc5401203ca6131c"
++
++[[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 = "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-macro-nested"
++version = "0.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a"
++
++[[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 = "publicsuffix"
++version = "1.5.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3bbaa49075179162b49acac1c6aa45fb4dafb5f13cf6794276d77bc7fd95757b"
++dependencies = [
++ "error-chain",
++ "idna",
++ "lazy_static 1.4.0",
++ "regex",
++ "url",
++]
++
++[[package]]
++name = "quote"
++version = "1.0.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "991431c3519a3f36861882da93630ce66b52918dcf1b8e2fd66b397fc96f28df"
++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 = "redox_syscall"
++version = "0.1.57"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
++
++[[package]]
++name = "redox_termios"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76"
++dependencies = [
++ "redox_syscall",
++]
++
++[[package]]
++name = "redox_users"
++version = "0.3.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d"
++dependencies = [
++ "getrandom",
++ "redox_syscall",
++ "rust-argon2",
++]
++
++[[package]]
++name = "regex"
++version = "1.4.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "38cf2c13ed4745de91a5eb834e11c00bcc3709e773173b2ce4c56c9fbde04b9c"
++dependencies = [
++ "aho-corasick",
++ "memchr",
++ "regex-syntax",
++ "thread_local",
++]
++
++[[package]]
++name = "regex-syntax"
++version = "0.6.21"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3b181ba2dcf07aaccad5448e8ead58db5b742cf85dfe035e2227f137a539a189"
++
++[[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",
++]
++
++[[package]]
++name = "reqwest"
++version = "0.10.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0718f81a8e14c4dbb3b34cf23dc6aaf9ab8a0dfec160c534b3dbca1aaa21f47c"
++dependencies = [
++ "async-compression",
++ "base64 0.13.0",
++ "bytes 0.5.6",
++ "cookie",
++ "cookie_store",
++ "encoding_rs",
++ "futures-core",
++ "futures-util",
++ "http",
++ "http-body",
++ "hyper",
++ "hyper-tls",
++ "ipnet",
++ "js-sys",
++ "lazy_static 1.4.0",
++ "log",
++ "mime",
++ "mime_guess",
++ "native-tls",
++ "percent-encoding",
++ "pin-project-lite 0.2.0",
++ "serde 1.0.118",
++ "serde_urlencoded 0.7.0",
++ "time 0.2.23",
++ "tokio",
++ "tokio-socks",
++ "tokio-tls",
++ "url",
++ "wasm-bindgen",
++ "wasm-bindgen-futures",
++ "web-sys",
++ "winreg",
++]
++
++[[package]]
++name = "rodio"
++version = "0.10.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1e0e0dfa7c8b17c6428f6e992a22ea595922cc86f946191b6b59e7ce96b77262"
++dependencies = [
++ "claxon",
++ "cpal",
++ "hound",
++ "lazy_static 1.4.0",
++ "lewton",
++ "minimp3",
++]
++
++[[package]]
++name = "rust-argon2"
++version = "0.8.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb"
++dependencies = [
++ "base64 0.13.0",
++ "blake2b_simd",
++ "constant_time_eq",
++ "crossbeam-utils",
++]
++
++[[package]]
++name = "rust-ini"
++version = "0.13.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3e52c148ef37f8c375d49d5a73aa70713125b7f19095948a923f80afdeb22ec2"
++
++[[package]]
++name = "rustc-demangle"
++version = "0.1.18"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6e3bad0ee36814ca07d7968269dd4b7ec89ec2da10c4bb613928d3077083c232"
++
++[[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 = "ryu"
++version = "1.0.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
++
++[[package]]
++name = "schannel"
++version = "0.1.19"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75"
++dependencies = [
++ "lazy_static 1.4.0",
++ "winapi 0.3.9",
++]
++
++[[package]]
++name = "security-framework"
++version = "2.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c1759c2e3c8580017a484a7ac56d3abc5a6c1feadf88db2f3633f12ae4268c69"
++dependencies = [
++ "bitflags",
++ "core-foundation",
++ "core-foundation-sys 0.8.2",
++ "libc",
++ "security-framework-sys",
++]
++
++[[package]]
++name = "security-framework-sys"
++version = "2.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f99b9d5e26d2a71633cc4f2ebae7cc9f874044e0c351a27e17892d76dce5678b"
++dependencies = [
++ "core-foundation-sys 0.8.2",
++ "libc",
++]
++
++[[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 = "0.8.23"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9dad3f759919b92c3068c696c15c3d17238234498bbdcc80f2c469606f948ac8"
++
++[[package]]
++name = "serde"
++version = "1.0.118"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "06c64263859d87aa2eb554587e2d23183398d617427327cf2b3d0ed8c69e4800"
++dependencies = [
++ "serde_derive",
++]
++
++[[package]]
++name = "serde-hjson"
++version = "0.8.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0b833c5ad67d52ced5f5938b2980f32a9c1c5ef047f0b4fb3127e7a423c76153"
++dependencies = [
++ "lazy_static 0.2.11",
++ "linked-hash-map 0.3.0",
++ "num-traits 0.1.43",
++ "regex",
++ "serde 0.8.23",
++]
++
++[[package]]
++name = "serde_derive"
++version = "1.0.118"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c84d3526699cd55261af4b941e4e725444df67aa4f9e6a3564f18030d12672df"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "serde_json"
++version = "1.0.60"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1500e84d27fe482ed1dc791a56eddc2f230046a040fa908c08bda1d9fb615779"
++dependencies = [
++ "itoa",
++ "ryu",
++ "serde 1.0.118",
++]
++
++[[package]]
++name = "serde_test"
++version = "0.8.23"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "110b3dbdf8607ec493c22d5d947753282f3bae73c0f56d322af1e8c78e4c23d5"
++dependencies = [
++ "serde 0.8.23",
++]
++
++[[package]]
++name = "serde_urlencoded"
++version = "0.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9ec5d77e2d4c73717816afac02670d5c4f534ea95ed430442cad02e7a6e32c97"
++dependencies = [
++ "dtoa",
++ "itoa",
++ "serde 1.0.118",
++ "url",
++]
++
++[[package]]
++name = "serde_urlencoded"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "edfa57a7f8d9c1d260a549e7224100f6c43d43f9103e06dd8b4095a9b2b43ce9"
++dependencies = [
++ "form_urlencoded",
++ "itoa",
++ "ryu",
++ "serde 1.0.118",
++]
++
++[[package]]
++name = "sha1"
++version = "0.6.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d"
++
++[[package]]
++name = "shlex"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
++
++[[package]]
++name = "simple-logging"
++version = "2.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b00d48e85675326bb182a2286ea7c1a0b264333ae10f27a937a72be08628b542"
++dependencies = [
++ "lazy_static 1.4.0",
++ "log",
++ "thread-id",
++]
++
++[[package]]
++name = "slab"
++version = "0.4.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
++
++[[package]]
++name = "slice-deque"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "31ef6ee280cdefba6d2d0b4b78a84a1c1a3f3a4cec98c2d4231c8bc225de0f25"
++dependencies = [
++ "libc",
++ "mach",
++ "winapi 0.3.9",
++]
++
++[[package]]
++name = "smallvec"
++version = "0.6.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6"
++dependencies = [
++ "maybe-uninit",
++]
++
++[[package]]
++name = "socket2"
++version = "0.3.19"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e"
++dependencies = [
++ "cfg-if 1.0.0",
++ "libc",
++ "winapi 0.3.9",
++]
++
++[[package]]
++name = "standback"
++version = "0.2.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf906c8b8fc3f6ecd1046e01da1d8ddec83e48c8b08b84dcc02b585a6bedf5a8"
++dependencies = [
++ "version_check 0.9.2",
++]
++
++[[package]]
++name = "stdweb"
++version = "0.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ef5430c8e36b713e13b48a9f709cc21e046723fe44ce34587b73a830203b533e"
++
++[[package]]
++name = "stdweb"
++version = "0.4.20"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5"
++dependencies = [
++ "discard",
++ "rustc_version",
++ "stdweb-derive",
++ "stdweb-internal-macros",
++ "stdweb-internal-runtime",
++ "wasm-bindgen",
++]
++
++[[package]]
++name = "stdweb-derive"
++version = "0.5.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "serde 1.0.118",
++ "serde_derive",
++ "syn",
++]
++
++[[package]]
++name = "stdweb-internal-macros"
++version = "0.2.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11"
++dependencies = [
++ "base-x",
++ "proc-macro2",
++ "quote",
++ "serde 1.0.118",
++ "serde_derive",
++ "serde_json",
++ "sha1",
++ "syn",
++]
++
++[[package]]
++name = "stdweb-internal-runtime"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0"
++
++[[package]]
++name = "syn"
++version = "1.0.55"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a571a711dddd09019ccc628e1b17fe87c59b09d513c06c026877aa708334f37a"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "unicode-xid",
++]
++
++[[package]]
++name = "synstructure"
++version = "0.12.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++ "unicode-xid",
++]
++
++[[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 0.3.9",
++]
++
++[[package]]
++name = "termion"
++version = "1.5.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c22cec9d8978d906be5ac94bceb5a010d885c626c4c8855721a4dbd20e3ac905"
++dependencies = [
++ "libc",
++ "numtoa",
++ "redox_syscall",
++ "redox_termios",
++]
++
++[[package]]
++name = "thiserror"
++version = "1.0.22"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0e9ae34b84616eedaaf1e9dd6026dbe00dcafa92aa0c8077cb69df1fcfe5e53e"
++dependencies = [
++ "thiserror-impl",
++]
++
++[[package]]
++name = "thiserror-impl"
++version = "1.0.22"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9ba20f23e85b10754cd195504aebf6a27e2e6cbe28c17778a0c930724628dd56"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "thread-id"
++version = "3.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c7fbf4c9d56b320106cd64fd024dadfa0be7cb4706725fc44a7d7ce952d820c1"
++dependencies = [
++ "libc",
++ "redox_syscall",
++ "winapi 0.3.9",
++]
++
++[[package]]
++name = "thread_local"
++version = "1.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
++dependencies = [
++ "lazy_static 1.4.0",
++]
++
++[[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 0.3.9",
++]
++
++[[package]]
++name = "time"
++version = "0.2.23"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bcdaeea317915d59b2b4cd3b5efcd156c309108664277793f5351700c02ce98b"
++dependencies = [
++ "const_fn",
++ "libc",
++ "standback",
++ "stdweb 0.4.20",
++ "time-macros",
++ "version_check 0.9.2",
++ "winapi 0.3.9",
++]
++
++[[package]]
++name = "time-macros"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "957e9c6e26f12cb6d0dd7fc776bb67a706312e7299aed74c8dd5b17ebb27e2f1"
++dependencies = [
++ "proc-macro-hack",
++ "time-macros-impl",
++]
++
++[[package]]
++name = "time-macros-impl"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e5c3be1edfad6027c69f5491cf4cb310d1a71ecd6af742788c6ff8bced86b8fa"
++dependencies = [
++ "proc-macro-hack",
++ "proc-macro2",
++ "quote",
++ "standback",
++ "syn",
++]
++
++[[package]]
++name = "tinyvec"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ccf8dbc19eb42fba10e8feaaec282fb50e2c14b2726d6301dbfeed0f73306a6f"
++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.24"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "099837d3464c16a808060bb3f02263b412f6fafcb5d01c533d309985fbeebe48"
++dependencies = [
++ "bytes 0.5.6",
++ "fnv",
++ "futures-core",
++ "iovec",
++ "lazy_static 1.4.0",
++ "memchr",
++ "mio",
++ "num_cpus",
++ "pin-project-lite 0.1.11",
++ "slab",
++ "tokio-macros",
++]
++
++[[package]]
++name = "tokio-macros"
++version = "0.2.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e44da00bfc73a25f814cd8d7e57a68a5c31b74b3152a0a1d1f590c97ed06265a"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "tokio-socks"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d611fd5d241872372d52a0a3d309c52d0b95a6a67671a6c8f7ab2c4a37fb2539"
++dependencies = [
++ "bytes 0.4.12",
++ "either",
++ "futures",
++ "thiserror",
++ "tokio",
++]
++
++[[package]]
++name = "tokio-tls"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9a70f4fcd7b3b24fb194f837560168208f669ca8cb70d0c4b862944452396343"
++dependencies = [
++ "native-tls",
++ "tokio",
++]
++
++[[package]]
++name = "tokio-util"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499"
++dependencies = [
++ "bytes 0.5.6",
++ "futures-core",
++ "futures-sink",
++ "log",
++ "pin-project-lite 0.1.11",
++ "tokio",
++]
++
++[[package]]
++name = "toml"
++version = "0.4.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f"
++dependencies = [
++ "serde 1.0.118",
++]
++
++[[package]]
++name = "tower-service"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860"
++
++[[package]]
++name = "tracing"
++version = "0.1.22"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9f47026cdc4080c07e49b37087de021820269d996f581aac150ef9e5583eefe3"
++dependencies = [
++ "cfg-if 1.0.0",
++ "log",
++ "pin-project-lite 0.2.0",
++ "tracing-core",
++]
++
++[[package]]
++name = "tracing-core"
++version = "0.1.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f50de3927f93d202783f4513cda820ab47ef17f624b03c096e86ef00c67e6b5f"
++dependencies = [
++ "lazy_static 1.4.0",
++]
++
++[[package]]
++name = "tracing-futures"
++version = "0.2.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ab7bb6f14721aa00656086e9335d363c5c8747bae02ebe32ea2c7dece5689b4c"
++dependencies = [
++ "pin-project 0.4.27",
++ "tracing",
++]
++
++[[package]]
++name = "try-lock"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"
++
++[[package]]
++name = "tui"
++version = "0.6.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "73b422ff4986065d33272b587907654f918a3fe8702786a8110bf68dede0d8ee"
++dependencies = [
++ "bitflags",
++ "cassowary",
++ "either",
++ "itertools",
++ "log",
++ "termion",
++ "unicode-segmentation",
++ "unicode-width",
++]
++
++[[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",
++]
++
++[[package]]
++name = "unicode-bidi"
++version = "0.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
++dependencies = [
++ "matches",
++]
++
++[[package]]
++name = "unicode-normalization"
++version = "0.1.16"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a13e63ab62dbe32aeee58d1c5408d35c36c392bba5d9d3142287219721afe606"
++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.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
++
++[[package]]
++name = "url"
++version = "2.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5909f2b0817350449ed73e8bcd81c8c3c8d9a7a5d8acba4b27db277f1868976e"
++dependencies = [
++ "form_urlencoded",
++ "idna",
++ "matches",
++ "percent-encoding",
++]
++
++[[package]]
++name = "vcpkg"
++version = "0.2.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb"
++
++[[package]]
++name = "version_check"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
++
++[[package]]
++name = "version_check"
++version = "0.9.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
++
++[[package]]
++name = "want"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0"
++dependencies = [
++ "log",
++ "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 = "wasi"
++version = "0.10.0+wasi-snapshot-preview1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
++
++[[package]]
++name = "wasm-bindgen"
++version = "0.2.69"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3cd364751395ca0f68cafb17666eee36b63077fb5ecd972bbcd74c90c4bf736e"
++dependencies = [
++ "cfg-if 1.0.0",
++ "serde 1.0.118",
++ "serde_json",
++ "wasm-bindgen-macro",
++]
++
++[[package]]
++name = "wasm-bindgen-backend"
++version = "0.2.69"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1114f89ab1f4106e5b55e688b828c0ab0ea593a1ea7c094b141b14cbaaec2d62"
++dependencies = [
++ "bumpalo",
++ "lazy_static 1.4.0",
++ "log",
++ "proc-macro2",
++ "quote",
++ "syn",
++ "wasm-bindgen-shared",
++]
++
++[[package]]
++name = "wasm-bindgen-futures"
++version = "0.4.19"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1fe9756085a84584ee9457a002b7cdfe0bfff169f45d2591d8be1345a6780e35"
++dependencies = [
++ "cfg-if 1.0.0",
++ "js-sys",
++ "wasm-bindgen",
++ "web-sys",
++]
++
++[[package]]
++name = "wasm-bindgen-macro"
++version = "0.2.69"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7a6ac8995ead1f084a8dea1e65f194d0973800c7f571f6edd70adf06ecf77084"
++dependencies = [
++ "quote",
++ "wasm-bindgen-macro-support",
++]
++
++[[package]]
++name = "wasm-bindgen-macro-support"
++version = "0.2.69"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b5a48c72f299d80557c7c62e37e7225369ecc0c963964059509fbafe917c7549"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++ "wasm-bindgen-backend",
++ "wasm-bindgen-shared",
++]
++
++[[package]]
++name = "wasm-bindgen-shared"
++version = "0.2.69"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7e7811dd7f9398f14cc76efd356f98f03aa30419dea46aa810d71e819fc97158"
++
++[[package]]
++name = "web-sys"
++version = "0.3.46"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "222b1ef9334f92a21d3fb53dc3fd80f30836959a90f9274a626d7e06315ba3c3"
++dependencies = [
++ "js-sys",
++ "wasm-bindgen",
++]
++
++[[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-x86_64-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
++
++[[package]]
++name = "winreg"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69"
++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 = "yaml-rust"
++version = "0.4.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "39f0c922f1a334134dc2f7a8b67dc5d25f0735263feec974345ff706bcf20b0d"
++dependencies = [
++ "linked-hash-map 0.5.3",
++]
diff --git a/pkgs/applications/audio/netease-music-tui/default.nix b/pkgs/applications/audio/netease-music-tui/default.nix
new file mode 100644
index 00000000000..0322459685f
--- /dev/null
+++ b/pkgs/applications/audio/netease-music-tui/default.nix
@@ -0,0 +1,28 @@
+{ fetchFromGitHub, rustPlatform, lib, alsaLib, pkg-config, openssl }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "netease-music-tui";
+  version = "v0.1.2";
+
+  src = fetchFromGitHub {
+    owner = "betta-cyber";
+    repo = "netease-music-tui";
+    rev = version;
+    sha256 = "0m5b3q493d32kxznm4apn56216l07b1c49km236i03mpfvdw7m1f";
+  };
+
+  cargoPatches = [ ./cargo-lock.patch ];
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ alsaLib openssl ];
+
+  cargoSha256 = "1kfbnwy3lkbhz0ggxwr5n6qd1plipkr1ycr3z2r7c0amrzzbkc7l";
+  verifyCargoDeps = true;
+
+  meta = with lib; {
+    homepage = "https://github.com/betta-cyber/netease-music-tui";
+    description = "netease cloud music terminal client by rust";
+    maintainers = with maintainers; [ vonfry ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/applications/audio/new-session-manager/default.nix b/pkgs/applications/audio/new-session-manager/default.nix
new file mode 100644
index 00000000000..e4cabe0c483
--- /dev/null
+++ b/pkgs/applications/audio/new-session-manager/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, meson, pkg-config, ninja, liblo, libjack2, fltk }:
+
+stdenv.mkDerivation rec {
+  pname = "new-session-manager";
+  version = "1.4.0";
+
+  src = fetchFromGitHub {
+    owner = "linuxaudio";
+    repo = "new-session-manager";
+    rev = "v${version}";
+    sha256 = "PqOv4tx3NLxL2+GWIUVgL72EQYMyDPIMrAkyby3TZ+0=";
+  };
+
+  nativeBuildInputs = [ meson pkg-config ninja ];
+
+  buildInputs = [ liblo libjack2 fltk ];
+
+  hardeningDisable = [ "format" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://linuxaudio.github.io/new-session-manager/";
+    description = "A session manager designed for audio applications.";
+    maintainers = [ maintainers._6AA4FD ];
+    license = licenses.gpl3Plus;
+    platforms = ["x86_64-linux"];
+  };
+}
diff --git a/pkgs/applications/audio/noisetorch/default.nix b/pkgs/applications/audio/noisetorch/default.nix
index 1932f239cfd..1796927f529 100644
--- a/pkgs/applications/audio/noisetorch/default.nix
+++ b/pkgs/applications/audio/noisetorch/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "NoiseTorch";
-  version = "0.8.2";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "lawl";
     repo = "NoiseTorch";
     rev = version;
-    sha256 = "14i04rmraxbddcvk0k9c6ak9invln7002g5jms54kcjzv9p39hbf";
+    sha256 = "1a4g112h83m55pga8kq2a1wzxpycj59v4bygyjfyi1s09q1y97qg";
   };
 
-  patches = [ ./version.patch ./embedlibrnnoise.patch ];
+  patches = [ ./version.patch ];
 
   vendorSha256 = null;
 
@@ -21,6 +21,8 @@ buildGoModule rec {
 
   buildInputs = [ rnnoise-plugin ];
 
+  postPatch = "substituteInPlace main.go --replace 'librnnoise_ladspa/bin/ladspa/librnnoise_ladspa.so' '$RNNOISE_LADSPA_PLUGIN'";
+
   preBuild = ''
     export RNNOISE_LADSPA_PLUGIN="${rnnoise-plugin}/lib/ladspa/librnnoise_ladspa.so";
     go generate;
diff --git a/pkgs/applications/audio/noisetorch/embedlibrnnoise.patch b/pkgs/applications/audio/noisetorch/embedlibrnnoise.patch
deleted file mode 100644
index b1782efb8b3..00000000000
--- a/pkgs/applications/audio/noisetorch/embedlibrnnoise.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/scripts/embedlibrnnoise.go b/scripts/embedlibrnnoise.go
-index 43daf80..0b3004b 100644
---- a/scripts/embedlibrnnoise.go
-+++ b/scripts/embedlibrnnoise.go
-@@ -8,7 +8,7 @@ import (
- )
- 
- func main() {
--	b, err := ioutil.ReadFile("librnnoise_ladspa/bin/ladspa/librnnoise_ladspa.so")
-+	b, err := ioutil.ReadFile(os.Getenv("RNNOISE_LADSPA_PLUGIN"))
- 	if err != nil {
- 		fmt.Printf("Couldn't read librnnoise_ladspa.so: %v\n", err)
- 		os.Exit(1)
diff --git a/pkgs/applications/audio/opustags/default.nix b/pkgs/applications/audio/opustags/default.nix
index 8e5546aec8b..4e26c9b7752 100644
--- a/pkgs/applications/audio/opustags/default.nix
+++ b/pkgs/applications/audio/opustags/default.nix
@@ -1,24 +1,49 @@
-{ stdenv, lib, cmake, pkgconfig, libogg, fetchFromGitHub, libiconv }:
+{ stdenv, fetchFromGitHub, fetchpatch, cmake, pkg-config, libiconv, libogg
+, ffmpeg, glibcLocales, perl, perlPackages }:
+
 stdenv.mkDerivation rec {
   pname = "opustags";
-  version = "1.4.0";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "fmang";
     repo = "opustags";
     rev = version;
-    sha256 = "1y0czl72paawy342ff9ickaamkih43k59yfcdw7bnddypyfa7nbg";
+    sha256 = "1dicv4s395b9gb4jpr0rnxdq9azr45pid62q3x08lb7cvyq3yxbh";
   };
 
+  patches = [
+    # Fix building on darwin
+    (fetchpatch {
+      url = "https://github.com/fmang/opustags/commit/64fc6f8f6d20e034892e89abff0236c85cae98dc.patch";
+      sha256 = "1djifzqhf1w51gbpqbndsh3gnl9iizp6hppxx8x2a92i9ns22zpg";
+    })
+    (fetchpatch {
+      url = "https://github.com/fmang/opustags/commit/f98208c1a1d10c15f98b127bbfdf88a7b15b08dc.patch";
+      sha256 = "1h3v0r336fca0y8zq1vl2wr8gaqs3vvrrckx7pvji4k1jpiqvp38";
+    })
+  ];
+
   buildInputs = [ libogg ];
 
-  nativeBuildInputs = [ cmake pkgconfig ] ++ lib.optional stdenv.isDarwin libiconv;
+  nativeBuildInputs = [ cmake pkg-config ] ++ stdenv.lib.optional stdenv.isDarwin libiconv;
+
+  doCheck = true;
+
+  checkInputs = [ ffmpeg glibcLocales perl ] ++ (with perlPackages; [ ListMoreUtils ]);
+
+  checkPhase = ''
+    export LANG="en_US.UTF-8"
+    export LC_ALL="en_US.UTF-8"
+    make check
+  '';
 
-  meta = with lib; {
+  meta = with stdenv.lib; {
     homepage = "https://github.com/fmang/opustags";
     description = "Ogg Opus tags editor";
     platforms = platforms.all;
-    maintainers = [ maintainers.kmein ];
+    broken = stdenv.isDarwin;
+    maintainers = with maintainers; [ kmein SuperSandro2000 ];
     license = licenses.bsd3;
   };
 }
diff --git a/pkgs/applications/audio/pavucontrol/default.nix b/pkgs/applications/audio/pavucontrol/default.nix
index 301e44168d3..f0a0956f662 100644
--- a/pkgs/applications/audio/pavucontrol/default.nix
+++ b/pkgs/applications/audio/pavucontrol/default.nix
@@ -1,5 +1,5 @@
-{ fetchurl, stdenv, pkgconfig, intltool, libpulseaudio, gtkmm3
-, libcanberra-gtk3, gnome3, wrapGAppsHook }:
+{ fetchurl, fetchpatch, stdenv, pkgconfig, intltool, libpulseaudio,
+gtkmm3 , libcanberra-gtk3, gnome3, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "pavucontrol";
@@ -10,6 +10,15 @@ stdenv.mkDerivation rec {
     sha256 = "1qhlkl3g8d7h72xjskii3g1l7la2cavwp69909pzmbi2jyn5pi4g";
   };
 
+  patches = [
+    # Can be removed with the next version bump
+    # https://gitlab.freedesktop.org/pulseaudio/pavucontrol/-/merge_requests/20
+    (fetchpatch {
+      name = "streamwidget-fix-drop-down-wayland.patch";
+      url = "https://gitlab.freedesktop.org/pulseaudio/pavucontrol/-/commit/ae278b8643cf1089f66df18713c8154208d9a505.patch";
+      sha256 = "066vhxjz6gmi2sp2n4pa1cdsxjnq6yml5js094g5n7ld34p84dpj";
+  })];
+
   buildInputs = [ libpulseaudio gtkmm3 libcanberra-gtk3
                   gnome3.adwaita-icon-theme ];
 
diff --git a/pkgs/applications/audio/picard/default.nix b/pkgs/applications/audio/picard/default.nix
index fb6f59d0ded..69debfa2ea8 100644
--- a/pkgs/applications/audio/picard/default.nix
+++ b/pkgs/applications/audio/picard/default.nix
@@ -12,13 +12,13 @@ let
   ;
 in pythonPackages.buildPythonApplication rec {
   pname = "picard";
-  version = "2.5.2";
+  version = "2.5.6";
 
   src = fetchFromGitHub {
     owner = "metabrainz";
     repo = pname;
     rev = "release-${version}";
-    sha256 = "193pk6fhrqar2ra8krj6xdd7sm5qfw0p708iazzwk4b8c8g0q72j";
+    sha256 = "1mkbg44bm642mlpfxsdlw947var6a3sf9m6c897b4n0742hsdkbc";
   };
 
   nativeBuildInputs = [ gettext qt5.wrapQtAppsHook qt5.qtbase ]
diff --git a/pkgs/applications/audio/plujain-ramp/default.nix b/pkgs/applications/audio/plujain-ramp/default.nix
new file mode 100644
index 00000000000..2523c5a5657
--- /dev/null
+++ b/pkgs/applications/audio/plujain-ramp/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, lv2  }:
+
+stdenv.mkDerivation rec {
+  version = "v1.1.3";
+  pname = "plujain-ramp";
+
+  src = fetchFromGitHub {
+    owner = "Houston4444";
+    repo = "plujain-ramp";
+    rev = "1bc1fed211e140c7330d6035122234afe78e5257";
+    sha256 = "1k7qpr8c15d623c4zqxwdklp98amildh03cqsnqq5ia9ba8z3016";
+  };
+
+  buildInputs = [
+    lv2
+  ];
+
+  installFlags = [ "INSTALL_PATH=$(out)/lib/lv2" ];
+
+  meta = with stdenv.lib; {
+    description = "A mono rhythmic tremolo LV2 Audio Plugin";
+    homepage = "https://github.com/Houston4444/plujain-ramp";
+    license = licenses.gpl2Only;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.hirenashah ];
+  };
+}
diff --git a/pkgs/applications/audio/pt2-clone/default.nix b/pkgs/applications/audio/pt2-clone/default.nix
index bc89505a1fe..c73c3562768 100644
--- a/pkgs/applications/audio/pt2-clone/default.nix
+++ b/pkgs/applications/audio/pt2-clone/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pt2-clone";
-  version = "1.26_fix";
+  version = "1.28";
 
   src = fetchFromGitHub {
     owner = "8bitbubsy";
     repo = "pt2-clone";
     rev = "v${version}";
-    sha256 = "1ikhgagniiq4irsy8i3g64m6cl61lnfvs163n8gs4hm426yckyb8";
+    sha256 = "1c2x43f46l7556kl9y9qign0g6ywdkh7ywkzv6c9y63n68ph20x2";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/audio/qjackctl/default.nix b/pkgs/applications/audio/qjackctl/default.nix
index 8cb28dcfd5a..4ac64afe854 100644
--- a/pkgs/applications/audio/qjackctl/default.nix
+++ b/pkgs/applications/audio/qjackctl/default.nix
@@ -1,14 +1,20 @@
-{ stdenv, mkDerivation, fetchurl, pkgconfig, alsaLib, libjack2, dbus, qtbase, qttools, qtx11extras }:
+{ stdenv, mkDerivation, fetchFromGitHub
+, pkg-config, cmake, alsaLib, libjack2, dbus, qtbase, qttools, qtx11extras
+# Enable jack session support
+, jackSession ? false
+}:
 
 mkDerivation rec {
-  version = "0.6.3";
+  version = "0.9.0";
   pname = "qjackctl";
 
   # some dependencies such as killall have to be installed additionally
 
-  src = fetchurl {
-    url = "mirror://sourceforge/qjackctl/${pname}-${version}.tar.gz";
-    sha256 = "0zbb4jlx56qvcqyhx34mbagkqf3wbxgj84hk0ppf5cmcrxv67d4x";
+  src = fetchFromGitHub {
+    owner = "rncbc";
+    repo = "qjackctl";
+    rev = "${pname}_${stdenv.lib.replaceChars ["."] ["_"] version}";
+    sha256 = "044kgwk7pfywad4myza0s2kvfkl21zkqq5wgny7n3c43qlcgs3zr";
   };
 
   buildInputs = [
@@ -20,13 +26,19 @@ mkDerivation rec {
     dbus
   ];
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
 
-  configureFlags = [ "--enable-jack-version" ];
+  cmakeFlags = [
+    "-DCONFIG_JACK_VERSION=1"
+    "-DCONFIG_JACK_SESSION=${toString jackSession}"
+  ];
 
   meta = with stdenv.lib; {
     description = "A Qt application to control the JACK sound server daemon";
-    homepage = "http://qjackctl.sourceforge.net/";
+    homepage = "https://github.com/rncbc/qjackctl";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.goibhniu ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/qtractor/default.nix b/pkgs/applications/audio/qtractor/default.nix
index 961314088d1..f2d5ae1c809 100644
--- a/pkgs/applications/audio/qtractor/default.nix
+++ b/pkgs/applications/audio/qtractor/default.nix
@@ -1,35 +1,79 @@
-{ alsaLib, autoconf, automake, dssi, fetchurl, libjack2
-, ladspaH, ladspaPlugins, liblo, libmad, libsamplerate, libsndfile
-, libtool, libvorbis, lilv, lv2, pkgconfig, qttools, qtbase, rubberband, serd
-, sord, sratom, stdenv, suil, wrapQtAppsHook }:
+{ alsaLib
+, aubio
+, cmake
+, dssi
+, fetchurl
+, flac
+, libjack2
+, ladspaH
+, ladspaPlugins
+, liblo
+, libmad
+, libsamplerate
+, libsndfile
+, libtool
+, libvorbis
+, lilv
+, lv2
+, mkDerivation
+, opusfile
+, pkg-config
+, qttools
+, qtbase
+, rubberband
+, serd
+, sord
+, sratom
+, stdenv
+, suil
+}:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "qtractor";
-  version = "0.9.18";
+  version = "0.9.19";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "121vmygdzp37p6f93f8dbbg2m2r55j7amyiapzkqgypgn4vfdbwr";
+    sha256 = "sha256-98/trRZRvNRPEA4ASS81qp2rMevpo5TIrtsU1TYMuT0=";
   };
 
   nativeBuildInputs = [
-    autoconf automake libtool pkgconfig qttools wrapQtAppsHook
+    cmake
+    libtool
+    pkg-config
+    qttools
   ];
 
-  buildInputs =
-    [ alsaLib dssi libjack2 ladspaH
-      ladspaPlugins liblo libmad libsamplerate libsndfile libtool
-      libvorbis lilv lv2 qtbase rubberband serd sord sratom
-      suil
-    ];
-
-  enableParallelBuilding = true;
+  buildInputs = [
+    alsaLib
+    aubio
+    dssi
+    flac
+    libjack2
+    ladspaH
+    ladspaPlugins
+    liblo
+    libmad
+    libsamplerate
+    libsndfile
+    libtool
+    libvorbis
+    lilv
+    lv2
+    opusfile
+    qtbase
+    rubberband
+    serd
+    sord
+    sratom
+    suil
+  ];
 
   meta = with stdenv.lib; {
     description = "Audio/MIDI multi-track sequencer";
-    homepage = "http://qtractor.sourceforge.net";
+    homepage = "https://qtractor.sourceforge.io";
     license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ goibhniu ];
     platforms = platforms.linux;
-    maintainers = [ maintainers.goibhniu ];
   };
 }
diff --git a/pkgs/applications/audio/redoflacs/default.nix b/pkgs/applications/audio/redoflacs/default.nix
index 140b163e25c..879acdf3a17 100644
--- a/pkgs/applications/audio/redoflacs/default.nix
+++ b/pkgs/applications/audio/redoflacs/default.nix
@@ -5,8 +5,6 @@
 , installShellFiles
 , flac
 , sox
-, withAucdtect ? false
-, aucdtect ? null
 }:
 
 stdenv.mkDerivation rec {
@@ -36,7 +34,7 @@ stdenv.mkDerivation rec {
 
   postFixup = ''
     wrapProgram $out/bin/redoflacs \
-      --prefix PATH : ${stdenv.lib.makeBinPath ([ flac sox ] ++ lib.optional withAucdtect aucdtect)}
+      --prefix PATH : ${stdenv.lib.makeBinPath ([ flac sox ])}
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/audio/rkrlv2/default.nix b/pkgs/applications/audio/rkrlv2/default.nix
index 59979c41083..2eb3dc3d7e5 100644
--- a/pkgs/applications/audio/rkrlv2/default.nix
+++ b/pkgs/applications/audio/rkrlv2/default.nix
@@ -1,26 +1,26 @@
-{ stdenv, fetchFromGitHub,
-automake, pkgconfig, lv2, fftw, cmake, xorg, libjack2, libsamplerate, libsndfile
-}:
+{ stdenv, fetchFromGitHub, pkg-config, lv2, fftw, cmake, libXpm
+, libXft, libjack2, libsamplerate, libsndfile }:
 
 stdenv.mkDerivation rec {
-  repo = "rkrlv2";
-  name = "${repo}-b2.0";
+  pname = "rkrlv2";
+  version = "beta_3";
 
   src = fetchFromGitHub {
     owner = "ssj71";
-    inherit repo;
-    rev = "beta_2";
-    sha256 = "128jcilbrd1l65c01w2bazsb21x78mng0jjkhi3x9crf1n9qbh2m";
+    repo = pname;
+    rev = version;
+    sha256 = "WjpPNUEYw4aGrh57J+7kkxKFXgCJWNaWAmueFbNUJJo=";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = with xorg; [ automake lv2 fftw cmake libXpm libjack2 libsamplerate libsndfile libXft ];
+  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = [ libXft libXpm lv2 fftw libjack2 libsamplerate libsndfile ];
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Rakarrak effects ported to LV2";
     homepage = "https://github.com/ssj71/rkrlv2";
-    license = stdenv.lib.licenses.gpl3;
-    maintainers = [ stdenv.lib.maintainers.joelmo ];
-    platforms = stdenv.lib.platforms.linux;
+    license = licenses.gpl2Only;
+    maintainers = [ maintainers.joelmo ];
+    platforms = platforms.unix;
+    broken = stdenv.isAarch64; # g++: error: unrecognized command line option '-mfpmath=sse'
   };
 }
diff --git a/pkgs/applications/audio/sc68/default.nix b/pkgs/applications/audio/sc68/default.nix
new file mode 100644
index 00000000000..683aa9c36bc
--- /dev/null
+++ b/pkgs/applications/audio/sc68/default.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, fetchsvn
+, pkg-config
+, which
+, autoconf
+, automake
+, libtool
+, hexdump
+, libao
+, zlib
+, curl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "sc68";
+  version = "unstable-2020-05-18";
+
+  src = fetchsvn {
+    url = "svn://svn.code.sf.net/p/sc68/code/";
+    rev = "693";
+    sha256 = "0liz5yjwiy41y160ag83zz9s5l8mk72fscxgvjv9g5qf4gwffnfa";
+  };
+
+  preConfigure = "tools/svn-bootstrap.sh";
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ pkg-config which autoconf automake libtool hexdump ];
+
+  buildInputs = [ libao zlib curl ];
+
+  meta = with stdenv.lib; {
+    description = "Atari ST and Amiga music player";
+    homepage = "http://sc68.atari.org/project.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ OPNA2608 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/audio/sonata/default.nix b/pkgs/applications/audio/sonata/default.nix
index cf3f173a096..afb02768960 100644
--- a/pkgs/applications/audio/sonata/default.nix
+++ b/pkgs/applications/audio/sonata/default.nix
@@ -5,13 +5,13 @@ let
   inherit (python3Packages) buildPythonApplication isPy3k dbus-python pygobject3 mpd2 setuptools;
 in buildPythonApplication rec {
   pname = "sonata";
-  version = "1.7b1";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "multani";
     repo = "sonata";
     rev = "v${version}";
-    sha256 = "1npbxlrg6k154qybfd250nq2p96kxdsdkj9wwnp93gljnii3g8wh";
+    sha256 = "0rl8w7s2asff626clzfvyz987l2k4ml5dg417mqp9v8a962q0v2x";
   };
 
   disabled = !isPy3k;
diff --git a/pkgs/applications/audio/spotify-tui/default.nix b/pkgs/applications/audio/spotify-tui/default.nix
index a2001996c98..4eb6288e4ee 100644
--- a/pkgs/applications/audio/spotify-tui/default.nix
+++ b/pkgs/applications/audio/spotify-tui/default.nix
@@ -1,27 +1,34 @@
-{ stdenv, fetchFromGitHub, rustPlatform, pkgconfig, openssl, python3, libxcb, AppKit, Security }:
+{ stdenv, fetchFromGitHub, rustPlatform, installShellFiles, pkgconfig, openssl, python3, libxcb, AppKit, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "spotify-tui";
-  version = "0.22.0";
+  version = "0.23.0";
 
   src = fetchFromGitHub {
     owner = "Rigellute";
     repo = "spotify-tui";
     rev = "v${version}";
-    sha256 = "0w1y37qh9n3936d59hvqzjz2878x2nwxqxc4s7mp4f9xqcfl0c5r";
+    sha256 = "082y5m2vglzx9kdc2088zynz0njcnljnb0y170igmlsxq9wkrgg2";
   };
 
-  cargoSha256 = "1ri054p08si95x1gh2bkh4fk50ja79c5izzjnkvs0yhfj1wzbghi";
+  cargoSha256 = "100c7x603qyhav3p24clwfal4ngh0258x9lqsi84kcj4wq2f3i8f";
 
-  nativeBuildInputs = stdenv.lib.optionals stdenv.isLinux [ pkgconfig python3 ];
+  nativeBuildInputs = [ installShellFiles ] ++ stdenv.lib.optionals stdenv.isLinux [ pkgconfig python3 ];
   buildInputs = [ ]
     ++ stdenv.lib.optionals stdenv.isLinux [ openssl libxcb ]
     ++ stdenv.lib.optionals stdenv.isDarwin [ AppKit Security ];
 
+  postInstall = ''
+    for shell in bash fish zsh; do
+      $out/bin/spt --completions $shell > spt.$shell
+      installShellCompletion spt.$shell
+    done
+  '';
+
   meta = with stdenv.lib; {
     description = "Spotify for the terminal written in Rust";
     homepage = "https://github.com/Rigellute/spotify-tui";
-    changelog = "https://github.com/Rigellute/spotify-tui/releases/tag/v${version}";
+    changelog = "https://github.com/Rigellute/spotify-tui/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ jwijenbergh ];
   };
diff --git a/pkgs/applications/audio/stochas/default.nix b/pkgs/applications/audio/stochas/default.nix
new file mode 100644
index 00000000000..402d3f1b6fa
--- /dev/null
+++ b/pkgs/applications/audio/stochas/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, cmake, pkg-config, libX11, libXrandr, libXinerama, libXext, libXcursor, freetype, alsaLib, libjack2 }:
+
+stdenv.mkDerivation rec {
+  pname = "stochas";
+  version = "1.3.4";
+
+  src = fetchFromGitHub {
+    owner = "surge-synthesizer";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0b26mbj727dnygavz4kihnhmnnvwsr9l145w6kydq7bd7nwiw7lq";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  buildInputs = [
+    libX11 libXrandr libXinerama libXext libXcursor freetype alsaLib libjack2
+  ];
+
+  installPhase = ''
+    mkdir -p $out/lib/vst3
+    cp -r stochas_artefacts/Release/VST3/Stochas.vst3 $out/lib/vst3
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Probabilistic polyrhythmic sequencer plugin";
+    homepage = "https://stochas.org/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ magnetophon ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/audio/vcv-rack/default.nix b/pkgs/applications/audio/vcv-rack/default.nix
index 18d8f7415b5..a94cfd3a7cc 100644
--- a/pkgs/applications/audio/vcv-rack/default.nix
+++ b/pkgs/applications/audio/vcv-rack/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, makeWrapper, fetchFromBitbucket, fetchFromGitHub, pkgconfig
+{ stdenv, makeWrapper, fetchzip, fetchFromGitHub, pkgconfig
 , alsaLib, curl, glew, glfw, gtk2-x11, jansson, libjack2, libXext, libXi
 , libzip, rtaudio, rtmidi, speex, libsamplerate }:
 
@@ -7,10 +7,8 @@ let
   # Others are downloaded with `make deps`. Due to previous issues with the
   # `glfw` submodule (see above) and because we can not access the network when
   # building in a sandbox, we fetch the dependency source manually.
-  pfft-source = fetchFromBitbucket {
-    owner = "jpommier";
-    repo = "pffft";
-    rev = "74d7261be17cf659d5930d4830609406bd7553e3";
+  pfft-source = fetchzip {
+    url = "https://vcvrack.com/downloads/dep/pffft.zip";
     sha256 = "084csgqa6f1a270bhybjayrh3mpyi2jimc87qkdgsqcp8ycsx1l1";
   };
   nanovg-source = fetchFromGitHub {
diff --git a/pkgs/applications/blockchains/ledger-live-desktop/default.nix b/pkgs/applications/blockchains/ledger-live-desktop/default.nix
index 4c64c595fef..bb2fc893399 100644
--- a/pkgs/applications/blockchains/ledger-live-desktop/default.nix
+++ b/pkgs/applications/blockchains/ledger-live-desktop/default.nix
@@ -2,12 +2,12 @@
 
 let
   pname = "ledger-live-desktop";
-  version = "2.18.0";
+  version = "2.19.0";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://github.com/LedgerHQ/${pname}/releases/download/v${version}/${pname}-${version}-linux-x86_64.AppImage";
-    sha256 = "19sx9n5mij68v07vy65h1c16rgbpll3kagr437cjb7r95k3nk2zn";
+    sha256 = "13z4v64z58b8fxph3rgjqy1z1y2agmarfr8cihlkf0ndssicasdl";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/applications/blockchains/monero-gui/default.nix b/pkgs/applications/blockchains/monero-gui/default.nix
index fb6753f79a5..cffbdde8f00 100644
--- a/pkgs/applications/blockchains/monero-gui/default.nix
+++ b/pkgs/applications/blockchains/monero-gui/default.nix
@@ -4,6 +4,7 @@
 , qtbase, qtdeclarative, qtgraphicaleffects
 , qtmultimedia, qtxmlpatterns
 , qtquickcontrols, qtquickcontrols2
+, qtmacextras
 , monero, miniupnpc, unbound, readline
 , boost, libunwind, libsodium, pcsclite
 , randomx, zeromq, libgcrypt, libgpgerror
@@ -27,13 +28,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "monero-gui";
-  version = "0.17.1.6";
+  version = "0.17.1.8";
 
   src = fetchFromGitHub {
     owner  = "monero-project";
     repo   = "monero-gui";
     rev    = "v${version}";
-    sha256 = "0kn5wvx2psbdaqmy1cxlbf5l1mdpvh0b6hh9drah3s7nj3654a3r";
+    sha256 = "13cjrfdkr7c2ff8j2rg8hvhlc00af38vcs67wlx2109i2baq4pp3";
   };
 
   nativeBuildInputs = [
@@ -49,7 +50,8 @@ stdenv.mkDerivation rec {
     randomx libgcrypt libgpgerror
     boost libunwind libsodium pcsclite
     zeromq hidapi rapidjson
-  ] ++ optionals trezorSupport [ libusb1 protobuf python3 ];
+  ] ++ optionals trezorSupport [ libusb1 protobuf python3 ]
+    ++ optionals stdenv.isDarwin [ qtmacextras ];
 
   postUnpack = ''
     # copy monero sources here
@@ -105,7 +107,6 @@ stdenv.mkDerivation rec {
     homepage     = "https://getmonero.org/";
     license      = licenses.bsd3;
     platforms    = platforms.all;
-    badPlatforms = platforms.darwin;
     maintainers  = with maintainers; [ rnhmjoj ];
   };
 }
diff --git a/pkgs/applications/blockchains/monero/default.nix b/pkgs/applications/blockchains/monero/default.nix
index 51dedba969b..d45f5a2e5ca 100644
--- a/pkgs/applications/blockchains/monero/default.nix
+++ b/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.6";
+  version = "0.17.1.8";
 
   src = fetchFromGitHub {
     owner = "monero-project";
     repo = "monero";
     rev = "v${version}";
-    sha256 = "0b6zyr3mzqvcxf48i2g45gr649x6nhppik5598jsvg0z7i2hxb9q";
+    sha256 = "10blazbk1602slx3wrmw4jfgkdry55iclrhm5drdficc5v3h735g";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/blockchains/zcash/default.nix b/pkgs/applications/blockchains/zcash/default.nix
index 9cccbd7b7e4..6a8bebf6178 100644
--- a/pkgs/applications/blockchains/zcash/default.nix
+++ b/pkgs/applications/blockchains/zcash/default.nix
@@ -1,39 +1,55 @@
-{ stdenv, libsodium, fetchFromGitHub, wget, pkgconfig, autoreconfHook, openssl, db62, boost17x
-, zlib, gtest, gmock, callPackage, gmp, qt4, util-linux, protobuf, qrencode, libevent }:
-
-let librustzcash = callPackage ./librustzcash {};
-in
-with stdenv.lib;
-stdenv.mkDerivation rec {
+{ rust, rustPlatform, stdenv, lib, fetchFromGitHub, autoreconfHook, makeWrapper
+, cargo, pkg-config
+, bash, curl, coreutils, boost17x, db62, libsodium, libevent, utf8cpp, util-linux
+}:
 
+rustPlatform.buildRustPackage rec {
   pname = "zcash";
-  version = "2.1.1-1";
+  version = "4.1.1";
 
   src = fetchFromGitHub {
     owner = "zcash";
     repo  = "zcash";
     rev = "v${version}";
-    sha256 = "1g5zlfzfp31my8w8nlg5fncpr2y95iv9fm04x57sjb93rgmjdh5n";
+    sha256 = "185zrw276g545np0niw5hlhlppkjbf5a1r4rwhnbaimdjdii2dil";
   };
 
-  patchPhase = ''
-    sed -i"" 's,-fvisibility=hidden,,g'            src/Makefile.am
-  '';
+  cargoSha256 = "0qxr6asf8zsya0f1ri39z2cnfpjk96hgwjchz2c7j87vibbvg6dc";
 
-  nativeBuildInputs = [ autoreconfHook pkgconfig ];
-  buildInputs = [ gtest gmock gmp openssl wget db62 boost17x zlib
-                  protobuf libevent libsodium librustzcash ]
-                  ++ optionals stdenv.isLinux [ util-linux ];
+  nativeBuildInputs = [ autoreconfHook cargo makeWrapper pkg-config ];
+  buildInputs = [ bash boost17x db62 libevent libsodium utf8cpp ];
 
-  configureFlags = [ "--with-boost-libdir=${boost17x.out}/lib" ];
+  # Use the stdenv default phases (./configure; make) instead of the
+  # ones from buildRustPackage.
+  configurePhase = "configurePhase";
+  buildPhase = "buildPhase";
+  checkPhase = "checkPhase";
+  installPhase = "installPhase";
 
-  postInstall = ''
-    cp zcutil/fetch-params.sh $out/bin/zcash-fetch-params
+  postPatch = ''
+    # Have to do this here instead of in preConfigure because
+    # cargoDepsCopy gets unset after postPatch.
+    configureFlagsArray+=("RUST_VENDORED_SOURCES=$NIX_BUILD_TOP/$cargoDepsCopy")
   '';
 
+  configureFlags = [
+    "--disable-tests"
+    "--with-boost-libdir=${lib.getLib boost17x}/lib"
+    "CXXFLAGS=-I${lib.getDev utf8cpp}/include/utf8cpp"
+    "RUST_TARGET=${rust.toRustTargetSpec stdenv.hostPlatform}"
+  ];
+
   enableParallelBuilding = true;
 
-  meta = {
+  # Requires hundreds of megabytes of zkSNARK parameters.
+  doCheck = false;
+
+  postInstall = ''
+    wrapProgram $out/bin/zcash-fetch-params \
+        --set PATH ${lib.makeBinPath [ coreutils curl util-linux ]}
+  '';
+
+  meta = with lib; {
     description = "Peer-to-peer, anonymous electronic cash system";
     homepage = "https://z.cash/";
     maintainers = with maintainers; [ rht tkerber ];
diff --git a/pkgs/applications/blockchains/zcash/librustzcash/default.nix b/pkgs/applications/blockchains/zcash/librustzcash/default.nix
deleted file mode 100644
index 526adc715d4..00000000000
--- a/pkgs/applications/blockchains/zcash/librustzcash/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ stdenv, fetchFromGitHub, rustPlatform }:
-
-rustPlatform.buildRustPackage rec {
-  pname = "librustzcash";
-  version = "0.1.0";
-
-  src = fetchFromGitHub {
-    owner = "zcash";
-    repo = "librustzcash";
-    rev = version;
-    sha256 = "0d28k29sgzrg9clynz29kpw50kbkp0a4dfdayqhmpjmsh05y6261";
-  };
-
-  cargoSha256 = "1wzyrcmcbrna6rjzw19c4lq30didzk4w6fs6wmvxp0xfg4qqdlax";
-
-  installPhase = ''
-    mkdir -p $out/lib
-    cp $releaseDir/librustzcash.a $out/lib/
-    mkdir -p $out/include
-    cp librustzcash/include/librustzcash.h $out/include/
-  '';
-
-  # The tests do pass, but they take an extremely long time to run.
-  doCheck = false;
-
-  meta = with stdenv.lib; {
-    description = "Rust-language assets for Zcash";
-    homepage = "https://github.com/zcash/librustzcash";
-    maintainers = with maintainers; [ rht tkerber ];
-    license = with licenses; [ mit asl20 ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/applications/editors/android-studio/common.nix b/pkgs/applications/editors/android-studio/common.nix
index 605d810b3d9..cbd156d78e0 100644
--- a/pkgs/applications/editors/android-studio/common.nix
+++ b/pkgs/applications/editors/android-studio/common.nix
@@ -1,4 +1,4 @@
-{ channel, pname, version, build, sha256Hash }:
+{ channel, pname, version, build ? null, sha256Hash }:
 
 { alsaLib
 , bash
@@ -53,11 +53,13 @@
 
 let
   drvName = "android-studio-${channel}-${version}";
+  filename = "android-studio-" + (if (build != null) then "ide-${build}" else version) + "-linux.tar.gz";
+
   androidStudio = stdenv.mkDerivation {
     name = "${drvName}-unwrapped";
 
     src = fetchurl {
-      url = "https://dl.google.com/dl/android/studio/ide-zips/${version}/android-studio-ide-${build}-linux.tar.gz";
+      url = "https://dl.google.com/dl/android/studio/ide-zips/${version}/${filename}";
       sha256 = sha256Hash;
     };
 
diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix
index d94ad070536..d1eb7e58ef8 100644
--- a/pkgs/applications/editors/android-studio/default.nix
+++ b/pkgs/applications/editors/android-studio/default.nix
@@ -14,14 +14,13 @@ let
     sha256Hash = "sha256-aAMhhJWcVFdvEZt8fI3tF12Eg3TzlU+kUFMNeCYN1os=";
   };
   betaVersion = {
-    version = "4.2.0.17"; # "Android Studio 4.2 Beta 1"
-    build = "202.6987402";
-    sha256Hash = "07qr0b1zdzpc1nsi6593518dxp89dcjfp4lznb1d3id8vbqla4i7";
+    version = "4.2.0.18"; # "Android Studio 4.2 Beta 2"
+    build = "202.7008469";
+    sha256Hash = "0323i4mcib84z7bsy801640gadd2k8ps7vr9jbdpb6i9gma6klmh";
   };
   latestVersion = { # canary & dev
-    version = "2020.3.1.2"; # "Android Studio Arctic Fox Canary 2"
-    build = "202.7006259";
-    sha256Hash = "1d4brfx1fh1vlcjkb0x8hjj2qgz2dl5wbaiy8dj8w03vcf493nc5";
+    version = "2020.3.1.3"; # "Android Studio Arctic Fox Canary 3"
+    sha256Hash = "1nx78j3pqr8qgwprnzfy17w9jmkgiqnlbsw91jnslr9p9fd0ixcx";
   };
 in {
   # Attributes are named by their corresponding release channels
diff --git a/pkgs/applications/editors/cudatext/default.nix b/pkgs/applications/editors/cudatext/default.nix
index af3f087dae2..bcdff1eff1f 100644
--- a/pkgs/applications/editors/cudatext/default.nix
+++ b/pkgs/applications/editors/cudatext/default.nix
@@ -38,13 +38,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "cudatext";
-  version = "1.115.0";
+  version = "1.118.2";
 
   src = fetchFromGitHub {
     owner = "Alexey-T";
     repo = "CudaText";
     rev = version;
-    sha256 = "0q7gfpzc97fvyvabjdb9a4d3c2qhm4zf5bqgnsj73vkly80kgww8";
+    sha256 = "0d6f4qfs7vifz7qkw2vkdjgd5w717wfpnxbc4qa4hs4g6y86ywmm";
   };
 
   patches = [
@@ -106,6 +106,7 @@ stdenv.mkDerivation rec {
       Search and replace with RegEx. Extendable by Python plugins and themes.
     '';
     homepage = "http://www.uvviewsoft.com/cudatext/";
+    changelog = "http://uvviewsoft.com/cudatext/history.txt";
     license = licenses.mpl20;
     maintainers = with maintainers; [ sikmir ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/editors/cudatext/deps.json b/pkgs/applications/editors/cudatext/deps.json
index 02418d25842..fc82ec4b8d1 100644
--- a/pkgs/applications/editors/cudatext/deps.json
+++ b/pkgs/applications/editors/cudatext/deps.json
@@ -11,18 +11,18 @@
   },
   "ATFlatControls": {
     "owner": "Alexey-T",
-    "rev": "2020.09.20",
-    "sha256": "09svn8yyqp6znvfpcxrsybkclh828h5rvah7nhbhk7nrfzj8i63x"
+    "rev": "2020.11.02",
+    "sha256": "0shihlm1hg74m04qyrj2iic2ik0x7qggihmnylvvdry3y79d07fy"
   },
   "ATSynEdit": {
     "owner": "Alexey-T",
-    "rev": "2020.10.12",
-    "sha256": "07vznwwfa3c1jr1cd32yppw0mmmm1ja9bmsxhxlcbnc2nb30n9zr"
+    "rev": "6560bc35a2cf31399be8713ac189216afabf9f01",
+    "sha256": "1bjnd6pcd9ddkvl7ma05z7f8svq609kljwc7gvbszc76hdb8d54x"
   },
   "ATSynEdit_Cmp": {
     "owner": "Alexey-T",
-    "rev": "2020.10.11",
-    "sha256": "11vx685i85izp7wzb34dalcwlkmkbz1vzva5j9cf2yz1jff1v4qw"
+    "rev": "2459ea2a2e50050f7e6ee59a17a52aae05ca4433",
+    "sha256": "155cwcmr9f23j4x13pidvb3vcgglawkxxpizjw90ajwhmg831acr"
   },
   "EControl": {
     "owner": "Alexey-T",
@@ -36,8 +36,8 @@
   },
   "Python-for-Lazarus": {
     "owner": "Alexey-T",
-    "rev": "2020.07.31",
-    "sha256": "0qbs51h6gw8qd3h06kwy1j7db35shbg7r2rayrhvvw0vzr9n330j"
+    "rev": "2020.10.23",
+    "sha256": "1lljldqnixlh0j05fh594gccwzkgcxa50byq8wr9ld5ik5sf8khn"
   },
   "Emmet-Pascal": {
     "owner": "Alexey-T",
@@ -51,7 +51,7 @@
   },
   "bgrabitmap": {
     "owner": "bgrabitmap",
-    "rev": "v11.2.4",
-    "sha256": "1zk88crfn07md16wg6af4i8nlx4ikkhxq9gfk49jirwimgwbf1md"
+    "rev": "v11.3.1",
+    "sha256": "1f95rdpfwqy9fipzybi17nbhq46zj45yjps21p2hplhinrr49n2p"
   }
 }
diff --git a/pkgs/applications/editors/eclipse/default.nix b/pkgs/applications/editors/eclipse/default.nix
index 2c175f32d62..586e2343cd3 100644
--- a/pkgs/applications/editors/eclipse/default.nix
+++ b/pkgs/applications/editors/eclipse/default.nix
@@ -12,13 +12,13 @@ assert stdenv ? glibc;
 # find the downloads needed for new versions
 #
 # to test:
-# $ for e in cpp modeling platform sdk java committers; do nix build -f default.nix pkgs.eclipses.eclipse-${e} -o eclipse-${e}; done
+# $ for e in cpp modeling platform sdk java committers rcp rust; do nix build -f default.nix pkgs.eclipses.eclipse-${e} -o eclipse-${e}; done
 
 let
   platform_major = "4";
-  platform_minor = "17";
+  platform_minor = "18";
   year = "2020";
-  month = "09";
+  month = "12";
   timestamp = "${year}${month}021800";
   gtk = gtk3;
 in rec {
@@ -37,7 +37,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-cpp-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
-        sha512 = "270pk7vvfvanig49xkrail01nf967zlp7xf8rvyh2ya7s0y0akj2bi0y4yms4gwijmingm8y2ir9qynd360mzwl8mnc1c31ykf9l3lh";
+        sha512 = "MR6ddNmBKyXCyVGlGPfq6K2zJRywy4I5QDXji3rh81eJQ6zkEguo+VvD75i/szg/+FbCVA09vDVV06JgL4SHwQ==";
       };
   };
 
@@ -49,7 +49,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-modeling-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
-        sha512 = "26bb6cbnw94ml585aqrs8wpfksd2883njlqi48klpbn5n1bwpnpwvymx9q46i49piiyp0r1pa8ghdcgiwcakvri5nzldlh522fs7h5y";
+        sha512 = "hSi3IL+fWhlUfEJYv4LFO7WNbZpiofAgNGZbEOIBS0VpeHfJ5Y6UKMKMLfQlG3hlkAL5jg/cEJKb/ad4DxHbjQ==";
       };
   };
 
@@ -61,7 +61,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-platform-${platform_major}.${platform_minor}-linux-gtk-x86_64.tar.gz";
-        sha512 = "2i3gjxmq1i4p70q2l5749b96z1r4nv15dii17fywbyby3kbggwhfvaydizy7z5p6kn0y91dw13p7gmg3qpr9d46mb8f8h3sxks7fyl9";
+        sha512 = "cPRa7ICogpcuwzOlzSSCEcWpwpUhQuIv6lGBKuAu9mOwj7Nz0TPaWVWNqN1541uVRXVTzcWX+mwc2UBPzWUPxg==";
       };
   };
 
@@ -86,7 +86,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-SDK-${platform_major}.${platform_minor}-linux-gtk-x86_64.tar.gz";
-        sha512 = "1c29r7qwjrjv86q2c4bhlrmmh50690lrq164jzrlisys9vnxb6wii0gwb34p9m1xqr3lgba1zhffb4jx18prrk0x8xbd78mp0lvya3k";
+        sha512 = "iN6z5iSJ2bhE1IH3uJj7aiaF/nSIgIAqadvaTBpE4gkgLAXgtfraFAzgcw0zJr5m2u5mULfW45hLkmIXselniQ==";
       };
   };
 
@@ -98,7 +98,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-java-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
-        sha512 = "3rkpngrk6423i2pcf241wbr9jfzwxm2qwm57ipjpjw6705w1rapcws4bibqjznlf34lqvnynkw2wihy51j1ryw25z9fc2jsvyj67c1q";
+        sha512 = "HVqsWUVNNRdcaziGdNI96R9F2VMUE4nYK1VX1G3pK+srFDlkJ7+rj2sZjtWL7WcJR1XSbT03nJJzPyp01RsCvQ==";
       };
   };
 
@@ -110,7 +110,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-committers-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
-        sha512 = "3gnqamrn3x2gr4dfcgl7ppxpyi1q422l0sm7sh0vmipbs9l1c58plm3p14j9rjsyjlly2xjci6dg7sb9mj6259vc640wafnzcs89ii1";
+        sha512 = "UtI4piLNRM3TsM9PzbGgsPqTkiurJ+7Q7jVra45an4YJHtfWcGTxxwUNnRzay6cHT49AjrWtVf1bovWSDXMiQA==";
       };
   };
 
@@ -122,7 +122,19 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-rcp-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
-        sha512 = "216g805fgpb7vwbgk36xkf467vijvaa3x0gk4d94pi92d9wdh5dph6wjjr4ka9rvg0pzxxr8y3sgbfqqzqpc82bgiz5qqr93sprh9bj";
+        sha512 = "9DqNjSx1Ypdzpt1jIOJ9KFx8y+cG55K6bqkWTqnGjjDr4h4mWSzvGjHGUtFrKl92WRzQZKjNPxzVreDMcUkc/g==";
+      };
+  };
+
+  ### Eclipse IDE for Rust Developers
+
+  eclipse-rust = buildEclipse {
+    name = "eclipse-rust-${platform_major}.${platform_minor}";
+    description = "Eclipse IDE for Rust Developers";
+    src =
+      fetchurl {
+        url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-rust-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
+        sha512 = "QbaG1knCMFnVQkPeApcIamJMXPyL8zUQa0ZsTJOuTgU/fD1RiHN7/WS6ax5azzIJhpjEtj2LMU4XV+MwkzResw==";
       };
   };
 
diff --git a/pkgs/applications/editors/eclipse/plugins.nix b/pkgs/applications/editors/eclipse/plugins.nix
index 43ab2a796eb..04b8a1de159 100644
--- a/pkgs/applications/editors/eclipse/plugins.nix
+++ b/pkgs/applications/editors/eclipse/plugins.nix
@@ -255,12 +255,12 @@ rec {
   cdt = buildEclipseUpdateSite rec {
     name = "cdt-${version}";
     # find current version at https://www.eclipse.org/cdt/downloads.php
-    version = "10.0.1";
+    version = "10.1.0";
 
     src = fetchzip {
       stripRoot = false;
-      url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/tools/cdt/releases/10.0/${name}/${name}.zip";
-      sha256 = "1smi1yc4l627bb01zp0pcilm6d0hysxk440hy4n55gz3jxilygx5";
+      url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/tools/cdt/releases/10.1/${name}/${name}.zip";
+      sha256 = "1hbswcar3a5cw20mwrj82w9pvpkvvj6jrvqqf1lincva0r5sl7h8";
     };
 
     meta = with stdenv.lib; {
@@ -472,12 +472,12 @@ rec {
 
   jdt = buildEclipseUpdateSite rec {
     name = "jdt-${version}";
-    version = "4.17";
+    version = "4.18";
 
     src = fetchzip {
       stripRoot = false;
-      url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-${version}-202009021800/org.eclipse.jdt-${version}.zip";
-      sha256 = "16vb88ywqfh0rix5krp2g39yhisv4i797g9c03aayzy5lynqm3ky";
+      url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-${version}-202012021800/org.eclipse.jdt-${version}.zip";
+      sha256 = "q0O6OE2u0bdz1+nOkzXDrrOOzoEbVaXnejx4lX7uZgk=";
     };
 
     meta = with stdenv.lib; {
diff --git a/pkgs/applications/editors/emacs-modes/elpa-generated.nix b/pkgs/applications/editors/emacs-modes/elpa-generated.nix
index b473eb99c39..ea776ed4cec 100644
--- a/pkgs/applications/editors/emacs-modes/elpa-generated.nix
+++ b/pkgs/applications/editors/emacs-modes/elpa-generated.nix
@@ -223,10 +223,10 @@
       elpaBuild {
         pname = "auctex";
         ename = "auctex";
-        version = "12.3.1";
+        version = "13.0.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/auctex-12.3.1.tar";
-          sha256 = "0kn48mmsvp1yp8fjcl4lriymhyskv5s70wscmf596xf56s7mqas4";
+          url = "https://elpa.gnu.org/packages/auctex-13.0.1.tar";
+          sha256 = "1y5q3phd0xr7342i757hr4hic8nad4kkdf1zk56mlj5snwr0g0w7";
         };
         packageRequires = [ cl-lib emacs ];
         meta = {
@@ -264,16 +264,16 @@
           license = lib.licenses.free;
         };
       }) {};
-    auto-overlays = callPackage ({ elpaBuild, fetchurl, lib }:
+    auto-overlays = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
       elpaBuild {
         pname = "auto-overlays";
         ename = "auto-overlays";
-        version = "0.10.9";
+        version = "0.10.10";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/auto-overlays-0.10.9.tar";
-          sha256 = "0aqjp3bkd7mi191nm971z857s09py390ikcd93hyhmknblk0v14p";
+          url = "https://elpa.gnu.org/packages/auto-overlays-0.10.10.tar";
+          sha256 = "0wln6b4j3pd3mhx6sx0bnz74c4n6fidmkg77cqfpxs4j5l1zjp2z";
         };
-        packageRequires = [];
+        packageRequires = [ cl-lib ];
         meta = {
           homepage = "https://elpa.gnu.org/packages/auto-overlays.html";
           license = lib.licenses.free;
@@ -437,10 +437,10 @@
       elpaBuild {
         pname = "chess";
         ename = "chess";
-        version = "2.0.4";
+        version = "2.0.5";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/chess-2.0.4.tar";
-          sha256 = "1sq1bjmp513vldfh7hc2bbfc54665abqiz0kqgqq3gijckaxn5js";
+          url = "https://elpa.gnu.org/packages/chess-2.0.5.tar";
+          sha256 = "1a4iwjdh6k348df6qywjws9z9f862d62m0b2sz57z4xhywiyxpr7";
         };
         packageRequires = [ cl-lib ];
         meta = {
@@ -685,10 +685,10 @@
       elpaBuild {
         pname = "csv-mode";
         ename = "csv-mode";
-        version = "1.13";
+        version = "1.14";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/csv-mode-1.13.tar";
-          sha256 = "0g9rj8sgdbzqnqqvhx3022zz665wqam2nlxsbhzz2393cz11y0d2";
+          url = "https://elpa.gnu.org/packages/csv-mode-1.14.tar";
+          sha256 = "1jz4134pk8dwzsqih9wybx4l9yl244cgcilw8rdnnqmm8i6vxgrp";
         };
         packageRequires = [ cl-lib emacs ];
         meta = {
@@ -790,10 +790,10 @@
       elpaBuild {
         pname = "dict-tree";
         ename = "dict-tree";
-        version = "0.14";
+        version = "0.16";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/dict-tree-0.14.el";
-          sha256 = "1k00k3510bgq7rijvrxbx4b7qlq2abq1dyyn51zgm8q0qk68p5jq";
+          url = "https://elpa.gnu.org/packages/dict-tree-0.16.tar";
+          sha256 = "1myf26g3jjk2v8yp3k2n8m45vi20452wd7w2bja8csfkk0qx3300";
         };
         packageRequires = [ heap tNFA trie ];
         meta = {
@@ -805,10 +805,10 @@
       elpaBuild {
         pname = "diff-hl";
         ename = "diff-hl";
-        version = "1.8.7";
+        version = "1.8.8";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/diff-hl-1.8.7.tar";
-          sha256 = "1qcwicflvm6dxcflnlg891hyzwp2q79fdkdbdwp1440a0j09riam";
+          url = "https://elpa.gnu.org/packages/diff-hl-1.8.8.tar";
+          sha256 = "10g1333xvki8aw5vhyijkpjn62jh9k3n4a5sh1z69hsfvxih5lqk";
         };
         packageRequires = [ cl-lib emacs ];
         meta = {
@@ -1026,21 +1026,24 @@
           license = lib.licenses.free;
         };
       }) {};
-    eglot = callPackage ({ elpaBuild
+    eglot = callPackage ({ eldoc
+                         , elpaBuild
                          , emacs
                          , fetchurl
                          , flymake ? null
                          , jsonrpc
-                         , lib }:
+                         , lib
+                         , project
+                         , xref }:
       elpaBuild {
         pname = "eglot";
         ename = "eglot";
-        version = "1.6";
+        version = "1.7";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/eglot-1.6.tar";
-          sha256 = "15hd6sx7qrpvlvhwwkcgdiki8pswwf4mm7hkm0xvznskfcp44spx";
+          url = "https://elpa.gnu.org/packages/eglot-1.7.tar";
+          sha256 = "1zvs144hxq2mmq1h0ynx9hy7yyccb46f3pjg9mgq8v9cw5y678vk";
         };
-        packageRequires = [ emacs flymake jsonrpc ];
+        packageRequires = [ eldoc emacs flymake jsonrpc project xref ];
         meta = {
           homepage = "https://elpa.gnu.org/packages/eglot.html";
           license = lib.licenses.free;
@@ -1130,10 +1133,10 @@
       elpaBuild {
         pname = "emms";
         ename = "emms";
-        version = "6.2";
+        version = "6.3";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/emms-6.2.tar";
-          sha256 = "0d95sjrh9vpl41vz26y8clgji987z15lj4ky2kr9yrl0zpa8yv35";
+          url = "https://elpa.gnu.org/packages/emms-6.3.tar";
+          sha256 = "12cfq503li0gcqmm5bmqz8yjvfdif5xvz0l9vx3g5jl6ljygwgmf";
         };
         packageRequires = [ cl-lib seq ];
         meta = {
@@ -1746,10 +1749,10 @@
       elpaBuild {
         pname = "ivy-posframe";
         ename = "ivy-posframe";
-        version = "0.5.3";
+        version = "0.5.5";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/ivy-posframe-0.5.3.el";
-          sha256 = "03ydfb155p5lak7nw4s79ab9zadwsjw1zggzwxgnlydsqdqbr6l6";
+          url = "https://elpa.gnu.org/packages/ivy-posframe-0.5.5.tar";
+          sha256 = "184730grclxmlw6nfs41d4g6fvz9c6xnclvwgqx1ii0xm7p9xy95";
         };
         packageRequires = [ emacs ivy posframe ];
         meta = {
@@ -1791,10 +1794,10 @@
       elpaBuild {
         pname = "js2-mode";
         ename = "js2-mode";
-        version = "20190219";
+        version = "20201220";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/js2-mode-20190219.tar";
-          sha256 = "0jgqs7cwykw5ihdq9wp5qc05y6br9gsyfiylqhjq43z59673chcc";
+          url = "https://elpa.gnu.org/packages/js2-mode-20201220.tar";
+          sha256 = "0zdrp8lap1ijrmsn9jsnvm44b6vxlgh9vcla5ysh1ga95zkjxrwm";
         };
         packageRequires = [ cl-lib emacs ];
         meta = {
@@ -1847,6 +1850,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    kiwix = callPackage ({ elpaBuild, emacs, fetchurl, lib, request }:
+      elpaBuild {
+        pname = "kiwix";
+        ename = "kiwix";
+        version = "1.0.1";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/kiwix-1.0.1.tar";
+          sha256 = "1dly6pilf71hq3mra9kc63i6iynzkxjmp9gwy0rhnvhq4b4qr01d";
+        };
+        packageRequires = [ emacs request ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/kiwix.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     kmb = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "kmb";
@@ -2430,10 +2448,10 @@
       elpaBuild {
         pname = "org";
         ename = "org";
-        version = "9.4";
+        version = "9.4.4";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/org-9.4.tar";
-          sha256 = "1awkrh3y90q7c0as3327rqj0zylf5cpjzr1pyvbzymli16irhwb6";
+          url = "https://elpa.gnu.org/packages/org-9.4.4.tar";
+          sha256 = "05ma8n6hr10323d85ay8ai0xrpc9q2m93n8avqh7j9fmmb3bhr0b";
         };
         packageRequires = [];
         meta = {
@@ -2460,10 +2478,10 @@
       elpaBuild {
         pname = "org-translate";
         ename = "org-translate";
-        version = "0.1.2";
+        version = "0.1.3";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/org-translate-0.1.2.el";
-          sha256 = "1087h6l5d8946dl4bg7g7is5pwc6004l4k9i2qcki4ahglvzdkz4";
+          url = "https://elpa.gnu.org/packages/org-translate-0.1.3.el";
+          sha256 = "0m52vv1961kf8f1gw8c4n02hxcvhdw3wgzmcxvjcdijfnjkarm33";
         };
         packageRequires = [ emacs org ];
         meta = {
@@ -2670,10 +2688,10 @@
       elpaBuild {
         pname = "project";
         ename = "project";
-        version = "0.5.2";
+        version = "0.5.3";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/project-0.5.2.el";
-          sha256 = "181hls4phhj8kgpfcky6h0mgzpl9xj616abvcvx8mrn4nmpyh655";
+          url = "https://elpa.gnu.org/packages/project-0.5.3.el";
+          sha256 = "0cpf69m41h8gfcqnq72h11925zdk35b7hw7bfy83xm83xwp12rxx";
         };
         packageRequires = [ emacs xref ];
         meta = {
@@ -2715,10 +2733,10 @@
       elpaBuild {
         pname = "python";
         ename = "python";
-        version = "0.27";
+        version = "0.27.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/python-0.27.el";
-          sha256 = "03k527p1jp47hmm7rmld3cn9dls1smyspvgii2xn95jfvrp9klvv";
+          url = "https://elpa.gnu.org/packages/python-0.27.1.el";
+          sha256 = "0jygl2w8x73v22w0rzq75i2hnm3f46dzgg5x1ckz720nznvwwkka";
         };
         packageRequires = [ cl-lib emacs ];
         meta = {
@@ -3040,10 +3058,10 @@
       elpaBuild {
         pname = "rt-liberation";
         ename = "rt-liberation";
-        version = "1.31";
+        version = "2.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/rt-liberation-1.31.tar";
-          sha256 = "0qqqqwdkb0h8137rqsr08179skl1475cg4hl7a987rmccys0j83c";
+          url = "https://elpa.gnu.org/packages/rt-liberation-2.1.tar";
+          sha256 = "1ahl1ys72rvqs2bf9zv9648h65fx0283ibqlk1b8ayahc04w6qbl";
         };
         packageRequires = [];
         meta = {
@@ -3076,10 +3094,10 @@
       elpaBuild {
         pname = "scanner";
         ename = "scanner";
-        version = "0.1";
+        version = "0.2";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/scanner-0.1.tar";
-          sha256 = "0hv4w7yzfdnz8vrfhw6i6agj9hs09vzsqr63nrp6dd93q0gk71mw";
+          url = "https://elpa.gnu.org/packages/scanner-0.2.tar";
+          sha256 = "1nbfpgndjkv7mr81bxy58k4y13lc4cidyz9mbwh7433r8rfhymb5";
         };
         packageRequires = [ dash emacs ];
         meta = {
@@ -3147,21 +3165,6 @@
           license = lib.licenses.free;
         };
       }) {};
-    shell-command-plus = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
-      elpaBuild {
-        pname = "shell-command-plus";
-        ename = "shell-command+";
-        version = "2.0.0";
-        src = fetchurl {
-          url = "https://elpa.gnu.org/packages/shell-command+-2.0.0.tar";
-          sha256 = "1l8lwami4rbp94sbb1k4dvv7z0dvf51s0992xragpn9b9jbx5qd6";
-        };
-        packageRequires = [ emacs ];
-        meta = {
-          homepage = "https://elpa.gnu.org/packages/shell-command+.html";
-          license = lib.licenses.free;
-        };
-      }) {};
     shen-mode = callPackage ({ elpaBuild, fetchurl, lib }:
       elpaBuild {
         pname = "shen-mode";
@@ -3545,10 +3548,10 @@
       elpaBuild {
         pname = "tramp";
         ename = "tramp";
-        version = "2.4.4.4";
+        version = "2.5.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/tramp-2.4.4.4.tar";
-          sha256 = "1f2d02xz3kpy50186wcy688lx76dv0gmrbkj2qdvifcwhyc26sz8";
+          url = "https://elpa.gnu.org/packages/tramp-2.5.0.tar";
+          sha256 = "1jpnqyk108nksaym2b9v243y5zkpr4px9d070wsb9cwm3xrcd8rh";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3590,10 +3593,10 @@
       elpaBuild {
         pname = "trie";
         ename = "trie";
-        version = "0.4";
+        version = "0.5";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/trie-0.4.el";
-          sha256 = "0869fh3bghxil94wd9vgbb5bk1hx2qkh75vbvp0psmcima8dgzgw";
+          url = "https://elpa.gnu.org/packages/trie-0.5.tar";
+          sha256 = "1qbzxw7h3p3k3r3fzq66pj223vjiw20dvaljkb8w3r5q16fnav3p";
         };
         packageRequires = [ heap tNFA ];
         meta = {
@@ -3704,10 +3707,10 @@
       elpaBuild {
         pname = "vcard";
         ename = "vcard";
-        version = "0.1";
+        version = "0.2.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/vcard-0.1.tar";
-          sha256 = "1awcm2s292r2nkyz5bwjaga46jsh5rn92469wrg1ag843mlyxbd0";
+          url = "https://elpa.gnu.org/packages/vcard-0.2.1.tar";
+          sha256 = "0nfrh1mz2h7h259kf7sj13z30kmjywfvs83ax5qjkfwxhqm03abf";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -4074,10 +4077,10 @@
       elpaBuild {
         pname = "xref";
         ename = "xref";
-        version = "1.0.3";
+        version = "1.0.4";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/xref-1.0.3.el";
-          sha256 = "1r531gl73y1br8g4n77gxbyj26yiaw7snjad21fgs5m80cka8fi3";
+          url = "https://elpa.gnu.org/packages/xref-1.0.4.el";
+          sha256 = "0hkm59qqlsfw3w9ws9xhpmmz30ylifmh05a00ba58zvv1kz04x1g";
         };
         packageRequires = [ emacs ];
         meta = {
diff --git a/pkgs/applications/editors/emacs-modes/emacs2nix.nix b/pkgs/applications/editors/emacs-modes/emacs2nix.nix
index b4b9adfa619..e29a19713bd 100644
--- a/pkgs/applications/editors/emacs-modes/emacs2nix.nix
+++ b/pkgs/applications/editors/emacs-modes/emacs2nix.nix
@@ -4,8 +4,8 @@ let
   src = pkgs.fetchgit {
     url = "https://github.com/ttuegel/emacs2nix.git";
     fetchSubmodules = true;
-    rev = "798542b34dc8d7f5c110119350bd9bafef9f8439";
-    sha256 = "1lna9z90sxjnanggjh2si018cfzp60xsrissnv9bbkc8wish1537";
+    rev = "b815a9323c1f58f6c163a1f968939c57a8b6cfa0";
+    sha256 = "183xlmhjmj4z2zssc0pw990h7bf3bam8zqswnf1zcsyp8z7yrl5g";
   };
 
 in pkgs.mkShell {
diff --git a/pkgs/applications/editors/emacs-modes/org-generated.nix b/pkgs/applications/editors/emacs-modes/org-generated.nix
index 23d36573bc2..d2dc41bcf04 100644
--- a/pkgs/applications/editors/emacs-modes/org-generated.nix
+++ b/pkgs/applications/editors/emacs-modes/org-generated.nix
@@ -4,10 +4,10 @@
       elpaBuild {
         pname = "org";
         ename = "org";
-        version = "20201207";
+        version = "20201228";
         src = fetchurl {
-          url = "https://orgmode.org/elpa/org-20201207.tar";
-          sha256 = "0hryicg3nbvc17ypwdcx08kl8samd979388hw7jwbp5sw3v95y0c";
+          url = "https://orgmode.org/elpa/org-20201228.tar";
+          sha256 = "0rv98v3zbdbc4yfq9mymrxrcj422xpfhvw31xrspydwgpxqgsf99";
         };
         packageRequires = [];
         meta = {
@@ -19,10 +19,10 @@
       elpaBuild {
         pname = "org-plus-contrib";
         ename = "org-plus-contrib";
-        version = "20201207";
+        version = "20201228";
         src = fetchurl {
-          url = "https://orgmode.org/elpa/org-plus-contrib-20201207.tar";
-          sha256 = "07xmnxrn63ini3c8hfrgv13b28dh91x2lpf875fhi5wz70w0a9s4";
+          url = "https://orgmode.org/elpa/org-plus-contrib-20201228.tar";
+          sha256 = "0libzh2a51m9l0kb01zjw2fai2nbxqw9r01i8fkjy94hq0lbw7cc";
         };
         packageRequires = [];
         meta = {
diff --git a/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json b/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json
index a8d79b3d8ca..18b78521586 100644
--- a/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json
+++ b/pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json
@@ -1110,20 +1110,20 @@
     "auto-complete",
     "rtags"
    ],
-   "commit": "63a7d9b733def9fe76568f81321a65a450829575",
-   "sha256": "1nnjhfz7xm1ax38xkz0jvgzhfczlc4r9xlpzc24sisabkvlkivyw"
+   "commit": "39339388256df662d0084b4a094d03e52748f9e8",
+   "sha256": "0wp4mygsxzibra2p3m5rn9m0yd3fscd795k5xa0wxi5pwddv7dlg"
   },
   "stable": {
    "version": [
-    2,
-    38
+    3,
+    23
    ],
    "deps": [
     "auto-complete",
     "rtags"
    ],
-   "commit": "9687ccdb9e539981e7934e768ea5c84464a61139",
-   "sha256": "1r6l7dgr2ch586zrdi5l8fhdj4qdva8ldz7cjvi2byc2pd2xs8rx"
+   "commit": "7169ed577d676690a3c6f0025b54e8477d80eacf",
+   "sha256": "1i94dizg3wvkvq8c2pf5bzkx8zwzcfi4p3l73c779y145bygssnq"
   }
  },
  {
@@ -1871,8 +1871,8 @@
     "annotation",
     "eri"
    ],
-   "commit": "fdace3b9c446a1d621858dc343f5ed80422d0ea1",
-   "sha256": "0gx3a0gcr9x9zzgr1xa4lgwl0zwcqhmxn8gscmyspbx6dj4akvg0"
+   "commit": "c45dc6b2729a53653df2874b6ea8b3500793da78",
+   "sha256": "03a49iifi5dl2fcsi288l68frmga3qiw2prd0vfr9xzmyqmfaz6z"
   },
   "stable": {
    "version": [
@@ -1899,8 +1899,8 @@
    "deps": [
     "dash"
    ],
-   "commit": "2d65d925318006e2f6fa261ad192fbc2d212877b",
-   "sha256": "0x4630lz9s59hidpf4pqc3697fgd09ac3zjax0xq3kk1993hrpa2"
+   "commit": "4a620e62b5e645a48b0a818bf4eb19daea4977df",
+   "sha256": "0gy8x78av6z6hp5jccz7pnh6n0fnpfs5vfhfbxggj2qjfyxbvw1r"
   }
  },
  {
@@ -1953,11 +1953,11 @@
   "repo": "takaxp/ah",
   "unstable": {
    "version": [
-    20191212,
-    652
+    20201213,
+    218
    ],
-   "commit": "3ca848bcf1fc4c18b4a5329d1439c5effb7dcb97",
-   "sha256": "1lgxwhq5359qrn3zv5m9sssz93vbqa6bp49z526pck1bkf80s3vx"
+   "commit": "869219e7853510aeb00af3580aede0e5d49b324a",
+   "sha256": "02i6nrkbqf1bj2m4h81p5z1mi9lm92g9vm1mi6qny83zs64m2607"
   }
  },
  {
@@ -2398,14 +2398,14 @@
   "repo": "seagle0128/all-the-icons-ibuffer",
   "unstable": {
    "version": [
-    20201027,
-    758
+    20201218,
+    356
    ],
    "deps": [
     "all-the-icons"
    ],
-   "commit": "c41e12033712969bfa2e3e9f1c62feae866a48ac",
-   "sha256": "0v8vqgblqf1yq3rgr3lxnzjqq22lvmkjhgpd78acxd6ivq8fzqs4"
+   "commit": "0260cd194d150126bcb81823742ab53036942c73",
+   "sha256": "1snxbi5wv5qa78vx487rdrarpydrabxz3s6a9ck54wkf91mkbcvv"
   },
   "stable": {
    "version": [
@@ -2460,15 +2460,15 @@
   "repo": "seagle0128/all-the-icons-ivy-rich",
   "unstable": {
    "version": [
-    20200811,
-    838
+    20201215,
+    1647
    ],
    "deps": [
     "all-the-icons",
     "ivy-rich"
    ],
-   "commit": "6428cb39729b7290368c5b95f563a320c98f972d",
-   "sha256": "0b9d1cs39j8x238s14b1smrhanapwai123dvpplmgb07wmrwwwwg"
+   "commit": "6eb63a158cd5e1b47635704ebdd3e010e7b914f8",
+   "sha256": "1xvcgylx2h9mrpm56icqsflyxvy88mprgxrs6byhkvkm3p7jzin2"
   },
   "stable": {
    "version": [
@@ -2979,8 +2979,8 @@
   "repo": "davidshepherd7/anki-mode",
   "unstable": {
    "version": [
-    20200703,
-    736
+    20201223,
+    719
    ],
    "deps": [
     "dash",
@@ -2988,8 +2988,8 @@
     "request",
     "s"
    ],
-   "commit": "3918e4f7b2f14e485cc3acc927abe6563695963f",
-   "sha256": "16fx2w1nz6jxsrc9naykah3valab46xnwsmjz5lm9zl38g4ypyna"
+   "commit": "d9b84028cd6a1ae040fb5604080a8b5fa8138562",
+   "sha256": "0imx5g615lfz71jjrb3hm84ll8p0bkrfi6w1qwxjsqgrwbw77s14"
   },
   "stable": {
    "version": [
@@ -3064,11 +3064,11 @@
   "repo": "bastibe/annotate.el",
   "unstable": {
    "version": [
-    20201123,
-    1732
+    20201216,
+    1526
    ],
-   "commit": "9320918b91c5ab3ee63f812a0479423233f95821",
-   "sha256": "16xffyf3ch7l644r50pdk7s82mppxhp5v7kz6m47gz81nnyd8kis"
+   "commit": "44ac24f63dab3a5e052248d384082414b7af5f1d",
+   "sha256": "1np5kqfdxaq76gs6fwrlqv5sv6ii1w6f6rbp74j9hsir34kfpbv7"
   },
   "stable": {
    "version": [
@@ -3106,8 +3106,8 @@
     20200914,
     644
    ],
-   "commit": "fdace3b9c446a1d621858dc343f5ed80422d0ea1",
-   "sha256": "0gx3a0gcr9x9zzgr1xa4lgwl0zwcqhmxn8gscmyspbx6dj4akvg0"
+   "commit": "c71681368fdedcc83a136b4dc7b01e08b8a938ba",
+   "sha256": "1i9xp35vrksmalrr0y0ybsrb9qxxwyzgxhxz297488czxw8cfvz0"
   },
   "stable": {
    "version": [
@@ -3512,6 +3512,21 @@
   }
  },
  {
+  "ename": "apparmor-mode",
+  "commit": "6dece118970184e7fc2cfd3e26f97f2028d7f5f2",
+  "sha256": "1ilp4srliacwgvzkbkky6ka0p60ni6v4na270iniklmjglbbs5f0",
+  "fetcher": "github",
+  "repo": "alexmurray/apparmor-mode",
+  "unstable": {
+   "version": [
+    20201213,
+    1118
+   ],
+   "commit": "8c0c20b6896bba65c7f6cfe0a21e22b21a12c5f9",
+   "sha256": "1pr2qpvwfmqd0qysbdvaz0r0y7zznifridy0jyd8lwkddyi8jypf"
+  }
+ },
+ {
   "ename": "apples-mode",
   "commit": "5ca765a6a2f312f585624ec8b82dc9eb6b9bbc0c",
   "sha256": "05ssnxs9ybc26jhr69xl9jpb41bz1688minmlc9msq2nvyfnj97s",
@@ -3727,15 +3742,14 @@
   "repo": "stardiviner/arduino-mode",
   "unstable": {
    "version": [
-    20200819,
-    103
+    20201231,
+    214
    ],
    "deps": [
-    "cl-lib",
     "spinner"
    ],
-   "commit": "16955f579c5caca223c0ba825075e3573dcf2288",
-   "sha256": "1vf3ahvs81i0fa3rbwz3i67ahf3x169pv879p5igxk93xf6whqnp"
+   "commit": "10af99792c8e4b97ea542c55bfed246781fdd1ba",
+   "sha256": "1gz4hmmijlilqqh7scyidh5kbbmyvq12dhnjgnn9h6y9q5qabibq"
   }
  },
  {
@@ -4470,15 +4484,15 @@
   "repo": "auto-complete/auto-complete",
   "unstable": {
    "version": [
-    20201011,
-    1341
+    20201213,
+    1255
    ],
    "deps": [
     "cl-lib",
     "popup"
    ],
-   "commit": "51a2ea092d280ec4956dc4a104467f8b83b5e0de",
-   "sha256": "0hp0z6s2a6y7gkwjarihqdlx897p4ji1ddz3a5167whp3wb2dfrn"
+   "commit": "6bbb6c7ab8e5aa2d389807fce65bbc5ce7065900",
+   "sha256": "0cxs9is3ifn9grqaw50dvpsjkkmwh398a6lqc93fny7p6d1hd9ja"
   },
   "stable": {
    "version": [
@@ -5248,8 +5262,8 @@
     20190331,
     2230
    ],
-   "commit": "d5909f4e237c27f638ef06725d04dd17f72d4740",
-   "sha256": "1bknlb9p576f0xrghh4paa23xkiyzlmlv97fr308mwwqs2g8d7ck"
+   "commit": "5bb073fe751d6a839e33c4a7fd043be16a3dbeb2",
+   "sha256": "0pyjds57kc0y1h6qligxzdx7m61wxzv57bp7al5cvqlg225dswa0"
   }
  },
  {
@@ -5340,11 +5354,11 @@
   "repo": "avkoval/avk-emacs-themes",
   "unstable": {
    "version": [
-    20201120,
-    1316
+    20201223,
+    750
    ],
-   "commit": "d35a50520c0ddfcf04a0d72eb64fead68039e8d8",
-   "sha256": "15n2vqz6apfrb9bn48989knzyffjzp30100x4q96pk2xic1zixri"
+   "commit": "d5471776c01a2bdf2a1fa255a79447489cf68e65",
+   "sha256": "1m1s7fzl8hxzkx0672l62jpkak0v8vdyb7l6nmw9648rww78gzyl"
   }
  },
  {
@@ -5355,14 +5369,14 @@
   "repo": "abo-abo/avy",
   "unstable": {
    "version": [
-    20200624,
-    1148
+    20201226,
+    1734
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "bbf1e7339eba06784dfe86643bb0fbddf5bb0342",
-   "sha256": "0jmjjckrmivfy2r527vynq9x0mzwcgcyclydar9fa2xb1wn669pd"
+   "commit": "e92cb37457b43336b765630dbfbea8ba4be601fa",
+   "sha256": "1w7421h9arxj39w4q3000avcbasl1c95r0hys7rchmlbkqas32cb"
   },
   "stable": {
    "version": [
@@ -5572,11 +5586,11 @@
   "url": "https://bitbucket.org/pdo/axiom-environment",
   "unstable": {
    "version": [
-    20201118,
-    1816
+    20201212,
+    1109
    ],
-   "commit": "9ef86ca16098050da4362f5aadaea64b0a093fc1",
-   "sha256": "0hyaa1nskm95scypdpbndmmdasq6cas85y6i2q1f8nq8a3qd5585"
+   "commit": "47d6dffc29286badb2b1d7143b219e5c1be15bdb",
+   "sha256": "1dppyda9jkwh6fj8m4kziq84w0b5yzxrhq87jhkv54jjra6yxbb4"
   }
  },
  {
@@ -5602,11 +5616,11 @@
   "repo": "juergenhoetzel/babel",
   "unstable": {
    "version": [
-    20181201,
-    919
+    20201210,
+    1626
    ],
-   "commit": "c25dedb5c7f2465b122102f02cd9845668818c20",
-   "sha256": "1ydb8zbg8n56wf5hb8i3i2s40mspqfkszfdd8v8jjqb5wm8q32rc"
+   "commit": "5db131f1edb85a31202fd77ed2fb8f68c0233845",
+   "sha256": "0s1p3w62hmpk1ifr0ciwhxfwdi5m48qqr4glqqbkfbhr8yv60r2h"
   },
   "stable": {
    "version": [
@@ -6229,22 +6243,22 @@
  },
  {
   "ename": "bbdb-csv-import",
-  "commit": "76ac7178ee5381e08ae881f3fc6061106eeb1c1d",
-  "sha256": "0r7pc2ypd1ydqrnvcqmsg69rm047by7k0zhm563538ra82597wnm",
-  "fetcher": "gitlab",
-  "repo": "iankelling/bbdb-csv-import",
+  "commit": "950d78ae6586db7572291a21fa6fa3ef05259bfc",
+  "sha256": "0qy78yh4xyfah5wcndqly5rnddcdzj0yq2xh91vh39vhkl53kkgr",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~iank/bbdb-csv-import",
   "unstable": {
    "version": [
-    20180122,
-    49
+    20140802,
+    1142
    ],
    "deps": [
     "bbdb",
     "dash",
     "pcsv"
    ],
-   "commit": "dbc2e0fe9e8ae65e494011044d905ae79b3cee3e",
-   "sha256": "0n52arydcsmarkpqqwxvw686cypl7iz73kzizirdjhcqmzimx9pl"
+   "commit": "dc9e722d1c1fcd55b71625ee3f05a4921851d186",
+   "sha256": "0jkrznrfdh562bwy0adg1pzmqh6i766b5ki41g4pr9wcbmh937sn"
   }
  },
  {
@@ -6378,26 +6392,28 @@
   "repo": "Sodaware/beeminder.el",
   "unstable": {
    "version": [
-    20200610,
-    2311
+    20201227,
+    1533
    ],
    "deps": [
-    "org"
+    "org",
+    "seq"
    ],
-   "commit": "8f86ae34ebd17324d98146a2b3a532d56dd1cdd0",
-   "sha256": "0jw62l1nnnnz4gr7jrk10jlf8ayjngyx9wm97fd339spiygld5pr"
+   "commit": "161d9c94c594614a01cb08219693d9e000af4f69",
+   "sha256": "0cfjrn4hkpxhmg07kdff6ifvv1aqaq6dah5bvdc0xhzlqznx72j4"
   },
   "stable": {
    "version": [
     1,
-    1,
+    2,
     0
    ],
    "deps": [
-    "org"
+    "org",
+    "seq"
    ],
-   "commit": "3e95a669474e27cd51a16caea030456377f83062",
-   "sha256": "1bj9yzjvglnb0f4glh8fg478xlm5nqmd9jqm1casdj5m30i4kafn"
+   "commit": "161d9c94c594614a01cb08219693d9e000af4f69",
+   "sha256": "0cfjrn4hkpxhmg07kdff6ifvv1aqaq6dah5bvdc0xhzlqznx72j4"
   }
  },
  {
@@ -6595,11 +6611,11 @@
   "repo": "gilbertw1/better-jumper",
   "unstable": {
    "version": [
-    20201008,
-    2001
+    20201230,
+    2104
    ],
-   "commit": "fe548d22c9228b60d9c8a2a452a6c2e03dfdf238",
-   "sha256": "0zcm80z3fq5185p676rcpdbhib2d6267j0jqp1wjj88pszyc035i"
+   "commit": "e3a6546aa626b9a79ae451c88f44cf26f9d1a919",
+   "sha256": "0pijmc496m1mlzhny8zzklh5idpkipv552h8774rkdsn0c6d9jna"
   }
  },
  {
@@ -6868,8 +6884,8 @@
     "parsebib",
     "s"
    ],
-   "commit": "8d84d8beb3bfafaa060d7e956fcc569ecf010d9c",
-   "sha256": "1fnhi9dwq99jva3fmjknzlsklpm379ks8am7076xchv35609rgix"
+   "commit": "1bb81d77e08296a50de7ebfe5cf5b0c715b7f3d6",
+   "sha256": "1n5539hivg65gkr041mq8h96bn489fhvbxrh1manxacf6xi6b2am"
   },
   "stable": {
    "version": [
@@ -7068,14 +7084,14 @@
   "repo": "rnkn/binder",
   "unstable": {
    "version": [
-    20201208,
-    1429
+    20201222,
+    1603
    ],
    "deps": [
     "seq"
    ],
-   "commit": "bc63f9fdfe10fcf799abab3f8d8deb38c51e9f80",
-   "sha256": "1wcwb3m5i4z1dkkcj8xl1rlkkbf9scyx0mpdhi086dw70afrqwy3"
+   "commit": "8a10a66116797e132b19f57026a1976753d332e9",
+   "sha256": "0qjrcvmmhirzw08r81jnxl79kmgiwwhjnvif16amkf1l8r8qiawq"
   },
   "stable": {
    "version": [
@@ -8102,25 +8118,25 @@
   "repo": "plandes/bshell",
   "unstable": {
    "version": [
-    20190617,
-    238
+    20201219,
+    139
    ],
    "deps": [
     "buffer-manage"
    ],
-   "commit": "5cdffa393ec3f923736bc6459bc958829a321327",
-   "sha256": "0nfj00fgg7lsd5201qds7pniyn9lbnmmdbps5lkiqmbp6phksba9"
+   "commit": "469c841f19f28c271b4f172b40f3f9ca830254df",
+   "sha256": "0hchii00gi2cpzmb8n8r7dh6fr4x8x5p2n6c5d62wxwm6wpppyzp"
   },
   "stable": {
    "version": [
     0,
-    9
+    10
    ],
    "deps": [
     "buffer-manage"
    ],
-   "commit": "8d359f8a76749dcd5ca046b280a11fdb3f87cd23",
-   "sha256": "10nidam7zyqxc085v6f4mzz5d62p92k88vvcrv95i1sbzma7lz4f"
+   "commit": "469c841f19f28c271b4f172b40f3f9ca830254df",
+   "sha256": "0hchii00gi2cpzmb8n8r7dh6fr4x8x5p2n6c5d62wxwm6wpppyzp"
   }
  },
  {
@@ -8260,27 +8276,27 @@
   "repo": "plandes/buffer-manage",
   "unstable": {
    "version": [
-    20191015,
-    1730
+    20201221,
+    122
    ],
    "deps": [
     "choice-program",
     "dash"
    ],
-   "commit": "4fd0e6f9f3da31bc805be2000adf2c91088dd39b",
-   "sha256": "1an2w2s2xnmcj2knnax4mpv4wzcq31bvqcbhwasm39yzjlz7j5s9"
+   "commit": "800f22e024a2f364ac69d9efddd25ea0ac7c49c0",
+   "sha256": "04bpqd8rrg32y0z912d6x5bb55asp47vh6lnlwbs5ia0q53fqkgd"
   },
   "stable": {
    "version": [
     0,
-    10
+    12
    ],
    "deps": [
     "choice-program",
     "dash"
    ],
-   "commit": "f21bac39b3c890704a7b1b50e8d6bc39e6417a3d",
-   "sha256": "0hs3glwwp1b0i1gxp0ypyjwaw8pyi26a66y9dqv7sz0xsvnm3zbs"
+   "commit": "800f22e024a2f364ac69d9efddd25ea0ac7c49c0",
+   "sha256": "04bpqd8rrg32y0z912d6x5bb55asp47vh6lnlwbs5ia0q53fqkgd"
   }
  },
  {
@@ -8321,8 +8337,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "4a4ccb0d6916c3e9fba737bb7b48e8aac921954e",
-   "sha256": "1rg6iwswi82w8938pavwhvvr2z3ismb42asam2fkad47h2sgn0gz"
+   "commit": "bc84c2f79a33609cccf3c996101125859b2e26ab",
+   "sha256": "0xw3fs8v3ciw0kvdb2nvs4wk5fjpl012hisv9ypx0nhszzyggrs6"
   }
  },
  {
@@ -8411,8 +8427,8 @@
   "repo": "alphapapa/bufler.el",
   "unstable": {
    "version": [
-    20201108,
-    1800
+    20201226,
+    2149
    ],
    "deps": [
     "dash",
@@ -8421,8 +8437,8 @@
     "magit-section",
     "pretty-hydra"
    ],
-   "commit": "d623605be961316be378ffcd1e97a85069f2f7cc",
-   "sha256": "0vysawxmzvdnk7s5i44644pvi5y6gxyvbnspn45vl8y0ifddv2g2"
+   "commit": "097f4349920215bdd829fceabc1afdbba172c32a",
+   "sha256": "1a4y3p7cwygw09b9f9j9m821aiyjiji55mrm83pvv0xzc9rhwd3h"
   },
   "stable": {
    "version": [
@@ -8637,14 +8653,14 @@
   "repo": "alphapapa/burly.el",
   "unstable": {
    "version": [
-    20201118,
-    1308
+    20201211,
+    58
    ],
    "deps": [
     "map"
    ],
-   "commit": "7c03d63500b3164d157f5760619e25d731d68802",
-   "sha256": "1jxrbw9p5i7x0q8v0gy5w0nb4c1mxr274qjdb3ipdggfh6amzl29"
+   "commit": "291c2b34eee255f64c0fd889b67dc11a3b69ef12",
+   "sha256": "0a9k47xn9fhhw6rl73gri2ykzag5c68drfc7c4r0f1nqp61smkkv"
   },
   "stable": {
    "version": [
@@ -9254,21 +9270,21 @@
   "repo": "chenyanming/calibredb.el",
   "unstable": {
    "version": [
-    20201115,
-    617
+    20201225,
+    854
    ],
    "deps": [
     "dash",
     "s",
     "transient"
    ],
-   "commit": "3f4ed7868bed75f633a8bc86909251a7b070dd55",
-   "sha256": "09j387rb8hdf5a0ivdr5mkwkcalvl2m9fvd99gjcrylby5xa25zw"
+   "commit": "1f38fc34a8c159846450d18b1ee50cc960349ee7",
+   "sha256": "18m8g9scjllckq1c71z2dl1khgjq02d65vjakxbiyp0c049f40mq"
   },
   "stable": {
    "version": [
     2,
-    7,
+    8,
     0
    ],
    "deps": [
@@ -9276,8 +9292,8 @@
     "s",
     "transient"
    ],
-   "commit": "4cd701c0ae63fb7c0bd6326b1acbaefaeb9d705a",
-   "sha256": "1w3kz9iny72gk54jdafz8sy5sv6hnpm3rw4fn1r8aznx4p00f9dy"
+   "commit": "a62d7de582b16490b1af5add7b24a67022be531b",
+   "sha256": "19gc05k2p1l8wlkrqij9cw6d61hzknd6a9n64kzlpi87cpbav3lv"
   }
  },
  {
@@ -9459,15 +9475,15 @@
   "repo": "kwrooijen/cargo.el",
   "unstable": {
    "version": [
-    20200826,
-    1537
+    20201213,
+    1943
    ],
    "deps": [
     "markdown-mode",
     "rust-mode"
    ],
-   "commit": "91ccfef6e36ff9e96352a03c4a057b5ee181438d",
-   "sha256": "1hyz834hwashcxpv5kxlzn3n0h7a50lniwdwrb62390d0x8pm6vy"
+   "commit": "b18e1ecc7ef4b0d813ad6775af00f1297efd2804",
+   "sha256": "04zxafczac13lygdh05glrgqks5zn2l1aajckjcla7ad6naknmar"
   },
   "stable": {
    "version": [
@@ -9935,15 +9951,15 @@
   "repo": "ema2159/centaur-tabs",
   "unstable": {
    "version": [
-    20201129,
-    1538
+    20201213,
+    949
    ],
    "deps": [
     "cl-lib",
     "powerline"
    ],
-   "commit": "b172646b49d00c7e11fe4a4eaa80bbf026e58ab5",
-   "sha256": "0g24drzxrdd84kz4dsvawj25wb3v92aanhixvdnpkkwq71clcq3r"
+   "commit": "23eda0a0292a84c7e0a0aa2b598f9e29c7e5b54f",
+   "sha256": "1zk0vf7yckv3zaws9z0svgbkvs94b2js1r9vjl6pxgxa2qc0khd6"
   },
   "stable": {
    "version": [
@@ -9996,11 +10012,11 @@
   "repo": "abo-abo/centimacro",
   "unstable": {
    "version": [
-    20140306,
-    1427
+    20201225,
+    1132
    ],
-   "commit": "1b97a9b558ed9c49d5da1bfbf29b2506575c2742",
-   "sha256": "0zqrpaq9c3lm12jxnvysh8f3m3193k22zaj0ycscdqd1jpq4wcgh"
+   "commit": "0149877584b333c4f1953f0767f0cae23881b0df",
+   "sha256": "0w1qzn3jrxl7f6nrycpybx8jyz570yr58ayrf5nj6b3kj0v9n5cb"
   }
  },
  {
@@ -10070,8 +10086,8 @@
     20171115,
     2108
    ],
-   "commit": "bf0858085ae6afc02f87573a77ff4795517fd288",
-   "sha256": "0rch5z0mnv98bvc7w7p48pj1w7lgnwgfh4zy6n097vkbwp4lfcjg"
+   "commit": "412acbdcff7c296f5980ad26e66a7b9235059035",
+   "sha256": "077rv9hv52rl3hdm3s3csf9wxgjvmd28ndyjwfn3fgshriwhh9dr"
   },
   "stable": {
    "version": [
@@ -10124,27 +10140,27 @@
   "repo": "plandes/cframe",
   "unstable": {
    "version": [
-    20190616,
-    1946
+    20201222,
+    1930
    ],
    "deps": [
     "buffer-manage",
     "dash"
    ],
-   "commit": "38026cbd004231c5525bea31723ced39311bb408",
-   "sha256": "1j5g1gdd1fhqfwxgjjvy7ywhb3cfvdl5rxlklacy5qfs4dva8z06"
+   "commit": "38544521e82befc06e397123a118dd96dda2c6b6",
+   "sha256": "04bgmh4rknfkfash1igav55hflkkrnkchbph6z61w36dqam06381"
   },
   "stable": {
    "version": [
     0,
-    1
+    4
    ],
    "deps": [
     "buffer-manage",
     "dash"
    ],
-   "commit": "bb99672502046e87c8f029ce98c637f762a4fc54",
-   "sha256": "088px3wlvr4km913y7hajrjqnxnv6n325rk6353bkbah2d75vxq4"
+   "commit": "38544521e82befc06e397123a118dd96dda2c6b6",
+   "sha256": "04bgmh4rknfkfash1igav55hflkkrnkchbph6z61w36dqam06381"
   }
  },
  {
@@ -10155,29 +10171,30 @@
   "repo": "Alexander-Miller/cfrs",
   "unstable": {
    "version": [
-    20191125,
-    2007
+    20201227,
+    1135
    ],
    "deps": [
     "dash",
     "posframe",
     "s"
    ],
-   "commit": "fc5effdc25a926eada4936e5506dcccdf3902137",
-   "sha256": "1d18wvx2szmpvj5v26qqp2qkdmb764sfkp2f864by2hpad0rx034"
+   "commit": "6477fc50513ac5a5fe2bee8c76109a026d30b6a8",
+   "sha256": "0nw1sl8yy1l25jjwcr918ynf9aax5ilp0xjk5n9iw8c0d4lzgdla"
   },
   "stable": {
    "version": [
     1,
-    3
+    3,
+    2
    ],
    "deps": [
     "dash",
     "posframe",
     "s"
    ],
-   "commit": "de83b587affe374d1cf6e6c2d747696e6c33a817",
-   "sha256": "130g09i38k77y2kyirg54dglksl6vrypdhh4h2j8hzy1mipc5a43"
+   "commit": "6477fc50513ac5a5fe2bee8c76109a026d30b6a8",
+   "sha256": "0nw1sl8yy1l25jjwcr918ynf9aax5ilp0xjk5n9iw8c0d4lzgdla"
   }
  },
  {
@@ -10188,11 +10205,11 @@
   "repo": "emacsmirror/cg",
   "unstable": {
    "version": [
-    20200305,
-    1845
+    20201211,
+    1238
    ],
-   "commit": "b0e4cca3d8a28054b3af2f592b528903c7e7c111",
-   "sha256": "06ff0blmixn38z013pxj0a5qqn6aw09kv50zzyx5prdyzb57fx6h"
+   "commit": "6e0ad3007ab39e8438baaf87bde11aa72c6606f2",
+   "sha256": "152iqasjabrskwiyhik7v8vh2x14bglng3yg7yqx7xbw4jli4p8f"
   }
  },
  {
@@ -10203,11 +10220,11 @@
   "repo": "challenger-deep-theme/emacs",
   "unstable": {
    "version": [
-    20191114,
-    1339
+    20201214,
+    1705
    ],
-   "commit": "b8427b5c87948a183e2dd2b8920a54fbaae2738b",
-   "sha256": "05vgax8arz6l0a4x0gsh7gs0qasjf09xj973nb7k3w8gyzmy1z95"
+   "commit": "b0d5f103db8ee846580617cc3a2f44f89edd5a6d",
+   "sha256": "03k4bvidvhcfqvk3hqni546pfz6lb8jwhxynsyacq1vcmvx1j8xw"
   }
  },
  {
@@ -10296,8 +10313,8 @@
     20200616,
     1418
    ],
-   "commit": "feac50b87d2a596c5e5b7b82b79ddd65b6dedd8c",
-   "sha256": "1pms4s1qnf60d3amhx1lfa255ln5wypq0q6w918whhzi4l7mdyz4"
+   "commit": "a810347b43b024a86167ab9be935dcf56c122743",
+   "sha256": "0ljwjqsa76mv23fl13m2fclhjlpnw5pinjpphh4ldppz2xirwl0k"
   },
   "stable": {
    "version": [
@@ -10623,22 +10640,25 @@
   "repo": "plandes/choice-program",
   "unstable": {
    "version": [
-    20201208,
-    313
+    20201217,
+    1751
    ],
-   "commit": "f95321f5e317225cd33824c32520fe7abb972e29",
-   "sha256": "02d6f2rqd5s5nbrg03n6lwbxdzyyb9m7ycckyj2qha8j4bpv6r0r"
+   "deps": [
+    "dash"
+   ],
+   "commit": "b8b1b6c5568f8778783454d5747912487c8e69b8",
+   "sha256": "022xpsngfn0pjsgmpb24pg428xzkpk97yhfqjc7ppncizr61n5cv"
   },
   "stable": {
    "version": [
     0,
-    9
+    13
    ],
    "deps": [
-    "cl-lib"
+    "dash"
    ],
-   "commit": "215e8ab6acc47f240b12bd11ab387da7f5de885d",
-   "sha256": "14sp47l7j7sv3bsrnwzqz6mzn3wwv4s75r5my6vjh39pn0qshfh1"
+   "commit": "27d7219b775f3061536fdca6eb52142d6a21781c",
+   "sha256": "0az845mxnkzwsz5l2gkr8cwfvgmqbf4fxjxds46zax6701m3hy9b"
   }
  },
  {
@@ -10664,8 +10684,8 @@
   "repo": "contrapunctus-1/chronometrist",
   "unstable": {
    "version": [
-    20200905,
-    1617
+    20201222,
+    1500
    ],
    "deps": [
     "anaphora",
@@ -10674,14 +10694,14 @@
     "seq",
     "ts"
    ],
-   "commit": "ad2a7fffed94c093e6d83a6938115f66e4e888f3",
-   "sha256": "0raa34888cyjqhr4562gbjdi4j4k5lpp0f4zwlxxrvfwn6yxwhm1"
+   "commit": "551a750cae4030d7f4ff92eebc26da6c4aae9af6",
+   "sha256": "1jhdr4b2y92982rbbhwmrd3h4bm17px0adglhsc1w4h02zdm54iy"
   },
   "stable": {
    "version": [
     0,
     5,
-    5
+    6
    ],
    "deps": [
     "anaphora",
@@ -10690,8 +10710,8 @@
     "seq",
     "ts"
    ],
-   "commit": "2331edbf00cf56f28905d5a91334af4b902cdb68",
-   "sha256": "1zccyfpgq68ixrcl8jq2r38165ngkqrb42y2hkyab6gxhvh4wkpl"
+   "commit": "6e310163b3b43844a45ee93cb37d093f66860ede",
+   "sha256": "0g54pxvid1hlynlnfx99sl027q2mr2f4axsvnf0vb3v48zm0n5cw"
   }
  },
  {
@@ -10782,8 +10802,8 @@
   "repo": "clojure-emacs/cider",
   "unstable": {
    "version": [
-    20201209,
-    1121
+    20201230,
+    1039
    ],
    "deps": [
     "clojure-mode",
@@ -10794,14 +10814,14 @@
     "sesman",
     "spinner"
    ],
-   "commit": "b197dbcf2b74a2f8e80d65bcd0318d6b302370a5",
-   "sha256": "0kfldq02i7jh10xy54za88xa3fspkb9nkf8vaagzj00292x4sl53"
+   "commit": "02518bc16bd0fbf56bcade491fbf5c36cedc5b8e",
+   "sha256": "0a82m5rnam34xkjh466ds84n6d09w9z8q162x61dvl2qnyn0ma3f"
   },
   "stable": {
    "version": [
+    1,
     0,
-    26,
-    1
+    0
    ],
    "deps": [
     "clojure-mode",
@@ -10812,8 +10832,8 @@
     "sesman",
     "spinner"
    ],
-   "commit": "a89b694cc3cec0294d84bf9dbe1163ad2373e8db",
-   "sha256": "0m77jbxl380dp1wyj12m82bb06r80js8yxl530ryp1mwvy74f00d"
+   "commit": "140b062e62165e536dcdb878a00f492a1d5b3518",
+   "sha256": "143kh9k34yk0g6kdlkma6g432kmb2r9r1lhyq4irsw6d3vaql7dj"
   }
  },
  {
@@ -10986,14 +11006,14 @@
   "repo": "jorgenschaefer/circe",
   "unstable": {
    "version": [
-    20201207,
-    1
+    20201225,
+    1707
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "107b74c9f4318eaa385819876cd8772ef650d1f4",
-   "sha256": "03whhp90wvbjc43qvbsraqi47dsi29mqbwrgxfhacjzqf73qffzx"
+   "commit": "0472cda711252b06fc07be184449b31933578148",
+   "sha256": "1ad1aqjmj1imh5zmnmdnwc06sn3rgd3xmksypyi2hnh07r79ynf4"
   },
   "stable": {
    "version": [
@@ -12042,8 +12062,8 @@
     "s",
     "seq"
    ],
-   "commit": "3bc3b359a88db47fc20978bd1e9a6cbe0326ec31",
-   "sha256": "1g5fzzvjlr5jais11qdpqbgdvfq2c9k211lphdhwi0m26wqfdp3g"
+   "commit": "2330f91e51e6cf8a46ce595be3deb0feda223f75",
+   "sha256": "0y5wbnf1pkzi7jvbvfhybwvbymg13fknpsyychb6f9mdkzcmik4j"
   },
   "stable": {
    "version": [
@@ -12067,20 +12087,20 @@
   "url": "https://gitlab.kitware.com/cmake/cmake.git",
   "unstable": {
    "version": [
-    20201119,
-    1544
+    20201217,
+    1410
    ],
-   "commit": "d5b12ddcbca4d0919056c7815a9335087e9f2638",
-   "sha256": "1hvqmdn3xf3x2gkr2zpsh0yn26zq5g1ch7m7cmhrki1dzkfm7jhd"
+   "commit": "95c59252c4116c185e898762d82b49d7a4f42445",
+   "sha256": "08c4q1nllcc8d5zjcdjg0ms2ia75rar1xxm8sd036pl74bns7ra8"
   },
   "stable": {
    "version": [
     3,
     19,
-    1
+    2
    ],
-   "commit": "64fb825438a2fecb9eab9933d5d1b926bf6f294b",
-   "sha256": "16vdm76bx9a9viha4v4sgszin2qrvkqr7j4n671r8xm7cdiyc8b7"
+   "commit": "0932b1c2b29f4ad1228fa71bf4f5c089474d9882",
+   "sha256": "0c6vncdqps7i1a3gxm94pp0wrgs8xvq77br178xna398f3ckf26p"
   }
  },
  {
@@ -12250,14 +12270,14 @@
   "repo": "xuchunyang/code-stats-emacs",
   "unstable": {
    "version": [
-    20200216,
-    2020
+    20201209,
+    2135
    ],
    "deps": [
     "request"
    ],
-   "commit": "0d5be395d4233ea533e6eddf50af725c51304205",
-   "sha256": "12b2skhp9x17ffh1jxpl0nw7cybq9a2iyqmp3fwmvrr51mdg6va1"
+   "commit": "9a467dfd6a3cef849468623e1c085cbf59dac154",
+   "sha256": "1ggmm2jnz4z247kgx87i6km5ya5jayr5qy2dmshfay5pnql12fz6"
   },
   "stable": {
    "version": [
@@ -12437,14 +12457,14 @@
   "repo": "ankurdave/color-identifiers-mode",
   "unstable": {
    "version": [
-    20201029,
-    2325
+    20201216,
+    2223
    ],
    "deps": [
     "dash"
    ],
-   "commit": "09684e62f0d28b22e60f3f6f50c5941549315134",
-   "sha256": "1kbb519h8ba0a428charybhwscggqza4j2wqghibkz2cgik99n2p"
+   "commit": "ca52e957254a07411c06716d2155968375943a12",
+   "sha256": "01g1x652gckzhihgiqx7jx58fd0ilv0yialfh3f8l1fsqw6cggqc"
   },
   "stable": {
    "version": [
@@ -12580,11 +12600,11 @@
   "repo": "purcell/color-theme-sanityinc-tomorrow",
   "unstable": {
    "version": [
-    20201013,
-    551
+    20201225,
+    2110
    ],
-   "commit": "65dcfc9329c2eb228c12438e3831e3aeeb449470",
-   "sha256": "1l4dwn6fddix655ka9rlaqd9zyx62sxxa8nm9zwzp8nh5zdd93j4"
+   "commit": "b70046e4bf23583af39ddd0534470358eab0ff9d",
+   "sha256": "15bn6y75mr7g7l36hxfmz0fmcdpysacp29ib04az4mn6bkylns4x"
   },
   "stable": {
    "version": [
@@ -12621,11 +12641,11 @@
   "url": "https://git.sr.ht/~lthms/colorless-themes.el",
   "unstable": {
    "version": [
-    20201009,
-    1533
+    20201225,
+    1334
    ],
-   "commit": "46d477ec5a367beb6c8e75e017ae2c3a31250136",
-   "sha256": "05c6ywzamnq1frmb8i07wjxrncl3fpkmns8dnc3v8si234gq3m72"
+   "commit": "92ae2775ac9ae2fd3d1172ffdf706e18db55963c",
+   "sha256": "06cp84bi3x33il119gfk8blikbqdmakvj7h64dr9crh0v11lg7ds"
   },
   "stable": {
    "version": [
@@ -13024,11 +13044,11 @@
   "repo": "company-mode/company-mode",
   "unstable": {
    "version": [
-    20201120,
-    1115
+    20201230,
+    2332
    ],
-   "commit": "97cfbc3967c195fb4ccb171735b9b1dea97e681a",
-   "sha256": "16rb3giggnnkpla29c7p5r8hnaiyqvjjjd9idv18pqahs7w4cy7y"
+   "commit": "123b604297b64c69aeec3018722c75e03d18c23a",
+   "sha256": "0s5afwzdy31ws7qcjxnijsnm8nsxvqs2pmaz2bxf5ph8cyaxzdvj"
   },
   "stable": {
    "version": [
@@ -13166,8 +13186,8 @@
     "axiom-environment",
     "company"
    ],
-   "commit": "9ef86ca16098050da4362f5aadaea64b0a093fc1",
-   "sha256": "0hyaa1nskm95scypdpbndmmdasq6cas85y6i2q1f8nq8a3qd5585"
+   "commit": "47d6dffc29286badb2b1d7143b219e5c1be15bdb",
+   "sha256": "1dppyda9jkwh6fj8m4kziq84w0b5yzxrhq87jhkv54jjra6yxbb4"
   }
  },
  {
@@ -13443,28 +13463,28 @@
   "repo": "dunn/company-emoji",
   "unstable": {
    "version": [
-    20201020,
-    554
+    20201212,
+    2325
    ],
    "deps": [
     "cl-lib",
     "company"
    ],
-   "commit": "514b33c29ff384188e90aceceabf305205837081",
-   "sha256": "0pa67yfcr8lrxdbvln8hs663gsxz38ggwpva7121ngascqgx42wp"
+   "commit": "4ba7dc60ba67f736e698a5fa0b754b866f36a646",
+   "sha256": "1rhf2hr345953mkn52i58aiq8j16ps2ckapd5f7jxmhkcpzxxfhk"
   },
   "stable": {
    "version": [
     2,
     6,
-    0
+    1
    ],
    "deps": [
     "cl-lib",
     "company"
    ],
-   "commit": "514b33c29ff384188e90aceceabf305205837081",
-   "sha256": "0pa67yfcr8lrxdbvln8hs663gsxz38ggwpva7121ngascqgx42wp"
+   "commit": "4ba7dc60ba67f736e698a5fa0b754b866f36a646",
+   "sha256": "1rhf2hr345953mkn52i58aiq8j16ps2ckapd5f7jxmhkcpzxxfhk"
   }
  },
  {
@@ -13952,6 +13972,40 @@
   }
  },
  {
+  "ename": "company-maxima",
+  "commit": "f4bac452d61b22312d1a4cd0bb29d2fdc6e1e1f6",
+  "sha256": "1sn6dw0w21v294mrxjzgb9dwfydz1rdghplkkvx4wdj1pvc78ffq",
+  "fetcher": "gitlab",
+  "repo": "sasanidas/maxima",
+  "unstable": {
+   "version": [
+    20201207,
+    2204
+   ],
+   "deps": [
+    "company",
+    "maxima",
+    "seq"
+   ],
+   "commit": "1600cfc059a80ed8fa0d381b88f29ba658811cc5",
+   "sha256": "030sg31xh46vrmsafvn04sdvyv4vzqf8rf5ghrlina1gav6kybfd"
+  },
+  "stable": {
+   "version": [
+    0,
+    7,
+    6
+   ],
+   "deps": [
+    "company",
+    "maxima",
+    "seq"
+   ],
+   "commit": "8d643a1776523ef1a6e0bff0bb0a390772fcc77d",
+   "sha256": "17m9x3yy0k63j59vx1sf25jcfb6b9yj0ggp2jiq1mih4b62rp97d"
+  }
+ },
+ {
   "ename": "company-nand2tetris",
   "commit": "90421372b3f60b59762279ac805c61a984606d11",
   "sha256": "1g2i33jjh7kbpzk835kbnqicf0w4cq5rqv934bqzz5kavj9cg886",
@@ -14257,15 +14311,15 @@
   "repo": "tumashu/company-posframe",
   "unstable": {
    "version": [
-    20201127,
-    239
+    20201214,
+    52
    ],
    "deps": [
     "company",
     "posframe"
    ],
-   "commit": "86428bf9ce50a14326f38942b9f1467dd5b483df",
-   "sha256": "05ays6xkqbxcfplvx7wfc2slflmwc3aw7vkixvabk0ilvisndvgm"
+   "commit": "5ea0b565972ca8d80f29a40068c65bab97384748",
+   "sha256": "18zlwcp1vcz82573nmkix1rixv54p9sjj0fhddmf3yc8hsy2mp4g"
   },
   "stable": {
    "version": [
@@ -14296,8 +14350,8 @@
     "company",
     "prescient"
    ],
-   "commit": "5d139e5b1fe03ccaddff8c250ab8e9d795071b95",
-   "sha256": "11hqy8chh29lrzk04dp3rwkvf4bj0xvg9hli3w1zx968x98lfvj0"
+   "commit": "2af94ce194f9b8d7087f7b49ecd986083f7eb753",
+   "sha256": "19wwnl72gh4ar2q6gcp6k6n4gdvamdjj6lgc0n4mk7j1qrylp3hf"
   },
   "stable": {
    "version": [
@@ -14485,20 +14539,20 @@
     "company",
     "rtags"
    ],
-   "commit": "63a7d9b733def9fe76568f81321a65a450829575",
-   "sha256": "1nnjhfz7xm1ax38xkz0jvgzhfczlc4r9xlpzc24sisabkvlkivyw"
+   "commit": "39339388256df662d0084b4a094d03e52748f9e8",
+   "sha256": "0wp4mygsxzibra2p3m5rn9m0yd3fscd795k5xa0wxi5pwddv7dlg"
   },
   "stable": {
    "version": [
-    2,
-    38
+    3,
+    23
    ],
    "deps": [
     "company",
     "rtags"
    ],
-   "commit": "9687ccdb9e539981e7934e768ea5c84464a61139",
-   "sha256": "1r6l7dgr2ch586zrdi5l8fhdj4qdva8ldz7cjvi2byc2pd2xs8rx"
+   "commit": "7169ed577d676690a3c6f0025b54e8477d80eacf",
+   "sha256": "1i94dizg3wvkvq8c2pf5bzkx8zwzcfi4p3l73c779y145bygssnq"
   }
  },
  {
@@ -14979,14 +15033,14 @@
   "repo": "daviderestivo/comware-router-mode",
   "unstable": {
    "version": [
-    20201112,
-    1629
+    20201229,
+    1706
    ],
    "deps": [
     "dash"
    ],
-   "commit": "471cde874999cc50b03d7c906802369ea5a5ffa4",
-   "sha256": "14cjnc09ms4cfp9nyp904gcp6rd5aflgp9vhb42gh4lzfzm3ppzj"
+   "commit": "f0f884f0fe9ab2c3420e62d27eadc59ac2209a4a",
+   "sha256": "1zcvpj7bxry2v8whijgpqw773l3l64nrgaxdwyd053ahl0nv7mpf"
   }
  },
  {
@@ -15203,17 +15257,55 @@
  },
  {
   "ename": "consult",
-  "commit": "488a72b896992984b048cc6ce4796ade11849bb0",
-  "sha256": "02z6h0x346230ayncsb8phks9mmjdq5mj9ja68380hl6gkic3407",
+  "commit": "1a1fbbfebeb88dab2d032e994ec21c976f059d22",
+  "sha256": "1jkqrc9wzk2dhajnd84avppynqcmly9vc35xhaqi4skhx5il24wb",
   "fetcher": "github",
   "repo": "minad/consult",
   "unstable": {
    "version": [
-    20201209,
-    824
+    20201231,
+    1259
+   ],
+   "commit": "815360376ba93e731ff715520a79fdbf2424a0f1",
+   "sha256": "0djnhrf2radvxfbdx3wimrsrhdkqqrhnyr0jnfasw1jyr832s64x"
+  }
+ },
+ {
+  "ename": "consult-flycheck",
+  "commit": "1a1fbbfebeb88dab2d032e994ec21c976f059d22",
+  "sha256": "0gf7nb2zylmm53xszd53qp7byvlppd2j9lh61p8syanjssqy4j67",
+  "fetcher": "github",
+  "repo": "minad/consult",
+  "unstable": {
+   "version": [
+    20201226,
+    12
    ],
-   "commit": "dadc87fe73a93d2ecc34a0f82636729e8fe2dcd7",
-   "sha256": "07ibxpbsv7mfxg8b04fw7517i54yky4y7h0wyg7f6lfmhb0zadq3"
+   "deps": [
+    "consult",
+    "flycheck"
+   ],
+   "commit": "815360376ba93e731ff715520a79fdbf2424a0f1",
+   "sha256": "0djnhrf2radvxfbdx3wimrsrhdkqqrhnyr0jnfasw1jyr832s64x"
+  }
+ },
+ {
+  "ename": "consult-selectrum",
+  "commit": "1a1fbbfebeb88dab2d032e994ec21c976f059d22",
+  "sha256": "08zhnzj70c3j4jkxa75a4wsaz1g35sc0wl7vkhjnhlpqhwidb2p5",
+  "fetcher": "github",
+  "repo": "minad/consult",
+  "unstable": {
+   "version": [
+    20201230,
+    942
+   ],
+   "deps": [
+    "consult",
+    "selectrum"
+   ],
+   "commit": "815360376ba93e731ff715520a79fdbf2424a0f1",
+   "sha256": "0djnhrf2radvxfbdx3wimrsrhdkqqrhnyr0jnfasw1jyr832s64x"
   }
  },
  {
@@ -15529,14 +15621,14 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20201208,
-    1022
+    20201227,
+    1327
    ],
    "deps": [
     "swiper"
    ],
-   "commit": "ae9b121b834a68d11f79ca27b1e5c8790149ba2f",
-   "sha256": "160qs77b4sama17h8lhq60my44qh4c9aj1qj9jk02n64jfn44fm6"
+   "commit": "d2891aab7b816aebf21ebd01ce33933a6ac6244f",
+   "sha256": "12bm5w073mgpj7kvk6596fnw8809nl6vkv288l7vvzx7iimaqzpl"
   },
   "stable": {
    "version": [
@@ -15676,26 +15768,26 @@
   "repo": "redguardtoo/counsel-etags",
   "unstable": {
    "version": [
-    20201117,
-    113
+    20201228,
+    741
    ],
    "deps": [
     "counsel"
    ],
-   "commit": "89ed187095be956dbf97e813a7bbfdb87ee125ba",
-   "sha256": "02dhj8qry2j5v47cfr3f6yv5kzxwf1m1w9055ar4x74akgm7901w"
+   "commit": "c10951946d6dd935e4ab5d18db5da228e1c22806",
+   "sha256": "09n0mpp0pchb85f7qkizd686rpkfagmr7sd0sxsh81xhzdavam47"
   },
   "stable": {
    "version": [
     1,
     9,
-    15
+    16
    ],
    "deps": [
     "counsel"
    ],
-   "commit": "d391b550a9d874409560e71d74cd13c14aacc6ab",
-   "sha256": "1kkck3cdq404czih8rhinammillhmy2iz10469z7iyzc35wrljyk"
+   "commit": "894cd7e25a2f96e29b70897ab799e7dd9e4f85fd",
+   "sha256": "01si554r0s6m7ypx1m2n0z6j6q6yihifz76dha6q6v56ixdlv626"
   }
  },
  {
@@ -15743,15 +15835,15 @@
   "repo": "FelipeLema/emacs-counsel-gtags",
   "unstable": {
    "version": [
-    20201130,
-    1401
+    20201211,
+    1755
    ],
    "deps": [
     "counsel",
     "seq"
    ],
-   "commit": "1c0a0102931b73e0073307ba10ebfc47b2b145af",
-   "sha256": "137i0mwi12hfrdlb4h0vh9vwjw5yyq2p69ib9pfs4y8frhv350ad"
+   "commit": "e4a662c38cd217bae9c0bd80f2c9b53cc2cffcb7",
+   "sha256": "0gb8gbphckyk834mxl704fawvykigmk0cl8klmyfap0nb55h846b"
   },
   "stable": {
    "version": [
@@ -15773,15 +15865,15 @@
   "repo": "200ok-ch/counsel-jq",
   "unstable": {
    "version": [
-    20201203,
-    901
+    20201230,
+    1703
    ],
    "deps": [
     "ivy",
     "swiper"
    ],
-   "commit": "aaf33fc2447096cd0d03b77395fe2a95c9fe1481",
-   "sha256": "10rz0qm8a4bl0m86kx19zq8lri047p4sxqyny08bgm9pbam0wvwn"
+   "commit": "153d70b576df1d572c56d84039cb40749310cfe7",
+   "sha256": "1r8bbdbvxczbcw8359v9s451fnpcsna0hqg43k26cbwba137vxl7"
   },
   "stable": {
    "version": [
@@ -16052,16 +16144,16 @@
   "repo": "AdamNiederer/cov",
   "unstable": {
    "version": [
-    20201025,
-    425
+    20201214,
+    550
    ],
    "deps": [
     "elquery",
     "f",
     "s"
    ],
-   "commit": "d6cd3f6a857622f73779ffb2250902fc0c00f7f8",
-   "sha256": "1kazdbwdidwqi0zj3dxh0h53pw22pvvn8nhkkk6xkjiigjz85n89"
+   "commit": "5efa13e7d3e06f206b29879d8f66afd6b0d26f52",
+   "sha256": "01d7kgsdv09lllmhi2dvywb61n2aj3j665xcxqjidwfl03vsw16g"
   }
  },
  {
@@ -16511,11 +16603,11 @@
   "repo": "crystal-lang-tools/emacs-crystal-mode",
   "unstable": {
    "version": [
-    20191121,
-    1447
+    20201228,
+    1539
    ],
-   "commit": "f9e4db16ff9fdc6a296363aa35d19cfb4926e472",
-   "sha256": "1x0lmb48bza2w52s15288hpbipafs87lj5lv0ldd1q4r9yv0i102"
+   "commit": "15998140b0a4172cd4b4d14d0377fba96a8917fc",
+   "sha256": "0bdzffwp9hliy9bkvqn1p432yy161g7n7bl814mmi6zj4sfn1sy1"
   },
   "stable": {
    "version": [
@@ -16562,26 +16654,26 @@
  },
  {
   "ename": "csharp-mode",
-  "commit": "736716bbcfd9c9fb1d10ce290cb4f66fe1c68f44",
-  "sha256": "17j84qrprq492dsn103dji8mvh29mbdlqlpsszbgfdgnpvfr1rv0",
+  "commit": "704aa5b8132a72770b5a3cf4f81d1dc154709fdf",
+  "sha256": "1s8bv738k3rz0lkpnlcg209qpqd28vx1np4zgas01mp9fhgyivkn",
   "fetcher": "github",
-  "repo": "josteink/csharp-mode",
+  "repo": "emacs-csharp/csharp-mode",
   "unstable": {
    "version": [
-    20201209,
-    1122
+    20201231,
+    1103
    ],
-   "commit": "a6caa85b914ade93310da17f669a57c6f7ff94bb",
-   "sha256": "0k6y0ngpk0993p8y65a7yp377izzf1jjs6bpxmw0mc45sjwiqmwa"
+   "commit": "74644d4534beae372f7f05b2464a201383588f59",
+   "sha256": "0k1zm83w6d6dw2w68d8frpcadacsrar09vv996xrax68i16ggcp5"
   },
   "stable": {
    "version": [
     0,
-    10,
+    11,
     0
    ],
-   "commit": "80238e862dec17e3553e04e6f101a0cc42019f84",
-   "sha256": "0vwkbla2gkfa9dzxfvrvr7hd2z16769iwbycl7k6l701dnwli1fw"
+   "commit": "84664285a6d215998da763dc5d286d4f941df81e",
+   "sha256": "0aq6ln92jr3hcrd1592n4s5cb079fly7qaj2hm510p9zckyfx230"
   }
  },
  {
@@ -17180,8 +17272,8 @@
     20190111,
     2150
    ],
-   "commit": "cedbd5840fde2c63549b64c35cd05ea5fb9fc524",
-   "sha256": "1l5j4phhmlzr14zczk9h63m8rw3z0avlvgs6pbhch5fvhs8fv4zi"
+   "commit": "e6f92c1753fd8b07c5beb040fb8be1c4a8b0591c",
+   "sha256": "1cbq2sigqvqrpllli2qlasm5j96ssx96smjr3pj51i6ndi81gp04"
   },
   "stable": {
    "version": [
@@ -17401,8 +17493,8 @@
     "posframe",
     "s"
    ],
-   "commit": "e582ff90c104703ed65c1f3174d4c4690e9cf1fd",
-   "sha256": "05rcpxg982amzk8abrrhzig2ax6rwm2bj1xvy29r8imvpayfm14f"
+   "commit": "041db8eb7f0ceb9477ffff1730b5940814001158",
+   "sha256": "0cjr2dhqh8k76il9iiajszr7vra1phhksf0zw946chg7sa12chh1"
   },
   "stable": {
    "version": [
@@ -17559,14 +17651,14 @@
   "repo": "emacsfodder/emacs-theme-darktooth",
   "unstable": {
    "version": [
-    20190412,
-    142
+    20201215,
+    822
    ],
    "deps": [
     "autothemer"
    ],
-   "commit": "5cc7fbfb08d2f1a33b85eac92b6450407b915119",
-   "sha256": "164y8hrdz46gg1b6sfi7gdv7pj54hrin0lcmhxp6gc9x5dg3l354"
+   "commit": "ec03b30ee7f43f89ca4c382bb3fe4ee560c028a8",
+   "sha256": "00ijwqchvrwln2wl3nfcq5v3i2p232z4qsy67x1v51q20876mc9j"
   },
   "stable": {
    "version": [
@@ -17655,11 +17747,11 @@
   "repo": "magnars/dash.el",
   "unstable": {
    "version": [
-    20200803,
-    1520
+    20201230,
+    348
    ],
-   "commit": "0f238a9a466879ee96e5db0482019453718f342d",
-   "sha256": "0nnqkwcy66wjpynpm47kyzgv9wsb5vdfragy672s8wfagyf4331v"
+   "commit": "e47ecb822f6bb10c196ca00030b0e6f5e176495e",
+   "sha256": "0p6qj7ambff7r7s8kab2rrl0mlgjz46k1f98x5msn6ajl3zdv9n6"
   },
   "stable": {
    "version": [
@@ -17728,14 +17820,14 @@
   "repo": "magnars/dash.el",
   "unstable": {
    "version": [
-    20200617,
-    702
+    20201215,
+    40
    ],
    "deps": [
     "dash"
    ],
-   "commit": "0f238a9a466879ee96e5db0482019453718f342d",
-   "sha256": "0nnqkwcy66wjpynpm47kyzgv9wsb5vdfragy672s8wfagyf4331v"
+   "commit": "e47ecb822f6bb10c196ca00030b0e6f5e176495e",
+   "sha256": "0p6qj7ambff7r7s8kab2rrl0mlgjz46k1f98x5msn6ajl3zdv9n6"
   },
   "stable": {
    "version": [
@@ -17758,14 +17850,14 @@
   "repo": "emacs-dashboard/emacs-dashboard",
   "unstable": {
    "version": [
-    20201209,
-    1003
+    20201229,
+    426
    ],
    "deps": [
     "page-break-lines"
    ],
-   "commit": "197d9285c473afa524c45c737f4f61ea1caf8f0d",
-   "sha256": "18sqfs845xp16yqan4pbks4iy3z26988s7idby58333ky506lpl2"
+   "commit": "c4283b7be41d5c047dfea4e3e8ca4d03c8f63c12",
+   "sha256": "0w44lf194smcm8ppgl2nsji246sg8n12mm0jaiqrjnk7rcirivbn"
   },
   "stable": {
    "version": [
@@ -18323,6 +18415,21 @@
   }
  },
  {
+  "ename": "default-font-presets",
+  "commit": "3b8b731674a5c5d4f83d998258a5d4c9aabb2048",
+  "sha256": "0hracb7krwgpnispnjgi86zaywq08mc3c8cyaxl82lc8jc9b05j2",
+  "fetcher": "gitlab",
+  "repo": "ideasman42/emacs-default-font-presets",
+  "unstable": {
+   "version": [
+    20201227,
+    2319
+   ],
+   "commit": "dd143e7e6cf5384d203a76e50fe677a77f1cd615",
+   "sha256": "1zpf35x1w4ldijqx3a2qlykhy9xgw3mqzxhfv0r3qn37k7lg0m58"
+  }
+ },
+ {
   "ename": "default-text-scale",
   "commit": "db5e0b70e2d9c80aa41ae2c397f822789c2d3cc2",
   "sha256": "18r90ic38fnlsbg4gi3r962vban398x2bf3rqhrc6z4jk4aiv3mi",
@@ -18665,11 +18772,11 @@
   "repo": "DamienCassou/desktop-environment",
   "unstable": {
    "version": [
-    20201117,
-    1653
+    20201229,
+    1107
    ],
-   "commit": "d8560e4fe98d75a47ab652ef44ced8660c956fb8",
-   "sha256": "1xsqhvprjd1097mdig14z83psi3jzfm6k8pdw43g9pqih404lg40"
+   "commit": "9ece03e3e687ff97d79eb2a9f6cc506a932f89ca",
+   "sha256": "1hsjzwwlhqxqgp5ii8a23wq2fc7a8dzfnqhjyakn39wp7dm925sz"
   },
   "stable": {
    "version": [
@@ -18764,8 +18871,8 @@
    "deps": [
     "reformatter"
    ],
-   "commit": "97524f934556d561c6c9268ed719f027ed9f55e9",
-   "sha256": "1c8dzk19f3n5v1r43iaynd1cs2valypz0ldh8l22cdbg82smva1b"
+   "commit": "ad259c8a2292fb398dff1ce7d25c686edb02945d",
+   "sha256": "1vp8cjkkiih7cz5d8kcpc2ysq3iz4wr5wi2lkkkhp94k04jl5h1r"
   }
  },
  {
@@ -18945,26 +19052,26 @@
   "repo": "dgutov/diff-hl",
   "unstable": {
    "version": [
-    20201201,
-    1956
+    20201220,
+    1006
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "c31af59cce04fdcf9d05da54a43d236a4869c251",
-   "sha256": "191vqwnalbynpj0r1v5v7qd35dih8k99kvm2gvpgpv5kg28gq3hm"
+   "commit": "a0028d9d3ef28513b0b2cec145199bf088169563",
+   "sha256": "0g8gia8wbxyx37302is50i4jp863k23fpb75j4ndrv4k0pj6cr20"
   },
   "stable": {
    "version": [
     1,
     8,
-    7
+    8
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "374b1d4b34876219218da7a539e7301259b56958",
-   "sha256": "0i7x6qgr3nydcwhw72sbc8z9x9dfhgkf0dqj9nakvx36vn1bblbq"
+   "commit": "b8b4f43af73f109bf1af0453a076c274164488cf",
+   "sha256": "075klzf66z1rvhpxv4j694pdkmi7f4fpw6c8q4ncz0h4y5wdbl8w"
   }
  },
  {
@@ -19746,26 +19853,25 @@
   "repo": "xuhdev/dired-quick-sort",
   "unstable": {
    "version": [
-    20201128,
-    116
+    20201221,
+    403
    ],
    "deps": [
     "hydra"
    ],
-   "commit": "9741bae65b5ca077a81589dcc6b3ca3c12f0f76f",
-   "sha256": "14chkh5zqrjs574jml8sq3d4xhq0fclbzifcnpph080vxspxr2xn"
+   "commit": "69b06f306a5fc2b38e707bae3ff1e35db2b39b6b",
+   "sha256": "01zdha3p7wsf98yayvwgpd4arcs7yhz62yk1nyq9n13hvmqg7dvk"
   },
   "stable": {
    "version": [
     0,
-    1,
-    1
+    2
    ],
    "deps": [
     "hydra"
    ],
-   "commit": "868311eec176d9cc254730b305c1cab9ede82547",
-   "sha256": "0jngm5zrmbm2w45sq1kxf0bimkmrwxc2biyb5bx7422mqkcsg2fh"
+   "commit": "79e422be55c72bfe36d2ec8a838f19d1cc8d101a",
+   "sha256": "14hb3d76y4n8qvfl74v9hzgl6774bqdcmsa0npv3gs144fbx9prk"
   }
  },
  {
@@ -19867,27 +19973,27 @@
   "repo": "stsquad/dired-rsync",
   "unstable": {
    "version": [
-    20201126,
-    1319
+    20201224,
+    2214
    ],
    "deps": [
     "dash",
     "s"
    ],
-   "commit": "fe5988154c843c70d080ae8a822f27ed83983d01",
-   "sha256": "1i2qsdbhmsrdx49lqn0fk69sk85ysdpa8c90gfz78vby4fjlb240"
+   "commit": "947a008387a939f466ca122bda2ea98bb17710e3",
+   "sha256": "19za6i96xrmczdh928n5ixd7j7pvy175sz1msaiwvdjwysjr8k51"
   },
   "stable": {
    "version": [
     0,
-    5
+    6
    ],
    "deps": [
     "dash",
     "s"
    ],
-   "commit": "707f527a5448f8fd881321f1d60e49821d3efe60",
-   "sha256": "1nq3d8py2zsji835wilg514z5j180k371pwqsqrmnnhq1cj4fkia"
+   "commit": "947a008387a939f466ca122bda2ea98bb17710e3",
+   "sha256": "19za6i96xrmczdh928n5ixd7j7pvy175sz1msaiwvdjwysjr8k51"
   }
  },
  {
@@ -20011,6 +20117,21 @@
   }
  },
  {
+  "ename": "diredc",
+  "commit": "abaea37c792e6593665dc536e8803e0f591f7359",
+  "sha256": "09wfizmqp2njb2xi532qixs5syccmadpc5bbm55i7xfqrr52d7zy",
+  "fetcher": "github",
+  "repo": "Boruch-Baum/emacs-diredc",
+  "unstable": {
+   "version": [
+    20201229,
+    2025
+   ],
+   "commit": "a240c7dee42dad03e0012bb7b6280194e31311ea",
+   "sha256": "19p6w6c6zrfmkbm5g2yisac8f6d8sjlba88syx5crx2cy02m8y51"
+  }
+ },
+ {
   "ename": "diredfl",
   "commit": "3da86e18d423198766455929da1dcb3a9a3be381",
   "sha256": "0cybq15yq07x2mnrnwapy020d598yymcy8y9wwf1m7f59p3h9hvn",
@@ -20400,8 +20521,8 @@
     20191130,
     52
    ],
-   "commit": "93aac853215d0902e7a30a6dd2b99d796da77df4",
-   "sha256": "186294rkmhwbh8x054w1hnqykp1iydxd490irl542j5alinv43qk"
+   "commit": "6abf276b8d66df4996c7e98e7a40cbad8747beb7",
+   "sha256": "17163bncxf11295bxzbmji09qy0klxzb0w8vxaazij6sxlk90mnm"
   }
  },
  {
@@ -21010,8 +21131,8 @@
   "repo": "r0man/docopt.el",
   "unstable": {
    "version": [
-    20201121,
-    1523
+    20201211,
+    1008
    ],
    "deps": [
     "dash",
@@ -21020,14 +21141,14 @@
     "s",
     "transient"
    ],
-   "commit": "8a0e1777777d6ef7d144f1150b06ede9d9950220",
-   "sha256": "1m77nix3kwghwpbl5ins677f6qaxaczzg2k22ana3nsib8lvdkra"
+   "commit": "6e1105347decbf9b4b848d952858455f9b145c56",
+   "sha256": "0vkmgfgw8qica21hcqila62ivqxshkay2r2dyy4dxxj3xypk3083"
   },
   "stable": {
    "version": [
     0,
     1,
-    0
+    1
    ],
    "deps": [
     "dash",
@@ -21036,8 +21157,8 @@
     "s",
     "transient"
    ],
-   "commit": "9546e43acc2c3193a58820a89814f1c580f0cb27",
-   "sha256": "0s4q1zk4aqz76392c030c4bs28nbngw1rw3mygrk3cqaqykg7mq4"
+   "commit": "6e1105347decbf9b4b848d952858455f9b145c56",
+   "sha256": "0vkmgfgw8qica21hcqila62ivqxshkay2r2dyy4dxxj3xypk3083"
   }
  },
  {
@@ -21048,11 +21169,11 @@
   "repo": "progfolio/doct",
   "unstable": {
    "version": [
-    20200917,
-    1712
+    20201229,
+    2136
    ],
-   "commit": "dabb30ebea866ef225b81561c8265d740b1e81c3",
-   "sha256": "0pbalf1a9jrfwb6h1zw3bxz16qn1md10w030hbcbm0dblafchz0y"
+   "commit": "36075595cf5cf6460f215735b1aa562d6a07a496",
+   "sha256": "1c8676b81dx8zhmbv3ymdyi21rx0x60a2v104i6p9l7c2yilq9c2"
   }
  },
  {
@@ -21167,16 +21288,16 @@
   "repo": "seagle0128/doom-modeline",
   "unstable": {
    "version": [
-    20201128,
-    1659
+    20201212,
+    1823
    ],
    "deps": [
     "all-the-icons",
     "dash",
     "shrink-path"
    ],
-   "commit": "fb34eb5eb60f41ce1bc23c2bad6ac20de5669f22",
-   "sha256": "0swyhkzlz1znwddl0jzgxs7xyxz9shji5bnh91p5d5rq74j35f0k"
+   "commit": "af5f61888e7eb0aa521d2d29b42221302b717915",
+   "sha256": "1d1ad9c321ni6hsvcrc6rhd1vbxd0dhfgvz52cna91alg9nhxwmm"
   },
   "stable": {
    "version": [
@@ -21201,14 +21322,14 @@
   "repo": "hlissner/emacs-doom-themes",
   "unstable": {
    "version": [
-    20201121,
-    2040
+    20201220,
+    836
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "74ebd778571a2ba2a490d45a3f4161ea7251e050",
-   "sha256": "0wj7ysyyv2ycjiibyd8gda24g2zj1p51sh4ani9r13bs0idnq910"
+   "commit": "3761dfce75144e49789b6576e187acd82e2731ee",
+   "sha256": "0a0lz9kkaaxj2r8xkcgyczz9pxq5hb4kd8mivqxmcj9572xs6v1r"
   },
   "stable": {
    "version": [
@@ -21835,8 +21956,8 @@
     20191016,
     1241
    ],
-   "commit": "08d27d547f09d86cf5d7230f8a5cbe027708f979",
-   "sha256": "0h43hcx447vp811jxdgan0b3cz21pzc1azhd47srmyca5jsfpklq"
+   "commit": "133a6fedc217d9b66329cc8fce45ab0edddef538",
+   "sha256": "0ixmj378dvi2dh2vy6c47v0zqjkfyr7n5gzcyaplrxsydfwzr2j2"
   },
   "stable": {
    "version": [
@@ -21928,11 +22049,11 @@
   "repo": "dylan-lang/dylan-mode",
   "unstable": {
    "version": [
-    20200607,
-    1911
+    20201212,
+    2106
    ],
-   "commit": "bdccb252dffa99a3a55dce446cc4a7ff4a8dc089",
-   "sha256": "09dgjwdsni936chj2b8r607bqa2vcav66mb49j5vi2lxiw60sg8m"
+   "commit": "6277d31e6ec896ceaa9533ed156cece26359ba17",
+   "sha256": "12wkm04smmd3hgx6k3waa0wma0p8r23nh1ksm484znd7gij2bcrl"
   }
  },
  {
@@ -22507,26 +22628,25 @@
   "repo": "joostkremers/ebib",
   "unstable": {
    "version": [
-    20201203,
-    927
+    20201223,
+    2217
    ],
    "deps": [
     "parsebib"
    ],
-   "commit": "1274cba384a798faab6f6e1f20d349bbf3d48f94",
-   "sha256": "18ba50j42l4w33i3mbdy4d1izn724pa00zbyrcqd9hrhdma7hnhw"
+   "commit": "f4a36bd7629dd67ec5fdfdf4ea4d087d8e8c986d",
+   "sha256": "0qsl4qyscd29jkbnkp2acy3ww7lrmhfb60nbpcf03hq8mi3n51rp"
   },
   "stable": {
    "version": [
     2,
-    27,
-    2
+    29
    ],
    "deps": [
     "parsebib"
    ],
-   "commit": "f6411b41bd612a3747816c40c933c28402dd0b03",
-   "sha256": "194pzhi8kylawsnc0p02nds9vk7ghw88s1dvd355b7m2vp92cnlf"
+   "commit": "dd18665862413fc1e1aea0becb318a9e6d281d10",
+   "sha256": "1d0xnhdcsz2ysq145k2l0f2r4vb0pkai1v6wl6sfba7xi5fc323i"
   }
  },
  {
@@ -22943,8 +23063,8 @@
     20181016,
     1125
    ],
-   "commit": "5f6352f98f9795ea0423cb46e9b01dc54e523ab1",
-   "sha256": "0khf51sbjkqij36l00lby004ca9nb67xvksjnbafzp2bvwcs356j"
+   "commit": "638c0d92ce7030e799c46aa712bbb3034c342e9c",
+   "sha256": "1qraxzw37jmzssyz2kcnnhh0l90d3fgw0rimx783ppn1h06844z4"
   },
   "stable": {
    "version": [
@@ -22987,8 +23107,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "da844718bfe1ca51919c63fdffedaba5d0cc1bba",
-   "sha256": "05ydgbc6dmrs3qfahcg8lmrfm74f5ij9yxn9nm1c3r5zxf759ajy"
+   "commit": "d73333c224de783e42acd225a20330a667fe5191",
+   "sha256": "1w6ghpkhdy45aqfw01mzh90s437fx29iw3c9m4p7ish65rmxkqgk"
   },
   "stable": {
    "version": [
@@ -23339,8 +23459,8 @@
   "repo": "joaotavora/eglot",
   "unstable": {
    "version": [
-    20201103,
-    1026
+    20201222,
+    1735
    ],
    "deps": [
     "eldoc",
@@ -23349,20 +23469,23 @@
     "project",
     "xref"
    ],
-   "commit": "21726416e6e580b20dfa90833c6dab2a8a15ea48",
-   "sha256": "1al1a7np6127xw4ksqcwpm20v635pb83vfx8mr06wyzdbgls0plb"
+   "commit": "4c85df2b04e467b8ed0eca68bd202fd0e7b671f4",
+   "sha256": "1ibdxkhqjyzf3dyn0y56xjnp0aialfcbzjnmnjnwzik0m0qgw53p"
   },
   "stable": {
    "version": [
     1,
-    6
+    7
    ],
    "deps": [
+    "eldoc",
     "flymake",
-    "jsonrpc"
+    "jsonrpc",
+    "project",
+    "xref"
    ],
-   "commit": "e02479a8c20cd79c3dfeb553deaaecd7d6e97e51",
-   "sha256": "13r1ysdhnxkc025wypwi6w507v18hm5qf0x29qrycql46f8klrjb"
+   "commit": "4edd4782f1c16c0516533b52e16b02b772812d16",
+   "sha256": "17aamcda6h92rrg23vjllwr9qirb4fyxz9x7wcddzi1cawkhsh8k"
   }
  },
  {
@@ -23466,8 +23589,8 @@
   "repo": "millejoh/emacs-ipython-notebook",
   "unstable": {
    "version": [
-    20201128,
-    2101
+    20201231,
+    101
    ],
    "deps": [
     "anaphora",
@@ -23478,8 +23601,8 @@
     "websocket",
     "with-editor"
    ],
-   "commit": "a019ee3994585e4ed4700d2591d693fda3232616",
-   "sha256": "0lks1pzp1rsb9xrf7fpfb6svzhrqzfmcahzij7psi02kxkq8zjyd"
+   "commit": "5525b345901f72652bc49e1acb77380ea05ea696",
+   "sha256": "13hl52xx2x2d1srjgs87x3y0z4jyjjskyqybx64hcggz2flsrali"
   },
   "stable": {
    "version": [
@@ -23645,8 +23768,8 @@
     20200912,
     1653
    ],
-   "commit": "6138ce5b0a9df779e33ef42eadc4c15a5cf65f39",
-   "sha256": "19qfpv0f0xhj04f572a20a0yd7qqhrivxjx9mfp15g43pgdp9ajz"
+   "commit": "215ff5e56cedcc18866aba6e451b61c06a050e74",
+   "sha256": "0qnyzvvpvzy3cvnq07yfi1v13i91qwa6xfb4p9j9yr2r3gsgdc1g"
   },
   "stable": {
    "version": [
@@ -23859,6 +23982,9 @@
     20140111,
     2201
    ],
+   "deps": [
+    "cl-lib"
+   ],
    "commit": "e7c333d4fc31a90f4dca951efe21129164b42605",
    "sha256": "00wp2swrmalcifx9fsvhz9pgbf6ixvn8dpz1lq6k6pj9h24pq7wh"
   },
@@ -23868,6 +23994,9 @@
     3,
     1
    ],
+   "deps": [
+    "cl-lib"
+   ],
    "commit": "e96541c1f32e0a3aca4ad0a0eb382bd898250163",
    "sha256": "1i6j44ssxm1xdg0mf91nh1lnprwsaxsx8vsrf720nan7mfr283h5"
   }
@@ -24019,11 +24148,11 @@
   "repo": "doublep/eldev",
   "unstable": {
    "version": [
-    20201125,
-    1919
+    20201223,
+    2049
    ],
-   "commit": "aa4360bcd72ca64913b2bad0056b0521d7e125ab",
-   "sha256": "1mmplyqi6krjgrrlh905pxvjz32d2vdkd3lkz00j82bjgxfxis7f"
+   "commit": "9ca9abb3edca233ab52ada40531bec4ce3a8e642",
+   "sha256": "1nz2y9nqyxlb7bsg9chgdjkqmsfklh39shlvqhwl15im144ww9f7"
   },
   "stable": {
    "version": [
@@ -24175,8 +24304,8 @@
    "deps": [
     "dash"
    ],
-   "commit": "677424d2c6b05e0a3b03eb2e5e4bacef141a0a77",
-   "sha256": "0wf452gssmpdmqrpi7zf63vkis48yqv0ha5ic5mr7vwyfpx3qmgb"
+   "commit": "9856ff8e1351086d0d738c1db300af63d6c085ba",
+   "sha256": "0wfgz1ry1gqwk941fs4i3z8gq6s53v1fr2lwhsi06hvgs8nxaqgm"
   },
   "stable": {
    "version": [
@@ -24208,6 +24337,21 @@
   }
  },
  {
+  "ename": "elegant-agenda-mode",
+  "commit": "74218fda67e2c9c082cc9e28a1ddea8a80cf729f",
+  "sha256": "0058brrv5kk2gqnj1ii0ahqf6jmjx6zv21mlmzszazqgxlgy3nfg",
+  "fetcher": "github",
+  "repo": "justinbarclay/elegant-agenda-mode",
+  "unstable": {
+   "version": [
+    20201118,
+    558
+   ],
+   "commit": "c72f42e0f551c3dd81e68262f07a96c0ec90a589",
+   "sha256": "0f8qk3vd41ffbkfqw5nks3bld0qpjrlnk9sb46wcbsyfnrs2v082"
+  }
+ },
+ {
   "ename": "elein",
   "commit": "855ea20024b606314f8590129259747cac0bcc97",
   "sha256": "01y5yrmm3biyrfgnl3qjfpn1xvjk2nabwjr8cls53ds697qpz5x2",
@@ -24254,11 +24398,11 @@
   "repo": "skeeto/elfeed",
   "unstable": {
    "version": [
-    20201205,
-    134
+    20201220,
+    1359
    ],
-   "commit": "cc9d3b2196fb1f43e081aac0759678e8c5ae1c3e",
-   "sha256": "04yp98jpm98c18pmrb07cwvg5xyhskszfwrypxw95m6wmhnij2x5"
+   "commit": "de4b64b3f5d9fd41d9dc72023632ae535dc912e2",
+   "sha256": "04x3589jc39j3q2la82cidw3zpph10p5sj57m1kfz3ajyvh7rlm0"
   },
   "stable": {
    "version": [
@@ -24271,6 +24415,24 @@
   }
  },
  {
+  "ename": "elfeed-dashboard",
+  "commit": "339127464845e86419c6a88004fc16b60d675f57",
+  "sha256": "1ykg8gcsl7gf1w2xvd1wm088fw1l1mbsamx7drrvkdnpwxx6xiga",
+  "fetcher": "github",
+  "repo": "Manoj321/elfeed-dashboard",
+  "unstable": {
+   "version": [
+    20201218,
+    347
+   ],
+   "deps": [
+    "elfeed"
+   ],
+   "commit": "9e8e212da9ea471bdc58bc0a1f5932833029bb38",
+   "sha256": "182kr8nqrnf1lpiqbl04qm6871yvk0z53dxxdjc2y9xnh6dvx460"
+  }
+ },
+ {
   "ename": "elfeed-goodies",
   "commit": "e6ebb8d23961fd9bfe101f7917caa3b405493f31",
   "sha256": "0zpk6nx757hasgzcww90fzkcdn078my33p7yax7xslvi4msm37bi",
@@ -24355,26 +24517,26 @@
   "repo": "sp1ff/elfeed-score",
   "unstable": {
    "version": [
-    20201101,
-    1835
+    20201219,
+    2359
    ],
    "deps": [
     "elfeed"
    ],
-   "commit": "2de8fd1f40780282f4c36bc47963f207d2257918",
-   "sha256": "0i1qh6rjdaqjrfn3n9hyf5f1c9ls0i75xl9pam61l1ngaq1w6r8z"
+   "commit": "5fff4152bdb2a5f38ab83f7fa6b2943647935f94",
+   "sha256": "18jwg4a2ssswvbw50z9b84ca76i3q6vmv0ab90p432pjywpkwh73"
   },
   "stable": {
    "version": [
     0,
-    5,
-    5
+    6,
+    4
    ],
    "deps": [
     "elfeed"
    ],
-   "commit": "2de8fd1f40780282f4c36bc47963f207d2257918",
-   "sha256": "0i1qh6rjdaqjrfn3n9hyf5f1c9ls0i75xl9pam61l1ngaq1w6r8z"
+   "commit": "5fff4152bdb2a5f38ab83f7fa6b2943647935f94",
+   "sha256": "18jwg4a2ssswvbw50z9b84ca76i3q6vmv0ab90p432pjywpkwh73"
   }
  },
  {
@@ -24392,8 +24554,8 @@
     "elfeed",
     "simple-httpd"
    ],
-   "commit": "cc9d3b2196fb1f43e081aac0759678e8c5ae1c3e",
-   "sha256": "04yp98jpm98c18pmrb07cwvg5xyhskszfwrypxw95m6wmhnij2x5"
+   "commit": "de4b64b3f5d9fd41d9dc72023632ae535dc912e2",
+   "sha256": "04x3589jc39j3q2la82cidw3zpph10p5sj57m1kfz3ajyvh7rlm0"
   },
   "stable": {
    "version": [
@@ -24462,29 +24624,29 @@
   "repo": "Wilfred/elisp-def",
   "unstable": {
    "version": [
-    20200528,
-    633
+    20201215,
+    706
    ],
    "deps": [
     "dash",
     "f",
     "s"
    ],
-   "commit": "da1f76391ac0d277e3c5758203e0150f6bae0beb",
-   "sha256": "17zpil3zgi2j7a63lv5vas3ad6bvh45d9vnf2nb37z3id62rjdkd"
+   "commit": "679fa7d2d702263b6a55f30a1b8cfbb2fd817549",
+   "sha256": "0xzb89zk13db34kis68xc2b0b649335hxlnvjr4q1inf3yyzmiav"
   },
   "stable": {
    "version": [
     1,
-    0
+    1
    ],
    "deps": [
     "dash",
     "f",
     "s"
    ],
-   "commit": "5e0d766a5db537f4e7145c2053c22829d736ceba",
-   "sha256": "0l9az09yw40rr2xrvf01c3idfqplddr1kk880qscnzj8v9p06l4x"
+   "commit": "e374dfa1724c7ee34376305a94c5a31a052f4e3b",
+   "sha256": "1zd79yh8d5k2izkvd06splmw8b9pkqjnanzpmszngy83rnqzpyy0"
   }
  },
  {
@@ -24690,14 +24852,14 @@
   "repo": "elixir-editors/emacs-elixir",
   "unstable": {
    "version": [
-    20201128,
-    2057
+    20201216,
+    1838
    ],
    "deps": [
     "pkg-info"
    ],
-   "commit": "b78e7f733be7bf2af35807d759e53b7d52323193",
-   "sha256": "1jrflpfxxxs9kvrf7qm149wp1br7bb2dxx0pyzdgny3zpif4vakh"
+   "commit": "9de08c17d54e190d220aa03cca58bd41497f44b6",
+   "sha256": "0v6w2qkw52zrq0wwly0dli7gii2g64194m5169zslfrhk9rymkyp"
   },
   "stable": {
    "version": [
@@ -25367,28 +25529,28 @@
   "repo": "aki-s/elscreen-tab",
   "unstable": {
    "version": [
-    20190203,
-    1619
+    20201229,
+    1428
    ],
    "deps": [
     "dash",
     "elscreen"
    ],
-   "commit": "51360259326b8b4a5395a9f37dea8bf71ef2428a",
-   "sha256": "0472mr7r4ac8f16bq7zcybaxdvn2rqgaijckkbrcccivz3v1hky8"
+   "commit": "6ad77f972bde05e4e3d44f0d33b68ac41655e5f1",
+   "sha256": "0az5csc243p48g7mbx5yv16kg3171ykqy1zyw9wi3dwv07gqhyyb"
   },
   "stable": {
    "version": [
     1,
-    0,
+    1,
     0
    ],
    "deps": [
     "dash",
     "elscreen"
    ],
-   "commit": "29d7a65c3e134dd476049c9aebc8d029238e71f7",
-   "sha256": "0303i61m1qg65d3i3hsy7pzdhw0icpx3im99qkfmy6lxi4h9nd0p"
+   "commit": "6ad77f972bde05e4e3d44f0d33b68ac41655e5f1",
+   "sha256": "0az5csc243p48g7mbx5yv16kg3171ykqy1zyw9wi3dwv07gqhyyb"
   }
  },
  {
@@ -25740,6 +25902,29 @@
   }
  },
  {
+  "ename": "embark",
+  "commit": "d5174ca91e266dbb9467c962e269ff411bbbfa90",
+  "sha256": "1dps8p4qrzw2az9ccsgjmz0fwqqgj08qcw1f99n5absb3xmyrnf7",
+  "fetcher": "github",
+  "repo": "oantolin/embark",
+  "unstable": {
+   "version": [
+    20201231,
+    910
+   ],
+   "commit": "e9aa0d7a941c1fc31cfd9112f2446701201aceed",
+   "sha256": "0mac0cawis29lywhrvryaafks0fprc5bx6rwl05kx9ziia0640bk"
+  },
+  "stable": {
+   "version": [
+    0,
+    9
+   ],
+   "commit": "8b1291dfd6187815158299d25dc32b0bbc5af71d",
+   "sha256": "0b1p3pmdy21bix3fh57c2kb5mp0bmrwdc5q9vfdb9pni9sxw3n6v"
+  }
+ },
+ {
   "ename": "ember-mode",
   "commit": "9ac1eef4ad87b1b6b6d8e63d340ba03dc013425b",
   "sha256": "0fwd34cim29dg802ibsfd120px9sj54d4wzp3ggmjjzwkl9ky7dx",
@@ -25891,27 +26076,27 @@
   "url": "https://git.savannah.gnu.org/git/emms.git",
   "unstable": {
    "version": [
-    20201105,
-    2351
+    20201230,
+    2142
    ],
    "deps": [
     "cl-lib",
     "seq"
    ],
-   "commit": "6995bf6ee0cb87a36d2ac462c329326603f8662e",
-   "sha256": "0dp1cfgng2nhi1jfp88q2hp1k5xbd72p02prqj6iv3xd8dh1qjgk"
+   "commit": "a2738fe1a9013f641eeba31300e828e88b468b14",
+   "sha256": "0r2krmrhmwqcw3sdmy7z9rw4l222ja4jz8an8av11qjhpacr8v98"
   },
   "stable": {
    "version": [
     6,
-    2
+    3
    ],
    "deps": [
     "cl-lib",
     "seq"
    ],
-   "commit": "6985faba91b9d48c48da55d2adf4a54ca332c1cb",
-   "sha256": "0pcg9g11y6mjcc035wqlnn87gh4d1gmaz7dxy9ll3nksj5vwyllm"
+   "commit": "a2738fe1a9013f641eeba31300e828e88b468b14",
+   "sha256": "0r2krmrhmwqcw3sdmy7z9rw4l222ja4jz8an8av11qjhpacr8v98"
   }
  },
  {
@@ -26391,11 +26576,11 @@
   "repo": "zenspider/enhanced-ruby-mode",
   "unstable": {
    "version": [
-    20200729,
-    634
+    20201222,
+    858
    ],
-   "commit": "f0bffbe4b32bb59680f897731169442cce5a1eec",
-   "sha256": "0zjx6mz8kql9d09rzqircbqd9rcpfsn1k7nz9vwijp59m6mnjw1h"
+   "commit": "28f30c056cfe2fd7135a71576c183d242dff3b52",
+   "sha256": "1jslhi3nzn6b16481fkmq1mqrg7f8p5mqi4hqdkywpprqcygrwn1"
   },
   "stable": {
    "version": [
@@ -26524,7 +26709,7 @@
   "stable": {
    "version": [
     0,
-    5,
+    6,
     0
    ],
    "deps": [
@@ -26533,8 +26718,8 @@
     "magit",
     "s"
    ],
-   "commit": "11c99f7e1e2c1c7d70cbda496cb5b6c7f6e4082a",
-   "sha256": "1c5kzq3h7gr0459z364dyq5m8vq0ydclw5wphqj9fyg28mxjj6ns"
+   "commit": "6fa16c4ccaaebaef64dca0d3d29904c45fd6597d",
+   "sha256": "1y6n5b9pk4c3badzhwm7qv1jw60p34z55ljwhaaqlnmv7nq1qnj3"
   }
  },
  {
@@ -26595,14 +26780,14 @@
   "repo": "emacscollective/epkg",
   "unstable": {
    "version": [
-    20201203,
-    1723
+    20201219,
+    1947
    ],
    "deps": [
     "closql"
    ],
-   "commit": "e5c3541b0a85b3a30ca4eaf578f1d0927e67a10e",
-   "sha256": "0h90q5g44xkq2r4vrvib2k55b7sm7v5bpksxy5pblv1m2vdsmwvk"
+   "commit": "f721e3801cf92ea4265d645ac077365dc5c49d41",
+   "sha256": "167ghzv772i0x8ndldgsagpqkkr768dcm83ajagkppaw7rgkvg0r"
   },
   "stable": {
    "version": [
@@ -26748,17 +26933,17 @@
  },
  {
   "ename": "eradio",
-  "commit": "b5c8621acac2bfb7859bf0b830994fc867ecdaa2",
-  "sha256": "0kan4ia1g9xsb53gkj43c6sn2009a9cm49x2c30ccj2gl999szq2",
+  "commit": "533c3f130d94335bf18907fefe2b5f1e047cdfbe",
+  "sha256": "0dxlsikgz1fbsypxxzczp6m4bbqh4kqv0f7w058z2sgzplybq3m4",
   "fetcher": "github",
-  "repo": "olav35/eradio",
+  "repo": "fossegrim/eradio",
   "unstable": {
    "version": [
-    20201204,
-    2035
+    20201220,
+    1010
    ],
-   "commit": "893d499ef67065f56ef464fa8ede2e49d4597fe4",
-   "sha256": "0sxxkdsnz21pb1cn24c9qf3lypbgvr6z3bqda4k168ml4pbg4rlj"
+   "commit": "d9dcf81cfc5b0278a2ae51e77b3d44fa50e92ce8",
+   "sha256": "0i20g5c8sx8m5slldb765lbsxg3qdda1dqjl61s9idncp8dlllcl"
   }
  },
  {
@@ -27236,8 +27421,8 @@
     20200914,
     644
    ],
-   "commit": "fdace3b9c446a1d621858dc343f5ed80422d0ea1",
-   "sha256": "0gx3a0gcr9x9zzgr1xa4lgwl0zwcqhmxn8gscmyspbx6dj4akvg0"
+   "commit": "c71681368fdedcc83a136b4dc7b01e08b8a938ba",
+   "sha256": "1i9xp35vrksmalrr0y0ybsrb9qxxwyzgxhxz297488czxw8cfvz0"
   },
   "stable": {
    "version": [
@@ -27258,20 +27443,20 @@
   "repo": "erlang/otp",
   "unstable": {
    "version": [
-    20201112,
-    1915
+    20201215,
+    830
    ],
-   "commit": "6b1435b92389bb6ce2d2613b66267c3a48abd0d6",
-   "sha256": "1xncnyp0904n287633dcl0f8mh5zhhq8shdjnjnb9fklglsbiad8"
+   "commit": "e0e9d8bad472fa94f4919e6db798e45913dc9eec",
+   "sha256": "0pbj8hafvzg5ydrhf6q3knir5gv265x815amx4vrz0y740w1pzab"
   },
   "stable": {
    "version": [
     23,
-    1,
-    5
+    2,
+    1
    ],
-   "commit": "600506690a10215a6c7e21eefbf855216cda4c33",
-   "sha256": "0pxf8h6dd1a1i7vlklc5jqbb6ab91axnldgg3vmvgff6a554xd7x"
+   "commit": "2c89431fa867d5b1cc56f26a9282bcfb6fcdec58",
+   "sha256": "1xya7rv9j2528w7x0kivb3zl0rdzdwv82xp22yh7bw22vhfyrk4y"
   }
  },
  {
@@ -28108,11 +28293,11 @@
   "repo": "emacs-ess/ESS",
   "unstable": {
    "version": [
-    20201208,
-    1047
+    20201230,
+    1711
    ],
-   "commit": "a23b04599bad080ed15c630469c113b2cb591507",
-   "sha256": "1y5gvza93wvf5ihncfdvfghz0zgnsmy1pq1rjbi0pv4gc39rifbj"
+   "commit": "161db4922680b3d3e21acb858b4b1ef38a6b0b1d",
+   "sha256": "0q055pw86jqpfr8lkn0f7rlrdx928i1iq1xcycin16lc52fhsjw6"
   },
   "stable": {
    "version": [
@@ -28313,8 +28498,8 @@
     "cl-lib",
     "s"
    ],
-   "commit": "0ef8b536253c11da44a6788cc2c6e4d0ba7bbd6e",
-   "sha256": "1wg3hqq2faq20s5qmccz84jjwyjlygz0rrhz2rawck8srwwz45g5"
+   "commit": "fa1413737b8d5173a4db8c18d8de9ac798365d53",
+   "sha256": "1barvpcxw9v0gy16drcrmq2izmasm0icahnzrpyzdfnvcmvp3al7"
   },
   "stable": {
    "version": [
@@ -28337,11 +28522,11 @@
   "repo": "tali713/esxml",
   "unstable": {
    "version": [
-    20201130,
-    809
+    20201226,
+    2146
    ],
-   "commit": "265646046b084621900767682adff6581933f044",
-   "sha256": "0hmmxchhqg6vipscn9ycbfm5p8bix22hipa2cl155wyqrm0cl7iz"
+   "commit": "f3d60206eda3cd66bea07c903198d12c4761e326",
+   "sha256": "1gyydxm1dja4qn9al7b5g9gm7y75qwbn516migxiy20vdzhvksfx"
   },
   "stable": {
    "version": [
@@ -28493,8 +28678,8 @@
     "let-alist",
     "request"
    ],
-   "commit": "bfb8b4bfacbf16bb23e09a2b64b5383dd9cb9a47",
-   "sha256": "0fj9zn136izbq8r1p4b2ca9zzvxw5jl7h2gi4v3wf1wa15fkjzf5"
+   "commit": "36956db9fa65ff88f3213a80b11f1fad0765d972",
+   "sha256": "1aqwnfdp3cb7zc38iy37hyvzr0qii182c6w6z7k9rq1arjg1vs2b"
   }
  },
  {
@@ -28874,15 +29059,15 @@
   "repo": "emacs-evil/evil-collection",
   "unstable": {
    "version": [
-    20201207,
-    1906
+    20201227,
+    1057
    ],
    "deps": [
     "annalist",
     "evil"
    ],
-   "commit": "c9ccc3065f46c1654f1cc0d41cd2f5cff184d273",
-   "sha256": "1di2kc1ikrcvzf1p4nshlxdq5ndbg209kvhhdq3576xjw0ir90v5"
+   "commit": "16e14ea9c58aa1224c09d02e40ad3edde72c820a",
+   "sha256": "1k4lk23yzs0qz6fds5d6brabsh6k9dma4jr4adxhpm4i20b0sv8j"
   },
   "stable": {
    "version": [
@@ -29026,6 +29211,10 @@
     20180910,
     1234
    ],
+   "deps": [
+    "cl-lib",
+    "evil"
+   ],
    "commit": "f4e9116bfbaac8c9d210c17ad488e0982291245f",
    "sha256": "1whppnlzkjig1yrz0fjvp8cy86215gjahgh88166nzk95wlc3pvf"
   },
@@ -29468,14 +29657,14 @@
   "repo": "redguardtoo/evil-matchit",
   "unstable": {
    "version": [
-    20201129,
-    1241
+    20201216,
+    114
    ],
    "deps": [
     "evil"
    ],
-   "commit": "6254f7c81284dd7d8249f81a6601069710432be7",
-   "sha256": "16s78wg904jrpa0nr9ahf6jpwd2rs9igsn4km24abdhiaxgkw04b"
+   "commit": "0fd65c463b991e81c6775147385badfafade52e7",
+   "sha256": "1l572lq6ys9v7yl51p7j3ryas2738imk2hdcbw6sf62q6yvcv1ih"
   },
   "stable": {
    "version": [
@@ -29697,14 +29886,14 @@
   "repo": "Somelauw/evil-org-mode",
   "unstable": {
    "version": [
-    20200922,
-    1933
+    20201222,
+    2023
    ],
    "deps": [
     "evil"
    ],
-   "commit": "a629fb705b0ac704580d5a5833a64716284074e7",
-   "sha256": "004098pxli12x75j9z0i650rvsf4al7rv3gj6r7mayv29939w8w7"
+   "commit": "80ef38fb378541937f6ddfe836809e76eda1e355",
+   "sha256": "19028laqnsl0h5nii7ykfh39srg94zhydhj1rcv52fs9nlg6c6dq"
   },
   "stable": {
    "version": [
@@ -29733,8 +29922,8 @@
    "deps": [
     "evil"
    ],
-   "commit": "713b898b214a2e5ef2a4189674a2f21e72a55769",
-   "sha256": "084f6s6vfs5wx1h9wa6xazi9rjx3gfnini71cjqqrn51gahp5c9a"
+   "commit": "7d21ba71685b4b829c733288865054cc12783b8f",
+   "sha256": "1087rfvvqv9bp33vjbiwka511iha7468y86xigyvmy5wa729blzd"
   },
   "stable": {
    "version": [
@@ -30423,8 +30612,8 @@
    "deps": [
     "evil"
    ],
-   "commit": "bc25cae9fa5ab0ba1507827f0944f52ce0ca7462",
-   "sha256": "0xz2yjgz6h2d6h7gfhnvrylh8gj0s7vf45bvqa450j5579gz5sqz"
+   "commit": "290b5323542c46af364ec485c8ec9000040acf90",
+   "sha256": "0dr4dc9gbavbfmij399ac09mb109fwpf1xkfk8g4xzmphh4chcnz"
   }
  },
  {
@@ -30821,14 +31010,14 @@
   "repo": "purcell/exec-path-from-shell",
   "unstable": {
    "version": [
-    20201105,
-    2236
+    20201215,
+    33
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "4ea306a76f0f8371053dd12d77a3b5b4438974d3",
-   "sha256": "1s6raprqgyn64fhfbjiyp874nzxysr1ycdm5064721w3iz9rzzw0"
+   "commit": "d14d6d2966efe5a1409f84a6b9d998268f74761d",
+   "sha256": "0jgy17s7gkjpdls8ql8qfpncd5vrwm50i3svmnlqic6ds4mkc7s0"
   },
   "stable": {
    "version": [
@@ -31496,19 +31685,19 @@
   "repo": "WJCFerguson/emacs-faff-theme",
   "unstable": {
    "version": [
-    20201208,
-    2051
+    20201227,
+    2240
    ],
-   "commit": "780460d8cbac2b2cca3d2914db317e1b6b807986",
-   "sha256": "0x8nqj4szgyvfmjifippri3jqw1kjhjysbqwli1dwi5lq9y4dx5v"
+   "commit": "37f396ec57c28249af3fb10d84231afb44581df8",
+   "sha256": "1jlm81s8rximvbh95sk0xazp57skfgs6382gkw0yqw63ikc5x60c"
   },
   "stable": {
    "version": [
     2,
-    13
+    15
    ],
-   "commit": "780460d8cbac2b2cca3d2914db317e1b6b807986",
-   "sha256": "0x8nqj4szgyvfmjifippri3jqw1kjhjysbqwli1dwi5lq9y4dx5v"
+   "commit": "37f396ec57c28249af3fb10d84231afb44581df8",
+   "sha256": "1jlm81s8rximvbh95sk0xazp57skfgs6382gkw0yqw63ikc5x60c"
   }
  },
  {
@@ -31657,11 +31846,11 @@
   "url": "https://framagit.org/steckerhalter/emacs-fasd.git",
   "unstable": {
    "version": [
-    20200925,
-    1549
+    20201226,
+    923
    ],
-   "commit": "38555b501430bb684feb58901ede5347dca287c7",
-   "sha256": "0wncbk910c7nw3wi602psx5hc6cwzigim5ahyqmkm8gry3vhwbyd"
+   "commit": "c4c04873fd0c8e916186f38a75cd4ab7f8b7ad59",
+   "sha256": "1vh5aaljjal62jv3pdl64jkzwszv1hxk7f3lrm873lr84785pc41"
   }
  },
  {
@@ -31849,11 +32038,11 @@
   "repo": "yqrashawn/fd-dired",
   "unstable": {
    "version": [
-    20201124,
-    126
+    20201217,
+    547
    ],
-   "commit": "313def22c88519e61279e858b4f53bb84a93da36",
-   "sha256": "0sp3a01qvxrszmcvdzplrhkiax4lhssz4idw78sxmm28j59m8p7x"
+   "commit": "9fb966df33e7dde9360b8707f7a0197694f46abd",
+   "sha256": "0gx84kr8fnx8nic3iasqjdi1z6g9shfghin13kh5i9h7d8n83xkq"
   },
   "stable": {
    "version": [
@@ -31971,11 +32160,11 @@
   "repo": "technomancy/fennel-mode",
   "unstable": {
    "version": [
-    20201114,
-    132
+    20201221,
+    543
    ],
-   "commit": "fa56106eeb27de8c8f063f53e139e9bcf6004274",
-   "sha256": "1ph0x8qp736nr2zs3ffznmxd6hycgk1gv2hpw4kls3qkbcail387"
+   "commit": "bebc9dd58a845928114082c5ab4538b9869b4fc7",
+   "sha256": "1dyzfxcaq0gzw957386gapha4kai2y0hv6qqpv7gs4hsilvr8vzb"
   },
   "stable": {
    "version": [
@@ -32144,11 +32333,11 @@
   "repo": "davidshepherd7/fill-function-arguments",
   "unstable": {
    "version": [
-    20190710,
-    929
+    20201223,
+    819
    ],
-   "commit": "295d55d6056e6f79b68283f7631f6438ea8a7b5f",
-   "sha256": "0nx3krpqn1c0xvr81504m4s84bkxpq42s97igmg6jfsjy7dphp2k"
+   "commit": "a0a2f8538c80ac08e497dea784fcb90c93ab465b",
+   "sha256": "0d9scijcr8qj7hqz6iicpkwhfs99ai1qxhx9rbgcs5gdp3xkrhw9"
   },
   "stable": {
    "version": [
@@ -32270,14 +32459,14 @@
   "repo": "technomancy/find-file-in-project",
   "unstable": {
    "version": [
-    20201111,
-    407
+    20201217,
+    527
    ],
    "deps": [
     "ivy"
    ],
-   "commit": "c4dee37e0454cc169330c251a06e892e4a24f45a",
-   "sha256": "1yn4hjhaa74b67kfh7n24vic6yz3w0l5w7spchh2lbyr7s8mz90x"
+   "commit": "f2f537476bb3579dcdf0587dfd2bac034cc5e719",
+   "sha256": "1zdc73w3649xrm902ah8vr2x8xbk17cacpspif3hrbabqpaihvh9"
   },
   "stable": {
    "version": [
@@ -32925,27 +33114,27 @@
   "repo": "plandes/flex-compile",
   "unstable": {
    "version": [
-    20201110,
-    122
+    20201218,
+    1549
    ],
    "deps": [
     "buffer-manage",
     "dash"
    ],
-   "commit": "fdc8bb4d4030abd678d85be153f7849723e0601d",
-   "sha256": "047nl793p4nimw12hplmpvklbz4wgq1ii7z0jz7yip73sb69dwbq"
+   "commit": "bc1f0804f089686260b64d5e4dde80c0c9f6df21",
+   "sha256": "0l9dxh9578gsczhq944id0lacwdr4k7383d5i147v7c6l7s8d7sw"
   },
   "stable": {
    "version": [
     0,
-    6
+    7
    ],
    "deps": [
     "buffer-manage",
     "dash"
    ],
-   "commit": "9b09f830897e323b155ef857961ef838fdcf98b9",
-   "sha256": "17dv0zjma0h62p7nhshb63sigg8nyxhj98dknxjdrq0kgzziqfwi"
+   "commit": "bc1f0804f089686260b64d5e4dde80c0c9f6df21",
+   "sha256": "0l9dxh9578gsczhq944id0lacwdr4k7383d5i147v7c6l7s8d7sw"
   }
  },
  {
@@ -33272,8 +33461,8 @@
   "repo": "flycheck/flycheck",
   "unstable": {
    "version": [
-    20201105,
-    423
+    20201228,
+    2104
    ],
    "deps": [
     "dash",
@@ -33281,8 +33470,8 @@
     "pkg-info",
     "seq"
    ],
-   "commit": "79c9245ee0bd1722d41c865fef69aa2b1ac08fde",
-   "sha256": "1rmyr04fikdplc3f1wybw8hqagcwhi5ld30a6aa2fm83iamyxzpf"
+   "commit": "01396a5eff9fa494285e0d3139838231c05e3948",
+   "sha256": "0s740sbchr84yddcg0zbs4v4s52smy178f8fq5y07i3vsdnfly8m"
   },
   "stable": {
    "version": [
@@ -33372,8 +33561,8 @@
    "deps": [
     "flycheck"
    ],
-   "commit": "2e754a1ec8c423a3356443ab8128aa43a1a860b7",
-   "sha256": "0zhk3lx24rv28qp7qriria5ybbz6ajhwk1ks67srzs9lczvpx63j"
+   "commit": "99f5fa5b3d2f67807fba67754c77ddc63e9cf441",
+   "sha256": "09wx5xnjd1rrv1z1pv959wl67ihccvn7rbvjsrldar80jn4nhpmx"
   }
  },
  {
@@ -33733,8 +33922,8 @@
    "deps": [
     "flycheck"
    ],
-   "commit": "f9e4db16ff9fdc6a296363aa35d19cfb4926e472",
-   "sha256": "1x0lmb48bza2w52s15288hpbipafs87lj5lv0ldd1q4r9yv0i102"
+   "commit": "15998140b0a4172cd4b4d14d0377fba96a8917fc",
+   "sha256": "0bdzffwp9hliy9bkvqn1p432yy161g7n7bl814mmi6zj4sfn1sy1"
   },
   "stable": {
    "version": [
@@ -34436,8 +34625,8 @@
    "deps": [
     "flycheck"
    ],
-   "commit": "0662c314bd819f9b46f8b2b13f0c650445b3a8c5",
-   "sha256": "1wlvwi8y5pb3gy3j061v7krxfb1766yw5iika5ymk4zjg9g057vn"
+   "commit": "8e00b4c5951a9515a450a14aefe92e9f6ddcfbde",
+   "sha256": "1s505lk5rdc3p40w5g4cpzviaksclvfdisl457gpwjpjv0m7fwd4"
   }
  },
  {
@@ -34795,8 +34984,8 @@
    "deps": [
     "flycheck"
    ],
-   "commit": "cea2b5f58da85a53a846da7e12de32fc146b58be",
-   "sha256": "09qvg74fyfbhsi748vv4kl7b7vbnc224ark5vllm1ldjhnj2dq19"
+   "commit": "cf45af2a71f6e7a21e01c556613c5b5cdc983ac9",
+   "sha256": "1qhix0i8d9qrc0jg3r17v6fmrz07pjw5kk04fm72i8n4c16vb6r1"
   },
   "stable": {
    "version": [
@@ -35321,20 +35510,20 @@
     "flycheck",
     "rtags"
    ],
-   "commit": "63a7d9b733def9fe76568f81321a65a450829575",
-   "sha256": "1nnjhfz7xm1ax38xkz0jvgzhfczlc4r9xlpzc24sisabkvlkivyw"
+   "commit": "39339388256df662d0084b4a094d03e52748f9e8",
+   "sha256": "0wp4mygsxzibra2p3m5rn9m0yd3fscd795k5xa0wxi5pwddv7dlg"
   },
   "stable": {
    "version": [
-    2,
-    38
+    3,
+    23
    ],
    "deps": [
     "flycheck",
     "rtags"
    ],
-   "commit": "9687ccdb9e539981e7934e768ea5c84464a61139",
-   "sha256": "1r6l7dgr2ch586zrdi5l8fhdj4qdva8ldz7cjvi2byc2pd2xs8rx"
+   "commit": "7169ed577d676690a3c6f0025b54e8477d80eacf",
+   "sha256": "1i94dizg3wvkvq8c2pf5bzkx8zwzcfi4p3l73c779y145bygssnq"
   }
  },
  {
@@ -35480,8 +35669,8 @@
    "deps": [
     "flycheck"
    ],
-   "commit": "3fa1615dd67c53b8ce69b8d3beaf412162b89f65",
-   "sha256": "1ss7s9s43wy90vjrck3i710blmarys1w4kqs57190nk1igay0lna"
+   "commit": "77a000095b321ac5d2378cf03ccf2377ccc37f59",
+   "sha256": "1rp0v681kvdsi84lk4m1lj8bfllwqw1ivl53q3zy34ja186xviww"
   },
   "stable": {
    "version": [
@@ -35773,11 +35962,11 @@
   "repo": "leotaku/flycheck-aspell",
   "unstable": {
    "version": [
-    20200902,
-    2226
+    20201212,
+    1038
    ],
-   "commit": "2e754a1ec8c423a3356443ab8128aa43a1a860b7",
-   "sha256": "0zhk3lx24rv28qp7qriria5ybbz6ajhwk1ks67srzs9lczvpx63j"
+   "commit": "99f5fa5b3d2f67807fba67754c77ddc63e9cf441",
+   "sha256": "09wx5xnjd1rrv1z1pv959wl67ihccvn7rbvjsrldar80jn4nhpmx"
   }
  },
  {
@@ -37453,8 +37642,8 @@
   "repo": "magit/forge",
   "unstable": {
    "version": [
-    20201209,
-    57
+    20201229,
+    939
    ],
    "deps": [
     "closql",
@@ -37466,8 +37655,8 @@
     "markdown-mode",
     "transient"
    ],
-   "commit": "aef11e481988073a0b842ec1fbe40440540db8bd",
-   "sha256": "0pia5lgfjj04gyq2nvwkfjpwz6l9rrq58mh1j2ql61zzfpfpy46n"
+   "commit": "c4ae0f2bdd3ecd3dacb303bd7687ecb111af8c9b",
+   "sha256": "17fwrcaq61qi0067nfs266dbn193lkf47630mf6bdsi2h3d2fxr6"
   },
   "stable": {
    "version": [
@@ -37522,14 +37711,14 @@
   "repo": "lassik/emacs-format-all-the-code",
   "unstable": {
    "version": [
-    20201123,
-    839
+    20201230,
+    2354
    ],
    "deps": [
     "language-id"
    ],
-   "commit": "c4ef7a266838cd3598b6b84e49f2267bb8c64d56",
-   "sha256": "0bz32aca3kvnpbdfyzarh6wd7i0vwc1z6ighk3dbag4dmkk6l47s"
+   "commit": "f51cca79d89f27c65e43f4e4cae2fbec6098304b",
+   "sha256": "0ix0p3bwp2slcqp7v8lbjr9a2jp1xj3firvvssldiy0d2bfykya4"
   },
   "stable": {
    "version": [
@@ -37666,26 +37855,26 @@
   "repo": "rnkn/fountain-mode",
   "unstable": {
    "version": [
-    20201126,
-    716
+    20201226,
+    1636
    ],
    "deps": [
     "seq"
    ],
-   "commit": "d29675d585c12abfa39b8f736384382c7423667d",
-   "sha256": "0gj5zsa271zwbd8n8l6kkan4x3xxs952hdnr8fghc9sfdizd497k"
+   "commit": "c7ac77fef71fc20c4c7bee73516ec3c0f656a91a",
+   "sha256": "00m4x3nylvwsaki6m7gvk1grcaap96rnx10mpsxlapkpbrydhpk0"
   },
   "stable": {
    "version": [
     3,
-    3,
-    3
+    4,
+    0
    ],
    "deps": [
     "seq"
    ],
-   "commit": "e46c5ce6b6d97493d73823deec088760446caaa3",
-   "sha256": "095nrkg2bap6rcg9hy3bh0nis4v2f8w8d9hnahkzsa3njlpqa4ka"
+   "commit": "3e7ef35fae455f77abb63c34e926c2d0e3070d7f",
+   "sha256": "161wn66gc2z7fd4f89827dpww6hjmnassbi15yis5rqbklj1h2z6"
   }
  },
  {
@@ -37747,15 +37936,15 @@
   "repo": "alphapapa/frame-purpose.el",
   "unstable": {
    "version": [
-    20190114,
-    1403
+    20201219,
+    1340
    ],
    "deps": [
     "dash",
     "dash-functional"
    ],
-   "commit": "78f978f13589ec5c5370187c008c8aa83e6e71b4",
-   "sha256": "0zd981jsbf8fj5a3s7agbg32f6x3s7g87jlz13msgpgmkfhpx3gx"
+   "commit": "b4a259fa077671e2dcf33d11b42955c91e395b8b",
+   "sha256": "033vbvv4rrjbsfw0bbhhzx2754r96vy9h4n1y8jmxrqzs9wi5mmq"
   },
   "stable": {
    "version": [
@@ -37803,8 +37992,8 @@
     "dash",
     "s"
    ],
-   "commit": "3cd98cbf80b04ae2ebca1c67c52ba756116f6784",
-   "sha256": "0smyic3x3b98ipwhb9pw47nnymccy4w7k3dbng2g2zhgwi5pyc1k"
+   "commit": "187753b095a94f423763fe893408e1318fb7b2dc",
+   "sha256": "0b4aqilpxby3ac7rmcb4r6yhhlyjkrh47zhrshk8f3ndlyxbz9ch"
   },
   "stable": {
    "version": [
@@ -37888,15 +38077,15 @@
   "url": "https://git.launchpad.net/frecentf.el",
   "unstable": {
    "version": [
-    20200624,
-    1534
+    20201217,
+    2150
    ],
    "deps": [
     "frecency",
     "persist"
    ],
-   "commit": "d9d093365ffe12c46e81d16ee81850abd86a2177",
-   "sha256": "06w17km8hmlr2mrxi26g51mnfvcvilw91b17y52pmx09jgnqa9ac"
+   "commit": "23a41b8d06b1e345e6b99d1efd38a219f376faff",
+   "sha256": "1sgsi7kdk3r1lh0iilpyz241qpzj46xp4ifhbszjxs6p2gcwi5y9"
   }
  },
  {
@@ -37985,8 +38174,8 @@
     "friendly-tramp-path",
     "with-shell-interpreter"
    ],
-   "commit": "5eecd7bb2c145fd4139f5c2538afc15b821ec102",
-   "sha256": "15q6q5w1wlda5wmyw8bd9bm7cqan28y5vzzr54rp02gbzc61v399"
+   "commit": "ad4ac00662829fa18858be02b322753ad091ffe3",
+   "sha256": "0xf71bvz4252y2jxkn9dpcmg5fvf9i049bbm8bvs7s9f6bcplba6"
   },
   "stable": {
    "version": [
@@ -38012,15 +38201,16 @@
   "repo": "p3r7/friendly-shell",
   "unstable": {
    "version": [
-    20200828,
-    1218
+    20201212,
+    2302
    ],
    "deps": [
     "cl-lib",
+    "dash",
     "with-shell-interpreter"
    ],
-   "commit": "5eecd7bb2c145fd4139f5c2538afc15b821ec102",
-   "sha256": "15q6q5w1wlda5wmyw8bd9bm7cqan28y5vzzr54rp02gbzc61v399"
+   "commit": "ad4ac00662829fa18858be02b322753ad091ffe3",
+   "sha256": "0xf71bvz4252y2jxkn9dpcmg5fvf9i049bbm8bvs7s9f6bcplba6"
   },
   "stable": {
    "version": [
@@ -38052,8 +38242,8 @@
     "dash",
     "with-shell-interpreter"
    ],
-   "commit": "5eecd7bb2c145fd4139f5c2538afc15b821ec102",
-   "sha256": "15q6q5w1wlda5wmyw8bd9bm7cqan28y5vzzr54rp02gbzc61v399"
+   "commit": "ad4ac00662829fa18858be02b322753ad091ffe3",
+   "sha256": "0xf71bvz4252y2jxkn9dpcmg5fvf9i049bbm8bvs7s9f6bcplba6"
   },
   "stable": {
    "version": [
@@ -38265,8 +38455,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "d78ae037780ee687b654ac0e8fc8f1b954493164",
-   "sha256": "0q5vff4mw77864igj5mqspdirc1q22rxa9sg7zcm9kskv8c4r4is"
+   "commit": "aa4babe4f25d218fb4f50ac7b804cbde83e5fb4c",
+   "sha256": "183kbv6i23zh8dqha4l9crzgx0p5g5vc71d2kkfcpnxh83l3dhmm"
   },
   "stable": {
    "version": [
@@ -38749,11 +38939,11 @@
   "repo": "wavexx/gcode-mode.el",
   "unstable": {
    "version": [
-    20201011,
-    1745
+    20201218,
+    2109
    ],
-   "commit": "2192ec743b49d9adfb9116ab410b195725dc886a",
-   "sha256": "0q53795cprhj8g0dkh2njxmpgpgm7a66g4kqdh179m3xn1kinw50"
+   "commit": "a1e2c6cbf4e364991ab2209d5cd5a3b698d459d9",
+   "sha256": "0x6aqh415gbn9x7qyb74zmw5v1ghi7y0lknlbdccxx3j62fmmv8w"
   }
  },
  {
@@ -38767,8 +38957,8 @@
     20201026,
     1319
    ],
-   "commit": "75fe658ab88adbec95f226d24fd9d41c33c68dd5",
-   "sha256": "1b5k5wrlgsmvlfxy8whc26b462vyqqyk6vgsim00nn8ds0p3810n"
+   "commit": "20fc7e438170b8a2e03378956c1a501fbc49aee4",
+   "sha256": "16k4vdmip6fmz51070w2vz9dqbh1vlsiwq0a7wikmgzz7yv8micd"
   },
   "stable": {
    "version": [
@@ -39076,8 +39266,8 @@
   "repo": "thisch/gerrit.el",
   "unstable": {
    "version": [
-    20201114,
-    420
+    20201216,
+    2245
    ],
    "deps": [
     "dash",
@@ -39085,8 +39275,8 @@
     "magit",
     "s"
    ],
-   "commit": "4c4fbd2b1b38202f701081ea8e892bd8e1a9042f",
-   "sha256": "1j62kwkpi5v84dvv0amacg1kgxh0asbwfq7iygrh6x3xlj3pg288"
+   "commit": "00b0201cef4fd2ade108289a8444e1b354a882f6",
+   "sha256": "0k9bwxqd2zs3bbikqgfnshk7snycfxkzlipih4m0pcnpk1fdp6sv"
   }
  },
  {
@@ -39196,29 +39386,30 @@
   "repo": "sigma/gh.el",
   "unstable": {
    "version": [
-    20180308,
-    2138
+    20201222,
+    438
    ],
    "deps": [
     "logito",
     "marshal",
     "pcache"
    ],
-   "commit": "f029fc11f345ef04ab62ee91c38657e29c462fea",
-   "sha256": "1rgdpi8ld5hi2rp30p8sxbrl6z95nvq80jfp3zsr7cmsniwz0vv3"
+   "commit": "4b2dd0667ebe9c684c1de5bc96961c2ab0885c07",
+   "sha256": "11qjlwsiicnmgcy0yvpvagpcl31rrv5qzm18hlh16cyis4z3vngi"
   },
   "stable": {
    "version": [
+    1,
     0,
-    10,
-    0
+    1
    ],
    "deps": [
     "logito",
+    "marshal",
     "pcache"
    ],
-   "commit": "d0471dd1ba279072cbf8caf6368f3008d7120f25",
-   "sha256": "099msgsxdqyjrd18jv2mfkpaylp2scq18782354lcpr3fbp8vbsl"
+   "commit": "fa8d65f4ddc390d256eb76dd3f7e3afae02f23e7",
+   "sha256": "11qjlwsiicnmgcy0yvpvagpcl31rrv5qzm18hlh16cyis4z3vngi"
   }
  },
  {
@@ -39374,28 +39565,28 @@
   "repo": "magit/ghub",
   "unstable": {
    "version": [
-    20201208,
-    2056
+    20201211,
+    1717
    ],
    "deps": [
     "let-alist",
     "treepy"
    ],
-   "commit": "a72a171b3c686b98ea2b5db11ad159b0febbf545",
-   "sha256": "02dh8wyq4ikix7awvib3h2imp6bq25l49yz9n7sjzcvc7b4wf92n"
+   "commit": "5fae5e31586a11a2025168030e0eb3876502611c",
+   "sha256": "0i19h9zl8wky1296f0d7dcx9dpfmfixinnaf4l1w1bf4p2xmyfiw"
   },
   "stable": {
    "version": [
     3,
     5,
-    0
+    1
    ],
    "deps": [
     "let-alist",
     "treepy"
    ],
-   "commit": "47948b2482517d25d7412df34ae8be0a9f475f37",
-   "sha256": "0lqphkbxrayrcwkwkghfw39wwmc87fdayhl3fy790z7367ilsd1v"
+   "commit": "5fae5e31586a11a2025168030e0eb3876502611c",
+   "sha256": "0i19h9zl8wky1296f0d7dcx9dpfmfixinnaf4l1w1bf4p2xmyfiw"
   }
  },
  {
@@ -39725,16 +39916,16 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20201115,
-    2313
+    20201222,
+    1527
    ],
    "deps": [
     "dash",
     "transient",
     "with-editor"
    ],
-   "commit": "9e9f7cb3d260bd14e15307831a2820112c9a77ac",
-   "sha256": "1snbjfp35znmpa02mq0g75b24if74717f1lbij2h634pm7l5ndi1"
+   "commit": "c5e11811197ef8c667a605e5d9dd8ec77247bd13",
+   "sha256": "0i4la1sncgn2hgpgd26x0igc90q4c4jkgkng8la96hjaw09qsv23"
   },
   "stable": {
    "version": [
@@ -39758,34 +39949,32 @@
   "repo": "emacs-stuff/git-commit-insert-issue",
   "unstable": {
    "version": [
-    20201008,
-    955
+    20201230,
+    1721
    ],
    "deps": [
     "bitbucket",
-    "github-issues",
-    "gitlab",
+    "ghub",
     "projectile",
     "s"
    ],
-   "commit": "aff85933e35eb36df28720d21f2c5b0a21e3646e",
-   "sha256": "1xms52rd8si208vlxp00asz5bs8s7ax1mywa1b1856gil0ygr7qh"
+   "commit": "8a403005ea7f7611bb1bfd829eeefe5a4f10bb40",
+   "sha256": "0w5xl9r7sbhlwxzg391x50pnsjmjjakn761v3qg0lj6xhv23sdl5"
   },
   "stable": {
    "version": [
     0,
-    3,
-    2
+    4,
+    1
    ],
    "deps": [
     "bitbucket",
-    "github-issues",
-    "gitlab",
+    "ghub",
     "projectile",
     "s"
    ],
-   "commit": "a3cc128595eb6040713da308ac53c2d20259ca14",
-   "sha256": "0wxb5dqwvy82vgx6kl8yfg6sn0fi9mi6ghx93hxvayjb6x74p5c3"
+   "commit": "8a403005ea7f7611bb1bfd829eeefe5a4f10bb40",
+   "sha256": "0w5xl9r7sbhlwxzg391x50pnsjmjjakn761v3qg0lj6xhv23sdl5"
   }
  },
  {
@@ -39946,16 +40135,16 @@
   "repo": "akirak/git-identity.el",
   "unstable": {
    "version": [
-    20200810,
-    1106
+    20201223,
+    948
    ],
    "deps": [
     "dash",
     "f",
     "hydra"
    ],
-   "commit": "6bf8b2cd72061eac5a4d247ba2fabdd8deafdea7",
-   "sha256": "1p6if6fvz6m7nnd7fl1j2dxg830ax06ln9wvm5anpsdky0lqwqyr"
+   "commit": "1c35e1693bbb7de41a8aac820a080a7299c13c17",
+   "sha256": "136j6gbpg8qx6ry1ryh4aal41b3c8pz7g2xisyipjj6p9lmykvqi"
   },
   "stable": {
    "version": [
@@ -40019,20 +40208,20 @@
   "repo": "sshaw/git-link",
   "unstable": {
    "version": [
-    20201124,
-    155
+    20201214,
+    2330
    ],
-   "commit": "151df174a662ae6711f26f160e7759ea014f1a3c",
-   "sha256": "1h28gn5bvjpxqapd66dzlf1gp1nwpd5iajvv2fbldmrlxrilrcz6"
+   "commit": "9a3e893751791b17db85d691444e50e346cb2bd3",
+   "sha256": "1jdgkjiv6pn2whim71fsyfady8lv180y56j9z6bfx3gg3pp2dcbd"
   },
   "stable": {
    "version": [
     0,
     8,
-    1
+    2
    ],
-   "commit": "9ac2ed9c73176b8bd014fdbb1c500f44fa02e7de",
-   "sha256": "1rs7r8ig6xg0r2gcbya0dgbhmwxrhijfz4z5ayw57c2wqq5p6np7"
+   "commit": "9a3e893751791b17db85d691444e50e346cb2bd3",
+   "sha256": "1jdgkjiv6pn2whim71fsyfady8lv180y56j9z6bfx3gg3pp2dcbd"
   }
  },
  {
@@ -40588,6 +40777,24 @@
   }
  },
  {
+  "ename": "gitignore-snippets",
+  "commit": "b1d03ee45e45fc6ec30936a5f4bd8b756728da31",
+  "sha256": "0mj0rrcd65py4w0ahy6l3yx6pmki2lqjhmi8hlxbjv0zzks71wy3",
+  "fetcher": "github",
+  "repo": "sei40kr/gitignore-snippets",
+  "unstable": {
+   "version": [
+    20201118,
+    1551
+   ],
+   "deps": [
+    "yasnippet"
+   ],
+   "commit": "0de6945ff0fc6943eebcf92d1cbb66b6a1d8fa60",
+   "sha256": "07qrlyb0n9h3r3b9lvqbd1fi97g3xb27836lgbdpphvvyw92975q"
+  }
+ },
+ {
   "ename": "gitignore-templates",
   "commit": "4c9aa71eac2e68eb1925ed00a2c659c4375bd39c",
   "sha256": "17zx52pmpd4yqlnj39v7ym728i710mdl0by3lc8zk6ljfz77933w",
@@ -40904,14 +41111,15 @@
   "url": "https://git.launchpad.net/global-tags.el",
   "unstable": {
    "version": [
-    20201204,
-    1812
+    20201215,
+    1900
    ],
    "deps": [
-    "async"
+    "async",
+    "project"
    ],
-   "commit": "5e7738524789d5b95498e3b88621a3877eef5c50",
-   "sha256": "0qw3zi42kgf73k5f41h6dgssa49qp4bpxvw404f7627k4bxjw700"
+   "commit": "8f46692749e05113d4d14870dd67c6efa06626c7",
+   "sha256": "1sjv3ydqv1gv2nqbdwywj52xc2b2ix9f8sjb14022v0bwywk3v2j"
   }
  },
  {
@@ -41140,11 +41348,11 @@
   "repo": "emacsorphanage/gnuplot",
   "unstable": {
    "version": [
-    20201207,
-    1056
+    20201223,
+    2347
    ],
-   "commit": "fbb15b630de35b8f1396db6f26e966e9996a5a4f",
-   "sha256": "153sqq9i0ry4949nc33gl9w95kl1xkzf75djspz3lgfhpcs1rsvq"
+   "commit": "df47e871f7fc2f2c53bfed96e5a315281806396d",
+   "sha256": "1lkkx5ir095ffbdwkvj036x7z0ypxhxd60y3r2y7jq6986mzllka"
   },
   "stable": {
    "version": [
@@ -41223,8 +41431,8 @@
   "repo": "deusmax/gnus-notes",
   "unstable": {
    "version": [
-    20201010,
-    1228
+    20201225,
+    1617
    ],
    "deps": [
     "async",
@@ -41235,14 +41443,14 @@
     "org",
     "s"
    ],
-   "commit": "0c87d6300e50124489f46577776319f8935612c8",
-   "sha256": "0vjgk9m0pw254ivpr1db6lzs4a5h820pja174vslzh7dbby4rjg5"
+   "commit": "08687b98403cc165d7d62ceea9d50480f12e7bfb",
+   "sha256": "07fl52djky3v3gigjdzsi79rlq9ddpiarrmzsbdp0wadp524d4n7"
   },
   "stable": {
    "version": [
     0,
-    3,
-    2
+    4,
+    0
    ],
    "deps": [
     "async",
@@ -41253,8 +41461,8 @@
     "org",
     "s"
    ],
-   "commit": "56403ee22242fd479c2aff85f4cf4133e32ca90a",
-   "sha256": "0g26ygcmbcmxbafvyw04xcqzg2dlava2rqa5m2lv0cxyi6rnvdhj"
+   "commit": "f34e5fc1077e2558e5059876d0a22b35331f7b93",
+   "sha256": "0nc1chp5h495v3bpbmi00f2wahr9c9p4y7gn6rdr1xx0gnl6v2gk"
   }
  },
  {
@@ -42056,11 +42264,11 @@
   "repo": "emacsorphanage/god-mode",
   "unstable": {
    "version": [
-    20200708,
-    2200
+    20201216,
+    2023
    ],
-   "commit": "f51c8f60e55393cced8cb0bd4a5bf0ab1612caa4",
-   "sha256": "03n6zhxbgqzlrwl7jkmw3d5b78z2yw3qk8xk20x3wk3j58g9kk0j"
+   "commit": "f6eb3428e6a17a97e6e9f0783ce17ced004b98c3",
+   "sha256": "0qjsyp488qqjn6vwzxy23aywhv8ckx797l2zah70d23zrf79qmxc"
   },
   "stable": {
    "version": [
@@ -42104,11 +42312,11 @@
   "repo": "minad/goggles",
   "unstable": {
    "version": [
-    20201205,
-    957
+    20201221,
+    1418
    ],
-   "commit": "a5c527fbf904bac1c73d8b823202ca1f8a0318c9",
-   "sha256": "02kc4vjkf15za7mbcaq60125w6qp2gdgy5jia82hhni2q4h76nvn"
+   "commit": "d6e584a2c9487d3df4aee818c43485e437cb87ef",
+   "sha256": "1mi5cnii7zbhzq6pyfaxsfixhilqmmx6v5milmkzwx6mwxxgjv87"
   }
  },
  {
@@ -42619,14 +42827,14 @@
     "magit-popup",
     "s"
    ],
-   "commit": "b59d258e04802f51b9c9e733f0febda6a7e1ffa4",
-   "sha256": "0cbm2bg7r19a8qgbqkpdnv5pdj8lrd0aklssv7lj0bwrm8330jna"
+   "commit": "1ec59a7c0002598c594fb58e03907d7ff0ca84b4",
+   "sha256": "0bz01ybpj1lk7g34n6wwy53aaa4jvs3xhsv50y34z5wvxa8ypdsj"
   },
   "stable": {
    "version": [
     0,
-    23,
-    1
+    24,
+    0
    ],
    "deps": [
     "dash",
@@ -42634,8 +42842,8 @@
     "magit-popup",
     "s"
    ],
-   "commit": "cfbe1d59b449be9b5378251bc6e52c65bc5e1cbd",
-   "sha256": "05f6i7v8v9g3w3cmz8c952djl652mj6qcwjx9iyl23h6knd1d9b1"
+   "commit": "1ec59a7c0002598c594fb58e03907d7ff0ca84b4",
+   "sha256": "0bz01ybpj1lk7g34n6wwy53aaa4jvs3xhsv50y34z5wvxa8ypdsj"
   }
  },
  {
@@ -43235,8 +43443,8 @@
     20200725,
     725
    ],
-   "commit": "91da46f29c455c3cd24b2a6b20ff2db2c4ce8cd6",
-   "sha256": "08bw5mllx3hsgz8b43dlqdqh2y8asw735623r174prhv84rnq1cq"
+   "commit": "7a37b76342ebcc30b08b1a6a7d8a043d7fede5b2",
+   "sha256": "0mcyj8g1d124zpif9m4x911d877fdf3hahdpp76grsvn2qpzq2az"
   },
   "stable": {
    "version": [
@@ -43367,20 +43575,20 @@
   "repo": "ROCKTAKEY/grugru",
   "unstable": {
    "version": [
-    20201116,
-    430
+    20201225,
+    638
    ],
-   "commit": "521d51a02a3fb76b01b35090ee102d0562cba0e4",
-   "sha256": "105gcz6wmli73s68ha1lqp66p9w8qqfzn190rylrzmwhnar4kkaq"
+   "commit": "5f1cffb6d5970988c49b89f29bfaf308f7dd8834",
+   "sha256": "09hn4ilvhh10sc1dypj1gpcyz07nli5lpbiazsx2gw61y2fgrc40"
   },
   "stable": {
    "version": [
     1,
-    14,
+    15,
     0
    ],
-   "commit": "ce3cc60a3ff3dc2fdc0e3edef7cc51fd4ccb3411",
-   "sha256": "0g8dz1p4gmd3lq8mjmpim5132l4wvc0r0aymiqffjcbmplsil3qx"
+   "commit": "e4ccfd416de6a5f70e3f1c718f773b9fa2e8e17a",
+   "sha256": "1gx1j5l0g7n706ri8rg20v6kkl393gbhh9wx8szzmcw0xjrawdzj"
   }
  },
  {
@@ -43423,14 +43631,14 @@
   "repo": "greduan/emacs-theme-gruvbox",
   "unstable": {
    "version": [
-    20200807,
-    855
+    20201224,
+    554
    ],
    "deps": [
     "autothemer"
    ],
-   "commit": "d4129a18e6cf476a472b4dc7dc12e8aafc17beca",
-   "sha256": "1yr8k4ymr8hinq4mrlxngsk39616p7k43n1brqww1xc84b4pvw00"
+   "commit": "46de195e194ebbd21a925c33db9d498c30c342af",
+   "sha256": "0xyysxn31xsbckxixi6cmz3yrws86cqycd5f9p06p2ahqh8xahxs"
   },
   "stable": {
    "version": [
@@ -43597,14 +43805,14 @@
   "repo": "tmalsburg/guess-language.el",
   "unstable": {
    "version": [
-    20201124,
-    1136
+    20201229,
+    1021
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "6aa88cf267593f85b63a770a890bb93f04dd53c2",
-   "sha256": "0nqqnvdchlflg01if4v5qrc214q8s8d1y02xkal627a0yy4lz2a2"
+   "commit": "afbc3456ebdfe4bb5f8754a91c8398f8b5b7636c",
+   "sha256": "1x0f3v98p6lxb31rgkv2a9kr5jqrmvpsa7nqr960s41rkyx4wvi6"
   }
  },
  {
@@ -43679,8 +43887,8 @@
   "repo": "alezost/guix.el",
   "unstable": {
    "version": [
-    20201025,
-    1644
+    20201222,
+    907
    ],
    "deps": [
     "bui",
@@ -43689,8 +43897,8 @@
     "geiser",
     "magit-popup"
    ],
-   "commit": "41fba4eec845e050be92bfe76c0f7980bbe821bd",
-   "sha256": "058s6nq1px7xzcq3mhyh3qfg81kcv579rnih9bha66jidxb7dggj"
+   "commit": "bb2a0539f8d68b2292b3d0f3174c139b4c304028",
+   "sha256": "1qf584slf4lqg4qgxj7vblmx0f0jgas03m5cc93a3wfkgkfm19w6"
   },
   "stable": {
    "version": [
@@ -43838,14 +44046,14 @@
   "repo": "abrochard/emacs-habitica",
   "unstable": {
    "version": [
-    20190721,
-    1620
+    20201210,
+    1933
    ],
    "deps": [
     "org"
    ],
-   "commit": "c45c602ddf9d6cbb0e3baf5cb3e1b7ef90f2759d",
-   "sha256": "0wgnzn3z98bl28jgqi7xklw9fwx2wwgihj3mq0jb8ah4vn70d0j3"
+   "commit": "eeb0209fd638192f0b833526deb222f9f61361cb",
+   "sha256": "10z24hh1g9bf00maiwkjs324da55qqzxrz196rzs53i8lkli0xkd"
   }
  },
  {
@@ -44304,11 +44512,11 @@
   "repo": "haskell/haskell-mode",
   "unstable": {
    "version": [
-    20201120,
-    755
+    20201230,
+    342
    ],
-   "commit": "0d39c847fddddc5b76fe3c706e34ab45439760bc",
-   "sha256": "1rbl2yalcipqp7k2161ygmrmy2dr96jlkyk35jqb5i143gyg59w2"
+   "commit": "3a019e65b504861d7ea23afbfecd14e5ef63e846",
+   "sha256": "011x9mp4ili0g9dq6ql33dq7xgv479di37phai0q282hkh5487q0"
   },
   "stable": {
    "version": [
@@ -44638,16 +44846,16 @@
   "repo": "emacs-helm/helm",
   "unstable": {
    "version": [
-    20201117,
-    815
+    20201228,
+    517
    ],
    "deps": [
     "async",
     "helm-core",
     "popup"
    ],
-   "commit": "75562eec4879e7f72119ceee40ab5087c705267e",
-   "sha256": "0d9jgp2pf61w52563dx84226gpskyp0j4rhw0fplcswm6fj0ggd3"
+   "commit": "830f03683d99a1e771277cac6f2a1110b8936334",
+   "sha256": "14bwzr1icv7px3din86z20vmcig0dm8dhhld6795cgbj9q99gmjf"
   },
   "stable": {
    "version": [
@@ -44952,16 +45160,16 @@
   "repo": "tmalsburg/helm-bibtex",
   "unstable": {
    "version": [
-    20200429,
-    1606
+    20201214,
+    2111
    ],
    "deps": [
     "bibtex-completion",
     "cl-lib",
     "helm"
    ],
-   "commit": "8d84d8beb3bfafaa060d7e956fcc569ecf010d9c",
-   "sha256": "1fnhi9dwq99jva3fmjknzlsklpm379ks8am7076xchv35609rgix"
+   "commit": "1bb81d77e08296a50de7ebfe5cf5b0c715b7f3d6",
+   "sha256": "1n5539hivg65gkr041mq8h96bn489fhvbxrh1manxacf6xi6b2am"
   },
   "stable": {
    "version": [
@@ -45122,15 +45330,15 @@
   "repo": "alphapapa/bufler.el",
   "unstable": {
    "version": [
-    20200409,
-    1253
+    20201216,
+    826
    ],
    "deps": [
     "bufler",
     "helm"
    ],
-   "commit": "d623605be961316be378ffcd1e97a85069f2f7cc",
-   "sha256": "0vysawxmzvdnk7s5i44644pvi5y6gxyvbnspn45vl8y0ifddv2g2"
+   "commit": "097f4349920215bdd829fceabc1afdbba172c32a",
+   "sha256": "1a4y3p7cwygw09b9f9j9m821aiyjiji55mrm83pvv0xzc9rhwd3h"
   },
   "stable": {
    "version": [
@@ -45566,14 +45774,14 @@
   "repo": "emacs-helm/helm",
   "unstable": {
    "version": [
-    20201019,
-    715
+    20201225,
+    1456
    ],
    "deps": [
     "async"
    ],
-   "commit": "75562eec4879e7f72119ceee40ab5087c705267e",
-   "sha256": "0d9jgp2pf61w52563dx84226gpskyp0j4rhw0fplcswm6fj0ggd3"
+   "commit": "830f03683d99a1e771277cac6f2a1110b8936334",
+   "sha256": "14bwzr1icv7px3din86z20vmcig0dm8dhhld6795cgbj9q99gmjf"
   },
   "stable": {
    "version": [
@@ -47519,8 +47727,8 @@
   "repo": "emacs-helm/helm-navi",
   "unstable": {
    "version": [
-    20200401,
-    904
+    20201220,
+    1823
    ],
    "deps": [
     "helm",
@@ -47528,8 +47736,8 @@
     "navi-mode",
     "s"
    ],
-   "commit": "9bba79119edd8959d26484326c2f6868b7d942c0",
-   "sha256": "136shiqwr7k95gqywrlqqykx1pgpvyjbfzggwj7q1akqjslxfffn"
+   "commit": "c5666cc171288d1fa892900ee66fba2a1c892c81",
+   "sha256": "1vs33n6fga8q4s129pl25bvbka5h0dalmbd8a92d92c9kmmb2m3q"
   }
  },
  {
@@ -47673,8 +47881,8 @@
     "org-multi-wiki",
     "org-ql"
    ],
-   "commit": "8c0f56703d301cef6c41feb65bf60cc0da1518cb",
-   "sha256": "0zq8h2bl4gcanqvq730iip93h37rmj1j1w916yqr8rn7wap4pgls"
+   "commit": "8e38e1f3c06593b729f6401b6413856efd0264f4",
+   "sha256": "1jrlngyvbgy6ra59krgdn9gbfpg0aznaaridd95xkr6z78ad1ql7"
   },
   "stable": {
    "version": [
@@ -47708,8 +47916,8 @@
     "org-ql",
     "s"
    ],
-   "commit": "1389ccb46be0db0252196f52ee1337dc65dc1a2a",
-   "sha256": "17smsqy5y2sk3sasgl8dn49nk6s2z8wpr6h1b8g7ds62vc61rz7l"
+   "commit": "208e103ecc146db71d878df3bd09c6eb60c2797d",
+   "sha256": "09vdndp3935iy4flynbjpkvfax7vs1ppswl19wx4nn2rp7hdz8kp"
   },
   "stable": {
    "version": [
@@ -47728,8 +47936,8 @@
   "repo": "alphapapa/org-recent-headings",
   "unstable": {
    "version": [
-    20201118,
-    737
+    20201213,
+    837
    ],
    "deps": [
     "dash",
@@ -47738,8 +47946,8 @@
     "org-recent-headings",
     "s"
    ],
-   "commit": "11430626f7d83b8eafbaf34bb5eeeff458035187",
-   "sha256": "1z2rad7rvh125a91z2xnwd3zslqs2v5bwhb8p0lvnw3b7z6qy91y"
+   "commit": "5da516a1586675992c0122ed32978c18dda06318",
+   "sha256": "1xnhahgs1q6y7w0rrc33qbkdagjm6q71a4i0msi4gsfnnzwn4vam"
   }
  },
  {
@@ -48062,16 +48270,16 @@
   "repo": "bbatsov/helm-projectile",
   "unstable": {
    "version": [
-    20201208,
-    1837
+    20201217,
+    908
    ],
    "deps": [
     "cl-lib",
     "helm",
     "projectile"
    ],
-   "commit": "e3d541c59505cd8c5843bbcf237c12e3d3288990",
-   "sha256": "171cykxdn38245fjphx9qx3zcdgrc5wvnp89bq53pvqjqk6b32d2"
+   "commit": "58123f14c392021714fc5d23b9f95c7f95ce07f1",
+   "sha256": "0w8267l136l9ci9b0rz0mshh8wcj7za9izvm64ks17lr8avm2his"
   },
   "stable": {
    "version": [
@@ -48460,20 +48668,20 @@
     "helm",
     "rtags"
    ],
-   "commit": "63a7d9b733def9fe76568f81321a65a450829575",
-   "sha256": "1nnjhfz7xm1ax38xkz0jvgzhfczlc4r9xlpzc24sisabkvlkivyw"
+   "commit": "39339388256df662d0084b4a094d03e52748f9e8",
+   "sha256": "0wp4mygsxzibra2p3m5rn9m0yd3fscd795k5xa0wxi5pwddv7dlg"
   },
   "stable": {
    "version": [
-    2,
-    38
+    3,
+    23
    ],
    "deps": [
     "helm",
     "rtags"
    ],
-   "commit": "9687ccdb9e539981e7934e768ea5c84464a61139",
-   "sha256": "1r6l7dgr2ch586zrdi5l8fhdj4qdva8ldz7cjvi2byc2pd2xs8rx"
+   "commit": "7169ed577d676690a3c6f0025b54e8477d80eacf",
+   "sha256": "1i94dizg3wvkvq8c2pf5bzkx8zwzcfi4p3l73c779y145bygssnq"
   }
  },
  {
@@ -48641,25 +48849,25 @@
   "repo": "emacs-helm/helm-selector",
   "unstable": {
    "version": [
-    20200808,
-    858
+    20201219,
+    1639
    ],
    "deps": [
     "helm"
    ],
-   "commit": "a1920a885830693dd9b1d6af3dd60f1915d976f4",
-   "sha256": "134rxm4zicn565k3q5q15iiqcvcyiq6lsvmsqr53ifjjbq8pd9y6"
+   "commit": "6a943b9952c749c2a83c284cfcf5b56f5f6622ad",
+   "sha256": "0msc8byspjd0ygpbnxkiv2g9qv5kxpcp2vh2sjg7yxrfbishj8hq"
   },
   "stable": {
    "version": [
     0,
-    3
+    5
    ],
    "deps": [
     "helm"
    ],
-   "commit": "a1920a885830693dd9b1d6af3dd60f1915d976f4",
-   "sha256": "134rxm4zicn565k3q5q15iiqcvcyiq6lsvmsqr53ifjjbq8pd9y6"
+   "commit": "7542a6dffe338db8109b0233e4d4c8f4b22354a0",
+   "sha256": "1cv659sqmrvk316fp7mjc58vvbcg1j6s2q4rwgqrpbyszrxl3i63"
   }
  },
  {
@@ -48886,6 +49094,36 @@
   }
  },
  {
+  "ename": "helm-switch-to-repl",
+  "commit": "55308cb8dbedc704ab78aa7e1b08b3f34e316118",
+  "sha256": "1kb8my50ay6g8i6iq5kg9pp6yar3xx7yhqj1q1xzjhlm00dbcr8a",
+  "fetcher": "github",
+  "repo": "emacs-helm/helm-switch-to-repl",
+  "unstable": {
+   "version": [
+    20201214,
+    1216
+   ],
+   "deps": [
+    "helm"
+   ],
+   "commit": "e6cae905c9d224bcca02437696afae7d6633c4a9",
+   "sha256": "1zwzpar34b98p0fiwy9q1bxrb67nv79pv9cz4kmyypclrmrhgqa2"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    1
+   ],
+   "deps": [
+    "helm"
+   ],
+   "commit": "e6cae905c9d224bcca02437696afae7d6633c4a9",
+   "sha256": "1zwzpar34b98p0fiwy9q1bxrb67nv79pv9cz4kmyypclrmrhgqa2"
+  }
+ },
+ {
   "ename": "helm-swoop",
   "commit": "7a4e84530b4607a277fc3b678fe7b34b1c5e3b4f",
   "sha256": "0dbn0mzzsjhpxh0dpxrrzqam9hl2sjsp1izq2qv3z11iv2hylzx4",
@@ -49766,11 +50004,11 @@
   "repo": "dgutov/highlight-escape-sequences",
   "unstable": {
    "version": [
-    20171117,
-    1237
+    20201214,
+    1730
    ],
-   "commit": "08d846a7aa748209d65fecead2b6a766c3e5cb41",
-   "sha256": "05mc3w1f8ykf80914a1yddw6j8cmh0h57llm07xh89s53821v2is"
+   "commit": "fae976568c04b6fe8a9f2d854c8fe23b357a6878",
+   "sha256": "1a1jcmfijipxl5frkbliav06qd0r5yb1l7a8w2gx33bc6q09yahx"
   }
  },
  {
@@ -50358,16 +50596,16 @@
   "repo": "narendraj9/hledger-mode",
   "unstable": {
    "version": [
-    20191012,
-    1046
+    20201212,
+    2121
    ],
    "deps": [
     "async",
     "htmlize",
     "popup"
    ],
-   "commit": "8206f3c5d8e5b9b084733879191ec3724b60494d",
-   "sha256": "16y3xb8kc4j72gv1d59g4jw21q53i474hiksa6dzxvxkzva4wzf9"
+   "commit": "bad680b33c2ca20a6088986a10735a5df3cb9996",
+   "sha256": "0vd2fn011l5iqi1ja8j3l0wq90wr70b8dk75mh3xrrl8jp55xwxl"
   }
  },
  {
@@ -50741,14 +50979,14 @@
   "url": "https://scm.osdn.net/gitroot/howm/howm.git",
   "unstable": {
    "version": [
-    20201015,
-    1133
+    20201231,
+    1042
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "ce77dfbb50815d55081b2462541954d11a76f308",
-   "sha256": "05z1473s63qjsn41y32zk9hli9mcy4nfx3iv79a6yl5yp4x0ivg6"
+   "commit": "c11a6b7ad3d683d2910572fa7f2a87ffdf503317",
+   "sha256": "0fjwgxaf7lzby6hz96xz9b97mv4vhczs14cq6j6vxygrkykafwam"
   }
  },
  {
@@ -51081,11 +51319,11 @@
   "repo": "humanoid-colors/emacs-humanoid-themes",
   "unstable": {
    "version": [
-    20201208,
-    1625
+    20201211,
+    1320
    ],
-   "commit": "d1d12a59daa4ba542854e9b59d73f1763219fb54",
-   "sha256": "1mxjx5ib5xzjmr0dbk0bsjr8mkxiq4yjwrhfah3xw7lm51j0d74n"
+   "commit": "5a2638b95f93ededa625187dee76946a60e7b9d4",
+   "sha256": "063vrr73zsvvfcsda5z8b7hpkhql2smbi40dp10nqsyih26f6ahh"
   }
  },
  {
@@ -51199,11 +51437,11 @@
   "repo": "Riyyi/emacs-hybrid-reverse",
   "unstable": {
    "version": [
-    20200830,
-    331
+    20201213,
+    1504
    ],
-   "commit": "a28044a1dc42920b5107986dadef8322877c3d81",
-   "sha256": "0fxybcmnrgfa0xyj562nng6ff6jm9dk78bwdc8vs6ffyccd6dmij"
+   "commit": "4c7a3813bc3fb8753de9edbc1d6296428d3a2601",
+   "sha256": "13lx5ghi939xx47d3plpznhrs4qlzsgicp8rcvm47li04j56db9h"
   }
  },
  {
@@ -51635,19 +51873,19 @@
   "repo": "oantolin/icomplete-vertical",
   "unstable": {
    "version": [
-    20201206,
-    759
+    20201213,
+    2230
    ],
-   "commit": "ef12199fdf53c4a0fe7691850e133dabba58b147",
-   "sha256": "04zfnjyy7v4acgh6bhkd71vmwhsghjncjyvn945jm6lx473k3j35"
+   "commit": "a4c65f213bd3d8be94fe8cb28ecf7ff3b44405d1",
+   "sha256": "02v190pb802vck7di39jyf5prvmfsgcxln8mgwsls2b4clx9da97"
   },
   "stable": {
    "version": [
     0,
-    2
+    3
    ],
-   "commit": "2c328a19f617b538986977a897d3af051ae7f355",
-   "sha256": "1bm02qd71r3j35b861rgbxkv3kcmg2458c70vwfaw9sjjba0ssng"
+   "commit": "a4c65f213bd3d8be94fe8cb28ecf7ff3b44405d1",
+   "sha256": "02v190pb802vck7di39jyf5prvmfsgcxln8mgwsls2b4clx9da97"
   }
  },
  {
@@ -51658,28 +51896,27 @@
   "repo": "plandes/icsql",
   "unstable": {
    "version": [
-    20201110,
-    512
+    20201219,
+    224
    ],
    "deps": [
     "buffer-manage",
     "choice-program"
    ],
-   "commit": "155051cc4122cc71e5b72c1e330b5115fe2dfde5",
-   "sha256": "04jrlkks3s3yri86vy3dk173yz76h4bnbk0vmby5lqpx2r1zvgh5"
+   "commit": "dbe4957b08b70e157a05a7d8db84a51aeb9400ca",
+   "sha256": "0rkby252cyj2dxs89qgifysk615wwr0cm4zdnmamyyqcwpc4c223"
   },
   "stable": {
    "version": [
     0,
-    0,
-    1
+    2
    ],
    "deps": [
     "buffer-manage",
     "choice-program"
    ],
-   "commit": "415cfb7473537ea5a0f156c35f4dce0d2c49d124",
-   "sha256": "078cgskyzdx6sbyry20p6f3y5idd8fi8jhgm5bcyrj626nkf60f2"
+   "commit": "f4d40c48f770df68540934a3dfabd07d0edc081c",
+   "sha256": "1j70rljhmzh6ixxbf4cj8qkjkkl4l2mlj45dqls3b5h6kzxwg5cy"
   }
  },
  {
@@ -52536,6 +52773,30 @@
   }
  },
  {
+  "ename": "imenu-extra",
+  "commit": "2ea763417b23f39519ea1bd333f407909293ebd9",
+  "sha256": "0w5w7pjh41xv1lwd157s4vk20w0hf3m2pl92kr0b2andrsakg783",
+  "fetcher": "github",
+  "repo": "redguardtoo/imenu-extra",
+  "unstable": {
+   "version": [
+    20201229,
+    1035
+   ],
+   "commit": "68b0aaaefc18b267e4e383df36a8dfb7448bc83c",
+   "sha256": "1mf8drn4acf0r2sjpprbjp4wv75jzy5j8b9p9snnj3991fk66yby"
+  },
+  "stable": {
+   "version": [
+    0,
+    0,
+    1
+   ],
+   "commit": "2bd6d28fa25ef8f9b477cad9d8d806ce9fbb9d52",
+   "sha256": "1qhpwdz3x7gd484db5x6gf777snxfpvk3f08dr0qbr5n1743qky7"
+  }
+ },
+ {
   "ename": "imenu-list",
   "commit": "86dea881a5b2d0458449f08b82c2614ad9abd068",
   "sha256": "092fsn7hnbfabcyakbqyk20pk62sr8xrs45aimkv1l91681np98s",
@@ -53094,11 +53355,11 @@
   "repo": "nonsequitur/inf-ruby",
   "unstable": {
    "version": [
-    20200826,
-    1458
+    20201228,
+    1237
    ],
-   "commit": "b0124578db09b64902c8ca981b02e74bec92ef36",
-   "sha256": "0ivk80x6sfns4c5s21sr4qrg1zysqq3s8rz2hx8s55f7jbq4k51w"
+   "commit": "1fc972ecda6a2155806d75d202481327703a0681",
+   "sha256": "0kv98g30kgfpyd0ghiclk17ac2y17j7bi77km59gdw5i1b5k1a27"
   },
   "stable": {
    "version": [
@@ -54170,6 +54431,21 @@
   }
  },
  {
+  "ename": "ispc-mode",
+  "commit": "9ab74e0895e879a54fe80eb3afccd1c4cd9ef70d",
+  "sha256": "09ljkivgfwxx2c24a8c1080rzlimf5bck4rp41lgc5pk02p0y9rd",
+  "fetcher": "github",
+  "repo": "Munksgaard/ispc-mode",
+  "unstable": {
+   "version": [
+    20201215,
+    852
+   ],
+   "commit": "722fdc45da2714f8fe0757968589cdb5ccacc8a0",
+   "sha256": "1lv15306wy34a1l3a2lq2y8lpzg1jna0rzdjbddhdanf2b0rhs83"
+  }
+ },
+ {
   "ename": "iss-mode",
   "commit": "ecc9f618b9f065f593b91c1c1221a550ab752bae",
   "sha256": "1my4vi1x07hg0dva97i685lx6m6fcbfk16j1zy93zriyd7z5plkc",
@@ -54300,11 +54576,11 @@
   "repo": "abo-abo/swiper",
   "unstable": {
    "version": [
-    20201110,
-    1021
+    20201218,
+    1222
    ],
-   "commit": "ae9b121b834a68d11f79ca27b1e5c8790149ba2f",
-   "sha256": "160qs77b4sama17h8lhq60my44qh4c9aj1qj9jk02n64jfn44fm6"
+   "commit": "d2891aab7b816aebf21ebd01ce33933a6ac6244f",
+   "sha256": "12bm5w073mgpj7kvk6596fnw8809nl6vkv288l7vvzx7iimaqzpl"
   },
   "stable": {
    "version": [
@@ -54331,8 +54607,8 @@
     "avy",
     "ivy"
    ],
-   "commit": "ae9b121b834a68d11f79ca27b1e5c8790149ba2f",
-   "sha256": "160qs77b4sama17h8lhq60my44qh4c9aj1qj9jk02n64jfn44fm6"
+   "commit": "d2891aab7b816aebf21ebd01ce33933a6ac6244f",
+   "sha256": "12bm5w073mgpj7kvk6596fnw8809nl6vkv288l7vvzx7iimaqzpl"
   }
  },
  {
@@ -54351,8 +54627,8 @@
     "cl-lib",
     "swiper"
    ],
-   "commit": "8d84d8beb3bfafaa060d7e956fcc569ecf010d9c",
-   "sha256": "1fnhi9dwq99jva3fmjknzlsklpm379ks8am7076xchv35609rgix"
+   "commit": "1bb81d77e08296a50de7ebfe5cf5b0c715b7f3d6",
+   "sha256": "1n5539hivg65gkr041mq8h96bn489fhvbxrh1manxacf6xi6b2am"
   },
   "stable": {
    "version": [
@@ -54550,6 +54826,40 @@
   }
  },
  {
+  "ename": "ivy-file-preview",
+  "commit": "545ee0661388b1535ea58b526cecdd06b30ad48d",
+  "sha256": "0svw9sdlblv4m0dylrlyr0rvddhj1kkrilf3316vqsngnrwqj3vp",
+  "fetcher": "github",
+  "repo": "jcs-elpa/ivy-file-preview",
+  "unstable": {
+   "version": [
+    20201127,
+    629
+   ],
+   "deps": [
+    "f",
+    "ivy",
+    "s"
+   ],
+   "commit": "402b4b915bc7daa14d16a48b47a2e453ce80dcd3",
+   "sha256": "0z1czcqdkdxn1c92fa640idacc8c1b9ykfk8r94d2174ki93jd9j"
+  },
+  "stable": {
+   "version": [
+    0,
+    4,
+    3
+   ],
+   "deps": [
+    "f",
+    "ivy",
+    "s"
+   ],
+   "commit": "4727ac0dd7906807c830e2abdd3e081812105ad6",
+   "sha256": "0ia0a38f3dfiqz96fc405ax472zyj92yn61qs9mpdz8ql3pv2dwb"
+  }
+ },
+ {
   "ename": "ivy-fuz",
   "commit": "578c150cb8f61058f8003554d372944a990d7a7d",
   "sha256": "1z7r4fw1kl4vnfd5n6d628xwqhlr1768yfpj55gg28bq5lfx725h",
@@ -54652,8 +54962,8 @@
     "hydra",
     "ivy"
    ],
-   "commit": "ae9b121b834a68d11f79ca27b1e5c8790149ba2f",
-   "sha256": "160qs77b4sama17h8lhq60my44qh4c9aj1qj9jk02n64jfn44fm6"
+   "commit": "d2891aab7b816aebf21ebd01ce33933a6ac6244f",
+   "sha256": "12bm5w073mgpj7kvk6596fnw8809nl6vkv288l7vvzx7iimaqzpl"
   },
   "stable": {
    "version": [
@@ -54689,6 +54999,38 @@
   }
  },
  {
+  "ename": "ivy-migemo",
+  "commit": "78f8c6a81e7e8428b125413148e6bfe64c8ec7bd",
+  "sha256": "0ri8l9rb605fx5hhnpkmyaqflz73n4jsmzb42fsspwg2rwjfyafl",
+  "fetcher": "github",
+  "repo": "ROCKTAKEY/ivy-migemo",
+  "unstable": {
+   "version": [
+    20201214,
+    307
+   ],
+   "deps": [
+    "ivy",
+    "migemo"
+   ],
+   "commit": "0f34245dae2f890c685be767e3dc2c24c65dfe28",
+   "sha256": "1d013v8nb83g1hkfc5vxf5y7m67fi8346xm912hyyy03871kb469"
+  },
+  "stable": {
+   "version": [
+    1,
+    1,
+    0
+   ],
+   "deps": [
+    "ivy",
+    "migemo"
+   ],
+   "commit": "fc4f44750466ba9385e3313c85adf83a8e55a1fa",
+   "sha256": "0lax72js89k5g007ra6ngy9gnphny4bgjggnl9d3j3mizw9cynvn"
+  }
+ },
+ {
   "ename": "ivy-mpdel",
   "commit": "bb25443752e18e47afc63d5497cc5052c388a607",
   "sha256": "1v9xiy4bs7r24li6fwi5dfqav8dfr3dy0xhj3wnzvcgwxp5ji56r",
@@ -54787,28 +55129,28 @@
   "repo": "tumashu/ivy-posframe",
   "unstable": {
    "version": [
-    20201124,
-    404
+    20201215,
+    39
    ],
    "deps": [
     "ivy",
     "posframe"
    ],
-   "commit": "08a00b81747c6b623dd1adc7491a1e2a4c3a3d2a",
-   "sha256": "123dmbdkad5dbsrgj75n6zpxrqzz5fbkqpa5il64zmlcq6jqy1kr"
+   "commit": "83047d440ff132d5a45acde5955f71853edeefb9",
+   "sha256": "03n1a9qzc53i3lx0ywayc2v8p0n4ydl7ly6niaj9dj15ik0nzxsp"
   },
   "stable": {
    "version": [
     0,
     5,
-    3
+    5
    ],
    "deps": [
     "ivy",
     "posframe"
    ],
-   "commit": "08a00b81747c6b623dd1adc7491a1e2a4c3a3d2a",
-   "sha256": "123dmbdkad5dbsrgj75n6zpxrqzz5fbkqpa5il64zmlcq6jqy1kr"
+   "commit": "83047d440ff132d5a45acde5955f71853edeefb9",
+   "sha256": "03n1a9qzc53i3lx0ywayc2v8p0n4ydl7ly6niaj9dj15ik0nzxsp"
   }
  },
  {
@@ -54826,8 +55168,8 @@
     "ivy",
     "prescient"
    ],
-   "commit": "5d139e5b1fe03ccaddff8c250ab8e9d795071b95",
-   "sha256": "11hqy8chh29lrzk04dp3rwkvf4bj0xvg9hli3w1zx968x98lfvj0"
+   "commit": "2af94ce194f9b8d7087f7b49ecd986083f7eb753",
+   "sha256": "19wwnl72gh4ar2q6gcp6k6n4gdvamdjj6lgc0n4mk7j1qrylp3hf"
   },
   "stable": {
    "version": [
@@ -54881,14 +55223,14 @@
   "repo": "Yevgnen/ivy-rich",
   "unstable": {
    "version": [
-    20201125,
-    433
+    20201224,
+    4
    ],
    "deps": [
     "ivy"
    ],
-   "commit": "c0a164ce42920df0629c87dad5ea1bddc79ceac3",
-   "sha256": "0x2q8gnj324rnpyryyas8b1b9sljsp7dgwhn9rv0kjn99j1vaphy"
+   "commit": "f8a1f5c90d2a113b597ef5903634c089fce3365b",
+   "sha256": "1bwp26b7m3zxl00ywav7qfwlszxms3z00w41k7nvb47a4s0cvffl"
   },
   "stable": {
    "version": [
@@ -54918,20 +55260,20 @@
     "ivy",
     "rtags"
    ],
-   "commit": "63a7d9b733def9fe76568f81321a65a450829575",
-   "sha256": "1nnjhfz7xm1ax38xkz0jvgzhfczlc4r9xlpzc24sisabkvlkivyw"
+   "commit": "39339388256df662d0084b4a094d03e52748f9e8",
+   "sha256": "0wp4mygsxzibra2p3m5rn9m0yd3fscd795k5xa0wxi5pwddv7dlg"
   },
   "stable": {
    "version": [
-    2,
-    38
+    3,
+    23
    ],
    "deps": [
     "ivy",
     "rtags"
    ],
-   "commit": "9687ccdb9e539981e7934e768ea5c84464a61139",
-   "sha256": "1r6l7dgr2ch586zrdi5l8fhdj4qdva8ldz7cjvi2byc2pd2xs8rx"
+   "commit": "7169ed577d676690a3c6f0025b54e8477d80eacf",
+   "sha256": "1i94dizg3wvkvq8c2pf5bzkx8zwzcfi4p3l73c779y145bygssnq"
   }
  },
  {
@@ -55275,14 +55617,14 @@
   "repo": "emacs-jp/japanese-holidays",
   "unstable": {
    "version": [
-    20201030,
-    1053
+    20201229,
+    755
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "a2075babc0c2158addeb6bec4fb4be604e75002c",
-   "sha256": "1n91ipgzxy36s96lv9w36wqcmlw2mjcm7rkj61z1infpgs6rm3v9"
+   "commit": "324b6bf2f55ec050bef49e001caedaabaf4fa35d",
+   "sha256": "1bxbxczsf0b7jiim2anjh16h243khyrcv4k07qg0yy8c9zrl18aq"
   }
  },
  {
@@ -55949,11 +56291,11 @@
   "repo": "Michael-Allan/Java_Mode_Tamed",
   "unstable": {
    "version": [
-    20201205,
-    2020
+    20201222,
+    2048
    ],
-   "commit": "c2a0d4aec1dfbc12a705dccb42d33259aef63690",
-   "sha256": "05hyjiskwki6ls2yfbjvs9qdy2d4zzkm9rhd5v4lpdpshdgdwj07"
+   "commit": "b028d48d22d72129b2b49d93298f65241de206fd",
+   "sha256": "1ky9vzvib9rp4k46n80hilff2yr5bg4ham1cx083nnaxshdw8n3b"
   }
  },
  {
@@ -55983,11 +56325,11 @@
   "repo": "SebastianMeisel/journalctl-mode",
   "unstable": {
    "version": [
-    20200607,
-    754
+    20201217,
+    1625
    ],
-   "commit": "e8e057f387266d1c11f8fb68023ceb9607404948",
-   "sha256": "1l9z0w8kb15vsfpwcl9rfhflmvy8illsssfqjxkcwl8d7pzfhm8n"
+   "commit": "c5bca1a5f42d2fe2a00fdf52fe480137ace971d3",
+   "sha256": "0m0d5kzw5cymnmnilm688dlkhh0g64d7qyv3nd6mxbgrii559v9r"
   },
   "stable": {
    "version": [
@@ -56128,8 +56470,8 @@
     20180807,
     1352
    ],
-   "commit": "9d9460b17f59e4e7a4e5cc34576ba72b2ca56524",
-   "sha256": "0hil53mzvxz71l908wm6804migvm7hm0nwm8qpyy2dgnfzl996hg"
+   "commit": "aa3175de7da5e1243dfd1ad9a17dcfe85740415e",
+   "sha256": "01z9nq0yp47qcps7c7jzrb1fmcx7qbhr7ig056sp20jq7yn9r3dy"
   },
   "stable": {
    "version": [
@@ -56319,24 +56661,24 @@
   "repo": "mooz/js2-mode",
   "unstable": {
    "version": [
-    20201209,
-    225
+    20201220,
+    1718
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "f7816bdd3e8e84ed1d64b6a13c9ba488363b7e91",
-   "sha256": "05j8m9bdljzscbl343aqqfcjxgvshrlygzqhd2wi8089mby7f59y"
+   "commit": "29979e5f3301796ba606759e39ee0b1b6a2a24f3",
+   "sha256": "1pvdzinxfd3b08d92cf5v0fk88dzlyw5r5g3hablh6gcfc9i57xx"
   },
   "stable": {
    "version": [
-    20190219
+    20201220
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "ed955e7f1608cfd2d2713129d65f5fd734842ae4",
-   "sha256": "0766bbr4piia9vfr4ivd2gwi8dxah654adv6h28ylz4q8xmfzm1b"
+   "commit": "f9564769e81c612b43f99802d6a2c5e6b1f8fca4",
+   "sha256": "00jy917cgp5xzfgs4m0spzlbqk8mg63layin8nxmn2647rfjnik4"
   }
  },
  {
@@ -56877,25 +57219,25 @@
   "repo": "shg/julia-vterm.el",
   "unstable": {
    "version": [
-    20201202,
-    845
+    20201223,
+    741
    ],
    "deps": [
     "vterm"
    ],
-   "commit": "d4d5c50f1542d1128e334d32ce385891e0dca7e2",
-   "sha256": "13qi16qlx860a32bfl4l68szfgphv1vr0cd2k151zvqhdsf7fach"
+   "commit": "06ee45bffb6e711278a7af5207899d2b4316706c",
+   "sha256": "1zwhbwm285gqy9bfhlaaa9wp3lz959i3d1s41msl70jxbrnjz7pw"
   },
   "stable": {
    "version": [
     0,
-    10
+    11
    ],
    "deps": [
     "vterm"
    ],
-   "commit": "f7b790a49e15644fd4f36795efa412c59e33e49b",
-   "sha256": "1bdhkcy6pr387wf3s13vd5gyy4dwwy8blfdpk83lf7hw7grqzph2"
+   "commit": "06ee45bffb6e711278a7af5207899d2b4316706c",
+   "sha256": "1zwhbwm285gqy9bfhlaaa9wp3lz959i3d1s41msl70jxbrnjz7pw"
   }
  },
  {
@@ -57096,14 +57438,14 @@
   "repo": "TxGVNN/emacs-k8s-mode",
   "unstable": {
    "version": [
-    20200803,
-    1549
+    20201215,
+    1656
    ],
    "deps": [
     "yaml-mode"
    ],
-   "commit": "bbceb256bf2b6a56c86aed5963102fb4898aadc9",
-   "sha256": "16ani1d8c9g3v1zpwxcczm5bjbkymd86i1adcvc9xcaz46v7sb3w"
+   "commit": "9d37e64b9bdc1778481687ca04e2ee5a96bc0474",
+   "sha256": "054pasvk5xspdndsc962z3d3z5jgpd28ysag5pxa8dfh3yz65vxq"
   },
   "stable": {
    "version": [
@@ -57387,28 +57729,28 @@
   "repo": "ogdenwebb/emacs-kaolin-themes",
   "unstable": {
    "version": [
-    20201206,
-    914
+    20201216,
+    717
    ],
    "deps": [
     "autothemer",
     "cl-lib"
    ],
-   "commit": "65e46afa01da61506d23c16266fa4065b25aec6d",
-   "sha256": "1k3l0yvhkwv0mjhb0z5bq187ixw7avsjf2hyqq46dn3lp1xm0wyv"
+   "commit": "5694f27f6e17bf2d840fa04728d392b5df77e20c",
+   "sha256": "1c5hdr654f012lj3ssxsavbnij0i109nykwcsgl2c2pb9yxqr5rw"
   },
   "stable": {
    "version": [
     1,
     6,
-    1
+    2
    ],
    "deps": [
     "autothemer",
     "cl-lib"
    ],
-   "commit": "1114a8d84b60eaf8cadb628a29e0eaf6b5906f69",
-   "sha256": "0hfwxbsq9hdascs2vp56yw86m0ha9148596gm27yiqm6di51l571"
+   "commit": "5694f27f6e17bf2d840fa04728d392b5df77e20c",
+   "sha256": "1c5hdr654f012lj3ssxsavbnij0i109nykwcsgl2c2pb9yxqr5rw"
   }
  },
  {
@@ -57600,11 +57942,11 @@
   "repo": "emacsorphanage/key-chord",
   "unstable": {
    "version": [
-    20160227,
-    1238
+    20201222,
+    2030
    ],
-   "commit": "72443e9ff3c4f1c3ccaced3130236801efde3d83",
-   "sha256": "15jfpysyydcvqlvdannxg2s4bh4i9z6i950fad1qlq43jfmq7k55"
+   "commit": "7f7fd7c5bd2b996fa054779357e1566f7989e07d",
+   "sha256": "18bmd510yksskf67hj7jzcqh8gaaf1ipq044k49469p5f8fhjy2l"
   },
   "stable": {
    "version": [
@@ -57721,11 +58063,11 @@
   "repo": "tarsius/keycast",
   "unstable": {
    "version": [
-    20201117,
-    1552
+    20201229,
+    1006
    ],
-   "commit": "16d9961d15536054632be1eff75fd0fb1a4420f8",
-   "sha256": "1g9arjdhdpvsw47ny9gi5k758ya37yza4mr0rhbf02yvrqyfsrgr"
+   "commit": "b02892ec77ef8b83c957652c7859422d6f46e051",
+   "sha256": "1ggl3k2h9y7nwhawpddl0mk9smm5bpq42fyp1pq64z67zrb4217l"
   },
   "stable": {
    "version": [
@@ -58156,19 +58498,17 @@
     20180702,
     2029
    ],
-   "commit": "e16794aa7d98f5b849222971f7a56fe8ab9a3d9c",
-   "sha256": "0chaxdwnbxwn0zx6w8bwx6sc3adb835rbppmbj1mdbj2hcx0zghd"
+   "commit": "e205c97ebd8e3cf4d432bc6e1a7e028ebe70f7d9",
+   "sha256": "1m171sjcckxca2fdcy32s5m488931dsmfbj81j9c7g92v8bw72hb"
   },
   "stable": {
    "version": [
     2,
     0,
-    0,
-    -1,
-    4
+    0
    ],
-   "commit": "d74461b200a2182581f229082b041a4c70a673cb",
-   "sha256": "0ymk105915prhmxw3nmmgr756hzxpxwds860x5aim8jjgxhky446"
+   "commit": "dedcb6bcabe3d8d6758dcee607e8c33b174d782b",
+   "sha256": "1v3iqh13lcn9jvw8ldymyp35j1k44wrqnhdmki220q940mar5cgz"
   }
  },
  {
@@ -58179,15 +58519,14 @@
   "repo": "stardiviner/kiwix.el",
   "unstable": {
    "version": [
-    20200714,
-    1357
+    20201231,
+    209
    ],
    "deps": [
-    "cl-lib",
     "request"
    ],
-   "commit": "cb3e2531a55b896b9b41f38f97a597c26433da8e",
-   "sha256": "077bng1mwnd1m8ji4a44aqly94d07k09grwk0j52kgxlhvv3p3di"
+   "commit": "1ea9239189d8c8687375f877e2b4966616001d6f",
+   "sha256": "0p72yl0h24j8snl630hyn7jqzqh7r1dqfiym6f2p5r0rlwwrrvq9"
   },
   "stable": {
    "version": [
@@ -58444,8 +58783,8 @@
   "repo": "abrochard/kubel",
   "unstable": {
    "version": [
-    20201111,
-    1534
+    20201223,
+    1730
    ],
    "deps": [
     "dash",
@@ -58453,8 +58792,8 @@
     "transient",
     "yaml-mode"
    ],
-   "commit": "746c990d05af22942136b8f9ebe91e40ec044cec",
-   "sha256": "0rh6m7zp4phq826lxy950hwc1z8p8f3hrjwyny0r8wvwvqw4iwdd"
+   "commit": "9b1aa4830a4470ff8f11ecc0bc80b5cdaee473fd",
+   "sha256": "1n1z8w2n7raxfmd4la2knzvs9vnprcdhxjlp21k6r757k75na3qn"
   },
   "stable": {
    "version": [
@@ -58479,15 +58818,15 @@
   "repo": "abrochard/kubel",
   "unstable": {
    "version": [
-    20200312,
-    1349
+    20201223,
+    1657
    ],
    "deps": [
     "evil",
     "kubel"
    ],
-   "commit": "746c990d05af22942136b8f9ebe91e40ec044cec",
-   "sha256": "0rh6m7zp4phq826lxy950hwc1z8p8f3hrjwyny0r8wvwvqw4iwdd"
+   "commit": "9b1aa4830a4470ff8f11ecc0bc80b5cdaee473fd",
+   "sha256": "1n1z8w2n7raxfmd4la2knzvs9vnprcdhxjlp21k6r757k75na3qn"
   },
   "stable": {
    "version": [
@@ -58741,16 +59080,16 @@
   "repo": "Deducteam/lambdapi",
   "unstable": {
    "version": [
-    20200929,
-    612
+    20201230,
+    859
    ],
    "deps": [
     "eglot",
     "highlight",
     "math-symbol-lists"
    ],
-   "commit": "75449aee4864f46dd75738206ce01ea6f54c1d7f",
-   "sha256": "0r1mrhvqs65a2v12ymp88viz6dybrrac4ym98g0alnmr19nqrq2d"
+   "commit": "5ca13281fc98741bddef6b500bbce34a0f7f44b6",
+   "sha256": "0qd2nyx7zjxw06qd885zlqghqg9d1pcm2yabiv3743akflpgcs6p"
   }
  },
  {
@@ -58857,26 +59196,25 @@
   "repo": "lassik/emacs-language-id",
   "unstable": {
    "version": [
-    20201109,
-    1105
+    20201217,
+    1633
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "61907b8a8d2ad99ba184ae9611b51dc2a48ac2c1",
-   "sha256": "0vp9mm9gvwpabz9vz14vji2wmg2wdbzysarffq3n1i6044axdqzn"
+   "commit": "3f0ad28202207c266bd8fc7904b224db69ceccf6",
+   "sha256": "0rc6hggdqpfvcq1kx6ghnzqzn7842331b0qfng42vmqn44mk9skx"
   },
   "stable": {
    "version": [
     0,
-    8,
-    1
+    10
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "61907b8a8d2ad99ba184ae9611b51dc2a48ac2c1",
-   "sha256": "0vp9mm9gvwpabz9vz14vji2wmg2wdbzysarffq3n1i6044axdqzn"
+   "commit": "3f0ad28202207c266bd8fc7904b224db69ceccf6",
+   "sha256": "0rc6hggdqpfvcq1kx6ghnzqzn7842331b0qfng42vmqn44mk9skx"
   }
  },
  {
@@ -58917,8 +59255,8 @@
   "repo": "mihaiolteanu/lastfm.el",
   "unstable": {
    "version": [
-    20201203,
-    640
+    20201212,
+    836
    ],
    "deps": [
     "anaphora",
@@ -58927,8 +59265,8 @@
     "request",
     "s"
    ],
-   "commit": "31e889476d2003da9a088848ca5212efceb31f7e",
-   "sha256": "0wp9j6ly3sylxzsbmx5nfj815wp2gxh8q5ka1xmfi2y1gy0vw3gp"
+   "commit": "276c30a16518e545c95b7d693bada3ec01ddd207",
+   "sha256": "1n58f9g5xgicmm9j3bdik1cpqcfs0pjrxqwnb1sfrck9c00482fk"
   },
   "stable": {
    "version": [
@@ -58954,15 +59292,15 @@
   "repo": "storvik/emacs-lastpass",
   "unstable": {
    "version": [
-    20200320,
-    2117
+    20201229,
+    2109
    ],
    "deps": [
     "cl-lib",
     "seq"
    ],
-   "commit": "ac472f844bd1e109c62479253cbc40bb5e50ed8f",
-   "sha256": "07bh7vkczzpmkbxxyyhn912b5rjm975a49y1bq08y4vd006zsq4x"
+   "commit": "2366de7824b6c5f8e9ec6811d219dc06794e8630",
+   "sha256": "065nbgcs2q8gqw8alfa6lbabma6vjsqzl4mfkfpzgk566dan2x1p"
   }
  },
  {
@@ -59157,14 +59495,14 @@
   "url": "https://git.sr.ht/~lthms/colorless-themes.el",
   "unstable": {
    "version": [
-    20200213,
-    2057
+    20201222,
+    1627
    ],
    "deps": [
     "colorless-themes"
    ],
-   "commit": "46d477ec5a367beb6c8e75e017ae2c3a31250136",
-   "sha256": "05c6ywzamnq1frmb8i07wjxrncl3fpkmns8dnc3v8si234gq3m72"
+   "commit": "92ae2775ac9ae2fd3d1172ffdf706e18db55963c",
+   "sha256": "06cp84bi3x33il119gfk8blikbqdmakvj7h64dr9crh0v11lg7ds"
   },
   "stable": {
    "version": [
@@ -59239,11 +59577,11 @@
   "repo": "conao3/leaf.el",
   "unstable": {
    "version": [
-    20201110,
-    1438
+    20201211,
+    412
    ],
-   "commit": "ef0bdd4c4b51e498ad20ded8db3bd81f57054966",
-   "sha256": "1x1192vs2gss5j0722bw296xsvs25f12m3faj26z5dsb8kiw7kgv"
+   "commit": "e0c4b7484ab6ee3bbf8413f620ccb99af4328d2f",
+   "sha256": "18vvl8a5s6n1kky31n0khnv89998gy9vfk5q58hkczfadc6nss76"
   },
   "stable": {
    "version": [
@@ -59283,14 +59621,14 @@
   "repo": "conao3/leaf-keywords.el",
   "unstable": {
    "version": [
-    20201204,
-    1545
+    20201225,
+    1406
    ],
    "deps": [
     "leaf"
    ],
-   "commit": "ef29ef0ba8e0168f14e5255491c1668673269a37",
-   "sha256": "04z5yir4anb0wnspya8gvcbyjb1qnwkhvb4k0dxivh5l35vr34v8"
+   "commit": "64c5ec702b7fab83770c539d613d8c6610ce510d",
+   "sha256": "0qzmnbn91g02g6vhilx081xz6n1360a3ri64rpzd8avcgmrkb1vr"
   },
   "stable": {
    "version": [
@@ -59481,11 +59819,11 @@
   "repo": "ledger/ledger-mode",
   "unstable": {
    "version": [
-    20200530,
-    1710
+    20201226,
+    1721
    ],
-   "commit": "805507fd6c14839be4efc7aee2017f9c03e36834",
-   "sha256": "1sil9kdkcb0r165qm8vpxll0ikfnm0cqjd3gmj8vi6k8n6awv9zv"
+   "commit": "9c418079c244bc984f01b48e2bf360ed764d3261",
+   "sha256": "1zwmkm6s52dh1vb0d6r845j160i98v2p002iwwhwk28m2v5adbj1"
   },
   "stable": {
    "version": [
@@ -59712,17 +60050,17 @@
  },
  {
   "ename": "leuven-theme",
-  "commit": "b09451f4eb2be820e94d3fecbf4ec7cecd2cabdc",
-  "sha256": "0pm5majr9cmj6g4zr7vb55ypk9fmfbvxx78mgmgignknbasq9g9a",
+  "commit": "c75a5db2c9724a513ad3f64fc138d8565d608eeb",
+  "sha256": "0468jbv04gwxhh9ag3yblzv1y1rxfr6yqr6dqfp11x6j8c910byr",
   "fetcher": "github",
   "repo": "fniessen/emacs-leuven-theme",
   "unstable": {
    "version": [
-    20201115,
-    1052
+    20201207,
+    2103
    ],
-   "commit": "dd56f8df0d134c40f93abcfd2382cfddd97c7cad",
-   "sha256": "0d466z7ggcgh8rhx7245jl7zf1cd1dmpg1z3kq46yxqai4wzvdxv"
+   "commit": "898c1426c29abbb1c86a715b1323669e30d4699e",
+   "sha256": "0ijd0p6k9c2va19wrp1kpj2x4bzyj3vh244ka8jdmsmwmqfmvb2z"
   },
   "stable": {
    "version": [
@@ -59775,8 +60113,8 @@
     20201007,
     2214
    ],
-   "commit": "f7c80281c7005ba5965a8fc410708c08119cfee6",
-   "sha256": "1k6zxyyq0ah3z3gicyxlhj95rnh1rylap33ff945y3h2nl32wlsi"
+   "commit": "75a30e55501ffc70712bc8176fe47eaf9ca1dbe6",
+   "sha256": "04ah4ps11lsmclisx2rfbgayznlw0c2blpdvy13b5c8ii7bqjccb"
   },
   "stable": {
    "version": [
@@ -59962,8 +60300,8 @@
    "deps": [
     "yasnippet"
    ],
-   "commit": "6014e9f4ce1fa2054309343f08bd6751620b56a5",
-   "sha256": "0mrcxczz6j7alpq3fb2fcs24pl4y54i6rm8ly8xb0ib1r98kp874"
+   "commit": "a729748b7d7f38a916fe61f23db6e7446c0a5e8f",
+   "sha256": "1kld7xg1kxb9mq1g20rzay5zdnjyaw4ss7xksr97qik018vf22y8"
   }
  },
  {
@@ -60364,8 +60702,8 @@
   "repo": "abo-abo/lispy",
   "unstable": {
    "version": [
-    20201109,
-    1728
+    20201226,
+    1746
    ],
    "deps": [
     "ace-window",
@@ -60374,8 +60712,8 @@
     "iedit",
     "zoutline"
    ],
-   "commit": "5c8a59ae7dd3dd342e7c86a8c0acdbd13e2989f3",
-   "sha256": "0738v9bp4dlxbwsnykvc35yh4dl4pvw25jl8srb7r3744ydvgyii"
+   "commit": "1ad128be0afc04b58967c1158439d99931becef4",
+   "sha256": "15an4nbpri49imvkbhhynsmczkzhl4i037r8hcg4mam3w5nw14y8"
   },
   "stable": {
    "version": [
@@ -60641,14 +60979,14 @@
   "repo": "sulami/literate-calc-mode.el",
   "unstable": {
    "version": [
-    20201025,
-    2003
+    20201214,
+    1221
    ],
    "deps": [
     "s"
    ],
-   "commit": "a50e897a816cb5580ad6ec867eeaae212e0e4798",
-   "sha256": "0z6y5f1rj28lbr30m6g4a9l6ahs66whi8861g4cx9xzhs84nwv5g"
+   "commit": "1cf4fa18731248c6519667c16a6832b616b2b86f",
+   "sha256": "19icc2c3s4jmn0i55dfllpvbwm6f3wmscfp8nrgini2wk89260jl"
   }
  },
  {
@@ -60788,11 +61126,11 @@
   "repo": "donkirkby/live-py-plugin",
   "unstable": {
    "version": [
-    20200709,
-    422
+    20201229,
+    139
    ],
-   "commit": "185da3530e3145b7fea7d15e33a8b581bbe3a111",
-   "sha256": "1w32nzp0ym16wsagj933595wic7x8iswgr0fwpv4hkagvcgbqzn2"
+   "commit": "40a5c9cef3ecae289fef73d76d0e3fd006051a21",
+   "sha256": "0dafnxqfhxmq4fkrxwalixxb0cmd3mgvx49jwvnmdcaghwxgr1jv"
   },
   "stable": {
    "version": [
@@ -60880,6 +61218,21 @@
   }
  },
  {
+  "ename": "ll-debug",
+  "commit": "6449c1e4a9fd8dffcfea6e7245220012d1098ccc",
+  "sha256": "16nywhy0628lx6jb6kw7526r1qzaha1daf9vr16dwnrajn6q4a0w",
+  "fetcher": "github",
+  "repo": "replrep/ll-debug",
+  "unstable": {
+   "version": [
+    20201211,
+    2010
+   ],
+   "commit": "f551a7e1d5ecd64608db744d0f0e24aa0b8645fe",
+   "sha256": "1d8m7pbfny0bkbaq609k1m8y5cd2lm0w1dnl53lls9ahyz60hdk4"
+  }
+ },
+ {
   "ename": "lms",
   "commit": "7d6c24152f88dad15ef9f304c0016a97ede71dab",
   "sha256": "1nksla9i7b4nmnzppyw6fq5kzh8jyqjfxn45g60c4mi2mn3p95a1",
@@ -60887,11 +61240,11 @@
   "url": "https://hg.serna.eu/emacs/lms",
   "unstable": {
    "version": [
-    20201011,
-    1051
+    20201214,
+    1852
    ],
-   "commit": "ee479b60f2a4a49389c5962021e897eb686e7c20",
-   "sha256": "08k0d3rbf00w7056bsbrk782iaji19vhfw9dy2s41dwcd4v1w4ql"
+   "commit": "e6dae7465423a5304d0e38e92625383d07fe6f52",
+   "sha256": "1axxfh96pl2s0c301ak1gjh10k744wafnza3qx4sqaxcka5f6hc9"
   }
  },
  {
@@ -60902,14 +61255,14 @@
   "repo": "daviderestivo/load-bash-alias",
   "unstable": {
    "version": [
-    20200106,
-    2015
+    20201229,
+    1711
    ],
    "deps": [
     "seq"
    ],
-   "commit": "999c613898085b37b9e16b60be1cbeaa9986d368",
-   "sha256": "1qhcx7c954q1liw3glhvbg5bph96j9bwf808g6l066n04xj5347i"
+   "commit": "7ff80e4507a1dd71865440cf009bfe0c33323fc2",
+   "sha256": "14rbsvyami7h7f5yjg731ppjv7fxp3aq8a9gpdzg61cilxv93dpj"
   }
  },
  {
@@ -61110,25 +61463,20 @@
   "repo": "sigma/logito",
   "unstable": {
    "version": [
-    20120225,
-    2055
-   ],
-   "deps": [
-    "eieio"
+    20201226,
+    534
    ],
-   "commit": "824acb89d2cc18cb47281a4fbddd81ad244a2052",
-   "sha256": "0jpyd2f33pk984kg0q9hxdl4615jb7sxsggnb30mpz7a2ws479xr"
+   "commit": "d5934ce10ba3a70d3fcfb94d742ce3b9136ce124",
+   "sha256": "0bnkc6smvaq37q08q1wbrxw9mlcfbrax304fxw4fx7pc1587av0d"
   },
   "stable": {
    "version": [
     0,
-    1
-   ],
-   "deps": [
-    "eieio"
+    2,
+    0
    ],
-   "commit": "824acb89d2cc18cb47281a4fbddd81ad244a2052",
-   "sha256": "0jpyd2f33pk984kg0q9hxdl4615jb7sxsggnb30mpz7a2ws479xr"
+   "commit": "d5934ce10ba3a70d3fcfb94d742ce3b9136ce124",
+   "sha256": "0bnkc6smvaq37q08q1wbrxw9mlcfbrax304fxw4fx7pc1587av0d"
   }
  },
  {
@@ -61502,15 +61850,15 @@
   "repo": "emacs-lsp/lsp-haskell",
   "unstable": {
    "version": [
-    20201011,
-    1941
+    20201210,
+    1702
    ],
    "deps": [
     "haskell-mode",
     "lsp-mode"
    ],
-   "commit": "4d85cb3693d893ec34d8a0be9794d468a0a28b7b",
-   "sha256": "1pz07l4iywvcfmgfymh8avz5lp0yirqxbrv14ncl8p6dv9yrfwyb"
+   "commit": "592e883026288677f4042333b51efc7a40b9a68a",
+   "sha256": "1dar5iapnx55z8875sr05p4b9nklmqdx6vfxhisy2hsgkp8iq8fc"
   }
  },
  {
@@ -61728,8 +62076,8 @@
   "repo": "emacs-lsp/lsp-metals",
   "unstable": {
    "version": [
-    20201123,
-    851
+    20201230,
+    706
    ],
    "deps": [
     "dap-mode",
@@ -61741,8 +62089,8 @@
     "lsp-treemacs",
     "treemacs"
    ],
-   "commit": "31dafff1ebcddb860567e9b0681731adf25b54e6",
-   "sha256": "0r2mhns4r58fcsyrb25610ayzll9qhza9rfjh3cz7kl6dzvpwv2l"
+   "commit": "c76eeb6b580fadf6a16357be8c22c197d22574fd",
+   "sha256": "0r1sihiximsgjf7dyh9rndxwy26d5kfz04y13b0gq2lhvrgjbbkv"
   },
   "stable": {
    "version": [
@@ -61771,8 +62119,8 @@
   "repo": "emacs-lsp/lsp-mode",
   "unstable": {
    "version": [
-    20201209,
-    735
+    20201231,
+    1252
    ],
    "deps": [
     "dash",
@@ -61783,8 +62131,8 @@
     "markdown-mode",
     "spinner"
    ],
-   "commit": "597febf55bffd5b30e3fac58ede4d0fe1f297f1a",
-   "sha256": "02agyi2599brzp3z936x0nwj8ylk0cackbq78dghnyrvm2438vri"
+   "commit": "51138a029cd2cb5b530ab0e98030e24b830da943",
+   "sha256": "0l8y3ypb8sl96vqrn8za1bdkkj1w1ip8nya75iqj4h0gcmcdw04z"
   },
   "stable": {
    "version": [
@@ -61940,8 +62288,8 @@
     "ht",
     "lsp-mode"
    ],
-   "commit": "d9e7d3cf1bdc8ee0395c8df4408b05ee3ba9c22a",
-   "sha256": "092ivkhyhqwyzf94k8bjzykzx28lazyipi8ghz4lbkc57wwmjx39"
+   "commit": "71ff088ac4c93b0edd012f305a3dfd1602c5d21e",
+   "sha256": "03fgw10fq1s98xrmfzg8y9xv14yig3lgjc44x7mvlc5awsmv5lxa"
   }
  },
  {
@@ -62034,8 +62382,8 @@
   "repo": "emacs-lsp/lsp-treemacs",
   "unstable": {
    "version": [
-    20201208,
-    932
+    20201230,
+    2214
    ],
    "deps": [
     "dash",
@@ -62045,8 +62393,8 @@
     "lsp-mode",
     "treemacs"
    ],
-   "commit": "642e922e16fd2b2c3cc075d7cba68448f1aaa006",
-   "sha256": "1c7w7p0xczaliq8snryi2rwhnvm6qg0yqrkjkpwsr6smami7g31b"
+   "commit": "64e375fcc700d4d47cf52ad912e6863d479e3bfa",
+   "sha256": "19wy4xk0ll8pxdyq74a0zjlqkssc6ww21ac79zihndv90604c5km"
   },
   "stable": {
    "version": [
@@ -62082,8 +62430,8 @@
     "lsp-mode",
     "markdown-mode"
    ],
-   "commit": "49bc5134c15d92b866c389c16e8e551a9285961a",
-   "sha256": "0if4rkpym0zp44m4hrw24yzg6wzrpz7nvvgqq2s1limjjsw1rzk1"
+   "commit": "72034bdd65f66b43d10e6106e82dfa4718557e1a",
+   "sha256": "0dz2rz6fl87yr2jj324b8v1kw0kr4021lj245l60nqy5pnj7gz2y"
   },
   "stable": {
    "version": [
@@ -62527,8 +62875,8 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20201207,
-    1723
+    20201225,
+    4
    ],
    "deps": [
     "async",
@@ -62537,8 +62885,8 @@
     "transient",
     "with-editor"
    ],
-   "commit": "9e9f7cb3d260bd14e15307831a2820112c9a77ac",
-   "sha256": "1snbjfp35znmpa02mq0g75b24if74717f1lbij2h634pm7l5ndi1"
+   "commit": "2fb44690b4de28ada77571b1a7acabbe7718fdbd",
+   "sha256": "1l6pl8wy1k9ywk45ywyjc11gbm6bjh8g3z1sd3bar21381dnm0w8"
   },
   "stable": {
    "version": [
@@ -62884,8 +63232,8 @@
     "libgit",
     "magit"
    ],
-   "commit": "9e9f7cb3d260bd14e15307831a2820112c9a77ac",
-   "sha256": "1snbjfp35znmpa02mq0g75b24if74717f1lbij2h634pm7l5ndi1"
+   "commit": "c5e11811197ef8c667a605e5d9dd8ec77247bd13",
+   "sha256": "0i4la1sncgn2hgpgd26x0igc90q4c4jkgkng8la96hjaw09qsv23"
   }
  },
  {
@@ -63033,14 +63381,14 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20201201,
-    1702
+    20201221,
+    2057
    ],
    "deps": [
     "dash"
    ],
-   "commit": "9e9f7cb3d260bd14e15307831a2820112c9a77ac",
-   "sha256": "1snbjfp35znmpa02mq0g75b24if74717f1lbij2h634pm7l5ndi1"
+   "commit": "2fb44690b4de28ada77571b1a7acabbe7718fdbd",
+   "sha256": "1l6pl8wy1k9ywk45ywyjc11gbm6bjh8g3z1sd3bar21381dnm0w8"
   },
   "stable": {
    "version": [
@@ -63695,9 +64043,7 @@
     1106
    ],
    "deps": [
-    "git",
     "github-clone",
-    "magit",
     "org"
    ],
    "commit": "d65dbaa329ecf931f4142be72862972ea6a24e63",
@@ -63831,11 +64177,11 @@
   "repo": "minad/marginalia",
   "unstable": {
    "version": [
-    20201209,
-    619
+    20201230,
+    1926
    ],
-   "commit": "31ba78b6c65be172aae2dde9bc0e6e91e229b082",
-   "sha256": "0f5ifm31zis7jh6r7a0jj8p439l1j2lh4hmn9ll08kms5almlbr6"
+   "commit": "3c8042845c62b565c211e11d54defa093153b715",
+   "sha256": "0vl1hb1drchqzxbvf6iil1q6sg6qw9yq8163jaz0cw5rjzjjafb2"
   }
  },
  {
@@ -63861,26 +64207,25 @@
   "repo": "plandes/mark-thing-at",
   "unstable": {
    "version": [
-    20200427,
-    1453
+    20201219,
+    231
    ],
    "deps": [
     "choice-program"
    ],
-   "commit": "a69696635616c10184a3289d459d8eb532f04f47",
-   "sha256": "0iiwa5cv43177irm4kj9jzfr1jzkw0gw0rmy9vnnbggfgmklzxrq"
+   "commit": "a622d128afc8d2d67de897666a1e2eccba8d7818",
+   "sha256": "1zb0ynwficxninyw89z53qf78s1ns60nh4cyzk96m05jlcaa1s44"
   },
   "stable": {
    "version": [
     0,
-    0,
-    2
+    3
    ],
    "deps": [
     "choice-program"
    ],
-   "commit": "a69696635616c10184a3289d459d8eb532f04f47",
-   "sha256": "0iiwa5cv43177irm4kj9jzfr1jzkw0gw0rmy9vnnbggfgmklzxrq"
+   "commit": "a622d128afc8d2d67de897666a1e2eccba8d7818",
+   "sha256": "1zb0ynwficxninyw89z53qf78s1ns60nh4cyzk96m05jlcaa1s44"
   }
  },
  {
@@ -63944,11 +64289,11 @@
   "repo": "jrblevin/markdown-mode",
   "unstable": {
    "version": [
-    20201115,
-    635
+    20201220,
+    253
    ],
-   "commit": "dcad5572a30fce51b97963d3c869cce227c223a1",
-   "sha256": "1c8c6lwmpysg8l1lvsyg0f0h65kkcdmijk2500xh2s0fhbbjb2s0"
+   "commit": "e250a8465f805644d372c264eb0572f569d7f2a1",
+   "sha256": "0ffx65gq10i56bxcg4baffrhr2xj5vk1051cljvzlffcq56hx98g"
   },
   "stable": {
    "version": [
@@ -64209,30 +64554,26 @@
   "repo": "sigma/marshal.el",
   "unstable": {
    "version": [
-    20180124,
-    1239
+    20201223,
+    1853
    ],
    "deps": [
-    "eieio",
-    "ht",
-    "json"
+    "ht"
    ],
-   "commit": "f038689cbd5b3680b80b44edd0c7a63ca3038e26",
-   "sha256": "1n79im1r7h1ilvppn9alqwl96zhyxbm5hk7kbmqh022dggw0cx15"
+   "commit": "490496d974d03906f784707ecc2e0ac36ed84b96",
+   "sha256": "13yf61sw5rmqb8dshk1v9j348jkdfqql55dqvs9srb3ypj8b02v9"
   },
   "stable": {
    "version": [
     0,
-    8,
-    2
+    9,
+    1
    ],
    "deps": [
-    "eieio",
-    "ht",
-    "json"
+    "ht"
    ],
-   "commit": "d714219aeb388ded88582c47940f2c6febae333c",
-   "sha256": "1mr5p2yiad1k15byrlk0a784kj7rvibpn4li5phk4rnm0zg1xy9s"
+   "commit": "490496d974d03906f784707ecc2e0ac36ed84b96",
+   "sha256": "13yf61sw5rmqb8dshk1v9j348jkdfqql55dqvs9srb3ypj8b02v9"
   }
  },
  {
@@ -64297,19 +64638,39 @@
   "repo": "cpaulik/emacs-material-theme",
   "unstable": {
    "version": [
-    20201116,
-    1613
+    20201224,
+    916
    ],
-   "commit": "bd5b244715a2232fe016efb691425e12a2e3e108",
-   "sha256": "0rgvfaplcf1riqxv7kyjs4chhmqk9hppiqrv25fmvi6rmm6cw2a8"
+   "commit": "67a496c937542f6ee7c4a2164d23f0296ef3a645",
+   "sha256": "14n0s4yn76b7a0qifabp1lp9g0zq82xwahz1wb5wfyfc3d0px9ck"
   },
   "stable": {
    "version": [
     1,
-    3
+    4
+   ],
+   "commit": "67a496c937542f6ee7c4a2164d23f0296ef3a645",
+   "sha256": "14n0s4yn76b7a0qifabp1lp9g0zq82xwahz1wb5wfyfc3d0px9ck"
+  }
+ },
+ {
+  "ename": "math-preview",
+  "commit": "23d52ef76491c4f674e5a40dec1af1bf096e2a35",
+  "sha256": "1l80shb16vdmpyhnvi4n0xvkbfvkxrjx7mgv0agyrvdac35db3ii",
+  "fetcher": "gitlab",
+  "repo": "matsievskiysv/math-preview",
+  "unstable": {
+   "version": [
+    20201213,
+    646
+   ],
+   "deps": [
+    "dash",
+    "dash-functional",
+    "s"
    ],
-   "commit": "2710e61ecee1bbec943538305c26af4fe4fca68a",
-   "sha256": "1qg59w216iv1yk594xjgazfqx5qhw3jgjqf32pcwwbkcnyj5f6zw"
+   "commit": "61554599f839a6d00cd4037d373bfde7b280c1c3",
+   "sha256": "0mrrb5wf3drpd5ywacq3bj2kcvsijysb37p5asz5pmdpg8s8nr6v"
   }
  },
  {
@@ -64441,15 +64802,15 @@
   "repo": "sasanidas/maxima",
   "unstable": {
    "version": [
-    20201207,
-    2204
+    20201226,
+    1538
    ],
    "deps": [
     "s",
     "test-simple"
    ],
-   "commit": "878132db3c9e0b5675888eedece1c7aa4246df43",
-   "sha256": "1a24hdnxlic5c473szvj2ard3sl3lm9g5p2x5xqk7pymqj72nan4"
+   "commit": "1600cfc059a80ed8fa0d381b88f29ba658811cc5",
+   "sha256": "030sg31xh46vrmsafvn04sdvyv4vzqf8rf5ghrlina1gav6kybfd"
   },
   "stable": {
    "version": [
@@ -64879,15 +65240,16 @@
   "repo": "DogLooksGood/meow",
   "unstable": {
    "version": [
-    20200727,
-    851
+    20201231,
+    748
    ],
    "deps": [
     "cl-lib",
-    "dash"
+    "dash",
+    "s"
    ],
-   "commit": "c9296491e923a678ac9a42a2743f21ce1e0552c4",
-   "sha256": "00636in9cgcnij1sz6vj5y5vijdd13g5akwj1facf0v4lrlvacpn"
+   "commit": "9d745c8336a39dc1bd47aec4b3f9d2c034a0574f",
+   "sha256": "0s306wwns2zzpbw1008ga224mncc55jdbd31v9qp147wsnhd11s3"
   }
  },
  {
@@ -64901,8 +65263,8 @@
     20191025,
     851
    ],
-   "commit": "3dd8eec9cb1f66811e8b3db3e492a2f4b5ea51bc",
-   "sha256": "1w3ypkzg3vp76ab4l1gm4g333f5bniarbc80mslam0jmwswr83z1"
+   "commit": "47ebe5e6186e70584ef5f92c9191bd7bbcb6c1da",
+   "sha256": "1vinlgqljdsv91dd5briak2v747fbml72xdgr859j6v514hap2rz"
   },
   "stable": {
    "version": [
@@ -65039,6 +65401,47 @@
   }
  },
  {
+  "ename": "metal-archives",
+  "commit": "6415e204d910ffb09faca4cf190989bebbecc730",
+  "sha256": "0vwq2qdnq1vvmsgxzhyxbgx7rf53yjxwh6nwbpjva5ipxf21j0ci",
+  "fetcher": "github",
+  "repo": "seblemaguer/metal-archives.el",
+  "unstable": {
+   "version": [
+    20201214,
+    1027
+   ],
+   "deps": [
+    "alert",
+    "ht",
+    "request"
+   ],
+   "commit": "a7602a32e7fd3c7779bc5b5c5e398ea31713ee45",
+   "sha256": "0s7lzhnafw98447kgpwimlmvfwqaaljvnqwvqppgkqglk551lmd4"
+  }
+ },
+ {
+  "ename": "metal-archives-shopping-list",
+  "commit": "1541b23e96898b11d24a309a69a732a88d99212b",
+  "sha256": "0lhq6lz1gnl8jgci28hc4nf7bdkrh94ni1xfjbd825rf7mg21n80",
+  "fetcher": "github",
+  "repo": "seblemaguer/metal-archives.el",
+  "unstable": {
+   "version": [
+    20201229,
+    949
+   ],
+   "deps": [
+    "alert",
+    "ht",
+    "metal-archives",
+    "org-ml"
+   ],
+   "commit": "a7602a32e7fd3c7779bc5b5c5e398ea31713ee45",
+   "sha256": "0s7lzhnafw98447kgpwimlmvfwqaaljvnqwvqppgkqglk551lmd4"
+  }
+ },
+ {
   "ename": "metalheart-theme",
   "commit": "204dd67b24bf4f2305a14efb925c8fe004026694",
   "sha256": "1xqql1mcwp52plm1gp6q4m9zij2w360y15lnjsz9xgjqvslr7gy5",
@@ -65243,14 +65646,14 @@
   "repo": "yoshinari-nomura/mhc",
   "unstable": {
    "version": [
-    20201113,
-    3
+    20201227,
+    406
    ],
    "deps": [
     "calfw"
    ],
-   "commit": "33d8ca1a1beb2b63e720e17525bdda3cc878e5ed",
-   "sha256": "1786r9jfxdsnbb7icy0ndg28p8srkr6mn3zs2r7iibr2ysk3rjvp"
+   "commit": "1cd9cbc7f8cfe40833d1af726644ae45a3d07dc0",
+   "sha256": "1cm7y1nfbl8625rpk5i9zcmp9p6rzqdzxy9wcjs8yrdfsc0biq3q"
   },
   "stable": {
    "version": [
@@ -65426,11 +65829,11 @@
   "repo": "muffinmad/emacs-mini-frame",
   "unstable": {
    "version": [
-    20201113,
-    838
+    20201223,
+    1013
    ],
-   "commit": "31380e7688c5e82965f72e5707cbff3ec2712ba9",
-   "sha256": "1a5vyff17lj3f6xkzkp8fy0dli1w5dnp0bvm6cppjp3x1gnj7aj2"
+   "commit": "0912cf4f500403be32735bc50e331fd06910471f",
+   "sha256": "1hnhgx1nyhj814dlcg8mgijnfh30a5vzzinivh2ywgr151wv3b9w"
   }
  },
  {
@@ -65456,14 +65859,14 @@
   "repo": "kiennq/emacs-mini-modeline",
   "unstable": {
    "version": [
-    20200801,
-    1554
+    20201221,
+    1825
    ],
    "deps": [
     "dash"
    ],
-   "commit": "a4455fb70c6b4062c63ce61af09d2af99683b492",
-   "sha256": "0bwlx937hx11d4mj5cqp5rg7dh02499z85irgaylwvnsnx5sbni4"
+   "commit": "7dcd0ab81bb7c298377708061176f5c5a50f77db",
+   "sha256": "1bik23ci0h9gki7ysw7r5wj5z9ib56167qzk7sac2wqw9xmi8dbb"
   },
   "stable": {
    "version": [
@@ -66023,28 +66426,20 @@
   "repo": "sigma/mocker.el",
   "unstable": {
    "version": [
-    20150917,
-    154
-   ],
-   "deps": [
-    "eieio",
-    "el-x"
+    20201223,
+    658
    ],
-   "commit": "6a1d7c9189bd721debd1a60707526e43a733f537",
-   "sha256": "0i96fn5ji1z78in4nr316sgfp2mc8lmxijslw3k9q1v50j91bcya"
+   "commit": "5d739d5170ff42e841cd2755b68151918052da2b",
+   "sha256": "1dc514cqbfmg33sb3j90s5jmw6jnm3wzvs0zhw3maz13bp7w6z48"
   },
   "stable": {
    "version": [
     0,
-    3,
-    1
-   ],
-   "deps": [
-    "eieio",
-    "el-x"
+    5,
+    0
    ],
-   "commit": "55b078b53ea49e48bd1821d96f0fb86f794fdc6c",
-   "sha256": "1lav7am41v63xgavq8pr88y828jmd1cxd4prjq7jlbxm6nvrwxh2"
+   "commit": "5d739d5170ff42e841cd2755b68151918052da2b",
+   "sha256": "1dc514cqbfmg33sb3j90s5jmw6jnm3wzvs0zhw3maz13bp7w6z48"
   }
  },
  {
@@ -66252,11 +66647,11 @@
   "repo": "protesilaos/modus-themes",
   "unstable": {
    "version": [
-    20201209,
-    847
+    20201231,
+    1237
    ],
-   "commit": "50c926dd2f94a1ef95e2b7763ff25b1b51452f7a",
-   "sha256": "03ismi6m336fga3qp93nxipaf53bdzqzn7ad1v5ak5zhvyp2j0xi"
+   "commit": "cc61cc3d034f87a6a7a0dd6266c11c5c79d97981",
+   "sha256": "1ldj36rp2mjcblawvgq2xxx48bmpvy4j6ny3gwgrqj4ggjjmqjv3"
   },
   "stable": {
    "version": [
@@ -66375,14 +66770,14 @@
   "repo": "jpablobr/emacs-monkeytype",
   "unstable": {
    "version": [
-    20201208,
-    1918
+    20201221,
+    1355
    ],
    "deps": [
-    "async"
+    "quick-peek"
    ],
-   "commit": "919b24f3b18d70be8c43e792a4e81476d76166cc",
-   "sha256": "0fgdx8zm6lbp8dn9wrfgpm146h7p1hmz0r32mwb5y9wvwkglvqla"
+   "commit": "8a01436eda0f2174c0174af097591de76eda4d1b",
+   "sha256": "11p91p1w84rbvgvb8f9xj3r2nnr34i9ka5hvz82ri4cfx1hwr9hk"
   },
   "stable": {
    "version": [
@@ -66405,11 +66800,11 @@
   "repo": "ananthakumaran/monky",
   "unstable": {
    "version": [
-    20190619,
-    1637
+    20201226,
+    1950
    ],
-   "commit": "9d379a2306a8b7cd9c4faba20490480acdc1d763",
-   "sha256": "0dvywqas1vx0f0qlly8259772zj64sygv3hnmm9yqzy4v725qbhp"
+   "commit": "e04632277ef24acacc029ae29db1fadc458ae83b",
+   "sha256": "0xzn9fgxvbpgx5wky8vdhd3bw7hy6h6hngx7l8a0qspg560r7hz1"
   },
   "stable": {
    "version": [
@@ -66473,11 +66868,11 @@
   "repo": "oneKelvinSmith/monokai-emacs",
   "unstable": {
    "version": [
-    20200918,
-    1348
+    20201229,
+    1001
    ],
-   "commit": "791baae69b02ee007cde779a80abc1a6b5962cf7",
-   "sha256": "00r5i98lplsra7fwrvir9pr7mbc1kia0xlmrlgs0vmn4bhxa2fpc"
+   "commit": "c5a7978bfc2ad2aa90882e6b2583668dc7b3e1a5",
+   "sha256": "0p22mfb84ja35v52v4x5inzndcl1ac3g9vvl3s2m5zq68ljy2p18"
   },
   "stable": {
    "version": [
@@ -66731,10 +67126,10 @@
  },
  {
   "ename": "most-used-words",
-  "commit": "5c240664b29e0e455d3d2503381b9db1ed0ea20f",
-  "sha256": "1129wbn7myzqijzcs1bsy3fh6iizijfpkpa1mw6j9s618anj282p",
-  "fetcher": "git",
-  "url": "https://github.com/udyantw/most-used-words.git",
+  "commit": "934e64df7fba95b6dc06e76382013dc4a9ced82f",
+  "sha256": "0dbjhqf5jxmicwl9allsr2vhqp4z6gkrwkdmnyphvn1kgr01kmjj",
+  "fetcher": "github",
+  "repo": "udyantw/most-used-words",
   "unstable": {
    "version": [
     20200808,
@@ -66943,8 +67338,8 @@
     20200822,
     1229
    ],
-   "commit": "91cc1e19ef34aeb12888b697fefa52907f1a834d",
-   "sha256": "17dxx75z5fqvv0ams0mbj6p0wgjn4dnx61i9zljbg6l2fxbd7mwx"
+   "commit": "9ba59b64d53365c1fe93c1c245b4ec3e35bdadf0",
+   "sha256": "07fmvwlv77za6k67myfn297hx44j8dn47xsx8mw8xaw5gpin6d3c"
   },
   "stable": {
    "version": [
@@ -67477,27 +67872,27 @@
   "repo": "lordpretzel/mu4e-views",
   "unstable": {
    "version": [
-    20200830,
-    1608
+    20201229,
+    216
    ],
    "deps": [
     "ht",
     "xwidgets-reuse"
    ],
-   "commit": "af3916b2639a5a94676d4f11471e25b63ba76d0a",
-   "sha256": "1h0anxs5xammkjky1syy9ja8xgskbf3j7a8hf12ggmihk9qa1dvk"
+   "commit": "55e5467a25d424b2c10b5392e68b370164efa230",
+   "sha256": "1gagaxpb4psshs8x61icilx4576al2qjs612d65ss857gfmzachi"
   },
   "stable": {
    "version": [
     0,
-    4
+    5
    ],
    "deps": [
     "ht",
     "xwidgets-reuse"
    ],
-   "commit": "4977f6517cf12ac994859c4ba992d5e2999ae016",
-   "sha256": "07y96ii3ysqlikq7cixcwf1mr7ysazmmnp42wzah02zdchj9irzh"
+   "commit": "33fa9f584034978006108a4498566e933493f852",
+   "sha256": "01636rhmgnjz9z81xppqlrlwwg0jcy48k9p3hh865wncp1q2jsb5"
   }
  },
  {
@@ -67759,14 +68154,14 @@
   "repo": "magnars/multiple-cursors.el",
   "unstable": {
    "version": [
-    20201018,
-    538
+    20201215,
+    1559
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "83abb0533a9d9635bc86d6d52a4e7641b0eaaf63",
-   "sha256": "1p9wz300x9hpkl2lhh6xdcbn46aka5wrqmf20cs5w8dm7205yznc"
+   "commit": "a9d7764f80b241978f3d4e76bc981ef10bab5d70",
+   "sha256": "0r5dgzra3wimny5kaqhkfj1723mbwsdjabi26jp77hxkrhx7v905"
   },
   "stable": {
    "version": [
@@ -67972,15 +68367,15 @@
   "repo": "agzam/mw-thesaurus.el",
   "unstable": {
    "version": [
-    20190620,
-    2330
+    20201212,
+    2250
    ],
    "deps": [
     "dash",
     "request"
    ],
-   "commit": "8327bae11588bcad5d73dcfbeb5e8d10f623d6b6",
-   "sha256": "0snv5v4c5f0hnixrii16xp55w0faw3hirmaj19fnf76shnpg4kwy"
+   "commit": "4117f49b9f40d119f9ed0888458ce5495510226e",
+   "sha256": "0i2r54rzvfiiap7vg2fx4py62xng7n9hjblih0ybb2b0saqmpvgd"
   }
  },
  {
@@ -68592,15 +68987,15 @@
   "repo": "alphapapa/navi",
   "unstable": {
    "version": [
-    20190720,
-    2003
+    20201220,
+    1727
    ],
    "deps": [
     "outorg",
     "outshine"
    ],
-   "commit": "7eb7cf0c4a6ee537ec462f5ec90f00d12e3ca9c2",
-   "sha256": "0ajmbsdz825v5fidnp30yv1jwl415vc67hlm05a65f92bhs6m3zq"
+   "commit": "cf97e1e338815ad3a4d0bbbf4ff6dd1a4e322ca8",
+   "sha256": "12nb7rha3fh29djwnnc28k8g5bnwk2cvijym1i4m4q1fpymfm4ri"
   },
   "stable": {
    "version": [
@@ -68935,8 +69330,8 @@
   "repo": "felko/neuron-mode",
   "unstable": {
    "version": [
-    20201204,
-    1517
+    20201229,
+    1005
    ],
    "deps": [
     "company",
@@ -68944,8 +69339,8 @@
     "markdown-mode",
     "s"
    ],
-   "commit": "dad8804d050ce4532053b739dcecb1f4d97ea3e4",
-   "sha256": "0xwfclszwjg12kp3bdp92yjc59d527w48awj9x4dz3ps438ia75z"
+   "commit": "81ed1f3288eab9aed2cb0b1eb11af69f988b7d0b",
+   "sha256": "1dgvlk0apd7ddzzg5jcpsrdhps37my59jyvkv1sqp31km0nby6qk"
   }
  },
  {
@@ -69176,11 +69571,11 @@
   "repo": "m-cat/nimbus-theme",
   "unstable": {
    "version": [
-    20200812,
-    915
+    20201222,
+    1503
    ],
-   "commit": "1a828c1fa0574503014afe8dda3229fb76a4bf64",
-   "sha256": "1qapsq7mxayjjr7y376p9vb7k871rwjgmyvmv756xg98lf7vm3fb"
+   "commit": "5ff56a6a68cde7cd0a67fc60e3e993be52604a6d",
+   "sha256": "1073x878gdg97xym31mx3l7zpbc51pkspigpxqlpq48q62llcigj"
   }
  },
  {
@@ -69194,8 +69589,8 @@
     20181024,
     1439
    ],
-   "commit": "58f77f972bcece256c16ca1cc4a933270b1ea1c1",
-   "sha256": "128mfqqz0p2skxsgzsvq320nscpqqgzibq4idcsszk43ynksihzf"
+   "commit": "68f971460bb21abd59dfe6253e35a55c3e1cfc64",
+   "sha256": "1isbay1i23jjw24a7nxjhsdhvnff2108gr98s90jfwwiymr1fp81"
   },
   "stable": {
    "version": [
@@ -69293,11 +69688,11 @@
   "repo": "NixOS/nix-mode",
   "unstable": {
    "version": [
-    20201202,
-    1618
+    20201229,
+    138
    ],
-   "commit": "e32c6bf7ad6dfe1d7ef9ee07d4da6e50174037bf",
-   "sha256": "1qihka6vzlnd4ks4az2bj7zmbfxjcvhbadb3xwswzbyc87lgkr0g"
+   "commit": "53ea839a52335d089699d3530bae8ea5914cdbb6",
+   "sha256": "1gmsq0simdrk8w1ywls3bn224wxgc0v8dmcch75zjp34rx9fg11n"
   },
   "stable": {
    "version": [
@@ -69592,26 +69987,26 @@
   "repo": "emacscollective/no-littering",
   "unstable": {
    "version": [
-    20201130,
-    1511
+    20201222,
+    1537
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "f14d5548211109b0e5e850706d8d2cc182dc60be",
-   "sha256": "0x43c749jbb9amkz4mpl0yn4b32v5wbzx8snig9700dvayjb4k89"
+   "commit": "96ed5b8ecad8bcdcd212aacd9957276be3cf128e",
+   "sha256": "00chkzpjcdll907vpzfzmf9p3jprisnr8i0h1x5gixidwbfc2whi"
   },
   "stable": {
    "version": [
     1,
     2,
-    0
+    1
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "de7a73579659a97ebf67f82c500d0059a4b6a9df",
-   "sha256": "1hma9var0nmrmjlh16s49hbfc1s4jvfd2prqxf14lxfd51404niw"
+   "commit": "96ed5b8ecad8bcdcd212aacd9957276be3cf128e",
+   "sha256": "00chkzpjcdll907vpzfzmf9p3jprisnr8i0h1x5gixidwbfc2whi"
   }
  },
  {
@@ -69839,14 +70234,14 @@
   "url": "https://git.sr.ht/~lthms/colorless-themes.el",
   "unstable": {
    "version": [
-    20200213,
-    2057
+    20201222,
+    1627
    ],
    "deps": [
     "colorless-themes"
    ],
-   "commit": "46d477ec5a367beb6c8e75e017ae2c3a31250136",
-   "sha256": "05c6ywzamnq1frmb8i07wjxrncl3fpkmns8dnc3v8si234gq3m72"
+   "commit": "92ae2775ac9ae2fd3d1172ffdf706e18db55963c",
+   "sha256": "06cp84bi3x33il119gfk8blikbqdmakvj7h64dr9crh0v11lg7ds"
   },
   "stable": {
    "version": [
@@ -69898,20 +70293,20 @@
   "url": "https://git.notmuchmail.org/git/notmuch",
   "unstable": {
    "version": [
-    20201206,
-    2023
+    20201225,
+    1832
    ],
-   "commit": "adfded9ed0a5a4b06886f462314cd4511cb72d47",
-   "sha256": "1a3dmzxwl8b31m9rwjvqhgkk4cac2yg2blapp39szxmbb9vs768x"
+   "commit": "0f37509cc7e92f2c09fcd7d7f3e2b477e4f29401",
+   "sha256": "1g3l7hyr8zcddwvcdjxmblzkw3dzrdhp8kc31j81m22g9napjxya"
   },
   "stable": {
    "version": [
     0,
     31,
-    2
+    3
    ],
-   "commit": "02a7b026d938f53d9fd9b183ca2b3c44c92489f2",
-   "sha256": "0rbzpr03z8lsx660ciayy3fj872s2561yvam1wgjbb21phd8hacw"
+   "commit": "d812256aeb91646b5b1c644fa67f07c483cca651",
+   "sha256": "1wm1myzacz1dcg7vdfd3akia3xan7ssfspf1fflrwm18hdalss5v"
   }
  },
  {
@@ -70566,8 +70961,8 @@
    "deps": [
     "axiom-environment"
    ],
-   "commit": "9ef86ca16098050da4362f5aadaea64b0a093fc1",
-   "sha256": "0hyaa1nskm95scypdpbndmmdasq6cas85y6i2q1f8nq8a3qd5585"
+   "commit": "47d6dffc29286badb2b1d7143b219e5c1be15bdb",
+   "sha256": "1dppyda9jkwh6fj8m4kziq84w0b5yzxrhq87jhkv54jjra6yxbb4"
   }
  },
  {
@@ -70918,15 +71313,15 @@
   "repo": "jdormit/ob-graphql",
   "unstable": {
    "version": [
-    20200108,
-    2228
+    20201222,
+    1515
    ],
    "deps": [
     "graphql-mode",
     "request"
    ],
-   "commit": "ced37c6761d69e1ff206ff0ebd633f0e4fd2ac54",
-   "sha256": "0575w89sr97dv4ccygbhj4k7rpk2934q9f0p3q0hxf8a5wikf493"
+   "commit": "7c35419f9eec5dc44967cbcfa13c7135b9a96bfc",
+   "sha256": "07syadvvdjrxbsgwil2pqcji2rznm64pz0cqb0d4g7kjbxby37gw"
   }
  },
  {
@@ -71216,8 +71611,8 @@
    "deps": [
     "restclient"
    ],
-   "commit": "f7449b2068498fe9d8ab9589e0a638148861533f",
-   "sha256": "0s3931w9ab3yfml2pmq71rw21yf6hpg7m3vihxyy3vs6zli1cvmq"
+   "commit": "0ebfc7c5ebf96d2fe1a476439831363a5a43b9b6",
+   "sha256": "0sc6rljlzm7g4v4l4ziqrr0ydbsyypbq0h19f9xafvnb2pn40j84"
   }
  },
  {
@@ -71573,8 +71968,8 @@
     20201204,
     945
    ],
-   "commit": "58f933600606f519b2c22eb2536a62298aadcbf7",
-   "sha256": "1i33m5cb21v5q4bdvih8hv8227awif87j4kl8w7yl9prn6mcs2w1"
+   "commit": "3910c34756adf38f35ccad9650d1454d2ba5f735",
+   "sha256": "0h8kwlwff76ry9rps83hgvsx4h8sf6nm9jjcj54z8q8r7j9sh276"
   },
   "stable": {
    "version": [
@@ -71767,14 +72162,14 @@
   "repo": "oer/oer-reveal",
   "unstable": {
    "version": [
-    20201207,
-    1202
+    20201221,
+    909
    ],
    "deps": [
     "org-re-reveal"
    ],
-   "commit": "62c6d91bd5045f2ecb817fdea69d98b03126b715",
-   "sha256": "0pnsq52bggd1wk783mljza5sm8ymb1j5dqhv00n3l98061wbql9h"
+   "commit": "63a3b7744e1820bfc832f3f2ba03e7a9231e806d",
+   "sha256": "0yfx5brpf45v8nskfgxrflxw0bdjj4xbfvr48gncfs6np6s3w2fb"
   },
   "stable": {
    "version": [
@@ -72101,8 +72496,8 @@
   "repo": "OmniSharp/omnisharp-emacs",
   "unstable": {
    "version": [
-    20201002,
-    1600
+    20201220,
+    906
    ],
    "deps": [
     "auto-complete",
@@ -72114,8 +72509,8 @@
     "popup",
     "s"
    ],
-   "commit": "2aead2d276cb6bd6f01dac7845a593d25a469c41",
-   "sha256": "006wxbr0hb917zqp67hin6x8ag5aa90n5shwzwspq2sxhdy9819j"
+   "commit": "8ec59296b2e2a12d8ea146fb7056091fbb7bdd10",
+   "sha256": "02kx5gx1hk5r3lks3y9myq3x90zcz0snhckyf7sx45ydgnjxm5j4"
   },
   "stable": {
    "version": [
@@ -72441,11 +72836,11 @@
   "repo": "abo-abo/orca",
   "unstable": {
    "version": [
-    20200122,
-    1511
+    20201216,
+    950
    ],
-   "commit": "654f185861ed4fedfe1394db48a83639a0be57f6",
-   "sha256": "1dwps9zv1jnc7m75j5cdla14pnv2vnivm5bq0zcvqfsvilvd38ds"
+   "commit": "e2a20d6069b8217b5d9386ea15c0c56f40885c26",
+   "sha256": "0z60vi3qyagr43vnbh80ygcvxcr44pd183dhyacysqv0mif5bvrj"
   }
  },
  {
@@ -72618,6 +73013,25 @@
   }
  },
  {
+  "ename": "org-anki",
+  "commit": "9b79d06c02a7fa4d7d7255b07a3bf0d080b512d1",
+  "sha256": "0ydqymvhyi9xrx9x4j9l77if7cknybpz57ahqspylyg7p6v8qx06",
+  "fetcher": "github",
+  "repo": "eyeinsky/org-anki",
+  "unstable": {
+   "version": [
+    20201220,
+    2144
+   ],
+   "deps": [
+    "ox-slimhtml",
+    "request"
+   ],
+   "commit": "43c3d6418cc91d3e6fe880d02fc498345bd11ae3",
+   "sha256": "1nbjxcasw14jvmn10cy0ch0k79r7lvaznnh504qq2nhbxkqz22n6"
+  }
+ },
+ {
   "ename": "org-attach-screenshot",
   "commit": "f545cd8d1da39e7fbd61020e178de30053ba774b",
   "sha256": "0108kahyd499q87wzvirv5d6p7jrb7ckz8r96pwqzgflj3njbnmn",
@@ -72809,14 +73223,14 @@
   "repo": "Kungsgeten/org-brain",
   "unstable": {
    "version": [
-    20201120,
-    2132
+    20201214,
+    822
    ],
    "deps": [
     "org"
    ],
-   "commit": "1ae4fd46165fc56f34f36ce38cb2ae816b07e207",
-   "sha256": "1y80j75w80rlz1100lhxjr0bd5bzs4kak116zfw8sydvlr2q0px0"
+   "commit": "2f36f303e96e384e17d156e0d6489211808d4a36",
+   "sha256": "1dm672s30i31103wgp56dlwjb9gdc4g6jhjznz22s6rqrr6wkkhp"
   }
  },
  {
@@ -72966,15 +73380,15 @@
   "repo": "atheriel/org-clock-csv",
   "unstable": {
    "version": [
-    20200714,
-    2109
+    20201222,
+    1506
    ],
    "deps": [
     "org",
     "s"
    ],
-   "commit": "499b961f26e1f9a9898bf0b1725b49d783893639",
-   "sha256": "08li6il9rhbm62pcb15cd40b6vjqjlywk07jcs9m85q589v6q2yg"
+   "commit": "af94b58c2e179a5bcc938f339e93de0eee3da99c",
+   "sha256": "0637skvjs90cfd713q8dhl3xrya4hfy79x0nn1y51cp9lrniw6q2"
   },
   "stable": {
    "version": [
@@ -73097,21 +73511,21 @@
     "s",
     "seq"
    ],
-   "commit": "a3734368cd5a36541dab2fa8f7404cb850991b5b",
-   "sha256": "0vsi5z9n18w88q4k17p2iviqmg1bqy0ficw67ry4l9lalnq5x569"
+   "commit": "bab77ede4b1aaf879e7c24e0522da624ee23bf2e",
+   "sha256": "1bcvdl5h4nz2x1zvrq700vf2mbkyhvrslfkabmirhs7hd2q0n41n"
   },
   "stable": {
    "version": [
     0,
-    3
+    4
    ],
    "deps": [
     "dash",
     "s",
     "seq"
    ],
-   "commit": "e0fb2c04a55c55cbf59a85a0b2e23ef18370ca61",
-   "sha256": "1q5s2gj1968z23qf7ds2ychvvnzmlayh1v16krf0lf3zj7a3k20s"
+   "commit": "bab77ede4b1aaf879e7c24e0522da624ee23bf2e",
+   "sha256": "1bcvdl5h4nz2x1zvrq700vf2mbkyhvrslfkabmirhs7hd2q0n41n"
   }
  },
  {
@@ -73475,26 +73889,26 @@
   "repo": "io12/org-fragtog",
   "unstable": {
    "version": [
-    20200703,
-    229
+    20201231,
+    505
    ],
    "deps": [
     "org"
    ],
-   "commit": "92119e3ae7c9a0ae2b5c9d9e4801b5fdc4804ad7",
-   "sha256": "0hyhwbfhb7gj3wjv0722gmz637pd3l0k0gnk4z100v3crnk9rfs6"
+   "commit": "0151cabc7aa9f244f82e682b87713b344d780c23",
+   "sha256": "1szkx3n9gk6799rxv0jb3096pn2ssz82536x9a98xqwbimy4kvn6"
   },
   "stable": {
    "version": [
     0,
-    2,
-    0
+    3,
+    1
    ],
    "deps": [
     "org"
    ],
-   "commit": "92119e3ae7c9a0ae2b5c9d9e4801b5fdc4804ad7",
-   "sha256": "0hyhwbfhb7gj3wjv0722gmz637pd3l0k0gnk4z100v3crnk9rfs6"
+   "commit": "0151cabc7aa9f244f82e682b87713b344d780c23",
+   "sha256": "1szkx3n9gk6799rxv0jb3096pn2ssz82536x9a98xqwbimy4kvn6"
   }
  },
  {
@@ -73632,8 +74046,8 @@
     "org-agenda-property",
     "org-edna"
    ],
-   "commit": "4716603f3719acd89a268fb907b91fd3d6af311a",
-   "sha256": "1sjdgdg0j8j7qd5scls9rbyk445bcmkf84iz4kgiyca7bb7rap57"
+   "commit": "8d7acda24a00ef94fd14a4e2ebe2606009eb46e9",
+   "sha256": "1h9gfy2assjl2l9dfyp40ypkdm541cisx84vnapjnr6i1bxsvdck"
   },
   "stable": {
    "version": [
@@ -73742,6 +74156,35 @@
   }
  },
  {
+  "ename": "org-inline-pdf",
+  "commit": "d069aa75232fff5d8b5db485f037191181d8c4b6",
+  "sha256": "00f8gd34lsp96j20s6sax4hjwqsnrz4647xdchzxav7cpqjmky8m",
+  "fetcher": "github",
+  "repo": "shg/org-inline-pdf.el",
+  "unstable": {
+   "version": [
+    20201229,
+    512
+   ],
+   "deps": [
+    "org"
+   ],
+   "commit": "d1f0aae00adf7e64b8ddbb181eded6d811dd38c6",
+   "sha256": "0kyf4dqjs16m007ydl27x73scl4isy44n2x38585g592rqn25x6a"
+  },
+  "stable": {
+   "version": [
+    0,
+    2
+   ],
+   "deps": [
+    "org"
+   ],
+   "commit": "015c70a7305c251b72709b6e8dce4e1230e681c5",
+   "sha256": "1qc92xvgxmnwjixk8bxwbc1l1jj0qk9dg73jyaip6lk4g0wjk6xf"
+  }
+ },
+ {
   "ename": "org-iv",
   "commit": "e7db0c34f0f6fb9c3b9e581a74304cc9a26ed342",
   "sha256": "1akhabp6mdw1h7zms6ahlfvwizl07fwsizwxpdzi4viggfccsfwx",
@@ -73803,14 +74246,14 @@
   "repo": "bastibe/org-journal",
   "unstable": {
    "version": [
-    20201101,
-    1438
+    20201222,
+    750
    ],
    "deps": [
     "org"
    ],
-   "commit": "14ce0119fe2d89f2f2207788be2edce0b9372822",
-   "sha256": "0ba1rzgk1mw27jzb0bjvwgxjxim4mgs710jfazms2f7gdi328gbg"
+   "commit": "c0836483ae43e525bf7547b7a789d171eda84c84",
+   "sha256": "100w9z2kphxn3r1ybvvin8gcrfv4851niv2sapgqgsllyx0ql2nr"
   },
   "stable": {
    "version": [
@@ -73910,8 +74353,8 @@
     "posframe",
     "s"
    ],
-   "commit": "e9d30ec4b1cbf4532051d0790948a95e1bd681c1",
-   "sha256": "182djf213raagpc8rhj1vxbn6imsp6lpabcsfajq9vxlvyx360xk"
+   "commit": "d8be05fd6857c72a1766e3fa9dafa1602ccf88e3",
+   "sha256": "0vidxcv07brz4adik1826g0v7zyyz80r84kzz01rcxcc471fl957"
   }
  },
  {
@@ -73922,14 +74365,14 @@
   "repo": "stardiviner/org-link-beautify",
   "unstable": {
    "version": [
-    20201129,
-    736
+    20201230,
+    1243
    ],
    "deps": [
     "all-the-icons"
    ],
-   "commit": "2c5f504cd3674db9f7ddd9aff0dd8b9ebdd8f0b3",
-   "sha256": "0yzidf1liw4nnd03sw8qsflplg1lc1w8y4kaklpbbk99rv5jf76s"
+   "commit": "621ff93a7229cce9f6090cdabeb318e857278c4c",
+   "sha256": "1xic8fh8pnaw0xi1hcsn0xy7mc4d07cmw1zr6ncbk9df0vgz6agf"
   }
  },
  {
@@ -74052,14 +74495,14 @@
   "repo": "org-mime/org-mime",
   "unstable": {
    "version": [
-    20201105,
-    2322
+    20201224,
+    1404
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "3974bd41902a810d18a787e49f07cddd7849c693",
-   "sha256": "0vchyd80ybvr6317dwm50nxcgxfrpc0bz6259vnrh24p5sb8shbj"
+   "commit": "b47811562ba5c0882e9bacf9124b18fb5d0f4a61",
+   "sha256": "0xnrgf5p9l920lfzfxa7msjfgm6ic7xfn4mycxjv9jmdnkdm85hw"
   },
   "stable": {
    "version": [
@@ -74101,30 +74544,30 @@
   "repo": "ndwarshuis/org-ml",
   "unstable": {
    "version": [
-    20201207,
-    638
+    20201229,
+    418
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "b644fdcc85090fd83827fb480482681409a3033e",
-   "sha256": "0b5shcqydxdp6hwfpxjcwzlmyhqb3jcmvysgk1kdvzjm5jcqz0y6"
+   "commit": "d856ac6f0afed0299a47ed77830c676fd0fa9e55",
+   "sha256": "1rydmbjzq24vzfpfrb93ad4wibhpc4rnk7crqbx1p11sdby85h95"
   },
   "stable": {
    "version": [
     5,
-    4,
-    1
+    5,
+    3
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "66354a0d4a50def2bc88e91a0301fd929a66e00a",
-   "sha256": "1risdrrqnj5fcnpybaqczavwd30dcfk89xd4sb578p8h8fz3hy0f"
+   "commit": "a396e4a11394b5e00aef1450488b61aeddbd9b55",
+   "sha256": "1rydmbjzq24vzfpfrb93ad4wibhpc4rnk7crqbx1p11sdby85h95"
   }
  },
  {
@@ -74177,14 +74620,14 @@
   "repo": "jeremy-compostella/org-msg",
   "unstable": {
    "version": [
-    20201010,
-    1531
+    20201229,
+    27
    ],
    "deps": [
     "htmlize"
    ],
-   "commit": "5f0f1a7a79245646bc1c85757f3277c35d6df007",
-   "sha256": "1c8qa01w3953d858s8r0z60xlvgqxhm0l1svfydl4anghq22wc48"
+   "commit": "20aac1b7254627c393f3a9e52395ee4d3546d586",
+   "sha256": "0wvav4g1adqymn6viwf6jmwl41vb6cjkai4n80yk0v4lndw6b1pl"
   }
  },
  {
@@ -74195,8 +74638,8 @@
   "repo": "akirak/org-multi-wiki",
   "unstable": {
    "version": [
-    20201203,
-    847
+    20201212,
+    949
    ],
    "deps": [
     "dash",
@@ -74204,8 +74647,8 @@
     "org-ql",
     "s"
    ],
-   "commit": "8c0f56703d301cef6c41feb65bf60cc0da1518cb",
-   "sha256": "0zq8h2bl4gcanqvq730iip93h37rmj1j1w916yqr8rn7wap4pgls"
+   "commit": "8e38e1f3c06593b729f6401b6413856efd0264f4",
+   "sha256": "1jrlngyvbgy6ra59krgdn9gbfpg0aznaaridd95xkr6z78ad1ql7"
   },
   "stable": {
    "version": [
@@ -74469,10 +74912,10 @@
  },
  {
   "ename": "org-password-manager",
-  "commit": "fba84d698f7d16ffc0dc16618efcd1cdc0b39d79",
-  "sha256": "0wxvl6ypgn6ky1z3dh33ya3rh73znkh5f8qhqwfmwp7hy2mbl4la",
-  "fetcher": "git",
-  "url": "https://github.com/leafac/org-password-manager",
+  "commit": "38249f32d150d10b6ed86679361d99ace2375a02",
+  "sha256": "148rv5kzmnqlfn8z2474wn0bxir49d4mb40mjrv76kvyzyj7nly9",
+  "fetcher": "github",
+  "repo": "leafac/org-password-manager",
   "unstable": {
    "version": [
     20180227,
@@ -74769,8 +75212,8 @@
   "repo": "alphapapa/org-ql",
   "unstable": {
    "version": [
-    20201204,
-    414
+    20201213,
+    1358
    ],
    "deps": [
     "dash",
@@ -74785,8 +75228,8 @@
     "transient",
     "ts"
    ],
-   "commit": "1389ccb46be0db0252196f52ee1337dc65dc1a2a",
-   "sha256": "17smsqy5y2sk3sasgl8dn49nk6s2z8wpr6h1b8g7ds62vc61rz7l"
+   "commit": "208e103ecc146db71d878df3bd09c6eb60c2797d",
+   "sha256": "09vdndp3935iy4flynbjpkvfax7vs1ppswl19wx4nn2rp7hdz8kp"
   },
   "stable": {
    "version": [
@@ -74886,28 +75329,28 @@
   "repo": "oer/org-re-reveal",
   "unstable": {
    "version": [
-    20201114,
-    622
+    20201231,
+    909
    ],
    "deps": [
     "htmlize",
     "org"
    ],
-   "commit": "0062756e9a5b6ec96c7de5ca94372cc6495296a1",
-   "sha256": "1lm5aymzbbb5syffm2lh6alaqapjdigl7r5c1qcvyh7hzil36rsx"
+   "commit": "8f31c73a8950b0e45f244f33274c8e5a32d7f757",
+   "sha256": "0gnz4vjj968x203j8z8gr98vf4ipgrq8abfmx0xll0i0gynpmyzf"
   },
   "stable": {
    "version": [
     3,
-    4,
-    3
+    5,
+    0
    ],
    "deps": [
     "htmlize",
     "org"
    ],
-   "commit": "0062756e9a5b6ec96c7de5ca94372cc6495296a1",
-   "sha256": "1lm5aymzbbb5syffm2lh6alaqapjdigl7r5c1qcvyh7hzil36rsx"
+   "commit": "8f31c73a8950b0e45f244f33274c8e5a32d7f757",
+   "sha256": "0gnz4vjj968x203j8z8gr98vf4ipgrq8abfmx0xll0i0gynpmyzf"
   }
  },
  {
@@ -74950,8 +75393,8 @@
   "repo": "alphapapa/org-recent-headings",
   "unstable": {
    "version": [
-    20201118,
-    737
+    20201213,
+    747
    ],
    "deps": [
     "dash",
@@ -74960,8 +75403,8 @@
     "org",
     "s"
    ],
-   "commit": "11430626f7d83b8eafbaf34bb5eeeff458035187",
-   "sha256": "1z2rad7rvh125a91z2xnwd3zslqs2v5bwhb8p0lvnw3b7z6qy91y"
+   "commit": "5da516a1586675992c0122ed32978c18dda06318",
+   "sha256": "1xnhahgs1q6y7w0rrc33qbkdagjm6q71a4i0msi4gsfnnzwn4vam"
   },
   "stable": {
    "version": [
@@ -75018,8 +75461,8 @@
   "repo": "jkitchin/org-ref",
   "unstable": {
    "version": [
-    20201126,
-    1924
+    20201230,
+    2020
    ],
    "deps": [
     "dash",
@@ -75033,8 +75476,8 @@
     "pdf-tools",
     "s"
    ],
-   "commit": "120509c38929cc25d814e9a42092c44cb34ec34e",
-   "sha256": "0l1il3dh4rcw5ylia2ywszmj6fpdfbvmr496scsdw4w0skrjpljw"
+   "commit": "5e6c1c7319adfdad6bd67debcf332a478e6812df",
+   "sha256": "1n08ssdq6m2k5721wgnbdniiyc4gp0g7rmxaw17plbkzj6x6qcbf"
   },
   "stable": {
    "version": [
@@ -75160,8 +75603,8 @@
   "repo": "org-roam/org-roam",
   "unstable": {
    "version": [
-    20201128,
-    1144
+    20201225,
+    543
    ],
    "deps": [
     "dash",
@@ -75171,8 +75614,8 @@
     "org",
     "s"
    ],
-   "commit": "be95b42d32d9707309ab373f1d8182c84db41c5c",
-   "sha256": "17djynwjl11jmgx986f9zr0zd4sanadv6m9q4hg3ll46933mj8jx"
+   "commit": "65c0f0dc8cc36261858c31b8c9d1a7fba4ed083c",
+   "sha256": "08m1lm091nkwmf1462yf7rqmsvxyb2x9qa3wbmr3q86wiw7i5pca"
   },
   "stable": {
    "version": [
@@ -75200,15 +75643,15 @@
   "repo": "org-roam/org-roam-bibtex",
   "unstable": {
    "version": [
-    20201207,
-    741
+    20201220,
+    1653
    ],
    "deps": [
     "bibtex-completion",
     "org-roam"
    ],
-   "commit": "c002d63fdb5cdb388dc376b14e8c1e599ffcb3b6",
-   "sha256": "0cll1pbpk6jldkv6apxmpzdy6dd9nyh72kbg7w1r4jrjmjzr9wx0"
+   "commit": "9ba15069c3f7ecd1080873cd3a7d587eb7c72d08",
+   "sha256": "0nfsrrca1p5xlildcbjisfhhrwiwgd6jv0nfn4a2gdpxd77v39d6"
   },
   "stable": {
    "version": [
@@ -75232,8 +75675,8 @@
   "repo": "org-roam/org-roam-server",
   "unstable": {
    "version": [
-    20201203,
-    2002
+    20201213,
+    1924
    ],
    "deps": [
     "dash",
@@ -75243,8 +75686,8 @@
     "s",
     "simple-httpd"
    ],
-   "commit": "6cfb8d60abfecd985975f683e48e87d03a0f0212",
-   "sha256": "1rvlmldhvd2vr72j6sh9dn718c99rmzk7wdpra4lvs1x95rbvcp6"
+   "commit": "93b673209d141953547fc0732506bb0efa68f804",
+   "sha256": "0dlw8997d1p6yvgnskimj5nkv1rv9fkf13k3prq0399y9mqyvh0x"
   },
   "stable": {
    "version": [
@@ -75289,8 +75732,8 @@
   "repo": "tyler-dodge/org-runbook",
   "unstable": {
    "version": [
-    20200523,
-    2004
+    20201229,
+    1905
    ],
    "deps": [
     "dash",
@@ -75300,14 +75743,14 @@
     "s",
     "seq"
    ],
-   "commit": "27dafe2a470d54a2c664164b5f9cbd2a1e5d921e",
-   "sha256": "1bl8f7azkr2657izhcwxy8w8jz7qs2wkk843q2bzzdzixqadlabs"
+   "commit": "63cf17f35d81f78f9ce10f8c99288b978982d4dc",
+   "sha256": "16axy433zz8mvbvihj4ks4mq2wn28j2jg5b3vgi9mbrv1pybdm1l"
   },
   "stable": {
    "version": [
     1,
     1,
-    2
+    4
    ],
    "deps": [
     "dash",
@@ -75317,8 +75760,8 @@
     "s",
     "seq"
    ],
-   "commit": "27dafe2a470d54a2c664164b5f9cbd2a1e5d921e",
-   "sha256": "1bl8f7azkr2657izhcwxy8w8jz7qs2wkk843q2bzzdzixqadlabs"
+   "commit": "e5d1e30a05552ce1d63d13ada1487643a41b92cb",
+   "sha256": "093jbpanvpwxxdyb9136r804ai1147rbq1gfb7pdy0iymhrv3d9r"
   }
  },
  {
@@ -75446,8 +75889,8 @@
   "repo": "alhassy/org-special-block-extras",
   "unstable": {
    "version": [
-    20201130,
-    1159
+    20201222,
+    234
    ],
    "deps": [
     "dash",
@@ -75455,12 +75898,12 @@
     "org",
     "s"
    ],
-   "commit": "90bcb2dbc09854d9599eeba5d503a079e7129bd0",
-   "sha256": "1czkasfmgsf5s2xq1a9xddvn5gbbhk1jgg56wg459n5zqpnz5s8f"
+   "commit": "61ff797d068947a4f1c172bb83aaf5cf897febf1",
+   "sha256": "112nbh12qgq3wy3p736k8hjzpaa621zv4x2rdbxhaib1il7x7i7p"
   },
   "stable": {
    "version": [
-    1
+    2
    ],
    "deps": [
     "dash",
@@ -75468,8 +75911,8 @@
     "org",
     "s"
    ],
-   "commit": "d1054754d0701296bc0cde1fb022619b1f38dfde",
-   "sha256": "1fy1sgj3jg7l6fjl00dxb7npf7x8ldcbs81cs8w4b4ciklp30mzr"
+   "commit": "61ff797d068947a4f1c172bb83aaf5cf897febf1",
+   "sha256": "112nbh12qgq3wy3p736k8hjzpaa621zv4x2rdbxhaib1il7x7i7p"
   }
  },
  {
@@ -75480,30 +75923,30 @@
   "repo": "ndwarshuis/org-sql",
   "unstable": {
    "version": [
-    20201121,
-    2021
+    20201222,
+    206
    ],
    "deps": [
     "dash",
     "org-ml",
     "s"
    ],
-   "commit": "0dc17dcf669abc0c5257abedc00b3e2a4116fcf8",
-   "sha256": "0cw2x9gnbsqg864p4w7whjpy8v9m5rgz3j9ca4l6y5arh03167xj"
+   "commit": "ddbab360a49d4c0cab964cd1fdb80d2135a10272",
+   "sha256": "0rhc5sb6drzndxay52qb3f1kbxfnwvz99i1jpjs4adsmyhx35xai"
   },
   "stable": {
    "version": [
     1,
-    0,
-    3
+    1,
+    0
    ],
    "deps": [
     "dash",
     "org-ml",
     "s"
    ],
-   "commit": "0dc17dcf669abc0c5257abedc00b3e2a4116fcf8",
-   "sha256": "0cw2x9gnbsqg864p4w7whjpy8v9m5rgz3j9ca4l6y5arh03167xj"
+   "commit": "6160de13bcef3ad91c706d8a7b1601703b424616",
+   "sha256": "0rhc5sb6drzndxay52qb3f1kbxfnwvz99i1jpjs4adsmyhx35xai"
   }
  },
  {
@@ -75578,11 +76021,11 @@
   "repo": "bastibe/org-static-blog",
   "unstable": {
    "version": [
-    20201123,
-    1409
+    20201221,
+    1630
    ],
-   "commit": "b104911cdded2547d5186d1765190857cca2587d",
-   "sha256": "09s519mjgmy5k0n4psf3x4gs5w6k77kpvpqb2s8fjplgf5ymhzm6"
+   "commit": "1dd66614cc54a2051646324c7910e3e295d1cc40",
+   "sha256": "18fawppxij4yd2w5s1h223v0jpv44dpxbja32w0n9975ip5ciir0"
   },
   "stable": {
    "version": [
@@ -75602,26 +76045,25 @@
   "repo": "alphapapa/org-sticky-header",
   "unstable": {
    "version": [
-    20191117,
-    549
+    20201223,
+    143
    ],
    "deps": [
     "org"
    ],
-   "commit": "1053ebdeb3bd14fc8d4538643532efb86d18b73c",
-   "sha256": "171j10ngngra45sxmlkzrcmhhqf2b6yjqq0r5gl16zcbgggg936a"
+   "commit": "79136b8c54c48547ba8a07a72a9790cb8e23ecbd",
+   "sha256": "1ijfy4yr39rrg58w5506pcb0xnqf2l5ammwl4z8r4mmknznysp9i"
   },
   "stable": {
    "version": [
     1,
-    0,
     1
    ],
    "deps": [
     "org"
    ],
-   "commit": "2847035ec559a46bd7b555f220f819c88371d538",
-   "sha256": "0g6hdg11jzzpw7h0f6p795l5aj6pag2nhhfbx90cg28j61d28vwh"
+   "commit": "79136b8c54c48547ba8a07a72a9790cb8e23ecbd",
+   "sha256": "1ijfy4yr39rrg58w5506pcb0xnqf2l5ammwl4z8r4mmknznysp9i"
   }
  },
  {
@@ -75632,8 +76074,8 @@
   "repo": "alphapapa/org-super-agenda",
   "unstable": {
    "version": [
-    20201121,
-    941
+    20201211,
+    918
    ],
    "deps": [
     "dash",
@@ -75642,8 +76084,8 @@
     "s",
     "ts"
    ],
-   "commit": "ac7f2ef05c161b10390141b6863b431dc9360edc",
-   "sha256": "0n4dg0hhb4nsfh65jm5q1jypxk9dnnm8gzw7gj6bxf4dm9677n99"
+   "commit": "f5e80e4d0da6b2eeda9ba21e021838fa6a495376",
+   "sha256": "18q1af3hjjbsny9lxqjsq68qjzzpdjqgx7npg7pl7k3hzdjaj42f"
   },
   "stable": {
    "version": [
@@ -76033,11 +76475,11 @@
   "repo": "takaxp/org-tree-slide",
   "unstable": {
    "version": [
-    20200611,
-    1143
+    20201215,
+    1117
    ],
-   "commit": "18034c476038adcc1c4697168b8068f4d0ce62fe",
-   "sha256": "0mibyph6db08llgjcpzbrsj75zwrlg8rn2ckyq69c10gkxsq8dkk"
+   "commit": "d6e8e91433dfe4968f1343b483f2680f45a77d52",
+   "sha256": "1zz12xk8vl2qic5hpvl0jcwysbmrfb6rfigvf8hr3nhdm9fp36aw"
   },
   "stable": {
    "version": [
@@ -76050,6 +76492,36 @@
   }
  },
  {
+  "ename": "org-tree-slide-pauses",
+  "commit": "87a76bfd2a6baccb18be6e7917087ab1c7fbf948",
+  "sha256": "07idjfwrgmql504nmzkpx3z7695y2hbqk2r8fc73bgb2p29nzvkv",
+  "fetcher": "github",
+  "repo": "cnngimenez/org-tree-slide-pauses",
+  "unstable": {
+   "version": [
+    20201215,
+    146
+   ],
+   "deps": [
+    "org-tree-slide"
+   ],
+   "commit": "f02af7102e9ecef7c3dac0d376d85bbb8c4de4cc",
+   "sha256": "0fzif0ss5yhvhj7q041qbpdb91az03zjf4rgs43a81g6a8qwi803"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    0
+   ],
+   "deps": [
+    "org-tree-slide"
+   ],
+   "commit": "80d6e9279fad10bcff15fbce75726bb002da73c0",
+   "sha256": "03qhlgsj5m31q40vq196fxz5232mz2mwl9bbk22rlcj91k8b1j8r"
+  }
+ },
+ {
   "ename": "org-treescope",
   "commit": "2db07414d2d39b2d40a2ae91491032844b82d801",
   "sha256": "08b17gx9119gfz7mkkjigai0zjj3mj5y054skvvl57vlgd7lygqd",
@@ -76188,8 +76660,8 @@
   "repo": "alphapapa/org-web-tools",
   "unstable": {
    "version": [
-    20191217,
-    1459
+    20201212,
+    1058
    ],
    "deps": [
     "dash",
@@ -76198,8 +76670,8 @@
     "request",
     "s"
    ],
-   "commit": "ebc7888f4f4cad26ec1298edd7bf606a5ea2d564",
-   "sha256": "09ihqas9rx7c6146zmb3p0q395gxkfscxixlmz4v05smrhka1xz8"
+   "commit": "b94a07add8558ef7b0666173dbb8a2554f1d41a6",
+   "sha256": "08z5qc0gki5ci4cf2j4b7190vi2wpsb9qpq9768ifkhhm82mfawr"
   },
   "stable": {
    "version": [
@@ -76484,11 +76956,11 @@
   "repo": "kostafey/organic-green-theme",
   "unstable": {
    "version": [
-    20201010,
-    1720
+    20201216,
+    2240
    ],
-   "commit": "debd4305ee29592eb5c2a87e1c78abdd30139043",
-   "sha256": "1si084giyf2r6069nsvyg1gcyx9lk85yzlf0ifjhkw6cv2gkfwgy"
+   "commit": "0ed99a9c0cf14be0a1f491518821f0e9b7e88b88",
+   "sha256": "1l70vvyv8walqjk96jgr8047fi0yiqz0lm3r0vh6xrh6phna5mcd"
   }
  },
  {
@@ -77524,6 +77996,21 @@
   }
  },
  {
+  "ename": "ox-gemini",
+  "commit": "d2d6a5503a853523ffbbdc4c0db5e76bb3ec7308",
+  "sha256": "15lsyyshardfs24qcwq4psriip02mprc3yvilqmcv3k72x05mh6c",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~abrahms/ox-gemini",
+  "unstable": {
+   "version": [
+    20201125,
+    1716
+   ],
+   "commit": "5b50b6e8d1372955503f01f13ea5c02e4ca16af4",
+   "sha256": "00jkrnqbkh9nsbjpb7gykgdzzgcq73i4rya6pz4kjvqs76v4npnd"
+  }
+ },
+ {
   "ename": "ox-gfm",
   "commit": "10e90430f29ce213fe57c507f06371ea0b29b66b",
   "sha256": "065ngmzfd3g2h8n903hc4d363hz4z5rrdgizh2xpz03kf3plca6q",
@@ -77607,8 +78094,8 @@
    "deps": [
     "org"
    ],
-   "commit": "f24c9bd522ae22bee2327c2b53858d0a5066707d",
-   "sha256": "1f48j4zpcamdcxjrz7mcrlavmn4qmnnwf871h0qw3v2ad8nk4jpk"
+   "commit": "661eb223fd50b0f3bd683aba92d7fd661b78c2cf",
+   "sha256": "0kkqg5y0f4bnykv37nvccrq1v745xhj0bs2yknvdji7kx8fs9lns"
   },
   "stable": {
    "version": [
@@ -77782,8 +78269,8 @@
     "ox-gfm",
     "s"
    ],
-   "commit": "8a00843a2a58e0c43cb53080d1005c619e4a9c88",
-   "sha256": "1kk13mj8bn6kvck95j7wx41maip4b9kpwdln00m5rj6z3d51nrly"
+   "commit": "e79c4c4429f64fe61cfa673dcd33273bba30f9db",
+   "sha256": "153sr1pnnlglzmsz9kx8d8h604j01anf85n57pdz2dnbh6wr2wak"
   }
  },
  {
@@ -77938,8 +78425,8 @@
     20201208,
     1749
    ],
-   "commit": "e153f4ff541fead4bce9d59820e7929debd0ce11",
-   "sha256": "1dmqaid08vhw4x1yapisqzga97nmvnbp9wnb6wd5kpmvyxwcamwn"
+   "commit": "b7b1d682a724ef4ea729327395aa6577cba27133",
+   "sha256": "1cznkrcxi0pfs7i1fvz6zg8b3z2axcmqmjw62s15p0fhn4d2czxf"
   },
   "stable": {
    "version": [
@@ -77958,14 +78445,14 @@
   "repo": "yjwen/org-reveal",
   "unstable": {
    "version": [
-    20201025,
-    952
+    20201211,
+    1518
    ],
    "deps": [
     "org"
    ],
-   "commit": "6542658d67965a24c0641845ca7cc0759c4a1fd2",
-   "sha256": "01c4q0hlr67kmxr0x53ic3dzfh5fmydri6hp14qr396jfbfw39z1"
+   "commit": "e8673f4825b1c6e97f8ba895ccaf8c460cba5a09",
+   "sha256": "08gsb4c7a3hvkp3vdzad2wbs3n6ldxddhqp7bxsgsw7z3gfb4snv"
   }
  },
  {
@@ -77976,14 +78463,14 @@
   "repo": "choppsv1/org-rfc-export",
   "unstable": {
    "version": [
-    20190926,
-    851
+    20201218,
+    1356
    ],
    "deps": [
     "org"
    ],
-   "commit": "b86c9e6f21d99ea657b4f2224f816300485ed73f",
-   "sha256": "1lg4bs0dr4srcgqxv9qi6v53aqq9i8inc1q024ndag4bis2x1q01"
+   "commit": "1a49535cf927cd52ffa05c815b890888c4addf86",
+   "sha256": "001dv3zxsvh5zgrwn5jmib82bns4phbbd5kcy5mvmk7nyayrmq9p"
   }
  },
  {
@@ -78079,11 +78566,11 @@
   "repo": "dantecatalfamo/ox-ssh",
   "unstable": {
    "version": [
-    20201017,
-    2209
+    20201217,
+    317
    ],
-   "commit": "27f311382c6bc9192c6771f219d176836bd23286",
-   "sha256": "0vsk50d969yipywpc0imjsaj5d4d3x070klxpqccawziy60qdppf"
+   "commit": "1b39849e3a315de95543eb3cf69c42fa33a8f5cd",
+   "sha256": "0hcm91fh3qcxp6n40363sxdk3hz87vsmbw032d7iwb2wmdfwh6b4"
   }
  },
  {
@@ -78353,20 +78840,20 @@
   "repo": "zenspider/package",
   "unstable": {
    "version": [
-    20201206,
-    446
+    20201222,
+    255
    ],
-   "commit": "e612385c90eff5e347a9c449e233aed3a54e1a3d",
-   "sha256": "1w79apm5gg57np1mb0vkbvlgycp701f051k1lwg7njbqnfxp9cng"
+   "commit": "59b0f6daf219a2e0a0a0389d56471eb2a876f21d",
+   "sha256": "139ffhhjv45fbxqjasv46v0057sjbynqi9x6g7vikrph0js7bnja"
   },
   "stable": {
    "version": [
     1,
-    2,
-    1
+    3,
+    0
    ],
-   "commit": "e612385c90eff5e347a9c449e233aed3a54e1a3d",
-   "sha256": "1w79apm5gg57np1mb0vkbvlgycp701f051k1lwg7njbqnfxp9cng"
+   "commit": "59b0f6daf219a2e0a0a0389d56471eb2a876f21d",
+   "sha256": "139ffhhjv45fbxqjasv46v0057sjbynqi9x6g7vikrph0js7bnja"
   }
  },
  {
@@ -78377,14 +78864,14 @@
   "repo": "melpa/package-build",
   "unstable": {
    "version": [
-    20201206,
-    2137
+    20201231,
+    1321
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "2807a0a434616c4c7a7039316f7b1e3a352c0c58",
-   "sha256": "0msl4vkxv7hl3k1ffy4j8g93zm8ba7wn81gbm8s6b1ggzyy4pk1s"
+   "commit": "126565141704faaad428bc82ca4379701d0c7c04",
+   "sha256": "1advai81xwvahilbj11g2g3rhxzxi7nmfpaq5dlm8g6qi5814n1x"
   },
   "stable": {
    "version": [
@@ -78586,11 +79073,11 @@
   "repo": "kadena-io/pact-mode",
   "unstable": {
    "version": [
-    20191117,
-    2337
+    20201219,
+    2223
    ],
-   "commit": "220bf985cb31d60f47042d5f424de8b9a589e544",
-   "sha256": "0cz87z2y54lqvsl2xhpjmndccj7051f2v9qpqrjr3qdwmfr6azsw"
+   "commit": "f48a4faf5f8f8435423bda3888eca6ee67ee13a9",
+   "sha256": "1cmw2pxnzdd3y3f78a6l6770z2nmh0f8mydfw13fh5yfqdhv4vgx"
   },
   "stable": {
    "version": [
@@ -78732,16 +79219,16 @@
   "repo": "abo-abo/pamparam",
   "unstable": {
    "version": [
-    20201201,
-    1621
+    20201228,
+    1117
    ],
    "deps": [
-    "hydra",
+    "ivy-posframe",
     "lispy",
     "worf"
    ],
-   "commit": "aab22e32fcdc8e83fecbe248bb35f4583739f955",
-   "sha256": "1kdv5gj2ddiwzy79k4hszc5i3110171bs23vlajq9y31cszjn8jz"
+   "commit": "66827c3fe86a3e50aa2d594e80cccc0fc1064f3b",
+   "sha256": "09yawvlhgb03077q1ypjizccps4bjr3vizgbjch4gjxvg14j9948"
   }
  },
  {
@@ -79357,16 +79844,16 @@
   "repo": "NicolasPetton/pass",
   "unstable": {
    "version": [
-    20190830,
-    2017
+    20201230,
+    1556
    ],
    "deps": [
     "f",
     "password-store",
     "password-store-otp"
    ],
-   "commit": "919d8e3826d556433ab67d4ee21a509d209d1baa",
-   "sha256": "03cf7d51p7d5a9nmlzp1k0n68j4n0di0nmpmcx3vlfd62lk3rs2p"
+   "commit": "a095d24cf06a7b0fbc3add480c101304a91cf788",
+   "sha256": "1nv6xs90zkv3qd0jxjwxlx132cz0ias0i7n2kvih6fp5gfkrzdci"
   },
   "stable": {
    "version": [
@@ -79767,26 +80254,20 @@
   "repo": "sigma/pcache",
   "unstable": {
    "version": [
-    20170105,
-    2214
-   ],
-   "deps": [
-    "eieio"
+    20201226,
+    634
    ],
-   "commit": "1f31433ad0b37a2e68d60ee043a8188ef1ce3176",
-   "sha256": "1bk6rg9qaaasbng6m6mdkjbwdm68zkr7mfwj18l34ivlz0f05sxw"
+   "commit": "893d2a637423bae2cc5e72c559e3a9d1518797c9",
+   "sha256": "1xxbi4lp4ygvciqmy8lp6zn47k954ziz5d95qz1l7a2jix3rxf1p"
   },
   "stable": {
    "version": [
     0,
-    4,
-    2
-   ],
-   "deps": [
-    "eieio"
+    5,
+    1
    ],
-   "commit": "025ef2411fa1bf82a9ac61dfdb7bd4cedaf2d740",
-   "sha256": "1jkdyacpcvbsm1g2rjpnk6hfr01r3j5ibgh09441scz41v6xk248"
+   "commit": "e2f17133e624237f852a3b8c0d7c136252cb8c1a",
+   "sha256": "0zmw3m86illywfn7kn9jgiq4b0hglj34mz0jji834iayjhkpkvr7"
   }
  },
  {
@@ -80094,6 +80575,24 @@
   }
  },
  {
+  "ename": "peertube",
+  "commit": "b6757bf92dc0f8bd1b96a3fd036f76c91b045b6e",
+  "sha256": "0y8vwz7l6aips9ldkd6lyx9l70c89kjwgzi3k6ajq7aw4r23wvlh",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~yoctocell/peertube",
+  "unstable": {
+   "version": [
+    20201222,
+    1655
+   ],
+   "deps": [
+    "transmission"
+   ],
+   "commit": "3ce0df17465bcf4ed1a478f7346dbd8a1a2363af",
+   "sha256": "1p4phw90l91c6xax187011n1n45byyf1pjvsd7mlz0gif78lqz6h"
+  }
+ },
+ {
   "ename": "pelican-mode",
   "commit": "aede5994c2e76c7fd860661c1e3252fb741f9228",
   "sha256": "0z6w5j3qwb58pndqbmpsvy1l77w9jv90bss9qq9hicil8nlk4pvi",
@@ -80370,14 +80869,14 @@
   "repo": "nex3/perspective-el",
   "unstable": {
    "version": [
-    20201203,
-    633
+    20201218,
+    4
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "7d747f50464e5c518bc6963e66d6d378ac3e9add",
-   "sha256": "1y4mjbhig9x0xy7xvd16spgzzrj7jm6izfj04q4d5gv41xpqxfy3"
+   "commit": "94830c4fc18ac460a217be7c46da4272b2217f43",
+   "sha256": "1prymf64fhn69mzwnhqnxlid6b7mz0zgxcsc1q5jcbmgns5qm382"
   },
   "stable": {
    "version": [
@@ -81225,6 +81724,21 @@
   }
  },
  {
+  "ename": "pikchr-mode",
+  "commit": "602e3c99f100286d52a9022800e9aac0b7fa97c5",
+  "sha256": "0rgmy0rckd84jiw3z0ll7pghfyczp4g75rlsda0n6bfdxg7dfk16",
+  "fetcher": "github",
+  "repo": "kljohann/pikchr-mode",
+  "unstable": {
+   "version": [
+    20201212,
+    2228
+   ],
+   "commit": "dd4bb08f189c96039128dddceba26bfdabd1431b",
+   "sha256": "0w964qn9qag4pfwrs9pyv226ivmy1lw4s068hyi9f0jkm2fhd2za"
+  }
+ },
+ {
   "ename": "pillar",
   "commit": "bff55f1182f3bd0bc8a8773921f703168d87de21",
   "sha256": "1lklky3shyvm1iygp621hbldpx37m0a9vd5l6mxs4y60ksj6z0js",
@@ -81584,11 +82098,11 @@
   "repo": "juergenhoetzel/pkgbuild-mode",
   "unstable": {
    "version": [
-    20200818,
-    1742
+    20201230,
+    1310
    ],
-   "commit": "887c01cb06420501c7780fb01a8a76bdb0864cca",
-   "sha256": "17v71sd1i7wyvjzz0nir7p28cskzgws4dcpm83ch1khhljh3r7kl"
+   "commit": "284c78151a73b4813e8d0ff329456826a9fb5622",
+   "sha256": "1hpnydm6c4rw01cmph16d9rqlnb377v9l9r3gcbj4axfnffgr4py"
   },
   "stable": {
    "version": [
@@ -81607,14 +82121,14 @@
   "repo": "abo-abo/plain-org-wiki",
   "unstable": {
    "version": [
-    20200617,
-    828
+    20201217,
+    1027
    ],
    "deps": [
     "ivy"
    ],
-   "commit": "5e32e7e6216e24d515624008fa0898077403aa7f",
-   "sha256": "0d3nhvkzzharjv54w3rinqcpwhqb61flgvvcngfdxkrgs1yazaqk"
+   "commit": "faeeb54ca808bbf0f4380a938e75805b7a78dbf7",
+   "sha256": "02nv0rsky418zd69icxbim1xw66n8rs586i0lnl1nczjdx8vcmr9"
   }
  },
  {
@@ -81655,6 +82169,24 @@
   }
  },
  {
+  "ename": "planemo-mode",
+  "commit": "a6d5c914a3cfa2e1c975b429f22a086c6da908ed",
+  "sha256": "0nvynr73q42l6kd9cj4pai95qpyirq7amsb518f9c45q5y175rfc",
+  "fetcher": "gitlab",
+  "repo": "mtekman/planemo-mode.el",
+  "unstable": {
+   "version": [
+    20201216,
+    1122
+   ],
+   "deps": [
+    "dash"
+   ],
+   "commit": "9a981f79a2727f87689ae5a07368c41d35902a67",
+   "sha256": "1hx1mdbb25hggg4kwga97m3wysm0yj11hnnycmbwa85c9rn96jzv"
+  }
+ },
+ {
   "ename": "planet-theme",
   "commit": "855ea20024b606314f8590129259747cac0bcc97",
   "sha256": "1hr5m08qn51r9804jd0k95ryz3frzkk1dp6wpybil6bf67a2l5lr",
@@ -82994,15 +83526,15 @@
   "repo": "kostafey/popup-switcher",
   "unstable": {
    "version": [
-    20200701,
-    2034
+    20201216,
+    2229
    ],
    "deps": [
     "cl-lib",
     "popup"
    ],
-   "commit": "68bbe23f7ceaca889529be95762925ac29515545",
-   "sha256": "18nfrhmdjsgmrpr82qqmxj3rdv85ml2pkssrkrljzzgaxavx5ind"
+   "commit": "166a90c13310b829bd392235bf7cc1e45188faff",
+   "sha256": "1sgsryc5g2sxsr0mz8r8gs5i4kfh2mnxqs0vpkbmlsbcl40inm0k"
   }
  },
  {
@@ -83114,11 +83646,11 @@
   "repo": "tumashu/posframe",
   "unstable": {
    "version": [
-    20201201,
-    659
+    20201224,
+    2318
    ],
-   "commit": "e1552c82dffaadc5e7de09a44880a498197ffbee",
-   "sha256": "0qzi4ivmv65x0gn6wbfz8w2m6pg476vk0041l599mnrh0g87dfw7"
+   "commit": "ae8ac91744010c8975f07cf18282f58ce56605d0",
+   "sha256": "1y6d4h0lzgg9xmhswkd0d7rjrqs08mpngylqypycqn90rz0gb6hd"
   },
   "stable": {
    "version": [
@@ -83397,11 +83929,11 @@
   "repo": "raxod502/prescient.el",
   "unstable": {
    "version": [
-    20201125,
-    1428
+    20201214,
+    230
    ],
-   "commit": "5d139e5b1fe03ccaddff8c250ab8e9d795071b95",
-   "sha256": "11hqy8chh29lrzk04dp3rwkvf4bj0xvg9hli3w1zx968x98lfvj0"
+   "commit": "2af94ce194f9b8d7087f7b49ecd986083f7eb753",
+   "sha256": "19wwnl72gh4ar2q6gcp6k6n4gdvamdjj6lgc0n4mk7j1qrylp3hf"
   },
   "stable": {
    "version": [
@@ -83465,15 +83997,15 @@
   "repo": "jscheid/prettier.el",
   "unstable": {
    "version": [
-    20201209,
-    837
+    20201222,
+    953
    ],
    "deps": [
     "iter2",
     "nvm"
    ],
-   "commit": "673698ed70f2205230a052dd98f2cd2f1dd0c21f",
-   "sha256": "1r6prwaf3w6s2byzb10zzs2n105dayz998gh0ifmlla0mw58rnhy"
+   "commit": "5b584f21b8dd9a53ceb7745c2d91c513358892e7",
+   "sha256": "1m5298i60s1rdy2r8wnyialkfbafd99wp9q0bzsbr7grq3cdp2ic"
   },
   "stable": {
    "version": [
@@ -83617,26 +84149,26 @@
   "repo": "alphapapa/prism.el",
   "unstable": {
    "version": [
-    20200407,
-    1148
+    20201228,
+    141
    ],
    "deps": [
     "dash"
    ],
-   "commit": "b618f2cea2dbf7c13d8b4fec1760c346eb9ab036",
-   "sha256": "1fn6514ii2z1xbjzmp0h1mhxl1yaqqk4n6zgswhxdywni34cb6hs"
+   "commit": "e746822cd7d8a0dcf56902d32fbadb3297690590",
+   "sha256": "09pskvha06picdlgclvwijng712s3xd5mr3kxxpp6gb02qsiy3yy"
   },
   "stable": {
    "version": [
     0,
     2,
-    2
+    3
    ],
    "deps": [
     "dash"
    ],
-   "commit": "b618f2cea2dbf7c13d8b4fec1760c346eb9ab036",
-   "sha256": "1fn6514ii2z1xbjzmp0h1mhxl1yaqqk4n6zgswhxdywni34cb6hs"
+   "commit": "d1d8121eb552a7c29c25cfa9ace19cba4ae1902c",
+   "sha256": "0m0jrgk09dp1n1l8nf1mlvhwrk8gnv4yclmh12vf9nmxidgdwspp"
   }
  },
  {
@@ -84031,14 +84563,14 @@
   "repo": "bbatsov/projectile",
   "unstable": {
    "version": [
-    20201208,
-    2044
+    20201227,
+    1430
    ],
    "deps": [
     "pkg-info"
    ],
-   "commit": "0ff73ecf7f25f47382e2d28c8ab232c18609d515",
-   "sha256": "1fbsvl74271hrlii73lc9g0hk67mrp0dm1zbhbrc9b2cnc2nh88j"
+   "commit": "1f2887696ec4fa7ecc005f258da276c445db039c",
+   "sha256": "05xrf805slj793mszkzgckhcwf13lbkr4ns2rkqw59cclj3yly1l"
   },
   "stable": {
    "version": [
@@ -84462,11 +84994,11 @@
   "repo": "ProofGeneral/PG",
   "unstable": {
    "version": [
-    20201207,
-    2131
+    20201226,
+    2208
    ],
-   "commit": "ad5105b58374f9ed5f83d5272688f5475bc0293b",
-   "sha256": "1iwhaa16nxd943lhzq85d4i8d1cjp2phb5qmn6jdk19yc5c40dvc"
+   "commit": "2d94aa0aabf0aa7087f8833e1c61d95a034e2d13",
+   "sha256": "0gbh8cpz4cd03892jg1rfl2azs3ahbbk7mcsq3pwczf7v4vllqkl"
   },
   "stable": {
    "version": [
@@ -84569,8 +85101,8 @@
     20200619,
     1742
    ],
-   "commit": "26c0fbc15bd2ed8371df3f737951804f0a92db4b",
-   "sha256": "0p65cxzw8rlg36fva5is6kxgiwzshjaf0jk3l6vaylipq4gv86br"
+   "commit": "635156e40637d65650e91a21afec10ad8fac5c19",
+   "sha256": "1xkjb57rbrrhy5fidfmqjhij891i4k3j0cm900464z44s9mq2ypf"
   },
   "stable": {
    "version": [
@@ -84621,11 +85153,11 @@
   "repo": "stardiviner/proxy-mode",
   "unstable": {
    "version": [
-    20200913,
-    38
+    20201214,
+    727
    ],
-   "commit": "efe2ad19a20898c145fd63b5f85f25b662f6ea43",
-   "sha256": "11l8v3igwwx0n0l3a069zzwzzj9q0p99l9x91sxzgw8v0g438vjx"
+   "commit": "dbf163413e9e404c652cc0ea7185c623016a38e1",
+   "sha256": "1c5m0gb4qms28vahvi5kam1qf1hnpd9v1f6cwxiqdj8aka9ll8sd"
   }
  },
  {
@@ -84813,14 +85345,14 @@
   "repo": "nbfalcon/ptemplate",
   "unstable": {
    "version": [
-    20201126,
-    1936
+    20201213,
+    1355
    ],
    "deps": [
     "yasnippet"
    ],
-   "commit": "af370c74f5c2a780c0dfd2bb3e4a2388c11202cc",
-   "sha256": "0na5lrx3kn2j76vbc84qns3kym2pn67zv2s4b5whm1bpwqsr5ayl"
+   "commit": "7caca3ed9f2c1bce77943d8ef3db6721e2b027e5",
+   "sha256": "0p23rlhv7xqwhzd0a2ybvn799xpr2n7jdinx5r07sdxmsjrmgzv9"
   }
  },
  {
@@ -84837,8 +85369,8 @@
    "deps": [
     "ptemplate"
    ],
-   "commit": "17c3f270a97ea3f018536a7b8fb81101e46b1090",
-   "sha256": "1qmcvy5dwln2c7r6xw5z00d0h80ln799jv2qhbhcga24mz2f21zd"
+   "commit": "40cf3031f0fb5bbb75e1f35db3186fd1aabe7262",
+   "sha256": "046wmvhj5bf68klb4gzb0ijgib89pw2hmm9yrykpi8c8fnvzgdb0"
   }
  },
  {
@@ -85585,8 +86117,8 @@
     20200503,
     1624
    ],
-   "commit": "6e1cca143f2e0c6f20643573bfddb53ec02e66b4",
-   "sha256": "160aiz82wf6j6dv90rnzmlx79ijf0cl6xzixa7pa1nh77nqd1pq6"
+   "commit": "3a065a16f0826f3d46025209b11d30a1fd5b3b49",
+   "sha256": "1p9q5bnkv7jwy4f7d0fq6c72z7qqcl7vwgq55wh46pzhnrvl4f3d"
   }
  },
  {
@@ -85827,11 +86359,11 @@
   "repo": "python-mode-devs/python-mode",
   "unstable": {
    "version": [
-    20201203,
-    2019
+    20201230,
+    2132
    ],
-   "commit": "429c52ae6564c3e6d9cebd69e9726784eaf41b81",
-   "sha256": "1fkc7994hgw4iprklixyy962yw3p2mby202kcs9bnjq696j25kh7"
+   "commit": "41b123b4d4906cce7591900a952bb75a38c5296c",
+   "sha256": "1dl6vpwqxrdy26gh8kw5xkyj1ka88plm60c6ka2g6ji2s851b6ki"
   },
   "stable": {
    "version": [
@@ -85985,11 +86517,11 @@
   "repo": "jorgenschaefer/pyvenv",
   "unstable": {
    "version": [
-    20201202,
-    1040
+    20201227,
+    1623
    ],
-   "commit": "0bf4b87068e9040fc99afa85af1992247dd7aacd",
-   "sha256": "10dcigv25bs115d3m5nibvh1sxg99ni32cy5pyz616f2wz1zbph4"
+   "commit": "9b3678bc29192d2dba64df90fbdb17393ef8d877",
+   "sha256": "1pxinj6gc0mga0sl7y5ys3xsy94c33cbgahw418c36lhj8xxx21n"
   },
   "stable": {
    "version": [
@@ -86008,11 +86540,11 @@
   "repo": "psaris/q-mode",
   "unstable": {
    "version": [
-    20201011,
-    103
+    20201231,
+    140
    ],
-   "commit": "df2123d4fe5c05a995721af8e8da98ff4a1f0717",
-   "sha256": "074lhq3qkran6kxk9lm6a095gspyxrq79xvsqzm50q87xk6ala3a"
+   "commit": "e4499e7fcdfafd8d1825eb705c34a7748ca5ee64",
+   "sha256": "1bb9w75rxvsx024y0yx41rrskkmhpyfslw3xi414d2w5wmh82zbm"
   }
  },
  {
@@ -86093,11 +86625,11 @@
   "repo": "LesleyLai/emacs-qtcreator-theme",
   "unstable": {
    "version": [
-    20201129,
-    1620
+    20201215,
+    1523
    ],
-   "commit": "ca5fd9a4552a7fc004579ed59c69fbc8f0083ac4",
-   "sha256": "1askzfnysv9nccf1mrkzk834ak5lja416b5mi5z5p7mrnn9vfn2d"
+   "commit": "515532b05063898459157d2ba5c10ec0d5a4b1bd",
+   "sha256": "00p7fapvprfkah14j1isrwnbq8npgn3yw3k4z8ki14mqhgras4hf"
   }
  },
  {
@@ -86149,8 +86681,8 @@
     20201022,
     638
    ],
-   "commit": "8e59bf825629388384324b3eea5d51958d7fd34e",
-   "sha256": "1hrhhiz0dd6403yv8jnjq6zjl1zjjaqxq97yvpwd4l0sx1sx0h6m"
+   "commit": "6aceac05fb8ab23838adc0d5956c0fc439cc84ce",
+   "sha256": "1f0wqrqqal6a4grcgxxxn0h6bv7riqhi2gcdh0rnwb19qdaqczdn"
   },
   "stable": {
    "version": [
@@ -86442,15 +86974,15 @@
   "repo": "greghendershott/racket-mode",
   "unstable": {
    "version": [
-    20201123,
-    1623
+    20201220,
+    1343
    ],
    "deps": [
     "faceup",
     "pos-tip"
    ],
-   "commit": "3563081f7de57198d5adba856a79f67b3b5ad675",
-   "sha256": "061q7sb1a9q0gipfw4na4418cpd5wdfgn4iwpdaf61g0w20y0qm2"
+   "commit": "6ec7c4c17b2cd7603df6d0e267d99edbdde65794",
+   "sha256": "19gsxwxdmzis97v7m035abrg028qn5rjsjbwy21mhh3kq0anzryg"
   }
  },
  {
@@ -86563,14 +87095,14 @@
   "repo": "stardiviner/emacs-rainbow-fart",
   "unstable": {
    "version": [
-    20201130,
-    639
+    20201228,
+    6
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "fe5b01ec36bc5db7f578ba94593ac92fd653ea5e",
-   "sha256": "067zfgsbq7whg1mvwbp2j5f8i1x128nmv1b75vhgqvfykbxr0b47"
+   "commit": "63b6a77a38235e7917d200886922156506853c42",
+   "sha256": "1pfpinplhkn5d91rlbgh359w4d7hp399vpximipj69bnx3nizic6"
   }
  },
  {
@@ -87121,16 +87653,16 @@
   "repo": "realgud/realgud",
   "unstable": {
    "version": [
-    20200923,
-    610
+    20201221,
+    1435
    ],
    "deps": [
     "load-relative",
     "loc-changes",
     "test-simple"
    ],
-   "commit": "ff660011c82c6af504915833e2d981a547b7ad58",
-   "sha256": "1cqzrp1fk4hk28fh0q9d448cjv47qgvxy2z786x2hpmb42izrc76"
+   "commit": "f73c039a340579a98e6716c901fd4e80e7eaa2eb",
+   "sha256": "0v6dysd9rzhb8aw3ws3wayprrx9ll59g3isib7ni2fl6krmvyjlx"
   },
   "stable": {
    "version": [
@@ -87573,6 +88105,21 @@
   }
  },
  {
+  "ename": "recomplete",
+  "commit": "4a3938f413ff1ceeb7ed6aedf0e3067073208068",
+  "sha256": "0ym5l5cpx464hxzww4m35rrlr4c5h8kl6090w2a7hck47kwyv8ni",
+  "fetcher": "gitlab",
+  "repo": "ideasman42/emacs-recomplete",
+  "unstable": {
+   "version": [
+    20201202,
+    126
+   ],
+   "commit": "d0e61f19a29108d676849e0925f00d002a26d32d",
+   "sha256": "1r3fmc5c2aqfqpfzdxkj6qi86j8vwmrj1gk3xz263pl3q96pzcya"
+  }
+ },
+ {
   "ename": "recover-buffers",
   "commit": "43b33cfb794c35de78fde6eabb71ffe01049d23d",
   "sha256": "0g40d7440hzlc9b45v63ng0anvmgip4dhbd9wcm2sn8qjfr4w11b",
@@ -87656,11 +88203,11 @@
   "repo": "minad/recursion-indicator",
   "unstable": {
    "version": [
-    20201206,
-    139
+    20201219,
+    1739
    ],
-   "commit": "7f737f667441f538c283cc1933e95cea844f1b04",
-   "sha256": "1lbfb8gl5jzfl4j5p5ab8ybgsa2zhg0ix3ld726ch0p8pcrjl3f9"
+   "commit": "1f46a5ca366f0320dcd5ef9ee84de6e14e162101",
+   "sha256": "1jixzkswqa8zbj3jf0m8jh5964ffjflm92iwjq7b7py6hyq2ksnk"
   }
  },
  {
@@ -88599,28 +89146,28 @@
   "repo": "jcs-elpa/reveal-in-folder",
   "unstable": {
    "version": [
-    20201022,
-    533
+    20201224,
+    1242
    ],
    "deps": [
     "f",
     "s"
    ],
-   "commit": "30d9db25ca84e1bf3f4f8eda1a5fa23bb8e69182",
-   "sha256": "0hx77c7cygax0xqk12rj6ci9rvq5r9xyynhlfapb9ldzzp31g0dw"
+   "commit": "29240e4845a44d10134652b427580301318f1288",
+   "sha256": "0ckaq8z38mj17abzarvq0awsqvwnff22mxa6pgsl7ks67hzq5kb4"
   },
   "stable": {
    "version": [
     0,
     1,
-    0
+    1
    ],
    "deps": [
     "f",
     "s"
    ],
-   "commit": "30d9db25ca84e1bf3f4f8eda1a5fa23bb8e69182",
-   "sha256": "0hx77c7cygax0xqk12rj6ci9rvq5r9xyynhlfapb9ldzzp31g0dw"
+   "commit": "29240e4845a44d10134652b427580301318f1288",
+   "sha256": "0ckaq8z38mj17abzarvq0awsqvwnff22mxa6pgsl7ks67hzq5kb4"
   }
  },
  {
@@ -88708,11 +89255,11 @@
   "repo": "mswift42/reykjavik-theme",
   "unstable": {
    "version": [
-    20180823,
-    1544
+    20201219,
+    947
    ],
-   "commit": "2cd0043ae6d046f812a95bb26398ea23141beccc",
-   "sha256": "0rk0fw5b1lz7if779h3bngc86iix8v9k8bz3zw8icwfwmjsgg1fh"
+   "commit": "f6d8e83946633603234cd1dac725e17447f40bce",
+   "sha256": "07bbn4r4ry439b8cnqbzq20nh1w0n3rxsjsir9cfznp5rnc1b174"
   }
  },
  {
@@ -88750,15 +89297,15 @@
   "repo": "dajva/rg.el",
   "unstable": {
    "version": [
-    20201018,
-    1400
+    20201226,
+    1050
    ],
    "deps": [
     "transient",
     "wgrep"
    ],
-   "commit": "151f3ed7dd0d5829a8aacc0e911d445ad00046cd",
-   "sha256": "13c9hlf3hrvqzcmbaqqbr91fz9wcf7fll4czvxsc3c58bhfqcsan"
+   "commit": "7055a673b557de8b886e08e15f9578676d729195",
+   "sha256": "0jf0z8n292qc3xahj18gl8jj41fdhhbkgi0yjmvv9lmmnj874waz"
   },
   "stable": {
    "version": [
@@ -88907,8 +89454,8 @@
   "repo": "DogLooksGood/emacs-rime",
   "unstable": {
    "version": [
-    20201129,
-    1748
+    20201227,
+    717
    ],
    "deps": [
     "cl-lib",
@@ -88916,8 +89463,8 @@
     "popup",
     "posframe"
    ],
-   "commit": "0faa6e40d272fa79a4ce4f39901a811fc8191de0",
-   "sha256": "10hqalawki31q0z66n46sw57cc30iaf7hgcjkplnk79vp4290xph"
+   "commit": "c797c443886aca6083737a3644e45af51f5b6760",
+   "sha256": "12r94srq41sxnss4b9bqvgccmvmzjgy3hgncb5p4vq26iln2cbxm"
   },
   "stable": {
    "version": [
@@ -89122,14 +89669,14 @@
   "repo": "dgutov/robe",
   "unstable": {
    "version": [
-    20201119,
-    316
+    20201214,
+    2255
    ],
    "deps": [
     "inf-ruby"
    ],
-   "commit": "f04dcc7f8d4c14ad4761bd534bf58a49a5f2957f",
-   "sha256": "0yl9casjj9sya03mgcyans5fh3kbrkl1g7g566nlf4n77yrajqwm"
+   "commit": "596d27e37440cad6cd65dcf83d03c502efc01eb4",
+   "sha256": "09gc6yy2d5z75s37zw1xiv0qh44nvf4j24w8qd15270wkaczfixa"
   },
   "stable": {
    "version": [
@@ -89361,15 +89908,15 @@
   "repo": "pezra/rspec-mode",
   "unstable": {
    "version": [
-    20200615,
-    1443
+    20201228,
+    1319
    ],
    "deps": [
     "cl-lib",
     "ruby-mode"
    ],
-   "commit": "f1029cad2a8d9fd096e9a0f1ae9e7d7e2c8bd1ec",
-   "sha256": "02818knhbnqqnfmlhzr2ak0i6cv6pmbxw2icns2lg8vfr430c286"
+   "commit": "92ef785010f6a68cbf73861e75ac6cf4e1832291",
+   "sha256": "1di1b9psmaqzhp0ik3niwgy43i0vj16m5fx7xnsyi0bvwv45cab8"
   },
   "stable": {
    "version": [
@@ -89392,19 +89939,19 @@
   "repo": "Andersbakken/rtags",
   "unstable": {
    "version": [
-    20201008,
-    1707
+    20201218,
+    1821
    ],
-   "commit": "63a7d9b733def9fe76568f81321a65a450829575",
-   "sha256": "1nnjhfz7xm1ax38xkz0jvgzhfczlc4r9xlpzc24sisabkvlkivyw"
+   "commit": "39339388256df662d0084b4a094d03e52748f9e8",
+   "sha256": "0wp4mygsxzibra2p3m5rn9m0yd3fscd795k5xa0wxi5pwddv7dlg"
   },
   "stable": {
    "version": [
-    2,
-    38
+    3,
+    23
    ],
-   "commit": "9687ccdb9e539981e7934e768ea5c84464a61139",
-   "sha256": "1r6l7dgr2ch586zrdi5l8fhdj4qdva8ldz7cjvi2byc2pd2xs8rx"
+   "commit": "7169ed577d676690a3c6f0025b54e8477d80eacf",
+   "sha256": "1i94dizg3wvkvq8c2pf5bzkx8zwzcfi4p3l73c779y145bygssnq"
   }
  },
  {
@@ -89421,8 +89968,8 @@
    "deps": [
     "rtags"
    ],
-   "commit": "63a7d9b733def9fe76568f81321a65a450829575",
-   "sha256": "1nnjhfz7xm1ax38xkz0jvgzhfczlc4r9xlpzc24sisabkvlkivyw"
+   "commit": "39339388256df662d0084b4a094d03e52748f9e8",
+   "sha256": "0wp4mygsxzibra2p3m5rn9m0yd3fscd795k5xa0wxi5pwddv7dlg"
   },
   "stable": {
    "version": [
@@ -89940,24 +90487,22 @@
   "repo": "brotzeit/rustic",
   "unstable": {
    "version": [
-    20201202,
-    846
+    20201219,
+    1952
    ],
    "deps": [
-    "async",
     "dash",
     "f",
     "ht",
     "let-alist",
     "markdown-mode",
-    "projectile",
     "s",
     "seq",
     "spinner",
     "xterm-color"
    ],
-   "commit": "91ad5db27b86bb2ba6f3019b764d0f45ec93f484",
-   "sha256": "02d6kn7lj1ql6yycvprzdicxb0n6ilb2xbc2qq9q7yn1ibyfymdj"
+   "commit": "25d14f1794e55b7ceba4f7560c1fc27b53bcc32d",
+   "sha256": "0vvqlsmi9idkirz5i1clffrh0jcliigplbib7ayjwpyrbqqlacpx"
   }
  },
  {
@@ -89968,20 +90513,20 @@
   "repo": "senny/rvm.el",
   "unstable": {
    "version": [
-    20201026,
-    424
+    20201222,
+    17
    ],
-   "commit": "b2498a4a6952a32301544e103b31dc3b8df271ee",
-   "sha256": "0w6h02z82iyjxx9ra05yw6389mlfwmzmb6bh2vcy5093f2yfpk7w"
+   "commit": "c1f2642434b0f68d9baa0687127079ecd884ba12",
+   "sha256": "1fmrll8ffa90hi62a1kkxf8z952xglzmf2qb4l4j5wkh0yzyvnln"
   },
   "stable": {
    "version": [
     1,
     4,
-    1
+    2
    ],
-   "commit": "b2498a4a6952a32301544e103b31dc3b8df271ee",
-   "sha256": "0w6h02z82iyjxx9ra05yw6389mlfwmzmb6bh2vcy5093f2yfpk7w"
+   "commit": "16617c1fc7c0513e514cd658a93b5e5be2ff618f",
+   "sha256": "1j508b4frig410svh9cl4zrqgcp4z3p33r6mih6iil3n20akvyxn"
   }
  },
  {
@@ -90108,16 +90653,16 @@
   "repo": "sagemath/sage-shell-mode",
   "unstable": {
    "version": [
-    20201108,
-    943
+    20201225,
+    1011
    ],
    "deps": [
     "cl-lib",
     "deferred",
     "let-alist"
    ],
-   "commit": "c19c3c681142154d6068d1e0236fea825eda2fe2",
-   "sha256": "10fmm38rlirbrjrkxp73x2wvcb1nkvp0pbg7czwzd6pilxlwsvcq"
+   "commit": "7fc47d5eab0efac009d5a9316e3dfa223595ab5a",
+   "sha256": "05r8z8wvsdwkbhsv5czrjwg5fq7232vsfcvkk7vj8arkfnhyg1yz"
   },
   "stable": {
    "version": [
@@ -90332,14 +90877,14 @@
   "repo": "nicolaisingh/saveplace-pdf-view",
   "unstable": {
    "version": [
-    20201130,
-    222
+    20201216,
+    934
    ],
    "deps": [
     "pdf-tools"
    ],
-   "commit": "88e07be656544bcdfa332d25880abff168ca1423",
-   "sha256": "0zn6mhq2cqjfir91w9zry6pi5r8jp4i2437lq8xfjdirrpa55lmy"
+   "commit": "b0370912049222f3a4c943856de3d69d48d53a35",
+   "sha256": "1ky1d3aycc1r96z3fy484p99xlmry9y9z61s7l7mw0m231k7kpbd"
   }
  },
  {
@@ -90430,8 +90975,8 @@
     20200830,
     301
    ],
-   "commit": "1896c18602265c9b41ff9c1b320699dd0b9b813c",
-   "sha256": "1d3r0r7932w7m3nmv435s0m8qv0ph3a40jpqi412yg7406l920l4"
+   "commit": "4cfbf9985ed25b8ed919d0e59d5af31acdcbe21a",
+   "sha256": "0a6c6d0gq1v21nxdjrxnbhhfag6lfx452vxjb67syibiplbigndj"
   }
  },
  {
@@ -91186,11 +91731,11 @@
   "repo": "raxod502/selectrum",
   "unstable": {
    "version": [
-    20201207,
-    1851
+    20201226,
+    1908
    ],
-   "commit": "632a22cd5edc34611d74eee3cd95fcaa19e699b4",
-   "sha256": "143chfxkbwa096l4r01pcj3slzzhvd8b0vvgvb8h0g4af90yfksn"
+   "commit": "4106b216f9b3ccf8960abe89fb9863c570a6f376",
+   "sha256": "045khkm5b62yagvw0588mmj91b6qapjmp7pzmj0x5i622k83zdxn"
   },
   "stable": {
    "version": [
@@ -91209,15 +91754,15 @@
   "repo": "raxod502/prescient.el",
   "unstable": {
    "version": [
-    20201026,
-    1413
+    20201214,
+    227
    ],
    "deps": [
     "prescient",
     "selectrum"
    ],
-   "commit": "5d139e5b1fe03ccaddff8c250ab8e9d795071b95",
-   "sha256": "11hqy8chh29lrzk04dp3rwkvf4bj0xvg9hli3w1zx968x98lfvj0"
+   "commit": "2af94ce194f9b8d7087f7b49ecd986083f7eb753",
+   "sha256": "19wwnl72gh4ar2q6gcp6k6n4gdvamdjj6lgc0n4mk7j1qrylp3hf"
   },
   "stable": {
    "version": [
@@ -92161,8 +92706,8 @@
     20201021,
     552
    ],
-   "commit": "267d4220715eabacca1ad1661d76be5ceed7072c",
-   "sha256": "0xyrvvrckn8agg86kkr6821bj07s5an8w226k964f148jn84n86q"
+   "commit": "085de54acae027e7f0d0b9bf34d3142993234fd3",
+   "sha256": "14klj49iwykqj1j1q03fvhpj44fg0h4rzh0mbn7xzm4iv0z3222c"
   }
  },
  {
@@ -92471,13 +93016,13 @@
    "version": [
     0,
     3,
-    2
+    3
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "dccd8f7d6af2dde96718f557b37bc25adc61dd12",
-   "sha256": "103yvfgkj78i4bnv1fwk76izsa8h4wyj3vwj1vq7xggj607hkxzq"
+   "commit": "081d6b01e3ba0e60326558e545c4019219e046ce",
+   "sha256": "1bnmrwrhra6cpc3jjgwwzrydj5ps7q2dlkh2ag4j7rkyv4dlk351"
   }
  },
  {
@@ -92723,11 +93268,11 @@
   "repo": "gexplorer/simple-modeline",
   "unstable": {
    "version": [
-    20201130,
-    844
+    20201218,
+    840
    ],
-   "commit": "6bb96a00c5fcce48e681d8e75b000b4047815181",
-   "sha256": "0fgsrbpn8ybksrb0f1z7dzg1v5pshijv9ndr21hdhcwl1cwcv9f1"
+   "commit": "38973dec2912e2136d8fde5f2667063863fee15a",
+   "sha256": "0y70hc3x8rxr8b5x8d0a23gpcadzrn43wmrsvqqxmmkqqp45n7gj"
   },
   "stable": {
    "version": [
@@ -92915,14 +93460,14 @@
   "repo": "laishulu/emacs-smart-input-source",
   "unstable": {
    "version": [
-    20201125,
-    1155
+    20201223,
+    547
    ],
    "deps": [
     "terminal-focus-reporting"
    ],
-   "commit": "20479e5f4f26d18bd99c32bb0d6fb49d30904812",
-   "sha256": "1slrkkwc1fampcqaqc88d77kdcmanv3zj7qq6p59bqh9ynpsgy40"
+   "commit": "0f2dcbeef2f924b7ae57a198472b2e059c92cee0",
+   "sha256": "05fpzg98a3s2rngyjqk4mp6rwln0x78nkqbsx5izivvx85ss26sq"
   }
  },
  {
@@ -93167,27 +93712,28 @@
   "repo": "slime/slime",
   "unstable": {
    "version": [
-    20200810,
-    224
+    20201216,
+    2342
    ],
    "deps": [
     "cl-lib",
     "macrostep"
    ],
-   "commit": "fb12bac676ab51b75be19197e21ab4674479d627",
-   "sha256": "1lqd6mk87kmmyb83qf4h0i5wpq3mnqwzl9gdcjildy7afsp3f1fk"
+   "commit": "15cf0609d30255405957bf0612fd6291fea438bc",
+   "sha256": "11zb8aaay1yirql638ssbap4rnxdf6a4lwmqm761grgssk44rqpd"
   },
   "stable": {
    "version": [
     2,
-    26
+    26,
+    1
    ],
    "deps": [
     "cl-lib",
     "macrostep"
    ],
-   "commit": "fb12bac676ab51b75be19197e21ab4674479d627",
-   "sha256": "1lqd6mk87kmmyb83qf4h0i5wpq3mnqwzl9gdcjildy7afsp3f1fk"
+   "commit": "15cf0609d30255405957bf0612fd6291fea438bc",
+   "sha256": "11zb8aaay1yirql638ssbap4rnxdf6a4lwmqm761grgssk44rqpd"
   }
  },
  {
@@ -93392,19 +93938,20 @@
   "repo": "joaotavora/sly",
   "unstable": {
    "version": [
-    20201208,
-    1836
+    20201218,
+    2227
    ],
-   "commit": "41b1cc8087a435ea646e0b45feaaea1da14f5e29",
-   "sha256": "0bvr2rp5bc11f2fzw3r8y0625lk7z770c12ljbvhf5bm5m82h56y"
+   "commit": "613f597ecf72eb5719d4e13a4bfdbeb91373bf09",
+   "sha256": "0xayq42akw3aliagxxbnfqx6s0q3k6hbjn3r1481fpycs0ifpg9c"
   },
   "stable": {
    "version": [
     2,
-    22
+    26,
+    1
    ],
-   "commit": "8d9fdf34fe542ec280ee042ee7bdea16e512d3c0",
-   "sha256": "0zsliqfd92ivg2y2w1z6scn6i3w658x8bi1wd0rvf6mddc74lvj6"
+   "commit": "15cf0609d30255405957bf0612fd6291fea438bc",
+   "sha256": "11zb8aaay1yirql638ssbap4rnxdf6a4lwmqm761grgssk44rqpd"
   }
  },
  {
@@ -93723,14 +94270,14 @@
   "repo": "daviderestivo/smart-mode-line-atom-one-dark-theme",
   "unstable": {
    "version": [
-    20200106,
-    2016
+    20201229,
+    1711
    ],
    "deps": [
     "smart-mode-line"
    ],
-   "commit": "e281b52b164a477fcdb6a468976e8a1bdde1ca26",
-   "sha256": "0m4c63anrmbbdaf0chiagzgkcgbi30bhkjx3v7c4i9nk98yz9zkw"
+   "commit": "0c360f390cbeea59dceb99e8c499e0db7c323510",
+   "sha256": "1hm2mg4360p19fjmagds3bimclsxx6c0qy5z0f25fdk8zzzccmak"
   }
  },
  {
@@ -93902,15 +94449,15 @@
   "repo": "Fuco1/smartparens",
   "unstable": {
    "version": [
-    20201128,
-    2212
+    20201229,
+    1937
    ],
    "deps": [
     "cl-lib",
     "dash"
    ],
-   "commit": "b8bdd9265e6950e038bbcd68ead5582c6964baf2",
-   "sha256": "1dlyp801fw3cmpi6ks3sq1kpz3wqzgh4i114pn333hifgbzl5p23"
+   "commit": "63695c64233d215a92bf08e762f643cdb595bdd9",
+   "sha256": "0yx9xamrpjpn6qshcdzc43pj3avb0nq4q40nmid28vb4giab4927"
   },
   "stable": {
    "version": [
@@ -94245,15 +94792,15 @@
   "repo": "kyleam/snakemake-mode",
   "unstable": {
    "version": [
-    20201109,
-    315
+    20201224,
+    1744
    ],
    "deps": [
     "cl-lib",
     "magit-popup"
    ],
-   "commit": "0e4ef118ca3af4a6851fe670cf8fe7472ba18393",
-   "sha256": "0cl956wav9vnsxz0ky0ykcjxa3m43zld8ybn24r5yy54kr00nicm"
+   "commit": "592901893f297099ffb759b4d1359bcd3411d1a9",
+   "sha256": "0rmvzrkx56zrlziln9cbq9p7lpm7jlv6i1mfrzrqhri239xlybn4"
   },
   "stable": {
    "version": [
@@ -94390,6 +94937,21 @@
   }
  },
  {
+  "ename": "snow",
+  "commit": "4c8024abdb9843296860aaaf1528bc9dfbfbc6c7",
+  "sha256": "00wmb43znvqp57b5risznd4mwkvwfy65vfp922ix761hav6k0dpy",
+  "fetcher": "github",
+  "repo": "alphapapa/snow.el",
+  "unstable": {
+   "version": [
+    20201226,
+    2348
+   ],
+   "commit": "d3d7509c89c598be73f912aca34097ad4898794c",
+   "sha256": "0m3wfjmjnswhvki05jp6ih7k65qg8gj91x1nhvavg7pczd398r29"
+  }
+ },
+ {
   "ename": "soar-mode",
   "commit": "818113ef6f93cc86fd30441d508012e5baa71893",
   "sha256": "0jm4vllbppzs2vvkky96hwdv581142dxdfssrp6wsd56j38nr9sd",
@@ -95229,6 +95791,21 @@
   }
  },
  {
+  "ename": "spdx",
+  "commit": "fb570e4a9a89319443c0df08980e7427aad7f1a0",
+  "sha256": "1yg5rks9j4rbx14fh6d8gyggmw62gc9jfnid10175czd4nzj8vab",
+  "fetcher": "github",
+  "repo": "condy0919/spdx.el",
+  "unstable": {
+   "version": [
+    20201219,
+    1245
+   ],
+   "commit": "883b3e32573fad834ee4697924c8e57ac3007344",
+   "sha256": "09h26kwhh95xngb0p8y88xp8nq5vw4rp1mv960kyx41v5x7mmma6"
+  }
+ },
+ {
   "ename": "speech-tagger",
   "commit": "db80aa5d95846ee02a9d762aa68325ab5e37dcf7",
   "sha256": "0sqil949ny9qjxq7kpb4zmjd7770r0qvq4sz80agw6a27mqnaajc",
@@ -95567,16 +96144,16 @@
  },
  {
   "ename": "spray",
-  "commit": "e4f5053aa4e1af3f636febe9c3ce8c6ae20c090d",
-  "sha256": "1h8lngcqa343mlc091zs419frgsla65khfj93lv9fil3xbgrm7m9",
-  "fetcher": "gitlab",
-  "repo": "iankelling/spray",
+  "commit": "b89bd1ada947b64f6c42dda14e626ef55127f8e5",
+  "sha256": "03f3zrgk7b36srdvd15m0b067577crjf605lw392sqhrarmw4rw6",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~iank/spray",
   "unstable": {
    "version": [
     20160304,
     2220
    ],
-   "commit": "00638bc916227f2f961013543d10e85a43a32e29",
+   "commit": "74d9dcfa2e8b38f96a43de9ab0eb13364300cb46",
    "sha256": "1avbfr32dvff26kgvd5vgan99nb5c6al9kv5xbmy2rcls17py7r2"
   }
  },
@@ -95805,11 +96382,19 @@
   "repo": "cnngimenez/sqlite.el",
   "unstable": {
    "version": [
-    20180708,
-    1711
+    20201227,
+    1822
    ],
-   "commit": "dad42b8bbca4994be1871343dd18fd6528ee5797",
-   "sha256": "06ln4vijl8kii3nzc5cscgsadx1fqgxksflijd3ain83bn8g4wrd"
+   "commit": "f3da716302c929b9df4ba0c281968f72a9d1d188",
+   "sha256": "00fkjsc01fymhjrzlx3anl9vj85yw4jlxvh77d0mvchwzym8wi8l"
+  },
+  "stable": {
+   "version": [
+    1,
+    0
+   ],
+   "commit": "f3da716302c929b9df4ba0c281968f72a9d1d188",
+   "sha256": "00fkjsc01fymhjrzlx3anl9vj85yw4jlxvh77d0mvchwzym8wi8l"
   }
  },
  {
@@ -95929,11 +96514,11 @@
   "repo": "srfi-explorations/emacs-srfi",
   "unstable": {
    "version": [
-    20201129,
-    2137
+    20201222,
+    709
    ],
-   "commit": "22657a98d4cd7d0690dac0d437a27ec3eef6f1df",
-   "sha256": "0jdl6raw9nyylfdla40xlzxcacfk5nv4hr8279djyd68sjn62gbd"
+   "commit": "f26b37d8c32a033ab4dd7d5c707fd2f2dfccf85e",
+   "sha256": "0f59v8hmk9j0bfyga8h7ph6xxp72h88ky0g9qq8xisilw209lzji"
   },
   "stable": {
    "version": [
@@ -96046,11 +96631,11 @@
   "repo": "jhgorrell/ssh-config-mode-el",
   "unstable": {
    "version": [
-    20201103,
-    334
+    20201223,
+    1051
    ],
-   "commit": "87e61e92501c1a976c37c0bb874f1929e2b7e7e6",
-   "sha256": "01z3wf2v8r584gdw6l05cvv344l6acarb57lm59m4y2kqqkw85jc"
+   "commit": "a236e04f2950bd9d7f7c79ad992d1f8b57df950d",
+   "sha256": "0d5vx8k18avnja6mlhzrsj3z5brs70fj3s7151zgjq5i12n6aqm2"
   }
  },
  {
@@ -96357,8 +96942,8 @@
     20200606,
     1308
    ],
-   "commit": "93c90734d7073bc68285dca5e450034f96376703",
-   "sha256": "022avhxsw50zs4i901zj56w15fzkpfgcwj8mr40lmbcmb6q7bbj0"
+   "commit": "417b344e3c97beb2e50c2c919b0d01cb0d4ed9a5",
+   "sha256": "105va5nb5wgqkw25rdc2d591c6fcd9wa3dzsyvg3y83fcxhqgi7g"
   },
   "stable": {
    "version": [
@@ -96953,11 +97538,11 @@
   "repo": "mvarela/Sunburn-Theme",
   "unstable": {
    "version": [
-    20201203,
-    1732
+    20201216,
+    1539
    ],
-   "commit": "cf2faed6fe96a8af18b1bc2121937cfb3a84018d",
-   "sha256": "1l2bai0dqhn763psavnraamyb4kvhw6r6g3hf4q6b6821h70b05k"
+   "commit": "6b5c14c76dcdfdb099102ef7a388b2f0c6f1951d",
+   "sha256": "0rnr2lwq5aw19c94h169i9d9rmd8wf387k7wjnx7r4llh990ajl8"
   }
  },
  {
@@ -97317,14 +97902,14 @@
   "repo": "swift-emacs/swift-mode",
   "unstable": {
    "version": [
-    20201128,
-    1029
+    20201231,
+    1204
    ],
    "deps": [
     "seq"
    ],
-   "commit": "0bc8d8d80736d6d874edf8f59c0b37618368b183",
-   "sha256": "1srbbpp7dqzpfjk0a5l6li749qzwpb1vbqbf5jwiy7h99y43fa4q"
+   "commit": "95ff0041370660e839ed06aa92330694d8590d62",
+   "sha256": "14yfdcz78iygxzykwv21fy059ml2kwm9khrn0ysyjwnxnddvpc50"
   },
   "stable": {
    "version": [
@@ -97407,8 +97992,8 @@
    "deps": [
     "ivy"
    ],
-   "commit": "ae9b121b834a68d11f79ca27b1e5c8790149ba2f",
-   "sha256": "160qs77b4sama17h8lhq60my44qh4c9aj1qj9jk02n64jfn44fm6"
+   "commit": "d2891aab7b816aebf21ebd01ce33933a6ac6244f",
+   "sha256": "12bm5w073mgpj7kvk6596fnw8809nl6vkv288l7vvzx7iimaqzpl"
   },
   "stable": {
    "version": [
@@ -97648,16 +98233,16 @@
   "repo": "bgwines/symbol-navigation-hydra",
   "unstable": {
    "version": [
-    20201205,
-    1846
+    20201223,
+    2054
    ],
    "deps": [
     "auto-highlight-symbol",
     "hydra",
     "multiple-cursors"
    ],
-   "commit": "9bbea3931348a69b3a05621296a7b096d7588456",
-   "sha256": "01n8q7pdmxq0lfianhywm94326x56v93bh03yr8s402y1i9ggca3"
+   "commit": "ed65cd9c22550e59f723d7fc36ecc313aedc83da",
+   "sha256": "19a5l2g5j58rfyws78jdnfd4g3dbc5chhq59xps7kghbzm0nmvvv"
   }
  },
  {
@@ -97723,54 +98308,44 @@
   "repo": "countvajhula/symex.el",
   "unstable": {
    "version": [
-    20201205,
-    2143
+    20201229,
+    352
    ],
    "deps": [
-    "cider",
-    "cl-lib",
     "dash-functional",
     "evil",
     "evil-cleverparens",
     "evil-surround",
-    "geiser",
     "hydra",
     "lispy",
     "paredit",
-    "racket-mode",
     "seq",
-    "slime",
     "smartparens",
     "undo-tree"
    ],
-   "commit": "3cec3695ada5283c9de22496e0f8f37f92e2feb6",
-   "sha256": "0b1djw550790l45a774p9mqhf36m3k56ry85j5n5vcldqvy4v7yq"
+   "commit": "a0db2c80ccb6895981a6dfda7ef79fab201825cc",
+   "sha256": "1rpmxnz5xd02g0cfrn4l2ixh5bb6f9yvpp6n58mpriwdy99ndamn"
   },
   "stable": {
    "version": [
     0,
     8,
-    0
+    1
    ],
    "deps": [
-    "cider",
-    "cl-lib",
     "dash-functional",
     "evil",
     "evil-cleverparens",
     "evil-surround",
-    "geiser",
     "hydra",
     "lispy",
     "paredit",
-    "racket-mode",
     "seq",
-    "slime",
     "smartparens",
     "undo-tree"
    ],
-   "commit": "3cec3695ada5283c9de22496e0f8f37f92e2feb6",
-   "sha256": "0b1djw550790l45a774p9mqhf36m3k56ry85j5n5vcldqvy4v7yq"
+   "commit": "2c9d94cf44ffc1337729db13f7ea3e3e8c470dbd",
+   "sha256": "02848n7b0gswdv01mk85xz3khkf24c4y1c0rsw09arnjjkhjgzwh"
   }
  },
  {
@@ -98350,11 +98925,11 @@
   "repo": "11111000000/tao-theme-emacs",
   "unstable": {
    "version": [
-    20200325,
-    344
+    20201222,
+    602
    ],
-   "commit": "34917843cde086943816d8a48977658c663a784e",
-   "sha256": "1ks4pnwp5fg2vswr93hrli2shfd7rrf3nwqwr1qwmqxhq1600f3x"
+   "commit": "468ee4f6ba7afb9dbfc8855ae2c333cb16ca4408",
+   "sha256": "0yqibx6wcdsj5k6130c3qp0hmj6zwhfjrrvw98lny23ksw6k0s3s"
   },
   "stable": {
    "version": [
@@ -98377,8 +98952,8 @@
     20201207,
     1629
    ],
-   "commit": "d80c86c0842f77ba524867bf9e53b28a8627a665",
-   "sha256": "10rjnfqqgzbmzmfrgyqrx3hnrxr57knq8698azfyc46jvysrfhy3"
+   "commit": "d0199992b268784425b1724bf5899fc2dd22bc2e",
+   "sha256": "124qnfdcrwqnhpi7l2vgr56jik8yfv0d2rvhmpkv07h4kljrgwli"
   },
   "stable": {
    "version": [
@@ -98565,28 +99140,28 @@
   "repo": "zevlg/telega.el",
   "unstable": {
    "version": [
-    20201206,
-    1235
+    20201231,
+    918
    ],
    "deps": [
     "rainbow-identifiers",
     "visual-fill-column"
    ],
-   "commit": "223e56eee186f4403b03196b3191f0c0d4353dce",
-   "sha256": "1jmyc6kask9ja07gqzi0rq6lrlj1hm85v7q6x4llbqch7ngb04l6"
+   "commit": "3c290b48934a84cff271c10cf60b3b0afe007db0",
+   "sha256": "0kvi1azzcs25lvibakdqfqcfcjs843mg69nbis8bd92sadgbpzp7"
   },
   "stable": {
    "version": [
     0,
-    6,
-    28
+    7,
+    1
    ],
    "deps": [
     "rainbow-identifiers",
     "visual-fill-column"
    ],
-   "commit": "e53996777570a5bed84d21f6c8defd4f51c8e255",
-   "sha256": "058x6svgy33lyqjqq0l3byv8bysqig9jmh3kx8shaqr0ypfrjhi3"
+   "commit": "1d28dc209e2acf1a3bf2852cc620b6e412ea73f9",
+   "sha256": "0h6kj3r36x26v6p4gkzg5s6fv0brlvrf6ycsdwnz27fw5sdb99k7"
   }
  },
  {
@@ -98707,8 +99282,8 @@
     20201206,
     302
    ],
-   "commit": "8c4ba0d5db5280a78d94bb1cc3dbd2f1abd37e9e",
-   "sha256": "177m72c2gdmp2jq55z1sgff8izpv39n1s7qsin2bfl4p9ccwywmr"
+   "commit": "3243c632bf3062eb1c576dd424378a9f419f6013",
+   "sha256": "1ggid3vfns9j9bxz33cik270fh0m170bal3044xs0mkfncah1q5a"
   },
   "stable": {
    "version": [
@@ -99010,8 +99585,8 @@
     20180830,
     719
    ],
-   "commit": "8b84bf18f4c5f1b59a11692eb706f13c3598d9a5",
-   "sha256": "0bbcl0mq62f22n2aipgzx93164x81bgybfd0x7gvsfva76qs8pc4"
+   "commit": "6b1dbb2e96b3ff680dbe88153c4c569adbbd64ce",
+   "sha256": "05h62b06k2nfslh822mq3a7q0xvnm8whnj5xbnv3291i4a4v5x2b"
   }
  },
  {
@@ -99022,14 +99597,11 @@
   "repo": "davidshepherd7/terminal-here",
   "unstable": {
    "version": [
-    20200617,
-    714
-   ],
-   "deps": [
-    "cl-lib"
+    20201230,
+    1219
    ],
-   "commit": "d8b95302abe6e4a8a91a4526441a1c5d51b886a6",
-   "sha256": "0b05arm8b95dkzj6m2kx7wb37z00y0bdsj3z34sjny75srph3c0c"
+   "commit": "cb561b5feb37a03a1c35708c3eebf9b51b01f7a0",
+   "sha256": "02vmy0xbssqvs97f7ypmk50hiyb7qdsbrmmnlf3mlm55c2abk73s"
   },
   "stable": {
    "version": [
@@ -99477,11 +100049,11 @@
   "repo": "hadronzoo/theme-changer",
   "unstable": {
    "version": [
-    20200919,
-    2307
+    20201226,
+    2256
    ],
-   "commit": "13adb7d0cf0e8dfbb79b0f649d33474ddf4301a2",
-   "sha256": "0f8b81ck229z3gf34ic9v27w776fal16wg17mbiqxzj0pqfl6y9n"
+   "commit": "57b8c579f134374a45bec9043feff6b29bb4f108",
+   "sha256": "01c3n5ngbyw2p8h82hi00pjjfkaqm5lz8mnj2c0v504v23zvs3kk"
   },
   "stable": {
    "version": [
@@ -99644,18 +100216,18 @@
     20200212,
     1903
    ],
-   "commit": "35d5f61e460a48a7f8e7813a91729a597b938e7a",
-   "sha256": "0xarzygijicc3a5m4vzmhkcrfjawfq3593rwkqdwfg3cgyskkh5j"
+   "commit": "20bcade0c3554aefca82e52b982997f2ae5f3aed",
+   "sha256": "1gpkykhhcs5ccavicym2w7rhg2n9as1cxdcpdapnb8l735pz16sw"
   },
   "stable": {
    "version": [
     2020,
     12,
-    7,
+    21,
     0
    ],
-   "commit": "1aa52cbe490307cab99aaee5ff74e470576d35ea",
-   "sha256": "02z6cjfnq7mvgiw5qj2b0cilm064a6n8f80jsrqn086ikfhf8r1h"
+   "commit": "9f04619abf9ecea78df57fcdc1d0cbe2e4c1f1eb",
+   "sha256": "1jy54salpfjanvr3qyz23z5lqkfl6m81r1d63v9gvr3hpvbsa801"
   }
  },
  {
@@ -99711,8 +100283,8 @@
    "deps": [
     "haskell-mode"
    ],
-   "commit": "efba2f81cbd79f081cc5b84c98215aeb47d071de",
-   "sha256": "1mrhbcr5f4qif7kb1ywz07gvh4g4aafrh9991df6wicddlczrq5s"
+   "commit": "4c79a3314dacd77d3e1327a3cc54361da8dffeec",
+   "sha256": "0fx7km09f70y7f5wmqs3j126jgryzxp66vbkvri6kcimxja36914"
   },
   "stable": {
    "version": [
@@ -99735,8 +100307,8 @@
   "repo": "ananthakumaran/tide",
   "unstable": {
    "version": [
-    20201031,
-    539
+    20201223,
+    432
    ],
    "deps": [
     "cl-lib",
@@ -99745,8 +100317,8 @@
     "s",
     "typescript-mode"
    ],
-   "commit": "a43a37bfa23bd482cd96e55c0c39973f83128c57",
-   "sha256": "09c8pqlsi472mvxibh16k1b6398c2lwc4qlcm6irw1gf4w9q0xhj"
+   "commit": "ba09882d88dd0191e9c02c9b4e0fcd74199ff3cc",
+   "sha256": "1ivr9wj289zhsc4kkzmlbpxvl5nyhj6a0ir23i05fh5j93wc1da0"
   },
   "stable": {
    "version": [
@@ -100221,8 +100793,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "d5909f4e237c27f638ef06725d04dd17f72d4740",
-   "sha256": "1bknlb9p576f0xrghh4paa23xkiyzlmlv97fr308mwwqs2g8d7ck"
+   "commit": "5bb073fe751d6a839e33c4a7fd043be16a3dbeb2",
+   "sha256": "0pyjds57kc0y1h6qligxzdx7m61wxzv57bp7al5cvqlg225dswa0"
   }
  },
  {
@@ -100590,8 +101162,8 @@
     20201101,
     1045
    ],
-   "commit": "107b74c9f4318eaa385819876cd8772ef650d1f4",
-   "sha256": "03whhp90wvbjc43qvbsraqi47dsi29mqbwrgxfhacjzqf73qffzx"
+   "commit": "0472cda711252b06fc07be184449b31933578148",
+   "sha256": "1ad1aqjmj1imh5zmnmdnwc06sn3rgd3xmksypyi2hnh07r79ynf4"
   },
   "stable": {
    "version": [
@@ -100694,11 +101266,11 @@
   "repo": "magit/transient",
   "unstable": {
    "version": [
-    20201205,
-    1610
+    20201220,
+    1911
    ],
-   "commit": "0d79ccfaf899f6192151d1191fbc234795489923",
-   "sha256": "077q180qx8q7r8pjqii823l3xpxaz8dfqy3rr31maynhbr1w46g3"
+   "commit": "4a2b7fdf75c6940b5b311d930ea26f7e85a08cd4",
+   "sha256": "0l0pabisi4x61svnrv8namlyc3nl7zpk3pkmfb4s5lx3rqdg8myf"
   },
   "stable": {
    "version": [
@@ -100736,14 +101308,14 @@
   "repo": "holomorph/transmission",
   "unstable": {
    "version": [
-    20201209,
-    458
+    20201217,
+    1922
    ],
    "deps": [
     "let-alist"
    ],
-   "commit": "deb7090e1e3faf50b691c5b73148be690575c76b",
-   "sha256": "16bn8y2sd7kzihp8bxh4vyay16y91q3yc0gcd0bzywcx3hijqlfc"
+   "commit": "8e7e020cda8513c1dfeba911d0942640c7650348",
+   "sha256": "0ndcsyfbyhjvpg9asv0awa7dfj2fhzwhg42qx01kyr3bkb6gkjd0"
   },
   "stable": {
    "version": [
@@ -100904,26 +101476,45 @@
   "repo": "ubolonton/emacs-tree-sitter",
   "unstable": {
    "version": [
-    20201107,
-    1648
+    20201229,
+    1403
    ],
    "deps": [
     "tsc"
    ],
-   "commit": "887ad56d5c755d0007905d874e48eeedb2e8a383",
-   "sha256": "0fwl3m310l7f4cz58jak0ap2ilkml93my6w2fvyayv97ygn934r4"
+   "commit": "a3aef9113365032d55fedbbe08ab7b04f5268d14",
+   "sha256": "1n8mxd7fhs2brblrfr5892j5xqgh247d8ngnkhwq6acn8hfxn7qf"
   },
   "stable": {
    "version": [
     0,
-    12,
-    1
+    13,
+    0
    ],
    "deps": [
     "tsc"
    ],
-   "commit": "68757fb6f0ab7f2661b9abc8fda876453f27e3cd",
-   "sha256": "0vyd3j0wqric5b49f5pbrmlplpffw9wadmsl9h4wvgq61sn2ck3p"
+   "commit": "a3aef9113365032d55fedbbe08ab7b04f5268d14",
+   "sha256": "1n8mxd7fhs2brblrfr5892j5xqgh247d8ngnkhwq6acn8hfxn7qf"
+  }
+ },
+ {
+  "ename": "tree-sitter-indent",
+  "commit": "fddb298f3020cd2eb7628f6282e0f35628a3eb17",
+  "sha256": "0krj3jqsmbi36jfzkic6g0h2zbqwwdp3yp0i034avjcb669l9fwj",
+  "fetcher": "git",
+  "url": "https://codeberg.org/FelipeLema/tree-sitter-indent.el.git",
+  "unstable": {
+   "version": [
+    20201229,
+    1827
+   ],
+   "deps": [
+    "seq",
+    "tree-sitter"
+   ],
+   "commit": "a1eddfabb41375eda84178531b944472599c25e7",
+   "sha256": "179zz3qw0iq7j6xjw9ga6wp5k52s71w7yfnmx0cy5afxn4wivfdi"
   }
  },
  {
@@ -100934,26 +101525,26 @@
   "repo": "ubolonton/emacs-tree-sitter",
   "unstable": {
    "version": [
-    20201205,
-    431
+    20201221,
+    1340
    ],
    "deps": [
     "tree-sitter"
    ],
-   "commit": "887ad56d5c755d0007905d874e48eeedb2e8a383",
-   "sha256": "0fwl3m310l7f4cz58jak0ap2ilkml93my6w2fvyayv97ygn934r4"
+   "commit": "a3aef9113365032d55fedbbe08ab7b04f5268d14",
+   "sha256": "1n8mxd7fhs2brblrfr5892j5xqgh247d8ngnkhwq6acn8hfxn7qf"
   },
   "stable": {
    "version": [
     0,
-    12,
-    1
+    13,
+    0
    ],
    "deps": [
     "tree-sitter"
    ],
-   "commit": "68757fb6f0ab7f2661b9abc8fda876453f27e3cd",
-   "sha256": "0vyd3j0wqric5b49f5pbrmlplpffw9wadmsl9h4wvgq61sn2ck3p"
+   "commit": "a3aef9113365032d55fedbbe08ab7b04f5268d14",
+   "sha256": "1n8mxd7fhs2brblrfr5892j5xqgh247d8ngnkhwq6acn8hfxn7qf"
   }
  },
  {
@@ -101000,11 +101591,12 @@
   "repo": "Alexander-Miller/treemacs",
   "unstable": {
    "version": [
-    20201128,
-    1158
+    20201230,
+    1245
    ],
    "deps": [
     "ace-window",
+    "cfrs",
     "cl-lib",
     "dash",
     "f",
@@ -101013,8 +101605,8 @@
     "pfuture",
     "s"
    ],
-   "commit": "389bca1c3bdd4c4cf8245d6c4bdf8aa875e40d14",
-   "sha256": "0jbgmia6f610dsvjfccc06y90clradz3s5b867g5dbap4wxlwmfy"
+   "commit": "bffb1d88eef63434022d26d6f822fb33c929348b",
+   "sha256": "0i01sxdm0wn7rgjf3g4wazkxdsl4b553l8vmcmas15a9mhzd2ahd"
   },
   "stable": {
    "version": [
@@ -101050,8 +101642,8 @@
     "all-the-icons",
     "treemacs"
    ],
-   "commit": "389bca1c3bdd4c4cf8245d6c4bdf8aa875e40d14",
-   "sha256": "0jbgmia6f610dsvjfccc06y90clradz3s5b867g5dbap4wxlwmfy"
+   "commit": "6b045fd585421ab3c9e1185c2508d34af700490b",
+   "sha256": "0sifzkhyd4k2ffvf2gn6frg7qd28my8w7wy2cqqa4i9gxhbflbsj"
   }
  },
  {
@@ -101069,8 +101661,8 @@
     "evil",
     "treemacs"
    ],
-   "commit": "389bca1c3bdd4c4cf8245d6c4bdf8aa875e40d14",
-   "sha256": "0jbgmia6f610dsvjfccc06y90clradz3s5b867g5dbap4wxlwmfy"
+   "commit": "6b045fd585421ab3c9e1185c2508d34af700490b",
+   "sha256": "0sifzkhyd4k2ffvf2gn6frg7qd28my8w7wy2cqqa4i9gxhbflbsj"
   },
   "stable": {
    "version": [
@@ -101099,8 +101691,8 @@
    "deps": [
     "treemacs"
    ],
-   "commit": "389bca1c3bdd4c4cf8245d6c4bdf8aa875e40d14",
-   "sha256": "0jbgmia6f610dsvjfccc06y90clradz3s5b867g5dbap4wxlwmfy"
+   "commit": "6b045fd585421ab3c9e1185c2508d34af700490b",
+   "sha256": "0sifzkhyd4k2ffvf2gn6frg7qd28my8w7wy2cqqa4i9gxhbflbsj"
   },
   "stable": {
    "version": [
@@ -101131,8 +101723,8 @@
     "pfuture",
     "treemacs"
    ],
-   "commit": "389bca1c3bdd4c4cf8245d6c4bdf8aa875e40d14",
-   "sha256": "0jbgmia6f610dsvjfccc06y90clradz3s5b867g5dbap4wxlwmfy"
+   "commit": "6b045fd585421ab3c9e1185c2508d34af700490b",
+   "sha256": "0sifzkhyd4k2ffvf2gn6frg7qd28my8w7wy2cqqa4i9gxhbflbsj"
   },
   "stable": {
    "version": [
@@ -101164,8 +101756,8 @@
     "persp-mode",
     "treemacs"
    ],
-   "commit": "389bca1c3bdd4c4cf8245d6c4bdf8aa875e40d14",
-   "sha256": "0jbgmia6f610dsvjfccc06y90clradz3s5b867g5dbap4wxlwmfy"
+   "commit": "6b045fd585421ab3c9e1185c2508d34af700490b",
+   "sha256": "0sifzkhyd4k2ffvf2gn6frg7qd28my8w7wy2cqqa4i9gxhbflbsj"
   },
   "stable": {
    "version": [
@@ -101197,8 +101789,8 @@
     "perspective",
     "treemacs"
    ],
-   "commit": "389bca1c3bdd4c4cf8245d6c4bdf8aa875e40d14",
-   "sha256": "0jbgmia6f610dsvjfccc06y90clradz3s5b867g5dbap4wxlwmfy"
+   "commit": "6b045fd585421ab3c9e1185c2508d34af700490b",
+   "sha256": "0sifzkhyd4k2ffvf2gn6frg7qd28my8w7wy2cqqa4i9gxhbflbsj"
   }
  },
  {
@@ -101216,8 +101808,8 @@
     "projectile",
     "treemacs"
    ],
-   "commit": "389bca1c3bdd4c4cf8245d6c4bdf8aa875e40d14",
-   "sha256": "0jbgmia6f610dsvjfccc06y90clradz3s5b867g5dbap4wxlwmfy"
+   "commit": "6b045fd585421ab3c9e1185c2508d34af700490b",
+   "sha256": "0sifzkhyd4k2ffvf2gn6frg7qd28my8w7wy2cqqa4i9gxhbflbsj"
   },
   "stable": {
    "version": [
@@ -101425,15 +102017,15 @@
   "repo": "alphapapa/ts.el",
   "unstable": {
    "version": [
-    20191010,
-    210
+    20201212,
+    1041
    ],
    "deps": [
     "dash",
     "s"
    ],
-   "commit": "df48734ef046547c1aa0de0f4c07d11964ef1f7f",
-   "sha256": "0hi0dfcwrr0vxp26v3f6radpmmwxbiz3px3br0cydfi6axikw9xl"
+   "commit": "b7ca357a0ed57694e0b25ec1b1ca12e24a4ce541",
+   "sha256": "12p4k8x1p0h94xcdis7m0vkzf41k5k3ijkaj838ywb7i74myfdxb"
   },
   "stable": {
    "version": [
@@ -101471,20 +102063,20 @@
   "repo": "ubolonton/emacs-tree-sitter",
   "unstable": {
    "version": [
-    20201116,
-    1148
+    20201229,
+    1403
    ],
-   "commit": "887ad56d5c755d0007905d874e48eeedb2e8a383",
-   "sha256": "0fwl3m310l7f4cz58jak0ap2ilkml93my6w2fvyayv97ygn934r4"
+   "commit": "a3aef9113365032d55fedbbe08ab7b04f5268d14",
+   "sha256": "1n8mxd7fhs2brblrfr5892j5xqgh247d8ngnkhwq6acn8hfxn7qf"
   },
   "stable": {
    "version": [
     0,
-    12,
-    1
+    13,
+    0
    ],
-   "commit": "68757fb6f0ab7f2661b9abc8fda876453f27e3cd",
-   "sha256": "0vyd3j0wqric5b49f5pbrmlplpffw9wadmsl9h4wvgq61sn2ck3p"
+   "commit": "a3aef9113365032d55fedbbe08ab7b04f5268d14",
+   "sha256": "1n8mxd7fhs2brblrfr5892j5xqgh247d8ngnkhwq6acn8hfxn7qf"
   }
  },
  {
@@ -101803,8 +102395,8 @@
     20201002,
     1109
    ],
-   "commit": "54f14c482701c4f937bf51469f70812624e07f87",
-   "sha256": "0rl5i34rdg3rk5s2xidf1yz6j5y30mb8qm6l4myw3r973fyasvlr"
+   "commit": "1043025d42602d560949955410d3afa2562130ee",
+   "sha256": "1p25fjmv9g0a980zvr4bpjj56xksaziynf4h6cvc6wiw08a9xbcw"
   },
   "stable": {
    "version": [
@@ -102230,11 +102822,11 @@
   "repo": "ideasman42/emacs-undo-fu-session",
   "unstable": {
    "version": [
-    20201016,
-    2319
+    20201218,
+    400
    ],
-   "commit": "56cdd3538a058c6916bdf2d9010c2179f2505829",
-   "sha256": "04wq1alrzzlidcb4mjb5j7pg68pks1vgv7kvvmi6dzb3l602mb2a"
+   "commit": "702210384a0c68f04aabc23e08ebd4d6f43ea2c7",
+   "sha256": "0brd92jln528j7hh8gyv5wz451cfpayvkz9fic7b0wisnwgvq26b"
   }
  },
  {
@@ -102321,6 +102913,18 @@
    ],
    "commit": "a5fd4e326a0607acc3776c11f41826e60b6486c6",
    "sha256": "035k8fkvrcglqn15fqcd962jyr154b3y8iczddjjc6wfxp16i21x"
+  },
+  "stable": {
+   "version": [
+    1,
+    1,
+    7
+   ],
+   "deps": [
+    "nadvice"
+   ],
+   "commit": "a5fd4e326a0607acc3776c11f41826e60b6486c6",
+   "sha256": "035k8fkvrcglqn15fqcd962jyr154b3y8iczddjjc6wfxp16i21x"
   }
  },
  {
@@ -102552,11 +103156,11 @@
   "repo": "sindikat/unidecode",
   "unstable": {
    "version": [
-    20180312,
-    1926
+    20201213,
+    1449
    ],
-   "commit": "5502ada9287b4012eabb879f12f5b0a9df52c5b7",
-   "sha256": "03x3nakbhmakwm977mwrf8jifvjnfwzpjv6wrwpizbqjnkgfchmn"
+   "commit": "525b51b38f5b0435642005957740fe22ecb2a53c",
+   "sha256": "1jfaxz6z5lb24hygd7nx2a55blfbcf03225lc8ni2fbmkxx4dkir"
   }
  },
  {
@@ -103063,8 +103667,8 @@
    "deps": [
     "s"
    ],
-   "commit": "e430695957011aeff51fe7e7ed1a154226f205f5",
-   "sha256": "09x64f7qqan6bdfqjfb6m29ql5hnsi6x2az6hpb0wpgdxgy1vbm6"
+   "commit": "74ab3e375f2f6ddf786d7a520319f95203a47d26",
+   "sha256": "0wjqy000kaqgkkjvg7bq8qnpnma1cy6vl7sqdfsdiqy2952s2wz0"
   },
   "stable": {
    "version": [
@@ -103080,6 +103684,21 @@
   }
  },
  {
+  "ename": "utimeclock",
+  "commit": "f712b882b6961f3a83a9807e973fa6edc592c223",
+  "sha256": "1818i1b04mzx5015d5h5r1j9hbpg2x8xgszdq831c1sjhvnajh7z",
+  "fetcher": "gitlab",
+  "repo": "ideasman42/emacs-utimeclock",
+  "unstable": {
+   "version": [
+    20201213,
+    438
+   ],
+   "commit": "cd3ab3a419ed50f51a7746849c80cb69910b89ca",
+   "sha256": "0anmmy46cbph9sjngcz3hbyzir8glzb6fqzl36wzfnxj54rzcf7l"
+  }
+ },
+ {
   "ename": "utop",
   "commit": "30489fe52b4031184e54f994770aa3291257bc9d",
   "sha256": "0lv16kl29gc9hdcpn04l85pf7x93vkl41s4mgqp678cllzyr0cq7",
@@ -103243,11 +103862,11 @@
   "repo": "rrthomas/vala-mode",
   "unstable": {
    "version": [
-    20201019,
-    1317
+    20201218,
+    2109
    ],
-   "commit": "6fcc4d87108179f973273dbc44c57fed44b061ae",
-   "sha256": "03wmnlpwi2wjm34ycffikdd3wgzy14kiida5lqx37js2am769jzh"
+   "commit": "d696a8177e94c81ea557ad364a3b3dcc3abbc50f",
+   "sha256": "0g5pdq757z9d8rk489n5ilhqipdc4i4sfkjwwrxyvgjlapjc04c0"
   }
  },
  {
@@ -103415,19 +104034,19 @@
   "repo": "muffinmad/emacs-vc-hgcmd",
   "unstable": {
    "version": [
-    20200615,
-    1823
+    20201211,
+    1339
    ],
-   "commit": "5c735b3e3897b7ba52b5ac4e6a2f43ca283fd52d",
-   "sha256": "050xk0rs7k79ymchqdkdmgpg3s22wpbdnzl3pz2wsghihkskz6q1"
+   "commit": "d23de9d10ff68b4c2302ab956f3ba3bb5d3858ee",
+   "sha256": "14c2brvw6vnf1h3lbpap4jh5d7mjnzxrbny4jk77832v09mj2ria"
   },
   "stable": {
    "version": [
     1,
-    12
+    13
    ],
-   "commit": "5c735b3e3897b7ba52b5ac4e6a2f43ca283fd52d",
-   "sha256": "050xk0rs7k79ymchqdkdmgpg3s22wpbdnzl3pz2wsghihkskz6q1"
+   "commit": "d23de9d10ff68b4c2302ab956f3ba3bb5d3858ee",
+   "sha256": "14c2brvw6vnf1h3lbpap4jh5d7mjnzxrbny4jk77832v09mj2ria"
   }
  },
  {
@@ -103438,26 +104057,26 @@
   "repo": "redguardtoo/vc-msg",
   "unstable": {
    "version": [
-    20191128,
-    1010
+    20201210,
+    157
    ],
    "deps": [
     "popup"
    ],
-   "commit": "93794111daa95b809e46e6d961ad5f68eb8f78ed",
-   "sha256": "11xci11lbw06syz3y6zhrbh7984mj523i5fphrmdqh76iivkphwh"
+   "commit": "6c94578b5c692ade27c8b34bf5d99333ee7b4680",
+   "sha256": "1p54m71ypvz7x5wyzv0lfrxfsx23ipmb4zkq6dm0ppgh9al9hd7k"
   },
   "stable": {
    "version": [
     1,
-    0,
-    3
+    1,
+    0
    ],
    "deps": [
     "popup"
    ],
-   "commit": "76951fccc2cf66916af2ae006dfa758583e2415d",
-   "sha256": "0zmpc2w02ynm6ck01q5l9kv5flbl5zkgxhxyplqddh37ml31pka0"
+   "commit": "6c94578b5c692ade27c8b34bf5d99333ee7b4680",
+   "sha256": "1p54m71ypvz7x5wyzv0lfrxfsx23ipmb4zkq6dm0ppgh9al9hd7k"
   }
  },
  {
@@ -103778,11 +104397,11 @@
   "repo": "federicotdn/verb",
   "unstable": {
    "version": [
-    20201127,
-    2022
+    20201231,
+    1142
    ],
-   "commit": "ea6be4ad2bf9fdd2907df51b1cf51dd5bd356c40",
-   "sha256": "0k8s43pqwicws9qaaa5nz7qkzg0dymbzrsdcb7gg3x6jzg1wy119"
+   "commit": "9bdad040c342dfd513f0c65bde5d938f41da24e6",
+   "sha256": "0pxzl927pmz851fs3zlhggrk9dryh929sqn4kyql6arpf53jsyir"
   },
   "stable": {
    "version": [
@@ -104216,10 +104835,10 @@
  },
  {
   "ename": "visible-mark",
-  "commit": "76ac7178ee5381e08ae881f3fc6061106eeb1c1d",
-  "sha256": "1rp0gnz28m1drwb1hhsf0mwxzdppdi88hscf788qw8cw65gckv80",
-  "fetcher": "gitlab",
-  "repo": "iankelling/visible-mark",
+  "commit": "9c101affbe6d0e794e3ec6889745e4d05cb7e4fc",
+  "sha256": "1rpj2hfh009zlp14xv0qqlw5qmx2y1d57irbwcmzvxfa6lgahiw5",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~iank/visible-mark",
   "unstable": {
    "version": [
     20150624,
@@ -104260,19 +104879,19 @@
   "repo": "joostkremers/visual-fill-column",
   "unstable": {
    "version": [
-    20201008,
-    919
+    20201229,
+    2303
    ],
-   "commit": "598bc992f050575c48db6fb9ea50794a5ce5d065",
-   "sha256": "1dfsh48p2mcab9axff74vqb8d003f8v6j0hh26y2gdlada7fn75g"
+   "commit": "ad76c1692e822c0d032e926136011673e9b03aa4",
+   "sha256": "1j2fb7v8qvs9wkgrfqaddg7sy7w31r9ry25zd2xxhkvda1l80xx7"
   },
   "stable": {
    "version": [
-    1,
-    14
+    2,
+    2
    ],
-   "commit": "598bc992f050575c48db6fb9ea50794a5ce5d065",
-   "sha256": "1dfsh48p2mcab9axff74vqb8d003f8v6j0hh26y2gdlada7fn75g"
+   "commit": "68784162d758fbe6a91d04e9caa8f05683fb6ba9",
+   "sha256": "1wjb4zm9mx07v0qx2fxmclg4pg0ssgnf8lp89wc56kmc0s40jhii"
   }
  },
  {
@@ -104412,6 +105031,9 @@
     2,
     0
    ],
+   "deps": [
+    "popup"
+   ],
    "commit": "224402532da28e45edd398fda61ecbddb97d22d3",
    "sha256": "0q1rwqjwqcnsr57s531pwlm464q8wx5vvdm5rj2xy9b3yi6phis1"
   }
@@ -104547,11 +105169,11 @@
   "repo": "jojojames/vscode-icon-emacs",
   "unstable": {
    "version": [
-    20191102,
-    2010
+    20201214,
+    2227
    ],
-   "commit": "4304e9f0a47406048129dc62171f08b67325a2ed",
-   "sha256": "0dpmw1kg9ivrn92vis7bxs8nlb1ixk72fhd4s4f5c21k0j4s12rd"
+   "commit": "909151c8105861aa300f5601e333909d36d0ebf5",
+   "sha256": "1zxppynlapsc58hakmbc68x94qhvfrjc41y4ccl6vs0kvkcrs1kp"
   }
  },
  {
@@ -104764,11 +105386,11 @@
   "repo": "emacs-w3m/emacs-w3m",
   "unstable": {
    "version": [
-    20201129,
-    2228
+    20201224,
+    4
    ],
-   "commit": "267d4220715eabacca1ad1661d76be5ceed7072c",
-   "sha256": "0xyrvvrckn8agg86kkr6821bj07s5an8w226k964f148jn84n86q"
+   "commit": "085de54acae027e7f0d0b9bf34d3142993234fd3",
+   "sha256": "14klj49iwykqj1j1q03fvhpj44fg0h4rzh0mbn7xzm4iv0z3222c"
   }
  },
  {
@@ -104890,16 +105512,29 @@
   "repo": "abrochard/walkman",
   "unstable": {
    "version": [
-    20201124,
-    1725
+    20201229,
+    1811
+   ],
+   "deps": [
+    "json-mode",
+    "org",
+    "transient"
+   ],
+   "commit": "00b4fd5cae7fe27085995dbb178828fb765c7edc",
+   "sha256": "1ya91159i58x4mccpnx429kq2k0xc04alikbly549qm8yw1y1hxg"
+  },
+  "stable": {
+   "version": [
+    0,
+    2
    ],
    "deps": [
     "json-mode",
     "org",
     "transient"
    ],
-   "commit": "ade5f2a7c4a4260b39cfc23d40112b4fcb7a572b",
-   "sha256": "1ldy46sylhlm6zjk55lachz3vyx2klz30nj2ycc1m27568n7b1jy"
+   "commit": "00b4fd5cae7fe27085995dbb178828fb765c7edc",
+   "sha256": "1ya91159i58x4mccpnx429kq2k0xc04alikbly549qm8yw1y1hxg"
   }
  },
  {
@@ -105221,11 +105856,11 @@
   "repo": "fxbois/web-mode",
   "unstable": {
    "version": [
-    20201107,
-    1152
+    20201227,
+    1048
    ],
-   "commit": "890e837f7ea49f54c02b107377036431cbe7adb6",
-   "sha256": "1mzxnzha4z1y4n1wr2kawidnlh30s4kvdbcavzicvvygvafdvc36"
+   "commit": "a3ce21f795e03c7a5489a24b2b3c4fce2d7a2f59",
+   "sha256": "1234cr8hd25z181vg64r10l4gmdc1nr7dij2qnp4xs9ag3zkdf1y"
   },
   "stable": {
    "version": [
@@ -105314,11 +105949,11 @@
   "repo": "eschulte/emacs-web-server",
   "unstable": {
    "version": [
-    20201030,
-    1619
+    20201217,
+    1252
    ],
-   "commit": "7b517abf236e7fe718696a4cb7566d718ea68a3f",
-   "sha256": "0qbi6qwxvm1z5fws432jb7ir1x4abyy680i3ccpv7xpi81qwhw7i"
+   "commit": "4d865cc4720f668aed7a8c3bcfddfbf534ecfb67",
+   "sha256": "14kx3anbffs53hdcq7347b3rd33lk6ajvwrz5mhnnj1kmdxy7dxh"
   }
  },
  {
@@ -105521,11 +106156,11 @@
   "repo": "jstaursky/weyland-yutani-theme",
   "unstable": {
    "version": [
-    20201208,
-    1748
+    20201209,
+    1505
    ],
-   "commit": "5a68065a2b2d66aad75a832d19fc65b3d30ac0a0",
-   "sha256": "1s1j1lw1i98r1j7zsrhxpjjlvr7kqs3b03m4pj5mnd8g31ddvgb8"
+   "commit": "86c72ef8e3d25bee94c35254ad03b5d3e4836994",
+   "sha256": "148p1c6cwxcri2732ngbbmd27g1m61gsxbgs0f1qbpqhsy0pplz2"
   }
  },
  {
@@ -105695,11 +106330,11 @@
   "repo": "justbur/emacs-which-key",
   "unstable": {
    "version": [
-    20200908,
-    2301
+    20201216,
+    1720
    ],
-   "commit": "ca268fd313d3fb2bd03a8b5e4bdcca675ce58ca7",
-   "sha256": "0rvlhj05v5b67axv2l6mdz9112p5h8w465zii3xs2fpjhrpx6sxx"
+   "commit": "428aedfce0157920814fbb2ae5d00b4aea89df88",
+   "sha256": "116c3krgi7iyv708jwzqjz72wf1j1aczgv5cvkdscrn7zgpyvm8c"
   },
   "stable": {
    "version": [
@@ -105880,14 +106515,14 @@
   "repo": "purcell/whole-line-or-region",
   "unstable": {
    "version": [
-    20200924,
-    129
+    20201214,
+    650
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "f0051d301f83d6dd26ce30a8ea039a8510c79cc0",
-   "sha256": "0y02938a02mb6imlljsz2i9d2ki37hiqyhlyq341la2dr6iwn8sl"
+   "commit": "4a1d44ec7b1421913cb39a6e83854329be910e68",
+   "sha256": "0az61n9c4mf2l68y67lmp34d678n13s06kpx62r4v5kaar2vhz8i"
   },
   "stable": {
    "version": [
@@ -106731,8 +107366,8 @@
   "repo": "abo-abo/worf",
   "unstable": {
    "version": [
-    20201114,
-    1141
+    20201226,
+    1859
    ],
    "deps": [
     "ace-link",
@@ -106740,8 +107375,8 @@
     "swiper",
     "zoutline"
    ],
-   "commit": "a341c87ab6e696968436b38c1c34488d50764f48",
-   "sha256": "14dlmpxxhhg3y55ysdgn4q65x3q94jk7xlmjhhz3abqc5xjbq127"
+   "commit": "7ddd86aa3c62955714c2d60decd7a78c06b4771a",
+   "sha256": "02ci6hnjv80n3gjl04lxkcjvc2bzvn34w0z721qira1g7m2ysa8a"
   },
   "stable": {
    "version": [
@@ -106781,14 +107416,11 @@
   "repo": "pashinin/workgroups2",
   "unstable": {
    "version": [
-    20200729,
-    852
-   ],
-   "deps": [
-    "dash"
+    20201217,
+    1159
    ],
-   "commit": "737306531f6834227eee2f63b197a23401003d23",
-   "sha256": "0f16a4zz5havxbadiv4h6msa30c1yfdkfk56gic5wapz4i26z3x7"
+   "commit": "c9403c68a7e6491134110d7cacc130c34eae85a0",
+   "sha256": "0zkg6b45nc8ap8c8r95r25wyxymnslp3k1x2mmnmj0ivyi0bxjib"
   },
   "stable": {
    "version": [
@@ -106918,25 +107550,25 @@
   "repo": "joostkremers/writeroom-mode",
   "unstable": {
    "version": [
-    20201107,
-    2227
+    20201229,
+    2242
    ],
    "deps": [
     "visual-fill-column"
    ],
-   "commit": "92c47dfa659c418700d064a479e30590bcfc1904",
-   "sha256": "0bn2ff9j8gy2nb5km2r8w45avcs98gab8fsvr9ph220p58jk805c"
+   "commit": "b648b340172ce4e44307375697e190bc723203e0",
+   "sha256": "03dq65wsfwf4xdl6rj5zpk72gwzwydfdapfz8gh797jn2mp1dqnk"
   },
   "stable": {
    "version": [
     3,
-    10
+    11
    ],
    "deps": [
     "visual-fill-column"
    ],
-   "commit": "6552c056b85fd26a3ac509100d9d5c5c3c19515a",
-   "sha256": "0la4q2dm123l4rdfh0ry03b99ihvh324y7iw12az909198bcx335"
+   "commit": "b508843b04e1adc4e2cc9a04ca3ad53d8b1bbbb4",
+   "sha256": "0y4jcja9kml1lq88r8b9myk39dgaggh7q7f3a43sj828hvzlccb7"
   }
  },
  {
@@ -107082,14 +107714,14 @@
   "repo": "Lompik/x-path-walker",
   "unstable": {
    "version": [
-    20160922,
-    1835
+    20201220,
+    628
    ],
    "deps": [
     "helm-core"
    ],
-   "commit": "3b01dbd7a039c6c84fdf8c8ee53ba72090ee950a",
-   "sha256": "1gb3lnl3gvckbakc4fy22fcvif3xdfkdaw334xmp33phjb8gjqvj"
+   "commit": "e553968b6ddebe39ea00904a2e9ff4cff6096985",
+   "sha256": "0iq8pglzzx83k4wcld250vy0x3n9vz8689bwpbqkapg5p3m8c6v1"
   }
  },
  {
@@ -107148,11 +107780,11 @@
   "repo": "xahlee/xah-css-mode",
   "unstable": {
    "version": [
-    20201207,
-    2036
+    20201229,
+    837
    ],
-   "commit": "3971ebee16fe57107261f6eda6438a234637dc36",
-   "sha256": "1cmlv344wpcvriybcc52hg8xg6pdl041xpgsw6shrgys9hq5jdzd"
+   "commit": "5d9db23bbb982c28cbcf351957ef96ecd80e4c0b",
+   "sha256": "0f1dwl1nljxw94g6jkqv7rsyxnr9na0xxj447jhmsjyd3iry3g7n"
   }
  },
  {
@@ -107178,11 +107810,11 @@
   "repo": "xahlee/xah-find",
   "unstable": {
    "version": [
-    20190314,
-    2039
+    20201219,
+    552
    ],
-   "commit": "a39f1ff9a7cf56e92b56c6f179741569b9172a48",
-   "sha256": "16d2dh08dxdm06ik3sfx00filxqpy646vv1qh5kb36zs8ydzjg3z"
+   "commit": "c66b54d4c683289a41db823df5da73174184c12b",
+   "sha256": "071y34n995a391v59n0mdz0y210gkx8p4r4p36yzazkrvhmqkjk3"
   }
  },
  {
@@ -107193,11 +107825,11 @@
   "repo": "xahlee/xah-fly-keys",
   "unstable": {
    "version": [
-    20201208,
-    2351
+    20201228,
+    107
    ],
-   "commit": "e6162ebb8ca24e1ae025e3cc125dfdc99e6ec622",
-   "sha256": "0zih4ynhq3jn0as9v22cbi5f097qxqkgj1y43ydlk4szixx952kf"
+   "commit": "4e273efcc6f94535e58461c2e9cb0d14fd6d7f6d",
+   "sha256": "0lwyd9kif0lgm1gawv19jmhraabnrqsqpmvh7pd3g1cmyn2chnkh"
   }
  },
  {
@@ -107268,11 +107900,11 @@
   "repo": "xahlee/xah-replace-pairs",
   "unstable": {
    "version": [
-    20180508,
-    249
+    20201219,
+    741
    ],
-   "commit": "4d845cfbce32d45befd7c454e3476c3ce40d2b43",
-   "sha256": "1mkglrc8mbsjag3pc9zrmqa9x3n009hza1p1jvn3n97wjpc1qxlk"
+   "commit": "fa239bf4eaf30858bb40fc8d3c1fa1372faacc42",
+   "sha256": "1rjclwr4wq7k1bqf9di0smjqyh6aqhzvy7xzj2w28iy6al1b80zw"
   }
  },
  {
@@ -107389,8 +108021,8 @@
   "repo": "dandavison/xenops",
   "unstable": {
    "version": [
-    20201111,
-    1643
+    20201223,
+    923
    ],
    "deps": [
     "aio",
@@ -107401,8 +108033,8 @@
     "f",
     "s"
    ],
-   "commit": "fd9a8ba23727170db9baef98950d51f4bfd99d34",
-   "sha256": "1g2bxwvhhn919wzgl4nlkisyl0886fs8bbdl0dn2ry7i3a732jbc"
+   "commit": "902b909cf637dc84178abe897b12ac175f8638fc",
+   "sha256": "0zl4f64v9avpwfn15lbziangd69f83v7n9hvbsh4d4ipdb3yx9x6"
   }
  },
  {
@@ -107435,6 +108067,25 @@
   }
  },
  {
+  "ename": "xmind-org",
+  "commit": "9bff1f465c7c1b97bb4debb9acb53b6192831631",
+  "sha256": "0ilb2l0zp60cv6igvrbyhjcvihm9gvy9q8zs7frxqgsadshx45jn",
+  "fetcher": "github",
+  "repo": "akirak/xmind-org-el",
+  "unstable": {
+   "version": [
+    20201202,
+    1605
+   ],
+   "deps": [
+    "dash",
+    "org-ml"
+   ],
+   "commit": "ee09e382b3fefb67ccf3cd4db96a8dd2acc34045",
+   "sha256": "1icjdgyv5i640p8q8y06h7nhzi7is4szj19j3vbhh6yxbwzdhbn9"
+  }
+ },
+ {
   "ename": "xml+",
   "commit": "244388d158efda6fe8c1362a65b89b352c444422",
   "sha256": "0xgqyfdn6kkp89zj4h54r009a44sbff0nrhh582zw5rlklypwdz1",
@@ -107626,8 +108277,8 @@
     20200907,
     811
    ],
-   "commit": "bfbe9a70fb9fc7fdd24dcfa7085b16fb01f14501",
-   "sha256": "1bmsrj24apag8lwqzgs3gyfmxwmraq4psfcr8szib1f71yzq9sli"
+   "commit": "885184298ce1b6eb5d18922ea331623973082a15",
+   "sha256": "04pq8xffpj16kifkxr4w64kh77a1cghvy2725w5qbj75v95w6078"
   },
   "stable": {
    "version": [
@@ -108071,11 +108722,11 @@
   "repo": "Kungsgeten/yankpad",
   "unstable": {
    "version": [
-    20201118,
-    844
+    20201228,
+    1208
    ],
-   "commit": "7aea1769d206c0051a014622ee64be4f4f1f0494",
-   "sha256": "08na5qixdhkdkbhssk12mspqalnbss8f77a2qgia3cwb0gm5ijvz"
+   "commit": "06d85f04133fbd49a6469174032f4c10a0abe98d",
+   "sha256": "16a4qfliym93rj7bsjijzwlv8r8h9kbxrd53wdk9fb6vgdk2vv9h"
   },
   "stable": {
    "version": [
@@ -108266,14 +108917,14 @@
   "repo": "AndreaCrotti/yasnippet-snippets",
   "unstable": {
    "version": [
-    20201118,
-    2148
+    20201221,
+    849
    ],
    "deps": [
     "yasnippet"
    ],
-   "commit": "9fc9c2144aa3db4d85fdd35f7df28e58aa1801b3",
-   "sha256": "1a0wf16ai4rlm3z3b7kk5000izq1xkjwc7cvjmxgmy02sa8bif69"
+   "commit": "1f90ffb80e1da458a8cccf09add2f5fd952f1642",
+   "sha256": "0yg435j6wv4jalfpndqhy8xb0cviak9kpv38yby9zjzcjc9dcsg7"
   },
   "stable": {
    "version": [
@@ -108951,15 +109602,15 @@
   "repo": "EFLS/zetteldeft",
   "unstable": {
    "version": [
-    20201207,
-    852
+    20201230,
+    2127
    ],
    "deps": [
     "ace-window",
     "deft"
    ],
-   "commit": "cd5e0a9ef748ed9d0484f8bc1e123c50017882b6",
-   "sha256": "0ifcs6x3wx5jah223wchs03r8fmcjsza50shm2dbk8zzzfk6zv1k"
+   "commit": "ca3793959669b577296e1787aa029effa29a15c5",
+   "sha256": "1rxp0nwnjpwz3j44yj7afjj04hx4y3157a7vrgy0dlivhjzmdgag"
   },
   "stable": {
    "version": [
@@ -109256,11 +109907,11 @@
   "repo": "cyrus-and/zoom",
   "unstable": {
    "version": [
-    20200708,
-    1105
+    20201215,
+    1913
    ],
-   "commit": "a373e7eed59ad93315e5ae88c816ca70404d2d34",
-   "sha256": "0dmpin0rlwib659s3g7qp48qmma50amj7zdk281b4j0bl6p3zkyc"
+   "commit": "c7beef180bc4037404e2d56b9ab9b7c76d1713a0",
+   "sha256": "0vzrg5vfb4rnripdxlnl2gs6mm85ysiwnn8rclsaljrmk5xrp5ls"
   },
   "stable": {
    "version": [
diff --git a/pkgs/applications/editors/emacs/generic.nix b/pkgs/applications/editors/emacs/generic.nix
index a84cb41bf30..101dbdaa2e9 100644
--- a/pkgs/applications/editors/emacs/generic.nix
+++ b/pkgs/applications/editors/emacs/generic.nix
@@ -42,7 +42,12 @@ assert withXwidgets -> withGTK3 && webkitgtk != null;
 
 let
 
-in stdenv.mkDerivation {
+in stdenv.mkDerivation (lib.optionalAttrs nativeComp {
+  NATIVE_FULL_AOT = "1";
+  LIBRARY_PATH = "${lib.getLib stdenv.cc.libc}/lib";
+} // lib.optionalAttrs stdenv.isDarwin {
+  CFLAGS = "-DMAC_OS_X_VERSION_MAX_ALLOWED=101200";
+} // {
   inherit pname version patches;
 
   src = fetchurl {
@@ -88,10 +93,6 @@ in stdenv.mkDerivation {
     ""
   ];
 
-  CFLAGS = "-DMAC_OS_X_VERSION_MAX_ALLOWED=101200";
-
-  LIBRARY_PATH = if nativeComp then "${lib.getLib stdenv.cc.libc}/lib" else "";
-
   nativeBuildInputs = [ pkgconfig makeWrapper ]
     ++ lib.optionals srcRepo [ autoreconfHook texinfo ]
     ++ lib.optional (withX && (withGTK3 || withXwidgets)) wrapGAppsHook;
@@ -155,6 +156,11 @@ in stdenv.mkDerivation {
     mv nextstep/Emacs.app $out/Applications
   '' + lib.optionalString (nativeComp && withNS) ''
     ln -snf $out/lib/emacs/*/native-lisp $out/Applications/Emacs.app/Contents/native-lisp
+  '' + lib.optionalString nativeComp ''
+    mkdir -p $out/share/emacs/native-lisp
+    $out/bin/emacs --batch \
+      --eval "(add-to-list 'comp-eln-load-path \"$out/share/emacs/native-lisp\")" \
+      -f batch-native-compile $out/share/emacs/site-lisp/site-start.el
   '';
 
   postFixup = lib.concatStringsSep "\n" [
@@ -195,4 +201,4 @@ in stdenv.mkDerivation {
       separately.
     '';
   };
-}
+})
diff --git a/pkgs/applications/editors/emacs/site-start.el b/pkgs/applications/editors/emacs/site-start.el
index 86cad1132f6..01a6422d731 100644
--- a/pkgs/applications/editors/emacs/site-start.el
+++ b/pkgs/applications/editors/emacs/site-start.el
@@ -34,6 +34,25 @@ least specific (the system profile)"
       (setenv "EMACSLOADPATH" (when new-env-list
                                 (mapconcat 'identity new-env-list ":"))))))
 
+(let ((wrapper-site-lisp (getenv "emacsWithPackages_siteLispNative"))
+      (env-load-path (getenv "EMACSNATIVELOADPATH")))
+  (when wrapper-site-lisp
+    (setenv "emacsWithPackages_siteLispNative" nil))
+  (when (and wrapper-site-lisp env-load-path)
+    (let* ((env-list (split-string env-load-path ":"))
+           (new-env-list (delete wrapper-site-lisp env-list)))
+      (setenv "EMACSNATIVELOADPATH" (when new-env-list
+                                (mapconcat 'identity new-env-list ":"))))))
+
+;;; Set up native-comp load path.
+(when (featurep 'comp)
+  ;; Append native-comp subdirectories from `NIX_PROFILES'.
+  (setq comp-eln-load-path
+        (append (mapcar (lambda (profile-dir)
+                          (concat profile-dir "/share/emacs/native-lisp/"))
+                        (nix--profile-paths))
+                comp-eln-load-path)))
+
 ;;; Make `woman' find the man pages
 (defvar woman-manpath)
 (eval-after-load 'woman
diff --git a/pkgs/applications/editors/glow/default.nix b/pkgs/applications/editors/glow/default.nix
index d941c85e2c6..06013b50d63 100644
--- a/pkgs/applications/editors/glow/default.nix
+++ b/pkgs/applications/editors/glow/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "glow";
-  version = "1.2.1";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "charmbracelet";
     repo = "glow";
     rev = "v${version}";
-    sha256 = "1jf9d8zwhvg9pc5g29lwz2r0lc59h1smwb5mjswxlvljpgbj7jwh";
+    sha256 = "1y5cdqmyc2z2qk74l0r2c4mnw0jfibrf2ry7qcnmh96nhalq9m7j";
   };
 
-  vendorSha256 = "1p50qr7hbc8vyifa23z7xr43b4fpmwdzg7hqs503c124kpbpk45z";
+  vendorSha256 = "11x6hshbqg1a39a1hwpfivgrhyk7ykw2aqylira3dqv039b1f639";
 
   doCheck = false;
 
@@ -20,6 +20,7 @@ buildGoModule rec {
   meta = with lib; {
     description = "Render markdown on the CLI, with pizzazz!";
     homepage = "https://github.com/charmbracelet/glow";
+    changelog = "https://github.com/charmbracelet/glow/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne penguwin ];
   };
diff --git a/pkgs/applications/editors/jetbrains/common.nix b/pkgs/applications/editors/jetbrains/common.nix
index 07776bebe42..43dbd137f78 100644
--- a/pkgs/applications/editors/jetbrains/common.nix
+++ b/pkgs/applications/editors/jetbrains/common.nix
@@ -1,5 +1,6 @@
-{ stdenv, lib, makeDesktopItem, makeWrapper, patchelf
+{ stdenv, lib, makeDesktopItem, makeWrapper, patchelf, writeText
 , coreutils, gnugrep, which, git, unzip, libsecret, libnotify
+, vmopts ? null
 }:
 
 { name, product, version, src, wmClass, jdk, meta }:
@@ -9,6 +10,11 @@ with stdenv.lib;
 let loName = toLower product;
     hiName = toUpper product;
     execName = concatStringsSep "-" (init (splitString "-" name));
+    vmoptsName = loName
+               + ( if (with stdenv.hostPlatform; (is32bit || isDarwin))
+                   then ""
+                   else "64" )
+               + ".vmoptions";
 in
 
 with stdenv; lib.makeOverridable mkDerivation rec {
@@ -26,6 +32,8 @@ with stdenv; lib.makeOverridable mkDerivation rec {
     '';
   };
 
+  vmoptsFile = optionalString (vmopts != null) (writeText vmoptsName vmopts);
+
   nativeBuildInputs = [ makeWrapper patchelf unzip ];
 
   patchPhase = lib.optionalString (!stdenv.isDarwin) ''
@@ -72,7 +80,8 @@ with stdenv; lib.makeOverridable mkDerivation rec {
       --set JDK_HOME "$jdk" \
       --set ${hiName}_JDK "$jdk" \
       --set ANDROID_JAVA_HOME "$jdk" \
-      --set JAVA_HOME "$jdk"
+      --set JAVA_HOME "$jdk" \
+      --set ${hiName}_VM_OPTIONS ${vmoptsFile}
 
     ln -s "$item/share/applications" $out/share
   '';
diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index 78e6ad30b71..9d743b197e6 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -2,12 +2,13 @@
 , python
 , jdk, cmake, libxml2, zlib, python3, ncurses5
 , dotnet-sdk_3
+, vmopts ? null
 }:
 
 with stdenv.lib;
 
 let
-  mkJetBrainsProduct = callPackage ./common.nix { };
+  mkJetBrainsProduct = callPackage ./common.nix { inherit vmopts; };
   # Sorted alphabetically
 
   buildClion = { name, version, src, license, description, wmClass, ... }:
@@ -48,7 +49,7 @@ let
 
           patchelf \
             --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib ]}:$lldbLibPath" \
-            bin/lldb/linux/lib/python3.*/lib-dynload/zlib.cpython-*m-x86_64-linux-gnu.so
+            bin/lldb/linux/lib/python3.*/lib-dynload/zlib.cpython-*-x86_64-linux-gnu.so
 
           patchelf \
             --set-rpath "${lib.makeLibraryPath [ libxml2 zlib stdenv.cc.cc.lib python3 ]}:$lldbLibPath" \
@@ -268,12 +269,12 @@ in
 
   clion = buildClion rec {
     name = "clion-${version}";
-    version = "2020.2.5"; /* updated by script */
+    version = "2020.3.1"; /* updated by script */
     description  = "C/C++ IDE. New. Intelligent. Cross-platform";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz";
-      sha256 = "0j7gxh8wqshn2i1f22bl9099sx8a4092qwkp4fwny4649rbkfyrz"; /* updated by script */
+      sha256 = "1jfvwir79s0kcqmlx6bbkmc42bplgl7814mnqfcsdzni1qv62pws"; /* updated by script */
     };
     wmClass = "jetbrains-clion";
     update-channel = "CLion RELEASE"; # channel's id as in http://www.jetbrains.com/updates/updates.xml
@@ -281,12 +282,12 @@ in
 
   datagrip = buildDataGrip rec {
     name = "datagrip-${version}";
-    version = "2020.3"; /* updated by script */
+    version = "2020.3.1"; /* updated by script */
     description = "Your Swiss Army Knife for Databases and SQL";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/datagrip/${name}.tar.gz";
-      sha256 = "1j0mlsiqh80mspi2x9mi0h5hxhg5gw6395hyl9w33q8dxm95mx2d"; /* updated by script */
+      sha256 = "0jk7ywxk983ld5x71a59dh1hvlnli3sbvg7fbicahas5ml8clxfv"; /* updated by script */
     };
     wmClass = "jetbrains-datagrip";
     update-channel = "DataGrip RELEASE";
@@ -294,12 +295,12 @@ in
 
   goland = buildGoland rec {
     name = "goland-${version}";
-    version = "2020.2.3"; /* updated by script */
+    version = "2020.3.1"; /* updated by script */
     description = "Up and Coming Go IDE";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/go/${name}.tar.gz";
-      sha256 = "18mzlqibgc6lzwhbmyrni56464qhzla9mss27d45hv0mbv087jn0"; /* updated by script */
+      sha256 = "12gi1a2bmafmy7qgqwv3a7b5b46dlhw4ahmkm5pkq6pmxl4y6dmk"; /* updated by script */
     };
     wmClass = "jetbrains-goland";
     update-channel = "GoLand RELEASE";
@@ -307,12 +308,12 @@ in
 
   idea-community = buildIdea rec {
     name = "idea-community-${version}";
-    version = "2020.3"; /* updated by script */
+    version = "2020.3.1"; /* updated by script */
     description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
     license = stdenv.lib.licenses.asl20;
     src = fetchurl {
       url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz";
-      sha256 = "0x1nsjw1m03iq7sd9i2qqlyribrzgi8yh6k5hnb630kvrxr8pxy6"; /* updated by script */
+      sha256 = "0am4h8w1dmjl08iphqy78ivb91vkrvskg95dgm24zcj0n8rwmaq6"; /* updated by script */
     };
     wmClass = "jetbrains-idea-ce";
     update-channel = "IntelliJ IDEA RELEASE";
@@ -320,12 +321,12 @@ in
 
   idea-ultimate = buildIdea rec {
     name = "idea-ultimate-${version}";
-    version = "2020.3"; /* updated by script */
+    version = "2020.3.1"; /* updated by script */
     description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jbr.tar.gz";
-      sha256 = "1l6bvfgzp27113rjy1y3jvp09cqx8gpnbgpwp83vsph7x0dhx8a3"; /* updated by script */
+      sha256 = "1kwz0aq4b664awppakj4syppk218nynwxv4ngc7pa3k9v4g2sdah"; /* updated by script */
     };
     wmClass = "jetbrains-idea";
     update-channel = "IntelliJ IDEA RELEASE";
@@ -346,12 +347,12 @@ in
 
   phpstorm = buildPhpStorm rec {
     name = "phpstorm-${version}";
-    version = "2020.2.4"; /* updated by script */
+    version = "2020.3.1"; /* updated by script */
     description = "Professional IDE for Web and PHP developers";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
-      sha256 = "111dr1a6695msh13cd484yk671jnh2ps6q1k2dl0kmryk9dqnvhd"; /* updated by script */
+      sha256 = "1c5j3mbg8scsl4c90cjahdk5gs5q72y5a8fhkqa9zmy6di42k99x"; /* updated by script */
     };
     wmClass = "jetbrains-phpstorm";
     update-channel = "PhpStorm RELEASE";
@@ -359,12 +360,12 @@ in
 
   pycharm-community = buildPycharm rec {
     name = "pycharm-community-${version}";
-    version = "2020.2.5"; /* updated by script */
+    version = "2020.3.2"; /* updated by script */
     description = "PyCharm Community Edition";
     license = stdenv.lib.licenses.asl20;
     src = fetchurl {
       url = "https://download.jetbrains.com/python/${name}.tar.gz";
-      sha256 = "0jkc26y3v94jj8q7dxq1py59is2whh45b890iac5adg6x670z3s6"; /* updated by script */
+      sha256 = "1z3w6aah635fdrhrzp5af6sgj269jk7mv8vgdd83gxillkx9vq9k"; /* updated by script */
     };
     wmClass = "jetbrains-pycharm-ce";
     update-channel = "PyCharm RELEASE";
@@ -372,12 +373,12 @@ in
 
   pycharm-professional = buildPycharm rec {
     name = "pycharm-professional-${version}";
-    version = "2020.2.5"; /* updated by script */
+    version = "2020.3.2"; /* updated by script */
     description = "PyCharm Professional Edition";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/python/${name}.tar.gz";
-      sha256 = "04imfgr45gvicjjgqzdcdmbnbiszjma3s40k2pgqs5nn6wbrw3dd"; /* updated by script */
+      sha256 = "1fbb8v40q7vgn5v5dyxb211abr8swnxa3gw18kh3vlk6yc2crzfw"; /* updated by script */
     };
     wmClass = "jetbrains-pycharm";
     update-channel = "PyCharm RELEASE";
@@ -385,12 +386,12 @@ in
 
   rider = buildRider rec {
     name = "rider-${version}";
-    version = "2020.2.4"; /* updated by script */
+    version = "2020.3.2"; /* updated by script */
     description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/rider/JetBrains.Rider-${version}.tar.gz";
-      sha256 = "1anl48ifv5ayqn876dqckxc1b5fw1271pvamzf1vvk501wv6dpaf"; /* updated by script */
+      sha256 = "1dkgbd2nqkjcswf7j3pnrsaq9n5wk42abz2c4wgkrh1zrpgihd0j"; /* updated by script */
     };
     wmClass = "jetbrains-rider";
     update-channel = "Rider RELEASE";
@@ -398,12 +399,12 @@ in
 
   ruby-mine = buildRubyMine rec {
     name = "ruby-mine-${version}";
-    version = "2020.3"; /* updated by script */
+    version = "2020.3.1"; /* updated by script */
     description = "The Most Intelligent Ruby and Rails IDE";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
-      sha256 = "0ij6j9bxfqzj8gnrhhdgai22s1n5swd4waxd5zjvmv7q9j9cb2l5"; /* updated by script */
+      sha256 = "0drxzz6k0cmhir4szg8nwmsi9qh380vrryghmpvx9w83yrcain4c"; /* updated by script */
     };
     wmClass = "jetbrains-rubymine";
     update-channel = "RubyMine RELEASE";
@@ -411,12 +412,12 @@ in
 
   webstorm = buildWebStorm rec {
     name = "webstorm-${version}";
-    version = "2020.3"; /* updated by script */
+    version = "2020.3.1"; /* updated by script */
     description = "Professional IDE for Web and JavaScript development";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
-      sha256 = "0sk7slwfr9jasid09hxw81sik5srn35vif3pbzpybig3yszbv6ld"; /* updated by script */
+      sha256 = "1bfq3xwnfz6f04d0lq584q7pg775a8y35b1b62w81dbfh43l4fj0"; /* updated by script */
     };
     wmClass = "jetbrains-webstorm";
     update-channel = "WebStorm RELEASE";
diff --git a/pkgs/applications/editors/joe/default.nix b/pkgs/applications/editors/joe/default.nix
index bb227512387..9470c7940d6 100644
--- a/pkgs/applications/editors/joe/default.nix
+++ b/pkgs/applications/editors/joe/default.nix
@@ -1,8 +1,8 @@
 { stdenv, fetchurl } :
 
 stdenv.mkDerivation rec {
-  version = "4.6";
   pname = "joe";
+  version = "4.6";
 
   src = fetchurl {
     url = "mirror://sourceforge/joe-editor/${pname}-${version}.tar.gz";
@@ -11,8 +11,36 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "A full featured terminal-based screen editor";
+    longDescription = ''
+      JOE (Joe's Own Editor) is a full featured terminal-based screen editor
+      which is distributed under the GNU General Public License (GPL). JOE has
+      been around since 1988 and comes standard with many Linux distributions.
+
+      JOE is being maintained by its original author Joseph Allen, plus all of
+      the people who send bug reports, feature suggestions and patches to the
+      project web site. JOE is hosted by SourceForge.net and its source code is
+      controlled under Mercurial.
+
+      JOE is a blending of MicroPro's venerable microcomputer word processor
+      WordStar and Richard Stallman's famous LISP based text editor GNU-EMACS
+      (but it does not use code from either program): most of the basic editing
+      keys are the same as in WordStar as is the overall feel of the editor. JOE
+      also has some of the key bindings and many of the powerful features of
+      EMACS.
+
+      JOE is written in C and its only dependency is libc. This makes JOE very
+      easy to build (just "configure" and "make install"), making it feasible to
+      include on small systems and recovery disks. The compiled binary is about
+      300K in x86. Note that JOE can use either the termcap or terminfo terminal
+      capabilities databases (or a built-in termcap entry for ANSI
+      terminals). The choice is controlled by a "configure" option. If terminfo
+      is used, a library is required to access the database (on some systems
+      this library is ncurses, but JOE does not use curses to control the
+      terminal - it has its own code for this).
+    '';
     homepage = "https://joe-editor.sourceforge.io";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/editors/kakoune/default.nix b/pkgs/applications/editors/kakoune/default.nix
index f1f81106659..67a2ac5fac7 100644
--- a/pkgs/applications/editors/kakoune/default.nix
+++ b/pkgs/applications/editors/kakoune/default.nix
@@ -25,9 +25,9 @@ stdenv.mkDerivation rec {
     export version="v${version}"
   '';
 
-  doInstallCheckPhase = true;
+  doInstallCheck = true;
   installCheckPhase = ''
-    $out/bin/kak -ui json -E "kill 0"
+    $out/bin/kak -ui json -e "kill 0"
   '';
 
   postInstall = ''
diff --git a/pkgs/applications/editors/kdevelop5/kdev-php.nix b/pkgs/applications/editors/kdevelop5/kdev-php.nix
index 524835402f4..23c8f0698cf 100644
--- a/pkgs/applications/editors/kdevelop5/kdev-php.nix
+++ b/pkgs/applications/editors/kdevelop5/kdev-php.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "kdev-php";
-  version = "5.6.0";
+  version = "5.6.1";
 
   src = fetchurl {
     url = "https://github.com/KDE/${pname}/archive/v${version}.tar.gz";
-    sha256 = "1j5m9mhjzp2r4wdwnnnckms8ic536s6y0iyry2zdndbsy215hqlz";
+    sha256 = "0xjijkmp3drnfrx4gb4bwf8n1dgwk310c0mssm6drffwix7ljpbz";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules ];
diff --git a/pkgs/applications/editors/kdevelop5/kdev-python.nix b/pkgs/applications/editors/kdevelop5/kdev-python.nix
index 9af12b386a0..041c25f1728 100644
--- a/pkgs/applications/editors/kdevelop5/kdev-python.nix
+++ b/pkgs/applications/editors/kdevelop5/kdev-python.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "kdev-python";
-  version = "5.6.0";
+  version = "5.6.1";
 
   src = fetchurl {
     url = "https://github.com/KDE/${pname}/archive/v${version}.tar.gz";
-    sha256 = "1bm6jk7gkl4vi579x99mja4znrzzp15zk66ss600dn8aq11jrxv2";
+    sha256 = "1jma7j70imzxlyz8580m79jycif7zphga3zzfmqimn8syzz917hv";
   };
 
   cmakeFlags = [
diff --git a/pkgs/applications/editors/mindforger/build.patch b/pkgs/applications/editors/mindforger/build.patch
index e2745cbce2d..e9b9244f8db 100644
--- a/pkgs/applications/editors/mindforger/build.patch
+++ b/pkgs/applications/editors/mindforger/build.patch
@@ -1,17 +1,8 @@
 diff --git a/app/app.pro b/app/app.pro
-index 4d47065..a39a320 100644
+index 29f9d9e..15fd2ff 100644
 --- a/app/app.pro
 +++ b/app/app.pro
-@@ -18,6 +18,8 @@
- TARGET = mindforger
- TEMPLATE = app
- 
-+include(../config.pri)
-+
- QT += widgets
- 
- mfner {
-@@ -297,7 +299,7 @@ RESOURCES += \
+@@ -370,7 +370,7 @@ RESOURCES += \
  # See http://doc.qt.io/qt-5/qmake-advanced-usage.html
  
  binfile.files += mindforger
@@ -20,51 +11,11 @@ index 4d47065..a39a320 100644
  INSTALLS += binfile
  
  # ########################################
-diff --git a/config.pri b/config.pri
-new file mode 100644
-index 0000000..ce05df1
---- /dev/null
-+++ b/config.pri
-@@ -0,0 +1,3 @@
-+isEmpty(PREFIX) {
-+ PREFIX = /usr
-+}
-diff --git a/deps/discount/discount.pro b/deps/discount/discount.pro
-index a8dfe35..ec16468 100644
---- a/deps/discount/discount.pro
-+++ b/deps/discount/discount.pro
-@@ -5,6 +5,8 @@
- # Webpage: http://www.pell.portland.or.us/~orc/Code/discount/
- #
- 
-+include(../../config.pri)
-+
- QT       -= core gui
- 
- TARGET = discount
-@@ -46,7 +48,7 @@ unix:!symbian {
-     maemo5 {
-         target.path = /opt/usr/lib
-     } else {
--        target.path = /usr/lib
-+        target.path = $$PREFIX/lib
-     }
-     INSTALLS += target
- }
 diff --git a/mindforger.pro b/mindforger.pro
-index ae627f2..0953856 100644
+index bd4f21d..6bb2dbc 100644
 --- a/mindforger.pro
 +++ b/mindforger.pro
-@@ -32,6 +32,8 @@ TEMPLATE = subdirs
- 
- SUBDIRS = deps lib app
- 
-+include(config.pri)
-+
- # build dependencies
- lib.depends = deps
- app.depends = lib
-@@ -44,20 +46,20 @@ app.depends = lib
+@@ -43,20 +43,20 @@ app.depends = lib
  #IMPORTANT: binfile MUST be specified in app/app.pro (project next to/that builds binary)
  
  docfiles.files += doc/*
diff --git a/pkgs/applications/editors/mindforger/default.nix b/pkgs/applications/editors/mindforger/default.nix
index 82aa38c1449..f7e24434225 100644
--- a/pkgs/applications/editors/mindforger/default.nix
+++ b/pkgs/applications/editors/mindforger/default.nix
@@ -1,35 +1,34 @@
-{ mkDerivation, stdenv, fetchurl, qmake, qtbase, qtwebkit }:
+{ mkDerivation
+, cmark-gfm
+, fetchurl
+, qmake
+, qtbase
+, qtwebkit
+, stdenv
+, wrapGAppsHook
+}:
 
 mkDerivation rec {
   pname = "mindforger";
-  version = "1.48.2";
+  version = "1.52.0";
 
   src = fetchurl {
-    url = "https://github.com/dvorka/mindforger/releases/download/1.48.0/mindforger_${version}.tgz";
-    sha256 = "1wlrl8hpjcpnq098l3n2d1gbhbjylaj4z366zvssqvmafr72iyw4";
+    url = "https://github.com/dvorka/mindforger/releases/download/${version}/mindforger_${version}.tgz";
+    sha256 = "1pghsw8kwvjhg3jpmjs0n892h2l0pm0cs6ymi8b23fwk0kfj67rd";
   };
 
-  nativeBuildInputs = [ qmake ] ;
-  buildInputs = [ qtbase qtwebkit ] ;
+  nativeBuildInputs = [ qmake wrapGAppsHook ] ;
+  buildInputs = [ qtbase qtwebkit cmark-gfm ] ;
 
   doCheck = true;
 
-  enableParallelBuilding = true ;
-
   patches = [ ./build.patch ] ;
 
   postPatch = ''
-    substituteInPlace deps/discount/version.c.in --subst-var-by TABSTOP 4
+    substituteInPlace lib/src/install/installer.cpp --replace /usr "$out"
     substituteInPlace app/resources/gnome-shell/mindforger.desktop --replace /usr "$out"
   '';
 
-  preConfigure = ''
-    export AC_PATH="$PATH"
-    pushd deps/discount
-    ./configure.sh
-    popd
-  '';
-
   qmakeFlags = [ "-r mindforger.pro" "CONFIG+=mfnoccache" ] ;
 
   meta = with stdenv.lib; {
@@ -41,5 +40,6 @@ mkDerivation rec {
     homepage = "https://www.mindforger.com";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
+    maintainers = with maintainers; [ cyplo ];
   };
 }
diff --git a/pkgs/applications/editors/moe/default.nix b/pkgs/applications/editors/moe/default.nix
index 060abda33d0..d6dbe100652 100644
--- a/pkgs/applications/editors/moe/default.nix
+++ b/pkgs/applications/editors/moe/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, fetchurl
-, lzip, ncurses
+{ stdenv
+, fetchurl
+, ncurses
+, lzip
 }:
 
-with stdenv.lib;
 stdenv.mkDerivation rec {
-
   pname = "moe";
-  version = "1.10";
+  version = "1.11";
 
   src = fetchurl {
     url = "mirror://gnu/moe/${pname}-${version}.tar.lz";
-    sha256 = "0fymywdiy9xqppcmvgs7mf7d3gfrky3jp5jkxs2l3v93asml9zcc";
+    sha256 = "sha256-DvvLz1pKjZZlQcbLCZugq2QWeANm286C2f+ZWoWl4vk=";
   };
 
   prePatch = ''
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ lzip ];
   buildInputs = [ ncurses ];
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A small, 8-bit clean editor";
     longDescription = ''
       GNU moe is a powerful, 8-bit clean, console text editor for ISO-8859 and
diff --git a/pkgs/applications/editors/texstudio/default.nix b/pkgs/applications/editors/texstudio/default.nix
index 7f92c4d492c..101c9bc59f9 100644
--- a/pkgs/applications/editors/texstudio/default.nix
+++ b/pkgs/applications/editors/texstudio/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "texstudio";
-  version = "3.0.1";
+  version = "3.0.3";
 
   src = fetchFromGitHub {
     owner = "${pname}-org";
     repo = pname;
     rev = version;
-    sha256 = "18ad85y4hrsvp7gs50dfg08cz40vbakb9hs8gw4cvi7r17vds5ar";
+    sha256 = "05q70wbdaldhrlapss4agmvz1cwqd229nd5amkj069v1wxrkvpb7";
   };
 
   nativeBuildInputs = [ qmake wrapQtAppsHook pkgconfig ];
@@ -24,9 +24,10 @@ mkDerivation rec {
       LaTeX editing with completion, structure viewer, preview,
       spell checking and support of any compilation chain.
     '';
-    homepage = "http://texstudio.sourceforge.net";
+    homepage = "https://texstudio.org";
+    changelog = "https://github.com/texstudio-org/texstudio/blob/${version}/utilities/manual/CHANGELOG.txt";
     license = licenses.gpl2Plus;
-    platforms = [ "x86_64-linux" ];
+    platforms = platforms.linux;
     maintainers = with maintainers; [ ajs124 cfouche ];
   };
 }
diff --git a/pkgs/applications/editors/vscode/update-vscode.sh b/pkgs/applications/editors/vscode/update-vscode.sh
index 4974eb7e436..cb1400f048e 100755
--- a/pkgs/applications/editors/vscode/update-vscode.sh
+++ b/pkgs/applications/editors/vscode/update-vscode.sh
@@ -27,3 +27,11 @@ sed -i "s/x86_64-linux = \".\{52\}\"/x86_64-linux = \"${VSCODE_LINUX_SHA256}\"/"
 VSCODE_DARWIN_URL="https://vscode-update.azurewebsites.net/${VSCODE_VER}/darwin/stable"
 VSCODE_DARWIN_SHA256=$(nix-prefetch-url ${VSCODE_DARWIN_URL})
 sed -i "s/x86_64-darwin = \".\{52\}\"/x86_64-darwin = \"${VSCODE_DARWIN_SHA256}\"/" "$ROOT/vscode.nix"
+
+VSCODE_LINUX_AARCH64_URL="https://vscode-update.azurewebsites.net/${VSCODE_VER}/linux-arm64/stable"
+VSCODE_LINUX_AARCH64_SHA256=$(nix-prefetch-url ${VSCODE_LINUX_AARCH64_URL})
+sed -i "s/aarch64-linux = \".\{52\}\"/aarch64-linux = \"${VSCODE_LINUX_AARCH64_SHA256}\"/" "$ROOT/vscode.nix"
+
+VSCODE_LINUX_ARMV7L_URL="https://vscode-update.azurewebsites.net/${VSCODE_VER}/linux-armhf/stable"
+VSCODE_LINUX_ARMV7L_SHA256=$(nix-prefetch-url ${VSCODE_LINUX_ARMV7L_URL})
+sed -i "s/armv7l-linux = \".\{52\}\"/armv7l-linux = \"${VSCODE_LINUX_ARMV7L_SHA256}\"/" "$ROOT/vscode.nix"
diff --git a/pkgs/applications/editors/vscode/update-vscodium.sh b/pkgs/applications/editors/vscode/update-vscodium.sh
index 0ddab6063ca..79c6b497ecc 100755
--- a/pkgs/applications/editors/vscode/update-vscodium.sh
+++ b/pkgs/applications/editors/vscode/update-vscodium.sh
@@ -19,10 +19,18 @@ fi
 VSCODIUM_VER=$(curl -Ls -w %{url_effective} -o /dev/null https://github.com/VSCodium/vscodium/releases/latest | awk -F'/' '{print $NF}')
 sed -i "s/version = \".*\"/version = \"${VSCODIUM_VER}\"/" "$ROOT/vscodium.nix"
 
-VSCODIUM_LINUX_URL="https://github.com/VSCodium/vscodium/releases/download/${VSCODIUM_VER}/VSCodium-linux-x64-${VSCODIUM_VER}.tar.gz"
-VSCODIUM_LINUX_SHA256=$(nix-prefetch-url ${VSCODIUM_LINUX_URL})
-sed -i "s/x86_64-linux = \".\{52\}\"/x86_64-linux = \"${VSCODIUM_LINUX_SHA256}\"/" "$ROOT/vscodium.nix"
+VSCODIUM_LINUX_X64_URL="https://github.com/VSCodium/vscodium/releases/download/${VSCODIUM_VER}/VSCodium-linux-x64-${VSCODIUM_VER}.tar.gz"
+VSCODIUM_LINUX_X64_SHA256=$(nix-prefetch-url ${VSCODIUM_LINUX_X64_URL})
+sed -i "s/x86_64-linux = \".\{52\}\"/x86_64-linux = \"${VSCODIUM_LINUX_X64_SHA256}\"/" "$ROOT/vscodium.nix"
 
-VSCODIUM_DARWIN_URL="https://github.com/VSCodium/vscodium/releases/download/${VSCODIUM_VER}/VSCodium-darwin-${VSCODIUM_VER}.zip"
-VSCODIUM_DARWIN_SHA256=$(nix-prefetch-url ${VSCODIUM_DARWIN_URL})
-sed -i "s/x86_64-darwin = \".\{52\}\"/x86_64-darwin = \"${VSCODIUM_DARWIN_SHA256}\"/" "$ROOT/vscodium.nix"
+VSCODIUM_DARWIN_X64_URL="https://github.com/VSCodium/vscodium/releases/download/${VSCODIUM_VER}/VSCodium-darwin-x64-${VSCODIUM_VER}.zip"
+VSCODIUM_DARWIN_X64_SHA256=$(nix-prefetch-url ${VSCODIUM_DARWIN_X64_URL})
+sed -i "s/x86_64-darwin = \".\{52\}\"/x86_64-darwin = \"${VSCODIUM_DARWIN_X64_SHA256}\"/" "$ROOT/vscodium.nix"
+
+VSCODIUM_LINUX_AARCH64_URL="https://github.com/VSCodium/vscodium/releases/download/${VSCODIUM_VER}/VSCodium-linux-arm64-${VSCODIUM_VER}.tar.gz"
+VSCODIUM_LINUX_AARCH64_SHA256=$(nix-prefetch-url ${VSCODIUM_LINUX_AARCH64_URL})
+sed -i "s/aarch64-linux = \".\{52\}\"/aarch64-linux = \"${VSCODIUM_LINUX_AARCH64_SHA256}\"/" "$ROOT/vscodium.nix"
+
+VSCODIUM_LINUX_ARMV7L_URL="https://github.com/VSCodium/vscodium/releases/download/${VSCODIUM_VER}/VSCodium-linux-armhf-${VSCODIUM_VER}.tar.gz"
+VSCODIUM_LINUX_ARMV7L_SHA256=$(nix-prefetch-url ${VSCODIUM_LINUX_ARMV7L_URL})
+sed -i "s/armv7l-linux = \".\{52\}\"/armv7l-linux = \"${VSCODIUM_LINUX_ARMV7L_SHA256}\"/" "$ROOT/vscodium.nix"
diff --git a/pkgs/applications/editors/vscode/vscode.nix b/pkgs/applications/editors/vscode/vscode.nix
index 70f62117710..911b497e8f0 100644
--- a/pkgs/applications/editors/vscode/vscode.nix
+++ b/pkgs/applications/editors/vscode/vscode.nix
@@ -6,13 +6,17 @@ let
   plat = {
     x86_64-linux = "linux-x64";
     x86_64-darwin = "darwin";
+    aarch64-linux = "linux-arm64";
+    armv7l-linux = "linux-armhf";
   }.${system};
 
   archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "0yv6584y4idkl9vvmpxj5ix5brshm1vadiwf7ima84snm0fipb0n";
-    x86_64-darwin = "0igndxkwkxyjc9rkf9hbj8903hvfv7ab41q0s3gw8w5qh4b8s48x";
+    x86_64-linux = "1kbjbqb03yapz7067q589gaa7d6cqaipj7hmp1l3nh0bmggzsc4c";
+    x86_64-darwin = "1qgadm52c5lzkvgvqrz0n8brm4qbjg8hf1dk6a2ynqhqjxcwbj4r";
+    aarch64-linux = "0i3yl9rx9h7qkl3k9qk6gg35nhz737qzzbvzvdwkqjaacsbpfgf8";
+    armv7l-linux = "19iz2bxcq6y8sklr6zcnbp47kki9l00x3nvr213lkk3kj08l0afv";
   }.${system};
 in
   callPackage ./generic.nix rec {
@@ -21,7 +25,7 @@ in
 
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.51.1";
+    version = "1.52.1";
     pname = "vscode";
 
     executableName = "code" + lib.optionalString isInsiders "-insiders";
@@ -52,6 +56,6 @@ in
       downloadPage = "https://code.visualstudio.com/Updates";
       license = licenses.unfree;
       maintainers = with maintainers; [ eadwu synthetica ];
-      platforms = [ "x86_64-linux" "x86_64-darwin" ];
+      platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "armv7l-linux" ];
     };
   }
diff --git a/pkgs/applications/editors/vscode/vscodium.nix b/pkgs/applications/editors/vscode/vscodium.nix
index b8ca7e3f262..c3d8c4ee46c 100644
--- a/pkgs/applications/editors/vscode/vscodium.nix
+++ b/pkgs/applications/editors/vscode/vscodium.nix
@@ -5,19 +5,25 @@ let
 
   plat = {
     x86_64-linux = "linux-x64";
-    x86_64-darwin = "darwin";
+    x86_64-darwin = "darwin-x64";
+    aarch64-linux = "linux-arm64";
+    armv7l-linux = "linux-armhf";
   }.${system};
 
   archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "0hn4pqmabz3qf3bbqnn1fz7fcgzdkp2lwr2yzgmx8hhh3cff8bnb";
-    x86_64-darwin = "1x3wx0d99ihyya0n89qclc3jlhh0m72hs8hj7l0h3z6zmh6q2vzv";
+    x86_64-linux = "1ckg279vvg8h1n8ippa9vlyw4vk3frinb6fvvi47zggs31168m7b";
+    x86_64-darwin = "168g34v2b8r1pdbnqrs0c0k9aa60n5rspixziywnq7m61i23nlgd";
+    aarch64-linux = "1cd4sg6k7sqmj3yzmprq1rz928bvc3zrch8agfd8zfap1d6nfaal";
+    armv7l-linux = "0f8z4lws027dyqhcrkzm9rvifwid5m0icprg0xk01l7y18n3q923";
   }.${system};
 
   sourceRoot = {
     x86_64-linux = ".";
     x86_64-darwin = "";
+    aarch64-linux = ".";
+    armv7l-linux = ".";
   }.${system};
 in
   callPackage ./generic.nix rec {
@@ -27,7 +33,7 @@ in
 
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.51.1";
+    version = "1.52.1";
     pname = "vscodium";
 
     executableName = "codium";
@@ -55,6 +61,6 @@ in
       downloadPage = "https://github.com/VSCodium/vscodium/releases";
       license = licenses.mit;
       maintainers = with maintainers; [ synthetica turion ];
-      platforms = [ "x86_64-linux" "x86_64-darwin" ];
+      platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "armv7l-linux" ];
     };
   }
diff --git a/pkgs/applications/gis/qgis/unwrapped.nix b/pkgs/applications/gis/qgis/unwrapped.nix
index 54d3d598759..6f395640f50 100644
--- a/pkgs/applications/gis/qgis/unwrapped.nix
+++ b/pkgs/applications/gis/qgis/unwrapped.nix
@@ -1,8 +1,9 @@
 { mkDerivation, lib, fetchFromGitHub, cmake, ninja, flex, bison, proj, geos, xlibsWrapper, sqlite, gsl
 , qwt, fcgi, python3Packages, libspatialindex, libspatialite, postgresql
 , txt2tags, openssl, libzip, hdf5, netcdf, exiv2
-, qtbase, qtwebkit, qtsensors, qca-qt5, qtkeychain, qscintilla, qtserialport, qtxmlpatterns
+, qtbase, qtsensors, qca-qt5, qtkeychain, qscintilla, qtserialport, qtxmlpatterns
 , withGrass ? true, grass
+, withWebKit ? true, qtwebkit
 }:
 with lib;
 let
@@ -10,7 +11,7 @@ let
     [ qscintilla-qt5 gdal jinja2 numpy psycopg2
       chardet dateutil pyyaml pytz requests urllib3 pygments pyqt5 sip owslib six ];
 in mkDerivation rec {
-  version = "3.10.11";
+  version = "3.10.13";
   pname = "qgis";
   name = "${pname}-unwrapped-${version}";
 
@@ -18,7 +19,7 @@ in mkDerivation rec {
     owner = "qgis";
     repo = "QGIS";
     rev = "final-${lib.replaceStrings ["."] ["_"] version}";
-    sha256 = "157hwi9sgnsf0csbfg4x3c7vh0zgf1hnqgn04lhg9xa1n8jjbv2q";
+    sha256 = "0za77znk1phrxzy2cgxpwrld3d0pi0xvhsg78rg4wkb23vaqv6zb";
   };
 
   passthru = {
@@ -28,8 +29,10 @@ in mkDerivation rec {
 
   buildInputs = [ openssl proj geos xlibsWrapper sqlite gsl qwt exiv2
     fcgi libspatialindex libspatialite postgresql txt2tags libzip hdf5 netcdf
-    qtbase qtwebkit qtsensors qca-qt5 qtkeychain qscintilla qtserialport qtxmlpatterns] ++
-    (lib.optional withGrass grass) ++ pythonBuildInputs;
+    qtbase qtsensors qca-qt5 qtkeychain qscintilla qtserialport qtxmlpatterns ]
+    ++ lib.optional withGrass grass
+    ++ lib.optional withWebKit qtwebkit
+    ++ pythonBuildInputs;
 
   nativeBuildInputs = [ cmake flex bison ninja ];
 
@@ -44,17 +47,15 @@ in mkDerivation rec {
 
   cmakeFlags = [ "-DCMAKE_SKIP_BUILD_RPATH=OFF"
                  "-DPYQT5_SIP_DIR=${python3Packages.pyqt5}/share/sip/PyQt5"
-                 "-DQSCI_SIP_DIR=${python3Packages.qscintilla-qt5}/share/sip/PyQt5" ] ++
-                 lib.optional withGrass "-DGRASS_PREFIX7=${grass}/${grass.name}";
+                 "-DQSCI_SIP_DIR=${python3Packages.qscintilla-qt5}/share/sip/PyQt5" ]
+                 ++ lib.optional (!withWebKit) "-DWITH_QTWEBKIT=OFF"
+                 ++ lib.optional withGrass "-DGRASS_PREFIX7=${grass}/${grass.name}";
 
   meta = {
     description = "A Free and Open Source Geographic Information System";
-    homepage = "http://www.qgis.org";
+    homepage = "https://www.qgis.org";
     license = lib.licenses.gpl2Plus;
     platforms = with lib.platforms; linux;
-    maintainers = with lib.maintainers; [ lsix ];
-    # Our 3.10 LTS cannot use a newer Qt (5.15) version because it requires qtwebkit
-    # and our qtwebkit fails to build with 5.15. 01bcfd3579219d60e5d07df309a000f96b2b658b
-    broken = true;
+    maintainers = with lib.maintainers; [ lsix sikmir ];
   };
 }
diff --git a/pkgs/applications/graphics/darktable/default.nix b/pkgs/applications/graphics/darktable/default.nix
index 71c2de08a56..27d4a4ab0e2 100644
--- a/pkgs/applications/graphics/darktable/default.nix
+++ b/pkgs/applications/graphics/darktable/default.nix
@@ -7,12 +7,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "3.2.1";
+  version = "3.4.0";
   pname = "darktable";
 
   src = fetchurl {
     url = "https://github.com/darktable-org/darktable/releases/download/release-${version}/darktable-${version}.tar.xz";
-    sha256 = "035rvqmw386hm0jpi14lf4dnpr5rjkalzjkyprqh42nwi3m86dkf";
+    sha256 = "6dd3de1f5ea9f94af92838c0be5ff30fdaa599aa1d737dcb562f9e0b2b2dbdda";
   };
 
   nativeBuildInputs = [ cmake ninja llvm pkgconfig intltool perl desktop-file-utils wrapGAppsHook ];
diff --git a/pkgs/applications/graphics/digikam/default.nix b/pkgs/applications/graphics/digikam/default.nix
index 1e4b397db23..5832e97d439 100644
--- a/pkgs/applications/graphics/digikam/default.nix
+++ b/pkgs/applications/graphics/digikam/default.nix
@@ -116,6 +116,7 @@ mkDerivation rec {
     "-DENABLE_INTERNALMYSQL=1"
     "-DENABLE_MEDIAPLAYER=1"
     "-DENABLE_QWEBENGINE=on"
+    "-DENABLE_APPSTYLES=on"
   ];
 
   dontWrapGApps = true;
diff --git a/pkgs/applications/graphics/drawio/default.nix b/pkgs/applications/graphics/drawio/default.nix
index 892d81753e6..0bb4364d6fa 100644
--- a/pkgs/applications/graphics/drawio/default.nix
+++ b/pkgs/applications/graphics/drawio/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "drawio";
-  version = "13.9.9";
+  version = "14.1.5";
 
   src = fetchurl {
     url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/draw.io-x86_64-${version}.rpm";
-    hash = "sha256-+rNbLHpkFnvM7gDFbZ9AItPIA2IVTmscz+gTXF8riIY=";
+    hash = "sha256-dM/DGtUDnJBD4Cfhm/zbxfgBhUcIlEzlF4z3cmQuW14=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/emulsion/default.nix b/pkgs/applications/graphics/emulsion/default.nix
new file mode 100644
index 00000000000..ba7ebfcfdff
--- /dev/null
+++ b/pkgs/applications/graphics/emulsion/default.nix
@@ -0,0 +1,85 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, rustPlatform
+, installShellFiles
+, makeWrapper
+, pkg-config
+, python3
+, libGL
+, libX11
+, libXcursor
+, libXi
+, libXrandr
+, libXxf86vm
+, libxcb
+, libxkbcommon
+, wayland
+, xdg_utils
+, AppKit
+, CoreGraphics
+, CoreServices
+, Foundation
+, OpenGL
+}:
+let
+  rpathLibs = [
+    libGL
+    libX11
+    libXcursor
+    libXi
+    libXrandr
+    libXxf86vm
+    libxcb
+  ] ++ lib.optionals stdenv.isLinux [
+    libxkbcommon
+    wayland
+  ];
+in
+rustPlatform.buildRustPackage rec {
+  pname = "emulsion";
+  version = "7.2";
+
+  src = fetchFromGitHub {
+    owner = "ArturKovacs";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1king04p5j4gsvprrfppwaxa5jn4ga4nc0v63wl6fvq2ngwnkg4g";
+  };
+
+  cargoSha256 = "19vb2q5w3063l7349p1b8q40n97a4hxdvc7h7qsx1iiwp75knbd0";
+
+  nativeBuildInputs = [
+    installShellFiles
+    makeWrapper
+    pkg-config
+    python3
+  ];
+
+  buildInputs = rpathLibs ++ lib.optionals stdenv.isDarwin [
+    AppKit
+    CoreGraphics
+    CoreServices
+    Foundation
+    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
+  '';
+
+  dontPatchELF = true;
+
+  meta = with lib; {
+    description = "A fast and minimalistic image viewer";
+    homepage = "https://arturkovacs.github.io/emulsion-website/";
+    maintainers = [ maintainers.magnetophon ];
+    platforms = platforms.unix;
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/applications/graphics/evilpixie/default.nix b/pkgs/applications/graphics/evilpixie/default.nix
index 1f6a52aa0b0..4c47283c42a 100644
--- a/pkgs/applications/graphics/evilpixie/default.nix
+++ b/pkgs/applications/graphics/evilpixie/default.nix
@@ -22,13 +22,13 @@ let
 
 in mkDerivation rec {
   pname = "evilpixie";
-  version = "0.2";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
     owner = "bcampbell";
     repo = "evilpixie";
     rev = "v${version}";
-    sha256 = "1yg4ic3kcxqmr7k5bbvrv5iavlnhpdx6510z5wha9k9k5q9c4dvh";
+    sha256 = "0dwgfr8kmkfppgf5wx9i5f7fjz3gxk0ji1l06x1z4r3vj52hdbph";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/monado/default.nix b/pkgs/applications/graphics/monado/default.nix
new file mode 100644
index 00000000000..61343b3b1b4
--- /dev/null
+++ b/pkgs/applications/graphics/monado/default.nix
@@ -0,0 +1,101 @@
+{ stdenv
+, fetchFromGitLab
+, fetchpatch
+, cmake
+, pkg-config
+, python3
+, SDL2
+, dbus
+, eigen
+, ffmpeg
+, glslang
+, hidapi
+, libGL
+, libXau
+, libXdmcp
+, libXrandr
+, libffi
+# , librealsense
+, libsurvive
+, libusb1
+, libuvc
+, libv4l
+, libxcb
+, opencv4
+, openhmd
+, udev
+, vulkan-headers
+, vulkan-loader
+, wayland
+, wayland-protocols
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "monado";
+  version = "0.4.1";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.freedesktop.org";
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "114aif79dqyn2qg07mkv6lzmqn15k6fdcii818rdf5g4bp7zzzgm";
+  };
+
+  patches = [
+    # fix libsurvive autodetection, drop with the next version update
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/monado/monado/-/commit/345e9eab56e2de9e8b07cf72c2a67cf2ebd01e62.patch";
+      sha256 = "17c110an6sxc8rn7dfz30rfkbayg64w68licicwc8cqabi6cgrm3";
+    })
+  ];
+
+  nativeBuildInputs = [ cmake pkg-config python3 ];
+
+  buildInputs = [
+    SDL2
+    dbus
+    eigen
+    ffmpeg
+    glslang
+    hidapi
+    libGL
+    libXau
+    libXdmcp
+    libXrandr
+    libffi
+    # librealsense.dev - see below
+    libsurvive
+    libusb1
+    libuvc
+    libv4l
+    libxcb
+    opencv4
+    openhmd
+    udev
+    vulkan-headers
+    vulkan-loader
+    wayland
+    wayland-protocols
+    zlib
+  ];
+
+  # realsense is disabled, the build ends with the following error:
+  #
+  # CMake Error in src/xrt/drivers/CMakeLists.txt:
+  # Imported target "realsense2::realsense2" includes non-existent path
+  # "/nix/store/2v95aps14hj3jy4ryp86vl7yymv10mh0-librealsense-2.41.0/include"
+  # in its INTERFACE_INCLUDE_DIRECTORIES.
+  #
+  # for some reason cmake is trying to use ${librealsense}/include
+  # instead of ${librealsense.dev}/include as an include directory
+
+  meta = with stdenv.lib; {
+    description = "Open source XR runtime";
+    homepage = "https://monado.freedesktop.org/";
+    license = licenses.boost;
+    maintainers = with maintainers; [ prusnak ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/graphics/ocrfeeder/default.nix b/pkgs/applications/graphics/ocrfeeder/default.nix
new file mode 100644
index 00000000000..28fe58183fa
--- /dev/null
+++ b/pkgs/applications/graphics/ocrfeeder/default.nix
@@ -0,0 +1,73 @@
+{ stdenv
+, fetchurl
+, pkg-config
+, gtk3
+, gtkspell3
+, isocodes
+, goocanvas2
+, intltool
+, itstool
+, libxml2
+, gnome3
+, python3
+, gobject-introspection
+, wrapGAppsHook
+, tesseract4
+, extraOcrEngines ? [] # other supported engines are: ocrad gocr cuneiform
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ocrfeeder";
+  version = "0.8.3";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "12f5gnq92ffnd5zaj04df7jrnsdz1zn4zcgpbf5p9qnd21i2y529";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    wrapGAppsHook
+    intltool
+    itstool
+    libxml2
+  ];
+
+  buildInputs = [
+    gtk3
+    gobject-introspection
+    goocanvas2
+    gtkspell3
+    isocodes
+    (python3.withPackages(ps: with ps; [
+      pyenchant
+      sane
+      pillow
+      reportlab
+      odfpy
+      pygobject3
+    ]))
+  ];
+
+  # https://gitlab.gnome.org/GNOME/ocrfeeder/-/issues/22
+  postConfigure = ''
+    substituteInPlace src/ocrfeeder/util/constants.py \
+      --replace /usr/share/xml/iso-codes ${isocodes}/share/xml/iso-codes
+  '';
+
+  enginesPath = stdenv.lib.makeBinPath ([
+    tesseract4
+  ] ++ extraOcrEngines);
+
+  preFixup = ''
+    gappsWrapperArgs+=(--prefix PATH : "${enginesPath}")
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://wiki.gnome.org/Apps/OCRFeeder";
+    description = "Complete Optical Character Recognition and Document Analysis and Recognition program";
+    maintainers = with maintainers; [ doronbehar ];
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/graphics/paraview/default.nix b/pkgs/applications/graphics/paraview/default.nix
index b201f9dbf0d..d0c8d1c9ee9 100644
--- a/pkgs/applications/graphics/paraview/default.nix
+++ b/pkgs/applications/graphics/paraview/default.nix
@@ -66,7 +66,6 @@ mkDerivation rec {
     libGLU libGL
     libXt
     openmpi
-    (python3.withPackages (ps: with ps; [ numpy matplotlib mpi4py ]))
     tbb
     boost
     ffmpeg
@@ -78,6 +77,10 @@ mkDerivation rec {
     qtsvg
   ];
 
+  propagatedBuildInputs = [
+    (python3.withPackages (ps: with ps; [ numpy matplotlib mpi4py ]))
+  ];
+
   meta = with stdenv.lib; {
     homepage = "https://www.paraview.org/";
     description = "3D Data analysis and visualization application";
diff --git a/pkgs/applications/graphics/xournalpp/default.nix b/pkgs/applications/graphics/xournalpp/default.nix
index da453b42678..c21d0ed2054 100644
--- a/pkgs/applications/graphics/xournalpp/default.nix
+++ b/pkgs/applications/graphics/xournalpp/default.nix
@@ -4,7 +4,7 @@
 , cmake
 , gettext
 , wrapGAppsHook
-, pkgconfig
+, pkg-config
 
 , glib
 , gsettings-desktop-schemas
@@ -22,16 +22,16 @@
 
 stdenv.mkDerivation rec {
   pname = "xournalpp";
-  version = "1.0.19";
+  version = "1.0.20";
 
   src = fetchFromGitHub {
     owner = "xournalpp";
     repo = pname;
     rev = version;
-    sha256 = "05nx4cmrka6hwdn7r91yy4h46qpa9k7iy9dkgaq3hrkh9z3fxlkq";
+    sha256 = "1c7n03xm3m4lwcwxgplkn25i8c6s3i7rijbkcx86br1j4jadcs3k";
   };
 
-  nativeBuildInputs = [ cmake gettext pkgconfig wrapGAppsHook ];
+  nativeBuildInputs = [ cmake gettext pkg-config wrapGAppsHook ];
   buildInputs =
     [ glib
       gsettings-desktop-schemas
@@ -50,8 +50,6 @@ stdenv.mkDerivation rec {
 
   hardeningDisable = [ "format" ];
 
-  enableParallelBuilding = true;
-
   meta = with stdenv.lib; {
     description = "Xournal++ is a handwriting Notetaking software with PDF annotation support";
     homepage    = "https://xournalpp.github.io/";
diff --git a/pkgs/applications/kde/akonadi-calendar.nix b/pkgs/applications/kde/akonadi-calendar.nix
index 121e93d3f5c..474672dfd7d 100644
--- a/pkgs/applications/kde/akonadi-calendar.nix
+++ b/pkgs/applications/kde/akonadi-calendar.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "akonadi-calendar";
+  pname = "akonadi-calendar";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/akonadi-contacts.nix b/pkgs/applications/kde/akonadi-contacts.nix
index b09058b60be..2076723a372 100644
--- a/pkgs/applications/kde/akonadi-contacts.nix
+++ b/pkgs/applications/kde/akonadi-contacts.nix
@@ -8,7 +8,7 @@
 }:
 
 mkDerivation {
-  name = "akonadi-contacts";
+  pname = "akonadi-contacts";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/akonadi-import-wizard.nix b/pkgs/applications/kde/akonadi-import-wizard.nix
index cc1acbc6dd0..26b373fb330 100644
--- a/pkgs/applications/kde/akonadi-import-wizard.nix
+++ b/pkgs/applications/kde/akonadi-import-wizard.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "akonadi-import-wizard";
+  pname = "akonadi-import-wizard";
   meta = {
     license = with lib.licenses; [ gpl2Plus lgpl21Plus fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/akonadi-mime.nix b/pkgs/applications/kde/akonadi-mime.nix
index 0ed958b4e77..fbd028b1ec2 100644
--- a/pkgs/applications/kde/akonadi-mime.nix
+++ b/pkgs/applications/kde/akonadi-mime.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "akonadi-mime";
+  pname = "akonadi-mime";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/akonadi-notes.nix b/pkgs/applications/kde/akonadi-notes.nix
index 72c4d799239..6db7e00be9b 100644
--- a/pkgs/applications/kde/akonadi-notes.nix
+++ b/pkgs/applications/kde/akonadi-notes.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "akonadi-notes";
+  pname = "akonadi-notes";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/akonadi-search.nix b/pkgs/applications/kde/akonadi-search.nix
index 23ee6b1b9cc..495b63abd44 100644
--- a/pkgs/applications/kde/akonadi-search.nix
+++ b/pkgs/applications/kde/akonadi-search.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "akonadi-search";
+  pname = "akonadi-search";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/akonadi/default.nix b/pkgs/applications/kde/akonadi/default.nix
index 6ffe1e2de8a..d24e19f89e7 100644
--- a/pkgs/applications/kde/akonadi/default.nix
+++ b/pkgs/applications/kde/akonadi/default.nix
@@ -1,12 +1,13 @@
 {
   mkDerivation, lib, kdepimTeam,
-  extra-cmake-modules, shared-mime-info, qtbase,
-  boost, kcompletion, kconfigwidgets, kcrash, kdbusaddons, kdesignerplugin,
-  ki18n, kiconthemes, kio, kitemmodels, kwindowsystem, mysql, qttools,
+  extra-cmake-modules, shared-mime-info, qtbase, accounts-qt,
+  boost, kaccounts-integration, kcompletion, kconfigwidgets, kcrash, kdbusaddons,
+  kdesignerplugin, ki18n, kiconthemes, kio, kitemmodels, kwindowsystem, mysql, qttools,
+  signond,
 }:
 
 mkDerivation {
-  name = "akonadi";
+  pname = "akonadi";
   meta = {
     license = [ lib.licenses.lgpl21 ];
     maintainers = kdepimTeam;
@@ -19,8 +20,8 @@ mkDerivation {
   ];
   nativeBuildInputs = [ extra-cmake-modules shared-mime-info ];
   buildInputs = [
-    kcompletion kconfigwidgets kcrash kdbusaddons kdesignerplugin ki18n
-    kiconthemes kio kwindowsystem qttools
+    kaccounts-integration kcompletion kconfigwidgets kcrash kdbusaddons kdesignerplugin
+    ki18n kiconthemes kio kwindowsystem accounts-qt qttools signond
   ];
   propagatedBuildInputs = [ boost kitemmodels ];
   outputs = [ "out" "dev" ];
diff --git a/pkgs/applications/kde/akonadiconsole.nix b/pkgs/applications/kde/akonadiconsole.nix
index a02400847bb..76e5ca480b4 100644
--- a/pkgs/applications/kde/akonadiconsole.nix
+++ b/pkgs/applications/kde/akonadiconsole.nix
@@ -7,7 +7,7 @@
 }:
 
 mkDerivation {
-  name = "akonadiconsole";
+  pname = "akonadiconsole";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/akregator.nix b/pkgs/applications/kde/akregator.nix
index 98d53bc8083..5cacfe0c04f 100644
--- a/pkgs/applications/kde/akregator.nix
+++ b/pkgs/applications/kde/akregator.nix
@@ -10,7 +10,7 @@
 }:
 
 mkDerivation {
-  name = "akregator";
+  pname = "akregator";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/ark/default.nix b/pkgs/applications/kde/ark/default.nix
index 76cc423f546..69a56254d65 100644
--- a/pkgs/applications/kde/ark/default.nix
+++ b/pkgs/applications/kde/ark/default.nix
@@ -20,7 +20,7 @@ let
 in
 
 mkDerivation {
-  name = "ark";
+  pname = "ark";
   meta = {
     description = "Graphical file compression/decompression utility";
     license = with lib.licenses;
diff --git a/pkgs/applications/kde/baloo-widgets.nix b/pkgs/applications/kde/baloo-widgets.nix
index 3479b6600fc..887e7ea2986 100644
--- a/pkgs/applications/kde/baloo-widgets.nix
+++ b/pkgs/applications/kde/baloo-widgets.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "baloo-widgets";
+  pname = "baloo-widgets";
   meta = {
     license = [ lib.licenses.lgpl21 ];
     maintainers = [ lib.maintainers.ttuegel ];
diff --git a/pkgs/applications/kde/bomber.nix b/pkgs/applications/kde/bomber.nix
index f42a6a01871..c2a5329ee2a 100644
--- a/pkgs/applications/kde/bomber.nix
+++ b/pkgs/applications/kde/bomber.nix
@@ -4,7 +4,7 @@
 }:
 
 mkDerivation {
-  name = "bomber";
+  pname = "bomber";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.bomber";
     description = "A single player arcade game";
diff --git a/pkgs/applications/kde/bovo.nix b/pkgs/applications/kde/bovo.nix
index 4bd3113a051..989a80aa29f 100644
--- a/pkgs/applications/kde/bovo.nix
+++ b/pkgs/applications/kde/bovo.nix
@@ -4,7 +4,7 @@
 }:
 
 mkDerivation {
-  name = "bovo";
+  pname = "bovo";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.bovo";
     description = "Five in a row application";
diff --git a/pkgs/applications/kde/calendarsupport.nix b/pkgs/applications/kde/calendarsupport.nix
index 1537bd25d55..b316ab4e568 100644
--- a/pkgs/applications/kde/calendarsupport.nix
+++ b/pkgs/applications/kde/calendarsupport.nix
@@ -1,16 +1,23 @@
 {
-  mkDerivation, lib, kdepimTeam,
+  mkDerivation, lib, kdepimTeam, fetchpatch,
   extra-cmake-modules, kdoctools,
   akonadi, akonadi-calendar, akonadi-mime, akonadi-notes, kcalutils, kdepim-apps-libs,
   kholidays, kidentitymanagement, kmime, pimcommon, qttools,
 }:
 
 mkDerivation {
-  name = "calendarsupport";
+  pname = "calendarsupport";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
   };
+  patches = [
+    # Patch for Qt 5.15.2 until version 20.12.0
+    (fetchpatch {
+      url = "https://invent.kde.org/pim/calendarsupport/-/commit/b4193facb223bd5b73a65318dec8ced51b66adf7.patch";
+      sha256 = "sha256:1da11rqbxxrl06ld3avc41p064arz4n6w5nxq8r008v8ws3s64dy";
+    })
+  ];
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     akonadi akonadi-mime akonadi-notes kcalutils kdepim-apps-libs kholidays pimcommon qttools
diff --git a/pkgs/applications/kde/default.nix b/pkgs/applications/kde/default.nix
index 315a5b35885..33f392fdccc 100644
--- a/pkgs/applications/kde/default.nix
+++ b/pkgs/applications/kde/default.nix
@@ -35,15 +35,13 @@ let
 
   mkDerivation = args:
     let
-      inherit (args) name;
-      sname = args.sname or name;
-      inherit (srcs.${sname}) src version;
+      inherit (args) pname;
+      inherit (srcs.${pname}) src version;
       mkDerivation =
         libsForQt5.callPackage ({ mkDerivation }: mkDerivation) {};
     in
       mkDerivation (args // {
-        name = "${name}-${version}";
-        inherit src;
+        inherit pname version src;
 
         outputs = args.outputs or [ "out" ];
 
@@ -88,6 +86,7 @@ let
       gwenview = callPackage ./gwenview.nix {};
       incidenceeditor = callPackage ./incidenceeditor.nix {};
       k3b = callPackage ./k3b.nix {};
+      kaccounts-integration = callPackage ./kaccounts-integration.nix {};
       kaddressbook = callPackage ./kaddressbook.nix {};
       kalarm = callPackage ./kalarm.nix {};
       kalarmcal = callPackage ./kalarmcal.nix {};
diff --git a/pkgs/applications/kde/dolphin-plugins.nix b/pkgs/applications/kde/dolphin-plugins.nix
index 5580952f40a..37613f86a7f 100644
--- a/pkgs/applications/kde/dolphin-plugins.nix
+++ b/pkgs/applications/kde/dolphin-plugins.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "dolphin-plugins";
+  pname = "dolphin-plugins";
   meta = {
     license = [ lib.licenses.gpl2 ];
     maintainers = [ lib.maintainers.ttuegel ];
diff --git a/pkgs/applications/kde/dolphin.nix b/pkgs/applications/kde/dolphin.nix
index 76d4e989e8c..3774c7e00b6 100644
--- a/pkgs/applications/kde/dolphin.nix
+++ b/pkgs/applications/kde/dolphin.nix
@@ -9,7 +9,7 @@
 }:
 
 mkDerivation {
-  name = "dolphin";
+  pname = "dolphin";
   meta = {
     license = with lib.licenses; [ gpl2 fdl12 ];
     maintainers = [ lib.maintainers.ttuegel ];
diff --git a/pkgs/applications/kde/dragon.nix b/pkgs/applications/kde/dragon.nix
index 9dd55ec4b9c..0ce6459e3f6 100644
--- a/pkgs/applications/kde/dragon.nix
+++ b/pkgs/applications/kde/dragon.nix
@@ -8,7 +8,7 @@
 }:
 
 mkDerivation {
-  name = "dragon";
+  pname = "dragon";
   meta = {
     license = with lib.licenses; [ gpl2 fdl12 ];
     description = "A simple media player for KDE";
diff --git a/pkgs/applications/kde/elisa.nix b/pkgs/applications/kde/elisa.nix
index 9a51aa786fa..6252e53078f 100644
--- a/pkgs/applications/kde/elisa.nix
+++ b/pkgs/applications/kde/elisa.nix
@@ -19,7 +19,7 @@
 }:
 
 mkDerivation rec {
-  name = "elisa";
+  pname = "elisa";
 
   buildInputs = [ libvlc ];
 
@@ -43,6 +43,6 @@ mkDerivation rec {
     description = "A simple media player for KDE";
     license = licenses.gpl3;
     maintainers = with maintainers; [ peterhoeg ];
-    broken = lib.versionOlder qtbase.version "5.14";
+    broken = lib.versionOlder qtbase.version "5.15";
   };
 }
diff --git a/pkgs/applications/kde/eventviews.nix b/pkgs/applications/kde/eventviews.nix
index 495491f6d3c..1a6cc9442b9 100644
--- a/pkgs/applications/kde/eventviews.nix
+++ b/pkgs/applications/kde/eventviews.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "eventviews";
+  pname = "eventviews";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/fetch.sh b/pkgs/applications/kde/fetch.sh
index dc023c57a7e..e3bba77f972 100644
--- a/pkgs/applications/kde/fetch.sh
+++ b/pkgs/applications/kde/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=(http://download.kde.org/stable/release-service/20.08.2/src)
+WGET_ARGS=( http://download.kde.org/stable/release-service/20.08.3/src -A '*.tar.xz' )
diff --git a/pkgs/applications/kde/ffmpegthumbs.nix b/pkgs/applications/kde/ffmpegthumbs.nix
index 225efba3768..2a8b82352b4 100644
--- a/pkgs/applications/kde/ffmpegthumbs.nix
+++ b/pkgs/applications/kde/ffmpegthumbs.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "ffmpegthumbs";
+  pname = "ffmpegthumbs";
   meta = {
     license = with lib.licenses; [ gpl2 bsd3 ];
     maintainers = [ lib.maintainers.ttuegel ];
diff --git a/pkgs/applications/kde/filelight.nix b/pkgs/applications/kde/filelight.nix
index a3be5be7f0a..1aeff531862 100644
--- a/pkgs/applications/kde/filelight.nix
+++ b/pkgs/applications/kde/filelight.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "filelight";
+  pname = "filelight";
   meta = {
     license = with lib.licenses; [ gpl2 ];
     maintainers = with lib.maintainers; [ fridh vcunat ];
diff --git a/pkgs/applications/kde/granatier.nix b/pkgs/applications/kde/granatier.nix
index c02fa0fef2e..b4aa2168e0d 100644
--- a/pkgs/applications/kde/granatier.nix
+++ b/pkgs/applications/kde/granatier.nix
@@ -4,7 +4,7 @@
 }:
 
 mkDerivation {
-  name = "granatier";
+  pname = "granatier";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.granatier";
     description = "Clone of the classic Bomberman game";
diff --git a/pkgs/applications/kde/grantleetheme/default.nix b/pkgs/applications/kde/grantleetheme/default.nix
index 6204919a328..517cb072f74 100644
--- a/pkgs/applications/kde/grantleetheme/default.nix
+++ b/pkgs/applications/kde/grantleetheme/default.nix
@@ -5,10 +5,11 @@
 }:
 
 mkDerivation {
-  name = "grantleetheme";
+  pname = "grantleetheme";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
+    broken = lib.versionOlder qtbase.version "5.13.0";
   };
   output = [ "out" "dev" ];
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
diff --git a/pkgs/applications/kde/gwenview.nix b/pkgs/applications/kde/gwenview.nix
index 3d03d1dea3e..0cd884d5401 100644
--- a/pkgs/applications/kde/gwenview.nix
+++ b/pkgs/applications/kde/gwenview.nix
@@ -7,7 +7,7 @@
 }:
 
 mkDerivation {
-  name = "gwenview";
+  pname = "gwenview";
   meta = {
     license = with lib.licenses; [ gpl2 fdl12 ];
     maintainers = [ lib.maintainers.ttuegel ];
diff --git a/pkgs/applications/kde/incidenceeditor.nix b/pkgs/applications/kde/incidenceeditor.nix
index 30955d1c274..981c184d151 100644
--- a/pkgs/applications/kde/incidenceeditor.nix
+++ b/pkgs/applications/kde/incidenceeditor.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "incidenceeditor";
+  pname = "incidenceeditor";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/k3b.nix b/pkgs/applications/kde/k3b.nix
index 35d55787ec7..cc9763961f8 100644
--- a/pkgs/applications/kde/k3b.nix
+++ b/pkgs/applications/kde/k3b.nix
@@ -8,7 +8,7 @@
 }:
 
 mkDerivation {
-  name = "k3b";
+  pname = "k3b";
   meta = with lib; {
     license = with licenses; [ gpl2Plus ];
     maintainers = with maintainers; [ sander phreedom ];
diff --git a/pkgs/applications/kde/kaccounts-integration.nix b/pkgs/applications/kde/kaccounts-integration.nix
new file mode 100644
index 00000000000..ef69f564f12
--- /dev/null
+++ b/pkgs/applications/kde/kaccounts-integration.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, kcmutils, kcoreaddons, kwallet, accounts-qt, signond }:
+
+mkDerivation {
+  pname = "kaccounts-integration";
+  meta = with lib; {
+    homepage = "https://community.kde.org/KTp/Setting_up_KAccounts";
+    description = "Online accounts integration";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    kcmutils
+    kcoreaddons
+    kdoctools
+    kwallet
+    accounts-qt
+    signond
+  ];
+}
diff --git a/pkgs/applications/kde/kaddressbook.nix b/pkgs/applications/kde/kaddressbook.nix
index b4b0450e78b..452c5142157 100644
--- a/pkgs/applications/kde/kaddressbook.nix
+++ b/pkgs/applications/kde/kaddressbook.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, kdepimTeam,
+  mkDerivation, lib, kdepimTeam, fetchpatch,
   extra-cmake-modules, kdoctools,
   akonadi, akonadi-search, grantlee, grantleetheme, kcmutils, kcompletion,
   kcrash, kdbusaddons, kdepim-apps-libs, ki18n, kontactinterface, kparts,
@@ -8,11 +8,18 @@
 }:
 
 mkDerivation {
-  name = "kaddressbook";
+  pname = "kaddressbook";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
   };
+  patches = [
+    # Patch for Qt 5.15.2 until version 20.12.0
+    (fetchpatch {
+      url = "https://invent.kde.org/pim/kaddressbook/-/commit/8aee8d40ae2a1c920d3520163d550d3b49720226.patch";
+      sha256 = "sha256:0dsy119cd5w9khiwgk6fb7xnjzmj94rfphf327k331lf15zq4853";
+    })
+  ];
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     akonadi akonadi-search grantlee grantleetheme kcmutils kcompletion kcrash
diff --git a/pkgs/applications/kde/kalarm.nix b/pkgs/applications/kde/kalarm.nix
index a1dec1179cc..70ee3f74185 100644
--- a/pkgs/applications/kde/kalarm.nix
+++ b/pkgs/applications/kde/kalarm.nix
@@ -16,7 +16,7 @@
 }:
 
 mkDerivation {
-  name = "kalarm";
+  pname = "kalarm";
   meta = {
     license = with lib.licenses; [ gpl2 ];
     maintainers = [ lib.maintainers.rittelle ];
diff --git a/pkgs/applications/kde/kalarmcal.nix b/pkgs/applications/kde/kalarmcal.nix
index 356c1e4812d..5671174e9b1 100644
--- a/pkgs/applications/kde/kalarmcal.nix
+++ b/pkgs/applications/kde/kalarmcal.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "kalarmcal";
+  pname = "kalarmcal";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/kalzium.nix b/pkgs/applications/kde/kalzium.nix
index cf579caa9cc..3f51f068815 100644
--- a/pkgs/applications/kde/kalzium.nix
+++ b/pkgs/applications/kde/kalzium.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, openbabel, avogadro, qtscript, kparts, kplotting, kunitconversion }:
 
 mkDerivation {
-  name = "kalzium";
+  pname = "kalzium";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/utilities/org.kde.kalzium";
     description = "Program that shows you the Periodic Table of Elements";
diff --git a/pkgs/applications/kde/kapman.nix b/pkgs/applications/kde/kapman.nix
index 5f4cc40138c..01fa984e593 100644
--- a/pkgs/applications/kde/kapman.nix
+++ b/pkgs/applications/kde/kapman.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames }:
 
 mkDerivation {
-  name = "kapman";
+  pname = "kapman";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.kapman";
     description = "Clone of the well known game Pac-Man";
diff --git a/pkgs/applications/kde/kapptemplate.nix b/pkgs/applications/kde/kapptemplate.nix
index a5e211318a2..7251648be09 100644
--- a/pkgs/applications/kde/kapptemplate.nix
+++ b/pkgs/applications/kde/kapptemplate.nix
@@ -8,7 +8,7 @@
 }:
 mkDerivation {
 
-  name = "kapptemplate";
+  pname = "kapptemplate";
 
   nativeBuildInputs = [ extra-cmake-modules cmake  ];
 
diff --git a/pkgs/applications/kde/kate.nix b/pkgs/applications/kde/kate.nix
index e0d0273efde..1cc16496d12 100644
--- a/pkgs/applications/kde/kate.nix
+++ b/pkgs/applications/kde/kate.nix
@@ -8,7 +8,7 @@
 }:
 
 mkDerivation {
-  name = "kate";
+  pname = "kate";
   meta = {
     license = with lib.licenses; [ gpl3 lgpl3 lgpl2 ];
     maintainers = [ lib.maintainers.ttuegel ];
diff --git a/pkgs/applications/kde/katomic.nix b/pkgs/applications/kde/katomic.nix
index 2690cfc0589..aa00d58c417 100644
--- a/pkgs/applications/kde/katomic.nix
+++ b/pkgs/applications/kde/katomic.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames, knewstuff }:
 
 mkDerivation {
-  name = "katomic";
+  pname = "katomic";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.katomic";
     description = "Fun educational game built around molecular geometry";
diff --git a/pkgs/applications/kde/kblackbox.nix b/pkgs/applications/kde/kblackbox.nix
index ce0d8e36b91..9f2f652f558 100644
--- a/pkgs/applications/kde/kblackbox.nix
+++ b/pkgs/applications/kde/kblackbox.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames }:
 
 mkDerivation {
-  name = "kblackbox";
+  pname = "kblackbox";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.kblackbox";
     description = "Game of hide and seek played on a grid of boxes";
diff --git a/pkgs/applications/kde/kblocks.nix b/pkgs/applications/kde/kblocks.nix
index a11a6e25744..971901687f0 100644
--- a/pkgs/applications/kde/kblocks.nix
+++ b/pkgs/applications/kde/kblocks.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames }:
 
 mkDerivation {
-  name = "kblocks";
+  pname = "kblocks";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.kblocks";
     description = "Classic falling blocks game";
diff --git a/pkgs/applications/kde/kbounce.nix b/pkgs/applications/kde/kbounce.nix
index b67e3ce0217..d96c0f7f827 100644
--- a/pkgs/applications/kde/kbounce.nix
+++ b/pkgs/applications/kde/kbounce.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, extra-cmake-modules, libkdegames, kconfig, kcrash, kio, ki18n }:
 
 mkDerivation {
-  name = "kbounce";
+  pname = "kbounce";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.kbounce";
     description = "Single player arcade game with the elements of puzzle";
diff --git a/pkgs/applications/kde/kbreakout.nix b/pkgs/applications/kde/kbreakout.nix
index fbcddd46ca8..cf60ada3c00 100644
--- a/pkgs/applications/kde/kbreakout.nix
+++ b/pkgs/applications/kde/kbreakout.nix
@@ -10,7 +10,7 @@
 }:
 
 mkDerivation {
-  name = "kbreakout";
+  pname = "kbreakout";
   meta.license = with lib.licenses; [ lgpl21 gpl3 ];
   outputs = [ "out" "dev" ];
   nativeBuildInputs = [
diff --git a/pkgs/applications/kde/kcachegrind.nix b/pkgs/applications/kde/kcachegrind.nix
index 16fc6c51777..308ed35dc4e 100644
--- a/pkgs/applications/kde/kcachegrind.nix
+++ b/pkgs/applications/kde/kcachegrind.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "kcachegrind";
+  pname = "kcachegrind";
   meta = {
     license = with lib.licenses; [ gpl2 ];
     maintainers = with lib.maintainers; [ orivej ];
diff --git a/pkgs/applications/kde/kcalc.nix b/pkgs/applications/kde/kcalc.nix
index 4e2a308b17f..b24046df5f5 100644
--- a/pkgs/applications/kde/kcalc.nix
+++ b/pkgs/applications/kde/kcalc.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "kcalc";
+  pname = "kcalc";
   meta = {
     license = with lib.licenses; [ gpl2 ];
     maintainers = [ lib.maintainers.fridh ];
diff --git a/pkgs/applications/kde/kcalutils.nix b/pkgs/applications/kde/kcalutils.nix
index 2e389ec4ac7..1fce68e7f46 100644
--- a/pkgs/applications/kde/kcalutils.nix
+++ b/pkgs/applications/kde/kcalutils.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "kcalutils";
+  pname = "kcalutils";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/kcharselect.nix b/pkgs/applications/kde/kcharselect.nix
index 4af712b1d5a..d35ee5ee670 100644
--- a/pkgs/applications/kde/kcharselect.nix
+++ b/pkgs/applications/kde/kcharselect.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kcharselect";
+  pname = "kcharselect";
   meta = {
     license = lib.licenses.gpl2Plus;
     maintainers = [ lib.maintainers.schmittlauch ];
diff --git a/pkgs/applications/kde/kcolorchooser.nix b/pkgs/applications/kde/kcolorchooser.nix
index 45b32fbe832..87ab2271561 100644
--- a/pkgs/applications/kde/kcolorchooser.nix
+++ b/pkgs/applications/kde/kcolorchooser.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kcolorchooser";
+  pname = "kcolorchooser";
   meta = {
     license = with lib.licenses; [ mit ];
     maintainers = [ lib.maintainers.ttuegel ];
diff --git a/pkgs/applications/kde/kdebugsettings.nix b/pkgs/applications/kde/kdebugsettings.nix
index a58e1b25a2e..f4dd7ec145d 100644
--- a/pkgs/applications/kde/kdebugsettings.nix
+++ b/pkgs/applications/kde/kdebugsettings.nix
@@ -7,7 +7,7 @@
 }:
 
 mkDerivation {
-  name = "kdebugsettings";
+  pname = "kdebugsettings";
   meta = {
     license = with lib.licenses; [ gpl2 ];
     maintainers = [ lib.maintainers.rittelle ];
diff --git a/pkgs/applications/kde/kdeconnect-kde.nix b/pkgs/applications/kde/kdeconnect-kde.nix
index 83e54d1fa80..8c7b2b635c0 100644
--- a/pkgs/applications/kde/kdeconnect-kde.nix
+++ b/pkgs/applications/kde/kdeconnect-kde.nix
@@ -26,15 +26,7 @@
 }:
 
 mkDerivation {
-  name = "kdeconnect-kde";
-
-  patches = [
-    # https://invent.kde.org/network/kdeconnect-kde/-/merge_requests/328
-    (fetchpatch {
-      url = "https://invent.kde.org/network/kdeconnect-kde/-/commit/6101ef3ad07d865958d58a3d2736f5536f1c5719.diff";
-      sha256 = "17mr7k13226vzcgxlmfs6q2mdc5j7vwp4iri9apmh6xlf6r591ac";
-    })
-  ];
+  pname = "kdeconnect-kde";
 
   buildInputs = [
     kcmutils
diff --git a/pkgs/applications/kde/kdegraphics-mobipocket.nix b/pkgs/applications/kde/kdegraphics-mobipocket.nix
index e5f5b88ec44..bdfe5102c01 100644
--- a/pkgs/applications/kde/kdegraphics-mobipocket.nix
+++ b/pkgs/applications/kde/kdegraphics-mobipocket.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kdegraphics-mobipocket";
+  pname = "kdegraphics-mobipocket";
   meta = {
     license = [ lib.licenses.gpl2Plus ];
     maintainers = [ lib.maintainers.ttuegel ];
diff --git a/pkgs/applications/kde/kdegraphics-thumbnailers.nix b/pkgs/applications/kde/kdegraphics-thumbnailers.nix
index 2e7887582f9..10280be3c30 100644
--- a/pkgs/applications/kde/kdegraphics-thumbnailers.nix
+++ b/pkgs/applications/kde/kdegraphics-thumbnailers.nix
@@ -4,7 +4,7 @@
 }:
 
 mkDerivation {
-  name = "kdegraphics-thumbnailers";
+  pname = "kdegraphics-thumbnailers";
   meta = {
     license = [ lib.licenses.lgpl21 ];
     maintainers = [ lib.maintainers.ttuegel ];
diff --git a/pkgs/applications/kde/kdenetwork-filesharing.nix b/pkgs/applications/kde/kdenetwork-filesharing.nix
index d251eb74f27..94656b02671 100644
--- a/pkgs/applications/kde/kdenetwork-filesharing.nix
+++ b/pkgs/applications/kde/kdenetwork-filesharing.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kdenetwork-filesharing";
+  pname = "kdenetwork-filesharing";
   meta = {
     license = [ lib.licenses.gpl2 lib.licenses.lgpl21 ];
     maintainers = [ lib.maintainers.ttuegel ];
diff --git a/pkgs/applications/kde/kdenlive.nix b/pkgs/applications/kde/kdenlive.nix
index b2abee57939..47afcd0a67e 100644
--- a/pkgs/applications/kde/kdenlive.nix
+++ b/pkgs/applications/kde/kdenlive.nix
@@ -35,7 +35,7 @@
 }:
 
 mkDerivation {
-  name = "kdenlive";
+  pname = "kdenlive";
   nativeBuildInputs = [
     extra-cmake-modules
     kdoctools
diff --git a/pkgs/applications/kde/kdepim-addons.nix b/pkgs/applications/kde/kdepim-addons.nix
index e47aae89e60..0939b0ecd26 100644
--- a/pkgs/applications/kde/kdepim-addons.nix
+++ b/pkgs/applications/kde/kdepim-addons.nix
@@ -9,7 +9,7 @@
 }:
 
 mkDerivation {
-  name = "kdepim-addons";
+  pname = "kdepim-addons";
   meta = {
     license = with lib.licenses; [ gpl2Plus lgpl21Plus ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/kdepim-apps-libs/default.nix b/pkgs/applications/kde/kdepim-apps-libs/default.nix
index 57c02ea4e84..19f476fd781 100644
--- a/pkgs/applications/kde/kdepim-apps-libs/default.nix
+++ b/pkgs/applications/kde/kdepim-apps-libs/default.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "kdepim-apps-libs";
+  pname = "kdepim-apps-libs";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/kdepim-runtime/default.nix b/pkgs/applications/kde/kdepim-runtime/default.nix
index e0a5d43e654..335284aa6c4 100644
--- a/pkgs/applications/kde/kdepim-runtime/default.nix
+++ b/pkgs/applications/kde/kdepim-runtime/default.nix
@@ -9,7 +9,7 @@
 }:
 
 mkDerivation {
-  name = "kdepim-runtime";
+  pname = "kdepim-runtime";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/kdf.nix b/pkgs/applications/kde/kdf.nix
index eef94fd5eb2..5c196d6a3b1 100644
--- a/pkgs/applications/kde/kdf.nix
+++ b/pkgs/applications/kde/kdf.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kdf";
+  pname = "kdf";
   meta = {
     license = with lib.licenses; [ gpl2 ];
     maintainers = [ lib.maintainers.peterhoeg ];
diff --git a/pkgs/applications/kde/kdialog.nix b/pkgs/applications/kde/kdialog.nix
index df301af0cba..192bfda4c27 100644
--- a/pkgs/applications/kde/kdialog.nix
+++ b/pkgs/applications/kde/kdialog.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kdialog";
+  pname = "kdialog";
 
   meta = {
     license = with lib.licenses; [ gpl2 fdl12 ];
diff --git a/pkgs/applications/kde/kdiamond.nix b/pkgs/applications/kde/kdiamond.nix
index 6c124f9450e..040806fd08e 100644
--- a/pkgs/applications/kde/kdiamond.nix
+++ b/pkgs/applications/kde/kdiamond.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames, kconfig, knotifyconfig }:
 
 mkDerivation {
-  name = "kdiamond";
+  pname = "kdiamond";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.kdiamond";
     description = "A single player puzzle game";
diff --git a/pkgs/applications/kde/keditbookmarks.nix b/pkgs/applications/kde/keditbookmarks.nix
index efe247df737..9deb1a3c015 100644
--- a/pkgs/applications/kde/keditbookmarks.nix
+++ b/pkgs/applications/kde/keditbookmarks.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "keditbookmarks";
+  pname = "keditbookmarks";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [ kio kparts kwindowsystem ];
   meta = with lib; {
diff --git a/pkgs/applications/kde/kfind.nix b/pkgs/applications/kde/kfind.nix
index 10932b38032..fa0ef1c9220 100644
--- a/pkgs/applications/kde/kfind.nix
+++ b/pkgs/applications/kde/kfind.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kfind";
+  pname = "kfind";
   meta = {
     license = with lib.licenses; [ gpl2 ];
     maintainers = [ lib.maintainers.iblech ];
diff --git a/pkgs/applications/kde/kfloppy.nix b/pkgs/applications/kde/kfloppy.nix
index a8747047f42..a88fd9283e0 100644
--- a/pkgs/applications/kde/kfloppy.nix
+++ b/pkgs/applications/kde/kfloppy.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, extra-cmake-modules, kdoctools, kcompletion, kxmlgui }:
 
 mkDerivation {
-  name = "kfloppy";
+  pname = "kfloppy";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/utilities/org.kde.kfloppy";
     description = "Utility to format 3.5\" and 5.25\" floppy disks";
diff --git a/pkgs/applications/kde/kgeography.nix b/pkgs/applications/kde/kgeography.nix
index c96c198cca9..7a5d5516b5e 100644
--- a/pkgs/applications/kde/kgeography.nix
+++ b/pkgs/applications/kde/kgeography.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kgeography";
+  pname = "kgeography";
   meta = {
     license = with lib.licenses; [ gpl2 ];
     maintainers = [ lib.maintainers.globin ];
diff --git a/pkgs/applications/kde/kget.nix b/pkgs/applications/kde/kget.nix
index 6a50f1d08d1..b03246eacd5 100644
--- a/pkgs/applications/kde/kget.nix
+++ b/pkgs/applications/kde/kget.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "kget";
+  pname = "kget";
 
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
 
diff --git a/pkgs/applications/kde/kgpg.nix b/pkgs/applications/kde/kgpg.nix
index 944cff47e0d..32ba95231cd 100644
--- a/pkgs/applications/kde/kgpg.nix
+++ b/pkgs/applications/kde/kgpg.nix
@@ -7,7 +7,7 @@
 }:
 
 mkDerivation {
-  name = "kgpg";
+  pname = "kgpg";
   nativeBuildInputs = [ extra-cmake-modules kdoctools makeWrapper ];
   buildInputs = [
     akonadi-contacts gnupg karchive kcodecs kcontacts kcoreaddons kcrash
diff --git a/pkgs/applications/kde/khelpcenter.nix b/pkgs/applications/kde/khelpcenter.nix
index 69b629bbeb9..77f30d8e69b 100644
--- a/pkgs/applications/kde/khelpcenter.nix
+++ b/pkgs/applications/kde/khelpcenter.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "khelpcenter";
+  pname = "khelpcenter";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     grantlee kcmutils kconfig kcoreaddons kdbusaddons kdelibs4support khtml
diff --git a/pkgs/applications/kde/kidentitymanagement.nix b/pkgs/applications/kde/kidentitymanagement.nix
index 92fcc238779..789206a1639 100644
--- a/pkgs/applications/kde/kidentitymanagement.nix
+++ b/pkgs/applications/kde/kidentitymanagement.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "kidentitymanagement";
+  pname = "kidentitymanagement";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/kig.nix b/pkgs/applications/kde/kig.nix
index 7b858907795..1ca57d91c19 100644
--- a/pkgs/applications/kde/kig.nix
+++ b/pkgs/applications/kde/kig.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "kig";
+  pname = "kig";
   meta = {
     license = with lib.licenses; [ gpl2 ];
     maintainers = with lib.maintainers; [ raskin ];
diff --git a/pkgs/applications/kde/kigo.nix b/pkgs/applications/kde/kigo.nix
index 6585f943f2a..238158b524b 100644
--- a/pkgs/applications/kde/kigo.nix
+++ b/pkgs/applications/kde/kigo.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames, knewstuff }:
 
 mkDerivation {
-  name = "kigo";
+  pname = "kigo";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.kigo";
     description = "An open-source implementation of the popular Go game";
diff --git a/pkgs/applications/kde/killbots.nix b/pkgs/applications/kde/killbots.nix
index ec9b6de82c9..ef81c3b5ec1 100644
--- a/pkgs/applications/kde/killbots.nix
+++ b/pkgs/applications/kde/killbots.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames }:
 
 mkDerivation {
-  name = "killbots";
+  pname = "killbots";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.killbots";
     description = "A game where you avoid robots";
diff --git a/pkgs/applications/kde/kimap.nix b/pkgs/applications/kde/kimap.nix
index 9e42c571058..e93804bd885 100644
--- a/pkgs/applications/kde/kimap.nix
+++ b/pkgs/applications/kde/kimap.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kimap";
+  pname = "kimap";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/kio-extras.nix b/pkgs/applications/kde/kio-extras.nix
index a803ba72982..fdc531d5d12 100644
--- a/pkgs/applications/kde/kio-extras.nix
+++ b/pkgs/applications/kde/kio-extras.nix
@@ -7,7 +7,7 @@
 }:
 
 mkDerivation {
-  name = "kio-extras";
+  pname = "kio-extras";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 ];
     maintainers = [ lib.maintainers.ttuegel ];
diff --git a/pkgs/applications/kde/kipi-plugins.nix b/pkgs/applications/kde/kipi-plugins.nix
index 180d066a87c..d79980a3a6f 100644
--- a/pkgs/applications/kde/kipi-plugins.nix
+++ b/pkgs/applications/kde/kipi-plugins.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name    = "kipi-plugins";
+  pname    = "kipi-plugins";
 
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
diff --git a/pkgs/applications/kde/kitinerary.nix b/pkgs/applications/kde/kitinerary.nix
index 303ea6162ba..cc71307f1ac 100644
--- a/pkgs/applications/kde/kitinerary.nix
+++ b/pkgs/applications/kde/kitinerary.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "kitinerary";
+  pname = "kitinerary";
   meta = {
     license = with lib.licenses; [ lgpl21 ];
     maintainers = [ lib.maintainers.bkchr ];
diff --git a/pkgs/applications/kde/kldap.nix b/pkgs/applications/kde/kldap.nix
index 14a8aea5e67..888ac59ddfb 100644
--- a/pkgs/applications/kde/kldap.nix
+++ b/pkgs/applications/kde/kldap.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kldap";
+  pname = "kldap";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/kleopatra.nix b/pkgs/applications/kde/kleopatra.nix
index c15c6eb78d6..f1f8ae9b375 100644
--- a/pkgs/applications/kde/kleopatra.nix
+++ b/pkgs/applications/kde/kleopatra.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "kleopatra";
+  pname = "kleopatra";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/klettres.nix b/pkgs/applications/kde/klettres.nix
index aaddceb7bd6..ca63c4f456e 100644
--- a/pkgs/applications/kde/klettres.nix
+++ b/pkgs/applications/kde/klettres.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, phonon, knewstuff }:
 
 mkDerivation {
-  name = "klettres";
+  pname = "klettres";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/utilities/org.kde.klettres";
     description = "An application specially designed to help the user to learn an alphabet";
diff --git a/pkgs/applications/kde/klines.nix b/pkgs/applications/kde/klines.nix
index 7fadf409bd3..336ea9a2506 100644
--- a/pkgs/applications/kde/klines.nix
+++ b/pkgs/applications/kde/klines.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames }:
 
 mkDerivation {
-  name = "klines";
+  pname = "klines";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.klines";
     description = "A simple but highly addictive one player game";
diff --git a/pkgs/applications/kde/kmag.nix b/pkgs/applications/kde/kmag.nix
index fdac690cf22..ba1bb8d1851 100644
--- a/pkgs/applications/kde/kmag.nix
+++ b/pkgs/applications/kde/kmag.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio }:
 
 mkDerivation {
-  name = "kmag";
+  pname = "kmag";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/utilities/org.kde.kmag";
     description = "A small Linux utility to magnify a part of the screen";
diff --git a/pkgs/applications/kde/kmahjongg.nix b/pkgs/applications/kde/kmahjongg.nix
index 93588b241e1..285cf8adff5 100644
--- a/pkgs/applications/kde/kmahjongg.nix
+++ b/pkgs/applications/kde/kmahjongg.nix
@@ -9,7 +9,7 @@
 }:
 
 mkDerivation {
-  name = "kmahjongg";
+  pname = "kmahjongg";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [ kdeclarative libkmahjongg knewstuff libkdegames ];
   meta = {
diff --git a/pkgs/applications/kde/kmail-account-wizard.nix b/pkgs/applications/kde/kmail-account-wizard.nix
index f380315cce9..c0ab4ff947e 100644
--- a/pkgs/applications/kde/kmail-account-wizard.nix
+++ b/pkgs/applications/kde/kmail-account-wizard.nix
@@ -7,7 +7,7 @@
 }:
 
 mkDerivation {
-  name = "kmail-account-wizard";
+  pname = "kmail-account-wizard";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/kmail.nix b/pkgs/applications/kde/kmail.nix
index d225eba8223..fa3fe033035 100644
--- a/pkgs/applications/kde/kmail.nix
+++ b/pkgs/applications/kde/kmail.nix
@@ -11,7 +11,7 @@
 }:
 
 mkDerivation {
-  name = "kmail";
+  pname = "kmail";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/kmailtransport.nix b/pkgs/applications/kde/kmailtransport.nix
index d5832db570c..5efdc959afb 100644
--- a/pkgs/applications/kde/kmailtransport.nix
+++ b/pkgs/applications/kde/kmailtransport.nix
@@ -7,7 +7,7 @@
 }:
 
 mkDerivation {
-  name = "kmailtransport";
+  pname = "kmailtransport";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/kmbox.nix b/pkgs/applications/kde/kmbox.nix
index c1348edf3f6..6f3db970b94 100644
--- a/pkgs/applications/kde/kmbox.nix
+++ b/pkgs/applications/kde/kmbox.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kmbox";
+  pname = "kmbox";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/kmime.nix b/pkgs/applications/kde/kmime.nix
index 4523a69fc1b..51e78b5f649 100644
--- a/pkgs/applications/kde/kmime.nix
+++ b/pkgs/applications/kde/kmime.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kmime";
+  pname = "kmime";
   meta = {
     license = [ lib.licenses.lgpl21 ];
     maintainers = kdepimTeam;
@@ -13,4 +13,5 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ kcodecs ki18n qtbase ];
   outputs = [ "out" "dev" ];
+  meta.broken = lib.versionOlder qtbase.version "5.15.0";
 }
diff --git a/pkgs/applications/kde/kmines.nix b/pkgs/applications/kde/kmines.nix
index edf3114244b..66131df26c1 100644
--- a/pkgs/applications/kde/kmines.nix
+++ b/pkgs/applications/kde/kmines.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, extra-cmake-modules, libkdegames, kconfig, kcrash, kdoctools, ki18n, kio }:
 
 mkDerivation {
-  name = "kmines";
+  pname = "kmines";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.kmines";
     description = "A classic Minesweeper game";
diff --git a/pkgs/applications/kde/kmix.nix b/pkgs/applications/kde/kmix.nix
index 8010c57d927..207fba8e77b 100644
--- a/pkgs/applications/kde/kmix.nix
+++ b/pkgs/applications/kde/kmix.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "kmix";
+  pname = "kmix";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = [ lib.maintainers.rongcuid ];
diff --git a/pkgs/applications/kde/kmplot.nix b/pkgs/applications/kde/kmplot.nix
index c0c00f21340..04ccb809c79 100644
--- a/pkgs/applications/kde/kmplot.nix
+++ b/pkgs/applications/kde/kmplot.nix
@@ -3,7 +3,7 @@
 }:
 
 mkDerivation {
-  name = "kmplot";
+  pname = "kmplot";
   meta = {
     license = with lib.licenses; [ gpl2Plus fdl12 ];
     maintainers = [ lib.maintainers.orivej ];
diff --git a/pkgs/applications/kde/knavalbattle.nix b/pkgs/applications/kde/knavalbattle.nix
index 669f9961a49..155faf4e539 100644
--- a/pkgs/applications/kde/knavalbattle.nix
+++ b/pkgs/applications/kde/knavalbattle.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames, kdnssd }:
 
 mkDerivation {
-  name = "knavalbattle";
+  pname = "knavalbattle";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.knavalbattle";
     description = "Naval Battle is a ship sinking game";
diff --git a/pkgs/applications/kde/knetwalk.nix b/pkgs/applications/kde/knetwalk.nix
index f34bb84f0a0..3a863b40a1c 100644
--- a/pkgs/applications/kde/knetwalk.nix
+++ b/pkgs/applications/kde/knetwalk.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames }:
 
 mkDerivation {
-  name = "knetwalk";
+  pname = "knetwalk";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.knetwalk";
     description = "A single player logic game";
diff --git a/pkgs/applications/kde/knights.nix b/pkgs/applications/kde/knights.nix
index 8b71493ff18..084a2349fc1 100644
--- a/pkgs/applications/kde/knights.nix
+++ b/pkgs/applications/kde/knights.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, kplotting, plasma-framework, libkdegames }:
 
 mkDerivation {
-  name = "knights";
+  pname = "knights";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.knights";
     description = "A chess game";
diff --git a/pkgs/applications/kde/knotes.nix b/pkgs/applications/kde/knotes.nix
index 2dc2f48c149..75b92eb07bb 100644
--- a/pkgs/applications/kde/knotes.nix
+++ b/pkgs/applications/kde/knotes.nix
@@ -13,7 +13,7 @@
 }:
 
 mkDerivation {
-  name = "knotes";
+  pname = "knotes";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kcompletion kconfig kconfigwidgets kcoreaddons kcrash
diff --git a/pkgs/applications/kde/kolf.nix b/pkgs/applications/kde/kolf.nix
index f9fa31b665b..2f1189855be 100644
--- a/pkgs/applications/kde/kolf.nix
+++ b/pkgs/applications/kde/kolf.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "kolf";
+  pname = "kolf";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [ libkdegames kio ktextwidgets ];
   meta = {
diff --git a/pkgs/applications/kde/kollision.nix b/pkgs/applications/kde/kollision.nix
index 6cb9995459a..806b2f59233 100644
--- a/pkgs/applications/kde/kollision.nix
+++ b/pkgs/applications/kde/kollision.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames }:
 
 mkDerivation {
-  name = "kollision";
+  pname = "kollision";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.kollision";
     description = "A casual game";
diff --git a/pkgs/applications/kde/kolourpaint.nix b/pkgs/applications/kde/kolourpaint.nix
index 4501324a871..66746cf466d 100644
--- a/pkgs/applications/kde/kolourpaint.nix
+++ b/pkgs/applications/kde/kolourpaint.nix
@@ -7,7 +7,7 @@
 }:
 
 mkDerivation {
-  name = "kolourpaint";
+  pname = "kolourpaint";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [ kdelibs4support libkexiv2 ];
   meta = {
diff --git a/pkgs/applications/kde/kompare.nix b/pkgs/applications/kde/kompare.nix
index bbaad3a02f8..a449a1e4f51 100644
--- a/pkgs/applications/kde/kompare.nix
+++ b/pkgs/applications/kde/kompare.nix
@@ -1,15 +1,26 @@
 {
   mkDerivation, lib,
   extra-cmake-modules, kdoctools,
-  kiconthemes, kparts, ktexteditor, kwidgetsaddons, libkomparediff2
+  kiconthemes, kparts, ktexteditor, kwidgetsaddons, libkomparediff2,
+  fetchpatch
 }:
 
 mkDerivation {
-  name = "kompare";
+  pname = "kompare";
   meta = { license = with lib.licenses; [ gpl2 ]; };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kiconthemes kparts ktexteditor kwidgetsaddons libkomparediff2
   ];
+
+  patches = [
+    (fetchpatch {
+      # Portaway from Obsolete methods of QPrinter
+      # Part of v20.12.0
+      url = "https://invent.kde.org/sdk/kompare/-/commit/68d3eee36c48a2f44ccfd3f9e5a36311b829104b.patch";
+      sha256 = "B2i5n5cUDjCqTEF0OyTb1+LhPa5yWCnFycwijf35kwU=";
+    })
+  ];
+
   outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/applications/kde/konqueror.nix b/pkgs/applications/kde/konqueror.nix
index 62ed3db063e..72fcf8ff220 100644
--- a/pkgs/applications/kde/konqueror.nix
+++ b/pkgs/applications/kde/konqueror.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "konqueror";
+  pname = "konqueror";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kdelibs4support kcmutils khtml kdesu
diff --git a/pkgs/applications/kde/konquest.nix b/pkgs/applications/kde/konquest.nix
index cfef018de6c..7802b9c66c3 100644
--- a/pkgs/applications/kde/konquest.nix
+++ b/pkgs/applications/kde/konquest.nix
@@ -8,7 +8,7 @@
 }:
 
 mkDerivation {
-  name = "konquest";
+  pname = "konquest";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [ kdelibs4support libkdegames qtquickcontrols ];
   meta = {
diff --git a/pkgs/applications/kde/konsole.nix b/pkgs/applications/kde/konsole.nix
index ed26dc08bb6..b49507e0b8e 100644
--- a/pkgs/applications/kde/konsole.nix
+++ b/pkgs/applications/kde/konsole.nix
@@ -8,7 +8,7 @@
 }:
 
 mkDerivation {
-  name = "konsole";
+  pname = "konsole";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = with lib.maintainers; [ ttuegel turion ];
diff --git a/pkgs/applications/kde/kontact.nix b/pkgs/applications/kde/kontact.nix
index eb28458392c..3dfa28e9dfe 100644
--- a/pkgs/applications/kde/kontact.nix
+++ b/pkgs/applications/kde/kontact.nix
@@ -8,7 +8,7 @@
 }:
 
 mkDerivation {
-  name = "kontact";
+  pname = "kontact";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/kontactinterface.nix b/pkgs/applications/kde/kontactinterface.nix
index f2df628f301..b7e033deb0a 100644
--- a/pkgs/applications/kde/kontactinterface.nix
+++ b/pkgs/applications/kde/kontactinterface.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kontactinterface";
+  pname = "kontactinterface";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/korganizer.nix b/pkgs/applications/kde/korganizer.nix
index 2f37a1bac0f..f28e0406b13 100644
--- a/pkgs/applications/kde/korganizer.nix
+++ b/pkgs/applications/kde/korganizer.nix
@@ -11,7 +11,7 @@
 }:
 
 mkDerivation {
-  name = "korganizer";
+  pname = "korganizer";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/kpat.nix b/pkgs/applications/kde/kpat.nix
index 9ee57353237..d1e47af6b72 100644
--- a/pkgs/applications/kde/kpat.nix
+++ b/pkgs/applications/kde/kpat.nix
@@ -8,7 +8,7 @@
 }:
 
 mkDerivation {
-  name = "kpat";
+  pname = "kpat";
   nativeBuildInputs = [
     extra-cmake-modules
     shared-mime-info
diff --git a/pkgs/applications/kde/kpimtextedit.nix b/pkgs/applications/kde/kpimtextedit.nix
index 4ede854d546..2948075f696 100644
--- a/pkgs/applications/kde/kpimtextedit.nix
+++ b/pkgs/applications/kde/kpimtextedit.nix
@@ -2,15 +2,16 @@
   mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
   grantlee, kcodecs, kconfigwidgets, kemoticons, ki18n, kiconthemes, kio,
-  kdesignerplugin, ktextwidgets, sonnet, syntax-highlighting, qttools, 
+  kdesignerplugin, ktextwidgets, sonnet, syntax-highlighting, qtbase, qttools,
   qtspeech
 }:
 
 mkDerivation {
-  name = "kpimtextedit";
+  pname = "kpimtextedit";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
+    broken = lib.versionOlder qtbase.version "5.13.0";
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
diff --git a/pkgs/applications/kde/kpkpass.nix b/pkgs/applications/kde/kpkpass.nix
index 15dfe7f2e49..e7b81477122 100644
--- a/pkgs/applications/kde/kpkpass.nix
+++ b/pkgs/applications/kde/kpkpass.nix
@@ -4,11 +4,11 @@
 }:
 
 mkDerivation {
-  name = "kpkpass";
+  pname = "kpkpass";
   meta = {
     license = with lib.licenses; [ lgpl21 ];
     maintainers = [ lib.maintainers.bkchr ];
-    broken = lib.versionOlder qtbase.version "5.13";
+    broken = lib.versionOlder qtbase.version "5.15";
   };
   nativeBuildInputs = [ extra-cmake-modules shared-mime-info ];
   buildInputs = [ qtbase karchive ];
diff --git a/pkgs/applications/kde/kqtquickcharts.nix b/pkgs/applications/kde/kqtquickcharts.nix
index 2b3dc5313d9..669a38e37ca 100644
--- a/pkgs/applications/kde/kqtquickcharts.nix
+++ b/pkgs/applications/kde/kqtquickcharts.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kqtquickcharts";
+  pname = "kqtquickcharts";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = [ lib.maintainers.ttuegel ];
diff --git a/pkgs/applications/kde/krdc.nix b/pkgs/applications/kde/krdc.nix
index 2b0a1a5c514..01cc39d9895 100644
--- a/pkgs/applications/kde/krdc.nix
+++ b/pkgs/applications/kde/krdc.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "krdc";
+  pname = "krdc";
   nativeBuildInputs = [ extra-cmake-modules kdoctools makeWrapper ];
   buildInputs = [
     kcmutils kcompletion kconfig kdnssd knotifyconfig kwallet kwidgetsaddons
diff --git a/pkgs/applications/kde/kreversi.nix b/pkgs/applications/kde/kreversi.nix
index 9f4be46738b..351555b5f33 100644
--- a/pkgs/applications/kde/kreversi.nix
+++ b/pkgs/applications/kde/kreversi.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, extra-cmake-modules, libkdegames, kdeclarative }:
 
 mkDerivation {
-  name = "kreversi";
+  pname = "kreversi";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.kreversi";
     description = "A simple one player strategy game played against the computer";
diff --git a/pkgs/applications/kde/krfb.nix b/pkgs/applications/kde/krfb.nix
index d2b96bf6100..aa280d019b1 100644
--- a/pkgs/applications/kde/krfb.nix
+++ b/pkgs/applications/kde/krfb.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "krfb";
+  pname = "krfb";
   meta = {
     license = with lib.licenses; [ gpl2 fdl12 ];
     maintainers = with lib.maintainers; [ jerith666 ];
diff --git a/pkgs/applications/kde/kruler.nix b/pkgs/applications/kde/kruler.nix
index 2018245cfcb..460675e8cb1 100644
--- a/pkgs/applications/kde/kruler.nix
+++ b/pkgs/applications/kde/kruler.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "kruler";
+  pname = "kruler";
   meta = {
     license = with lib.licenses; [ gpl2 ];
     maintainers = [ lib.maintainers.vandenoever ];
diff --git a/pkgs/applications/kde/kshisen.nix b/pkgs/applications/kde/kshisen.nix
index 5be17bb8ee0..791e95af690 100644
--- a/pkgs/applications/kde/kshisen.nix
+++ b/pkgs/applications/kde/kshisen.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames, libkmahjongg }:
 
 mkDerivation {
-  name = "kshisen";
+  pname = "kshisen";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.kshisen";
     description = "A solitaire-like game played using the standard set of Mahjong tiles";
diff --git a/pkgs/applications/kde/ksmtp/default.nix b/pkgs/applications/kde/ksmtp/default.nix
index 6a5f51a17bf..3bf80f4abf5 100644
--- a/pkgs/applications/kde/ksmtp/default.nix
+++ b/pkgs/applications/kde/ksmtp/default.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "ksmtp";
+  pname = "ksmtp";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/kspaceduel.nix b/pkgs/applications/kde/kspaceduel.nix
index b18a3e7cf8f..49ef76151ea 100644
--- a/pkgs/applications/kde/kspaceduel.nix
+++ b/pkgs/applications/kde/kspaceduel.nix
@@ -10,10 +10,10 @@
 }:
 
 mkDerivation {
-  name = "kspaceduel";
+  pname = "kspaceduel";
   meta.license = with lib.licenses; [ lgpl21 gpl3 ];
   outputs = [ "out" "dev" ];
-  nativeBuildInputs = [ 
+  nativeBuildInputs = [
     cmake extra-cmake-modules
   ];
   propagatedBuildInputs = [
diff --git a/pkgs/applications/kde/ksquares.nix b/pkgs/applications/kde/ksquares.nix
index 12d989befe1..b48ee473523 100644
--- a/pkgs/applications/kde/ksquares.nix
+++ b/pkgs/applications/kde/ksquares.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, extra-cmake-modules, kdoctools, libkdegames, kconfig, kcrash, kxmlgui }:
 
 mkDerivation {
-  name = "ksquares";
+  pname = "ksquares";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/games/org.kde.ksquares";
     description = "A game of Dots and Boxes";
diff --git a/pkgs/applications/kde/ksudoku.nix b/pkgs/applications/kde/ksudoku.nix
index 678c21d5870..bf59c6e94c3 100644
--- a/pkgs/applications/kde/ksudoku.nix
+++ b/pkgs/applications/kde/ksudoku.nix
@@ -8,7 +8,7 @@
 }:
 
 mkDerivation {
-  name = "ksudoku";
+  pname = "ksudoku";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [ libGLU kdeclarative libkdegames ];
   meta = {
diff --git a/pkgs/applications/kde/ksystemlog.nix b/pkgs/applications/kde/ksystemlog.nix
index bec92d55966..08f7ffb7e05 100644
--- a/pkgs/applications/kde/ksystemlog.nix
+++ b/pkgs/applications/kde/ksystemlog.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "ksystemlog";
+  pname = "ksystemlog";
 
   nativeBuildInputs = [ extra-cmake-modules gettext kdoctools ];
   propagatedBuildInputs = [ karchive kconfig kio ];
diff --git a/pkgs/applications/kde/kteatime.nix b/pkgs/applications/kde/kteatime.nix
index 812a13aa118..639bd933103 100644
--- a/pkgs/applications/kde/kteatime.nix
+++ b/pkgs/applications/kde/kteatime.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kconfig, kcrash, kiconthemes, knotifyconfig }:
 
 mkDerivation {
-  name = "kteatime";
+  pname = "kteatime";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/utilities/org.kde.kteatime";
     description = "A handy timer for steeping tea";
diff --git a/pkgs/applications/kde/ktimer.nix b/pkgs/applications/kde/ktimer.nix
index bdb8f2c687b..7eab059f1a7 100644
--- a/pkgs/applications/kde/ktimer.nix
+++ b/pkgs/applications/kde/ktimer.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio }:
 
 mkDerivation {
-  name = "ktimer";
+  pname = "ktimer";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/utilities/org.kde.ktimer";
     description = "A little tool to execute programs after some time";
diff --git a/pkgs/applications/kde/ktnef.nix b/pkgs/applications/kde/ktnef.nix
index 61f8672e47d..c264e0b53ca 100644
--- a/pkgs/applications/kde/ktnef.nix
+++ b/pkgs/applications/kde/ktnef.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "ktnef";
+  pname = "ktnef";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/ktouch.nix b/pkgs/applications/kde/ktouch.nix
index 7e300ea7157..9d31d4ec62b 100644
--- a/pkgs/applications/kde/ktouch.nix
+++ b/pkgs/applications/kde/ktouch.nix
@@ -9,7 +9,7 @@
 
 
   mkDerivation {
-    name = "ktouch";
+    pname = "ktouch";
     meta = {
       license = lib.licenses.gpl2;
       maintainers = [ lib.maintainers.schmittlauch ];
diff --git a/pkgs/applications/kde/kturtle.nix b/pkgs/applications/kde/kturtle.nix
index c495b16fef7..d178f651545 100644
--- a/pkgs/applications/kde/kturtle.nix
+++ b/pkgs/applications/kde/kturtle.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, knewstuff }:
 
 mkDerivation {
-  name = "kturtle";
+  pname = "kturtle";
   meta = with lib; {
     homepage = "https://kde.org/applications/en/utilities/org.kde.kturtle";
     description = "An educational programming environment for learning how to program";
diff --git a/pkgs/applications/kde/kwalletmanager.nix b/pkgs/applications/kde/kwalletmanager.nix
index e39e7e5157d..b5799a24e36 100644
--- a/pkgs/applications/kde/kwalletmanager.nix
+++ b/pkgs/applications/kde/kwalletmanager.nix
@@ -13,7 +13,7 @@
 }:
 
 mkDerivation {
-  name = "kwalletmanager";
+  pname = "kwalletmanager";
   meta = {
     license = with lib.licenses; [ gpl2 ];
     maintainers = with lib.maintainers; [ fridh ];
diff --git a/pkgs/applications/kde/kwave.nix b/pkgs/applications/kde/kwave.nix
index 1a831c7c8dd..125e79c2c3c 100644
--- a/pkgs/applications/kde/kwave.nix
+++ b/pkgs/applications/kde/kwave.nix
@@ -3,7 +3,7 @@
 , libogg, libmad, libopus, libvorbis, fftw, librsvg, qtbase }:
 
 mkDerivation {
-  name = "kwave";
+  pname = "kwave";
 
   meta = with lib; {
     homepage = "https://kde.org/applications/en/multimedia/org.kde.kwave";
diff --git a/pkgs/applications/kde/libgravatar.nix b/pkgs/applications/kde/libgravatar.nix
index 69a1b9e99cb..51e3391b8e7 100644
--- a/pkgs/applications/kde/libgravatar.nix
+++ b/pkgs/applications/kde/libgravatar.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "libgravatar";
+  pname = "libgravatar";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/libkcddb.nix b/pkgs/applications/kde/libkcddb.nix
index 3fd48605654..3dde4960502 100644
--- a/pkgs/applications/kde/libkcddb.nix
+++ b/pkgs/applications/kde/libkcddb.nix
@@ -3,7 +3,7 @@
 , libmusicbrainz5 }:
 
 mkDerivation {
-  name = "libkcddb";
+  pname = "libkcddb";
   meta = with lib; {
     license = with licenses; [ gpl2 lgpl21 bsd3 ];
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/pkgs/applications/kde/libkdcraw.nix b/pkgs/applications/kde/libkdcraw.nix
index 70e3cb0e195..1419fb0e980 100644
--- a/pkgs/applications/kde/libkdcraw.nix
+++ b/pkgs/applications/kde/libkdcraw.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, extra-cmake-modules, libraw, qtbase }:
 
 mkDerivation {
-  name = "libkdcraw";
+  pname = "libkdcraw";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 bsd3 ];
     maintainers = [ lib.maintainers.ttuegel ];
diff --git a/pkgs/applications/kde/libkdegames.nix b/pkgs/applications/kde/libkdegames.nix
index 494b193b832..830837756b8 100644
--- a/pkgs/applications/kde/libkdegames.nix
+++ b/pkgs/applications/kde/libkdegames.nix
@@ -13,7 +13,7 @@
 }:
 
 mkDerivation {
-  name = "libkdegames";
+  pname = "libkdegames";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kdelibs4support qtdeclarative kdeclarative kdnssd knewstuff openal libsndfile
diff --git a/pkgs/applications/kde/libkdepim.nix b/pkgs/applications/kde/libkdepim.nix
index 92716e40a34..cc0c15a9e06 100644
--- a/pkgs/applications/kde/libkdepim.nix
+++ b/pkgs/applications/kde/libkdepim.nix
@@ -7,7 +7,7 @@
 }:
 
 mkDerivation {
-  name = "libkdepim";
+  pname = "libkdepim";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/libkexiv2.nix b/pkgs/applications/kde/libkexiv2.nix
index 8c8d244d6f6..8d9b3a82032 100644
--- a/pkgs/applications/kde/libkexiv2.nix
+++ b/pkgs/applications/kde/libkexiv2.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, exiv2, extra-cmake-modules, qtbase }:
 
 mkDerivation {
-  name = "libkexiv2";
+  pname = "libkexiv2";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 bsd3 ];
     maintainers = [ lib.maintainers.ttuegel ];
diff --git a/pkgs/applications/kde/libkgapi.nix b/pkgs/applications/kde/libkgapi.nix
index 9d2d41c41d7..979ca7e2f45 100644
--- a/pkgs/applications/kde/libkgapi.nix
+++ b/pkgs/applications/kde/libkgapi.nix
@@ -1,15 +1,16 @@
 {
   mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
-  qtwebengine, kio, kcalendarcore, kcontacts,
+  qtbase, qtwebengine, kio, kcalendarcore, kcontacts,
   cyrus_sasl
 }:
 
 mkDerivation {
-  name = "libkgapi";
+  pname = "libkgapi";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
+    broken = lib.versionOlder qtbase.version "5.14.0";
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [ qtwebengine kio kcalendarcore kcontacts cyrus_sasl ];
diff --git a/pkgs/applications/kde/libkipi.nix b/pkgs/applications/kde/libkipi.nix
index c70d8407fc7..e94f0e6c4a8 100644
--- a/pkgs/applications/kde/libkipi.nix
+++ b/pkgs/applications/kde/libkipi.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, extra-cmake-modules, kconfig, ki18n, kservice, kxmlgui }:
 
 mkDerivation {
-  name = "libkipi";
+  pname = "libkipi";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 bsd3 ];
     maintainers = [ lib.maintainers.ttuegel ];
diff --git a/pkgs/applications/kde/libkleo.nix b/pkgs/applications/kde/libkleo.nix
index 0958a0e605f..dd17345c5f1 100644
--- a/pkgs/applications/kde/libkleo.nix
+++ b/pkgs/applications/kde/libkleo.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "libkleo";
+  pname = "libkleo";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/libkmahjongg.nix b/pkgs/applications/kde/libkmahjongg.nix
index 295b9784268..b14e50f32bc 100644
--- a/pkgs/applications/kde/libkmahjongg.nix
+++ b/pkgs/applications/kde/libkmahjongg.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "libkmahjongg";
+  pname = "libkmahjongg";
   meta = {
     license = with lib.licenses; [ gpl2 ];
     maintainers = with lib.maintainers; [ ];
diff --git a/pkgs/applications/kde/libkomparediff2.nix b/pkgs/applications/kde/libkomparediff2.nix
index cae2aec5668..93ac12d97d6 100644
--- a/pkgs/applications/kde/libkomparediff2.nix
+++ b/pkgs/applications/kde/libkomparediff2.nix
@@ -1,7 +1,7 @@
 { mkDerivation, extra-cmake-modules, ki18n, kxmlgui, kcodecs, kio }:
 
 mkDerivation {
-  name = "libkomparediff2";
+  pname = "libkomparediff2";
   nativeBuildInputs = [ extra-cmake-modules ];
   propagatedBuildInputs = [ kcodecs ki18n kxmlgui kio ];
 }
diff --git a/pkgs/applications/kde/libksane.nix b/pkgs/applications/kde/libksane.nix
index f92f21de7fb..33a2ef48f90 100644
--- a/pkgs/applications/kde/libksane.nix
+++ b/pkgs/applications/kde/libksane.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "libksane";
+  pname = "libksane";
   meta = with lib; {
     license = licenses.gpl2;
     maintainers = with maintainers; [ pshendry ];
diff --git a/pkgs/applications/kde/libksieve.nix b/pkgs/applications/kde/libksieve.nix
index dd33f759c31..209647a4791 100644
--- a/pkgs/applications/kde/libksieve.nix
+++ b/pkgs/applications/kde/libksieve.nix
@@ -7,7 +7,7 @@
 }:
 
 mkDerivation {
-  name = "libksieve";
+  pname = "libksieve";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/mailcommon.nix b/pkgs/applications/kde/mailcommon.nix
index 44edea8f55e..c3a8659a735 100644
--- a/pkgs/applications/kde/mailcommon.nix
+++ b/pkgs/applications/kde/mailcommon.nix
@@ -7,7 +7,7 @@
 }:
 
 mkDerivation {
-  name = "mailcommon";
+  pname = "mailcommon";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/mailimporter.nix b/pkgs/applications/kde/mailimporter.nix
index 5de58658777..b1e0461a959 100644
--- a/pkgs/applications/kde/mailimporter.nix
+++ b/pkgs/applications/kde/mailimporter.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "mailimporter";
+  pname = "mailimporter";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/marble.nix b/pkgs/applications/kde/marble.nix
index f690e453361..525289bdc3b 100644
--- a/pkgs/applications/kde/marble.nix
+++ b/pkgs/applications/kde/marble.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "marble";
+  pname = "marble";
   meta.license = with lib.licenses; [ lgpl21 gpl3 ];
   outputs = [ "out" "dev" ];
   nativeBuildInputs = [ extra-cmake-modules kdoctools perl ];
diff --git a/pkgs/applications/kde/mbox-importer.nix b/pkgs/applications/kde/mbox-importer.nix
index 0704003353a..eadb27f05bc 100644
--- a/pkgs/applications/kde/mbox-importer.nix
+++ b/pkgs/applications/kde/mbox-importer.nix
@@ -5,7 +5,7 @@
 }:
 
 mkDerivation {
-  name = "mbox-importer";
+  pname = "mbox-importer";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/messagelib.nix b/pkgs/applications/kde/messagelib.nix
index e31e61d35ca..d47a5504417 100644
--- a/pkgs/applications/kde/messagelib.nix
+++ b/pkgs/applications/kde/messagelib.nix
@@ -9,7 +9,7 @@
 }:
 
 mkDerivation {
-  name = "messagelib";
+  pname = "messagelib";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/minuet.nix b/pkgs/applications/kde/minuet.nix
index 2c0f0a5092d..ca7d6124ed5 100644
--- a/pkgs/applications/kde/minuet.nix
+++ b/pkgs/applications/kde/minuet.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "minuet";
+  pname = "minuet";
   meta = with lib; {
     license = with licenses; [ lgpl21 gpl3 ];
     maintainers = with maintainers; [ peterhoeg HaoZeke ];
diff --git a/pkgs/applications/kde/okular.nix b/pkgs/applications/kde/okular.nix
index 288b2ceb807..12537eba270 100644
--- a/pkgs/applications/kde/okular.nix
+++ b/pkgs/applications/kde/okular.nix
@@ -9,7 +9,7 @@
 }:
 
 mkDerivation {
-  name = "okular";
+  pname = "okular";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     breeze-icons discount djvulibre ebook_tools kactivities karchive kbookmarks
diff --git a/pkgs/applications/kde/picmi.nix b/pkgs/applications/kde/picmi.nix
index dd09e8f9cd8..25734e318ab 100644
--- a/pkgs/applications/kde/picmi.nix
+++ b/pkgs/applications/kde/picmi.nix
@@ -4,7 +4,7 @@
 }:
 
 mkDerivation {
-  name = "picmi";
+  pname = "picmi";
   meta = with lib; {
     description = "Nonogram game";
     longDescription = ''The goal is to reveal the hidden pattern in the board by coloring or
diff --git a/pkgs/applications/kde/pim-data-exporter.nix b/pkgs/applications/kde/pim-data-exporter.nix
index 82cdf19df94..746bb2aec2a 100644
--- a/pkgs/applications/kde/pim-data-exporter.nix
+++ b/pkgs/applications/kde/pim-data-exporter.nix
@@ -8,7 +8,7 @@
 }:
 
 mkDerivation {
-  name = "pim-data-exporter";
+  pname = "pim-data-exporter";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/pim-sieve-editor.nix b/pkgs/applications/kde/pim-sieve-editor.nix
index c83df2e0e49..1f3f1542cdb 100644
--- a/pkgs/applications/kde/pim-sieve-editor.nix
+++ b/pkgs/applications/kde/pim-sieve-editor.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "pim-sieve-editor";
+  pname = "pim-sieve-editor";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/pimcommon.nix b/pkgs/applications/kde/pimcommon.nix
index 2e74f528aeb..dff5e883cb5 100644
--- a/pkgs/applications/kde/pimcommon.nix
+++ b/pkgs/applications/kde/pimcommon.nix
@@ -8,7 +8,7 @@
 }:
 
 mkDerivation {
-  name = "pimcommon";
+  pname = "pimcommon";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
diff --git a/pkgs/applications/kde/print-manager.nix b/pkgs/applications/kde/print-manager.nix
index f0501ffadee..2ea662419b1 100644
--- a/pkgs/applications/kde/print-manager.nix
+++ b/pkgs/applications/kde/print-manager.nix
@@ -8,7 +8,7 @@
 }:
 
 mkDerivation {
-  name = "print-manager";
+  pname = "print-manager";
   meta = {
     license = [ lib.licenses.gpl2 ];
     maintainers = [ lib.maintainers.ttuegel ];
diff --git a/pkgs/applications/kde/rocs.nix b/pkgs/applications/kde/rocs.nix
index feae7ca81de..45362d556a7 100644
--- a/pkgs/applications/kde/rocs.nix
+++ b/pkgs/applications/kde/rocs.nix
@@ -6,7 +6,7 @@
 }:
 
 mkDerivation {
-  name = "rocs";
+  pname = "rocs";
 
   meta = with lib; {
     homepage = "https://edu.kde.org/rocs/";
diff --git a/pkgs/applications/kde/spectacle.nix b/pkgs/applications/kde/spectacle.nix
index b980ea21df2..c6861b218de 100644
--- a/pkgs/applications/kde/spectacle.nix
+++ b/pkgs/applications/kde/spectacle.nix
@@ -8,7 +8,7 @@
 }:
 
 mkDerivation {
-  name = "spectacle";
+  pname = "spectacle";
   meta = with lib; { maintainers = with maintainers; [ ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
diff --git a/pkgs/applications/kde/srcs.nix b/pkgs/applications/kde/srcs.nix
index 6966c07ec0a..5ff13eaf240 100644
--- a/pkgs/applications/kde/srcs.nix
+++ b/pkgs/applications/kde/srcs.nix
@@ -4,1731 +4,1731 @@
 
 {
   akonadi = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/akonadi-20.08.2.tar.xz";
-      sha256 = "d3a4b3b3f543734ad5428ca0e573b8dbf9e05f42d51e1aab39b5b5266c16be7d";
-      name = "akonadi-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-20.08.3.tar.xz";
+      sha256 = "1hwaan45cyw2nmfmdp5pbhvm00xdxy9la68ms3sa8a67zcsfljhl";
+      name = "akonadi-20.08.3.tar.xz";
     };
   };
   akonadi-calendar = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/akonadi-calendar-20.08.2.tar.xz";
-      sha256 = "20173d00dc764f6a1e8e0b433d96b982ceadcb17e9bd067caf2967fd5440eb51";
-      name = "akonadi-calendar-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-calendar-20.08.3.tar.xz";
+      sha256 = "18rwvn5i6i4ng335rxpwx3a2m4vyq96w9m3fa1gvmr8ls7vkaqrk";
+      name = "akonadi-calendar-20.08.3.tar.xz";
     };
   };
   akonadi-calendar-tools = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/akonadi-calendar-tools-20.08.2.tar.xz";
-      sha256 = "2069cc3a12f0da3f10181c13d19b1048d8f2e0c0f4a4e14309a7e6f08aa74ab9";
-      name = "akonadi-calendar-tools-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-calendar-tools-20.08.3.tar.xz";
+      sha256 = "1pnm3xi26bnbjmnv9zwi9w5rkr1pdry50hzy3gxw7b0g11zz036w";
+      name = "akonadi-calendar-tools-20.08.3.tar.xz";
     };
   };
   akonadiconsole = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/akonadiconsole-20.08.2.tar.xz";
-      sha256 = "dc03a1986b6e7af0d26af927009d567da1e1835cc2bb5cc1b5732ffca3ecde9d";
-      name = "akonadiconsole-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/akonadiconsole-20.08.3.tar.xz";
+      sha256 = "061r0p9pj22x0hiz6piz4vramll3w5xy92sx8nfhcp2gmnvj9890";
+      name = "akonadiconsole-20.08.3.tar.xz";
     };
   };
   akonadi-contacts = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/akonadi-contacts-20.08.2.tar.xz";
-      sha256 = "e4a2696e0e0cf69926d34f160a4581131a1da8244355787564b75dec06db1b30";
-      name = "akonadi-contacts-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-contacts-20.08.3.tar.xz";
+      sha256 = "18n9x41fmh4q9q9lfv882iwk6j1hvgpl11y4qn873vwr9sdrcf4s";
+      name = "akonadi-contacts-20.08.3.tar.xz";
     };
   };
   akonadi-import-wizard = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/akonadi-import-wizard-20.08.2.tar.xz";
-      sha256 = "639d72ae3d32f681ddb046a87d625871b485785602cf35b817e89004def4dc5e";
-      name = "akonadi-import-wizard-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-import-wizard-20.08.3.tar.xz";
+      sha256 = "0gny0rxvyks5w4rdb73ly06lyvz7kcfvff1268bn6i96xr83kmim";
+      name = "akonadi-import-wizard-20.08.3.tar.xz";
     };
   };
   akonadi-mime = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/akonadi-mime-20.08.2.tar.xz";
-      sha256 = "5699a1d44a9812c9530bc61af5822ff34a573b168d72230cd8261c05065c06e3";
-      name = "akonadi-mime-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-mime-20.08.3.tar.xz";
+      sha256 = "12ps633y64mj72iryd9z2nmrf7lxbkqj7xnzj28549cvg6jizgl7";
+      name = "akonadi-mime-20.08.3.tar.xz";
     };
   };
   akonadi-notes = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/akonadi-notes-20.08.2.tar.xz";
-      sha256 = "4897ca92d6b68f75254e1c419438275a94fa678c9f062dcd91c0267129886ca7";
-      name = "akonadi-notes-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-notes-20.08.3.tar.xz";
+      sha256 = "1z90r37lqc7ydmily730idd4s8rcbr6i3a8x9m647snbala16z36";
+      name = "akonadi-notes-20.08.3.tar.xz";
     };
   };
   akonadi-search = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/akonadi-search-20.08.2.tar.xz";
-      sha256 = "618400950fa44f0c578ab51c3b311a47e0b2df47203f754e50bcc363201a9fc7";
-      name = "akonadi-search-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/akonadi-search-20.08.3.tar.xz";
+      sha256 = "0izpkvjybp6r79rai0p5j74bm0f8ksgsl3z34ggb51j6vj9rla7h";
+      name = "akonadi-search-20.08.3.tar.xz";
     };
   };
   akregator = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/akregator-20.08.2.tar.xz";
-      sha256 = "4de4bd31dede5c09e0eb9e14d1da1d1979409eb1e28df5f95963086d4a49edc9";
-      name = "akregator-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/akregator-20.08.3.tar.xz";
+      sha256 = "1gqh820s5by3r9lz7r16r0krh916idsks6sgy26hcrwfmva45wn5";
+      name = "akregator-20.08.3.tar.xz";
     };
   };
   analitza = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/analitza-20.08.2.tar.xz";
-      sha256 = "2fad01bf48199e3671559ec9a619f0d590af331922899c793f96fc90860ec487";
-      name = "analitza-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/analitza-20.08.3.tar.xz";
+      sha256 = "16s6kjyclj73lq8z8mvrbsl75h1nrnv7syp6wpip6gvfs5ynai90";
+      name = "analitza-20.08.3.tar.xz";
     };
   };
   ark = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/ark-20.08.2.tar.xz";
-      sha256 = "ec061ac07687b5a3541af293e3bc2aa7bedcfe0ef38ba6e57e2704068a726ffc";
-      name = "ark-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/ark-20.08.3.tar.xz";
+      sha256 = "03kwjp2nj570k9ph8bgj042sjj4x0h9jwv8nwx0pfpcxkgxv5pzy";
+      name = "ark-20.08.3.tar.xz";
     };
   };
   artikulate = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/artikulate-20.08.2.tar.xz";
-      sha256 = "66545d85e25aa67816deea4b2b89b485181458a5bc117dad9588671d8b48b41c";
-      name = "artikulate-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/artikulate-20.08.3.tar.xz";
+      sha256 = "0bx97qi6zi7jmlzm3g7qamnzg0966g4w9xpskbxbr4cgjr312x19";
+      name = "artikulate-20.08.3.tar.xz";
     };
   };
   audiocd-kio = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/audiocd-kio-20.08.2.tar.xz";
-      sha256 = "5f38c549fe8c3a4659ac8291c223327b765834e7668bc15a96047e20cdb11f01";
-      name = "audiocd-kio-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/audiocd-kio-20.08.3.tar.xz";
+      sha256 = "01n4nyda7l7by1nyx2sgxdl8qkdfndk0w6hj0qc6a7fllcfj5cpb";
+      name = "audiocd-kio-20.08.3.tar.xz";
     };
   };
   baloo-widgets = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/baloo-widgets-20.08.2.tar.xz";
-      sha256 = "e1d14b8dba911ebc1cee76dbcd44fa200418ba959d86ce567093b5fc3b700a07";
-      name = "baloo-widgets-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/baloo-widgets-20.08.3.tar.xz";
+      sha256 = "0ciidrsvwc3ppxhw7w5116q4lfbsvij9jsvyzm292pmjln2vikrg";
+      name = "baloo-widgets-20.08.3.tar.xz";
     };
   };
   blinken = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/blinken-20.08.2.tar.xz";
-      sha256 = "c6e74033ab8ece83618c5cda0ab3cf327514b8e2e6b0e9daf484ce88f671a65e";
-      name = "blinken-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/blinken-20.08.3.tar.xz";
+      sha256 = "1gfw0w66nm3sx81bnr0p0yz1bhjj63lvd3cr86x3b2pny5rcw1da";
+      name = "blinken-20.08.3.tar.xz";
     };
   };
   bomber = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/bomber-20.08.2.tar.xz";
-      sha256 = "27c226b31bcdbbda0c9e304e428ca7451614c397a038e830f8052c381dae7215";
-      name = "bomber-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/bomber-20.08.3.tar.xz";
+      sha256 = "1nw1a9cf0nqgk00hvzcqch3bl97lx6bih0wsax5q0z1kzwlz0kgr";
+      name = "bomber-20.08.3.tar.xz";
     };
   };
   bovo = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/bovo-20.08.2.tar.xz";
-      sha256 = "936cab24a13900765f0c5a5afb6f155cb5a05bdb067f86b77e33af5f0e4c37d2";
-      name = "bovo-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/bovo-20.08.3.tar.xz";
+      sha256 = "06pbivyvfgjx6zkadvwfwnrg9vjy4rf52k2a74qjcnl2ms16sr1g";
+      name = "bovo-20.08.3.tar.xz";
     };
   };
   calendarsupport = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/calendarsupport-20.08.2.tar.xz";
-      sha256 = "83bcdd36689f762363a95b688b9377a3335b4fd58ad1d5efad36ad2b0cf7cc10";
-      name = "calendarsupport-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/calendarsupport-20.08.3.tar.xz";
+      sha256 = "09w06n745764fs440nh0piy5sahfn50kh3zrljhgzadcij6165vd";
+      name = "calendarsupport-20.08.3.tar.xz";
     };
   };
   cantor = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/cantor-20.08.2.tar.xz";
-      sha256 = "aca92b6e40a9e05282eae2b55f7cc6bf88612ffa9b3dde1a239648be8e5bdc59";
-      name = "cantor-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/cantor-20.08.3.tar.xz";
+      sha256 = "1njqycx0v3zq5mdcvfdfgxs8vgl01v80s27qgapsxxrgr9hgxbhl";
+      name = "cantor-20.08.3.tar.xz";
     };
   };
   cervisia = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/cervisia-20.08.2.tar.xz";
-      sha256 = "b3444ecd1078b92fad9b00297496dd3d92366a9c0bb56cfa138f28cc15db1389";
-      name = "cervisia-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/cervisia-20.08.3.tar.xz";
+      sha256 = "1bsc72kxcmzx25408ngzqzj4a0168vqfr3a2gvmm6d8klbgpm3gv";
+      name = "cervisia-20.08.3.tar.xz";
     };
   };
   dolphin = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/dolphin-20.08.2.tar.xz";
-      sha256 = "bd13574610fc2108b9b04249cff70ca99958fe57a42fbf260ed16e5e377071bc";
-      name = "dolphin-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/dolphin-20.08.3.tar.xz";
+      sha256 = "107n763qix95b1hgy86hddpj9x2clzhaiw8q8yjn9lzj1rz5facx";
+      name = "dolphin-20.08.3.tar.xz";
     };
   };
   dolphin-plugins = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/dolphin-plugins-20.08.2.tar.xz";
-      sha256 = "7eabeb295ae2932958992bf7273afcb8164fbe90a2574064983fb2ecbc57eeaf";
-      name = "dolphin-plugins-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/dolphin-plugins-20.08.3.tar.xz";
+      sha256 = "0fmay0sycfj9s7zyxbldgcal5lj2psi0n9zrgq812s5qr4rb5c8c";
+      name = "dolphin-plugins-20.08.3.tar.xz";
     };
   };
   dragon = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/dragon-20.08.2.tar.xz";
-      sha256 = "cf7cce288fdeb12a0c86739741c6b901859e9b36d8fc9e7478c46f53cc74dd6c";
-      name = "dragon-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/dragon-20.08.3.tar.xz";
+      sha256 = "14qsb7h8w58i9jsh1gpcj8pwjgy7y3mqfy51hca82yrd82z5b9rn";
+      name = "dragon-20.08.3.tar.xz";
     };
   };
   elisa = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/elisa-20.08.2.tar.xz";
-      sha256 = "6c04377dfd5e82b2b67b3a43cc3ffd3b206f24ab75c3fe18298ec80876dcc268";
-      name = "elisa-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/elisa-20.08.3.tar.xz";
+      sha256 = "0893nbj0jsapnfd09cp961k2m7lq6sjvzynpa4hfp9ch1jbc912c";
+      name = "elisa-20.08.3.tar.xz";
     };
   };
   eventviews = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/eventviews-20.08.2.tar.xz";
-      sha256 = "ecac9ac6e6a6ed835b28048d8bfc09bac9a1e7a57c5dd0eba6f4360301b32af9";
-      name = "eventviews-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/eventviews-20.08.3.tar.xz";
+      sha256 = "158j5g3i0wbbxpg9jmr50dvbpms4c4vgcnpmn3b3vfbszzwsy6rg";
+      name = "eventviews-20.08.3.tar.xz";
     };
   };
   ffmpegthumbs = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/ffmpegthumbs-20.08.2.tar.xz";
-      sha256 = "af5b3de86487d3ddccda34c5165a34427ef97fe1090108781eb38babc101740f";
-      name = "ffmpegthumbs-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/ffmpegthumbs-20.08.3.tar.xz";
+      sha256 = "186hpq949r3xx2a64nqjy4pcn67d6kdvsy80zr238lgb9qqcqygi";
+      name = "ffmpegthumbs-20.08.3.tar.xz";
     };
   };
   filelight = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/filelight-20.08.2.tar.xz";
-      sha256 = "65f5f90d56d3449722647286324f8aae54754ec2a46c9aaa2e3bad92bae3433e";
-      name = "filelight-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/filelight-20.08.3.tar.xz";
+      sha256 = "1jljsnjdhnqphh1kanj6hi2rswq3i9119iah1j33jy5pladcyf5q";
+      name = "filelight-20.08.3.tar.xz";
     };
   };
   granatier = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/granatier-20.08.2.tar.xz";
-      sha256 = "bb79b84b485bb194bf4edaa833e7705ec9fc0275301c70df78498b872de9ee57";
-      name = "granatier-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/granatier-20.08.3.tar.xz";
+      sha256 = "195bc2rcz11v76c0cwa9mb7rfixjn7sb0a52wrzz0sf9624m0rcs";
+      name = "granatier-20.08.3.tar.xz";
     };
   };
   grantlee-editor = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/grantlee-editor-20.08.2.tar.xz";
-      sha256 = "353b2c58d169e8b3c91367a7ce8939ede39c289036e3617da019ae1045a81c7b";
-      name = "grantlee-editor-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/grantlee-editor-20.08.3.tar.xz";
+      sha256 = "1k2rdicd68jdk3pazyn3q0vj99n0vnkpzkrnacpymkjy85cjgrv9";
+      name = "grantlee-editor-20.08.3.tar.xz";
     };
   };
   grantleetheme = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/grantleetheme-20.08.2.tar.xz";
-      sha256 = "8cb4d2f698cf7f44bf70322669809f07900021f215175c8db120abc0f2debf62";
-      name = "grantleetheme-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/grantleetheme-20.08.3.tar.xz";
+      sha256 = "07b7v5v2vyz3vyj1jjzryzaak8bbqg8a2caxwb6s7cwhy19y6my5";
+      name = "grantleetheme-20.08.3.tar.xz";
     };
   };
   gwenview = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/gwenview-20.08.2.tar.xz";
-      sha256 = "580df49eb6852db4b1229f0326372dc7da7a08140d552da59a62ece08b03cc9d";
-      name = "gwenview-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/gwenview-20.08.3.tar.xz";
+      sha256 = "09mwp3z97hgd7c15w0hz8k61qn5icb81rj27nxzy877ph1xnrixc";
+      name = "gwenview-20.08.3.tar.xz";
     };
   };
   incidenceeditor = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/incidenceeditor-20.08.2.tar.xz";
-      sha256 = "e9c24390b5951ef9f504a4dc432fea52ed7487288c424f073446e6c07e70c69a";
-      name = "incidenceeditor-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/incidenceeditor-20.08.3.tar.xz";
+      sha256 = "15kkl8z1nig9qyxfrq54c3sqh1xs1lzlbm5rphj34y0yb8dbn8kx";
+      name = "incidenceeditor-20.08.3.tar.xz";
     };
   };
   juk = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/juk-20.08.2.tar.xz";
-      sha256 = "b19f59ad8c80c4c335469fbddde6db92112e286b1699964eab39a3d826c7ec60";
-      name = "juk-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/juk-20.08.3.tar.xz";
+      sha256 = "1jvj0r4grm55cnck4apnh4fh44mv1ycm0pprrkh57iwj1dlf7kif";
+      name = "juk-20.08.3.tar.xz";
     };
   };
   k3b = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/k3b-20.08.2.tar.xz";
-      sha256 = "6370be558e93fed4605b7870b1d7ea324713c5a52370eab9c05d85fc3b76acd5";
-      name = "k3b-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/k3b-20.08.3.tar.xz";
+      sha256 = "0qg2p6gdg0clgv6qab5vr0i451m9hqqmpwq335w8m9nwb6wg30cx";
+      name = "k3b-20.08.3.tar.xz";
     };
   };
   kaccounts-integration = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kaccounts-integration-20.08.2.tar.xz";
-      sha256 = "6678ee7d394b69a37e6a220a6cba3804f999997da5803da4bab1d8f329ff30fe";
-      name = "kaccounts-integration-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kaccounts-integration-20.08.3.tar.xz";
+      sha256 = "006cglw5ai274a1r5jbk109mdrvw8v6fp3cdyi1kbrq7lp3123a2";
+      name = "kaccounts-integration-20.08.3.tar.xz";
     };
   };
   kaccounts-providers = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kaccounts-providers-20.08.2.tar.xz";
-      sha256 = "c719d7840ab118ff591e75e12869afc3118e5cdeb5c0415eba5b1f6993664c90";
-      name = "kaccounts-providers-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kaccounts-providers-20.08.3.tar.xz";
+      sha256 = "1vpv366bzj0sk7dqyxrq06a8ixgaaqi125mf2gmybvhj5yvrn3fp";
+      name = "kaccounts-providers-20.08.3.tar.xz";
     };
   };
   kaddressbook = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kaddressbook-20.08.2.tar.xz";
-      sha256 = "8d2e5849dd8878806e8566ce43c139633c37f027f677603600c8acc0d0d41198";
-      name = "kaddressbook-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kaddressbook-20.08.3.tar.xz";
+      sha256 = "00mia1jh2c5rcnsyx3wizjdg65pvpazfb8ayppjzv4rrc2nhr9nn";
+      name = "kaddressbook-20.08.3.tar.xz";
     };
   };
   kajongg = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kajongg-20.08.2.tar.xz";
-      sha256 = "1eb534ac6d1d3ca14b73bd6e5b626b988acafc30b168f54d48a493adc715ecde";
-      name = "kajongg-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kajongg-20.08.3.tar.xz";
+      sha256 = "0wr045xqm1q03vy0jbgrldpdc9k3lgnhd39yhi574la367ayffpa";
+      name = "kajongg-20.08.3.tar.xz";
     };
   };
   kalarm = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kalarm-20.08.2.tar.xz";
-      sha256 = "e783c041ac4b162cf5254e37e53854835eda6c61ef3ae2358466000a8650a4da";
-      name = "kalarm-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kalarm-20.08.3.tar.xz";
+      sha256 = "0194rapyvnpmhkba0rgclrai1ywx9anr8dski0j6z1yg0kgav8df";
+      name = "kalarm-20.08.3.tar.xz";
     };
   };
   kalarmcal = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kalarmcal-20.08.2.tar.xz";
-      sha256 = "0398a37f412eb03b5cbf2488ce7e0c38a069f1806bda4ea9bfce4fc67311a9a6";
-      name = "kalarmcal-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kalarmcal-20.08.3.tar.xz";
+      sha256 = "1i9hi3y4j2pmdmlj13kl13vfplxrh8w23fxz0mmawi1wn533fp66";
+      name = "kalarmcal-20.08.3.tar.xz";
     };
   };
   kalgebra = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kalgebra-20.08.2.tar.xz";
-      sha256 = "c934dc8d92917e31c17efa5b64dbec4795439a5f26762e2f214b49028bfe264d";
-      name = "kalgebra-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kalgebra-20.08.3.tar.xz";
+      sha256 = "0k7miil5ilrw68j6xl9g6cf3zfw7g52h0gfwd5j248nx2nxr150c";
+      name = "kalgebra-20.08.3.tar.xz";
     };
   };
   kalzium = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kalzium-20.08.2.tar.xz";
-      sha256 = "474f74cbb478d3f5f69b5785711ed969ac15d5e92aee5308c6118a9d12611016";
-      name = "kalzium-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kalzium-20.08.3.tar.xz";
+      sha256 = "1r80bnpdrybsdwcblpj7cg32dv90l79gs0i42gpm6inilfr3vp5n";
+      name = "kalzium-20.08.3.tar.xz";
     };
   };
   kamera = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kamera-20.08.2.tar.xz";
-      sha256 = "ba28cab34267ce203b4b70f4a2c2b6a75849aec83dd2d73f6903894c5c125fdf";
-      name = "kamera-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kamera-20.08.3.tar.xz";
+      sha256 = "06fwxdgbyywdrf1r0w17w3chfr0s8jhqswz9chmdfds9f2bb45cr";
+      name = "kamera-20.08.3.tar.xz";
     };
   };
   kamoso = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kamoso-20.08.2.tar.xz";
-      sha256 = "e7d0af2781ff077261886a1683aff1d518a17f9b6d83f84fa95a7633a00f1516";
-      name = "kamoso-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kamoso-20.08.3.tar.xz";
+      sha256 = "0zhl3va65ajz3hdggg0jvvgvj14s461pjw9adw9bnfcbs4jzkl2y";
+      name = "kamoso-20.08.3.tar.xz";
     };
   };
   kanagram = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kanagram-20.08.2.tar.xz";
-      sha256 = "3f3f961aa847f26ac875104e82b8e7e73bbc049f20460117f849df91ba9b42e2";
-      name = "kanagram-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kanagram-20.08.3.tar.xz";
+      sha256 = "1cyx8yq03xaw34ic69ghz9gafk8l30qinp0kkp9a1wh4pry8rnxf";
+      name = "kanagram-20.08.3.tar.xz";
     };
   };
   kapman = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kapman-20.08.2.tar.xz";
-      sha256 = "932bd697f2ca0e44af6be983dae3e13df9435642b91f0e1ebba7fd50291c2cbd";
-      name = "kapman-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kapman-20.08.3.tar.xz";
+      sha256 = "0nh1f0v026rib5ahj1mhvs99yabrgdq71bis465vfpm4favnirzy";
+      name = "kapman-20.08.3.tar.xz";
     };
   };
   kapptemplate = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kapptemplate-20.08.2.tar.xz";
-      sha256 = "3bda6d9f6127e19357f071ca6f9f05890c35a6aaf86e54bce39381f0045b6b0c";
-      name = "kapptemplate-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kapptemplate-20.08.3.tar.xz";
+      sha256 = "1r98ym9sazjzknxfw58hjiyxhmi49fyhrdn02v0b8fm711vprxab";
+      name = "kapptemplate-20.08.3.tar.xz";
     };
   };
   kate = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kate-20.08.2.tar.xz";
-      sha256 = "718e8230edfa16f93f54380c4e214a0f25f8a398fe74ad23f12b7dcffae419d0";
-      name = "kate-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kate-20.08.3.tar.xz";
+      sha256 = "1m7ximinknc0l9zqv4p25ybn6zysz59l4vvdb9xkhjp53aqskdz9";
+      name = "kate-20.08.3.tar.xz";
     };
   };
   katomic = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/katomic-20.08.2.tar.xz";
-      sha256 = "bb94e81cb1122b57d2601f701bc51ff8fa27ac07a5de34e5c49928d50d46ed85";
-      name = "katomic-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/katomic-20.08.3.tar.xz";
+      sha256 = "1v31x6371r9ccvc676vq5dlpkp4829xf0r37dnvdxlfm22mgsdnk";
+      name = "katomic-20.08.3.tar.xz";
     };
   };
   kbackup = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kbackup-20.08.2.tar.xz";
-      sha256 = "bb97dd10a64c42ae80c9c87442d3a06d3c18f4f5997bd3b6d1460dec655b3e0a";
-      name = "kbackup-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kbackup-20.08.3.tar.xz";
+      sha256 = "1sayzvj46ckhn5zgp7qi6zmrmd7bjh5mg05mcl5pfwv4dcvxkrng";
+      name = "kbackup-20.08.3.tar.xz";
     };
   };
   kblackbox = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kblackbox-20.08.2.tar.xz";
-      sha256 = "714a8749a49d1a7938b74372138ae3e5bafef50de61207e63a6d2c60b6bfded2";
-      name = "kblackbox-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kblackbox-20.08.3.tar.xz";
+      sha256 = "0vka2pswbza1z8f97nhxcjrczx4w1x0qyjpzs9ycn9a14smqpsrh";
+      name = "kblackbox-20.08.3.tar.xz";
     };
   };
   kblocks = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kblocks-20.08.2.tar.xz";
-      sha256 = "c82f8b6e722308a236d0057028d644ebf8105c9c902d799bc2fb3e1c1ff7c188";
-      name = "kblocks-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kblocks-20.08.3.tar.xz";
+      sha256 = "1jc063xn6dphydf49kv0izzy0nv06dr412xxjvkp7vccwv9qd5gf";
+      name = "kblocks-20.08.3.tar.xz";
     };
   };
   kbounce = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kbounce-20.08.2.tar.xz";
-      sha256 = "371fbaf7c1faeacf1c74441ec1a58f1ced862f741e67123d2eb105f1d4f9b8e2";
-      name = "kbounce-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kbounce-20.08.3.tar.xz";
+      sha256 = "0863vlirljvf101mdv6jxprj9axs4cikrnld3wvxrcqw3w2dy6wy";
+      name = "kbounce-20.08.3.tar.xz";
     };
   };
   kbreakout = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kbreakout-20.08.2.tar.xz";
-      sha256 = "b58b9dd26eff3960bc664076ddf4d0c81c7dfd5380be1d058b86de2d3f55d2ef";
-      name = "kbreakout-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kbreakout-20.08.3.tar.xz";
+      sha256 = "14nd1dnbdyxv59y8iildhydhxgal38hvj7bk6544glwl8yalak8z";
+      name = "kbreakout-20.08.3.tar.xz";
     };
   };
   kbruch = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kbruch-20.08.2.tar.xz";
-      sha256 = "54c5997a8d6405439448dd929bf16017c9e5db052b30c9bf144c656c6d8b9e0b";
-      name = "kbruch-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kbruch-20.08.3.tar.xz";
+      sha256 = "03s1hl4h8rsx0gn7wqfssi1ga4igx48jb47gpw6f9rfjm8f199vb";
+      name = "kbruch-20.08.3.tar.xz";
     };
   };
   kcachegrind = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kcachegrind-20.08.2.tar.xz";
-      sha256 = "e6b84a323a21ae7975ccc07154bcdc6eef1bc92818b800cfc5d546ada7f0387c";
-      name = "kcachegrind-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kcachegrind-20.08.3.tar.xz";
+      sha256 = "17j06z9cpj5qhfbp1xgw4qmhi4jckf2i99c9brys4ifb3p0rkbrs";
+      name = "kcachegrind-20.08.3.tar.xz";
     };
   };
   kcalc = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kcalc-20.08.2.tar.xz";
-      sha256 = "76b6c8e44c789090c0155f79878df8f27c96d2df4273443b0f05a42ec81902cf";
-      name = "kcalc-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kcalc-20.08.3.tar.xz";
+      sha256 = "1mk30fkv51w3fqlpkzgm1yj5sp98h26kkphplqkjva5v6s1jzmjy";
+      name = "kcalc-20.08.3.tar.xz";
     };
   };
   kcalutils = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kcalutils-20.08.2.tar.xz";
-      sha256 = "fccae5166b627f654412344d0090000ecd270af54b0cedb8648e35af26369cae";
-      name = "kcalutils-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kcalutils-20.08.3.tar.xz";
+      sha256 = "1i2yh4gvdwlylj7f7p32g1z7lzh3p19rrbd96l1gqhy700f2whpw";
+      name = "kcalutils-20.08.3.tar.xz";
     };
   };
   kcharselect = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kcharselect-20.08.2.tar.xz";
-      sha256 = "9438e723469b6bf0d87b23965c6d925800ff35b2cc2214a7eeb5fb41009489e0";
-      name = "kcharselect-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kcharselect-20.08.3.tar.xz";
+      sha256 = "1p6rijjfa2jk4vr0ivjn6p5qf2ys5kvhw0cwfyjs45ff7zg0s2ga";
+      name = "kcharselect-20.08.3.tar.xz";
     };
   };
   kcolorchooser = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kcolorchooser-20.08.2.tar.xz";
-      sha256 = "f314c31932704e7136b5fff89efe95e84e4215f3902089f9d838411f0fbc0c72";
-      name = "kcolorchooser-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kcolorchooser-20.08.3.tar.xz";
+      sha256 = "1874qa04whiivyydxfcn0f1xch515ga1af4ym42zqz64j3kq7i47";
+      name = "kcolorchooser-20.08.3.tar.xz";
     };
   };
   kcron = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kcron-20.08.2.tar.xz";
-      sha256 = "ce72bb7c48606b0611cfe46a545224cca131d34a4b678c86d9ac473071833f83";
-      name = "kcron-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kcron-20.08.3.tar.xz";
+      sha256 = "1piwssyg9fvah25gql6w0n8xf634f6gy475cz52gb1bl7rp72q6j";
+      name = "kcron-20.08.3.tar.xz";
     };
   };
   kdebugsettings = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kdebugsettings-20.08.2.tar.xz";
-      sha256 = "78502b1a52f9f81ff848e5b210b37a3a74da7c0032de2513f23c1d25cf801283";
-      name = "kdebugsettings-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kdebugsettings-20.08.3.tar.xz";
+      sha256 = "11xnvr9qib3hnp48whsw659c724s2114p5dr3fswvhm3hkw1aky7";
+      name = "kdebugsettings-20.08.3.tar.xz";
     };
   };
   kdeconnect-kde = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kdeconnect-kde-20.08.2.tar.xz";
-      sha256 = "6d43e38620987de1ddcfdfa7d4e6e31ff383b806139ba02e69a99c3ddfb4ee67";
-      name = "kdeconnect-kde-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kdeconnect-kde-20.08.3.tar.xz";
+      sha256 = "0x10ga81qlsahavmv356xzjxyds41y2b4v338rqcyqkxvfmxj01k";
+      name = "kdeconnect-kde-20.08.3.tar.xz";
     };
   };
   kde-dev-scripts = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kde-dev-scripts-20.08.2.tar.xz";
-      sha256 = "ff1a819991903b09bef3637b579d215e087310e39b98a1a6928e15f193aec056";
-      name = "kde-dev-scripts-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kde-dev-scripts-20.08.3.tar.xz";
+      sha256 = "0x8ba4mlxx17vk674738xln2dy696b148fa3s87za4yb4jj9gc5n";
+      name = "kde-dev-scripts-20.08.3.tar.xz";
     };
   };
   kde-dev-utils = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kde-dev-utils-20.08.2.tar.xz";
-      sha256 = "21a4a11e102cbbd9fed955720966d7be2f7a615f57c9bf1dfc94ce973d25ffc3";
-      name = "kde-dev-utils-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kde-dev-utils-20.08.3.tar.xz";
+      sha256 = "0k7zb1km89nnqfi2p1mhp6dvwkhmgbcgw89301acag34yy954dvn";
+      name = "kde-dev-utils-20.08.3.tar.xz";
     };
   };
   kdeedu-data = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kdeedu-data-20.08.2.tar.xz";
-      sha256 = "9030c39b92a7500254e8303ce246d2535cd66a203bb96b2670defd5288294ad1";
-      name = "kdeedu-data-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kdeedu-data-20.08.3.tar.xz";
+      sha256 = "1k164h4n8r4yjlll5900fz764lr0qiy3q1fpcpkr8f1n7qs7f797";
+      name = "kdeedu-data-20.08.3.tar.xz";
     };
   };
   kdegraphics-mobipocket = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kdegraphics-mobipocket-20.08.2.tar.xz";
-      sha256 = "8972079756633abe8cbfaa39cdff9d56f89958861e6e418738311bcdc52771a5";
-      name = "kdegraphics-mobipocket-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kdegraphics-mobipocket-20.08.3.tar.xz";
+      sha256 = "0ifxbwn7pmxr7y4ri617a303b27nqwqa418isgfrfk11jc4yyxhq";
+      name = "kdegraphics-mobipocket-20.08.3.tar.xz";
     };
   };
   kdegraphics-thumbnailers = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kdegraphics-thumbnailers-20.08.2.tar.xz";
-      sha256 = "977cf6c40ba00a8a391a951aab80c55d9615927a1ef4a7bb5eea2f6a83373532";
-      name = "kdegraphics-thumbnailers-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kdegraphics-thumbnailers-20.08.3.tar.xz";
+      sha256 = "0mbzkw7pxcfmkpb8ivhahnxkkrkjhmbjqy2l9gqx35gp5855gmxf";
+      name = "kdegraphics-thumbnailers-20.08.3.tar.xz";
     };
   };
   kdenetwork-filesharing = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kdenetwork-filesharing-20.08.2.tar.xz";
-      sha256 = "f909ee8433baf906b6c23af4747d83ae3e151e213585abe01282213012228b3a";
-      name = "kdenetwork-filesharing-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kdenetwork-filesharing-20.08.3.tar.xz";
+      sha256 = "0id19wmiivdrx10r1hwbwi7bx6g1v9g5lpbhlmfrapvy82ijfmbg";
+      name = "kdenetwork-filesharing-20.08.3.tar.xz";
     };
   };
   kdenlive = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kdenlive-20.08.2.tar.xz";
-      sha256 = "535df45a148f0f94271e045ef0c93575fded83da7a2b727aeaf90e61e1d7c418";
-      name = "kdenlive-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kdenlive-20.08.3.tar.xz";
+      sha256 = "187d5khqq9ckmqp8amd7ghlvig1z97w2jzm9s4zsfhjzyqv3d3wz";
+      name = "kdenlive-20.08.3.tar.xz";
     };
   };
   kdepim-addons = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kdepim-addons-20.08.2.tar.xz";
-      sha256 = "f7ab0d9ee2b9351959199f8903c447c6cb82fd58d642b7039cd2b8e324038b01";
-      name = "kdepim-addons-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kdepim-addons-20.08.3.tar.xz";
+      sha256 = "17m8pwiig46pc6x4ylvymb3b6c7xcm2df3vjma665kcir1dr0q7p";
+      name = "kdepim-addons-20.08.3.tar.xz";
     };
   };
   kdepim-apps-libs = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kdepim-apps-libs-20.08.2.tar.xz";
-      sha256 = "8c3ebdf7072d3a5a6ea2921697b28aa27e51ba43db152ea83a07b4b13c282434";
-      name = "kdepim-apps-libs-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kdepim-apps-libs-20.08.3.tar.xz";
+      sha256 = "08iw1p9mv4jic7pk6skxc5anp7k46lhcdqxpq1i6wlhbrk6bpsvg";
+      name = "kdepim-apps-libs-20.08.3.tar.xz";
     };
   };
   kdepim-runtime = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kdepim-runtime-20.08.2.tar.xz";
-      sha256 = "3b475dfd394d5c09991eb4e1f0ddb3e2aa1f586ed75aa7961b159ef712d80132";
-      name = "kdepim-runtime-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kdepim-runtime-20.08.3.tar.xz";
+      sha256 = "0zz2zwq3gr177vgkwz6b70q4n2ra4ym58f167pgvi9kxv3884fib";
+      name = "kdepim-runtime-20.08.3.tar.xz";
     };
   };
   kdesdk-kioslaves = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kdesdk-kioslaves-20.08.2.tar.xz";
-      sha256 = "5e79532675d717d906f6b43eea1cac20fe1513bcf497696251c00fe74e2f0f58";
-      name = "kdesdk-kioslaves-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kdesdk-kioslaves-20.08.3.tar.xz";
+      sha256 = "1kwzms0qha058cm92d4f8pr89r3bqaqx5zfw6gz05s6lg892j5in";
+      name = "kdesdk-kioslaves-20.08.3.tar.xz";
     };
   };
   kdesdk-thumbnailers = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kdesdk-thumbnailers-20.08.2.tar.xz";
-      sha256 = "0b6809e2469d7057b6d674d5950fd4f6243a1d3d185452212522880c714c1c63";
-      name = "kdesdk-thumbnailers-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kdesdk-thumbnailers-20.08.3.tar.xz";
+      sha256 = "10fc0agpvzpqdxqynd70vzya0g1nbdw0ylbnl9w35n9jhww42jff";
+      name = "kdesdk-thumbnailers-20.08.3.tar.xz";
     };
   };
   kdf = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kdf-20.08.2.tar.xz";
-      sha256 = "b33c043c18ae7b80b40e73c0a34759540724fa81815a6afa1e91e3ad44aec27e";
-      name = "kdf-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kdf-20.08.3.tar.xz";
+      sha256 = "02k5nhsf1zzkx9cl3r2500pj2zfmvjhlfsb3smgpka6in7iivxyp";
+      name = "kdf-20.08.3.tar.xz";
     };
   };
   kdialog = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kdialog-20.08.2.tar.xz";
-      sha256 = "1bb808c2d01680e2396f282b798d9e22d2c1722f992c672eaf7451bf83a5d459";
-      name = "kdialog-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kdialog-20.08.3.tar.xz";
+      sha256 = "0knl6176bjazjiacg1qqaldlqcjlb3bi829sliq1sdh4lzzwrbzk";
+      name = "kdialog-20.08.3.tar.xz";
     };
   };
   kdiamond = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kdiamond-20.08.2.tar.xz";
-      sha256 = "7bfc2b24d86c663bff719156ba20cd36017f1df647ee6769b5101aa6ab3e3e21";
-      name = "kdiamond-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kdiamond-20.08.3.tar.xz";
+      sha256 = "0ls1kg3wank1al46knq12jilmp8gaa4rn7zbgflcrhgy5gw8l5px";
+      name = "kdiamond-20.08.3.tar.xz";
     };
   };
   keditbookmarks = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/keditbookmarks-20.08.2.tar.xz";
-      sha256 = "87d72e78c907e7829a642364f3a49dd0f0dea0c76e7a5c524a67f957dca94b9b";
-      name = "keditbookmarks-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/keditbookmarks-20.08.3.tar.xz";
+      sha256 = "0m8ap5hvjgldj9hdk6shpkv8xylhhjla2xn1zs86pvj4la3zh4f8";
+      name = "keditbookmarks-20.08.3.tar.xz";
     };
   };
   kfind = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kfind-20.08.2.tar.xz";
-      sha256 = "2381bbe7793a666fa9463aead1246dc4244409f68375f6d75e1423be15b42d74";
-      name = "kfind-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kfind-20.08.3.tar.xz";
+      sha256 = "10i5mw6q2parq5w7pi955kgfvdlw8hwis2p7r9vkvabjdk69nkdr";
+      name = "kfind-20.08.3.tar.xz";
     };
   };
   kfloppy = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kfloppy-20.08.2.tar.xz";
-      sha256 = "7f624d03dc3dc5099ac1479148800043195fa6c0e3bb6d7efcb452a76e99e191";
-      name = "kfloppy-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kfloppy-20.08.3.tar.xz";
+      sha256 = "1cp0pwgldscc7va508gk43im3fv0lsxd5sbhpw8kxlzjlpbwlp8v";
+      name = "kfloppy-20.08.3.tar.xz";
     };
   };
   kfourinline = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kfourinline-20.08.2.tar.xz";
-      sha256 = "aed2ecdb40b2e3d5452b183a1817216373d32a0aab4eff02f6c823a6f8d801eb";
-      name = "kfourinline-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kfourinline-20.08.3.tar.xz";
+      sha256 = "0h1n44dncr2siw447n7b0gkx3380vajvqjsgjvapkg7m7bmz7nsv";
+      name = "kfourinline-20.08.3.tar.xz";
     };
   };
   kgeography = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kgeography-20.08.2.tar.xz";
-      sha256 = "82c4798f3184c77d0be63aeb5e86c84240c9cb0aa0e66ff57f92c0b5c3748f19";
-      name = "kgeography-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kgeography-20.08.3.tar.xz";
+      sha256 = "1mk5cip55chc8pmh8wfl7an5x076ywisr0i7isqcjaij2cv54283";
+      name = "kgeography-20.08.3.tar.xz";
     };
   };
   kget = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kget-20.08.2.tar.xz";
-      sha256 = "42993095d6325e921b6ed36f4b0a2153ffd5d68cfa3e6d3ced2db09e2a6aabb8";
-      name = "kget-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kget-20.08.3.tar.xz";
+      sha256 = "144ydk8bbfirph464mkkvwpnynj465i2ynhm8n9d330kcrhnaxd0";
+      name = "kget-20.08.3.tar.xz";
     };
   };
   kgoldrunner = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kgoldrunner-20.08.2.tar.xz";
-      sha256 = "4bbcfcf5cf810e0b1f78e1a88d222631c07401187fb327deaa5ab6658483d351";
-      name = "kgoldrunner-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kgoldrunner-20.08.3.tar.xz";
+      sha256 = "101cdl04wb6xbq95b51ax36570y9ahkcy5gccqsyvc307ij9yg7r";
+      name = "kgoldrunner-20.08.3.tar.xz";
     };
   };
   kgpg = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kgpg-20.08.2.tar.xz";
-      sha256 = "fc4ec5c38c3bdb02a399f0eb1e75da356a523ada369d5410c2f4e7f5f14a508f";
-      name = "kgpg-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kgpg-20.08.3.tar.xz";
+      sha256 = "1ip21yal37yxg5i5sfy6lgfb3sz9lld0dwa7a1w4lbddf9w3akd6";
+      name = "kgpg-20.08.3.tar.xz";
     };
   };
   khangman = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/khangman-20.08.2.tar.xz";
-      sha256 = "7ff30ecbab7c9e8f44b7e8c3887ec78a918c919ce902005aeb7fb969ac995b28";
-      name = "khangman-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/khangman-20.08.3.tar.xz";
+      sha256 = "1zwdd2gpjkld3vkawp0lj83il257ryxf8wpmbgzn1wz8sxxi01jj";
+      name = "khangman-20.08.3.tar.xz";
     };
   };
   khelpcenter = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/khelpcenter-20.08.2.tar.xz";
-      sha256 = "36051a4352a05dd9b74b4e325c0e16e30d6bd8b48d6c3d13980b39a77aab4e2d";
-      name = "khelpcenter-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/khelpcenter-20.08.3.tar.xz";
+      sha256 = "1xan4awwgs08k7ksfy80rfcxqd6bi8i1fjdgy55hh7wshv76zf5r";
+      name = "khelpcenter-20.08.3.tar.xz";
     };
   };
   kidentitymanagement = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kidentitymanagement-20.08.2.tar.xz";
-      sha256 = "17a1fd47d91289519cafb12c0d917b4775496ada447cb6f4ba56dc42446152ec";
-      name = "kidentitymanagement-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kidentitymanagement-20.08.3.tar.xz";
+      sha256 = "0vkydvf4yw3qlqrg9m1zdm6j0c1crxdvc7l24yls9fjbj957vbls";
+      name = "kidentitymanagement-20.08.3.tar.xz";
     };
   };
   kig = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kig-20.08.2.tar.xz";
-      sha256 = "401832d384e47ea6daf310f7e823ae6b8a55bc117b7570bd4bf36261d01587f5";
-      name = "kig-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kig-20.08.3.tar.xz";
+      sha256 = "1dvizdfkvl7p7hr4xm4zh51lpr8qr3s5j5zz162s7arr7sws4w8h";
+      name = "kig-20.08.3.tar.xz";
     };
   };
   kigo = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kigo-20.08.2.tar.xz";
-      sha256 = "b9e6edd2e35e57edb3d89bb76f1d7e4a9e7f8fb64644b58012543a367834aa60";
-      name = "kigo-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kigo-20.08.3.tar.xz";
+      sha256 = "0sx3klivzn8h96mpnbkiv2nbi2l6w0j6fclj7q3ql3cm81jh6n15";
+      name = "kigo-20.08.3.tar.xz";
     };
   };
   killbots = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/killbots-20.08.2.tar.xz";
-      sha256 = "332ebd24be6ea62c8621aeaa5b200d6ebf03ae0198a06693b36b2c80cac89d95";
-      name = "killbots-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/killbots-20.08.3.tar.xz";
+      sha256 = "1j41my0brpqpvd8xibv39z4x4kmw1sqz7wy7ibhh0zir3jh64n83";
+      name = "killbots-20.08.3.tar.xz";
     };
   };
   kimagemapeditor = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kimagemapeditor-20.08.2.tar.xz";
-      sha256 = "fd8272978a7c3a1d95b20a5ec57ccf00d740a8d6eb483f0a204d03669215309c";
-      name = "kimagemapeditor-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kimagemapeditor-20.08.3.tar.xz";
+      sha256 = "1m9mrksdl08ijmpmx3lhdysnm70mrnqz9rlbcn1h95p2sq0bk8cg";
+      name = "kimagemapeditor-20.08.3.tar.xz";
     };
   };
   kimap = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kimap-20.08.2.tar.xz";
-      sha256 = "bda4f4b4e94481b70cec270655c0fd2888da51106d80c0388ae5c0dc5d36e092";
-      name = "kimap-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kimap-20.08.3.tar.xz";
+      sha256 = "16paglkqgnyzwjydhn02qw7zg0d4casir4bsfch15wdmqv389mrg";
+      name = "kimap-20.08.3.tar.xz";
     };
   };
   kio-extras = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kio-extras-20.08.2.tar.xz";
-      sha256 = "9d4b9cb5a4002ad2127c5c5c4d25ff95d53de32ea08348e8dc40fe83d950076e";
-      name = "kio-extras-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kio-extras-20.08.3.tar.xz";
+      sha256 = "0i7k9asc97r9z4lfk5hyf7mcbx0za7j6v4dhqn43j5v4x2i0201c";
+      name = "kio-extras-20.08.3.tar.xz";
     };
   };
   kio-gdrive = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kio-gdrive-20.08.2.tar.xz";
-      sha256 = "71047e9f8e5ad9317cc3dbf1de2d121f322b5d968d3685351ef0d2aabe2f46ca";
-      name = "kio-gdrive-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kio-gdrive-20.08.3.tar.xz";
+      sha256 = "0pp0nvsnfdm8vskw194qjfac4agnlsjm44w1704b5sqx6i27dafy";
+      name = "kio-gdrive-20.08.3.tar.xz";
     };
   };
   kipi-plugins = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kipi-plugins-20.08.2.tar.xz";
-      sha256 = "89de8f75dd01e2130c1e651bd04717ce4d35768202ae3e825c93c75c8312e583";
-      name = "kipi-plugins-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kipi-plugins-20.08.3.tar.xz";
+      sha256 = "1pplhv8yjfl1ifx9ykf4w2lgma8jvshihmd5c5mz9liqk3lawq15";
+      name = "kipi-plugins-20.08.3.tar.xz";
     };
   };
   kirigami-gallery = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kirigami-gallery-20.08.2.tar.xz";
-      sha256 = "0b4a5cec32bdfaef42b790f1d249d227c9daf56e0f3c1e302d33ccaa485c28e5";
-      name = "kirigami-gallery-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kirigami-gallery-20.08.3.tar.xz";
+      sha256 = "0l100ng8ai55s0vl8nkpq4vysy2nc6sk1dbisc2mp7br74ykyfp9";
+      name = "kirigami-gallery-20.08.3.tar.xz";
     };
   };
   kiriki = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kiriki-20.08.2.tar.xz";
-      sha256 = "42081e39c045bd830c6a79938a83690ea5641aa9e5437645234441da2d29b053";
-      name = "kiriki-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kiriki-20.08.3.tar.xz";
+      sha256 = "1gddjii84cbz1dg8k0pnd3dyzar4lvj03j9v84vabggjjjbpir0f";
+      name = "kiriki-20.08.3.tar.xz";
     };
   };
   kiten = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kiten-20.08.2.tar.xz";
-      sha256 = "a7285d5880611da2202d0e3f8f2bf860f275932d3da54ff7aecc793225f7ad7d";
-      name = "kiten-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kiten-20.08.3.tar.xz";
+      sha256 = "0n9mq86gcl6s2f45l8lbp4gsdj356l78xjkdvm14f6qlh81vsqlc";
+      name = "kiten-20.08.3.tar.xz";
     };
   };
   kitinerary = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kitinerary-20.08.2.tar.xz";
-      sha256 = "69d8b5f64774860e5098c1dbfb06d274da4379c04383c4f0f0e412481c48fa27";
-      name = "kitinerary-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kitinerary-20.08.3.tar.xz";
+      sha256 = "169pmy5fyjkbya8r2kdkd9s83sim0jplc3lx8bv2xh6r10mvzgm6";
+      name = "kitinerary-20.08.3.tar.xz";
     };
   };
   kjumpingcube = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kjumpingcube-20.08.2.tar.xz";
-      sha256 = "0edba227e24b8aeda4e75bc6c25ad25b50ac624b5319a64ce20d6c3f7691a48a";
-      name = "kjumpingcube-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kjumpingcube-20.08.3.tar.xz";
+      sha256 = "19246jwwd686x8i0jrvz2c8mpkf6qhm7rnskzin59dqzr76xrpgz";
+      name = "kjumpingcube-20.08.3.tar.xz";
     };
   };
   kldap = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kldap-20.08.2.tar.xz";
-      sha256 = "dfc8bd59d837766e741b33cf8486256b7bd5ffc33ff2aab240d47b4766ec8489";
-      name = "kldap-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kldap-20.08.3.tar.xz";
+      sha256 = "1ihaazsnb9r30m2qhzcp2ns9f5fs7l3agsc9f9wxi4cyw73bq0n3";
+      name = "kldap-20.08.3.tar.xz";
     };
   };
   kleopatra = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kleopatra-20.08.2.tar.xz";
-      sha256 = "70ffa2d1549b6b4674a9cd92052174002d81fb236cfbf872187c6e3616191ba2";
-      name = "kleopatra-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kleopatra-20.08.3.tar.xz";
+      sha256 = "1r879g7hw3c5cww58z0kvqj47pgzbiq1vpgxz847smrylqajcpyi";
+      name = "kleopatra-20.08.3.tar.xz";
     };
   };
   klettres = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/klettres-20.08.2.tar.xz";
-      sha256 = "9cef7dea479d27644e4812157d4cf3993dc3ee84b847377a17cec305a03a3156";
-      name = "klettres-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/klettres-20.08.3.tar.xz";
+      sha256 = "0irc0f7vjznlsczan30zzprbnvgnbg19vabr97cw9rkkfa28azx9";
+      name = "klettres-20.08.3.tar.xz";
     };
   };
   klickety = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/klickety-20.08.2.tar.xz";
-      sha256 = "90665c5aeda52f55af8dcf3936e557ba431d9e48c6be361eaeb82117b6213a33";
-      name = "klickety-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/klickety-20.08.3.tar.xz";
+      sha256 = "1qsm9grmy0bnalpdghg48xi68zzk6ysmg6n0d74ldmmnirv3r0zf";
+      name = "klickety-20.08.3.tar.xz";
     };
   };
   klines = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/klines-20.08.2.tar.xz";
-      sha256 = "8e8b897cdc3c31fada1dd2635da211def507f47c8062c6458f559283ae470edb";
-      name = "klines-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/klines-20.08.3.tar.xz";
+      sha256 = "1l95ph1sjp3r1q065k3rj18lm36krl7bh41zgqh021p692ywc48c";
+      name = "klines-20.08.3.tar.xz";
     };
   };
   kmag = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kmag-20.08.2.tar.xz";
-      sha256 = "8e933e8ebbf0ab956e2a251312e3d4e027848dc2f2b4e8a7c7250b8fdf10ca05";
-      name = "kmag-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kmag-20.08.3.tar.xz";
+      sha256 = "0y44gz3qn91vl840xz25l5kc5jj82k5qqxkgsvvyld2s99rif84k";
+      name = "kmag-20.08.3.tar.xz";
     };
   };
   kmahjongg = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kmahjongg-20.08.2.tar.xz";
-      sha256 = "98e34794560a062bd22950acc583b77a6f8d1d28aceb863604f5a6c98c6cc80d";
-      name = "kmahjongg-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kmahjongg-20.08.3.tar.xz";
+      sha256 = "0wgp9m7xzf5ysmrrnyng4p4jypvzfnqkyw62gknl0qhk531cgq3h";
+      name = "kmahjongg-20.08.3.tar.xz";
     };
   };
   kmail = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kmail-20.08.2.tar.xz";
-      sha256 = "ff179b89836236174cd587ce4ea2a4320e58345d45582cb157186cfbb01e58f2";
-      name = "kmail-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kmail-20.08.3.tar.xz";
+      sha256 = "0g59s7wl0n4bp8kw559rdlamlqxl47qvwfms9kr9ign35rvs0ghg";
+      name = "kmail-20.08.3.tar.xz";
     };
   };
   kmail-account-wizard = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kmail-account-wizard-20.08.2.tar.xz";
-      sha256 = "7cdb9b60b1a646f0c5c0d0e7dfbe357a9f66bb305afbccbb4b421ee6f6941df8";
-      name = "kmail-account-wizard-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kmail-account-wizard-20.08.3.tar.xz";
+      sha256 = "0vama5a02dfgxrl4iz88lbi8dvq3d9b055xil770d90pwp0sljcz";
+      name = "kmail-account-wizard-20.08.3.tar.xz";
     };
   };
   kmailtransport = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kmailtransport-20.08.2.tar.xz";
-      sha256 = "8b12836b1ca0243819680cba73c809c491c5e7a8d1ea9d9dc23e7338aed69a0c";
-      name = "kmailtransport-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kmailtransport-20.08.3.tar.xz";
+      sha256 = "07552qj3ngwvyss7f8cy87c0gmzc47agn54wk85qq0v1fwr73n6z";
+      name = "kmailtransport-20.08.3.tar.xz";
     };
   };
   kmbox = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kmbox-20.08.2.tar.xz";
-      sha256 = "4fa1ad98368130dcdc8ad71dba3084c489130b1e8fc4a2b119ffc6f56595ba73";
-      name = "kmbox-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kmbox-20.08.3.tar.xz";
+      sha256 = "0ipmwcicn3qklybqy9v41lh7byn7j62ja8b0xf06z9nliwkk4b0b";
+      name = "kmbox-20.08.3.tar.xz";
     };
   };
   kmime = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kmime-20.08.2.tar.xz";
-      sha256 = "9f23e2814e62ae6c4a67fd3223315ef875776f9d098b4d11c7d06a726a725435";
-      name = "kmime-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kmime-20.08.3.tar.xz";
+      sha256 = "1ndbx712vm4v0fi7p8j28d8z35h3bmsixc97z5r9dg03v1kzd36v";
+      name = "kmime-20.08.3.tar.xz";
     };
   };
   kmines = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kmines-20.08.2.tar.xz";
-      sha256 = "6b07a812497a665505b6b1e3a84ac0818f1a5e5757146cdbceec55e94bb41753";
-      name = "kmines-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kmines-20.08.3.tar.xz";
+      sha256 = "1mn5hip3vnzmkk1hy14glsplp7f5pm56yv0d5mz25icfgw0xa6lp";
+      name = "kmines-20.08.3.tar.xz";
     };
   };
   kmix = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kmix-20.08.2.tar.xz";
-      sha256 = "73453f02a72384382fd7449215189e22b5e1600e9ef0c9cc910f3fddd09beb85";
-      name = "kmix-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kmix-20.08.3.tar.xz";
+      sha256 = "00gm93faqmqx0hhkxi3k2pn6sq82k2f622vqgk7mwznkpg66mf4k";
+      name = "kmix-20.08.3.tar.xz";
     };
   };
   kmousetool = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kmousetool-20.08.2.tar.xz";
-      sha256 = "c1f70c172dc2ad7d937db5e6355522082f924ba45e7aac1bbb1c04e230f1d406";
-      name = "kmousetool-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kmousetool-20.08.3.tar.xz";
+      sha256 = "09qznykysr42rzz5cmqvhvz91cr8dbzwjd73hwaib2lfs3c2cgbl";
+      name = "kmousetool-20.08.3.tar.xz";
     };
   };
   kmouth = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kmouth-20.08.2.tar.xz";
-      sha256 = "d206afecdbe5f063dfbf805956f475e95c7b0fd548fd5f1b4fd7376ea6747e96";
-      name = "kmouth-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kmouth-20.08.3.tar.xz";
+      sha256 = "0ajhnl1sjllfb42nyafpirmlgcs6waqp8qxvgsz5dk5zkb8daqmr";
+      name = "kmouth-20.08.3.tar.xz";
     };
   };
   kmplot = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kmplot-20.08.2.tar.xz";
-      sha256 = "c3bc34a2d1bf4620745009b49b6541a16ac64eb3d1e6cf1ba936b14aa5d02e2b";
-      name = "kmplot-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kmplot-20.08.3.tar.xz";
+      sha256 = "0cv7q1wmbb3fkf4s6ns4q1il5zr4q02b3xghpp661ma82d8jhjcy";
+      name = "kmplot-20.08.3.tar.xz";
     };
   };
   knavalbattle = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/knavalbattle-20.08.2.tar.xz";
-      sha256 = "2cd91ee61193810eee62e47f38f590e81b03287083f31564e0ebfd893d339ac9";
-      name = "knavalbattle-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/knavalbattle-20.08.3.tar.xz";
+      sha256 = "1028i8zl5ynm3vvqajsms2hq8gmmjmjc5dc6r3jyh6r964vxq3nq";
+      name = "knavalbattle-20.08.3.tar.xz";
     };
   };
   knetwalk = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/knetwalk-20.08.2.tar.xz";
-      sha256 = "4a97f4b1af463e5e50698e8ac089cf6933fb66f25dd9b0fae3f1b1a51cbca3c0";
-      name = "knetwalk-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/knetwalk-20.08.3.tar.xz";
+      sha256 = "13pspvi2p68irpbr3f2ck78qmvfl3vahm5qjw2fwhidhpindf9nl";
+      name = "knetwalk-20.08.3.tar.xz";
     };
   };
   knights = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/knights-20.08.2.tar.xz";
-      sha256 = "b62dda6e8b5bb85cc814f7244e39806e38c266be1bf3090eb6de59c8141fc1d4";
-      name = "knights-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/knights-20.08.3.tar.xz";
+      sha256 = "0zqb87mr2x085hi3r9cvdrx2kvxmclh4ffi1ajcb8v1f79wiwzin";
+      name = "knights-20.08.3.tar.xz";
     };
   };
   knotes = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/knotes-20.08.2.tar.xz";
-      sha256 = "1e61f2c8b5fe9075f07be16543e3a7310bf533b6c2446f162f7196b41e3e6ecb";
-      name = "knotes-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/knotes-20.08.3.tar.xz";
+      sha256 = "0ysw8js2s6njilg4v4vqrl1bzcmqvk42l68pzvyflr112zviqz28";
+      name = "knotes-20.08.3.tar.xz";
     };
   };
   kolf = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kolf-20.08.2.tar.xz";
-      sha256 = "834c1c6cdc62e650c7b0d36db26387cc4ebe2bb4b2e8fa06c0bf461e3a1e8c64";
-      name = "kolf-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kolf-20.08.3.tar.xz";
+      sha256 = "1ywyny8iq2sxglsvpgw6p3w3w567k6cw6waywfcfy0lcnfarg1n0";
+      name = "kolf-20.08.3.tar.xz";
     };
   };
   kollision = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kollision-20.08.2.tar.xz";
-      sha256 = "9b6829f49d9baa89596ef8649996724db72c3c8eb793b9b6afc80dc0d07c0421";
-      name = "kollision-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kollision-20.08.3.tar.xz";
+      sha256 = "1l8a32bni40jz5jna0ip9ggbx7zp1hhiw2mip7v8f6qc4arbknl8";
+      name = "kollision-20.08.3.tar.xz";
     };
   };
   kolourpaint = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kolourpaint-20.08.2.tar.xz";
-      sha256 = "fbcd875a4a407d9b1e5a637d4947bacfb50f39e10af3327f30fdbb953528aae0";
-      name = "kolourpaint-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kolourpaint-20.08.3.tar.xz";
+      sha256 = "0d64gnnb553rxscr8710h5bx8ijxd87jrbix07k41y79i5x60irh";
+      name = "kolourpaint-20.08.3.tar.xz";
     };
   };
   kompare = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kompare-20.08.2.tar.xz";
-      sha256 = "4e52cb2c9e35e90fe77bfb23bd10c1931c56b11e3fec06c215730d60c47e8550";
-      name = "kompare-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kompare-20.08.3.tar.xz";
+      sha256 = "0r9m2vcw9hbdkfdy24pfpqs2b5r0jyxh1ma2h66hfv4ycd470ilc";
+      name = "kompare-20.08.3.tar.xz";
     };
   };
   konqueror = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/konqueror-20.08.2.tar.xz";
-      sha256 = "f0622aa67ad0028e28bd6129688aab8946fb49492f0b335f6624ab7d4ef239d7";
-      name = "konqueror-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/konqueror-20.08.3.tar.xz";
+      sha256 = "1ssjj83jcbcq8i7wx5zd12z7crh2zg6awbpy38maq3c7747nqz7k";
+      name = "konqueror-20.08.3.tar.xz";
     };
   };
   konquest = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/konquest-20.08.2.tar.xz";
-      sha256 = "cf97a6961b15b39f5bcdf541e52c137f1d67d0fa5ee259922b4e762edc4491eb";
-      name = "konquest-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/konquest-20.08.3.tar.xz";
+      sha256 = "1wq0j02dzdah6yhx8r2cg191617hid9fs780yr317fprkwkgb8cb";
+      name = "konquest-20.08.3.tar.xz";
     };
   };
   konsole = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/konsole-20.08.2.tar.xz";
-      sha256 = "af08ac7666f1ba7c407205f32aaaf015329621247502e80d8df4abe103148951";
-      name = "konsole-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/konsole-20.08.3.tar.xz";
+      sha256 = "0jjidy756x8n456qbm977a73l8229kk8i489jh52296k8pkh6yjx";
+      name = "konsole-20.08.3.tar.xz";
     };
   };
   kontact = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kontact-20.08.2.tar.xz";
-      sha256 = "232d9880df74ce0c7697f08b53ef9512ac9c11c3b04142ba7ba4b95091cb5396";
-      name = "kontact-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kontact-20.08.3.tar.xz";
+      sha256 = "0qasgxvq7xps0zxk4hf2sizmy90mxyq70m2pq49pq17ij2pa9ynl";
+      name = "kontact-20.08.3.tar.xz";
     };
   };
   kontactinterface = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kontactinterface-20.08.2.tar.xz";
-      sha256 = "72d53dbea9db0b1f5654e13c18b4da3d256c6b9d08dfe4581cdf73e3552d2a07";
-      name = "kontactinterface-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kontactinterface-20.08.3.tar.xz";
+      sha256 = "1ah2814js08sm49ykarqdw7z03w4fbym5cc4vwmzimcvh2bc78j3";
+      name = "kontactinterface-20.08.3.tar.xz";
     };
   };
   kopete = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kopete-20.08.2.tar.xz";
-      sha256 = "05f5d6236d4c96b9ce7ba5f24f4e06d7263a78cac27368a7e6b3e5075d42fbb1";
-      name = "kopete-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kopete-20.08.3.tar.xz";
+      sha256 = "1lsab66k0xq1g0w0cxcpadmf9kkc09x8wwbv4i8y3aj2mn7849gh";
+      name = "kopete-20.08.3.tar.xz";
     };
   };
   korganizer = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/korganizer-20.08.2.tar.xz";
-      sha256 = "4f719ec12c52fc313997a187439dc6888fd030a4a1b2357db000abc0a19527b2";
-      name = "korganizer-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/korganizer-20.08.3.tar.xz";
+      sha256 = "112h6vn2y9d3q3z62cwg3zrak3xgx9affibc9cvr6fzhp4z0x9ps";
+      name = "korganizer-20.08.3.tar.xz";
     };
   };
   kpat = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kpat-20.08.2.tar.xz";
-      sha256 = "e4aaed4e876212a926a05d252dab9d01f240d829e383c6072e168a4f78e6d446";
-      name = "kpat-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kpat-20.08.3.tar.xz";
+      sha256 = "1id4b9jkphi8pp29gc2vb3n9f0g8kl9yy5v8cnyv3jq673aj0fs9";
+      name = "kpat-20.08.3.tar.xz";
     };
   };
   kpimtextedit = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kpimtextedit-20.08.2.tar.xz";
-      sha256 = "2dfbcdd53669c812234346b4d31b61af9c510bb4cb0b9912decea8d3c4d406a6";
-      name = "kpimtextedit-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kpimtextedit-20.08.3.tar.xz";
+      sha256 = "1m4r5zbhbjvj3za78xfp3dibyf7mp9gan5ir5zd0k2p7adp3i652";
+      name = "kpimtextedit-20.08.3.tar.xz";
     };
   };
   kpkpass = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kpkpass-20.08.2.tar.xz";
-      sha256 = "ed699c75128ef299f06d699c80c69ac9529fa044db6f18a39d54a5e70d85108c";
-      name = "kpkpass-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kpkpass-20.08.3.tar.xz";
+      sha256 = "0zw3xx5mi38za0xbvld97f5bqvwwgyz47kybyrdm7jrhvmmiiiis";
+      name = "kpkpass-20.08.3.tar.xz";
     };
   };
   kqtquickcharts = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kqtquickcharts-20.08.2.tar.xz";
-      sha256 = "2ba593a65c143cb56a3030f7ee0cced2df7c7e9431cebf1ae93be51c68b4c3b4";
-      name = "kqtquickcharts-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kqtquickcharts-20.08.3.tar.xz";
+      sha256 = "0l7v8vrc7by0w0yshnh21jaqhspmhkvm5cd0hpay6jc9v2azkcf3";
+      name = "kqtquickcharts-20.08.3.tar.xz";
     };
   };
   krdc = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/krdc-20.08.2.tar.xz";
-      sha256 = "52ddd68bdb1b356be341cf3bc5405cb965f4e4f3da8bf4b28bfb62c7db21ac5f";
-      name = "krdc-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/krdc-20.08.3.tar.xz";
+      sha256 = "1g9lxdldljh5a2s4g7g9b98lij168l99ah0vr6nvdl53n35pfr8n";
+      name = "krdc-20.08.3.tar.xz";
     };
   };
   kreversi = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kreversi-20.08.2.tar.xz";
-      sha256 = "22824dca9c8f07145a6fd9b7386867d8a8efff0fda6752f377230381a1cc71c2";
-      name = "kreversi-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kreversi-20.08.3.tar.xz";
+      sha256 = "0d3y072q61xcik9lf0pz0c9njvarwlvf6hqv5fp5jyqaf2902pmi";
+      name = "kreversi-20.08.3.tar.xz";
     };
   };
   krfb = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/krfb-20.08.2.tar.xz";
-      sha256 = "5e90fb4f3bcf2c48b15ec33634d61464323ab5ce1c156a499f089d862dd041d4";
-      name = "krfb-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/krfb-20.08.3.tar.xz";
+      sha256 = "13nypbcdhh53wq72w59z5q46a09g1w4yyi1pmsjwa8r7jnk8cafk";
+      name = "krfb-20.08.3.tar.xz";
     };
   };
   kross-interpreters = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kross-interpreters-20.08.2.tar.xz";
-      sha256 = "82da0302d2d292e86fa924c8bd1d4effb21f763c42c57affaddeff4777c43951";
-      name = "kross-interpreters-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kross-interpreters-20.08.3.tar.xz";
+      sha256 = "0mr5vpbbcv66s6dyrrypy1ai6ba744z8cn4r0iwys35p6am075qj";
+      name = "kross-interpreters-20.08.3.tar.xz";
     };
   };
   kruler = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kruler-20.08.2.tar.xz";
-      sha256 = "ede45d9cdf1b514fb20ed3a97877689ec75904438b94735706eb638ba01ca778";
-      name = "kruler-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kruler-20.08.3.tar.xz";
+      sha256 = "1vhl8acccdqfdj7lci8r2mig9qf1js4f8v7b4fqljpnc3gdg8749";
+      name = "kruler-20.08.3.tar.xz";
     };
   };
   kshisen = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kshisen-20.08.2.tar.xz";
-      sha256 = "d11030b101a409324661adf664d4298f34cc320abff80dba72d112cc3ae2d25d";
-      name = "kshisen-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kshisen-20.08.3.tar.xz";
+      sha256 = "1vy8qh8s60a4ikyw3sh4cbr3p3fk35d4dwdqc263gn4skyrsb1l9";
+      name = "kshisen-20.08.3.tar.xz";
     };
   };
   ksirk = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/ksirk-20.08.2.tar.xz";
-      sha256 = "b7766f0976b3cc112d4c599d91c07d321829c9b1e8ef34d3d21ec4964026854a";
-      name = "ksirk-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/ksirk-20.08.3.tar.xz";
+      sha256 = "1kxc1b05r8x6pvaiwpvjpgrr88qkm5qs4d3s1ym8rki60c724qpl";
+      name = "ksirk-20.08.3.tar.xz";
     };
   };
   ksmtp = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/ksmtp-20.08.2.tar.xz";
-      sha256 = "5f51e0c025b192719709ae763feeac94df893007b62b5a69b7b95ae9f2fdd8ee";
-      name = "ksmtp-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/ksmtp-20.08.3.tar.xz";
+      sha256 = "1p9clzvmsym2fijwvs3s0zqx57bk82mlks52j5ni3il6lvklaayc";
+      name = "ksmtp-20.08.3.tar.xz";
     };
   };
   ksnakeduel = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/ksnakeduel-20.08.2.tar.xz";
-      sha256 = "b6f0f51f8fad795cd134f9426b1f1ba8ccceb72e304e8ba55e60af471ad282cc";
-      name = "ksnakeduel-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/ksnakeduel-20.08.3.tar.xz";
+      sha256 = "03ydbwknn20gadjpwcw0z8zw777hgj8j10w4gvp2dwpb07rdg1pn";
+      name = "ksnakeduel-20.08.3.tar.xz";
     };
   };
   kspaceduel = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kspaceduel-20.08.2.tar.xz";
-      sha256 = "62b9526c031662c049aa90b06ed3e5e2ce8ae774f271e1f29430f23c1f6cd787";
-      name = "kspaceduel-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kspaceduel-20.08.3.tar.xz";
+      sha256 = "1ii3lnxd11d3ihl8j1abh9qn9q0qq8ra9hbrwjs5df2kk36bnirj";
+      name = "kspaceduel-20.08.3.tar.xz";
     };
   };
   ksquares = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/ksquares-20.08.2.tar.xz";
-      sha256 = "e1f9fdfa9a4a8348a65e66d48b7389784a1db6c8799cea453d6da3a2a57aca59";
-      name = "ksquares-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/ksquares-20.08.3.tar.xz";
+      sha256 = "1ch7lbylzb9ngdzvpzqq5f30gkm2l4rzk6iqa8xm53rawr7jjqcy";
+      name = "ksquares-20.08.3.tar.xz";
     };
   };
   ksudoku = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/ksudoku-20.08.2.tar.xz";
-      sha256 = "6fed393f734eb27d6c36ad7516bf29ff648d319f08d9f8bdc17a8030842d8e33";
-      name = "ksudoku-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/ksudoku-20.08.3.tar.xz";
+      sha256 = "0hnqbd3krxi3zwj8p4n9ydhwfwhw8wljhjdfv0llv0nhj1wb89p9";
+      name = "ksudoku-20.08.3.tar.xz";
     };
   };
   ksystemlog = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/ksystemlog-20.08.2.tar.xz";
-      sha256 = "63c6a520b63f148de2e3996250a2fef22e1a3ce18e744a699ae21de96a2c4e53";
-      name = "ksystemlog-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/ksystemlog-20.08.3.tar.xz";
+      sha256 = "11fc2mn4hkcibpxp7s2gihpp05yix7ws84a0bm6vjiqlidmrk192";
+      name = "ksystemlog-20.08.3.tar.xz";
     };
   };
   kteatime = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kteatime-20.08.2.tar.xz";
-      sha256 = "d8e69fdb124e8689c72e4b9fe39226cc49b1ca990478fbb68e02b37f0cd861ac";
-      name = "kteatime-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kteatime-20.08.3.tar.xz";
+      sha256 = "1vj738s2a7nnrvxi847mdmn1vg79kh9k8gqaflcwnvyxanf6n4f7";
+      name = "kteatime-20.08.3.tar.xz";
     };
   };
   ktimer = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/ktimer-20.08.2.tar.xz";
-      sha256 = "69293b7296643c6543d0646d14f9c75479f29f129924258957a407b77539a4c2";
-      name = "ktimer-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/ktimer-20.08.3.tar.xz";
+      sha256 = "1rc1z93s24b7p2ixr4xbpg0sj8ls90gzfijwj9f8b0lrwd905ysv";
+      name = "ktimer-20.08.3.tar.xz";
     };
   };
   ktnef = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/ktnef-20.08.2.tar.xz";
-      sha256 = "ab73736e386c2b52a14fb56f1184479ed1c83c0571e9e8518d2b94b1dcd2e47d";
-      name = "ktnef-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/ktnef-20.08.3.tar.xz";
+      sha256 = "1lj93sqyi522k91jiyf7d26vx5sgn5njhyaf8plsfz5rj82dw1m4";
+      name = "ktnef-20.08.3.tar.xz";
     };
   };
   ktouch = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/ktouch-20.08.2.tar.xz";
-      sha256 = "1b073a92343c9a2c772cfaac4e9fa7b6e85750586e3a57da413e33cdba34b5f4";
-      name = "ktouch-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/ktouch-20.08.3.tar.xz";
+      sha256 = "1ssxd7f75866rn5k192bnm016d8674q13ibcgmaxqsmr7wqkyd39";
+      name = "ktouch-20.08.3.tar.xz";
     };
   };
   ktp-accounts-kcm = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/ktp-accounts-kcm-20.08.2.tar.xz";
-      sha256 = "df709ee612ff4c71a43197762b8a9d296b5a43f6e0afe4d9c8d0bd88eef81465";
-      name = "ktp-accounts-kcm-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/ktp-accounts-kcm-20.08.3.tar.xz";
+      sha256 = "0039svbzx7fphyk6cw4hb8k4h7l6q31pbwvp6pvls450rycz8i8y";
+      name = "ktp-accounts-kcm-20.08.3.tar.xz";
     };
   };
   ktp-approver = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/ktp-approver-20.08.2.tar.xz";
-      sha256 = "054db02db679d0a4600632700cdd57cae539159a0a8f01f479ea337d33d8a6bd";
-      name = "ktp-approver-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/ktp-approver-20.08.3.tar.xz";
+      sha256 = "1kqsdw7vkcd0ka98y2r7qz7dp5hsrr2m8k1xlh3gpj7fdxpla2bh";
+      name = "ktp-approver-20.08.3.tar.xz";
     };
   };
   ktp-auth-handler = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/ktp-auth-handler-20.08.2.tar.xz";
-      sha256 = "a61557efa800d42fd8ed14efdb09d43310212976d737a4fd5272f502bacbc371";
-      name = "ktp-auth-handler-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/ktp-auth-handler-20.08.3.tar.xz";
+      sha256 = "0wbhg458ysipwma8sygimasq71sbrzmx3vwqi51ai8y5hwrx04j4";
+      name = "ktp-auth-handler-20.08.3.tar.xz";
     };
   };
   ktp-call-ui = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/ktp-call-ui-20.08.2.tar.xz";
-      sha256 = "ecd38d8b9f24cf620b8c9c1935328af3142199c6aa87e69c734e43096e492ac5";
-      name = "ktp-call-ui-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/ktp-call-ui-20.08.3.tar.xz";
+      sha256 = "1fh8bz9kc6f8v28x12xp3vw19swgcq07zyjzhd6qcnwf1bv6gl7i";
+      name = "ktp-call-ui-20.08.3.tar.xz";
     };
   };
   ktp-common-internals = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/ktp-common-internals-20.08.2.tar.xz";
-      sha256 = "807fcd6f9c415a0799057435f997e143e9584a94577f9afaa7fcc6a4197e7cb0";
-      name = "ktp-common-internals-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/ktp-common-internals-20.08.3.tar.xz";
+      sha256 = "193yx4g1fwlwysy5scb7m24wqmvwmfyyb9sv7arw7zn5czlg480z";
+      name = "ktp-common-internals-20.08.3.tar.xz";
     };
   };
   ktp-contact-list = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/ktp-contact-list-20.08.2.tar.xz";
-      sha256 = "214d73532dc855a8a4b68730adf5cbd046aae89f2ee2ad5d9a4c25b4eff6acb0";
-      name = "ktp-contact-list-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/ktp-contact-list-20.08.3.tar.xz";
+      sha256 = "0093z17r1xqlb1zlgxfayrnrkyl8zmnnasfd8i97dx712wmbbxxa";
+      name = "ktp-contact-list-20.08.3.tar.xz";
     };
   };
   ktp-contact-runner = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/ktp-contact-runner-20.08.2.tar.xz";
-      sha256 = "8e40e4ab7ce2c1c382b109a15f88f5e1c7d147c76ed36ca05ef6d9f3f58d3d45";
-      name = "ktp-contact-runner-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/ktp-contact-runner-20.08.3.tar.xz";
+      sha256 = "063jylnq3gm0s0jh1xs6b591a161sb6gdi840l40mqlhhg7i8x55";
+      name = "ktp-contact-runner-20.08.3.tar.xz";
     };
   };
   ktp-desktop-applets = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/ktp-desktop-applets-20.08.2.tar.xz";
-      sha256 = "b0884360be80f89dee3852b023055220e3cdab2f422cc3812eda31169fba6298";
-      name = "ktp-desktop-applets-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/ktp-desktop-applets-20.08.3.tar.xz";
+      sha256 = "1i69qzfa455phjnd5ycflyggcbq7ycn2cc7a3ni5195isjzq6r6s";
+      name = "ktp-desktop-applets-20.08.3.tar.xz";
     };
   };
   ktp-filetransfer-handler = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/ktp-filetransfer-handler-20.08.2.tar.xz";
-      sha256 = "c2ec5fd2a5746dd8ce1371c503c51feee206d8dfe7ca8cdaa71b8e925636a97c";
-      name = "ktp-filetransfer-handler-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/ktp-filetransfer-handler-20.08.3.tar.xz";
+      sha256 = "0a26ziacl3fkd0a0h1579jnwjzjlsz0zymj9k4da4sb60zad5y72";
+      name = "ktp-filetransfer-handler-20.08.3.tar.xz";
     };
   };
   ktp-kded-module = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/ktp-kded-module-20.08.2.tar.xz";
-      sha256 = "307285b2d4e04c244691a6f2a285aec8ada26e0b01eb1fdbf2bc1da57b05828a";
-      name = "ktp-kded-module-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/ktp-kded-module-20.08.3.tar.xz";
+      sha256 = "105vh6b7a0v02arksbwxn30slpcg11cpvb7dqmvf041iyr13sqsv";
+      name = "ktp-kded-module-20.08.3.tar.xz";
     };
   };
   ktp-send-file = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/ktp-send-file-20.08.2.tar.xz";
-      sha256 = "6c3fb09112d439ce2f0db3acdbc766e8a914d4dc7cbb6ab709922f8e95f2f0e1";
-      name = "ktp-send-file-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/ktp-send-file-20.08.3.tar.xz";
+      sha256 = "08pp3029jplc6rcbav40cgy787gn3jjl312gbgvnwzglxaqvcg4b";
+      name = "ktp-send-file-20.08.3.tar.xz";
     };
   };
   ktp-text-ui = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/ktp-text-ui-20.08.2.tar.xz";
-      sha256 = "0f10612e08bc1ee04fb0a538337d760d7b79b5dac37bb58275998d16dbb5415c";
-      name = "ktp-text-ui-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/ktp-text-ui-20.08.3.tar.xz";
+      sha256 = "1anxl9wa5ndyi9r9w0kpivx8nv1xpx28xjvkdplkc75cc1wl88sw";
+      name = "ktp-text-ui-20.08.3.tar.xz";
     };
   };
   ktuberling = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/ktuberling-20.08.2.tar.xz";
-      sha256 = "f9e4a0de3b92d015f8e7b862badf4bbf11b3ce2727aa607384a009247e7b7fad";
-      name = "ktuberling-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/ktuberling-20.08.3.tar.xz";
+      sha256 = "0q6ynmn6w5q65a77fq8n9vxqswrimln22b1zfgxmb2i3qwnhkrmz";
+      name = "ktuberling-20.08.3.tar.xz";
     };
   };
   kturtle = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kturtle-20.08.2.tar.xz";
-      sha256 = "ca9bf47b2ec34744492f218c922b10d613b19fbbd2c75b6ddba157eef21337c7";
-      name = "kturtle-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kturtle-20.08.3.tar.xz";
+      sha256 = "0riv76vwvz94zixqhhwkxw8sz2r2xqai39yh9hr31d28q9rza384";
+      name = "kturtle-20.08.3.tar.xz";
     };
   };
   kubrick = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kubrick-20.08.2.tar.xz";
-      sha256 = "02fed26a7246feffd668fbda939893295557c0571da64fdf195db93474653224";
-      name = "kubrick-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kubrick-20.08.3.tar.xz";
+      sha256 = "03k73gr33dr3va69vc70fsfcdwkqz70bg87yk2l2j33x8wsgl4wx";
+      name = "kubrick-20.08.3.tar.xz";
     };
   };
   kwalletmanager = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kwalletmanager-20.08.2.tar.xz";
-      sha256 = "7950e250c5351a9b8e3b36165fa2003baa044bb2d3553a32360000a322bddad8";
-      name = "kwalletmanager-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kwalletmanager-20.08.3.tar.xz";
+      sha256 = "1l07vxl2x3jl8553rbvr3p0k3rc95nmrw4vhxxynl3102xshrg5i";
+      name = "kwalletmanager-20.08.3.tar.xz";
     };
   };
   kwave = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kwave-20.08.2.tar.xz";
-      sha256 = "6e15a67022ef96f07b9825139cc7aaacbc6f60729570c31ce6cb25184602b434";
-      name = "kwave-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kwave-20.08.3.tar.xz";
+      sha256 = "0zk8ik03qcc6y0vhpih8sk2jpkxwxalmqmaan2767k9h92grdpc8";
+      name = "kwave-20.08.3.tar.xz";
     };
   };
   kwordquiz = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/kwordquiz-20.08.2.tar.xz";
-      sha256 = "57aa012f3aad128579f067668db1344306e2e23d6a89b47d413d6eee0da0e238";
-      name = "kwordquiz-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/kwordquiz-20.08.3.tar.xz";
+      sha256 = "1kiqk3xyd0l7kqdxqjqs8mw4drcdbdri9xxi5gcav57ndcinknqb";
+      name = "kwordquiz-20.08.3.tar.xz";
     };
   };
   libgravatar = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/libgravatar-20.08.2.tar.xz";
-      sha256 = "4c0a2eb073ef42a26813b93bd76aaa9e26a040a966329e6e3cf371d7de1e55f7";
-      name = "libgravatar-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/libgravatar-20.08.3.tar.xz";
+      sha256 = "09dvx2rb1j7q4r0gkbhz0vjk8ya3njqprpjqdhwcq7xwc2j9h0hr";
+      name = "libgravatar-20.08.3.tar.xz";
     };
   };
   libkcddb = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/libkcddb-20.08.2.tar.xz";
-      sha256 = "545cf54ac454845c524ba7cd7ec289ac952fa1ce2bbae01411ba71c66a5ed08a";
-      name = "libkcddb-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/libkcddb-20.08.3.tar.xz";
+      sha256 = "0r36hs79hmq0znsds0d04lj7ffs6l2d866kyn1z1fdwr9b3crirg";
+      name = "libkcddb-20.08.3.tar.xz";
     };
   };
   libkcompactdisc = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/libkcompactdisc-20.08.2.tar.xz";
-      sha256 = "37534f67af69775d6f786917920d2810a5d20f28df57e1a17aee9a7b30bbe302";
-      name = "libkcompactdisc-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/libkcompactdisc-20.08.3.tar.xz";
+      sha256 = "1nglk3kbx5czqla3cnpnf1fk71pf2cl9h6rgb40ak1xw4z31d456";
+      name = "libkcompactdisc-20.08.3.tar.xz";
     };
   };
   libkdcraw = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/libkdcraw-20.08.2.tar.xz";
-      sha256 = "6fbf1a5ca5a439fabb01648cde4b57e1f3de2372b7f3b56ccae03f653490f1b2";
-      name = "libkdcraw-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/libkdcraw-20.08.3.tar.xz";
+      sha256 = "1806i99qsrmixdg5b0hyi8h55fk00q6wxsnrblbwcmsb268jddp7";
+      name = "libkdcraw-20.08.3.tar.xz";
     };
   };
   libkdegames = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/libkdegames-20.08.2.tar.xz";
-      sha256 = "d9f0ab87dc4671a55ad8d2b7d3a54cbc444201c11ebae436e0107fe7067fb983";
-      name = "libkdegames-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/libkdegames-20.08.3.tar.xz";
+      sha256 = "1ccbcwwqb53bgqlr1rq9plpw21mipxp8rsi1f7l0p1jzpw054p08";
+      name = "libkdegames-20.08.3.tar.xz";
     };
   };
   libkdepim = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/libkdepim-20.08.2.tar.xz";
-      sha256 = "3558c9af95c22bb4ce0ceeec483fada9e8e9f27de4ac34ffe44a4eb3b6d21101";
-      name = "libkdepim-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/libkdepim-20.08.3.tar.xz";
+      sha256 = "1v77g02v5sdqprh8psx5xpjgf8v91il60ca59yivm5jvc3hdf3f6";
+      name = "libkdepim-20.08.3.tar.xz";
     };
   };
   libkeduvocdocument = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/libkeduvocdocument-20.08.2.tar.xz";
-      sha256 = "ef8e0b359e3cf1b3303da3795add1ced405d230f51895abe10d5a7989be03923";
-      name = "libkeduvocdocument-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/libkeduvocdocument-20.08.3.tar.xz";
+      sha256 = "0ghkx6x5sn5fl934ybhl32knwv9zky0n1vkjw2w93lpms45xmw76";
+      name = "libkeduvocdocument-20.08.3.tar.xz";
     };
   };
   libkexiv2 = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/libkexiv2-20.08.2.tar.xz";
-      sha256 = "793c4d11bb1b60beca7b25a2427650b3f358364c55be022dfd4a7ccfd889578d";
-      name = "libkexiv2-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/libkexiv2-20.08.3.tar.xz";
+      sha256 = "1lh3947w6xgzl2r1wm6m4kd478q6bv89f0c3c38ldv30imfw7rfl";
+      name = "libkexiv2-20.08.3.tar.xz";
     };
   };
   libkgapi = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/libkgapi-20.08.2.tar.xz";
-      sha256 = "f3fb015e8b8ac92c138e8a59e8e8b9333500e0ea314180cc1ad14e31248312df";
-      name = "libkgapi-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/libkgapi-20.08.3.tar.xz";
+      sha256 = "1kmgf9v9rvb67l7aw5xsx7v44l4pz8rl6p09lk26irq7gd4k68la";
+      name = "libkgapi-20.08.3.tar.xz";
     };
   };
   libkgeomap = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/libkgeomap-20.08.2.tar.xz";
-      sha256 = "7149095aa0df4e3a184bb2a6fb8322e27e3a34eb3bc40cf370a09b21fb2a6ea0";
-      name = "libkgeomap-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/libkgeomap-20.08.3.tar.xz";
+      sha256 = "14ipksxnvgk2s1sw7a70153iy9aik9mf4i7k8y3pzdr3l3155ayk";
+      name = "libkgeomap-20.08.3.tar.xz";
     };
   };
   libkipi = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/libkipi-20.08.2.tar.xz";
-      sha256 = "87ffa30b23779313a94953afe57d1b19515c3a2f311a2dea6449c9d96b09e5b1";
-      name = "libkipi-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/libkipi-20.08.3.tar.xz";
+      sha256 = "1b5qby7xm926qnzrf1zpb89fwx1a2syhqnznmdjxifj499p1jqjb";
+      name = "libkipi-20.08.3.tar.xz";
     };
   };
   libkleo = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/libkleo-20.08.2.tar.xz";
-      sha256 = "34537b35e22cef85650ae6f9bf197518bb5a59e9614d6d86ba86f085fddd97c4";
-      name = "libkleo-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/libkleo-20.08.3.tar.xz";
+      sha256 = "1d6dal4qnrikg6ma2ird4b2sdivqqkkhamvd3s1srcxppc3aiq79";
+      name = "libkleo-20.08.3.tar.xz";
     };
   };
   libkmahjongg = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/libkmahjongg-20.08.2.tar.xz";
-      sha256 = "032ac6d9e96cd9156f5153c01f881d0e442fda9de90398df320846095ba2c40a";
-      name = "libkmahjongg-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/libkmahjongg-20.08.3.tar.xz";
+      sha256 = "0xabp1vzbzs52m3bb9nzm1d9md1n4j4pr13izn6nv28ja7477nnm";
+      name = "libkmahjongg-20.08.3.tar.xz";
     };
   };
   libkomparediff2 = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/libkomparediff2-20.08.2.tar.xz";
-      sha256 = "91b0b72d5c4e2ddd863636cca299660bfbb5b7a55773cbc51000fe9c1ca91a98";
-      name = "libkomparediff2-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/libkomparediff2-20.08.3.tar.xz";
+      sha256 = "0nk0jkf0jwaz1yqzzp44c6xyjgw42gclkcvw8w61w1f8sdl40wb8";
+      name = "libkomparediff2-20.08.3.tar.xz";
     };
   };
   libksane = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/libksane-20.08.2.tar.xz";
-      sha256 = "21bb577d78e020281dfc6c993ab7fe286d648e72c851e45463a32969fbb35aa6";
-      name = "libksane-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/libksane-20.08.3.tar.xz";
+      sha256 = "0d2cnmvk16g1vnx9jd7jvp3bpw07ss54khmhqip8iskkvcfll9j0";
+      name = "libksane-20.08.3.tar.xz";
     };
   };
   libksieve = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/libksieve-20.08.2.tar.xz";
-      sha256 = "589e4dc27d1d91d8c16879fa99aab45f3847a74e3e9357e3e037503e5515ee2e";
-      name = "libksieve-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/libksieve-20.08.3.tar.xz";
+      sha256 = "0bhpdqynazssql2iivvpb9l8npa441345gcn59fc0va6barl9sam";
+      name = "libksieve-20.08.3.tar.xz";
     };
   };
   lokalize = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/lokalize-20.08.2.tar.xz";
-      sha256 = "c11616bc02763fb1f3b1abf0b2ba70d0c6c550435c94ff25c5096f9a90375e23";
-      name = "lokalize-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/lokalize-20.08.3.tar.xz";
+      sha256 = "0iab8sd1qh7h0zna7lc3v43z6rcmxba9v4nynhl5miiac4r6ddr8";
+      name = "lokalize-20.08.3.tar.xz";
     };
   };
   lskat = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/lskat-20.08.2.tar.xz";
-      sha256 = "78f152f7af46345f65c3800f9c591fb204e917595c1f803c9c15148ef39c42b8";
-      name = "lskat-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/lskat-20.08.3.tar.xz";
+      sha256 = "1rcmh592w5gd5b69czfxycypidj74y2d91cw92rccariadz9vnjz";
+      name = "lskat-20.08.3.tar.xz";
     };
   };
   mailcommon = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/mailcommon-20.08.2.tar.xz";
-      sha256 = "a4170ab9ff7680fb26c61474f42d5424716f4e91c1a5e9275cc1222491c9564d";
-      name = "mailcommon-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/mailcommon-20.08.3.tar.xz";
+      sha256 = "0bhs60cz4qcrqkmw2sm6cd2laq8lzj9vcwi8kjqkajsidh342wdv";
+      name = "mailcommon-20.08.3.tar.xz";
     };
   };
   mailimporter = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/mailimporter-20.08.2.tar.xz";
-      sha256 = "a255b60378c1cf77e517919d072cb44bd8c25e8ed8f07429763bb7915b3cc711";
-      name = "mailimporter-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/mailimporter-20.08.3.tar.xz";
+      sha256 = "0w6yfgqx0adlkwx32vmb23kl6n50737jiabmad3pnhqw8rv41h80";
+      name = "mailimporter-20.08.3.tar.xz";
     };
   };
   marble = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/marble-20.08.2.tar.xz";
-      sha256 = "f44ac10de33dc31ce1cb99635131fe2c7bf3f60f09204b2061f81042a725475c";
-      name = "marble-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/marble-20.08.3.tar.xz";
+      sha256 = "1xpxgy724z97k063fdk0l3mrl8i6nvnhj35b4987jqji76i92ffb";
+      name = "marble-20.08.3.tar.xz";
     };
   };
   mbox-importer = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/mbox-importer-20.08.2.tar.xz";
-      sha256 = "3b3bee33683c534974255616f3b2f3baebf85363b2c24bbee9cc195ddf35ca9a";
-      name = "mbox-importer-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/mbox-importer-20.08.3.tar.xz";
+      sha256 = "1qh0f93df228cqlcqdwc7g6im3g0gkfmzir3ccsmb5iv0ygvjl6f";
+      name = "mbox-importer-20.08.3.tar.xz";
     };
   };
   messagelib = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/messagelib-20.08.2.tar.xz";
-      sha256 = "5cf3a3f2b6473e60a7c2af10aa4eb1cfba25a4786132ee87b657b0dafb9f5028";
-      name = "messagelib-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/messagelib-20.08.3.tar.xz";
+      sha256 = "16amni6qrq96h8jr313gc7k9frwr20d4pk9y2i61a1xm2w3xsqd4";
+      name = "messagelib-20.08.3.tar.xz";
     };
   };
   minuet = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/minuet-20.08.2.tar.xz";
-      sha256 = "24383168e2a0b7b319ecb37e2b1f3b039ad790a7e0f49385657f049565f1ef84";
-      name = "minuet-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/minuet-20.08.3.tar.xz";
+      sha256 = "1l45g7labnyz0pkwcfhjl5a3ypr7cy3bsshr06ab85364yjwazvi";
+      name = "minuet-20.08.3.tar.xz";
     };
   };
   okular = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/okular-20.08.2.tar.xz";
-      sha256 = "6f1885ed8050a55bb2cbf05089b452f555852e003ec7fe89fe472c0dbc92e65b";
-      name = "okular-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/okular-20.08.3.tar.xz";
+      sha256 = "1q59ikcwsfgjc0202daingxv15iarnzba6szdncznzcafd6hhk9z";
+      name = "okular-20.08.3.tar.xz";
     };
   };
   palapeli = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/palapeli-20.08.2.tar.xz";
-      sha256 = "a31b0db2f3e77eac8f527d26f8ed0400fe5bcdb3a3970b925f14886bd1bcd63e";
-      name = "palapeli-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/palapeli-20.08.3.tar.xz";
+      sha256 = "107z3izfznrq7g5aqb5a7r8a4ibaia90g334d7wwvd7prm7hdgfp";
+      name = "palapeli-20.08.3.tar.xz";
     };
   };
   parley = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/parley-20.08.2.tar.xz";
-      sha256 = "cf2f00925730d8baec66d422f058e4b3e979678e79c57898ceffd8650720bda6";
-      name = "parley-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/parley-20.08.3.tar.xz";
+      sha256 = "0wli09zkk5z50y1gzp5wc9k056xjaadlq97j09lf6lqyg6kb56ya";
+      name = "parley-20.08.3.tar.xz";
     };
   };
   picmi = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/picmi-20.08.2.tar.xz";
-      sha256 = "35f2bf3d8375618f97aee01c8f2421521b2cd5c11d7b14fc9a376026d74c82a5";
-      name = "picmi-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/picmi-20.08.3.tar.xz";
+      sha256 = "1lkpazsi9dyb2y9q5bk56d80x7x035rf4hdap25i8qfj3ilykv3w";
+      name = "picmi-20.08.3.tar.xz";
     };
   };
   pimcommon = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/pimcommon-20.08.2.tar.xz";
-      sha256 = "cba9e66153d36debe3f046363af7ff40a4ba263f33bfe20c7ec10b5bf9183deb";
-      name = "pimcommon-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/pimcommon-20.08.3.tar.xz";
+      sha256 = "0mpl7li2y5xjzk4hdb85d1x7cz15cicd91c1krlw74q7pbrjinlq";
+      name = "pimcommon-20.08.3.tar.xz";
     };
   };
   pim-data-exporter = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/pim-data-exporter-20.08.2.tar.xz";
-      sha256 = "54b09a3f763004c805cc0dce8ab2e665116b7ef29419f22ad413aa250dcb4ac0";
-      name = "pim-data-exporter-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/pim-data-exporter-20.08.3.tar.xz";
+      sha256 = "0f08c16d3730fbdsbrwlr9w5c4l9xcmd1bdbv5m38h5r2ddlkvzr";
+      name = "pim-data-exporter-20.08.3.tar.xz";
     };
   };
   pim-sieve-editor = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/pim-sieve-editor-20.08.2.tar.xz";
-      sha256 = "e8c590a0fddc5292172115b11fb75c5f847347079100617dbf321875642d7098";
-      name = "pim-sieve-editor-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/pim-sieve-editor-20.08.3.tar.xz";
+      sha256 = "1falzw2a2v912fdzlyljsw9rcy1whrn9ys9ccrskkpvjn8y444x4";
+      name = "pim-sieve-editor-20.08.3.tar.xz";
     };
   };
   poxml = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/poxml-20.08.2.tar.xz";
-      sha256 = "67d260349489e92ebce20253f9a3ccde5bb75eb13eb4d1a08a86c18c82e4a2a9";
-      name = "poxml-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/poxml-20.08.3.tar.xz";
+      sha256 = "0gzg3vbsjrfhs1jg59g7b3gf3b4qajiffkb94njkz8v1f0fadlxp";
+      name = "poxml-20.08.3.tar.xz";
     };
   };
   print-manager = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/print-manager-20.08.2.tar.xz";
-      sha256 = "de21f8c428198b906f4ae438d6ced8d707b12c15578409c2aa2f7b2f73feb990";
-      name = "print-manager-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/print-manager-20.08.3.tar.xz";
+      sha256 = "18nl9gpmzz4g9fqzyvbh858nxz23b2vyi505qacqvcrz13r0l78z";
+      name = "print-manager-20.08.3.tar.xz";
     };
   };
   rocs = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/rocs-20.08.2.tar.xz";
-      sha256 = "2d8efd62b89dd36033bb3d818c82fee67e6efa2d2bb98dda0d4eab13baaee485";
-      name = "rocs-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/rocs-20.08.3.tar.xz";
+      sha256 = "0bd9x7kh2s4z79ff9byd3ly7k040c574zwrrgi8sq21yd531hxhj";
+      name = "rocs-20.08.3.tar.xz";
     };
   };
   signon-kwallet-extension = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/signon-kwallet-extension-20.08.2.tar.xz";
-      sha256 = "a271f4d09511171dcf1ebcdaf0b7205f9ee6a75b20ef0801f36d136f7b4a70dd";
-      name = "signon-kwallet-extension-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/signon-kwallet-extension-20.08.3.tar.xz";
+      sha256 = "1s0syq9aw2q34k1wxrpjqqi12xay1h0vc4s2d8l184hzzg8qq71i";
+      name = "signon-kwallet-extension-20.08.3.tar.xz";
     };
   };
   spectacle = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/spectacle-20.08.2.tar.xz";
-      sha256 = "9a467ea3b05981d588d39573cca375636b825ad8cab8a36ce48dbbc12425ab0d";
-      name = "spectacle-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/spectacle-20.08.3.tar.xz";
+      sha256 = "16dwbsk9hik7gmz9s4x78hibz4x9d1fpx8x2i2giry5hwzknfcw4";
+      name = "spectacle-20.08.3.tar.xz";
     };
   };
   step = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/step-20.08.2.tar.xz";
-      sha256 = "a52e4b6f281ba1a7afd4ab3ac7307080464147c4052ee222399135fe61ac7958";
-      name = "step-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/step-20.08.3.tar.xz";
+      sha256 = "05ljsmgpra1az64yddy8idi46cv3afaf2v4n7d5j81a8vvlz7fj1";
+      name = "step-20.08.3.tar.xz";
     };
   };
   svgpart = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/svgpart-20.08.2.tar.xz";
-      sha256 = "3a46b5bd9acf5372f73b602d155517f0dff47f3337bd8a46a580aae7480dd771";
-      name = "svgpart-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/svgpart-20.08.3.tar.xz";
+      sha256 = "0wwq576dblqmfknr0qs8kskw7nar6hah95fqicdn97xdy4nvzhc6";
+      name = "svgpart-20.08.3.tar.xz";
     };
   };
   sweeper = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/sweeper-20.08.2.tar.xz";
-      sha256 = "0c255ef15c1e32eb561b26f5b73a6c154730be583efbc5ee713aaed17de14091";
-      name = "sweeper-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/sweeper-20.08.3.tar.xz";
+      sha256 = "0i4zvbljdzkj47vh8kizam7vsc9k7mvf8dqd2j6ixr4p0cqvw5a8";
+      name = "sweeper-20.08.3.tar.xz";
     };
   };
   umbrello = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/umbrello-20.08.2.tar.xz";
-      sha256 = "0357b44646c750253e3e7ee323b9e49e854c4c8cdf340eb5a11b2d42edfc4cd7";
-      name = "umbrello-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/umbrello-20.08.3.tar.xz";
+      sha256 = "1hh5gyggb4f3pjip8dfvx00hi83gj65c92jgzkzahj7p35mkplgl";
+      name = "umbrello-20.08.3.tar.xz";
     };
   };
   yakuake = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/yakuake-20.08.2.tar.xz";
-      sha256 = "8a0aa3a97a9fdc781887a6cb6480cba5079cf8aacd3345b63f5eb6be4d91665a";
-      name = "yakuake-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/yakuake-20.08.3.tar.xz";
+      sha256 = "05zd2xm5vgrgz0bxbkh1mpiknlqzpzk5jb74lnd5x7wn5b80ngv0";
+      name = "yakuake-20.08.3.tar.xz";
     };
   };
   zeroconf-ioslave = {
-    version = "20.08.2";
+    version = "20.08.3";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/20.08.2/src/zeroconf-ioslave-20.08.2.tar.xz";
-      sha256 = "0ad34f8361ee3ecd669e396265135b534239994d3bec5e9e6a43b7b7bf5c04e4";
-      name = "zeroconf-ioslave-20.08.2.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.3/src/zeroconf-ioslave-20.08.3.tar.xz";
+      sha256 = "1afga0liiy9n98kb0gmxzbb6ckhdgbrdc4ig1x9pwp98wr1fzmcg";
+      name = "zeroconf-ioslave-20.08.3.tar.xz";
     };
   };
 }
diff --git a/pkgs/applications/kde/yakuake.nix b/pkgs/applications/kde/yakuake.nix
index cb7f7070b24..10bf27038ae 100644
--- a/pkgs/applications/kde/yakuake.nix
+++ b/pkgs/applications/kde/yakuake.nix
@@ -1,15 +1,15 @@
 {
   mkDerivation, lib, kdoctools, extra-cmake-modules,
   karchive, kcrash, kdbusaddons, ki18n, kiconthemes, knewstuff, knotifications,
-  knotifyconfig, konsole, kparts, kwindowsystem, qtx11extras
+  knotifyconfig, konsole, kparts, kwayland, kwindowsystem, qtx11extras
 }:
 
 mkDerivation {
-  name = "yakuake";
+  pname = "yakuake";
 
   buildInputs = [
     karchive kcrash kdbusaddons ki18n kiconthemes knewstuff knotifications
-    knotifyconfig kparts kwindowsystem qtx11extras
+    knotifyconfig kparts kwayland kwindowsystem qtx11extras
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/misc/1password/default.nix b/pkgs/applications/misc/1password/default.nix
index 34b9b21f57d..e6a55421a91 100644
--- a/pkgs/applications/misc/1password/default.nix
+++ b/pkgs/applications/misc/1password/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "1password";
-  version = "1.7.0";
+  version = "1.8.0";
   src =
     if stdenv.isLinux then fetchzip {
       url = {
@@ -10,13 +10,13 @@ stdenv.mkDerivation rec {
         "x86_64-linux" = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_amd64_v${version}.zip";
       }.${stdenv.hostPlatform.system};
       sha256 = {
-        "i686-linux" = "0fvi9pfcm6pfy628q2lg62bkikrgsisynrk3kkjisb9ldcyjgabw";
-        "x86_64-linux" = "1iskhls8g8w2zhk79gprz4vzrmm7r7fq87gwgd4xmj5md4nkzran";
+        "i686-linux" = "teoxscan+EZ76Q0sfKT6nt1w/LSsmDoiN2oh+NGO/4A=";
+        "x86_64-linux" = "nRK2GSwhQe5OgcAdR1fg0vUp3fzEkhwU/teIwsEEemw=";
       }.${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 = "0x6s26zgjryzmcg9qxmv5s2vml06q96yqbapasjfxqc3l205lnnn";
+      sha256 = "0pycia75vdfh6gxfd2hr32cxrryfxydid804n0v76l2fpr9v9v3d";
     };
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ xar cpio ];
diff --git a/pkgs/applications/misc/archivy/default.nix b/pkgs/applications/misc/archivy/default.nix
index 09779f8876f..635cd9a991a 100644
--- a/pkgs/applications/misc/archivy/default.nix
+++ b/pkgs/applications/misc/archivy/default.nix
@@ -5,25 +5,25 @@ watchdog, wtforms }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "archivy";
-  version = "0.9.2";
+  version = "0.9.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5cb760da57dc9dcdd62c0af824993d1715ec7035915629b4046d8bf50442756c";
+    sha256 = "b6ff08a9ecd0a929663c36c73844ac5cb4dc847e69aae639a450c64d4320a506";
   };
 
   # Relax some dependencies
   postPatch = ''
     substituteInPlace requirements.txt \
-      --replace 'validators ==' 'validators >=' \
-      --replace 'elasticsearch ==' 'elasticsearch >=' \
-      --replace 'python-dotenv ==' 'python-dotenv >=' \
-      --replace 'beautifulsoup4 ==' 'beautifulsoup4 >=' \
       --replace 'WTForms ==' 'WTForms >=' \
-      --replace 'python_dotenv ==' 'python_dotenv >=' \
       --replace 'attrs == 20.2.0' 'attrs' \
+      --replace 'beautifulsoup4 ==' 'beautifulsoup4 >=' \
+      --replace 'elasticsearch ==' 'elasticsearch >=' \
+      --replace 'python_dotenv ==' 'python_dotenv >=' \
       --replace 'python_frontmatter == 0.5.0' 'python_frontmatter' \
-      --replace 'requests ==' 'requests >='
+      --replace 'requests ==' 'requests >=' \
+      --replace 'validators ==' 'validators >=' \
+      --replace 'watchdog ==' 'watchdog >='
   '';
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/misc/buku/default.nix b/pkgs/applications/misc/buku/default.nix
index 9b8f531e800..459b2159a93 100644
--- a/pkgs/applications/misc/buku/default.nix
+++ b/pkgs/applications/misc/buku/default.nix
@@ -1,14 +1,14 @@
 { stdenv, python3, fetchFromGitHub }:
 
 with python3.pkgs; buildPythonApplication rec {
-  version = "4.4";
+  version = "4.5";
   pname = "buku";
 
   src = fetchFromGitHub {
     owner = "jarun";
     repo = "buku";
     rev = "v${version}";
-    sha256 = "10r5f1n0vcxxmqqqsgmlvibwg1xffijrr2id6r140rgiyhprz556";
+    sha256 = "1lcq5fk8d5j2kfhn9m5l2hk46v7nj4vfa22m1psz35c9zpw4px8q";
   };
 
   checkInputs = [
diff --git a/pkgs/applications/misc/clipmenu/default.nix b/pkgs/applications/misc/clipmenu/default.nix
index 3227792d6a2..f616e86c5b7 100644
--- a/pkgs/applications/misc/clipmenu/default.nix
+++ b/pkgs/applications/misc/clipmenu/default.nix
@@ -1,33 +1,43 @@
-{ clipnotify, makeWrapper, xsel, dmenu, util-linux, gawk, stdenv, fetchFromGitHub, fetchpatch, lib }:
-let
-  runtimePath = lib.makeBinPath [ clipnotify xsel dmenu util-linux gawk ];
-in
+{ stdenv
+, lib
+, fetchFromGitHub
+, makeWrapper
+, clipnotify
+, coreutils
+, dmenu
+, gawk
+, util-linux
+, xdotool
+, xsel
+}:
 stdenv.mkDerivation rec {
   pname = "clipmenu";
-  version = "6.1.0";
+  version = "6.2.0";
 
   src = fetchFromGitHub {
     owner  = "cdown";
     repo   = "clipmenu";
     rev    = version;
-    sha256 = "0ddj5xcwrdb2qvrndvhv8j6swcqc8dvv5i00pqk35rfk5mrl4hwv";
+    sha256 = "sha256-nvctEwyho6kl4+NXi76jT2kG7nchmI2a7mgxlgjXA5A=";
   };
-  
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/cdown/clipmenu/commit/443b58583ef216e2405e4a38d401f7c36386d21e.patch";
-      sha256 = "12m4rpw7jbr31c919llbsmn8dcf7yh9aijln4iym6h2lylzqzzdz";
-    })
-  ];
-  
+
+  postPatch = ''
+    sed -i init/clipmenud.service \
+      -e "s,/usr/bin,$out/bin,"
+  '';
+
   makeFlags = [ "PREFIX=$(out)" ];
   buildInputs = [ makeWrapper ];
   nativeBuildInputs = [ xsel clipnotify ];
 
-  installPhase = ''
-    for bin in $out/bin/*; do
-      wrapProgram "$bin" --prefix PATH : "${runtimePath}"
-    done
+  postFixup = ''
+    sed -i "$out/bin/clipctl" -e 's,clipmenud\$,\.clipmenud-wrapped\$,'
+
+    wrapProgram "$out/bin/clipmenu" \
+      --prefix PATH : "${lib.makeBinPath [ xsel ]}"
+
+    wrapProgram "$out/bin/clipmenud" \
+      --set PATH "${lib.makeBinPath [ clipnotify coreutils gawk util-linux xdotool xsel ]}"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/misc/ctodo/default.nix b/pkgs/applications/misc/ctodo/default.nix
index 602fe430816..0c6a42fccdc 100644
--- a/pkgs/applications/misc/ctodo/default.nix
+++ b/pkgs/applications/misc/ctodo/default.nix
@@ -1,25 +1,24 @@
-{ stdenv, cmake, fetchurl, ncurses, readline }:
+{ stdenv, fetchFromGitHub, cmake, ncurses, readline }:
 
 stdenv.mkDerivation rec {
   pname = "ctodo";
   version = "1.3";
 
-  src = fetchurl {
-    url = "https://github.com/Acolarh/ctodo/archive/v${version}.tar.gz";
-    sha256 = "1k3raigcgpwa0h8zkv5x9rycnn2iqkb9qim4q9ydqy9wbv3m32jb";
+  src = fetchFromGitHub {
+    owner = "Acolarh";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0mqy5b35cbdwfpbs91ilsgz3wc4cky38xfz9pnr4q88q1vybigna";
   };
 
-  buildInputs = [ stdenv cmake ncurses readline ];
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ ncurses readline ];
 
-  configurePhase = ''
-    cmake -DCMAKE_INSTALL_PREFIX=$out .
-  '';
-
-  meta = {
+  meta = with stdenv.lib; {
     homepage = "http://ctodo.apakoh.dk/";
     description = "A simple ncurses-based task list manager";
-    license = stdenv.lib.licenses.mit;
-    maintainers = [ stdenv.lib.maintainers.matthiasbeyer ];
-    platforms = stdenv.lib.platforms.linux;
+    license = licenses.mit;
+    maintainers = [ maintainers.matthiasbeyer ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/misc/dasel/default.nix b/pkgs/applications/misc/dasel/default.nix
index 1cfc36d0c4c..7bb61a3addd 100644
--- a/pkgs/applications/misc/dasel/default.nix
+++ b/pkgs/applications/misc/dasel/default.nix
@@ -5,21 +5,32 @@
 
 buildGoModule rec {
   pname = "dasel";
-  version = "1.9.1";
+  version = "1.12.0";
 
   src = fetchFromGitHub {
     owner = "TomWright";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-W95lMULucXcCDqSDWtRoXZM+zh8mmXhoEeFIukPFI0o=";
+    sha256 = "69igz0Q7pT0f6PsbZWHcwUiTKRTTzj7r5E6E5ExUoJo=";
   };
 
-  vendorSha256 = "1il1vnv0v97qh8f47md5i6qaac2k8par0pd0z7zqg67vxq6gim85";
+  vendorSha256 = "BdX4DO77mIf/+aBdkNVFUzClsIml1UMcgvikDbbdgcY=";
 
   buildFlagsArray = ''
     -ldflags=-s -w -X github.com/tomwright/dasel/internal.Version=${version}
   '';
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    if [[ "$("$out/bin/${pname}" --version)" == "${pname} version ${version}" ]]; then
+      echo "" | $out/bin/dasel put object -p yaml -t string -t int "my.favourites" colour=red number=3 | grep -q red
+      echo '${pname} smoke check passed'
+    else
+      echo '${pname} smoke check failed'
+      return 1
+    fi
+  '';
+
   meta = with stdenv.lib; {
     description = "Query and update data structures from the command line";
     longDescription = ''
diff --git a/pkgs/applications/misc/dbeaver/default.nix b/pkgs/applications/misc/dbeaver/default.nix
index 4e928ff34f0..f14f5aec8cb 100644
--- a/pkgs/applications/misc/dbeaver/default.nix
+++ b/pkgs/applications/misc/dbeaver/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "dbeaver-ce";
-  version = "7.3.0";
+  version = "7.3.2";
 
   desktopItem = makeDesktopItem {
     name = "dbeaver";
@@ -30,10 +30,13 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://dbeaver.io/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz";
-    sha256 = "sha256-JhEF2/97vo2FgzpCFkuc31aLl9qjKHV8RYXO5oBU1no=";
+    sha256 = "sha256-4BVXcR8/E4uIrPQJe9KU9577j4XLTxJWTO8g0vCHWts=";
   };
 
   installPhase = ''
+    # remove bundled jre
+    rm -rf jre
+
     mkdir -p $out/
     cp -r . $out/dbeaver
 
diff --git a/pkgs/applications/misc/dfilemanager/default.nix b/pkgs/applications/misc/dfilemanager/default.nix
index 69c7f0dc17f..44e9fe88283 100644
--- a/pkgs/applications/misc/dfilemanager/default.nix
+++ b/pkgs/applications/misc/dfilemanager/default.nix
@@ -1,15 +1,14 @@
-{ stdenv, mkDerivation, fetchgit, cmake, file, qtbase, qttools, solid }:
+{ stdenv, mkDerivation, fetchFromGitHub, cmake, file, qtbase, qttools, solid }:
 
-let
-  version = "git-2016-01-10";
-in
 mkDerivation {
   pname = "dfilemanager";
-  inherit version;
-  src = fetchgit {
-    url = "git://git.code.sf.net/p/dfilemanager/code";
-    rev = "2c5078b05e0ad74c037366be1ab3e6a03492bde4";
-    sha256 = "1qwhnlcc2j8sr1f3v63sxs3m7q7w1xy6c2jqsnznjgm23b5h3hxd";
+  version = "git-2020-09-04";
+
+  src = fetchFromGitHub {
+    owner = "probonopd";
+    repo = "dfilemanager";
+    rev = "c592d643d76942dc2c2ccb6e4bfdf53f5e805e48";
+    sha256 = "7hIgaWjjOck5i4QbeVeQK7yrjK4yDoAZ5qY9RhM5ABY=";
   };
 
   buildInputs = [ cmake qtbase qttools file solid ];
diff --git a/pkgs/applications/misc/electrum/default.nix b/pkgs/applications/misc/electrum/default.nix
index 3322fbee712..ac963c890dc 100644
--- a/pkgs/applications/misc/electrum/default.nix
+++ b/pkgs/applications/misc/electrum/default.nix
@@ -19,7 +19,7 @@
 }:
 
 let
-  version = "4.0.7";
+  version = "4.0.9";
 
   libsecp256k1_name =
     if stdenv.isLinux then "libsecp256k1.so.0"
@@ -35,7 +35,7 @@ let
     owner = "spesmilo";
     repo = "electrum";
     rev = version;
-    sha256 = "06vcbj9p96d8v4xjlygzr74lqllb9adn8k0racajzq61ijb0imi2";
+    sha256 = "0cmdyfabllw4wnpqpdxp3l6hjnm0cvkwxn0z8ph4x54sf4zq9iz3";
 
     extraPostFetch = ''
       mv $out ./all
@@ -50,7 +50,7 @@ python3.pkgs.buildPythonApplication {
 
   src = fetchurl {
     url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz";
-    sha256 = "0k5xf97ga3ixd02g1y6v84hbxd8yhvpj5iz2rhxs8wfnkfwibzh4";
+    sha256 = "1fvjiagi78f32nxgr2rx8jas8hxfvpp1c8fpfcalvykmlhdc2gva";
   };
 
   postUnpack = ''
diff --git a/pkgs/applications/misc/elfx86exts/cargo-lock.patch b/pkgs/applications/misc/elfx86exts/cargo-lock.patch
new file mode 100644
index 00000000000..4f56b82368f
--- /dev/null
+++ b/pkgs/applications/misc/elfx86exts/cargo-lock.patch
@@ -0,0 +1,1091 @@
+diff --git a/Cargo.lock b/Cargo.lock
+new file mode 100644
+index 0000000..55e4495
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,1085 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++[[package]]
++name = "aho-corasick"
++version = "0.7.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "arrayvec"
++version = "0.4.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "nodrop 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "atk"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (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)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "atk-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++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.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "autocfg"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "backtrace"
++version = "0.3.41"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "backtrace-sys 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "backtrace-sys"
++version = "0.1.35"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "bitflags"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "cairo-rs"
++version = "0.7.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (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)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "cairo-sys-rs"
++version = "0.9.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "cc"
++version = "1.0.50"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "cfg-if"
++version = "0.1.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "chrono"
++version = "0.4.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "effitask"
++version = "0.1.0"
++dependencies = [
++ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "chrono 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "human-panic 1.0.3 (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.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "notify 4.0.15 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pulldown-cmark 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "relm 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "relm-attributes 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "relm-derive 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "todo-txt 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "filetime"
++version = "0.2.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "fragile"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "fsevent"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fsevent-sys 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "fsevent-sys"
++version = "2.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "fuchsia-zircon"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++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)",
++]
++
++[[package]]
++name = "fuchsia-zircon-sys"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "gdk"
++version = "0.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (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)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "gdk-pixbuf"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (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)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "gdk-pixbuf-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "gio-sys 0.9.1 (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)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "gdk-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio-sys 0.9.1 (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)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "getopts"
++version = "0.2.21"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "getrandom"
++version = "0.1.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (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)",
++]
++
++[[package]]
++name = "gio"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fragile 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (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.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "gio-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++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.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "glib"
++version = "0.8.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (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.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "glib-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "gobject-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "gtk"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "atk 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)",
++ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (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)",
++ "gtk-sys 0.9.2 (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.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "gtk-sys"
++version = "0.9.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio-sys 0.9.1 (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)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "human-panic"
++version = "1.0.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "backtrace 0.3.41 (registry+https://github.com/rust-lang/crates.io-index)",
++ "os_type 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_derive 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
++ "termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "uuid 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "inotify"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "inotify-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "inotify-sys"
++version = "0.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "iovec"
++version = "0.1.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "kernel32-sys"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++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)",
++]
++
++[[package]]
++name = "lazy_static"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "lazycell"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "lexical-core"
++version = "0.6.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "arrayvec 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ryu 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "static_assertions 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "libc"
++version = "0.2.68"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "log"
++version = "0.4.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "memchr"
++version = "2.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "mio"
++version = "0.6.21"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.9 (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.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (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.33 (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)",
++]
++
++[[package]]
++name = "mio-extras"
++version = "2.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "miow"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "net2 0.2.33 (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)",
++]
++
++[[package]]
++name = "net2"
++version = "0.2.33"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "nodrop"
++version = "0.1.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "nom"
++version = "5.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "lexical-core 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "notify"
++version = "4.0.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "filetime 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fsevent 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fsevent-sys 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "inotify 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mio-extras 2.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "num-integer"
++version = "0.1.42"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "num-traits"
++version = "0.2.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "os_type"
++version = "2.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "pango"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (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.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "pango-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++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.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "pkg-config"
++version = "0.3.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "ppv-lite86"
++version = "0.2.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "proc-macro2"
++version = "0.4.30"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "pulldown-cmark"
++version = "0.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "quote"
++version = "0.6.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "quote"
++version = "1.0.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand"
++version = "0.7.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (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)",
++]
++
++[[package]]
++name = "rand_chacha"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_core"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_hc"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "redox_syscall"
++version = "0.1.56"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "regex"
++version = "1.3.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "aho-corasick 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex-syntax 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)",
++ "thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "regex-syntax"
++version = "0.6.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "relm"
++version = "0.18.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (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)",
++ "gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (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)",
++]
++
++[[package]]
++name = "relm-attributes"
++version = "0.16.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "relm-gen-widget 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "relm-derive"
++version = "0.18.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "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)",
++]
++
++[[package]]
++name = "relm-gen-widget"
++version = "0.16.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "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)",
++]
++
++[[package]]
++name = "rustc-demangle"
++version = "0.1.16"
++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 = "ryu"
++version = "1.0.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "same-file"
++version = "1.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi-util 0.1.4 (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 = "serde"
++version = "1.0.106"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "serde_derive"
++version = "1.0.106"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "slab"
++version = "0.4.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "static_assertions"
++version = "0.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "syn"
++version = "0.15.44"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++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)",
++]
++
++[[package]]
++name = "syn"
++version = "1.0.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "termcolor"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi-util 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "thread_local"
++version = "1.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "time"
++version = "0.1.42"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "todo-txt"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "chrono 0.4.11 (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.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "nom 5.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "toml"
++version = "0.5.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "unicase"
++version = "2.6.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "unicode-width"
++version = "0.1.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "unicode-xid"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "unicode-xid"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "uuid"
++version = "0.8.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "version_check"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "walkdir"
++version = "2.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi-util 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "wasi"
++version = "0.9.0+wasi-snapshot-preview1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "winapi"
++version = "0.2.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "winapi"
++version = "0.3.8"
++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)",
++ "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "winapi-build"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "winapi-i686-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "winapi-util"
++version = "0.1.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi 0.3.8 (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 = "ws2_32-sys"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++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)",
++]
++
++[[package]]
++name = "xdg"
++version = "2.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[metadata]
++"checksum aho-corasick 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)" = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada"
++"checksum arrayvec 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9"
++"checksum atk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "86b7499272acf036bb5820c6e346bbfb5acc5dceb104bc2c4fd7e6e33dfcde6a"
++"checksum atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e552c1776737a4c80110d06b36d099f47c727335f9aaa5d942a72b6863a8ec6f"
++"checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
++"checksum backtrace 0.3.41 (registry+https://github.com/rust-lang/crates.io-index)" = "a4ed64ae6d9ebfd9893193c4b2532b1292ec97bd8271c9d7d0fa90cd78a34cba"
++"checksum backtrace-sys 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)" = "7de8aba10a69c8e8d7622c5710229485ec32e9d55fdad160ea559c086fdcd118"
++"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
++"checksum cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e05db47de3b0f09a222fa4bba2eab957d920d4243962a86b2d77ab401e4a359c"
++"checksum cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ff65ba02cac715be836f63429ab00a767d48336efc5497c5637afb53b4f14d63"
++"checksum cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)" = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd"
++"checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33"
++"checksum chrono 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "80094f509cf8b5ae86a4966a39b3ff66cd7e2a3e594accec3743ff3fabeab5b2"
++"checksum filetime 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "f59efc38004c988e4201d11d263b8171f49a2e7ec0bdbb71773433f271504a5e"
++"checksum fragile 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05f8140122fa0d5dcb9fc8627cfce2b37cc1500f752636d46ea28bc26785c2f9"
++"checksum fsevent 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5ab7d1bd1bd33cc98b0889831b72da23c0aa4df9cec7e0702f46ecea04b35db6"
++"checksum fsevent-sys 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f41b048a94555da0f42f1d632e2e19510084fb8e303b0daa2816e733fb3644a0"
++"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 gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6243e995f41f3a61a31847e54cc719edce93dd9140c89dca3b9919be1cfe22d5"
++"checksum gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9726408ee1bbada83094326a99b9c68fea275f9dbb515de242a69e72051f4fcc"
++"checksum gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d8991b060a9e9161bafd09bf4a202e6fd404f5b4dd1a08d53a1e84256fb34ab0"
++"checksum gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6adf679e91d1bff0c06860287f80403e7db54c2d2424dce0a470023b56c88fbb"
++"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 gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6261b5d34c30c2d59f879e643704cf54cb44731f3a2038000b68790c03e360e3"
++"checksum gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4fad225242b9eae7ec8a063bb86974aca56885014672375e5775dc0ea3533911"
++"checksum glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "be27232841baa43e0fd5ae003f7941925735b2f733a336dc75f07b9eff415e7b"
++"checksum glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "95856f3802f446c05feffa5e24859fe6a183a7cb849c8449afc35c86b1e316e2"
++"checksum gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31d1a804f62034eccf370006ccaef3708a71c31d561fee88564abe71177553d9"
++"checksum gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "709f1074259d4685b96133f92b75c7f35b504715b0fcdc96ec95de2607296a60"
++"checksum gtk-sys 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "53def660c7b48b00b510c81ef2d2fbd3c570f1527081d8d7947f471513e1a4c1"
++"checksum human-panic 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "39f357a500abcbd7c5f967c1d45c8838585b36743823b9d43488f24850534e36"
++"checksum inotify 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "24e40d6fd5d64e2082e0c796495c8ef5ad667a96d03e5aaa0becfd9d47bcbfb8"
++"checksum inotify-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e74a1aa87c59aeff6ef2cc2fa62d41bc43f54952f55652656b18a02fd5e356c0"
++"checksum iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
++"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
++"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 lexical-core 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f86d66d380c9c5a685aaac7a11818bdfa1f733198dfd9ec09c70b762cd12ad6f"
++"checksum libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)" = "dea0c0405123bba743ee3f91f49b1c7cfb684eef0da0a50110f758ccf24cdff0"
++"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
++"checksum memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
++"checksum mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)" = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f"
++"checksum mio-extras 2.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19"
++"checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
++"checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88"
++"checksum nodrop 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
++"checksum nom 5.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b471253da97532da4b61552249c521e01e736071f71c1a4f7ebbfbf0a06aad6"
++"checksum notify 4.0.15 (registry+https://github.com/rust-lang/crates.io-index)" = "80ae4a7688d1fab81c5bf19c64fc8db920be8d519ce6336ed4e7efe024724dbd"
++"checksum num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba"
++"checksum num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096"
++"checksum os_type 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7edc011af0ae98b7f88cf7e4a83b70a54a75d2b8cb013d6efd02e5956207e9eb"
++"checksum pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "393fa071b144f8ffb83ede273758983cf414ca3c0b1d2a5a9ce325b3ba3dd786"
++"checksum pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "86b93d84907b3cf0819bff8f13598ba72843bee579d5ebc2502e4b0367b4be7d"
++"checksum pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
++"checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
++"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
++"checksum proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)" = "df246d292ff63439fea9bc8c0a270bed0e390d5ebd4db4ba15aba81111b5abe3"
++"checksum pulldown-cmark 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1c205cc82214f3594e2d50686730314f817c67ffa80fe800cf0db78c3c2b9d9e"
++"checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
++"checksum quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2bdc6c187c65bca4260c9011c9e3132efe4909da44726bad24cf7572ae338d7f"
++"checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
++"checksum rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
++"checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
++"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
++"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
++"checksum regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7f6946991529684867e47d86474e3a6d0c0ab9b82d5821e314b1ede31fa3a4b3"
++"checksum regex-syntax 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)" = "7fe5bd57d1d7414c6b5ed48563a2c855d995ff777729dcd91c369ec7fea395ae"
++"checksum relm 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4127341a75eb96dc99ba39b87a2783bb011b20fbdbafc25ed2f58216d2ff714"
++"checksum relm-attributes 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4a8db24611fee7bb021f3aad7c4eaaba6d360947860b78b933a4d3ef86079b7f"
++"checksum relm-derive 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ec66397054dc1ea6c658159866b9978add6a90655aba5dd4a90c34d2e63f9d69"
++"checksum relm-gen-widget 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49ad47b054bdc12c90fb6b37c81ef785ee2a4a8a92c4e150b18325052766fbb0"
++"checksum rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
++"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
++"checksum ryu 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535622e6be132bccd223f4bb2b8ac8d53cda3c7a6394944d3b2b33fb974f9d76"
++"checksum same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
++"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.106 (registry+https://github.com/rust-lang/crates.io-index)" = "36df6ac6412072f67cf767ebbde4133a5b2e88e76dc6187fa7104cd16f783399"
++"checksum serde_derive 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)" = "9e549e3abf4fb8621bd1609f11dfc9f5e50320802273b12f3811a67e6716ea6c"
++"checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
++"checksum static_assertions 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7f3eb36b47e512f8f1c9e3d10c2c1965bc992bd9cdb024fa581e2194501c83d3"
++"checksum syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)" = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
++"checksum syn 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)" = "0df0eb663f387145cab623dea85b09c2c5b4b0aef44e945d928e682fce71bb03"
++"checksum termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
++"checksum thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
++"checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f"
++"checksum todo-txt 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0d77aa2f90bd72b990bb2b8de52289b7a34f51cf035627df5e3ce361b321b417"
++"checksum toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a"
++"checksum unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
++"checksum unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
++"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
++"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
++"checksum uuid 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9fde2f6a4bea1d6e007c4ad38c6839fa71cbb63b6dbf5b595aa38dc9b1093c11"
++"checksum version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce"
++"checksum walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d"
++"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.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
++"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.4 (registry+https://github.com/rust-lang/crates.io-index)" = "fa515c5163a99cc82bab70fd3bfdd36d827be85de63737b40fcef2ce084a436e"
++"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 xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d089681aa106a86fade1b0128fb5daf07d5867a509ab036d99988dec80429a57"
diff --git a/pkgs/applications/misc/elfx86exts/default.nix b/pkgs/applications/misc/elfx86exts/default.nix
new file mode 100644
index 00000000000..56a3751a0bf
--- /dev/null
+++ b/pkgs/applications/misc/elfx86exts/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "elfx86exts";
+  version = "0.4.3";
+
+  src = fetchFromGitHub {
+    owner = "pkgw";
+    repo = pname;
+    rev = "${pname}@${version}";
+    sha256 = "1j9ca2lyxjsrf0rsfv83xi53vj6jz5nb76xibh367brcsc26mvd6";
+  };
+
+  cargoSha256 = "1dfhx40jr5llqa554wifd920mqdbm8s5fns98m6vcqdjxzan4nr2";
+
+  meta = with stdenv.lib; {
+    description = "Decode x86 binaries and print out which instruction set extensions they use.";
+    longDescription = ''
+      Disassemble a binary containing x86 instructions and print out which extensions it uses.
+      Despite the utterly misleading name, this tool supports ELF and MachO binaries, and
+      perhaps PE-format ones as well. (It used to be more limited.)
+    '';
+    homepage = "https://github.com/pkgw/elfx86exts";
+    maintainers = with maintainers; [ rmcgibbo ];
+    license = with licenses; [ mit ];
+  };
+}
diff --git a/pkgs/applications/misc/gallery-dl/default.nix b/pkgs/applications/misc/gallery-dl/default.nix
index 906c458fbaf..398cec3a2bb 100644
--- a/pkgs/applications/misc/gallery-dl/default.nix
+++ b/pkgs/applications/misc/gallery-dl/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonApplication rec {
   pname = "gallery_dl";
-  version = "1.16.0";
+  version = "1.16.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "35df7605a21a05c3290f4324289fd6f584029f4135a8220dec7d490c4e742a1c";
+    sha256 = "51d789aac43013e25c1fad553f214cb1f43b1ae02e0651b640f102c5b9280aea";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/applications/misc/geoipupdate/default.nix b/pkgs/applications/misc/geoipupdate/default.nix
index 1f2c275b13d..707a7adb8a1 100644
--- a/pkgs/applications/misc/geoipupdate/default.nix
+++ b/pkgs/applications/misc/geoipupdate/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "geoipupdate";
-  version = "4.5.0";
+  version = "4.6.0";
 
   src = fetchFromGitHub {
     owner = "maxmind";
     repo = "geoipupdate";
     rev = "v${version}";
-    sha256 = "0lhz7i4lprsik3s41y19vphsyc29vz6cbxikmvkmy6xjn40khjfr";
+    sha256 = "1rzc8kidm8nr9pbcbq96kax3cbf39afrk5vzpl04lzpw3jbbakjq";
   };
 
   vendorSha256 = "1f858k8cl0dgiw124jv0p9jhi9aqxnc3nmc7hksw70fla2nzjrv0";
diff --git a/pkgs/applications/misc/gpsbabel/default.nix b/pkgs/applications/misc/gpsbabel/default.nix
index 70862bb61e7..6b8cb66c78b 100644
--- a/pkgs/applications/misc/gpsbabel/default.nix
+++ b/pkgs/applications/misc/gpsbabel/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, zlib, which, IOKit, qtbase, libusb-compat-0_1 }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, libusb1, qtbase, zlib, IOKit, which }:
 
 stdenv.mkDerivation rec {
   pname = "gpsbabel";
-  version = "1.6.0";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "gpsbabel";
     repo = "gpsbabel";
     rev = "gpsbabel_${lib.replaceStrings ["."] ["_"] version}";
-    sha256 = "0q17jhmaf7z5lld2ff7h6jb3v1yz8hbwd2rmaq2dsamc53dls8iw";
+    sha256 = "010g0vd2f5knpq5p7qfnl31kv3r8m5sjdsafcinbj5gh02j2nzpy";
   };
 
   patches = [
@@ -18,9 +18,11 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  buildInputs = [ zlib qtbase which libusb-compat-0_1 ]
+  buildInputs = [ libusb1 qtbase zlib ]
     ++ lib.optionals stdenv.isDarwin [ IOKit ];
 
+  checkInputs = [ which ]; # Avoid ./testo.d/kml.test: line 74: which: command not found. Skipping KML validation phase.
+
   /* FIXME: Building the documentation, with "make doc", requires this:
 
       [ libxml2 libxslt perl docbook_xml_dtd_412 docbook_xsl fop ]
diff --git a/pkgs/applications/misc/gpxsee/default.nix b/pkgs/applications/misc/gpxsee/default.nix
index a081076ac83..5374a18b154 100644
--- a/pkgs/applications/misc/gpxsee/default.nix
+++ b/pkgs/applications/misc/gpxsee/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "gpxsee";
-  version = "7.37";
+  version = "8.0";
 
   src = fetchFromGitHub {
     owner = "tumic0";
     repo = "GPXSee";
     rev = version;
-    sha256 = "0fpb43smh0kwic5pdxs46c0hkqj8g084h72pa024x1my6w12y9b8";
+    sha256 = "01ggakpzmiwkqdzc9xqc93xmynd53kzpwl99q3l9z2hpqyzlnj2a";
   };
 
   patches = (substituteAll {
@@ -37,7 +37,7 @@ mkDerivation rec {
     '';
     homepage = "https://www.gpxsee.org/";
     changelog = "https://build.opensuse.org/package/view_file/home:tumic:GPXSee/gpxsee/gpxsee.changes";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ womfoo sikmir ];
     platforms = with platforms; linux ++ darwin;
   };
diff --git a/pkgs/applications/misc/gpxsee/fix-qttranslations-path.diff b/pkgs/applications/misc/gpxsee/fix-qttranslations-path.diff
index 3b546338d20..757d9b8c657 100644
--- a/pkgs/applications/misc/gpxsee/fix-qttranslations-path.diff
+++ b/pkgs/applications/misc/gpxsee/fix-qttranslations-path.diff
@@ -1,18 +1,18 @@
 diff --git i/src/GUI/app.cpp w/src/GUI/app.cpp
-index 10e84d5..1e0abbe 100644
+index 37e9d3f..d4a065c 100644
 --- i/src/GUI/app.cpp
 +++ w/src/GUI/app.cpp
-@@ -34,11 +34,10 @@ App::App(int &argc, char **argv) : QApplication(argc, argv)
- 	installTranslator(gpxsee);
+@@ -35,11 +35,10 @@ App::App(int &argc, char **argv) : QApplication(argc, argv)
+ 		installTranslator(gpxsee);
  
  	QTranslator *qt = new QTranslator(this);
 -#if defined(Q_OS_WIN32) || defined(Q_OS_MAC)
 +#if defined(Q_OS_WIN32)
- 	qt->load(QLocale::system(), "qt", "_", ProgramPaths::translationsDir());
+ 	if (qt->load(QLocale::system(), "qt", "_", ProgramPaths::translationsDir()))
  #else // Q_OS_WIN32 || Q_OS_MAC
--	qt->load(QLocale::system(), "qt", "_", QLibraryInfo::location(
--	  QLibraryInfo::TranslationsPath));
-+	qt->load(QLocale::system(), "qt", "_", QLatin1String("@qttranslations@/translations"));
+-	if (qt->load(QLocale::system(), "qt", "_", QLibraryInfo::location(
+-	  QLibraryInfo::TranslationsPath)))
++	if (qt->load(QLocale::system(), "qt", "_", QLatin1String("@qttranslations@/translations")))
  #endif // Q_OS_WIN32 || Q_OS_MAC
- 	installTranslator(qt);
+ 		installTranslator(qt);
  
diff --git a/pkgs/applications/misc/gramps/default.nix b/pkgs/applications/misc/gramps/default.nix
index 1ef00efaf7b..6d28abb737f 100644
--- a/pkgs/applications/misc/gramps/default.nix
+++ b/pkgs/applications/misc/gramps/default.nix
@@ -12,8 +12,8 @@ in buildPythonApplication rec {
   version = "5.1.3";
   pname = "gramps";
 
-  nativeBuildInputs = [ wrapGAppsHook gettext ];
-  buildInputs = [ intltool gtk3 gobject-introspection pango gexiv2 ]
+  nativeBuildInputs = [ wrapGAppsHook intltool gettext ];
+  buildInputs = [ gtk3 gobject-introspection pango gexiv2 ]
     # Map support
     ++ stdenv.lib.optional enableOSM osm-gps-map
     # Graphviz support
diff --git a/pkgs/applications/misc/herbe/default.nix b/pkgs/applications/misc/herbe/default.nix
new file mode 100644
index 00000000000..0d05228b63e
--- /dev/null
+++ b/pkgs/applications/misc/herbe/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, lib, fetchFromGitHub, libX11, libXft, freetype, patches ? [ ],
+  extraLibs ? [ ] }:
+
+stdenv.mkDerivation rec {
+  pname = "herbe";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "dudik";
+    repo = pname;
+    rev = version;
+    sha256 = "0358i5jmmlsvy2j85ij7m1k4ar2jr5lsv7y1c58dlf9710h186cv";
+  };
+
+  inherit patches;
+
+  postPatch = ''
+    sed -i 's_/usr/include/freetype2_${freetype.dev}/include/freetype2_' Makefile
+  '';
+
+  buildInputs = [ libX11 libXft freetype ] ++ extraLibs;
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with lib; {
+    description = "Daemon-less notifications without D-Bus";
+    homepage = "https://github.com/dudik/herbe";
+    license = licenses.mit;
+    # NOTE: Could also work on 'unix'.
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ wishfort36 ];
+  };
+}
diff --git a/pkgs/applications/misc/hubstaff/revision.json b/pkgs/applications/misc/hubstaff/revision.json
index 2fd29444dad..9b0ffe67f0c 100644
--- a/pkgs/applications/misc/hubstaff/revision.json
+++ b/pkgs/applications/misc/hubstaff/revision.json
@@ -1,5 +1,5 @@
 {
-  "url": "https://hubstaff-production.s3.amazonaws.com/downloads/HubstaffClient/Builds/Release/1.5.2-bead991b/Hubstaff-1.5.2-bead991b.sh",
-  "version": "1.5.2-bead991b",
-  "sha256": "068b0q94ydldyjmzbka1j94vr1xdxvkxq79pp7ria81hvpp68yxf"
+  "url": "https://hubstaff-production.s3.amazonaws.com/downloads/HubstaffClient/Builds/Release/1.5.15-28673d1c/Hubstaff-1.5.15-28673d1c.sh",
+  "version": "1.5.15-28673d1c",
+  "sha256": "0ging41l3a3sdj6bggh913h71gqmb8l3rplp4civpgclnfzv7fg2"
 }
diff --git a/pkgs/applications/misc/inkcut/avoid-name-clash-between-inkcut-and-extension.patch b/pkgs/applications/misc/inkcut/avoid-name-clash-between-inkcut-and-extension.patch
deleted file mode 100644
index 34e4e6f0e7f..00000000000
--- a/pkgs/applications/misc/inkcut/avoid-name-clash-between-inkcut-and-extension.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From ddc1f9e63e7a769c71131b56f6a2a011c649635c Mon Sep 17 00:00:00 2001
-From: Arnout Engelen <arnout@bzzt.net>
-Date: Tue, 24 Nov 2020 15:34:40 +0100
-Subject: [PATCH] Avoid name clash between inkscape plugin and inkcut itself
-
-Ohterwise, with an unfortunate PYTONPATH, inkcut would no longer
-start since it'd try to invoke the inkcut.py from the extension
-instead of the main application
----
- plugins/inkscape/{inkcut.py => inkcut4inkscape.py} | 2 +-
- plugins/inkscape/inkcut_cut.inx                    | 2 +-
- plugins/inkscape/inkcut_cut.py                     | 2 +-
- plugins/inkscape/inkcut_open.inx                   | 2 +-
- plugins/inkscape/inkcut_open.py                    | 2 +-
- 5 files changed, 5 insertions(+), 5 deletions(-)
- rename plugins/inkscape/{inkcut.py => inkcut4inkscape.py} (98%)
-
-diff --git a/plugins/inkscape/inkcut.py b/plugins/inkscape/inkcut4inkscape.py
-similarity index 98%
-rename from plugins/inkscape/inkcut.py
-rename to plugins/inkscape/inkcut4inkscape.py
-index 5b90475..7dc8d86 100644
---- a/plugins/inkscape/inkcut.py
-+++ b/plugins/inkscape/inkcut4inkscape.py
-@@ -2,7 +2,7 @@
- # -*- coding: utf-8 -*-
- """
- Inkcut, Plot HPGL directly from Inkscape.
--   inkcut.py
-+   inkcut4inkscape.py
- 
-    Copyright 2018 The Inkcut Team
- 
-diff --git a/plugins/inkscape/inkcut_cut.inx b/plugins/inkscape/inkcut_cut.inx
-index 4b44ae5..3db8721 100644
---- a/plugins/inkscape/inkcut_cut.inx
-+++ b/plugins/inkscape/inkcut_cut.inx
-@@ -2,7 +2,7 @@
-   <_name>Cut selection...</_name>
-   <id>org.ekips.filter.inkcut.cut</id>
-   <dependency type="executable" location="extensions">inkcut_cut.py</dependency>
--  <dependency type="executable" location="extensions">inkcut.py</dependency>
-+  <dependency type="executable" location="extensions">inkcut4inkscape.py</dependency>
-   <dependency type="executable" location="extensions">inkex.py</dependency>  
-   <effect>
-     <object-type>all</object-type>
-diff --git a/plugins/inkscape/inkcut_cut.py b/plugins/inkscape/inkcut_cut.py
-index acaf812..777629a 100644
---- a/plugins/inkscape/inkcut_cut.py
-+++ b/plugins/inkscape/inkcut_cut.py
-@@ -37,7 +37,7 @@
- else:
-     inkex.localize()
- import subprocess
--from inkcut import contains_text, convert_objects_to_paths
-+from inkcut4inkscape import contains_text, convert_objects_to_paths
- 
- 
- 
-diff --git a/plugins/inkscape/inkcut_open.inx b/plugins/inkscape/inkcut_open.inx
-index 45ee585..2dcd38e 100644
---- a/plugins/inkscape/inkcut_open.inx
-+++ b/plugins/inkscape/inkcut_open.inx
-@@ -2,7 +2,7 @@
-   <_name>Open current document...</_name>
-   <id>org.ekips.filter.inkcut.open</id>
-   <dependency type="executable" location="extensions">inkcut_open.py</dependency>
--  <dependency type="executable" location="extensions">inkcut.py</dependency>
-+  <dependency type="executable" location="extensions">inkcut4inkscape.py</dependency>
-   <dependency type="executable" location="extensions">inkex.py</dependency>  
-   <effect>
-     <object-type>all</object-type>
-diff --git a/plugins/inkscape/inkcut_open.py b/plugins/inkscape/inkcut_open.py
-index b4652eb..e4c2d62 100644
---- a/plugins/inkscape/inkcut_open.py
-+++ b/plugins/inkscape/inkcut_open.py
-@@ -38,7 +38,7 @@
-     inkex.localize()
- import subprocess
- 
--from inkcut import convert_objects_to_paths
-+from inkcut4inkscape import convert_objects_to_paths
- 
- DEBUG = False
- try:
diff --git a/pkgs/applications/misc/inkcut/default.nix b/pkgs/applications/misc/inkcut/default.nix
index 481069feac0..4ca373ee275 100644
--- a/pkgs/applications/misc/inkcut/default.nix
+++ b/pkgs/applications/misc/inkcut/default.nix
@@ -8,21 +8,15 @@ with python3Packages;
 
 buildPythonApplication rec {
   pname = "inkcut";
-  version = "2.1.2";
+  version = "2.1.3";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1zn5i69f3kimcwdd2qkqd3hd1hq76a6i5wxxfb91ih2hj04vdbmx";
+    sha256 = "0px0xdv6kyzkkpmvryrdfavv1qy2xrqdxkpmhvx1gj649xcabv32";
   };
 
-  patches = [
-    # https://github.com/inkcut/inkcut/pull/292 but downloaded
-    # because of https://github.com/NixOS/nixpkgs/issues/32084
-    ./avoid-name-clash-between-inkcut-and-extension.patch
-  ];
-
   nativeBuildInputs = [ wrapQtAppsHook ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/misc/josm/default.nix b/pkgs/applications/misc/josm/default.nix
index eab2519ad08..30e7882b60b 100644
--- a/pkgs/applications/misc/josm/default.nix
+++ b/pkgs/applications/misc/josm/default.nix
@@ -1,20 +1,20 @@
 { stdenv, fetchurl, fetchsvn, makeWrapper, unzip, jre, libXxf86vm }:
 let
   pname = "josm";
-  version = "17329";
+  version = "17428";
   srcs = {
     jar = fetchurl {
       url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar";
-      sha256 = "0hra146akadqz9acj1xa2vzrmipfzf8li7sgsmk169xr991y653k";
+      sha256 = "0fhnq0836jp72br808hhw1ki70zc9wqcwfhnizb8pzjvs4wgx36w";
     };
     macosx = fetchurl {
       url = "https://josm.openstreetmap.de/download/macosx/josm-macosx-${version}.zip";
-      sha256 = "0i09jnfqbcirmic9vayrp78lnyk4mfh7ax3v3cs8kyqhk930pscf";
+      sha256 = "126yy6y7mkpqzkrkqkzzn3mwnl1yjkmd5k895k7mmk2inmcsvqgm";
     };
     pkg = fetchsvn {
       url = "https://josm.openstreetmap.de/svn/trunk/native/linux/tested";
       rev = version;
-      sha256 = "0ybjca6dhnbwl3xqwrc91c444fzs1zrlnz7qr3l79s1vll9r4qd1";
+      sha256 = "198kq490y5wzxz0a5prb9anykq6dzg0imxfkchsas233inbzggql";
     };
   };
 in
diff --git a/pkgs/applications/misc/keeweb/default.nix b/pkgs/applications/misc/keeweb/default.nix
index 8c1c56dacdc..801e5841c1b 100644
--- a/pkgs/applications/misc/keeweb/default.nix
+++ b/pkgs/applications/misc/keeweb/default.nix
@@ -4,19 +4,21 @@ let
   throwSystem = throw "Unsupported system: ${system}";
 
   pname = "keeweb";
-  version = "1.16.0";
+  version = "1.16.5";
   name = "${pname}-${version}";
 
   suffix = {
     x86_64-linux = "linux.AppImage";
-    x86_64-darwin = "mac.dmg";
+    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 = "1pivic7n5nv00s8bb51i2jz2mxgjn92hkc8n0p8662ai1cdng47g";
-      x86_64-darwin = "0q6k0qgkgzid9yjbfsfpp8l9dr0n8xp25a4jf2bxwickm4irs9mz";
+      x86_64-linux = "18qcr8zyn20n5zrrha0qwgq2ic10bp189fps87lbnmcjknrkac9g";
+      x86_64-darwin = "0crpjkcqgs7q5c814bx2npjh9kpyyb87yagm5wcy9j21kwrbqv6k";
+      aarch64-darwin = "1wkf9inrm5qg0c4xrk0s97mx5j21xvlqwwkvydl513gyfzi2g9gp";
     }.${system} or throwSystem;
   };
 
@@ -29,7 +31,7 @@ let
     homepage = "https://keeweb.info/";
     license = licenses.mit;
     maintainers = with maintainers; [ sikmir ];
-    platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
   };
 
   linux = appimageTools.wrapType2 rec {
diff --git a/pkgs/applications/misc/keystore-explorer/default.nix b/pkgs/applications/misc/keystore-explorer/default.nix
new file mode 100644
index 00000000000..613b96d1731
--- /dev/null
+++ b/pkgs/applications/misc/keystore-explorer/default.nix
@@ -0,0 +1,40 @@
+{ fetchzip, stdenv, jdk8, runtimeShell }:
+
+stdenv.mkDerivation rec {
+  version = "5.4.4";
+  pname = "keystore-explorer";
+  src = fetchzip {
+    url = "https://github.com/kaikramer/keystore-explorer/releases/download/v${version}/kse-544.zip";
+    sha256 = "01kpa8g6p6vcqq9y70w5bm8jbw4kp55pbywj2zrhgjibrhgjqi0b";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    mkdir -p $out/share/keystore-explorer
+    cp -R icons licenses lib kse.jar $out/share/keystore-explorer/
+
+    # keystore-explorer's kse.sh tries to detect the path of Java by using
+    # Python on Darwin; just write our own start script to avoid unnecessary dependencies
+    cat > $out/bin/keystore-explorer <<EOF
+    #!${runtimeShell}
+    export JAVA_HOME=${jdk8.home}
+    exec ${jdk8}/bin/java -jar $out/share/keystore-explorer/kse.jar "\$@"
+    EOF
+    chmod +x $out/bin/keystore-explorer
+
+    runHook postInstall
+  '';
+
+  dontStrip = true;
+  dontBuild = true;
+  dontConfigure = true;
+
+  meta = {
+    description = "Open source GUI replacement for the Java command-line utilities keytool and jarsigner";
+    license = stdenv.lib.licenses.gpl3Only;
+    maintainers = [ stdenv.lib.maintainers.numinit ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/pkgs/applications/misc/koreader/default.nix b/pkgs/applications/misc/koreader/default.nix
index 4ffd3f6fbf6..54d6a66fc08 100644
--- a/pkgs/applications/misc/koreader/default.nix
+++ b/pkgs/applications/misc/koreader/default.nix
@@ -11,12 +11,12 @@
 let font-droid = nerdfonts.override { fonts = [ "DroidSansMono" ]; };
 in stdenv.mkDerivation rec {
   pname = "koreader";
-  version = "2020.11";
+  version = "2020.12";
 
   src = fetchurl {
     url =
       "https://github.com/koreader/koreader/releases/download/v${version}/koreader-${version}-amd64.deb";
-    sha256 = "15nw8kyjyhqlr742gkpzn1b9906rdm6cssnc6jbbph5pjdlzspc4";
+    sha256 = "0x97mm7h8kr1jps0hzdgl9irakma85ikrhzr18wc1plmffgv6kwm";
   };
 
   sourceRoot = ".";
@@ -46,7 +46,7 @@ in stdenv.mkDerivation rec {
     description =
       "An ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices";
     platforms = intersectLists platforms.x86_64 platforms.linux;
-    license = licenses.agpl3;
-    maintainers = [ maintainers.contrun ];
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ contrun neonfuz];
   };
 }
diff --git a/pkgs/applications/misc/ksmoothdock/default.nix b/pkgs/applications/misc/ksmoothdock/default.nix
index 9538329bf9b..e5cb6f5816e 100644
--- a/pkgs/applications/misc/ksmoothdock/default.nix
+++ b/pkgs/applications/misc/ksmoothdock/default.nix
@@ -25,6 +25,11 @@ mkDerivation rec {
       url = "https://github.com/dangvd/ksmoothdock/commit/00799bef8a1c1fe61ef9274866267d9fe9194041.patch";
       sha256 = "1nmb7gf1ggzicxz8k4fd67xhwjy404myqzjpgjym66wqxm0arni4";
     })
+    # Pull request to fix build on Qt 5.15 https://github.com/dangvd/ksmoothdock/pull/123
+    (fetchpatch {
+      url = "https://github.com/dangvd/ksmoothdock/commit/259527aacadb0fd9110d4425b9bf41a15bedce72.patch";
+      sha256 = "12nj58v9qqrynarn3gpywih3w27mr4n51z1b8mh0rfbnd2kib8dc";
+    })
   ];
 
   nativeBuildInputs = [ cmake extra-cmake-modules ];
diff --git a/pkgs/applications/misc/librecad/default.nix b/pkgs/applications/misc/librecad/default.nix
index 0df0f86ef45..6f7967dfdfd 100644
--- a/pkgs/applications/misc/librecad/default.nix
+++ b/pkgs/applications/misc/librecad/default.nix
@@ -1,5 +1,6 @@
 { boost
 , fetchFromGitHub
+, fetchpatch
 , installShellFiles
 , mkDerivationWith
 , muparser
@@ -16,7 +17,7 @@ let
   stdenv = gcc8Stdenv;
 in
 
-# Doesn't build with gcc9
+  # Doesn't build with gcc9
 mkDerivationWith stdenv.mkDerivation rec {
   pname = "librecad";
   version = "2.2.0-rc1";
@@ -30,6 +31,13 @@ mkDerivationWith stdenv.mkDerivation rec {
 
   patches = [
     ./fix_qt_5_11_build.patch
+    (
+      fetchpatch {
+        # Fix missing app name and icon on Wayland.
+        url = "https://github.com/LibreCAD/LibreCAD/commit/a17f8281093403f0c7c36996232665ed21906688.patch";
+        sha256 = "1x46psh4bcx2hxck4l83ki43g1252vb033i2x94h4rpai9hww4d5";
+      }
+    )
   ];
 
   postPatch = ''
diff --git a/pkgs/applications/misc/llpp/default.nix b/pkgs/applications/misc/llpp/default.nix
index c16322ad84f..8b3dfa35ff4 100644
--- a/pkgs/applications/misc/llpp/default.nix
+++ b/pkgs/applications/misc/llpp/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
     homepage = "https://repo.or.cz/w/llpp.git";
     description = "A MuPDF based PDF pager written in OCaml";
     platforms = platforms.linux;
-    maintainers = with maintainers; [ pSub enzime ];
+    maintainers = with maintainers; [ pSub ];
     license = licenses.gpl3;
   };
 }
diff --git a/pkgs/applications/misc/mapproxy/default.nix b/pkgs/applications/misc/mapproxy/default.nix
index 41ae683548d..48e2a3960ee 100644
--- a/pkgs/applications/misc/mapproxy/default.nix
+++ b/pkgs/applications/misc/mapproxy/default.nix
@@ -1,38 +1,15 @@
 { lib
 , pkgs
-, python
+, python3
 }:
-let
-  py = python.override {
-    packageOverrides = self: super: {
-      pyproj = super.pyproj.overridePythonAttrs (oldAttrs: rec {
-      version = "1.9.6";
-      src = pkgs.fetchFromGitHub {
-        owner = "pyproj4";
-        repo = "pyproj";
-        rev = "v${version}rel";
-        sha256 = "18v4h7jx4mcc0x2xy8y7dfjq9bzsyxs8hdb6v67cabvlz2njziqy";
-      };
-      nativeBuildInputs = with python.pkgs; [ cython ];
-      patches = [ ];
-      checkPhase = ''
-        runHook preCheck
-        pushd unittest  # changing directory should ensure we're importing the global pyproj
-        ${python.interpreter} test.py && ${python.interpreter} -c "import doctest, pyproj, sys; sys.exit(doctest.testmod(pyproj)[0])"
-        popd
-        runHook postCheck
-      '';
-      });
-    };
-  };
-in
-with py.pkgs;
+
+with python3.pkgs;
 buildPythonApplication rec {
   pname = "MapProxy";
-  version = "1.12.0";
+  version = "1.13.0";
   src = fetchPypi {
   inherit pname version;
-  sha256 = "622e3a7796ef861ba21e42231b49c18d00d75f03eaf3f01a2b7687be7568e2ec";
+  sha256 = "0qi63ap8yi5g2cas33jv4jsmdrl6yv3qp6bh0zxrfpkb704lcng4";
   };
   prePatch = ''
     substituteInPlace mapproxy/util/ext/serving.py --replace "args = [sys.executable] + sys.argv" "args = sys.argv"
diff --git a/pkgs/applications/misc/mediaelch/default.nix b/pkgs/applications/misc/mediaelch/default.nix
new file mode 100644
index 00000000000..c4ed0c975ea
--- /dev/null
+++ b/pkgs/applications/misc/mediaelch/default.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, qmake
+, curl
+, ffmpeg
+, libmediainfo
+, libzen
+, qtbase
+, qtdeclarative
+, qtmultimedia
+}:
+
+mkDerivation rec {
+  pname = "mediaelch";
+  version = "2.8.2";
+
+  src = fetchFromGitHub {
+    owner = "Komet";
+    repo = "MediaElch";
+    rev = "v${version}";
+    sha256 = "0y26vfgrdym461lzmm5x3z5ai9ky09vlk3cy4sq6hwlj7mzcz0k7";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ qmake ];
+
+  buildInputs = [ curl libmediainfo libzen ffmpeg qtbase qtdeclarative qtmultimedia ];
+
+  prePatch = ''
+    substituteInPlace MediaElch.pro --replace "/usr" "$out"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://mediaelch.de/mediaelch/";
+    description = "Media Manager for Kodi";
+    license = licenses.lgpl3Only;
+    maintainers = with maintainers; [ stunkymonkey ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/merkaartor/default.nix b/pkgs/applications/misc/merkaartor/default.nix
index 79ee45b4c1c..e73805f67b3 100644
--- a/pkgs/applications/misc/merkaartor/default.nix
+++ b/pkgs/applications/misc/merkaartor/default.nix
@@ -1,18 +1,25 @@
-{ stdenv, fetchFromGitHub, makeWrapper, qmake, pkgconfig, boost, gdal, proj
-, qtbase, qtsvg, qtwebview, qtwebkit }:
+{ mkDerivation, lib, fetchFromGitHub, qmake, pkgconfig, fetchpatch
+, boost, gdal, proj, qtbase, qtsvg, qtwebview, qtwebkit }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "merkaartor";
-  version = "unstable-2019-11-12";
+  version = "0.18.4";
 
   src = fetchFromGitHub {
     owner = "openstreetmap";
     repo = "merkaartor";
-    rev = "29b3388680a03f1daac0037a2b504ea710da879a";
-    sha256 = "0h3d3srzl06p2ajq911j05zr4vkl88qij18plydx45yqmvyvh0xz";
+    rev = version;
+    sha256 = "vwO4/a7YF9KbpxcFGTFCdG6SfwEyhISlEtcA+rMebUA=";
   };
 
-  nativeBuildInputs = [ makeWrapper qmake pkgconfig ];
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/openstreetmap/merkaartor/commit/e72553a7ea2c7ba0634cc3afcd27a9f7cfef089c.patch";
+      sha256 = "NAisplnS3xHSlRpX+fH15NpbaD+uM57OCsTYGKlIR7U=";
+    })
+  ];
+
+  nativeBuildInputs = [ qmake pkgconfig ];
 
   buildInputs = [ boost gdal proj qtbase qtsvg qtwebview qtwebkit ];
 
@@ -20,12 +27,7 @@ stdenv.mkDerivation rec {
 
   NIX_CFLAGS_COMPILE = "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H";
 
-  postInstall = ''
-    wrapProgram $out/bin/merkaartor \
-      --set QT_QPA_PLATFORM_PLUGIN_PATH ${qtbase.bin}/lib/qt-*/plugins/platforms
-  '';
-
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "OpenStreetMap editor";
     homepage = "http://merkaartor.be/";
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/misc/moolticute/default.nix b/pkgs/applications/misc/moolticute/default.nix
index bc825b94fac..804ba33209a 100644
--- a/pkgs/applications/misc/moolticute/default.nix
+++ b/pkgs/applications/misc/moolticute/default.nix
@@ -9,13 +9,13 @@
 
 mkDerivation rec {
   pname = "moolticute";
-  version = "0.44.17";
+  version = "0.44.21";
 
   src = fetchFromGitHub {
     owner = "mooltipass";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1bqp99n8cqr7kjiffbs39v0dd280f50hid5py3c4zgc7aqj9k0bx";
+    sha256 = "1m3iy2v8mimyb25xisr7i4ga6qlggv1i2aji9qfgagns7ffp53nf";
   };
 
   outputs = [ "out" "udev" ];
diff --git a/pkgs/applications/misc/mwic/default.nix b/pkgs/applications/misc/mwic/default.nix
index 3be02e7c41c..dffc27bd40b 100644
--- a/pkgs/applications/misc/mwic/default.nix
+++ b/pkgs/applications/misc/mwic/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs = with pythonPackages; [ pyenchant regex ];
 
   postFixup = ''
-    buildPythonPath "$out"
+    wrapPythonPrograms
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/misc/obsidian/default.nix b/pkgs/applications/misc/obsidian/default.nix
index b6fd295ba82..3379e2e9b9d 100644
--- a/pkgs/applications/misc/obsidian/default.nix
+++ b/pkgs/applications/misc/obsidian/default.nix
@@ -30,12 +30,12 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "obsidian";
-  version = "0.9.20";
+  version = "0.10.1";
 
   src = fetchurl {
     url =
       "https://github.com/obsidianmd/obsidian-releases/releases/download/v${version}/obsidian-${version}.asar.gz";
-    sha256 = "19yhmqaz5mynl879q38g338q4w8mwx75fnl25bhwrvy7yy3aa23l";
+    sha256 = "wnCgW4EAcg0Oc1fqOZBYKN2g8N27riL+yonoIy0AfxA=";
   };
 
   nativeBuildInputs = [ makeWrapper graphicsmagick ];
diff --git a/pkgs/applications/misc/orca/default.nix b/pkgs/applications/misc/orca/default.nix
index 377f00d1c16..e438fd0762f 100644
--- a/pkgs/applications/misc/orca/default.nix
+++ b/pkgs/applications/misc/orca/default.nix
@@ -35,13 +35,13 @@
 
 buildPythonApplication rec {
   pname = "orca";
-  version = "3.38.1";
+  version = "3.38.2";
 
   format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1sqmq9xhcm3rc3mbhj1bdn55bkpzbk72xhmgka75syxh77gzz0ld";
+    sha256 = "UAX/LhHdH3E/WswZA6JwEZvFjDD9uMn4K8rHFJfGwjw=";
   };
 
   patches = [
diff --git a/pkgs/applications/misc/overmind/default.nix b/pkgs/applications/misc/overmind/default.nix
index ca05facaa48..537ae3741ef 100644
--- a/pkgs/applications/misc/overmind/default.nix
+++ b/pkgs/applications/misc/overmind/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "overmind";
-  version = "2.1.1";
+  version = "2.2.0";
   goPackagePath = "github.com/DarthSim/overmind";
 
   nativeBuildInputs = [ makeWrapper ];
@@ -15,7 +15,7 @@ buildGoPackage rec {
     owner = "DarthSim";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0akqn8s1mgk5q00gzh3ymq7nrnkyi6avyaxxvbxnjyq9bxsqz327";
+    sha256 = "00v6l4138vv32bqfkzrhk4hfl52a00rlg9ywhp4difgrnz7zj6xb";
   };
 
   goDeps = ./deps.nix;
diff --git a/pkgs/applications/misc/overmind/deps.nix b/pkgs/applications/misc/overmind/deps.nix
index afcc8d9726f..b4c9211a24a 100644
--- a/pkgs/applications/misc/overmind/deps.nix
+++ b/pkgs/applications/misc/overmind/deps.nix
@@ -46,15 +46,6 @@
     };
   }
   {
-    goPackagePath = "github.com/pkg/term";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pkg/term";
-      rev = "aa71e9d9e942";
-      sha256 = "1gyxnj4jq3z2k4gjwwlz8hn56c1ys8jvafdd61nd6qs8jwp6iqp3";
-    };
-  }
-  {
     goPackagePath = "github.com/pmezard/go-difflib";
     fetch = {
       type = "git";
@@ -127,15 +118,6 @@
     };
   }
   {
-    goPackagePath = "gopkg.in/urfave/cli.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/urfave/cli.v1";
-      rev = "v1.20.0";
-      sha256 = "0y6f4sbzkiiwrxbl15biivj8c7qwxnvm3zl2dd3mw4wzg4x10ygj";
-    };
-  }
-  {
     goPackagePath = "gopkg.in/yaml.v2";
     fetch = {
       type = "git";
diff --git a/pkgs/applications/misc/pdfpc/default.nix b/pkgs/applications/misc/pdfpc/default.nix
index fc0bf62f1e9..216f8c4b8b8 100644
--- a/pkgs/applications/misc/pdfpc/default.nix
+++ b/pkgs/applications/misc/pdfpc/default.nix
@@ -1,16 +1,17 @@
 { stdenv, fetchFromGitHub, cmake, pkgconfig, vala, gtk3, libgee, fetchpatch
-, poppler, libpthreadstubs, gstreamer, gst-plugins-base, gst-plugins-good, gst-libav, librsvg, pcre, gobject-introspection, wrapGAppsHook }:
+, poppler, libpthreadstubs, gstreamer, gst-plugins-base, gst-plugins-good, gst-libav, librsvg, pcre, gobject-introspection, wrapGAppsHook
+, webkitgtk, discount, json-glib }:
 
 stdenv.mkDerivation rec {
   name = "${product}-${version}";
   product = "pdfpc";
-  version = "4.4.1";
+  version = "4.5.0";
 
   src = fetchFromGitHub {
     repo = product;
     owner = product;
     rev = "v${version}";
-    sha256 = "11n925c5jj3yfwnqkgxzqrmsrpqh8ls1g4idmqqzpsanpam1xvna";
+    sha256 = "0bmy51w6ypz927hxwp5g7wapqvzqmsi3w32rch6i3f94kg1152ck";
   };
 
   nativeBuildInputs = [
@@ -27,6 +28,9 @@ stdenv.mkDerivation rec {
     gst-plugins-base
     (gst-plugins-good.override { gtkSupport = true; })
     gst-libav
+    webkitgtk
+    discount
+    json-glib
   ];
 
   cmakeFlags = stdenv.lib.optional stdenv.isDarwin "-DMOVIES=OFF";
diff --git a/pkgs/applications/misc/polybar/default.nix b/pkgs/applications/misc/polybar/default.nix
index df08de7a4a2..940cd1cdc91 100644
--- a/pkgs/applications/misc/polybar/default.nix
+++ b/pkgs/applications/misc/polybar/default.nix
@@ -27,13 +27,13 @@ assert i3GapsSupport -> ! i3Support     && jsoncpp != null && i3-gaps != null;
 
 stdenv.mkDerivation rec {
     pname = "polybar";
-    version = "3.5.0";
+    version = "3.5.2";
 
     src = fetchFromGitHub {
       owner = pname;
       repo = pname;
       rev = version;
-      sha256 = "1kga98cgllsjcq692l27y01sgl8ii4wxp70kmdcwxkrliylg3dji";
+      sha256 = "1ir8fdnzrba9fkkjfvax5szx5h49lavwgl9pabjzrpbvif328g3x";
       fetchSubmodules = true;
     };
 
diff --git a/pkgs/applications/misc/printrun/default.nix b/pkgs/applications/misc/printrun/default.nix
index cadd98c7426..c8f454c3545 100644
--- a/pkgs/applications/misc/printrun/default.nix
+++ b/pkgs/applications/misc/printrun/default.nix
@@ -1,13 +1,14 @@
 { stdenv, python27Packages, fetchFromGitHub }:
 
 python27Packages.buildPythonApplication rec {
-  name = "printrun-20150310";
+  pname = "printrun";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "kliment";
     repo = "Printrun";
-    rev = name;
-    sha256 = "09ijv8h4k5h15swg64s7igamvynawz7gdi7hiymzrzywdvr0zwsa";
+    rev = "${pname}-${version}";
+    sha256 = "0nhcx1bi1hals0a6d6994y0kcwsfqx3hplwbmn9136hgrplg0l2l";
   };
 
   propagatedBuildInputs = with python27Packages; [
diff --git a/pkgs/applications/misc/redshift/default.nix b/pkgs/applications/misc/redshift/default.nix
index 4d0c168962f..99d65eb090a 100644
--- a/pkgs/applications/misc/redshift/default.nix
+++ b/pkgs/applications/misc/redshift/default.nix
@@ -10,7 +10,7 @@
 , withGeolocation ? true
 , withCoreLocation ? withGeolocation && stdenv.isDarwin, CoreLocation, Foundation, Cocoa
 , withGeoclue ? withGeolocation && stdenv.isLinux, geoclue
-, withAppIndicator ? true, libappindicator, libayatana-appindicator
+, withAppIndicator ? stdenv.isLinux, libappindicator, libayatana-appindicator
 }:
 
 let
diff --git a/pkgs/applications/misc/synergy/default.nix b/pkgs/applications/misc/synergy/default.nix
index b0722e18eea..3b1d04f3d38 100644
--- a/pkgs/applications/misc/synergy/default.nix
+++ b/pkgs/applications/misc/synergy/default.nix
@@ -82,7 +82,7 @@ stdenv.mkDerivation rec {
     description = "Share one mouse and keyboard between multiple computers";
     homepage = "http://synergy-project.org/";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ enzime ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/misc/tasknc/default.nix b/pkgs/applications/misc/tasknc/default.nix
index 46378aec33a..9080bec753d 100644
--- a/pkgs/applications/misc/tasknc/default.nix
+++ b/pkgs/applications/misc/tasknc/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, makeWrapper, perl, ncurses5, taskwarrior }:
 
 stdenv.mkDerivation rec {
-  version = "2017-05-15";
+  version = "2020-12-17";
   pname = "tasknc";
 
   src = fetchFromGitHub {
     owner = "lharding";
     repo = "tasknc";
-    rev = "c41d0240e9b848e432f01de735f28de93b934ae7";
-    sha256 = "0f7l7fy06p33vw6f6sjnjxfhw951664pmwhjl573jvmh6gi2h1yr";
+    rev = "a182661fbcc097a933d5e8cce3922eb1734a563e";
+    sha256 = "0jrv2k1yizfdjndbl06lmy2bb62ky2rjdk308967j31c5kqqnw56";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/terminal-typeracer/default.nix b/pkgs/applications/misc/terminal-typeracer/default.nix
new file mode 100644
index 00000000000..bfa84ebbb6c
--- /dev/null
+++ b/pkgs/applications/misc/terminal-typeracer/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, fetchFromGitLab
+, rustPlatform
+, pkg-config
+, openssl
+, sqlite
+, libiconv
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "terminal-typeracer";
+  version = "2.0.4";
+
+  src = fetchFromGitLab {
+    owner = "ttyperacer";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "RjGHY6KN6thxbg9W5FRwaAmUeD+5/WCeMCvzFHqZ+J4=";
+  };
+
+  cargoSha256 = "VSwku0rtQECirCHx2CXe72gCA+p3DdPC4YYwEYu8WfM=";
+
+  buildInputs = [ openssl sqlite ] ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
+  nativeBuildInputs = [ pkg-config ];
+
+  meta = with stdenv.lib; {
+    description = "An open source terminal based version of Typeracer written in rust";
+    homepage = "https://gitlab.com/ttyperacer/terminal-typeracer";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ yoctocell ];
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/pkgs/applications/misc/tiramisu/default.nix b/pkgs/applications/misc/tiramisu/default.nix
new file mode 100644
index 00000000000..e5cc9a1c178
--- /dev/null
+++ b/pkgs/applications/misc/tiramisu/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, pkg-config, glib }:
+
+stdenv.mkDerivation rec {
+  pname = "tiramisu";
+  version = "1.0";
+
+  src = fetchFromGitHub {
+    owner = "Sweets";
+    repo = pname;
+    rev = version;
+    sha256 = "0aw17riwgrhsmcndzh7sw2zw8xvn3d203c2gcrqi9nk5pa7fwp9m";
+  };
+
+  postPatch = ''
+    sed -i 's/printf(element_delimiter)/printf("%s", element_delimiter)/' src/output.c
+  '';
+
+  buildInputs = [ glib ];
+
+  nativeBuildInputs = [ pkg-config ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with stdenv.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.
+    '';
+    homepage = "https://github.com/Sweets/tiramisu";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ wishfort36 ];
+  };
+}
diff --git a/pkgs/applications/misc/tty-share/default.nix b/pkgs/applications/misc/tty-share/default.nix
new file mode 100644
index 00000000000..a9fcb969f67
--- /dev/null
+++ b/pkgs/applications/misc/tty-share/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+# Upstream has a `./vendor` directory with all deps which we rely upon.
+buildGoPackage rec {
+  pname = "tty-share";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "elisescu";
+    repo = "tty-share";
+    rev = "v${version}";
+    sha256 = "1d2vd3d1lb4n0jq4s0p5mii1vz4r3z36hykr5mnx53srsni1wsj5";
+  };
+
+  goPackagePath = "github.com/elisescu/tty-share";
+
+  meta = with stdenv.lib; {
+    homepage = "https://tty-share.com";
+    description = "Share terminal via browser for remote work or shared sessions";
+    platforms = platforms.linux;
+    license = licenses.mit;
+    maintainers = with maintainers; [ andys8 ];
+  };
+}
diff --git a/pkgs/applications/misc/ulauncher/default.nix b/pkgs/applications/misc/ulauncher/default.nix
index f1439dc7d16..d2522360a75 100644
--- a/pkgs/applications/misc/ulauncher/default.nix
+++ b/pkgs/applications/misc/ulauncher/default.nix
@@ -20,13 +20,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "ulauncher";
-  version = "5.8.0";
+  version = "5.9.0";
 
   disabled = python3Packages.isPy27;
 
   src = fetchurl {
     url = "https://github.com/Ulauncher/Ulauncher/releases/download/${version}/ulauncher_${version}.tar.gz";
-    sha256 = "1czxzcxix9iwv1sir1q64j5aavc7lzjjwqpisgdc1kidkwnk05zp";
+    sha256 = "sha256-jRCrkJcjUHDd3wF+Hkxg0QaW7YgIh7zM/KZ4TAH84/U=";
   };
 
   nativeBuildInputs = with python3Packages; [
diff --git a/pkgs/applications/misc/upwork/default.nix b/pkgs/applications/misc/upwork/default.nix
index 5d4247f3869..18c2bc129cc 100644
--- a/pkgs/applications/misc/upwork/default.nix
+++ b/pkgs/applications/misc/upwork/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "upwork";
-  version = "5.4.7.1";
+  version = "5.4.9.6";
 
   src = fetchurl {
-    url = "https://updates-desktopapp.upwork.com/binaries/v5_4_7_1_81f361962c74427d/${pname}_5.4.7.1_amd64.deb";
-    sha256 = "c443724d37bca942ca126b8b207846a5adb94a92ff9490370f2fe055feee347b";
+    url = "https://upwork-usw2-desktopapp.upwork.com/binaries/v5_4_9_6_2565cdd0547940a2/${pname}_${version}_amd64.deb";
+    sha256 = "ff6246b3b4a1ed79cc9bca2934652fefb40bdac4b7e95997f3a46e354ce52456";
   };
 
   dontWrapGApps = true;
diff --git a/pkgs/applications/misc/variety/default.nix b/pkgs/applications/misc/variety/default.nix
index 4241f915329..2366d04b9ca 100644
--- a/pkgs/applications/misc/variety/default.nix
+++ b/pkgs/applications/misc/variety/default.nix
@@ -1,31 +1,28 @@
-{
-  fehSupport ? false, feh
-, imagemagickSupport ? true, imagemagick
-, stdenv
-, lib
+{ stdenv, lib, fetchFromGitHub
 , python37Packages
-, fetchFromGitHub
+, fehSupport ? false, feh
+, imagemagickSupport ? true, imagemagick
 , intltool
 , gtk3
 , gexiv2
 , libnotify
-, wrapGAppsHook
 , gobject-introspection
 , hicolor-icon-theme
 , librsvg
+, wrapGAppsHook
 }:
 
 with python37Packages;
 
 buildPythonApplication rec {
   pname = "variety";
-  version = "0.7.2-96-g3afe3ab";
+  version = "0.8.5";
 
   src = fetchFromGitHub {
     owner = "varietywalls";
     repo = "variety";
-    rev = "3afe3abf725e5db2aec0db575a17c9907ab20de1";
-    sha256 = "10vw0202dwrwi497nsbq077v4qd3qn5b8cmkfcsgbvvjwlz7ldm5";
+    rev = version;
+    sha256 = "sha256-6dLz4KXavXwnk5GizBH46d2EHMHPjRo0WnnUuVMtI1M=";
   };
 
   nativeBuildInputs = [ intltool wrapGAppsHook ];
@@ -43,31 +40,43 @@ buildPythonApplication rec {
       --replace /bin/bash ${stdenv.shell}
   '';
 
-  propagatedBuildInputs =
-       [ gtk3
-         gexiv2
-         libnotify
-         beautifulsoup4
-         lxml
-         pycairo
-         pygobject3
-         configobj
-         pillow
-         setuptools
-         requests
-         httplib2
-         dbus-python
-         gobject-introspection
-         hicolor-icon-theme
-         librsvg
-       ]
-    ++ lib.optional fehSupport feh
+  propagatedBuildInputs = [
+    beautifulsoup4
+    configobj
+    dbus-python
+    gexiv2
+    gobject-introspection
+    gtk3
+    hicolor-icon-theme
+    httplib2
+    libnotify
+    librsvg
+    lxml
+    pillow
+    pycairo
+    pygobject3
+    requests
+    setuptools
+  ] ++ lib.optional fehSupport feh
     ++ lib.optional imagemagickSupport imagemagick;
 
   meta = with lib; {
-    description = "A wallpaper manager for Linux systems. It supports numerous desktops and wallpaper sources, including local files and online services: Flickr, Wallhaven, Unsplash, and more";
     homepage = "https://github.com/varietywalls/variety";
+    description = "A wallpaper manager for Linux systems";
+    longDescription = ''
+      Variety is a wallpaper manager for Linux systems. It supports numerous
+      desktops and wallpaper sources, including local files and online services:
+      Flickr, Wallhaven, Unsplash, and more.
+
+      Where supported, Variety sits as a tray icon to allow easy pausing and
+      resuming. Otherwise, its desktop entry menu provides a similar set of
+      options.
+
+      Variety also includes a range of image effects, such as oil painting and
+      blur, as well as options to layer quotes and a clock onto the background.
+    '';
     license = licenses.gpl3;
-    maintainers = [ maintainers.zfnmxt ];
+    maintainers = with maintainers; [ AndersonTorres zfnmxt ];
+    platforms = with platforms; linux;
   };
 }
diff --git a/pkgs/applications/misc/visidata/default.nix b/pkgs/applications/misc/visidata/default.nix
index 450be72a28c..2d0a5598343 100644
--- a/pkgs/applications/misc/visidata/default.nix
+++ b/pkgs/applications/misc/visidata/default.nix
@@ -15,13 +15,13 @@
 }:
 buildPythonApplication rec {
   pname = "visidata";
-  version = "2.1";
+  version = "2.1.1";
 
   src = fetchFromGitHub {
     owner = "saulpw";
     repo = "visidata";
     rev = "v${version}";
-    sha256 = "1psb3ycrb7k00b5blg9zr52bzdxs1mkdc7rpjn4m9kh09yfs3sx4";
+    sha256 = "018z06bfcw0l4k2zdwbgxna9fss4wdqj64ckw5qjis14sb3zkr28";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/misc/xdg-launch/default.nix b/pkgs/applications/misc/xdg-launch/default.nix
new file mode 100644
index 00000000000..257b15387ba
--- /dev/null
+++ b/pkgs/applications/misc/xdg-launch/default.nix
@@ -0,0 +1,57 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, autoconf
+, automake
+, gettext
+, libtool
+, perl
+, pkg-config
+, glib
+, xorg
+}:
+stdenv.mkDerivation rec {
+  pname = "xdg-launch";
+  version = "1.10";
+
+  postPatch = ''
+    # fix gettext configuration
+    echo 'AM_GNU_GETTEXT_VERSION' >> configure.ac
+    echo 'AM_GNU_GETTEXT([external])' >> configure.ac
+
+    sed -i data/*.desktop \
+      -e "s,/usr/bin,/$out/bin,g"
+  '';
+
+  src = fetchFromGitHub {
+    owner = "bbidulock";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-WY1TAPnXAn5GOaP9aMHar761m1MkKm4vavLlWELWUu8=";
+  };
+
+  preConfigure = "./autogen.sh";
+
+  buildInputs = [
+    xorg.libX11
+    xorg.libXrandr
+    glib # can be optional
+  ];
+
+  nativeBuildInputs = [
+    autoconf
+    automake
+    gettext
+    libtool
+    perl # pod2man
+    pkg-config
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/bbidulock/xdg-launch";
+    description = "A command line XDG compliant launcher and tools";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.ck3d ];
+  };
+}
diff --git a/pkgs/applications/misc/zathura/wrapper.nix b/pkgs/applications/misc/zathura/wrapper.nix
index 7cd52e0c74f..60e3bb9fd53 100644
--- a/pkgs/applications/misc/zathura/wrapper.nix
+++ b/pkgs/applications/misc/zathura/wrapper.nix
@@ -7,10 +7,19 @@ symlinkJoin {
 
   buildInputs = [ makeWrapper ];
 
-  postBuild = ''
+  postBuild = let
+    fishCompletion = "share/fish/vendor_completions.d/zathura.fish";
+  in ''
     makeWrapper ${zathura_core.bin}/bin/zathura $out/bin/zathura \
       --prefix PATH ":" "${lib.makeBinPath [ file ]}" \
       --add-flags --plugins-dir="$out/lib/zathura"
+
+    # zathura fish completion references the zathura_core derivation to
+    # check for supported plugins which live in the wrapper derivation,
+    # so we need to fix the path to reference $out instead.
+    rm "$out/${fishCompletion}"
+    substitute "${zathura_core.out}/${fishCompletion}" "$out/${fishCompletion}" \
+      --replace "${zathura_core.out}" "$out"
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/networking/Sylk/default.nix b/pkgs/applications/networking/Sylk/default.nix
index 9f5378d761a..7391ad4c688 100644
--- a/pkgs/applications/networking/Sylk/default.nix
+++ b/pkgs/applications/networking/Sylk/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "Sylk";
-  version = "2.9.3";
+  version = "2.9.4";
 in
 
 appimageTools.wrapType2 rec {
@@ -10,7 +10,7 @@ appimageTools.wrapType2 rec {
 
   src = fetchurl {
     url = "http://download.ag-projects.com/Sylk/Sylk-${version}-x86_64.AppImage";
-    hash = "sha256-JH/TUGAYZTIb/L926CoYb5yzPtbOKVmnWRmHO6DxDyY=";
+    hash = "sha256-LnJ8Pd+AHIrHrYpIx+rxnFKZ1uh2viDHC5TaU1BL62s=";
   };
 
   profile = ''
diff --git a/pkgs/applications/networking/apache-directory-studio/default.nix b/pkgs/applications/networking/apache-directory-studio/default.nix
index 141bbe654b7..94359bdd227 100644
--- a/pkgs/applications/networking/apache-directory-studio/default.nix
+++ b/pkgs/applications/networking/apache-directory-studio/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, jdk14, makeWrapper, autoPatchelfHook, makeDesktopItem, glib, libsecret }:
+{ stdenv, fetchurl, jdk, makeWrapper, autoPatchelfHook, makeDesktopItem, glib, libsecret }:
 
 let
   desktopItem = makeDesktopItem {
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
 
     makeWrapper "$dest/ApacheDirectoryStudio" \
         "$out/bin/ApacheDirectoryStudio" \
-        --prefix PATH : "${jdk14}/bin"
+        --prefix PATH : "${jdk}/bin"
     install -D icon.xpm "$out/share/pixmaps/apache-directory-studio.xpm"
     install -D -t "$out/share/applications" ${desktopItem}/share/applications/*
   '';
diff --git a/pkgs/applications/networking/browsers/brave/default.nix b/pkgs/applications/networking/browsers/brave/default.nix
index d76dd8b9daa..92177183b0c 100644
--- a/pkgs/applications/networking/browsers/brave/default.nix
+++ b/pkgs/applications/networking/browsers/brave/default.nix
@@ -70,7 +70,6 @@ rpath = lib.makeLibraryPath [
   libXext
   libXfixes
   libXi
-  libxkbcommon
   libXrandr
   libXrender
   libXtst
@@ -89,16 +88,17 @@ in
 
 stdenv.mkDerivation rec {
   pname = "brave";
-  version = "1.17.73";
+  version = "1.18.77";
 
   src = fetchurl {
     url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
-    sha256 = "18bd6kgzfza5r0y2ggfy82pdpnfr2hzgjcfy9vxqq658z7q3jpqy";
+    sha256 = "AV3bqtWaoy6AVnt8K/Qo+7hguAIsPJPZhgLSeOvJ7JY=";
   };
 
   dontConfigure = true;
   dontBuild = true;
   dontPatchELF = true;
+  doInstallCheck = true;
 
   nativeBuildInputs = [ dpkg wrapGAppsHook ];
 
@@ -148,6 +148,13 @@ stdenv.mkDerivation rec {
       ln -sf ${xdg_utils}/bin/xdg-mime $out/opt/brave.com/brave/xdg-mime
   '';
 
+  installCheckPhase = ''
+    # Bypass upstream wrapper which suppresses errors
+    $out/opt/brave.com/brave/brave --version
+  '';
+
+  passthru.updateScript = ./update.sh;
+
   meta = with stdenv.lib; {
     homepage = "https://brave.com/";
     description = "Privacy-oriented browser for Desktop and Laptop computers";
diff --git a/pkgs/applications/networking/browsers/brave/update.sh b/pkgs/applications/networking/browsers/brave/update.sh
new file mode 100755
index 00000000000..b7d974ad259
--- /dev/null
+++ b/pkgs/applications/networking/browsers/brave/update.sh
@@ -0,0 +1,5 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl gnused common-updater-scripts
+
+version="$(curl -sL https://brave-browser-apt-release.s3.brave.com/dists/stable/main/binary-amd64/Packages | sed -r -n 's/^Version: (.*)/\1/p' | head -n1)"
+update-source-version brave "$version"
diff --git a/pkgs/applications/networking/browsers/chromium/README.md b/pkgs/applications/networking/browsers/chromium/README.md
index 8e4eae75f96..5b7c9fe5504 100644
--- a/pkgs/applications/networking/browsers/chromium/README.md
+++ b/pkgs/applications/networking/browsers/chromium/README.md
@@ -36,9 +36,6 @@ update `upstream-info.json`. After updates it is important to test at least
 `nixosTests.chromium` (or basic manual testing) and `google-chrome` (which
 reuses `upstream-info.json`).
 
-After updating, please also update pkgs/development/tools/selenium/chromedriver/default.nix
-to a matching version.
-
 ## Backports
 
 All updates are considered security critical and should be ported to the stable
diff --git a/pkgs/applications/networking/browsers/chromium/browser.nix b/pkgs/applications/networking/browsers/chromium/browser.nix
index d3953da71d2..b9a42e825f3 100644
--- a/pkgs/applications/networking/browsers/chromium/browser.nix
+++ b/pkgs/applications/networking/browsers/chromium/browser.nix
@@ -1,4 +1,4 @@
-{ stdenv, mkChromiumDerivation, channel, enableWideVine }:
+{ stdenv, mkChromiumDerivation, channel, enableWideVine, ungoogled }:
 
 with stdenv.lib;
 
@@ -69,18 +69,25 @@ mkChromiumDerivation (base: rec {
   requiredSystemFeatures = [ "big-parallel" ];
 
   meta = {
-    description = "An open source web browser from Google";
+    description = "An open source web browser from Google"
+      + optionalString ungoogled ", with dependencies on Google web services removed";
     longDescription = ''
       Chromium is an open source web browser from Google that aims to build a
       safer, faster, and more stable way for all Internet users to experience
       the web. It has a minimalist user interface and provides the vast majority
       of source code for Google Chrome (which has some additional features).
     '';
-    homepage = "https://www.chromium.org/";
-    maintainers = with maintainers; [ primeos thefloweringash bendlas ]; # See README.md
+    homepage = if ungoogled
+      then "https://github.com/Eloston/ungoogled-chromium"
+      else "https://www.chromium.org/";
+    maintainers = with maintainers; if ungoogled
+      then [ squalus primeos ]
+      else [ primeos thefloweringash bendlas ];
     license = if enableWideVine then licenses.unfree else licenses.bsd3;
     platforms = platforms.linux;
-    hydraPlatforms = if channel == "stable" then ["aarch64-linux" "x86_64-linux"] else [];
+    hydraPlatforms = if (channel == "stable" || channel == "ungoogled-chromium")
+      then ["aarch64-linux" "x86_64-linux"]
+      else [];
     timeout = 172800; # 48 hours (increased from the Hydra default of 10h)
   };
 })
diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix
index 0c16d0c9ec6..d7b1a017d31 100644
--- a/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/pkgs/applications/networking/browsers/chromium/common.nix
@@ -13,7 +13,7 @@
 , bison, gperf
 , glib, gtk3, dbus-glib
 , glibc
-, libXScrnSaver, libXcursor, libXtst, libGLU, libGL
+, libXScrnSaver, libXcursor, libXtst, libxshmfence, libGLU, libGL
 , protobuf, speechd, libXdamage, cups
 , ffmpeg, libxslt, libxml2, at-spi2-core
 , jre8
@@ -31,6 +31,7 @@
 , proprietaryCodecs ? true
 , cupsSupport ? true
 , pulseSupport ? false, libpulseaudio ? null
+, ungoogled ? false, ungoogled-chromium
 
 , channel
 , upstream-info
@@ -109,6 +110,10 @@ let
             result
        else result;
 
+  ungoogler = ungoogled-chromium {
+    inherit (upstream-info.deps.ungoogled-patches) rev sha256;
+  };
+
   base = rec {
     name = "${packageName}-unwrapped-${version}";
     inherit (upstream-info) version;
@@ -131,7 +136,7 @@ let
       util-linux alsaLib
       bison gperf kerberos
       glib gtk3 dbus-glib
-      libXScrnSaver libXcursor libXtst libGLU libGL
+      libXScrnSaver libXcursor libXtst libxshmfence libGLU libGL
       pciutils protobuf speechd libXdamage at-spi2-core
       jre
       pipewire_0_2
@@ -208,6 +213,10 @@ let
     '' + optionalString stdenv.isAarch64 ''
       substituteInPlace build/toolchain/linux/BUILD.gn \
         --replace 'toolprefix = "aarch64-linux-gnu-"' 'toolprefix = ""'
+    '' + optionalString ungoogled ''
+      ${ungoogler}/utils/prune_binaries.py . ${ungoogler}/pruning.list || echo "some errors"
+      ${ungoogler}/utils/patches.py . ${ungoogler}/patches
+      ${ungoogler}/utils/domain_substitution.py apply -r ${ungoogler}/domain_regex.list -f ${ungoogler}/domain_substitution.list -c ./ungoogled-domsubcache.tar.gz .
     '';
 
     gnFlags = mkGnFlags ({
@@ -260,6 +269,24 @@ let
       use_system_minigbm = true;
       use_system_libdrm = true;
       system_wayland_scanner_path = "${wayland}/bin/wayland-scanner";
+    } // optionalAttrs ungoogled {
+      chrome_pgo_phase = 0;
+      enable_hangout_services_extension = false;
+      enable_js_type_check = false;
+      enable_mdns = false;
+      enable_nacl_nonsfi = false;
+      enable_one_click_signin = false;
+      enable_reading_list = false;
+      enable_remoting = false;
+      enable_reporting = false;
+      enable_service_discovery = false;
+      exclude_unwind_tables = true;
+      google_api_key = "";
+      google_default_client_id = "";
+      google_default_client_secret = "";
+      safe_browsing_mode = 0;
+      use_official_google_api_keys = false;
+      use_unofficial_version_number = false;
     } // (extraAttrs.gnFlags or {}));
 
     configurePhase = ''
diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix
index e35e4d945dd..fd89f316008 100644
--- a/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/default.nix
@@ -15,6 +15,7 @@
 , enablePepperFlash ? false
 , enableWideVine ? false
 , enableVaapi ? false # Disabled by default due to unofficial support
+, ungoogled ? false # Whether to build chromium or ungoogled-chromium
 , cupsSupport ? true
 , pulseSupport ? config.pulseaudio or stdenv.isLinux
 , commandLineArgs ? ""
@@ -33,7 +34,7 @@ let
 
     mkChromiumDerivation = callPackage ./common.nix ({
       inherit channel gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs
-              cupsSupport pulseSupport;
+              cupsSupport pulseSupport ungoogled;
       gnChromium = gn.overrideAttrs (oldAttrs: {
         inherit (upstream-info.deps.gn) version;
         src = fetchgit {
@@ -42,14 +43,17 @@ let
       });
     });
 
-    browser = callPackage ./browser.nix { inherit channel enableWideVine; };
+    browser = callPackage ./browser.nix { inherit channel enableWideVine ungoogled; };
 
     plugins = callPackage ./plugins.nix {
       inherit enablePepperFlash;
     };
+
+    ungoogled-chromium = callPackage ./ungoogled.nix {};
   };
 
-  pkgSuffix = if channel == "dev" then "unstable" else channel;
+  pkgSuffix = if channel == "dev" then "unstable" else
+    (if channel == "ungoogled-chromium" then "stable" else channel);
   pkgName = "google-chrome-${pkgSuffix}";
   chromeSrc = fetchurl {
     urls = map (repo: "${repo}/${pkgName}/${pkgName}_${version}-1_amd64.deb") [
@@ -71,7 +75,7 @@ let
 
     unpackCmd = let
       widevineCdmPath =
-        if channel == "stable" then
+        if (channel == "stable" || channel == "ungoogled-chromium") then
           "./opt/google/chrome/WidevineCdm"
         else if channel == "beta" then
           "./opt/google/chrome-beta/WidevineCdm"
@@ -113,7 +117,9 @@ let
     };
   };
 
-  suffix = if channel != "stable" then "-" + channel else "";
+  suffix = if (channel == "stable" || channel == "ungoogled-chromium")
+    then ""
+    else "-" + channel;
 
   sandboxExecutableName = chromium.browser.passthru.sandboxExecutableName;
 
@@ -133,7 +139,8 @@ let
     else browser;
 
 in stdenv.mkDerivation {
-  name = "chromium${suffix}-${version}";
+  name = lib.optionalString ungoogled "ungoogled-"
+    + "chromium${suffix}-${version}";
   inherit version;
 
   buildInputs = [
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled.nix b/pkgs/applications/networking/browsers/chromium/ungoogled.nix
index 17418c90af4..299b19f2f4f 100644
--- a/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled.nix
+++ b/pkgs/applications/networking/browsers/chromium/ungoogled.nix
@@ -4,6 +4,7 @@
 , makeWrapper
 , patch
 }:
+
 { rev
 , sha256
 }:
diff --git a/pkgs/applications/networking/browsers/chromium/update.py b/pkgs/applications/networking/browsers/chromium/update.py
index 9e1f0aec598..2b9f9232c24 100755
--- a/pkgs/applications/networking/browsers/chromium/update.py
+++ b/pkgs/applications/networking/browsers/chromium/update.py
@@ -1,6 +1,9 @@
 #! /usr/bin/env nix-shell
 #! nix-shell -i python -p python3 nix nix-prefetch-git
 
+"""This script automatically updates chromium, google-chrome, chromedriver, and ungoogled-chromium
+via upstream-info.json."""
+
 import csv
 import json
 import re
@@ -19,41 +22,54 @@ BUCKET_URL = 'https://commondatastorage.googleapis.com/chromium-browser-official
 
 JSON_PATH = dirname(abspath(__file__)) + '/upstream-info.json'
 
+
 def load_json(path):
+    """Loads the given JSON file."""
     with open(path, 'r') as f:
         return json.load(f)
 
+
 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, url])
     return out.decode('utf-8').rstrip()
 
+
 def nix_prefetch_git(url, rev):
+    """Prefetches the requested Git revision of the given repository URL."""
     print(f'nix-prefetch-git {url} {rev}')
     out = subprocess.check_output(['nix-prefetch-git', '--quiet', '--url', url, '--rev', rev])
     return json.loads(out)
 
+
 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()
 
+
 def get_matching_chromedriver(version):
+    """Gets the matching chromedriver version for the given Chromium version."""
     # See https://chromedriver.chromium.org/downloads/version-selection
     build = re.sub('.[0-9]+$', '', version)
     chromedriver_version_url = f'https://chromedriver.storage.googleapis.com/LATEST_RELEASE_{build}'
     with urlopen(chromedriver_version_url) as http_response:
         chromedriver_version = http_response.read().decode()
         def get_chromedriver_url(system):
-            return f'https://chromedriver.storage.googleapis.com/{chromedriver_version}/chromedriver_{system}.zip'
+            return ('https://chromedriver.storage.googleapis.com/' +
+                    f'{chromedriver_version}/chromedriver_{system}.zip')
         return {
             'version': chromedriver_version,
             'sha256_linux': nix_prefetch_url(get_chromedriver_url('linux64')),
             'sha256_darwin': nix_prefetch_url(get_chromedriver_url('mac64'))
         }
 
-def get_channel_dependencies(channel):
-    deps = get_file_revision(channel['version'], 'DEPS')
+
+def get_channel_dependencies(version):
+    """Gets all dependencies for the given Chromium version."""
+    deps = get_file_revision(version, 'DEPS')
     gn_pattern = b"'gn_version': 'git_revision:([0-9a-f]{40})'"
     gn_commit = re.search(gn_pattern, deps).group(1).decode()
     gn = nix_prefetch_git('https://gn.googlesource.com/gn', gn_commit)
@@ -66,12 +82,35 @@ def get_channel_dependencies(channel):
         }
     }
 
+
+def get_latest_ungoogled_chromium_tag():
+    """Returns the latest ungoogled-chromium tag using the GitHub API."""
+    api_tag_url = 'https://api.github.com/repos/Eloston/ungoogled-chromium/tags?per_page=1'
+    with urlopen(api_tag_url) as http_response:
+        tag_data = json.load(http_response)
+        return tag_data[0]['name']
+
+
+def get_latest_ungoogled_chromium_build():
+    """Returns a dictionary for the latest ungoogled-chromium build."""
+    tag = get_latest_ungoogled_chromium_tag()
+    version = tag.split('-')[0]
+    return {
+        'channel': 'ungoogled-chromium',
+        'version': version,
+        'ungoogled_tag': tag
+    }
+
+
 channels = {}
 last_channels = load_json(JSON_PATH)
 
+
 print(f'GET {HISTORY_URL}', file=sys.stderr)
 with urlopen(HISTORY_URL) as resp:
     builds = csv.DictReader(iterdecode(resp, 'utf-8'))
+    builds = list(builds)
+    builds.append(get_latest_ungoogled_chromium_build())
     for build in builds:
         channel_name = build['channel']
 
@@ -88,34 +127,50 @@ with urlopen(HISTORY_URL) as resp:
             continue
 
         channel = {'version': build['version']}
-        suffix = 'unstable' if channel_name == 'dev' else channel_name
+        if channel_name == 'dev':
+            google_chrome_suffix = 'unstable'
+        elif channel_name == 'ungoogled-chromium':
+            google_chrome_suffix = 'stable'
+        else:
+            google_chrome_suffix = channel_name
 
         try:
             channel['sha256'] = nix_prefetch_url(f'{BUCKET_URL}/chromium-{build["version"]}.tar.xz')
-            channel['sha256bin64'] = nix_prefetch_url(f'{DEB_URL}/google-chrome-{suffix}/google-chrome-{suffix}_{build["version"]}-1_amd64.deb')
+            channel['sha256bin64'] = nix_prefetch_url(
+                f'{DEB_URL}/google-chrome-{google_chrome_suffix}/' +
+                f'google-chrome-{google_chrome_suffix}_{build["version"]}-1_amd64.deb')
         except subprocess.CalledProcessError:
             # This build isn't actually available yet.  Continue to
             # the next one.
             continue
 
-        channel['deps'] = get_channel_dependencies(channel)
+        channel['deps'] = get_channel_dependencies(channel['version'])
         if channel_name == 'stable':
             channel['chromedriver'] = get_matching_chromedriver(channel['version'])
+        elif channel_name == 'ungoogled-chromium':
+            ungoogled_repo_url = 'https://github.com/Eloston/ungoogled-chromium.git'
+            channel['deps']['ungoogled-patches'] = {
+                'rev': build['ungoogled_tag'],
+                'sha256': nix_prefetch_git(ungoogled_repo_url, build['ungoogled_tag'])['sha256']
+            }
 
         channels[channel_name] = channel
 
+
 with open(JSON_PATH, 'w') as out:
     def get_channel_key(item):
+        """Orders Chromium channels by their name."""
         channel_name = item[0]
         if channel_name == 'stable':
             return 0
-        elif channel_name == 'beta':
+        if channel_name == 'beta':
             return 1
-        elif channel_name == 'dev':
+        if channel_name == 'dev':
             return 2
-        else:
-            print(f'Error: Unexpected channel: {channel_name}', file=sys.stderr)
-            sys.exit(1)
+        if channel_name == 'ungoogled-chromium':
+            return 3
+        print(f'Error: Unexpected channel: {channel_name}', file=sys.stderr)
+        sys.exit(1)
     sorted_channels = OrderedDict(sorted(channels.items(), key=get_channel_key))
     json.dump(sorted_channels, out, indent=2)
     out.write('\n')
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json
index 3b64e601eba..5be89852b38 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.json
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json
@@ -18,9 +18,9 @@
     }
   },
   "beta": {
-    "version": "88.0.4324.41",
-    "sha256": "06hnawylr7fl1zav6cyg1yfw2z04qrpnj4n3v07qx7ya6p8qyp2g",
-    "sha256bin64": "1iq4qd5x7ivypcxh47d6av45hyqdgga2s80idyhf1f51f660h2vc",
+    "version": "88.0.4324.50",
+    "sha256": "17v0qp05785xc4whsbw6fmf0x5ccjx2mk6n4qy6z2mx2yjjjfv8q",
+    "sha256bin64": "01cphbd56l7g3cdmrvwynkzrpx9h3v7pz6ac76sxlp6irjzhbnva",
     "deps": {
       "gn": {
         "version": "2020-11-05",
@@ -31,9 +31,9 @@
     }
   },
   "dev": {
-    "version": "89.0.4350.4",
-    "sha256": "1jh3r227j70imjzj0gm7cf1mv25zcdd2waa9qvim0p3g6wbdacmq",
-    "sha256bin64": "06963r7a1xc9vjlwgn0wgzqfj6mavfks20lzf49axw6izrxf8sbr",
+    "version": "89.0.4356.6",
+    "sha256": "1jq0wbaaz07kz2190rq3vl2b5spx3qfda4al9ygkm8man817d2nr",
+    "sha256bin64": "0dgvp2my328s4ah0hmp1hg1c3x21gkrz9mjvbfs54r2pjb7y5sbl",
     "deps": {
       "gn": {
         "version": "2020-11-05",
@@ -42,5 +42,22 @@
         "sha256": "1xcm07qjk6m2czi150fiqqxql067i832adck6zxrishm70c9jbr9"
       }
     }
+  },
+  "ungoogled-chromium": {
+    "version": "87.0.4280.88",
+    "sha256": "1h09g9b2zxad85vd146ymvg3w2kpngpi78yig3dn1vrmhwr4aiiy",
+    "sha256bin64": "0n3fm6wf8zfkv135d50xl8xxrnng3q55vyxkck1da8jyvh18bijb",
+    "deps": {
+      "gn": {
+        "version": "2020-09-09",
+        "url": "https://gn.googlesource.com/gn",
+        "rev": "e002e68a48d1c82648eadde2f6aafa20d08c36f2",
+        "sha256": "0x4c7amxwzxs39grqs3dnnz0531mpf1p75niq7zhinyfqm86i4dk"
+      },
+      "ungoogled-patches": {
+        "rev": "87.0.4280.88-1",
+        "sha256": "0w2137w8hfcgl6f938hqnb4ffp33v5r8vdzxrvs814w7dszkiqgg"
+      }
+    }
   }
 }
diff --git a/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
index 98cf28ec3e1..9bf5e837bf5 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
@@ -1,965 +1,965 @@
 {
-  version = "84.0b4";
+  version = "85.0b4";
   sources = [
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ach/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/ach/firefox-85.0b4.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha256 = "da9290899d245d86b3d2d378072af403106596ae1e02a36d40a93deea9e57000";
+      sha256 = "04d5c5b64e906438122cfcd13c6a06d58bb1c0a2d2eaf66f52f91e103a5534ae";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/af/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/af/firefox-85.0b4.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "28810946bde4c2335714c0f8b0dffad1a1650c167370e38c6eb5e2ee5d2e54be";
+      sha256 = "57bdfd3e6efe3c667ddb4c1e2421c191eedc407f578ee307b1ed916815726837";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/an/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/an/firefox-85.0b4.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha256 = "d32e9e13b2c1f484686d9394f20a87e2c1d833703e0115de1f9c8c552d1e9d8a";
+      sha256 = "7ceb815590071691a3faa6f1d8215963b48c54c220c512499fb9642efc1492d4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ar/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/ar/firefox-85.0b4.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "de8348caf98ca0551f3f080eb32ef94c00706676bc8df1723377d98f10221e56";
+      sha256 = "ce8b25f9ba3d21e87f660a17a90e770417e658f7280d0e41d0a5ff41164a2d43";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ast/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/ast/firefox-85.0b4.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "104cc96b0e14c030848be4bc07a1b2b836a241e9ddba581b9ca24018c54356ee";
+      sha256 = "a220440bebd1c1179e6e2a483ae148ada05f86c3c5d68946bb3b14d301301a78";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/az/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/az/firefox-85.0b4.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha256 = "e96087b52f1dc18c8bd29d486faa00ad06a2165d1e14cbd47e37cafb40602a87";
+      sha256 = "b79a3e03d476d3667c28ed83dd84fb375013597d58e9e13f431eba13b509422f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/be/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/be/firefox-85.0b4.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "d67c2c1556b6859e0acae5b69b3b7eeac77b3bb1594b48682a97a72742c79d05";
+      sha256 = "c8e00ae8a6d66a427212c1323a0f4860c25058c1d27fc0d3bb56612f0f2b785e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/bg/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/bg/firefox-85.0b4.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "b3bad1b330a5d4c515b37cddb3e89e538c5cd66ffce68dbf8d1e9adaf4881431";
+      sha256 = "cc63fb7773dfe6a9b84a7ddd80873c6f8fab3b0f12e15a0db862bac9006d86c4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/bn/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/bn/firefox-85.0b4.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha256 = "9c50c4e12061279133177ade4b22b7e2bb7e14dcc1875464f57efb7c7e360bf7";
+      sha256 = "9fdd2e50b1fd74a3cabe55c23ca44253e9b5a2791461a2f15713cab6f4700e6f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/br/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/br/firefox-85.0b4.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "79eb76af707b26fa4d46acf11d0be25ccd144abda6c853373c9ec0cc872c2a8f";
+      sha256 = "44d99c74041f227252989570c9fe1dc2a1519e195e6386d0dc78fbf43ec41e88";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/bs/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/bs/firefox-85.0b4.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha256 = "2cbf15a604f90c4a6212f5da251372d09e2247f5ed338193ff93a94695bca308";
+      sha256 = "7c3b4beb800c8e023fbc5655e6435b11f6ebf11c3d82a5b6a1df76df682f0666";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ca-valencia/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/ca-valencia/firefox-85.0b4.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha256 = "a9b6cacf6ee8a6a1f733f3ff3741c1bb12eff823664279205906e8e59b646679";
+      sha256 = "b0676d544d8d2cc6c37a192adcd4e61038106c0e84066e68895642afc8e158a4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ca/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/ca/firefox-85.0b4.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "1ea49a5d59129c820f359fbad2253e051adbb260cedd4b62bb20122562466bfd";
+      sha256 = "8f170b9356761ec175be3f417df624a78e939af931376f52d36f19b019c05338";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/cak/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/cak/firefox-85.0b4.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "b18651df9ae2e16ea9855c30fa393dd34103cf338a515d41d3c1802e52fb92a1";
+      sha256 = "ca966b90035591d3e5f886814664d2f203bc0b65e781f46566a51269811efcdd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/cs/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/cs/firefox-85.0b4.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "4dca051e5349372d6caf5a7f6e8e6e12fe42bf96110a1c6e2f7f6e408f365b80";
+      sha256 = "31e19d69e03821c646d21969b48e5ba01c52b2d5d2538f7bd7e7b93c9a6f7bb8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/cy/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/cy/firefox-85.0b4.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "3117d47bcec1cf0f5a547a33c62ca5ecfee34435c13a478f23d1d9f0ac187f4f";
+      sha256 = "dfe3974d2328fa535b79f3e18d699b8d62a053efd0248cc88d1152ff92604166";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/da/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/da/firefox-85.0b4.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "34a38c76997bdd41e6b12cebf08345e7cd19838bd92f5a8d082ba3087cb063c7";
+      sha256 = "86ba3d548eb3a6408b9234c382389c0fb5907c98eeab25cc39e810727570d2ae";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/de/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/de/firefox-85.0b4.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "65e417603cf383d92058b8976c1f6499dc5804d02a22bb639e416c4e730b4a62";
+      sha256 = "1cb610280c07e7af82df2dd283a6d35c1f63afe6f11a0fd7797efc4128ad126a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/dsb/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/dsb/firefox-85.0b4.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "08dacb91773d7b49eb8f08668627badae2967193c441ff2fb6b9d88063c5ffb9";
+      sha256 = "555300937cd2d6e25085d5d3f4b699704ba3630ba4ce667a9ed3d67a9c9f5143";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/el/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/el/firefox-85.0b4.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "78e870b673c204e4d9fca2a3fbab06031c724a8b0696a3b6e2dea5ac07a5bb88";
+      sha256 = "b2bf744cbe21d23a1ed16310fe552197b129964a75aca4fc1c3759fb59782d7f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/en-CA/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/en-CA/firefox-85.0b4.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "4c862eb5c53e65af1ddc212a093eb23e33653341fa7db53d935ed8482637aed8";
+      sha256 = "422cbea99fd390c31868b0cf0e6bc8344cca9dc9540dd58b8b315f519a3c53cd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/en-GB/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/en-GB/firefox-85.0b4.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "f505cf16328603d0164e330fcef60fcfeccdad186d1f91e0b4cee1b8cc7c740d";
+      sha256 = "a996f6ea769ad846a69ab692b967ea23c4de461a922add22864fce6f97d04e30";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/en-US/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/en-US/firefox-85.0b4.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "f0561469f04ab83dd52ae4e3a8ca451d6569845e37d9e04c5a91085654661f8a";
+      sha256 = "aefbbe66cd209bdd9a1720562127560212f257229b799c45de5feb4173f10232";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/eo/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/eo/firefox-85.0b4.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha256 = "c64d227d6b21876ea48182795d6fd8ec3ca486e5328629a0bbfb936e8463b0a8";
+      sha256 = "8237d0bdc5a0ed6873c4178a20e77bb2c86f833f02e6872852d8e35e36978459";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/es-AR/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/es-AR/firefox-85.0b4.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "73b45f6b8d1e53bef003b3e77cc1217b8a85dde49cb0900b4fa2991895e5c184";
+      sha256 = "6d8b15775127619f923e7c255a01afcfd81d9d7bb01c0152e3aac3ef327b9ff2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/es-CL/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/es-CL/firefox-85.0b4.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha256 = "e7025e4c5fc311aae2798da99ec5e5863bca5ad8b8460981cef86e29ae37d74a";
+      sha256 = "26dedb44f4dd064005a2cb935444acd0f6a99a451b87263775cad4506503bccf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/es-ES/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/es-ES/firefox-85.0b4.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "e819644eb6337255004fda8286e1f2ed898423c4b97694c8355c28f4d449da61";
+      sha256 = "96d8444ee16d78bbde1fca5a69d5f404bdb2199757c566cdf44416ef43761715";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/es-MX/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/es-MX/firefox-85.0b4.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha256 = "07de091ca3b06b94e35b84add7fbc5c8fa6ea84ddfe548e5f55b3bc7980a9bd3";
+      sha256 = "ac4a2e7490b448a2654a0999b77e4e3e6e8dcd96c4239654dc8cc748f54d2ebc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/et/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/et/firefox-85.0b4.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "d6af9ab39f1a13efc772cbb63dd731dcf988c10f13649f348d7ddb3f6ab6ca60";
+      sha256 = "d44ba8376fccea9feae2054a50db58a5d4abca559ebfe854821cca9342f05f42";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/eu/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/eu/firefox-85.0b4.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "110e667568429dd2b0c752962e1148884c44aaef9939926c6b0f49ba5bdb1182";
+      sha256 = "d7f2131c7125fa6ee78a978e11d0f5c4ebbd55f5fa9fd8ac644aa0a9f68d60bd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/fa/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/fa/firefox-85.0b4.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "f7a783f12bb08ccb06074f903bb2eaaab13b348c6a2950a9699beee28ad97b5e";
+      sha256 = "2f63087cb94dee9a97cdf0641478b076f119bdf30dc0e3d35b9db67dd1e75cfb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ff/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/ff/firefox-85.0b4.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha256 = "b2e47bc8ae8d1e54a1b5799a87b4742d049696edd9913f0cc6beb52a89cc261d";
+      sha256 = "e8bd39fe41b98ce4fd1e630d376e263815b60339947344d82a7fddfc4ac331d8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/fi/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/fi/firefox-85.0b4.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "f5ee09f1b9d41506ad1023ad05dbdee95ac049eb4bfd38dd99c06cf682e111a8";
+      sha256 = "d743df7df584c30ab237771778df1a06a01cb8801ad57233738a9e7ee7b5a453";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/fr/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/fr/firefox-85.0b4.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "f8c33819a6ceab041bed80f1663d94a80ee3bdb6e859eab1eb8ec9d0b67f4222";
+      sha256 = "9426e988190c0f65cd87cb502064cc2cfa8146e1edc15aaff7ad3a28e8c30ae0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/fy-NL/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/fy-NL/firefox-85.0b4.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "6ed233042e570e9a04ecc1e25f6211deb7685c117db75f32a541076d95d1cebf";
+      sha256 = "80896d31f83bfbee9ac2b585894fbe0332c2516c7cb9eb06b10dd8169fb0a50b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ga-IE/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/ga-IE/firefox-85.0b4.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "b28337429a0c1d26653fda1d93b59ea0383061a253be5b763442166fdb21bbca";
+      sha256 = "678c24f47dda38562f15889bfef5de79e1375a85c8158697c37846252d55f4e9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/gd/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/gd/firefox-85.0b4.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "546bf2f1a4a8a643b161554bc92e771644ff9ae46c6b10fb2a60b920a2454f44";
+      sha256 = "87d924efdea12fa98ebbe88d42afa5944b821c4081ee0a549e66393d69c1eb53";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/gl/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/gl/firefox-85.0b4.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "cfc32d3e7e3ba5379895a8b348d9399bd3962a819d0677f14a365f6e0c314676";
+      sha256 = "61cb992a445cee2689e19415da53d5611d68f65acd8aceaada76b0999e50ec13";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/gn/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/gn/firefox-85.0b4.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha256 = "b2b5e826540d3f9b52d67e092fa755b26a34ea9acd0cb1c69eb6f0bc332354d0";
+      sha256 = "95c3467048e7250dddfcb018ae8b8bcdb9de78b3a01076c4e1aefc937f4bc3b1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/gu-IN/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/gu-IN/firefox-85.0b4.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha256 = "497b8a954ed2c9fa13e207462730dd39d2d0de10a38e3762dac3ef1fbd36282c";
+      sha256 = "1bdcef358bd0ac242dd0607545fc65ad98d0785898a6a53394d04c74c8ee0a22";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/he/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/he/firefox-85.0b4.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "8cdac2e9d2cf10171f2744727ddd80e21a4d46e2082947e49f4a255f174db968";
+      sha256 = "5f240e3754fb368288cab3f37ab250d6815dd1b792b77180fa5590e4d9c6acca";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/hi-IN/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/hi-IN/firefox-85.0b4.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha256 = "d37c55e60329220de3d792894d7b801adf7dc7ab8ff4ab39bd2e24b59443b973";
+      sha256 = "9b0eb6eb03eeeeebc78c652f4e5bf511335ebad3afed9b31eeef8f5c830b0e1b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/hr/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/hr/firefox-85.0b4.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "bebb6709dd3be119be45d9fdb0bac41b81514d78a384a221e2ffbb51b46dbea8";
+      sha256 = "53bd72eed8eda15e3dd1a070b221535bda8aee3930a713b121b84b64a2f95a3d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/hsb/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/hsb/firefox-85.0b4.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "c43aea7fdd8a57653d6d9af4aa7c0be6e860f5292366ddd91c5860dfde2ee1bf";
+      sha256 = "e233c7ab46d0f3dece1d580c8a615156bb70df6937d47286c3a54b4d15cebac9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/hu/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/hu/firefox-85.0b4.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "71e6b509dd3a6937d9851c262fc7a1bc9e551cbe0515089586fc22098bc51151";
+      sha256 = "2ffbc88d33631a5c0ebbc29b8f36c6b7f043b8faf0600398e24d48546d699eac";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/hy-AM/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/hy-AM/firefox-85.0b4.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "c92eaf9f6bfa97651075d2342e45b988ae89c1a4cb55559dad71bfae5912ee83";
+      sha256 = "f6cbd70bd95642caf737684c8c429342e8f567061bfb680732382b5c5f93f1a2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ia/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/ia/firefox-85.0b4.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha256 = "3c71aafb7dddcd3f9bcc8e169281614ac1087400d1d0ba02afb18c68b1914128";
+      sha256 = "ae7c96c3120c1727c4d8ed4f9978aafe64740d49111bb6bd507e4a9e14d7dab2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/id/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/id/firefox-85.0b4.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "8075ef0b1d7eb2fc6141262cbb0d3831c3d8508eb43d3e9e142d96946ed2036d";
+      sha256 = "680f5f3dc843b7acf86c79fb3238796ce3d28b60da3b76f55a37652d1a11c176";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/is/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/is/firefox-85.0b4.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "5ef96d77bea5c94e7147a5657d76eb5c7f206208a0464245242cca3fc7fb79f0";
+      sha256 = "ca40b8a9e99234faa67141732a5ef70e416e9aae08b4e8cbf6fe2ada9f0b7b4e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/it/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/it/firefox-85.0b4.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "eb76a1f3bd1ac065772d4ea4a435c53b5f7b1d5b643c7b62b7ccfee205ea4e81";
+      sha256 = "ac8f5d43fc30760e68be4802514bf09fdb4940336d48844fe833d9290a10506c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ja/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/ja/firefox-85.0b4.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "80b644648b9e40ed592ab9ea2b9d7f1e2abcf8d6b0f925aa57cd6cf28d53dcf0";
+      sha256 = "13c66340765699d336926872065ce0edf7e14f43b2f16dc99aa277f5d64f2275";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ka/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/ka/firefox-85.0b4.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "03c34e7b08a8b6140e612739118c35b05dcdef1257b4857d2fda87a1cf8852ff";
+      sha256 = "16ef31cb13dc3c54196ed3dd6209bfdbed14460c38d3fc8cdce4ee7801322ac0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/kab/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/kab/firefox-85.0b4.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "419a4758cf2e2e24968f4da384dbfb03ef8398713c6070ab29ce379772168f18";
+      sha256 = "68aa1a647c86f2e9fe63bab675f7d851a08fb22d5ed72b10f2e6710e03e02672";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/kk/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/kk/firefox-85.0b4.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "cfe96420e125dd12c9a9e79e45a8d7ee260d1957abddab5ed887afd1a1e3f499";
+      sha256 = "8603847204461f9370447c6c546c4bf985926353597aa7d9ecee9d46a810ba95";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/km/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/km/firefox-85.0b4.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha256 = "4b3599a9b30132b6105e4bbda7de370e54e21d8e498bb3c4c3d9807282fbf246";
+      sha256 = "d552b9301ca160577d24267584fa3b8c45a1c6eb82cf540778a617eaebbff6e5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/kn/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/kn/firefox-85.0b4.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha256 = "5da3ddc9d9824e3ba59e1cdc89ee3fb8900c661faec1f539c829d0917be5d4d1";
+      sha256 = "b5f4259baa11d5010fdde27dbd583f56b0c9fafaeab9c7f31be87b9645478e6e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ko/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/ko/firefox-85.0b4.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "2db9a494693091832e578959144d172d5135b82bbf44c041949da8ffec2de9dc";
+      sha256 = "e73be57006747f673e979741203537cbbd8f9fb6f4fb77cfc88a7d0c85c7a7de";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/lij/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/lij/firefox-85.0b4.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha256 = "2219d5235f0ed9d2015ead5782976727d2b7103afd987eb445f3f274856e6af6";
+      sha256 = "3190c816b7a2973aa7d2a0640fa4e174b02b62a62c28eed7e0df3b377242aec3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/lt/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/lt/firefox-85.0b4.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "a335e0d835bcc7ae9563bb3efe6b926ad71e08f3ccbd164aa2b9f257acd1341d";
+      sha256 = "95a68d2d1a98bdda38e86f4c14c28669d2a11792fab561d6a8295c017d1a5068";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/lv/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/lv/firefox-85.0b4.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "1f89f8f2715254ef335af9b01ca1503caecb1c93b1a900ee1643c3f9e00c6821";
+      sha256 = "3460fb2356584ad3cd02905b9b3a70a569ef78666a69bff754fbd0b0eba0cd1f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/mk/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/mk/firefox-85.0b4.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha256 = "86eb9f1e8189ce45c03925337a90f1b204dbdc902c1c4a817a924410a26b0048";
+      sha256 = "864d8ae602b06c75ebf0d0bb4b8fcc5722840db373bac1a5656a968df7aea6d8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/mr/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/mr/firefox-85.0b4.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha256 = "d5214647403f85c5f7a95871e8d6fb4d4c448af92e6475841fd8474857f21067";
+      sha256 = "09e63b52ae1de354e73838dd0a60de360fcffeaeedd8af316174866a43c49293";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ms/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/ms/firefox-85.0b4.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "23af07562748448a35242a6cd77bce25a5576d2b71177fb682da58adb21671e3";
+      sha256 = "c1e47d112d887922d81458bba8a7afa0a706444624738df92cdbe395f4bc9d0f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/my/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/my/firefox-85.0b4.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha256 = "bfec2f3ad0853fb36ec4aac9ad97ba14d30a275eff2582c2e9df600b5940c004";
+      sha256 = "d78413226f8b87af0ef5baecad2ab4b9ced69358cca969635b4f71df645ccacc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/nb-NO/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/nb-NO/firefox-85.0b4.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "32be6fe8aa661f6098b4600d824846738664f254ecd4ab0d0a1e705b28a94e74";
+      sha256 = "5ecff68265d8ce7c5a59da0366570adafc69b8c05fc323e619a7ce08fdeb7108";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ne-NP/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/ne-NP/firefox-85.0b4.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha256 = "dfa3e6b9f31fa716a2c80fda07c24717a526ef96033b5b1861fcdad43c99b29e";
+      sha256 = "00824ae4fa57e98fba5fb1a46b86853a289e24341b94d2ede9e8e7d358d29e9a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/nl/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/nl/firefox-85.0b4.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "e253d963b66855c44f41c43baba1b5c952b37dd1b83aac8243c60581ca674a49";
+      sha256 = "a0b3a25bdc123bf9ea441456b7d1b3c6fe78ef1589b69742dc38f50d3d92d700";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/nn-NO/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/nn-NO/firefox-85.0b4.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "5d9b90cdee03a544a78f44d4f0566b5b59ae802af4fa60367a1a4836c01197f1";
+      sha256 = "00f599f8850af9df078c5d296bfd50a7bdb012f7978e83828000371fbdd93509";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/oc/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/oc/firefox-85.0b4.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha256 = "b37f9a283d9dd2ff9e8998d83e0c147bfbb75e4b64b3936cb344243e1277c370";
+      sha256 = "d03638662bd89dfaa1af08312b5361da04d5cb9c93f6eea9b2442bdde25d1eb3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/pa-IN/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/pa-IN/firefox-85.0b4.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "68f6bae2e6f064e22503145b5fd57d027899f23fcf109010a98397dd8c0d7cf6";
+      sha256 = "2b7d9ed3aca15e5bb22f3fcc5fa0e6289729e5a88d8a43602a9adf38c4e0a8a1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/pl/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/pl/firefox-85.0b4.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "789d6925c3b17f96bb92eef54c05fc8787f32ce2c9846931e185dc5a1de9f303";
+      sha256 = "afe081f1f64aee140eecf24b413f44fa04d999f3bb97a2862a8469732489e94c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/pt-BR/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/pt-BR/firefox-85.0b4.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "329eecf74dc8d9d1d8f4578389553d92a368c972fcb2468e0b936f21508bd1bc";
+      sha256 = "9e643c670efe00e9144529aa65c8f10ea2c8f7d5374a2d93c439a56cabad7d2f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/pt-PT/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/pt-PT/firefox-85.0b4.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "b30ba75dbd5f5ff3ff709722acdf36acf4de9993d230eb27996e81406779dd0a";
+      sha256 = "98cf63382a586b649b30685bee8591085edf46d747860fae751a5dc4ed183979";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/rm/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/rm/firefox-85.0b4.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "ad90ce4fbcd094bebf77b36a63e38326c613bffb580743c9a4c19df845907dfb";
+      sha256 = "e000820f06aef69922eb0305e4d70cdd1820f86a1bbb60cd0888cc5b5d6ce0b7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ro/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/ro/firefox-85.0b4.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "8f7864bc6577724f20829ad79901d92775200860dd8c43bb2443c7bf22d7a435";
+      sha256 = "daf8f2419a8122ac4da0dd585bc466d404f9a1cceb82aea8732aa4ec112219b2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ru/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/ru/firefox-85.0b4.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "8b52d5eaee53805422bb2fd6dd8b2e0c7a5b01feccbc6fb6c77e4fb8678d30a9";
+      sha256 = "c081fddcc21b73b421516d529d7abb6d463c804f1875b4b755d34c0be34cfb05";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/si/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/si/firefox-85.0b4.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "a71df756e97f58271715f3d79a86c0407487dd5820500127cbd9373361bd016f";
+      sha256 = "607f0debcaeba1a5a6bc270e4a45793b56d4fb15580da6e264659fc3d4ed6577";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/sk/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/sk/firefox-85.0b4.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "71eefff1538a2978d9e4e65fdd5a2322ad81ddfee33464c0d70b95eda1649fda";
+      sha256 = "d3a06cb060f6ec2131705a75187dd5ca62fae91a22258c59f93c308151ff7b00";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/sl/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/sl/firefox-85.0b4.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "91b2938be8230b6301fe3d15c6d9ba3f031c1e5fca886da228f47a2e0a2cd144";
+      sha256 = "eb9c21cb4c577500464c8fde4091207a93ab96cd4a6119feac815242e846e65d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/son/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/son/firefox-85.0b4.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha256 = "57e456cd14418c41c2e5f8eb0ec6b0807459f41e15207f6997c7742fd3dc8a1a";
+      sha256 = "ce5449dfb0201d3a2c4891519284903af46177739feeea4353720d108107ccc6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/sq/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/sq/firefox-85.0b4.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "0f343e2442523f0e422309cc36518484a242db4116f0e6b7dcfe251cdfea76cf";
+      sha256 = "65ab1b97653e2cb416d60f65d6fd7696cf7b5f63bb3b80d13fd199829247ca58";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/sr/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/sr/firefox-85.0b4.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "cf8fb723611506fff356cabd91a0ca3fdd9cc5d806167df6dd385438d467eeff";
+      sha256 = "16c5e71c6dc86688d3cddc0330fcc98a7e948773833c3f1d856b194541fecc3a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/sv-SE/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/sv-SE/firefox-85.0b4.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "258020bbc7a75139fee340e50d41676d234be19c931f0228485f06fcab2eef81";
+      sha256 = "7bcae95e5c57d1b380458ab30e2dec9a7bd2c1bc6c2712fa44a9245639ac083e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ta/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/ta/firefox-85.0b4.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha256 = "7783166c0f9ceed0f7d037c1e92b988818a70522945af2c96db958966eed8b66";
+      sha256 = "6f35fc2329ea0a96049c9cadaf925ed064e0f4b60bf12082029898396ab34dc6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/te/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/te/firefox-85.0b4.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha256 = "02662946b3506da6432c48eb1c7e0f522ffaed2abcfcc474332a799ef3be2b92";
+      sha256 = "9f4c691b6943f715e6d6a1db9a36cc745614ac99a33767080157f852d8cae594";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/th/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/th/firefox-85.0b4.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "1592b372b8e767e5b7369f356fb733a2daf51b4f45c8c4c94041845d63b3c604";
+      sha256 = "c15b8db3bbf1bd9362bb5f024daf0aee7ef3df8cd7864dbeec6a824449722063";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/tl/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/tl/firefox-85.0b4.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha256 = "2b831feaae729c674e8a9ee207dea007df100bbbd8cf7553791aee3eede37224";
+      sha256 = "98837a0ce69e67b9bcc518c9953763331757870c5cf1ecaadb1cb37cb30338b4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/tr/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/tr/firefox-85.0b4.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "aedf8b7684f204109e42a3797ba00bd7a8c5bd3f827c31ea3fd4eea1679d8af5";
+      sha256 = "cec9efb3c0ffd4f7438964efd34d78b377f117fb0f9d051e103663a676d6a6cb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/trs/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/trs/firefox-85.0b4.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha256 = "232cae54f6120a47455fdd7e0d88dde1f64d5a1931bcd7d54f6bf8bd376583e8";
+      sha256 = "151687f7ed062ad3d0b46b113a26931c41dd375d324aa7055952492fd497c445";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/uk/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/uk/firefox-85.0b4.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "e00de7cbe1f00aa082f9a448857cc19f011bb1d5b579e79457bb0dfc72b7a12d";
+      sha256 = "c0335c927cb343b3a48739949c3d8d1a813eb5caad4a989dd9a3fec16e4c5688";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/ur/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/ur/firefox-85.0b4.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha256 = "7ece4d8af476eef174c0c175b65841da8d826702fb255587c2e1d259bb9ef3ba";
+      sha256 = "5b4a20c279161d910dd6730f1691d4a4bb8319a3e365bfbcc553a47e96d9db30";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/uz/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/uz/firefox-85.0b4.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "09c7e7d641f703404aa7927860f2924e6be376b2e39b1f0fe012dc87469edb62";
+      sha256 = "8fd7881da8c03c3b9313509047ee453d175c271fd086e27710bd0aba3fd319d3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/vi/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/vi/firefox-85.0b4.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "18121867e6b8c2a52c5324f653f82afbae97481b5ac3df811e881ec39bbb3b0e";
+      sha256 = "7dcdea1143af2cfaf9974640d520fec1e44cc156d085432f52318b745dd21f6c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/xh/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/xh/firefox-85.0b4.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha256 = "04f5bb96ef9002eeb0869236f70168e7cbd7842b8e12b66dd6d5d67db9acd28a";
+      sha256 = "f502767929505209d05830b7d0075fcf8186349afe07e793afee560eed9aafc3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/zh-CN/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/zh-CN/firefox-85.0b4.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "142286cf9136bcb9b6af7ea1df3cf77821c0793ab7b9fe533a2963c453f45a7d";
+      sha256 = "9d8c003da5dc117cda204487ffd0dd95d9677d7e30e5f868e3a39d3146569da1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-x86_64/zh-TW/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-x86_64/zh-TW/firefox-85.0b4.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "fef32e5817140bbcb6d1b614a72a29523235606192078eb04420ff7a2453cb9a";
+      sha256 = "ebdf6822810a97381e63c6c2bb08baea4c239c35b4c75e714da367f982080863";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ach/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/ach/firefox-85.0b4.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha256 = "40e9b7a738e06cec731c69b659b14ca48b119ae20016e0214e1160edf03919b0";
+      sha256 = "e63b45c8a34d286097825d2830b3697a2205fc8f62e7f7b19fa5569294d4fd3c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/af/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/af/firefox-85.0b4.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "9bb05361a51f836b2de5614127f8df768e504f4d5bc136e3f169741098f0bcbd";
+      sha256 = "93f0fa71381f937d07764ed4bbdb1ea167664fdb1ed40d063b4fb079ed485dea";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/an/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/an/firefox-85.0b4.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha256 = "ee62418444c76b709204962ed47af8ef3d61b80e628600201b5a12293651c70d";
+      sha256 = "1ce6d8e8ba3409b7b5886f87633609a8568ceabdef45beef623ebf74e4bdbd76";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ar/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/ar/firefox-85.0b4.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "10b5d4f1616e078bf83ab5ff942dabe89a8eaca63f24e96b53726dfb2bc9e36b";
+      sha256 = "990905d68a82f3eee04a9a8df4b291eb425469e6bf045a3a126bee08af2b785d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ast/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/ast/firefox-85.0b4.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "a4e5ccae125edaa0696b696a5342320707f0c39c8985437b6aed60faede71de0";
+      sha256 = "606c37c4eda9d1f55e8a8fde0f8df822186995cef190e1644bcbe465cc1a0f54";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/az/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/az/firefox-85.0b4.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha256 = "c13d9ed183c7b9256801708014f38405749cdfcead9f243e80eef78d06a9b78e";
+      sha256 = "0d2cd416e309ae19af4f3704823de50b560863dc1f1939e75663e9976cbb5c8f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/be/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/be/firefox-85.0b4.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "57d8eafc3d45784dbad71eb49d5a4c0483d939719b43b0f16e4db1d5a96ff4a8";
+      sha256 = "fcf922756a6830d9bf76bed71579f4b6e2e47edafbb843ee2a490552cfc88f86";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/bg/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/bg/firefox-85.0b4.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "0a65ad71cc9d97277535f07a8dbc7ca248508c24dea8520f92fecbb806f87a31";
+      sha256 = "9d40f252156d646363e65aca32ae4ebbeffe147dccb3d4989e79a57a4dca57fe";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/bn/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/bn/firefox-85.0b4.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha256 = "3cead08f4d746def6cfb909107f4739400498c970f10fbd542259c04b84b5852";
+      sha256 = "9471636ffff7f11db45001af18d86ae0d930517e09cd2aebb0a850a946b44917";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/br/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/br/firefox-85.0b4.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "40c6e963e8e52ef51cd4d4e63d501f2a6cecec1800541941458b896ad90e5b93";
+      sha256 = "4482fe50747f7fbf4db5ffb0b3c16bc0245fc0397f582e73c609a8cbbd48c1f8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/bs/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/bs/firefox-85.0b4.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha256 = "1e9df53642c442ead4318b0cc886653fdfcecf5275d6e7218acb390bb13e0021";
+      sha256 = "5357a4fb56a4aeeb43d98f5ace310000532da9088ca0cd06c818d3852fb38452";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ca-valencia/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/ca-valencia/firefox-85.0b4.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha256 = "3b5699dad93291921979fc6da21d16f94ef471e9a8ef3d877001400ba4abe316";
+      sha256 = "1a22b215fa50f947afd5657ec702419ec708133f89f372d7667d12fe0e3b85eb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ca/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/ca/firefox-85.0b4.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "c52b9cc25dc72eeb6ef3e7c3add4066c005399afdba2cd0964e695a891a1d314";
+      sha256 = "fd335110bb31eed1e1854d24c74c51b8ded826008e49d8ed6b1f7be85ef05753";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/cak/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/cak/firefox-85.0b4.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "355df19615fddd85c51b033a413a3de524f19fb2d97a2ba77f3b8001b231338f";
+      sha256 = "b852765dd3dc4530c1d1d00232c6a615472d721d1f69cf303ddfd6d6b26d2745";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/cs/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/cs/firefox-85.0b4.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "e10f35795f19ea10c4de34687eacad6f9bd863002e9d66b87cbace01b97c8628";
+      sha256 = "747f697ca9aca2b1982a95a3d05f4549d3f1b276cdac39e17670c0b101f8b704";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/cy/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/cy/firefox-85.0b4.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "f2fd90b19e8c4ac98bd6ee262084ef7842e52a304abe10cfcda2fc14ccb5ce30";
+      sha256 = "4bf87e33539d8bc383715b89a5fa5e1f5d1e272a7899689585f9fdb711a5e259";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/da/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/da/firefox-85.0b4.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "01e468f3a445276aea85425b4b8a58e44a2e4cf8552a02aa3d4d31775bff9575";
+      sha256 = "bf9961aef493ceb1613c91d79ef1c7b718dc5e39fa3ad8dbfb012d51c16b1e5f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/de/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/de/firefox-85.0b4.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "9dd3d806a4ff60c9cfd5b81cdf212f72c281f75ce554555cfd443f0696f700d5";
+      sha256 = "e4e85f2d49dfd9b4bf62e4ee2e77d03660f0b6ae9ce7ee827a17f2f067768b59";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/dsb/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/dsb/firefox-85.0b4.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "eb26cbad496bc1c4f97e6027a1f2cd9166d479a503a3f0ac566a766c86bdf8b5";
+      sha256 = "71a3307575c45643d8121b64a345c19a6dbfa0924fa7d91b5913d52ce7a5d663";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/el/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/el/firefox-85.0b4.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "e173622f06f64156d749d0f56d98be72f067077c3e41090aa16a3b0c6d7a5e43";
+      sha256 = "75bdc62ba592d48f172af3b072158e14ce0f433c7ee3b44f9bb0f4e0f9c71834";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/en-CA/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/en-CA/firefox-85.0b4.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "c1c6aa503e1565cb0c0239d562f11322265a7bce4005211b8007579f8f56c318";
+      sha256 = "c7e2bb86941274de33368c78122cb14bc52c4177de2b9cc757d269d9d7cff40d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/en-GB/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/en-GB/firefox-85.0b4.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "57b2670f515e2a17c10df602d93a6960e5c4710462098d89568efd446e4480e5";
+      sha256 = "46c5821f9e973a599c74445ab4a44ca31b3f76e18597f4e0d77479c1cd0d3841";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/en-US/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/en-US/firefox-85.0b4.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "81cf4a4fe610de3342bdea340d450ff67c594e7e4924a08b6b69de75510da698";
+      sha256 = "4cd2facaa0b33b02228405e74689770516e6af6f07de8dac096bc66ca9a238bc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/eo/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/eo/firefox-85.0b4.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha256 = "dd61c4bacfe39f7887c6d21d139df6a2df17f263c4be5689f5f9dd6bb4ee6e63";
+      sha256 = "6966ac14fa72fb627955e9281c6e54f23eb03b83647cd52934304d672adb6d5e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/es-AR/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/es-AR/firefox-85.0b4.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "3ae8695c57befa3552033bcb867b48f9ba491a08e31168ba22901fcb3276a3af";
+      sha256 = "ff32191b95dfba73d85caab8aca47e32b2579f92c9fedce14f6e16a6e42c2178";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/es-CL/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/es-CL/firefox-85.0b4.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha256 = "5ae14208cdbf0dd50edecb8a56bfe7dba0e7520f2ef135abb092761acc8630ae";
+      sha256 = "a7c7a9f646492e8de8474f1869075c568774ccc0118c340721b70c06e5471a5a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/es-ES/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/es-ES/firefox-85.0b4.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "d786cf3b623a05e5156b020a436897525e80117ab7fa9f25ca42fca9fb4c0eba";
+      sha256 = "71e78fc680de3dbd91b77bb13b113ee5f34463aaa4791a3b0a445a292e5d0732";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/es-MX/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/es-MX/firefox-85.0b4.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha256 = "c2ec749bb5befffd81189503d87a57bda462897bba858904924ae999923a4e42";
+      sha256 = "9c357beab45fad0e56f957fa73b8900a916c6cbcc8b18bd5389c0a977ddcd18e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/et/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/et/firefox-85.0b4.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "7a2e1078ff1a3bb975baa5488f89e8161e20354d7f55b98c964efa5bfce6f696";
+      sha256 = "a3de258fcfc4d633529566d2d8f7bb582683d6dc22cb3c9ad13a4914b84b6100";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/eu/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/eu/firefox-85.0b4.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "c635006a367f68bfabad7a3874f3333ac3f486f0001ca9641ac8ce12dd9bd01e";
+      sha256 = "092cb149621ff664ff4462c39266ea352971b30f5dfb0db163b62cd3af4e0fcb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/fa/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/fa/firefox-85.0b4.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "f897a5d316c436fc20d8c2737902e29dfd0ece3c9ffdb90fda2fa454ad398257";
+      sha256 = "083d17daa3f86af4651cf433180750bcea6d00758ada3ade80bf2f713b3c04f7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ff/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/ff/firefox-85.0b4.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha256 = "3a31d43cb5242a0aec516d8fe99dc916144e8b7250b81c7de0b1361b19f067fa";
+      sha256 = "7de0cfa6bbdd1061cad1a72d80f5f504dd163a066c9911e1c44428f02b1942d7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/fi/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/fi/firefox-85.0b4.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "50261499bd4725f08684c9042056c9da2029f55b0dee4a856a9de661412c06e8";
+      sha256 = "d718ce1837fcf64bf2b324724603559124697e58ddce8324c79e582c7f644205";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/fr/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/fr/firefox-85.0b4.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "7b793590a975a64b6fcfcccb4e6c07cd5346ec457af1ae31b5fb1032d4217c64";
+      sha256 = "74e2ab8182100b7e69c62698bcf5b03cb127f4e90dcbeb35bba7d66b58a711e1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/fy-NL/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/fy-NL/firefox-85.0b4.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "468c7463503a34de44a74ff6a751e8614abbe6bd23f39f50308f23000614331e";
+      sha256 = "135317f51eb93e2bbc18401c8e5fd2c070b3688fc6a9bb54e9e78bb7f37c676c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ga-IE/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/ga-IE/firefox-85.0b4.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "92b49316d122c8c91995766e28387d5587955e022f844c7a85fe491ca602e222";
+      sha256 = "77fc52e186c1f823067a7fdb549232a080753c813afdece12f49444bffa6507b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/gd/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/gd/firefox-85.0b4.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "4bd2901b705f99bd1889b21f4af9ba7dd022f608960807f96f115a110c96a80a";
+      sha256 = "abcaca790054b035687a78e9ae8151459af4b7f2d9d561d6ae41c87a0308c694";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/gl/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/gl/firefox-85.0b4.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "391d62de840d53d531130fef0018c71add0ef7134fbc758eb869da7c1cc3b5f3";
+      sha256 = "291adca54f86591fdb67c6a958eb7784b5d5d4996858ae8936a5615c89e2fb4a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/gn/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/gn/firefox-85.0b4.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha256 = "d51f75a7718e78bfb1e9d0974db0a404294e577e186794d3480778c7facce418";
+      sha256 = "0c8dc262e96c0a912cc8aae7e1ec76da36091cea47ed535eddb8039564ed24d8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/gu-IN/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/gu-IN/firefox-85.0b4.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha256 = "7cbbf4846153f79fc72e217872fd64b92ed8968aaf618eeededa375ac268a12e";
+      sha256 = "2fb8fe3c39353ae9b03018ab17a3531ae20e1a6794871a7ff02108484f641801";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/he/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/he/firefox-85.0b4.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "44c0bfad535a4e3c225d948d87935e08e5d77ea22638e971cc833877462edc32";
+      sha256 = "3222cc40ba99d0833a3a8c5bd2e9e8c74ffe0e2209891899e9d37b6a35bd8e41";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/hi-IN/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/hi-IN/firefox-85.0b4.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha256 = "fc64673429972967238b5bb101beb2117cfdb0360e405d4d3b53f013791c0b8c";
+      sha256 = "bb633eeadb00cf6913190221e5720c68da8d7a7d5e51b5f1d32621ab35fdf7ad";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/hr/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/hr/firefox-85.0b4.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "f256eb4e655a14b1a084af7f72ef4673d33b42d1c23ffc1ff3b4ede42d966246";
+      sha256 = "21a8dd0e511ff658e09a5497925fba833c32d1bf6537f11e53eafb07d6bd8854";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/hsb/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/hsb/firefox-85.0b4.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "9e1e478e501875ac259e22287aece77f1bbc1f898355ab1c29fa26543b38acbb";
+      sha256 = "c862804fc9602884bc8074631d51e091866177682a6767e5b4935a3315b2ea82";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/hu/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/hu/firefox-85.0b4.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "e8605e1b9d2c92c2eafa35cbe647bdda6af22eb030d8656262473b0b17650de9";
+      sha256 = "bf92592b0f3697e828c9b07d24c5394ef6cd980c94248ceaaeb0181a1d0ddb24";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/hy-AM/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/hy-AM/firefox-85.0b4.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "be21fea69e27ce54498b6b003c1db20b42d7d52702ac56d1a1fc2c6fc24558f1";
+      sha256 = "fe5686fbc9c1a173c4ce11695675a4aab2efb7d340bccef797d8a20eedadfbc4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ia/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/ia/firefox-85.0b4.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha256 = "039f50fc10d95bdef4468174a8486f45bbf9313e1b9b6cecb0d094bb3766ca9c";
+      sha256 = "791423722d872ecf6c45e0f16b74626e19764c003cc5f2ac2fbe3e1bacea9422";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/id/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/id/firefox-85.0b4.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "ecd6f3e031529e1fed8fb7ae77bf6e0497c9ad0e4996e31a86c4b79489ba9811";
+      sha256 = "df4b06f6d4946d2dcd55130df46b7cf5e391ba433eef792854ef8338dbcd891c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/is/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/is/firefox-85.0b4.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "1f6fbf55f1384141826a4b6a39ec617cc798b0c0a0e1ee02d6cd65a79d6784a9";
+      sha256 = "d60f08191a68e5f4cfaf5848c6d0a755c9033e853e6da08eab6b74362c220ab1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/it/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/it/firefox-85.0b4.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "73eebb1d351b5d746d3447c7a68d7a906c4db6df8cd257c6a048ea16cf908e64";
+      sha256 = "a1d38ce8785cc3f15d777e226aba48fa1448da021092d9aac340cd02ccfb5669";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ja/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/ja/firefox-85.0b4.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "ff1c630c6c41cd31c8ecab5fc48e8879dbc4aa295492368cae93061de6558b64";
+      sha256 = "02626394737a87d0dc80365b7ff7829bb1d1191a65a063d4d079735199ce2731";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ka/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/ka/firefox-85.0b4.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "b6976def40cfd05543b70597347ea7c632c591660a2dd08332f81411a6ce6723";
+      sha256 = "4581ada66c25d45db22d4cd41356e30b0b9fa88132758e219e15ed70dc4055a2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/kab/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/kab/firefox-85.0b4.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "403bd985ff7ab44324d12c8c7f1386eec9fbae97ac9a0597d12d09d387686db4";
+      sha256 = "24b4d9cb927322b3805e930a54020fa84e3925d824363ef824501ff2769cb015";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/kk/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/kk/firefox-85.0b4.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "3860b0e8d53655669afcb4bece7637e9a1c0daa66d453e9548b2336eb45d94ad";
+      sha256 = "868d5959ba761e578b5a2d00a29c244cfec0108a294fd52b18682cf31173b9c4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/km/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/km/firefox-85.0b4.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha256 = "5753474371c7b8663d45f7f9591958afb9e9e2777df3e89840f6f34894ddf491";
+      sha256 = "e5f63ff912c920d92d7608e2746d429737f0868bc5fe33d3c460ee1f745e242b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/kn/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/kn/firefox-85.0b4.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha256 = "d0dbeceacf93c3a581cc581e09507e401636350b763c8c9f5342b33a0640bd8e";
+      sha256 = "65d45e29f289cdefecb369862fee62be698abad2b8452687507a52149b4d1de1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ko/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/ko/firefox-85.0b4.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "095930063eae8e3d6a78a6d9adb3d28cff0bb0c9ccdec977c8c80765a4c60560";
+      sha256 = "83a516bbf83574f20339382778378a889016e5947c882fab63aadb728023465d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/lij/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/lij/firefox-85.0b4.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha256 = "587bced8e4480eba25e8597ab6b838a4f18553dd44b4f0ff48f245406f78e896";
+      sha256 = "690522d1a0d67c5538d567accde52effeba8b16cb4c36920aef230a62e1f655d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/lt/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/lt/firefox-85.0b4.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "e214c23914e05152973428f5ed1df20054df054848d99ff23e5eb09e19b4557c";
+      sha256 = "f586dd3c96aa61d9aa19ad734f4a61c9e1f6a530795ad486a2a1ff4cb18f0854";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/lv/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/lv/firefox-85.0b4.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "67657d4abb394ef76d37c321625d99dcf228ee00cc109e6d1c80cb3659db9879";
+      sha256 = "002bdcaf29f65d2c81b607e36c280f73a08cefa32f9e878ca2c834b80eb69435";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/mk/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/mk/firefox-85.0b4.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha256 = "bac0e98b7a68dda441195cbebcdbea583f104188112449b14723c1086c3c4f19";
+      sha256 = "06179e95fce7f93f410983664077e4213f31272ea626a8b3fefe1e78dd0b7fa3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/mr/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/mr/firefox-85.0b4.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha256 = "125a63c875f4be6e246fa01289386295172d999e0e523c1171578adea24b022e";
+      sha256 = "532c17600a7ccc995424759043f0dcf0df5a10870bd7daa92c39f3a2a0b11c68";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ms/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/ms/firefox-85.0b4.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "6dc44f34449c915e93bf9c012ce7286b16d6418ca8f576d8a008b7ceb90bcb13";
+      sha256 = "b315e64474d410e4c6c403b1083b98fe5bba5f20fa4fcb115671c58075e1ad65";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/my/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/my/firefox-85.0b4.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha256 = "af5e2f1f9dcca84f41d3701035a00fc6b581aee2bf00f9f926928b99ab42d06e";
+      sha256 = "848b472edef05971e5d6b003a1d3241c0d34a3f0b2a54ff97ed3a7f2ac96bdde";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/nb-NO/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/nb-NO/firefox-85.0b4.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "d168631cc1518e17cc9cd85f481f1047f6ae7df593d9197de5710fca0d87965b";
+      sha256 = "ca2e64f608b908b752413d9da7c8ec2cf23ab2f49df6362ce381b0d31e9caf56";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ne-NP/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/ne-NP/firefox-85.0b4.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha256 = "4b6065882ddd9e02441eff830808b31e6104d076cefed8386cff4ec7cb12330a";
+      sha256 = "3386312e032b56457483fb46d935773adf12f3a3938ac4c6eb5b0c12242d93ce";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/nl/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/nl/firefox-85.0b4.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "96298283a2dbd9e3242c27551ee29829b21c8b9a32ca33b85da3142c47084dd5";
+      sha256 = "7bbf63a4acf403611daf55e6663d796a46201349d29531245261aa5a8457e4c7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/nn-NO/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/nn-NO/firefox-85.0b4.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "19475301d3d93a633a1555b4436d63546a71160a992daa760a8c76a808791b89";
+      sha256 = "f126bb842ae56504ff25f9ee0765cccf7b9a4bce1d45d382f6c13d23792bbf47";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/oc/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/oc/firefox-85.0b4.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha256 = "48af4af195173b541d76bb623acc357c3a2a8d03227406a21de89ab2d6c8c757";
+      sha256 = "3f4045cfe03eb4fcd16215b5693913577f6c5fc68ba74528c6575a5573528241";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/pa-IN/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/pa-IN/firefox-85.0b4.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "582ec12fbe2f8b07f8f4ae11ddf05c62db2d84508ee63ad6bfead9493a1424cc";
+      sha256 = "cd4e81e714f78303603c390b490144e27f5f83ad436e610842aa04c242c8a549";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/pl/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/pl/firefox-85.0b4.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "df8fcb5fe32325d45fbc1c9349065cd2d7f283e6a33d944282f3ed948c1174ee";
+      sha256 = "9147013773bab5f5da15e021becda90d63daf7f7068d7947f9d7eae3bdb0e124";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/pt-BR/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/pt-BR/firefox-85.0b4.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "fa48bc301c9b7dac4802b50980c573039648eb41bf0c0fb3ef75d0ba1dce9b67";
+      sha256 = "20efb971aaaebe780b337d1525eac527dde028eadecd5247321a5db5f0217143";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/pt-PT/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/pt-PT/firefox-85.0b4.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "b0075346738d9a5f61fe4c3265c3a50f639f017551d3bdb2479e622d9561bd33";
+      sha256 = "765cbe09264ffc15115da555500ae376bc1a91458c872ad7e4876701aab6f10b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/rm/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/rm/firefox-85.0b4.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "c9ad20ff328c8c0693cab58fbfb1d6c1f85bb63fdd20eb8d371e82d4df5c2e50";
+      sha256 = "93f5d6ed649d275ad4ee1f9a7075e8b4270abe6275b57eca0759b2a8efb08cff";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ro/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/ro/firefox-85.0b4.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "7816302b6f70c0e24b848d3d396876ee0d870d90561c37e440bb8b7722f54ff2";
+      sha256 = "aa44ba543a08a56f46e220f41695da4aa0fc97c9569563ff0555f308117cc983";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ru/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/ru/firefox-85.0b4.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "8f4969a16f4e70b59dd2da78b73532ff39589c984512d16fcd7106d2cf503342";
+      sha256 = "6a17313ad121e9821a766115259a8f29ace0ae683d18a86c844073e671a4b0cc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/si/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/si/firefox-85.0b4.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "0dfc4c1c797366ac9e65489b07de756a1b03b5498c9e4a6a10ac0d3a60345471";
+      sha256 = "2766789c614ca35f6ec7177464c5cd2f5df5ec1ccde71e1835efd6f3635e0de5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/sk/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/sk/firefox-85.0b4.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "5e16b451058d64ea0cb61fa92e17fd72e591009803170b0b220237cac7180167";
+      sha256 = "7de262a9caaf141c37d819f89eb3b1ee7ab932b10e345e7f9a50db7f1e8cdfa9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/sl/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/sl/firefox-85.0b4.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "36216a3b474d3fd1d27886495f92eca83d24a465690efe7356ca9e7e4c08163d";
+      sha256 = "e31fdd4a192daefe7a3946976c7682e15ebb61b598c5dcf8bb7a870efd3a9e27";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/son/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/son/firefox-85.0b4.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha256 = "1116bbb70b7ff8538d3ce4e7df190bd152c98889d1612fa8485cb0197a83868c";
+      sha256 = "532dd0db390b3d8da03cb5f01e26dbc0752365e782e0b2d11925c14f5dfd8f0d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/sq/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/sq/firefox-85.0b4.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "006948f771f4964f5f4f078615cbb85aee23051e371ff7b871caee7c4659fe64";
+      sha256 = "35c59d0543506c625fd6ab0c181566c5f370aee2504970fd37b50d0d34ed0e8e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/sr/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/sr/firefox-85.0b4.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "20b0b9d605603e525d046424d290e6b2a0c963c0eae2a9a6c6ccdb72a9803e9e";
+      sha256 = "a6f9d8fdcfcb4b4a89e14b84e6a88bfdb0d6b578ee8e4129dc1f82bd933ecdcd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/sv-SE/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/sv-SE/firefox-85.0b4.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "a132b97019c75aa8929830f873974e1ab36b69ca7e3c9ab44dd2a5b11bbe4f7f";
+      sha256 = "664b8b51429c0267a745a69906f32757a28a4ae8b23bc2f591d3b190a3091379";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ta/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/ta/firefox-85.0b4.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha256 = "3f24d965ee5c89edd447e8a52a0241a5d1cedb0aae6ed1ad1c212ba4dbed210a";
+      sha256 = "05679379a0abe41cf46ab182018810ca42cf8b81686f48c3c644928db85d4c76";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/te/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/te/firefox-85.0b4.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha256 = "2b65c7bb7df93b2bdffa687bd4309352f0d73ecdd66767db0db860f33f17c6a6";
+      sha256 = "1c884e460b6e5a0e0c27e087b3f81a3c4245f6a5ba5ea2784b2b0b61114462dd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/th/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/th/firefox-85.0b4.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "21e2dca4e194a38de97b9b717150441bdd32466ee43e721f41afde004bc8e3e2";
+      sha256 = "9ea2b02fba273e970bd2140e713468b300fda7cf50451f5f4f840220b782e1d7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/tl/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/tl/firefox-85.0b4.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha256 = "9f4dc351f5244b0837a95d4afbfa0af373fe056e5eb106a2b177a57ba4c85ee7";
+      sha256 = "ea9334cdbae5921720974575477da6310fb75c02eb068cb13d700b71df1596f9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/tr/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/tr/firefox-85.0b4.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "50cabe6fea43e2212d0b0a9a5a382e085fdabc3ff6b6b0694b8f9d3d327c3ffc";
+      sha256 = "c2314d1159313ae8d330244150cfafb5345d7515c5062c62ae31d916f69bf4ea";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/trs/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/trs/firefox-85.0b4.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha256 = "c4db90a9a0677430fa591cc387bf1255f260208a4907cb760649cd7a6db03808";
+      sha256 = "769acc367c1dacee2617e784a98d4c546857123690f902783ed9f97c10062f8c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/uk/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/uk/firefox-85.0b4.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "7c92d619dd827a9f7ef9297f784cff582aba44684dca91c3b9873337b4318fb3";
+      sha256 = "d9c179bc63a3c9d8ec4722afb4cf4a3cd4175d01542477fc132147521d7be0b4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/ur/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/ur/firefox-85.0b4.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha256 = "ef46130577072c6fe6b14aa0710c75344dea46124093f483db47cbc8c9cb4ec6";
+      sha256 = "ed365cdf1f3ca389b308a2b9ee405917da0dd0cd1536c9c7a4e13949b118a2ca";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/uz/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/uz/firefox-85.0b4.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "34c28440a7772a7fcf7f920be760f92057d813648372fe7cb8ae9f2c3fb3a846";
+      sha256 = "b6437d5c406edfbe0c3a114d230a5b9beaefec04e48c92d01a7cf900f6dabd56";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/vi/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/vi/firefox-85.0b4.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "c02c1737b56e1ae4f20ffa9abd392fb69f19d68348341977d0f39bfefab465b6";
+      sha256 = "1d6f91d852f0b20e357e1accc6c43ad93bcfe2e5a92f04a89c1d4bace70285cc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/xh/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/xh/firefox-85.0b4.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha256 = "6be6defb443480c536639d99d124d8c636d70f049f126a793d627c131035c9c2";
+      sha256 = "597a04402d0d34f10c6e3fbd0f629eb45c6b3b8eba2c63917074bb34c47e8cf1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/zh-CN/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/zh-CN/firefox-85.0b4.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "454af78f3ea4aa00676c4b97dff278dd404116e1da7993b5a2593167d11db885";
+      sha256 = "e4df77f3447615bbbcb21904f15d2d18936ef7216c047a62c6901be00343df6d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0b4/linux-i686/zh-TW/firefox-84.0b4.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/85.0b4/linux-i686/zh-TW/firefox-85.0b4.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "7e6b1b0ad56916759b01df06b23bb6a23b0c59815538cb1edb3e95edf7b772d7";
+      sha256 = "f0d9f95b465bf5a60bb0ec5906354acb705e78ab7dcfdcf0c09a3f26e4fc7bfc";
     }
     ];
 }
diff --git a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
index 431ed105f0d..1620bc6063d 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
@@ -1,965 +1,965 @@
 {
-  version = "83.0";
+  version = "84.0.1";
   sources = [
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ach/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/ach/firefox-84.0.1.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha256 = "cea6ad61bd402e6c84a81a3f504f1b9292079c9d48d2353b51db4f03a8837fb6";
+      sha256 = "576e937824252ead56b4b4472aaaf8e3553107c547bbff74457a0a1d33b721fa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/af/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/af/firefox-84.0.1.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "d4bd0a9579f38d53f559412cc3cc04f11871ba22c81eee54dd9ab16c56303513";
+      sha256 = "ef9509ce8cc5f766aa3072c78750babf1bc26b4211f0f5ac7a4c88a29cdac875";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/an/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/an/firefox-84.0.1.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha256 = "10741a6921210643250013c45e9e21bc295da8e41f2bb5c5fadcd86c0e828c80";
+      sha256 = "7bdc125a9ed334f2b3989d40bcbbb526ef583823be5bbba590bdd7fb9562d32e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ar/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/ar/firefox-84.0.1.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "3fd4aeef281e5aafdda572d4814e70295c018b7fae6d214c40dabcac367ace69";
+      sha256 = "710d77fc45c4164c96194209d2dd615ce4cbe3583440f8f8eaef8697ec53a078";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ast/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/ast/firefox-84.0.1.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "237e8ff5b3fbc9d7c4095951ca014a5c26cc076305aee705ca943d81e72541dd";
+      sha256 = "910c6c17015632c3f996b4e7732fcc895eb9f966037f53934cb1810856c3e292";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/az/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/az/firefox-84.0.1.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha256 = "79ca0c798243841cc34281f917aad06c2f546a5e11b443a96e5030aefb8de9b3";
+      sha256 = "3c636e6b006c7ffdc01bafcb048fd15de7b414e63968e278a37be8faffa89fe1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/be/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/be/firefox-84.0.1.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "c15b0f929b3e3c6ad5618ccf6f9f6b143f893b6f77e176b52ecc608ca3157ab8";
+      sha256 = "aa691e814c2452bef9cb7f75098ab94cdbe742b3d25c456178badd68169b3b2b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/bg/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/bg/firefox-84.0.1.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "fd2094c59a057e8c35054f7d09c31699aeef927cf9688a87559a8ba69a93f600";
+      sha256 = "f6aeefe5aa099ac804bdd10bdd180d101c634ced146ed42cc025180a6bb9ea69";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/bn/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/bn/firefox-84.0.1.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha256 = "c9755c408ca1a4f426f1432339020ef3d7c675d426fae9d8697cded4c7d493f4";
+      sha256 = "91ffef38c34407d455294fd69e93fdb40256da5d06ac6a300cb48902991fb172";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/br/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/br/firefox-84.0.1.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "d47b889d31b945a5b768b3bbb336fdc43d62c9cc86f13916225cbfe68a560972";
+      sha256 = "d3735936296f33773e8fce3f3beb3a183a5db1ab7d1f1163dd451ffa43bfa0d2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/bs/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/bs/firefox-84.0.1.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha256 = "c36da445560b989ae9cf16a1ec72cd2cae82db670f90d27abe0499f8cc025eee";
+      sha256 = "a2fda7eed9a3fabb46a9e3049c1560f486fabf426a868b083b3c7d11447428ac";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ca-valencia/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/ca-valencia/firefox-84.0.1.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha256 = "ef5ee80cc0d6b1b299bc8bb6577b8e26f5de8b541530ddda231e2fafa863e6a1";
+      sha256 = "b1430d43b273e1dbf7899c537d93dce0c0674633ad50726611eb1bbd5397843b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ca/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/ca/firefox-84.0.1.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "7c349aa7406899835bc9e70893f28c8109e17ee9ef018e7a723085117f8dd32f";
+      sha256 = "d06da0cc13e1bbd04f9bb0659fa4745da08d410710793c2dd52086b10ea82cef";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/cak/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/cak/firefox-84.0.1.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "3e7aabe665ce423bd47e7d0474039d7bfeb9958849c18e98c37f28def5fae1aa";
+      sha256 = "66cbce52e16178231cfd884e88443f4d5825079c9df74a3f6ef5ad226ec87025";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/cs/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/cs/firefox-84.0.1.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "97d5e4c255fc87430751c81edc62186e1b4ec901ccf17bfdad7a8ef918077bc1";
+      sha256 = "7c3243b48f437ac0d95de2f819f6088d882c52f09e74f910f8c7cd21dc57b7b4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/cy/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/cy/firefox-84.0.1.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "c1856b51dedc5788b40671faee8f8cb996108eb514d1263de998043377f2f7c2";
+      sha256 = "9bda66606c45b90de3ccef2c51d3a26d3456e312d145906070923924db2ee58a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/da/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/da/firefox-84.0.1.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "990da1f47d04ec9200d41fa401b23d9607a8e4c11d7cc78989e81785b9633cb0";
+      sha256 = "13727d086205c7ed560af7ec5fb4db2025dc24e327ad20c55244d9bcd0d54627";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/de/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/de/firefox-84.0.1.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "94ad875d88a18f24ae38f20b324d074a367969368e660ea2b4b0645e31300c94";
+      sha256 = "50167ebb8277c08d6c13c07c5ae871222ded9f42295ba7604836ac550d3890a9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/dsb/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/dsb/firefox-84.0.1.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "c3edd46c44bae1b00803e587e6f52560b28ddc2fc935c1fe62714bf16fa72d80";
+      sha256 = "62b96a0abcdff8e1299c01fb3ef1aa8de6bd895adfd20698b52d0dc2522c0160";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/el/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/el/firefox-84.0.1.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "3572a260ec17f76631ca627747ed53d1911ee1180d3e574051b3baf0afd9dcd1";
+      sha256 = "6d22ca0a28bf6c752772b778239d42060ca2a9ab97f6f82c5f88a53f717d3496";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/en-CA/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/en-CA/firefox-84.0.1.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "e3c9363e8b93c625234624ac5c3ab0274055c5b8f4f854da955409b9bdf28d52";
+      sha256 = "22b40400ffe16f3bc9e9a720170f65d58464b0f0e2ebaf9fc3217edbab5e1fa8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/en-GB/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/en-GB/firefox-84.0.1.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "240a732c034bf2ac286cefc33b02b56df205c4e175457cd84adb7666418e0be4";
+      sha256 = "169edb75ae396aa19fee5472731ada83faa351a2fa0d4d291cd394fe00a9b92e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/en-US/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/en-US/firefox-84.0.1.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "93ff827fdcba92ddb71851c46ac8192a727ed61402e896c6262943e382f92412";
+      sha256 = "077cb7a8954ad544692a03bde4edd31751e1a819bd229413e35508984abee5ac";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/eo/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/eo/firefox-84.0.1.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha256 = "456933a6c1fb1e6ad5b2217a7e3730bd54ff037d3d718414b2c92557fea3659d";
+      sha256 = "619667619bed6f5bc99b373e779af6ec98e21218e0d0d2b0d703cb16dfb1f171";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/es-AR/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/es-AR/firefox-84.0.1.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "040e8a4a74b8bc77e1d485c3376690f4c5ba85015b360f679ceacd848b0ca574";
+      sha256 = "e7ae3b3415db29b8779f69ff557409f64ed7f031201c942cbee2fcd0e08abbb0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/es-CL/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/es-CL/firefox-84.0.1.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha256 = "80e8189ce09c736af1d9927d4943e08e30bc70e9aa7e116f150f14c0dab3fb15";
+      sha256 = "7948825f75236751066a96e793b159538ee82c2315f07b9972f2204d27bd763f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/es-ES/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/es-ES/firefox-84.0.1.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "f48489abac5358a10d8ed36b77398493b6a9189a8327bf61bec6ceaca51ab696";
+      sha256 = "3f6ea39596f93e5625d79ba544d9f476158757931f3f7c59bad85d169ef99ccc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/es-MX/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/es-MX/firefox-84.0.1.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha256 = "0d4805b30f05fb8a65b81a42337a8a3732c7664b322557e844929d2b049d0111";
+      sha256 = "aa220edf6cbf85e7605a0cde21fc7871939501a8459295b2142e4507e8699cab";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/et/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/et/firefox-84.0.1.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "eb4a463b9271fdde45bddad28ce871953739b55126ae5613963a69a319908fb2";
+      sha256 = "63fcb11eac26f26721d6a60c1001d867bceaa21eee2c81efbea8e00253412082";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/eu/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/eu/firefox-84.0.1.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "3a662c575554d3a542e65950352c527cc51e82ae7a8f9d7ca1b69e30a683731e";
+      sha256 = "f49a421799e0691f475da2419ab786ac29caf67ed7413cb5b3736d7961309d17";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/fa/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/fa/firefox-84.0.1.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "b5ad3a5d39674d60b6e97cd656c77d7d2fb90943a66a590a29e4d42ec1e18c42";
+      sha256 = "ef1e5342a658923452bc839258f292619c2edff304448ab9d85d9215ace907d3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ff/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/ff/firefox-84.0.1.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha256 = "2db83d638474186f52fde5fe1ee25201e84b198e44397074203d7ce50e23e74c";
+      sha256 = "73ff19b083e8d8d6ba6e5ed1efd27f18caa9a285fd02bb27ae01190245eca577";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/fi/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/fi/firefox-84.0.1.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "98bd9c50b5db43bf5fcdc829aa295975d3ec106bbc598fda3d7f26679c0ba08c";
+      sha256 = "c576045a05d15ae4c8d6c82fd17036546825f9be1675197a1296a7c8d431992a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/fr/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/fr/firefox-84.0.1.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "ab3427f5cf7cc88d5108b8be21806197420bd775f33d3f2dc983f0f4dec44d5b";
+      sha256 = "428270e0c4a3d80d810a106795986f2680c3e55faf7fc975ebf56fc90c0ce797";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/fy-NL/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/fy-NL/firefox-84.0.1.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "9f21d91d1529a05a2da7ba29cc8e875b23ffb4b453077b5e899133cf31813397";
+      sha256 = "0e272ab1540690cd688561b4efdf7429298ad087b51afeb1b735f8b7efbaae28";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ga-IE/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/ga-IE/firefox-84.0.1.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "4c22b166cccede0bcea4e75f826e100dfa4f2def01f904fbffcef789d2d61695";
+      sha256 = "99e5381bfca90d1ebabbe00df75da91901f113ecd6e2aee1b16b5acef91bfaaf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/gd/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/gd/firefox-84.0.1.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "6ca04d381205121dc695dff78ff646499a21976ae64c110763845eda0598b414";
+      sha256 = "ddde6096a541ff100d38929cefa87c93128d10131a4cf42717e9a169b5f99caa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/gl/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/gl/firefox-84.0.1.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "d08f4ea821af5e38c21364037c17b8c97c775d60f0697eb0817dcfc7c6d4c7dd";
+      sha256 = "98019391cc205449df19365459995d9711a1f73e94db226d7ae8c2172a14c8a0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/gn/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/gn/firefox-84.0.1.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha256 = "90a8b2fdf1d3471311671761e81637d6771a61744eb480c0788cf03d295c30ee";
+      sha256 = "ca5a642179426bed73c4e3ebfb66c287ee57b3cbbdb35df35b1aebc024c9c8ee";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/gu-IN/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/gu-IN/firefox-84.0.1.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha256 = "bfe65e5c9795ecdff4dc947d2e2e84d01da894b0ae55c08d73f9397c5730ce17";
+      sha256 = "2c4f645de88f4db3a2274a67876372baea53e3d0bd275d6d67ef60ed2ced0ca4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/he/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/he/firefox-84.0.1.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "2dc01c5a929aa79056a66feb522d50cbbb567bc85589f8106e553c9ddfc02a7c";
+      sha256 = "f2e5ad70f26d393562cf4e0c3743dc01b1dc4ab9f77d88f92419acf8072d3ff0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/hi-IN/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/hi-IN/firefox-84.0.1.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha256 = "ef2a61dce3ee713a4be3cee5a9dda8498095a7db69304a7d6585ac674970958a";
+      sha256 = "368a469ac2b44c0cb23adbf45c654ce2188e2674bc526a106f90159fdf35224c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/hr/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/hr/firefox-84.0.1.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "ab8357cc1f36965ccbd6f4298ffdbb3d77b09cc4b789a3be708d2c51468402bd";
+      sha256 = "4cc283202d36f691ed24e0295a9edd51369c996f4a6782ea2a38b57011310dff";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/hsb/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/hsb/firefox-84.0.1.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "6a34074a96be7911672b7e83151244f1f963a8cc8930c8d1d113afe8a49c9529";
+      sha256 = "cdce15a29c601de89923f77b334ffacf2e2f3474e054499d03aaaa95aa4285c5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/hu/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/hu/firefox-84.0.1.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "ffec1646df872a757b771a03c00e3e6df3397e7f4af46bd1d6c0fcab242b1721";
+      sha256 = "0def021e54c67a80d5416cff8da4fba48b5d47f1d8c6bd673ac2fc7a64200116";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/hy-AM/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/hy-AM/firefox-84.0.1.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "1b9da538ced466302584fef4ecf415aeae5bee51a87d38bd0a6bb3ea155af66d";
+      sha256 = "f6a3cfbd4490d2d0cbc09f3ac15f9d723d485c64603549adb8a4c33d5af7823d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ia/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/ia/firefox-84.0.1.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha256 = "5f8582508155f858c7e52e623579daa7da1aa77bb4e41c2c46d3e6ae8ace6b1e";
+      sha256 = "69c93ac33a54358f1cb35204b5acbf3a818a4031737aea44684bf3bdadd93acc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/id/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/id/firefox-84.0.1.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "e5690dcc6b933ddbd27fcfb22f8ab9fc4e4c999d935b6088da38c87af2c567d1";
+      sha256 = "59236a0a6024013e7b4b21394f66a9d2b3ddfb27ce54c37a227127defec2bc09";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/is/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/is/firefox-84.0.1.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "3776fe6aad623e9b74807a48e105d1619143e78e122906360c4efbc73c2891ee";
+      sha256 = "f13500ac51becd6cbfefb43cd98d3a6530dbb92bc88ad15b1714af775bc3e1c0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/it/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/it/firefox-84.0.1.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "eb54c4596602150c619db6d0d5572a59f7d9c4def68a34cb874cbc6535939e2a";
+      sha256 = "77beebceeb36f1eaa00838f3e3739dd9549a7a02e15bbbd83454a1e86bc83c9c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ja/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/ja/firefox-84.0.1.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "54b70bef0507611ad1ea7560668b46385661b5275c7a0ecaad723db44fd8af88";
+      sha256 = "bbb98b2bad26a554493d9fbefe1b4061f14dacf59a14cb8ccd92e728d906a676";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ka/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/ka/firefox-84.0.1.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "56e72349133297d61dfdec4933a01c2cd8fa3d0da3d784e0598506c2db05938c";
+      sha256 = "20fc38d941e3aba6017143ac6865a5f210450b773a9d50c195a9b951e65ccdc2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/kab/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/kab/firefox-84.0.1.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "45f554342449405990c84e910dc6436489046acd00fdc4a0ddabb4b28d7c1284";
+      sha256 = "003d7d9d1f2b5f958e29168c698568f6c1e2c7c5c1ec652fab6f2b824828c0be";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/kk/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/kk/firefox-84.0.1.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "3463c4ea5df4e072dfca22e8983fdc016adbe2326bf186a0168ea9ee2c36b3bd";
+      sha256 = "e16d8e9f41fbefc2b863978627eb66e1c82d53a9dc4b1acac912309d633f972f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/km/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/km/firefox-84.0.1.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha256 = "3bb7d2c3e5278d9c51b87d8140096ae01532e99160b866164d1920fb012c085c";
+      sha256 = "e75aa98eba7a600e459e25b7e6d1311a00c16ddade46eeec18ca37b799e7a492";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/kn/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/kn/firefox-84.0.1.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha256 = "c9086912382dbff66045c79130403385b9f075bf782220aeb84f03f62a563638";
+      sha256 = "282f240fae65764d4e1f5d5e3e0ec775ebd66dab4589b5ae9f34bcfb81f50996";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ko/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/ko/firefox-84.0.1.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "6f70169cd58ee1559ab224c3ea6f5309bf75267d9f315e389b7971e8e1feed09";
+      sha256 = "2b5cc8a136b703db4fb59a2bf8ac24ab39416ff44f35836ff70b93e378727706";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/lij/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/lij/firefox-84.0.1.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha256 = "0b089e6f7954f4d99e9e59bd25148c4be620f9486f8d36c3db68fec5ea700d94";
+      sha256 = "4cb13be0d090d824b4b86e28f9c02d4c0875133603dec7a58b83ae67e86df30c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/lt/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/lt/firefox-84.0.1.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "b76c545aad6e5b66bd8ab34bf02f7d4f69ecee348381b16c271f4de0243c660d";
+      sha256 = "b6fa373facf8e8d4a7d4bdb97955820d450748009becf166c33faf936fd34cc0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/lv/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/lv/firefox-84.0.1.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "8504d5c00c5569f008b2e308a9193cf62130e89a6e61b33fc842081e4d504322";
+      sha256 = "5522a451edec23255b2a8fab65d2680e9b3854998290a7dd33183238cb17d33e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/mk/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/mk/firefox-84.0.1.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha256 = "636a421f6238de1fee37014c3af147220af6a1f3c04e2ce6ec9dd17898bc7c20";
+      sha256 = "d0d96241bcbd32e000094008263a37543dfd4c5955b116f88118daff11759e0c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/mr/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/mr/firefox-84.0.1.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha256 = "1e00d369be11ad8bfb2dda0ceeb3b7b516fd66427d9e85bff4cc1d699ff3659f";
+      sha256 = "06593e4a56e5f76ffb765b605684349fbf31c8a0747cc90ef991c532df38d411";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ms/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/ms/firefox-84.0.1.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "0590f2bff7e43b9f6c081d57276299f8327df73415a8e2a2243e3c4ec9154200";
+      sha256 = "ffa6d0f8534253c5ea94df7aba31a06cdf9e294500781d25a31b8dcad15d5132";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/my/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/my/firefox-84.0.1.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha256 = "ae43f0e8d4ff32274b25a1b78e0af44446ea6989edc4eb3c0d9fae36fcf80908";
+      sha256 = "dafa195bca8536709110ecda82e988bed254b145f00581561b18827fa41149d7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/nb-NO/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/nb-NO/firefox-84.0.1.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "9c3a74fc7670e2202be1f4f75208f0113c115169ef70614af631cf16879e081f";
+      sha256 = "9a8e5175bb17ae3110a4ba74dcc575dd4b0fb44981f7152cc521ad017db7e2a8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ne-NP/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/ne-NP/firefox-84.0.1.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha256 = "d830f802cccc7351a447fc59ed64562cac1521d281ddf218c84d1c9af8a65cb3";
+      sha256 = "4c2081207cfbc657d8f6a5ba781098f11adc5e159414036dc8217874a2c2d8b6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/nl/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/nl/firefox-84.0.1.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "ecfd03850a48ebf7c3ec9400838100514826b8f35744b0167f61c9086893ae66";
+      sha256 = "947dc32c772a2205ab30fdd6d8bcf938642e9d734b58829d2dec5a1896ac6b4b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/nn-NO/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/nn-NO/firefox-84.0.1.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "ad0e4a89afabf1929d441129066dfcbf532d37da31c76bc79108d123cf5cc649";
+      sha256 = "89096b5f2ce27ece10be949b495aa41cd882bfb4a742cc3abfc66f36130313b4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/oc/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/oc/firefox-84.0.1.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha256 = "9b9bbba334c4d7d3907f55a6647cecdf0bb2cd6294569a0008d866cd6eb70a35";
+      sha256 = "50f603507e5d276c5f3237d1554269faab573d8c194a488353227743b677ccc0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/pa-IN/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/pa-IN/firefox-84.0.1.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "083266958874618042ee8f2a6162184cd71bc725a994aeb68158d59edb0cafaa";
+      sha256 = "231739c85f20014f50a982b4ac0634a8a4147cb6de5ba39a9a11a944d4ff80ff";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/pl/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/pl/firefox-84.0.1.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "cb7c72fdc91cd9269a2e53725a26ee94db0e2e608a60ff1120fbe5c1627814bf";
+      sha256 = "9487ffb5fdfc2f7040a7f9bf2585af324782e2f3dfa996db719103b20d02bf55";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/pt-BR/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/pt-BR/firefox-84.0.1.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "a2a188a222fc6054ca59d24370528e8c8d4d7dc8e4ab18f71510b415dde73d05";
+      sha256 = "fd53dbc5724968b0bb2c2b78de96f3708d05758de63aeaa7fb942f9b64a0649f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/pt-PT/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/pt-PT/firefox-84.0.1.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "528e1893438ead94afd4013d3c4f4f51107a5d0c4b6d6e018a0687f0d25f9e53";
+      sha256 = "39211dde1b183c0453643fd6253fe6eea4dcf2b006842b1cd61e1ce142991a44";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/rm/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/rm/firefox-84.0.1.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "e4d6e53b642da4de5c7f30297c6fec22b37921a55cb744962dc0d60e26812549";
+      sha256 = "29cf408b9386907dd1e8a64f56aec2e0359de243c3d17fe2531c0f1c7285c205";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ro/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/ro/firefox-84.0.1.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "04ffa3eda69ea0dfc6251564c4c6bc742d5f8e5dbaf6184b4ee9461226ce5c86";
+      sha256 = "eced9ac8aa417dbb5dd725c952eaa977eca1b48a7271e9f8dcbe1ee46a4b1321";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ru/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/ru/firefox-84.0.1.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "697ddeb8ec024b5459492ebd652a612cfa1911267071b230f5ea6ac78a1e3075";
+      sha256 = "7abfd2a2b30eb7744d890ba3a0589ac5017a9536c43fe3e154e60339d7b41544";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/si/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/si/firefox-84.0.1.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "a3256c648ea75ce36009306a3c039af228e645ea2e54361fe239ad0cf0869ead";
+      sha256 = "e9e8c21b64f7f434db99b30b6e7190fa55f3b23a63dcdef120118d228ed533aa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/sk/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/sk/firefox-84.0.1.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "1ae0f898d34c74ea427228d93646ae47990834d14bc4f5563427409dba066f8d";
+      sha256 = "dd2e17cf612de02aa71a933a8b1f26e403e1be4da54e63530667e81441d5f6e9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/sl/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/sl/firefox-84.0.1.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "9e14b4ad7bd9a8026074e0a3da3d3ba74dbb1be31a2e9cae787802d090c7a965";
+      sha256 = "782e612494aa907990262c7ac7189e98d90336b270a806a8e191dcc1c8266218";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/son/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/son/firefox-84.0.1.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha256 = "1b928ca974133a346950ffc663fbed9d1876a4c0bca53fd807d8077d031531d5";
+      sha256 = "7730614e4e22eb871dadcc13f62d0d2bc445aed89c1ab6eee2600aa6f7023fa1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/sq/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/sq/firefox-84.0.1.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "7bb9bcfe490bf5d577e55e9b612c932c93ac58252cef592b2af39c17987e700b";
+      sha256 = "6726cc2fa9c7b40e92d512b83bc0a974c3668a3854ac91aafa334b4d30b71ee7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/sr/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/sr/firefox-84.0.1.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "90e496a5fe9c5d8c38dfcf5a1a07ea04be983fe78c68cb13a2b99067b0f02e7a";
+      sha256 = "22b443987fa62f4d753efc04ae926e3ed69ce84c56a2fc653994d886da10f9e6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/sv-SE/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/sv-SE/firefox-84.0.1.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "eab8a1e51a90d36b58901db6175e724f38afb91270b05c51a93c03f8c51fe432";
+      sha256 = "3c4d26bce8cd12a6531fe15e3e7251ac9046bc7d1670df3754f0c379bb63ef50";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ta/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/ta/firefox-84.0.1.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha256 = "bb6d49500393d20134a6f749a77de1fc4cae2feba4e49261862f8a634b4b9276";
+      sha256 = "edbfebceb857824f331c46eb7611dfa9adbfcf6cc7b80075478059261b0de6bf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/te/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/te/firefox-84.0.1.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha256 = "a1104e292f949976e423b587fe9728fc741b7a11e276e7d747afd3a93abe3eb5";
+      sha256 = "06f342dd81f0ff481de67fbbbd5bbbefda27629be688d854a226d515c872d69c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/th/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/th/firefox-84.0.1.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "403e4a86b5f95cb22cdb2100372c55d92fcb4708e3f719da72b643637c711458";
+      sha256 = "1ccc1da981cd49effc811b4dd85a09bc584316b3ff50fcb05502e4618c465ea9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/tl/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/tl/firefox-84.0.1.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha256 = "993cf86a1b045a477fd4c683e503314fc2aea5a0a52f1faaacd18a0fdc5c7def";
+      sha256 = "b15095bba6ff763f01e7677359a0e8885164eedfee1836e0eb4e1822322050db";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/tr/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/tr/firefox-84.0.1.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "8e9e96d0b1a2014dc7374ea893fe72bc72f3840742d305a6e73417468dd6245b";
+      sha256 = "e140a2196da9ae934134bd3ad3dafcf8766aa676f410047817ba01ab831b0ad0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/trs/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/trs/firefox-84.0.1.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha256 = "3590ebb4c888cf92ebd615df9eda2413fd0a3031293d68809fef74fc92fa759b";
+      sha256 = "3a8c6dd94d17c8ce892f7eec395f8f6676bf4fb18174a6dfadde41868f9d3e21";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/uk/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/uk/firefox-84.0.1.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "7a3a2bae67ddd2afd2d6953f5f045a831595ea29e5cc6ad7083b8ac89e55917b";
+      sha256 = "d66bcb1f09213c34f14ec0cbd3687d8b5918afceacb2164e81ff94e681c432e0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/ur/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/ur/firefox-84.0.1.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha256 = "445a599ba623d8673d71f6ebde70c64a93e28e57b6859e325b0151240f1d49e5";
+      sha256 = "0d9094f14a25b0bb3c7656fd524cd330c0b7a6334ab23c86a01ecd1beca14988";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/uz/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/uz/firefox-84.0.1.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "b63e6c1c6afdc3694ee1d2b21175f4a5603c4454e43f0a08e87ccf800862b6bc";
+      sha256 = "70d3cf8198442718cdb664dbd832c91d5252041fe1076faa0f790e63f0c22771";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/vi/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/vi/firefox-84.0.1.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "7127340d189ff601f96ba6f5e6a6175d850e822599e10762908d406b2174a256";
+      sha256 = "17a0ee2e12c74e73fd1346257ae5f797c866f0c4081a154f6290e73f4be40f27";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/xh/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/xh/firefox-84.0.1.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha256 = "41772e457eaf385230086a461033854ad214b4160c6f99f7eb6c4df8dd137dc5";
+      sha256 = "7383a176b5afc8319781586ece3eba752739499be2c6944050b57ef5b7b620f7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/zh-CN/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/zh-CN/firefox-84.0.1.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "013fe88aea216fbc4de9fdaaf559d65678ba389049bcff896540dae8d0a9564d";
+      sha256 = "08881c7f4043a6e4bac11b4de388da773a374a6c83068723318ab6e1eb981fdf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-x86_64/zh-TW/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-x86_64/zh-TW/firefox-84.0.1.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "7e9eea2a326842f652aad4995f796af9550d03c034587d171e4b2a33da934645";
+      sha256 = "ed3bb049a2a80cf294b4b4c4ca0e980b38b6f18c4e931a63ff78e5707fc2daf3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ach/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/ach/firefox-84.0.1.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha256 = "9974b19f4f15d9aa33b5432cceea05efe44f31c4123596aca9fb5cd3dd734152";
+      sha256 = "4bdaa5921976290cc5bb11f981d2f6559751a693a2bbe512b9e80eb5148b2e37";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/af/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/af/firefox-84.0.1.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "5600ad5fad398648d2e7a2d7bdf7901769fa428f9ef9f79046917133e12a7eb6";
+      sha256 = "853d005f8ac8e2e5e31e3a24057b458f1441d6ac97a41f414c0831295b91fcd2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/an/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/an/firefox-84.0.1.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha256 = "d8e0843dafcaf1b010773b83a665fd593741858b60aaba61d4c308a86f765146";
+      sha256 = "6409ce28faf1dd18f079891e373a61f0b1eb730b3d1c7559a13784192367577b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ar/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/ar/firefox-84.0.1.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "952b2ad360662341b9281cfdd93a141fe2efd16f73baa4fc4be1de7b8f12c8c3";
+      sha256 = "9c9da9daad627f4c5dbe5588667cdf90fe8a582adaff962c674c483a5d80dd6f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ast/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/ast/firefox-84.0.1.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "a7728b09f7e96983a031a32b1b938fa362e1a1e58722b37ec03a4048a152f0b1";
+      sha256 = "609de4719323b676dc1a15da8d0295d3c67bb4ee271f70f28db97dacaae87f4f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/az/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/az/firefox-84.0.1.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha256 = "c6019a3f7ef56583445acc5ab310770c937b44182a1bb3ed54ac452e6e19f8fc";
+      sha256 = "f411a4a560d1a6db4daee06ee3a29d6a14cb5e6e1914aac54c19918b93569e3d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/be/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/be/firefox-84.0.1.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "12ead04878e308682f04afb6ac9ce9ab134a5a542af328e029cd973c14fe7444";
+      sha256 = "46d73bb13f113dd6dda069ba571e623b3f20f2b6e76f55f307690ee01eb4dba7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/bg/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/bg/firefox-84.0.1.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "7134539d5c259cdf6dd316205b857acae87730ca01bd6ef2efcca75f9d06d027";
+      sha256 = "0bbab0465efeac3cc3f72749242310e1456dbee915bfb08b7ff7e5f5c2fff0e8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/bn/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/bn/firefox-84.0.1.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha256 = "a97524e0d6f6f61045b2573ac2fe98e31fa372429f5f53c25fb4cb4d32a31940";
+      sha256 = "c1d47ac9ed0e01a0ec77776bb6131ae38faa17a3da2d8bea723679e3cd158074";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/br/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/br/firefox-84.0.1.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "4619705703a6878fba4de4227d90143abb92237ba556a8c5f4a51c9701671821";
+      sha256 = "b205df6c0016b2c3984b33c00c2153688c7ac162df1a3748b23ce081a87d46cb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/bs/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/bs/firefox-84.0.1.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha256 = "2131babd061761fa1119a536ae354145315875c5d8cd300405a35924bbbfcc34";
+      sha256 = "85093f59d815cc1d45e6aa6f8ea6ea2972102248aa4973b4386e265f985c85a8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ca-valencia/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/ca-valencia/firefox-84.0.1.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha256 = "73238eb95ac828f4bc2ac220e4b953b950a75b88600b457bf3bd528245574cd8";
+      sha256 = "57b5054db2cb6987db174c1a32c5e87bc37f1de3ff3e1046421962fb50204af4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ca/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/ca/firefox-84.0.1.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "73e65093a587c89c9a392e3b65375ad2158c88e2905ab116eaf8da7cc5841cda";
+      sha256 = "f57a9469122e99537dfe11984c11425008d81b738fb939297be2c1104858d52f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/cak/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/cak/firefox-84.0.1.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "7f2dd3fdf1e0cae21a1517286b60bbbabd310dfc0dc18588fbe21ba671e97dd3";
+      sha256 = "6a8d4e9b3555ebb7020e347bb59d426fb5ab0cb1fb5012fdd99d0e978675b994";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/cs/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/cs/firefox-84.0.1.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "5f639cc6d14b06ae62f73fc01b909182efea32710dfd817be60499f4da3eafd7";
+      sha256 = "15d8e1ec0e3719228cd0d4f17667a08d4fadffdf2cae91abe47ddfe511d81046";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/cy/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/cy/firefox-84.0.1.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "7a3e9921b2e6e407ebeeb22f1ac4b529222a1f5fbdc84c44fc902b8db6aeb1ef";
+      sha256 = "412d19fa8e4c47c892780b225e6d320bc24b3adf482cb023964599ac35350433";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/da/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/da/firefox-84.0.1.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "05dc3274927f692ec3c60f8353a30e2bcb1a36b54f4ddff90407e2818a497a38";
+      sha256 = "8116eb1c33d26e589c7cc3b7999159f7893018f7bdcf627d9b892b0f96a55e9f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/de/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/de/firefox-84.0.1.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "c95affb4655b7a0ad6959651cf10090970035c74601ea141366cbb5d44f8a526";
+      sha256 = "433b02ea3b1d50e9a8287e6e264d518520f656fcbb9851068de1240599e4c512";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/dsb/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/dsb/firefox-84.0.1.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "c9baf7df51fdebbb2521dd10830f759110a9c92dcdb579fad99d0c4112126e66";
+      sha256 = "5d55fdf5976a0c1f3a79058b1993923ae67c063b6643695dee8bcb4faed06c74";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/el/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/el/firefox-84.0.1.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "52afcd2037b9cda2c66975dd184276bcccca27833cd7a6da989e32c591a06060";
+      sha256 = "668a9f735be42cdd57a8b7395c37703e6e1b30264aaf9201a801efe711dd008e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/en-CA/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/en-CA/firefox-84.0.1.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "375d3a11f236560f06397f157209b1ce476197a0e7b327cf187dc2002d053c90";
+      sha256 = "9c20e6c096e1a7ab910d91380083e400f35052ed9ae72860b8ba66ac750c5fee";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/en-GB/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/en-GB/firefox-84.0.1.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "610657a623b5680c2ea350a5f3d1ec676e9dac8720e0e67b3e627e37a58b0ad6";
+      sha256 = "4de8ea0ba0e599529abde78983e04c509229bbae756c633fa929833b385f9519";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/en-US/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/en-US/firefox-84.0.1.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "ac4df9d78ac0321f6be266e7fbf6b79d80bee7cfdf1b00c433072d2283c5fdf8";
+      sha256 = "6cf9fc509ef21c004a70810c8cd4c428593642edbdd5d4f4c455345391ba4def";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/eo/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/eo/firefox-84.0.1.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha256 = "f23479cb30cf27fa368e9e04591aad2051eedde5e69d105bfc9ba6168792b44b";
+      sha256 = "1ed7915f1cafa19d36465bb0d5f9fca8e57b7f0f8652dabcf90a4e232c0cccdd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/es-AR/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/es-AR/firefox-84.0.1.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "5657636c105d301474cf5d2707733a35ac5f5687790002d5778dffb32a727adc";
+      sha256 = "359234b846e364352a6af0a262db06b6e9f4a911c407bf35f1ad2f8460eff7ab";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/es-CL/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/es-CL/firefox-84.0.1.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha256 = "896f2ac45b98eccd487de64b6c5aa98733d97bd4422dd1a16d02883e3a06c132";
+      sha256 = "eae445daf305820692b7ee9d20dbd69f0da509716925db6c12eb7c2e7a521416";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/es-ES/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/es-ES/firefox-84.0.1.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "9d337fc821dae150c4f3ce26c427ad0efa22c53f3b311b4ce7693b33c9ea4d7d";
+      sha256 = "36a2f4eca19bff55f998e8e36718d4a4bdad0eea5c53af1825f857834dc6a1d7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/es-MX/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/es-MX/firefox-84.0.1.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha256 = "f9cbd03f9813157835ef7faf9fa2374e488144930ffdec765c370a95a9c72120";
+      sha256 = "7f7f384bbe156e37af25cdc19a49ddf225692a2579ce5c7df37b8684f0318102";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/et/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/et/firefox-84.0.1.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "4f33cbb67003da1b4db4dc12ee2e7b9fe942bc6e6d770608361355ce7fcf8214";
+      sha256 = "39288f46064d259f4ac1f11481480b189d945608d4b3ece922b774ca31fbf95e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/eu/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/eu/firefox-84.0.1.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "31970c98d028a83a6198dcee9c5f8191343cd84ec6a7fa032a31730db2cc7b00";
+      sha256 = "7693f969f356f87db5d48266ac20a152bbb8946486ee60f5efa0225a83a25493";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/fa/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/fa/firefox-84.0.1.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "1125c534f2067e57701fab7ae3df55c52dc10693b069817021072c74b8b9bdcf";
+      sha256 = "ff189730d71b2ad0e2694a364bc0c0ee4de50efe30f44935b1cef0d89488f8f2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ff/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/ff/firefox-84.0.1.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha256 = "ef6c66b0d8a6edce0c982eaee55cd14a4ac4d365478976a0c4f1cd48a6c10c6d";
+      sha256 = "b6f39b27d000fe98510da1d5be6b591e3a7cd1b6e2d2502bbe7e67b124822ed1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/fi/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/fi/firefox-84.0.1.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "bcd529c0227bd64403dc023ef91459556fbb186e072c12075b705d50293d86c3";
+      sha256 = "ec33e3bc8a549c1c2d5bdc0f45113d96d3c959d1d9232d08417c09821cbd8e42";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/fr/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/fr/firefox-84.0.1.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "47c56fe2b88054d97622e9c0ff2043323b7a916da1e11541e96cf7b05c3e7d52";
+      sha256 = "43e80f221e53db14a57da940d6ad98d639bffc94c71e08ff39501aafe319c3a3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/fy-NL/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/fy-NL/firefox-84.0.1.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "b0ed17e5022b0817d6b4f58ef990ce22774bde875151c60be1f7251ec90cb189";
+      sha256 = "dbbe3af347ec5e8e856e4580889f99709231eb07631862ad4e8deb095f098390";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ga-IE/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/ga-IE/firefox-84.0.1.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "380aad276cadff8221e4f675751278ba994e08ddb46a0ebde12d87b741c23263";
+      sha256 = "4d5c8fec2f370840cf79c19774976585af0d8e09f13abcb4a594f3ebf9c52558";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/gd/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/gd/firefox-84.0.1.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "0489ed6e1e9150a0facb4e6fb59bea7673e89669d167806d5651224b939fada5";
+      sha256 = "7ea8febc7443e1f7c732e07cc8bd027ed0a82eea018b6bf7c5979820821701ea";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/gl/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/gl/firefox-84.0.1.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "bc41c2b611ecb4ccdedbbf480138a3bc6326106d6c1641d6a06e40f502427af0";
+      sha256 = "207dfe2ed822245d089a4f1848fcf6c92e27715b4463bcdcdea2127e8ac8fae3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/gn/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/gn/firefox-84.0.1.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha256 = "ade8fe9ab75b0a5f75ce80ba0f8065c4b4cbf54d7772f4c3be96886ca166b373";
+      sha256 = "a07d734191885b4e5e66c1a5b2f64cbdcc133dd9a1cf8fdaea882a3a1ceec7ba";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/gu-IN/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/gu-IN/firefox-84.0.1.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha256 = "bc20ad60eee0e6a3d532e436d9b62175872fcb27dab4c9a5083ed6f4bda5f036";
+      sha256 = "af4146f86e4f5aa81d10067e21653e657620d9b0b51d564dca83c4435f6cca82";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/he/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/he/firefox-84.0.1.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "a08862d8ebdfa2d6c4f038b91f264c9abe873537d1a7cd2997a1eb4d73bf6f4c";
+      sha256 = "608652ef032ccbd0d61070a32a2931764b86ea0d25afb12617338136f3f29e42";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/hi-IN/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/hi-IN/firefox-84.0.1.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha256 = "8ed5b454bdc38f07c79924a1dc08e76e65a48bd671991744a441693185683916";
+      sha256 = "1724879537c0472762dd93a2206f31767938881ab4113946076205342f8f5f7a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/hr/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/hr/firefox-84.0.1.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "97356a661d56d51a9210109db8ad75d61e3e00e4c7570d4e824712b52337af27";
+      sha256 = "727f4a1d3ef4e531027c5188798b8fd1aeab98bffe4c1f7f67d919aa8855e6bb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/hsb/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/hsb/firefox-84.0.1.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "5706aa76b23161baf24b79d2b45dd706006fb73aeedd06f41f3273f8078f371b";
+      sha256 = "6efd8dd2cf6f82b688632095a16c5e488578ac08227cbbcf2613f9b2852c9445";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/hu/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/hu/firefox-84.0.1.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "3b894beaef35012df54ba4c7509a06ece1a0cdf741308b3510ddc702c4eb3656";
+      sha256 = "458e8452d89e61f8f4ac3d1ca3e41583fd26cfa897c4b36e0888a2174c853508";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/hy-AM/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/hy-AM/firefox-84.0.1.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "b2894092de59b7d6bd6dcd2111fa4591b1a4ed054fd107e2093bd0962edb4405";
+      sha256 = "b58af31a6ab2e224f9f50e88c1e97c8f4af273f5189c59f025c10d5589fc2d41";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ia/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/ia/firefox-84.0.1.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha256 = "9d9ee7e05a02078b7d4041c3b63e79f91f0a888b919cf726e2e69090ff05f71d";
+      sha256 = "de6bab3cc3e08fed14584d57a58b9310829ce17906561d880c06968d3ca6a879";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/id/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/id/firefox-84.0.1.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "13e54589a23323e9043d4dac5586a31e5d43bdde0356b1a00a86f91ee5813eb2";
+      sha256 = "31cd054f01b8050fe70a95def464b76bfddff2277993c759395e13c3829c2c70";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/is/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/is/firefox-84.0.1.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "955a8a4ff1c5ba7124593b3c8537201ffb1fe33ea5c3edd6ab30e80e6b28f60a";
+      sha256 = "fbb17534672c6b7c89dc51eca97ac9c0f807fce84a68bbf75f077ce1c6202725";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/it/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/it/firefox-84.0.1.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "23927419191d7aee8b29da29d213ee9c7ff39363f3fc9171c70d801158cb895b";
+      sha256 = "9fcfd33025b3d7b88238e6c51472a06b1b6bef56d1275a1aeecb66224f8d6d9b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ja/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/ja/firefox-84.0.1.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "4ffaf6df345922bcd82942956a0f344c4b52ac49ec64879fef7307a0c34eb8e9";
+      sha256 = "37a234db4a8618cb125215ef51700fe72e29f2ac9328c4f5a319516f32eac7f4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ka/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/ka/firefox-84.0.1.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "df1027754efd054bae379b35228067799e75820b08ca7e6aff5a527fdaf046a8";
+      sha256 = "0875616e42bb71c79427a31c5adac9e1d9112c0bbeae866725ae9bd87ca915f8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/kab/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/kab/firefox-84.0.1.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "6fc1e5d662ce742a48c003145b1b4b58cb296b43a20f718bdcffdc05e386078f";
+      sha256 = "88b6430577c73965bc229cc2875b138db1cc47ab27c7aed6c6004559f296d819";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/kk/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/kk/firefox-84.0.1.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "52cb3ac3a33da1227c3aa5e47e04620be2cc020bc520fcf013fe11ad74ad6378";
+      sha256 = "6de277b39e76394245aaab0dfd4ccdcea4af5812fce20ff61faf9d62c22bd34f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/km/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/km/firefox-84.0.1.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha256 = "c598fa97bb79f56d01afb30caeff29a2c7dd1f162d2fb49c0632ee259d0fe860";
+      sha256 = "25c0e6752716e6fc4ed02b465b820661ec59ebf997bfaebdbfe172e2a18dc387";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/kn/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/kn/firefox-84.0.1.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha256 = "d6795f3f3c0978dbc399768fd824cceb6a3c1c883c153f65102ef476f74d6408";
+      sha256 = "f61cf632f934daada5d6d2164279981b5536d078ddb5b19e7146a7beb0917e23";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ko/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/ko/firefox-84.0.1.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "b4d0b62cdfd332d8e9878b75918a0362a7b68db0b62e4e4508dfa176e79b8ed7";
+      sha256 = "9e9000032c24fd20dd188c9306364ad79fc2d47b3433d36914a2caea716ff230";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/lij/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/lij/firefox-84.0.1.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha256 = "257eec8bead076119b0c3679feb4f3de34c9cf66bd05215e7d76936e6d3ce052";
+      sha256 = "1fd2f5ec8c3074845a27072d8eddf364384e7ce7494739af331a739249c34e4b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/lt/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/lt/firefox-84.0.1.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "326925d68306ec6e5b7334eb413cff395ce6a27abf5b0981dee25a7888c64079";
+      sha256 = "e8b43ae1a3e3cf7d5fb955cfa772f5fbec525fc9c3deb0e81390b8fc53b70176";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/lv/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/lv/firefox-84.0.1.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "036264de51a7a81b3d636b8217db571db70631231d485f353e64e9f43f0192f4";
+      sha256 = "00908977f480f6829761822a4f6f9800c3940faeac0362c46433813788ce1391";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/mk/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/mk/firefox-84.0.1.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha256 = "6d4966ae49ba7746395b17b98c158c07d33293b68a6c648d0238107812ccfc03";
+      sha256 = "cc6a8e52d7e3940e2664b4659f4a33d452b1bea56d3d53c88c28afd604731118";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/mr/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/mr/firefox-84.0.1.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha256 = "88a90205bfd157fbcb0697efbd4884772a463f776f5110aae9903dbc1151fcbc";
+      sha256 = "4a16e203e5b02b146879722a1fe909bd964d712795841cbbd268acc34d5073c6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ms/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/ms/firefox-84.0.1.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "67d3651739404a73f263251896c129dc121808d4859169b3469b640345433e9e";
+      sha256 = "2ebf161faa958992d3dbb9f7d70f7df058b93bc0627a4585fb3226a744c23ef6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/my/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/my/firefox-84.0.1.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha256 = "d7e9a1fe6d2e0e32c2ab9a773d198de241ac2a7d330d9eddce4f3afb9a67671b";
+      sha256 = "43255bc0c5a5adc89bb89ea9267b3d4b38d7432555c7285722228b174bf909a2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/nb-NO/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/nb-NO/firefox-84.0.1.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "66c165884d4397db3e420151d2b6fa3d7bb7c6de790e6d284815cdcc323da3fe";
+      sha256 = "153783b507cf3ec449e8a3d7db6ec523e956c23e1c01f9e26c0e6fc7547353b0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ne-NP/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/ne-NP/firefox-84.0.1.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha256 = "f75832bd74f5ce8db3765201eee058f0386f196f407223e186c0be3d2a665fcf";
+      sha256 = "8a3b9e8607565e6031f15a94ae4bcc6e6681d1705408f79483406cdfc04e6c4c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/nl/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/nl/firefox-84.0.1.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "beb68fb193dfcccbe22369f9adcbebe701fd4c9ab5943ec685d5d20398a1ea5d";
+      sha256 = "7d87b9188f74dc3f910761fc0e1c493c121ed6ab077a0fcf1c88af94fbca22a5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/nn-NO/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/nn-NO/firefox-84.0.1.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "de2716b8f4c13c6ef76537ef52f1d0529016302ce220a90d9b5062af9becb5b7";
+      sha256 = "5d0177a4c13faa2cf9aa0edacbbd381d1ff5eb9ad17ae44ab507f3c8e582c360";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/oc/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/oc/firefox-84.0.1.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha256 = "af2a788560a65cb9f3d2ce98acce4ecd3b3105b6c924c6a4de1a9deb6f2a4d42";
+      sha256 = "cf8cd276252fccf07990c0a294e4628566ff3884cc062f26d6510dc042c6b5af";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/pa-IN/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/pa-IN/firefox-84.0.1.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "a3575371b20bab63a8bccc110343e0cd0736cffbc5c72dd7aa371c646a057060";
+      sha256 = "75ab886eb9fe8d0a2cb9b0544090bd4b818e510ae4c3b137323782237d1a2a77";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/pl/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/pl/firefox-84.0.1.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "daa554b493ce1efa90a1b040e78d2f2e7ad8ca70c16ee19312c69ed4a12f00e3";
+      sha256 = "9a2007a58e264731fbc1691213cf4aba07f360e5c3ee455c6a9abd85078f447f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/pt-BR/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/pt-BR/firefox-84.0.1.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "4f3fe4a1ce0e12383b37832f44b59fbb40b8fb6e95786edc57ea67ea3d5530bd";
+      sha256 = "71b833c745a4fb334fc1aaa250b67d701cac46c3decec7b839e7554c30e4fbec";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/pt-PT/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/pt-PT/firefox-84.0.1.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "c16bcb116b845a6b28b72096ae43d50f19c7b9868c8bbb833db60eaaa70b001d";
+      sha256 = "a56ada11b7681238a17c3e02c90122d4632070d8385624b34e03ebd2803328e7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/rm/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/rm/firefox-84.0.1.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "334d3dcf333a66f4bd169536f7f3b56ba4b257793dfd0837badff2a77b3668f4";
+      sha256 = "c0cadeebef45884e11a67e1f45f0b36754fc6e2537b2575f06ec539a43986bce";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ro/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/ro/firefox-84.0.1.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "1e6ad9735fe0046beaf80ac35d0a1831aade14f388d08991b9bc583135ebd94c";
+      sha256 = "386f7557754cfb2887c7ff2be165d8b4cdc4cc4303fd26539b2d09de440b8c0f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ru/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/ru/firefox-84.0.1.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "a252bcd66f01375fbc4ce040b89c853c34745e8dede116d200303c56d6307f15";
+      sha256 = "62ee54d895760e7a024fc4836096ad97b95b9bc0ca9d5900d551f86b16071aeb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/si/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/si/firefox-84.0.1.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "ebc5ce83b456f75b671694ac954258ca480caee563e0cb395786692aedf24d88";
+      sha256 = "37b2bf998d61de9ee9b372548d8ccc0a2b4cd098e26c7773829267379cf5bfc0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/sk/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/sk/firefox-84.0.1.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "28aac94a71298c459f14949c9c82b379762d3192a16d92e90605ab8925cb31ad";
+      sha256 = "30429ca6601f9276339f925614fd79b03ac54573564307ea84f0f87359bac7f3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/sl/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/sl/firefox-84.0.1.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "7fe0eb68a898488bcb697120542fbdcfd1d972c658b4c361bba351a8f5eb76e0";
+      sha256 = "412e8aed7694adc1870d4e2bd8eeef74eb63ba0699e815b1d2ec65d38de9b4ff";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/son/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/son/firefox-84.0.1.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha256 = "f9cb1327834b6a6e41d4abf531410391a40f33a8d168d562dc367faf31d9e042";
+      sha256 = "864e49755554df5ba8d5669f1b3d683517f2eb44039a35097e3acada4b22171d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/sq/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/sq/firefox-84.0.1.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "15370cc0527797f451a5a1f47637c6663437c8f49fc5c056ccbc2e7510cd6c94";
+      sha256 = "1449ff4fac39eb2c3f959a899d773e77e457639ebc4cb26dd9c4188395b9c831";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/sr/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/sr/firefox-84.0.1.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "c44773c36eb39067e429fb4a4b57676abc7eb9fcf45bd6654d96761f64747c6a";
+      sha256 = "51813e4ef930533045632fa516752303430ea9fdb848653c1233ddd9ef6d26c5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/sv-SE/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/sv-SE/firefox-84.0.1.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "aa8d2dc50dce8a53a926c71a4a7a57023a017d5fbd54cd1e446ef74b5eef7dea";
+      sha256 = "82e3ce190978b83da1f88b175bcf4f1c95a1539e15375c856c54516333b8fc5d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ta/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/ta/firefox-84.0.1.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha256 = "5fc3e8a048ec24e49c4c4a0e36712b378687e927c30dc8ecb3ec63bcf983062a";
+      sha256 = "09f104627061c25c188d6e945dc1915ac43af31c6a0a0a05e70f051915f3d2bc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/te/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/te/firefox-84.0.1.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha256 = "ff123410cec64c47d239a432d32eaefa494e7cd7fb0157cc45917fe04b2916ef";
+      sha256 = "a58503877b476f20e176abfa0ca2e5406b8ae8877954924f63f6490c5be19526";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/th/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/th/firefox-84.0.1.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "cb7cbf97884a5b4f62c4e0932ead0e5de018c9623590ac3798a86986916258dc";
+      sha256 = "722f4194231fb315a07e0efcc922c6d62a8969321eadfccf2f6b74754b563d2a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/tl/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/tl/firefox-84.0.1.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha256 = "0d55a23e2c0b7da80a6c042e50fc3c9364c3f24309cf255bfbe55a320ec2cf00";
+      sha256 = "6299ac5b4b505549cea0dd465059191adbee72346cfec46b94c67e7f5e9bc399";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/tr/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/tr/firefox-84.0.1.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "bfc1adb570f79b4f095bc87ab5a54c6b5179579840ded61319a10ad5ff39d52f";
+      sha256 = "3e4755c497512bcb225a6e35e426db6772f263008f9d6c8495a8311d6d5ebfd4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/trs/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/trs/firefox-84.0.1.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha256 = "05b5a2252380147ec47561e29514e3f994414b46aae3dd168909f03e7dec16ef";
+      sha256 = "d6bc24f33f73fea25675a1bcb53a40d4dc123b6496f0087c25b4bd7f6ca717f0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/uk/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/uk/firefox-84.0.1.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "7e34b52f4d46a735e36f549295d0f9704113024058a7d8d69a8ee6a023d03755";
+      sha256 = "37b48b8cf2e57a3bacc2d3a5c139ac1d465e246a68fd33b87891e8c844af0088";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/ur/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/ur/firefox-84.0.1.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha256 = "1d48e536c09f862bc00fcaf9a175eaeffac1e0aaff66d71ca49123c00cc885bc";
+      sha256 = "b3a45eb2ad18d1af426e82163b426ceba5adc47957ff771121ee4b172037b53b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/uz/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/uz/firefox-84.0.1.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "1f1cf131b3196886aa0f923c5dbaa279b86c3473dc048ce23d58fe811ca1266c";
+      sha256 = "67539a5475aa12d25f8b83655cddc804d46b980e03908bb44f5378753abb649f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/vi/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/vi/firefox-84.0.1.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "b98507cd809abd28c51514448bf995661dede7c727808ab8c2db46da8da0a164";
+      sha256 = "ad894dd659f5c86e0b094b709d0d336516e29dea1d1d9ff35f264e6606e59938";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/xh/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/xh/firefox-84.0.1.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha256 = "73de4ec29cd09610359909ada39820a119a15c3ae0cc1658c2e9b874801a9015";
+      sha256 = "a43b653ad3a3d865c410103ccb66d3603a08cc37177d5279a1b326381631dcf5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/zh-CN/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/zh-CN/firefox-84.0.1.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "fea085476f4456133c1f0973121319f1c3efadcc50134cbf5ccde351bbe2ff06";
+      sha256 = "73e877c33aa5553f90ffc0c68b7416bb988477e55f53632d9f78526ca11a89ba";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/83.0/linux-i686/zh-TW/firefox-83.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/84.0.1/linux-i686/zh-TW/firefox-84.0.1.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "5aebd374f2e73f83bec4c14239555d9f2771d3379280fc55f90f1ae0909be009";
+      sha256 = "7f448ee87156e73cba4a9edcdd52299f6f70ef7660bad9ee6b7c60375d83e1e6";
     }
     ];
 }
diff --git a/pkgs/applications/networking/browsers/firefox/common.nix b/pkgs/applications/networking/browsers/firefox/common.nix
index 1fbfdc2a7da..70fde21823a 100644
--- a/pkgs/applications/networking/browsers/firefox/common.nix
+++ b/pkgs/applications/networking/browsers/firefox/common.nix
@@ -118,8 +118,9 @@ buildStdenv.mkDerivation ({
 
   patches = [
     ./env_var_for_system_dir.patch
-    ./no-buildconfig-ffx76.patch
   ] ++
+  lib.optional (lib.versionOlder ffversion "83") ./no-buildconfig-ffx76.patch ++
+  lib.optional (lib.versionAtLeast ffversion "84") ./no-buildconfig-ffx84.patch ++
 
   # there are two flavors of pipewire support
   # The patches for the ESR release and the patches for the current stable
@@ -141,13 +142,7 @@ buildStdenv.mkDerivation ({
         url = "https://src.fedoraproject.org/rpms/firefox/raw/${fedora_revision}/f/${spec.name}";
       };
     in map mkPWPatch [
-        { name = "pw1.patch"; sha256 = "1a7zvngn3k7dg886zmi38kmrsdzh2rrr46aw59bhr1gfmq8wlwn0"; }
-        { name = "pw2.patch"; sha256 = "17irg3yb2mchcy0z0nr4k65mwvkps467cvvczr10fnm06lhkhw1l"; }
-        { name = "pw3.patch"; sha256 = "12p6ql5ff2lfzlni6xkpz63h2xr6n2a9zf8hhjl99fj56rif6706"; }
-        { name = "pw4.patch"; sha256 = "0rvysc92rdm98s47w5lvbnrklrf7d299k3918qnldniyb4b9p4mg"; }
-        { name = "pw5.patch"; sha256 = "0kk2yxq4qkfwc4px6m08jrn18a7a7dhrngfiaw84r9ga6sgn0z00"; }
         { name = "pw6.patch"; sha256 = "12lhx9wjpw0ahbfmw07wsx76bb223mr453q9cg8cq951vyskch3s"; }
-        { name = "pw7.patch"; sha256 = "0afw7cfd48vn62zb9y5kd2l26fg44s3aq1kyg3gm4q3rj34xidf6"; }
     ])
 
   ++ patches;
@@ -352,6 +347,10 @@ buildStdenv.mkDerivation ({
       }/lib:$(patchelf --print-rpath "$out"/lib/${binaryName}*/libxul.so)" \
         "$out"/lib/${binaryName}*/libxul.so
     patchelf --add-needed ${xorg.libXScrnSaver.out}/lib/libXss.so $out/lib/${binaryName}/${binaryName}
+    ${lib.optionalString (pipewireSupport && lib.versionAtLeast ffversion "83") ''
+      patchelf --add-needed "${lib.getLib pipewire}/lib/libpipewire-0.3.so" \
+        "$out"/lib/${binaryName}/${binaryName}
+    ''}
   '';
 
   doInstallCheck = true;
diff --git a/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx84.patch b/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx84.patch
new file mode 100644
index 00000000000..c4187fcda39
--- /dev/null
+++ b/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx84.patch
@@ -0,0 +1,25 @@
+diff --git a/docshell/base/nsAboutRedirector.cpp b/docshell/base/nsAboutRedirector.cpp
+index 10ac77b..0125d9b 100644
+--- a/docshell/base/nsAboutRedirector.cpp
++++ b/docshell/base/nsAboutRedirector.cpp
+@@ -63,8 +63,6 @@ static const RedirEntry kRedirMap[] = {
+     {"about", "chrome://global/content/aboutAbout.html", 0},
+     {"addons", "chrome://mozapps/content/extensions/extensions.xhtml",
+      nsIAboutModule::ALLOW_SCRIPT},
+-    {"buildconfig", "chrome://global/content/buildconfig.html",
+-     nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT},
+     {"checkerboard", "chrome://global/content/aboutCheckerboard.html",
+      nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
+          nsIAboutModule::ALLOW_SCRIPT},
+diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
+index c83b3e2..d543140 100644
+--- a/toolkit/content/jar.mn
++++ b/toolkit/content/jar.mn
+@@ -40,7 +40,6 @@ toolkit.jar:
+    content/global/plugins.css
+    content/global/plugins.js
+    content/global/browser-child.js
+-*   content/global/buildconfig.html
+    content/global/buildconfig.css
+    content/global/contentAreaUtils.js
+    content/global/datepicker.xhtml
diff --git a/pkgs/applications/networking/browsers/firefox/packages.nix b/pkgs/applications/networking/browsers/firefox/packages.nix
index 7f1d9763e42..b4e0d9c5826 100644
--- a/pkgs/applications/networking/browsers/firefox/packages.nix
+++ b/pkgs/applications/networking/browsers/firefox/packages.nix
@@ -7,23 +7,12 @@ in
 rec {
   firefox = common rec {
     pname = "firefox";
-    ffversion = "83.0";
+    ffversion = "84.0.1";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${ffversion}/source/firefox-${ffversion}.source.tar.xz";
-      sha512 = "3va5a9471677jfzkhqp8xkba45n0bcpphbabhqbcbnps6p85m3y98pl5jy9q7cpq3a6gxc4ax7bp90yz2nfvfq7i64iz397xpprri2a";
+      sha512 = "0sl93h7pjiznabv6865pdbal08nlqncnv3g40l02mgwbphjh5iqrr1bz14khaf58h4v1la090cj7z0gmd0c10xfrx6z7wngm152zz75";
     };
 
-    patches = [
-      # Fix compilation on aarch64 with newer rust version
-      # See https://bugzilla.mozilla.org/show_bug.cgi?id=1677690
-      # and https://bugzilla.redhat.com/show_bug.cgi?id=1897675
-      (fetchpatch {
-        name = "aarch64-simd-bgz-1677690.patch";
-        url = "https://github.com/mozilla/gecko-dev/commit/71597faac0fde4f608a60dd610d0cefac4972cc3.patch";
-        sha256 = "1f61nsgbv2c2ylgjs7wdahxrrlgc19gjy5nzs870zr1g832ybwin";
-      })
-    ];
-
     meta = {
       description = "A web browser built from Firefox source tree";
       homepage = "http://www.mozilla.com/en-US/firefox/";
diff --git a/pkgs/applications/networking/browsers/palemoon/default.nix b/pkgs/applications/networking/browsers/palemoon/default.nix
index 5d299f3349e..56acb453a80 100644
--- a/pkgs/applications/networking/browsers/palemoon/default.nix
+++ b/pkgs/applications/networking/browsers/palemoon/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchFromGitHub, writeScript, desktop-file-utils
-, pkgconfig, autoconf213, alsaLib, bzip2, cairo
-, dbus, dbus-glib, ffmpeg_3, file, fontconfig, freetype
+, 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
@@ -11,19 +11,19 @@
 
 let
 
-  libPath = lib.makeLibraryPath [ ffmpeg_3 libpulseaudio ];
+  libPath = lib.makeLibraryPath [ ffmpeg libpulseaudio ];
   gtkVersion = if withGTK3 then "3" else "2";
 
 in stdenv.mkDerivation rec {
   pname = "palemoon";
-  version = "28.16.0";
+  version = "28.17.0";
 
   src = fetchFromGitHub {
     githubBase = "repo.palemoon.org";
     owner = "MoonchildProductions";
     repo = "Pale-Moon";
     rev = "${version}_Release";
-    sha256 = "1svwbiar7c38c8xfw249mwnvayqq5868nkks7cbv9nyf2m9yap56";
+    sha256 = "0478xn5skpls91hkraykc308hppdc8vj9xbgvlm5wkv0y4dp7h5x";
     fetchSubmodules = true;
   };
 
@@ -43,11 +43,11 @@ in stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [
-    desktop-file-utils file gnum4 perl pkgconfig python2 wget which wrapGAppsHook
+    desktop-file-utils file gnum4 perl pkg-config python2 wget which wrapGAppsHook
   ];
 
   buildInputs = [
-    alsaLib bzip2 cairo dbus dbus-glib ffmpeg_3 fontconfig freetype
+    alsaLib bzip2 cairo dbus dbus-glib ffmpeg fontconfig freetype
     gnome2.GConf gtk2 hunspell libevent libjpeg libnotify
     libstartup_notification libGLU libGL
     libpulseaudio unzip yasm zip zlib
@@ -61,7 +61,7 @@ in stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   configurePhase = ''
-    export MOZCONFIG=$(pwd)/mozconfig
+    export MOZCONFIG=$PWD/mozconfig
     export MOZ_NOSPAM=1
 
     # Keep this similar to the official .mozconfig file,
@@ -114,18 +114,18 @@ in stdenv.mkDerivation rec {
     '
   '';
 
-  buildPhase = "$src/mach build";
+  buildPhase = "./mach build";
 
   installPhase = ''
-    $src/mach install
+    ./mach install
 
     desktop-file-install --dir=$out/share/applications \
-      $src/palemoon/branding/official/palemoon.desktop
+      ./palemoon/branding/official/palemoon.desktop
 
     for iconname in default{16,22,24,32,48,256} mozicon128; do
       n=''${iconname//[^0-9]/}
       size=$n"x"$n
-      install -Dm644 $src/palemoon/branding/official/$iconname.png $out/share/icons/hicolor/$size/apps/palemoon.png
+      install -Dm644 ./palemoon/branding/official/$iconname.png $out/share/icons/hicolor/$size/apps/palemoon.png
     done
   '';
 
diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
index 222b1b5b767..ab8a21c5b71 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
@@ -91,19 +91,19 @@ let
   fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ];
 
   # Upstream source
-  version = "10.0.5";
+  version = "10.0.7";
 
   lang = "en-US";
 
   srcs = {
     x86_64-linux = fetchurl {
       url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz";
-      sha256 = "1cxh39x69m4lgqin5k5p67gs9g26w7cnlbdpjqi8dw47y0bpr9xw";
+      sha256 = "1phqsdf9lav0s111chlgyh4xiq2rm5zcxbx676i9711lkmc5l053";
     };
 
     i686-linux = fetchurl {
       url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz";
-      sha256 = "1cyg5ic7mrj6x1gxw5w609933d9ripa5b5gxyqnvnxfa23dkh608";
+      sha256 = "1nkppwdcjbrx8nh3d6qvvkgd5by6ja5ckjgpbkhavyy2pqlxyqk8";
     };
   };
 in
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/browser.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/browser.nix
deleted file mode 100644
index c23a8cead3a..00000000000
--- a/pkgs/applications/networking/browsers/ungoogled-chromium/browser.nix
+++ /dev/null
@@ -1,86 +0,0 @@
-{ stdenv, mkChromiumDerivation, channel, enableWideVine }:
-
-with stdenv.lib;
-
-mkChromiumDerivation (base: rec {
-  name = "chromium-browser";
-  packageName = "chromium";
-  buildTargets = [ "mksnapshot" "chrome_sandbox" "chrome" ];
-
-  outputs = ["out" "sandbox"];
-
-  sandboxExecutableName = "__chromium-suid-sandbox";
-
-  installPhase = ''
-    mkdir -p "$libExecPath"
-    cp -v "$buildPath/"*.so "$buildPath/"*.pak "$buildPath/"*.bin "$libExecPath/"
-    cp -v "$buildPath/icudtl.dat" "$libExecPath/"
-    cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/"
-    cp -v "$buildPath/chrome" "$libExecPath/$packageName"
-
-    # Swiftshader
-    # See https://stackoverflow.com/a/4264351/263061 for the find invocation.
-    if [ -n "$(find "$buildPath/swiftshader/" -maxdepth 1 -name '*.so' -print -quit)" ]; then
-      echo "Swiftshader files found; installing"
-      mkdir -p "$libExecPath/swiftshader"
-      cp -v "$buildPath/swiftshader/"*.so "$libExecPath/swiftshader/"
-    else
-      echo "Swiftshader files not found"
-    fi
-
-    mkdir -p "$sandbox/bin"
-    cp -v "$buildPath/chrome_sandbox" "$sandbox/bin/${sandboxExecutableName}"
-
-    mkdir -vp "$out/share/man/man1"
-    cp -v "$buildPath/chrome.1" "$out/share/man/man1/$packageName.1"
-
-    for icon_file in chrome/app/theme/chromium/product_logo_*[0-9].png; do
-      num_and_suffix="''${icon_file##*logo_}"
-      icon_size="''${num_and_suffix%.*}"
-      expr "$icon_size" : "^[0-9][0-9]*$" || continue
-      logo_output_prefix="$out/share/icons/hicolor"
-      logo_output_path="$logo_output_prefix/''${icon_size}x''${icon_size}/apps"
-      mkdir -vp "$logo_output_path"
-      cp -v "$icon_file" "$logo_output_path/$packageName.png"
-    done
-
-    # Install Desktop Entry
-    install -D chrome/installer/linux/common/desktop.template \
-      $out/share/applications/chromium-browser.desktop
-
-    substituteInPlace $out/share/applications/chromium-browser.desktop \
-      --replace "@@MENUNAME@@" "Chromium" \
-      --replace "@@PACKAGE@@" "chromium" \
-      --replace "Exec=/usr/bin/@@USR_BIN_SYMLINK_NAME@@" "Exec=chromium"
-
-    # Append more mime types to the end
-    sed -i '/^MimeType=/ s,$,x-scheme-handler/webcal;x-scheme-handler/mailto;x-scheme-handler/about;x-scheme-handler/unknown,' \
-      $out/share/applications/chromium-browser.desktop
-
-    # See https://github.com/NixOS/nixpkgs/issues/12433
-    sed -i \
-      -e '/\[Desktop Entry\]/a\' \
-      -e 'StartupWMClass=chromium-browser' \
-      $out/share/applications/chromium-browser.desktop
-  '';
-
-  passthru = { inherit sandboxExecutableName; };
-
-  requiredSystemFeatures = [ "big-parallel" ];
-
-  meta = {
-    description = "An open source web browser from Google, with dependencies on Google web services removed";
-    longDescription = ''
-      Chromium is an open source web browser from Google that aims to build a
-      safer, faster, and more stable way for all Internet users to experience
-      the web. It has a minimalist user interface and provides the vast majority
-      of source code for Google Chrome (which has some additional features).
-    '';
-    homepage = "https://github.com/Eloston/ungoogled-chromium";
-    maintainers = with maintainers; [ squalus ];
-    license = if enableWideVine then licenses.unfree else licenses.bsd3;
-    platforms = platforms.linux;
-    hydraPlatforms = if channel == "stable" then ["aarch64-linux" "x86_64-linux"] else [];
-    timeout = 172800; # 48 hours (increased from the Hydra default of 10h)
-  };
-})
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix
deleted file mode 100644
index 17814c26caa..00000000000
--- a/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix
+++ /dev/null
@@ -1,345 +0,0 @@
-{ stdenv, lib, llvmPackages, gnChromium, ninja, which, nodejs, fetchpatch, fetchurl
-
-# default dependencies
-, gnutar, bzip2, flac, speex, libopus
-, libevent, expat, libjpeg, snappy
-, libpng, libcap
-, xdg_utils, yasm, nasm, minizip, libwebp
-, libusb1, pciutils, nss, re2
-
-, python2Packages, perl, pkgconfig
-, nspr, systemd, kerberos
-, util-linux, alsaLib
-, bison, gperf
-, glib, gtk3, dbus-glib
-, glibc
-, libXScrnSaver, libXcursor, libXtst, libGLU, libGL
-, protobuf, speechd, libXdamage, cups
-, ffmpeg, libxslt, libxml2, at-spi2-core
-, jre8
-, pipewire_0_2
-, libva
-
-# optional dependencies
-, libgcrypt ? null # gnomeSupport || cupsSupport
-, libdrm ? null, wayland ? null, mesa ? null, libxkbcommon ? null # useOzone
-
-# package customization
-, useOzone ? true
-, gnomeSupport ? false, gnome ? null
-, gnomeKeyringSupport ? false, libgnome-keyring3 ? null
-, proprietaryCodecs ? true
-, cupsSupport ? true
-, pulseSupport ? false, libpulseaudio ? null
-, ungoogled-chromium
-, ungoogled ? false
-
-, channel
-, upstream-info
-}:
-
-buildFun:
-
-with stdenv.lib;
-
-let
-  jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
-
-  # The additional attributes for creating derivations based on the chromium
-  # source tree.
-  extraAttrs = buildFun base;
-
-  githubPatch = commit: sha256: fetchpatch {
-    url = "https://github.com/chromium/chromium/commit/${commit}.patch";
-    inherit sha256;
-  };
-
-  mkGnFlags =
-    let
-      # Serialize Nix types into GN types according to this document:
-      # https://source.chromium.org/gn/gn/+/master:docs/language.md
-      mkGnString = value: "\"${escape ["\"" "$" "\\"] value}\"";
-      sanitize = value:
-        if value == true then "true"
-        else if value == false then "false"
-        else if isList value then "[${concatMapStringsSep ", " sanitize value}]"
-        else if isInt value then toString value
-        else if isString value then mkGnString value
-        else throw "Unsupported type for GN value `${value}'.";
-      toFlag = key: value: "${key}=${sanitize value}";
-    in attrs: concatStringsSep " " (attrValues (mapAttrs toFlag attrs));
-
-  # https://source.chromium.org/chromium/chromium/src/+/master:build/linux/unbundle/replace_gn_files.py
-  gnSystemLibraries = [
-    "ffmpeg"
-    "flac"
-    "libjpeg"
-    "libpng"
-    "libwebp"
-    "libxslt"
-    "opus"
-    "snappy"
-    "zlib"
-  ];
-
-  opusWithCustomModes = libopus.override {
-    withCustomModes = true;
-  };
-
-  defaultDependencies = [
-    bzip2 flac speex opusWithCustomModes
-    libevent expat libjpeg snappy
-    libpng libcap
-    xdg_utils minizip libwebp
-    libusb1 re2
-    ffmpeg libxslt libxml2
-    nasm
-  ];
-
-  # build paths and release info
-  packageName = extraAttrs.packageName or extraAttrs.name;
-  buildType = "Release";
-  buildPath = "out/${buildType}";
-  libExecPath = "$out/libexec/${packageName}";
-
-  versionRange = min-version: upto-version:
-    let inherit (upstream-info) version;
-        result = versionAtLeast version min-version && versionOlder version upto-version;
-        stable-version = (importJSON ./upstream-info.json).stable.version;
-    in if versionAtLeast stable-version upto-version
-       then warn "chromium: stable version ${stable-version} is newer than a patchset bounded at ${upto-version}. You can safely delete it."
-            result
-       else result;
-
-  ungoogler =
-    let versionEntry = (import ./ungoogled-src.nix)."${upstream-info.version}";
-    in ungoogled-chromium {
-      inherit (versionEntry) rev sha256;
-    };
-  base = rec {
-    name = "${packageName}-unwrapped-${version}";
-    inherit (upstream-info) version;
-    inherit channel packageName buildType buildPath;
-
-    src = fetchurl {
-      url = "https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${version}.tar.xz";
-      inherit (upstream-info) sha256;
-    };
-
-    nativeBuildInputs = [
-      llvmPackages.lldClang.bintools
-      ninja which python2Packages.python perl pkgconfig
-      python2Packages.ply python2Packages.jinja2 nodejs
-      gnutar python2Packages.setuptools
-    ];
-
-    buildInputs = defaultDependencies ++ [
-      nspr nss systemd
-      util-linux alsaLib
-      bison gperf kerberos
-      glib gtk3 dbus-glib
-      libXScrnSaver libXcursor libXtst libGLU libGL
-      pciutils protobuf speechd libXdamage at-spi2-core
-      jre
-      pipewire_0_2
-      libva
-    ] ++ optional gnomeKeyringSupport libgnome-keyring3
-      ++ optionals gnomeSupport [ gnome.GConf libgcrypt ]
-      ++ optionals cupsSupport [ libgcrypt cups ]
-      ++ optional pulseSupport libpulseaudio
-      ++ optionals useOzone [ libdrm wayland mesa.drivers libxkbcommon ];
-
-    patches = [
-      ./patches/no-build-timestamps.patch # Optional patch to use SOURCE_DATE_EPOCH in compute_build_timestamp.py (should be upstreamed)
-      ./patches/widevine-79.patch # For bundling Widevine (DRM), might be replaceable via bundle_widevine_cdm=true in gnFlags
-      # ++ optional (versionRange "68" "72") ( githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000" )
-    ];
-
-    postPatch = ''
-      # remove unused third-party
-      for lib in ${toString gnSystemLibraries}; do
-        if [ -d "third_party/$lib" ]; then
-          find "third_party/$lib" -type f \
-            \! -path "third_party/$lib/chromium/*" \
-            \! -path "third_party/$lib/google/*" \
-            \! -path "third_party/harfbuzz-ng/utils/hb_scoped.h" \
-            \! -regex '.*\.\(gn\|gni\|isolate\)' \
-            -delete
-        fi
-      done
-
-      # Required for patchShebangs (unsupported interpreter directive, basename: invalid option -- '*', etc.):
-      substituteInPlace native_client/SConstruct --replace "#! -*- python -*-" ""
-      if [ -e third_party/harfbuzz-ng/src/src/update-unicode-tables.make ]; then
-        substituteInPlace third_party/harfbuzz-ng/src/src/update-unicode-tables.make \
-          --replace "/usr/bin/env -S make -f" "/usr/bin/make -f"
-      fi
-
-      # We want to be able to specify where the sandbox is via CHROME_DEVEL_SANDBOX
-      substituteInPlace sandbox/linux/suid/client/setuid_sandbox_host.cc \
-        --replace \
-          'return sandbox_binary;' \
-          'return base::FilePath(GetDevelSandboxPath());'
-
-      substituteInPlace services/audio/audio_sandbox_hook_linux.cc \
-        --replace \
-          '/usr/share/alsa/' \
-          '${alsaLib}/share/alsa/' \
-        --replace \
-          '/usr/lib/x86_64-linux-gnu/gconv/' \
-          '${glibc}/lib/gconv/' \
-        --replace \
-          '/usr/share/locale/' \
-          '${glibc}/share/locale/'
-
-      sed -i -e 's@"\(#!\)\?.*xdg-@"\1${xdg_utils}/bin/xdg-@' \
-        chrome/browser/shell_integration_linux.cc
-
-      sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${lib.getLib systemd}/lib/\1!' \
-        device/udev_linux/udev?_loader.cc
-
-      sed -i -e '/libpci_loader.*Load/s!"\(libpci\.so\)!"${pciutils}/lib/\1!' \
-        gpu/config/gpu_info_collector_linux.cc
-
-      # Allow to put extensions into the system-path.
-      sed -i -e 's,/usr,/run/current-system/sw,' chrome/common/chrome_paths.cc
-
-      patchShebangs .
-      # use our own nodejs
-      mkdir -p third_party/node/linux/node-linux-x64/bin
-      ln -s "$(command -v node)" third_party/node/linux/node-linux-x64/bin/node
-
-      # Allow building against system libraries in official builds
-      sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' tools/generate_shim_headers/generate_shim_headers.py
-
-    '' + optionalString stdenv.isAarch64 ''
-      substituteInPlace build/toolchain/linux/BUILD.gn \
-        --replace 'toolprefix = "aarch64-linux-gnu-"' 'toolprefix = ""'
-    '' + optionalString ungoogled ''
-      ${ungoogler}/utils/prune_binaries.py . ${ungoogler}/pruning.list || echo "some errors"
-      ${ungoogler}/utils/patches.py . ${ungoogler}/patches
-      ${ungoogler}/utils/domain_substitution.py apply -r ${ungoogler}/domain_regex.list -f ${ungoogler}/domain_substitution.list -c ./ungoogled-domsubcache.tar.gz .
-    '';
-
-    gnFlags = mkGnFlags ({
-      custom_toolchain = "//build/toolchain/linux/unbundle:default";
-      host_toolchain = "//build/toolchain/linux/unbundle:default";
-      is_official_build = true;
-
-      use_vaapi = !stdenv.isAarch64; # TODO: Remove once M88 is released
-      use_sysroot = false;
-      use_gnome_keyring = gnomeKeyringSupport;
-      use_gio = gnomeSupport;
-      # ninja: error: '../../native_client/toolchain/linux_x86/pnacl_newlib/bin/x86_64-nacl-objcopy',
-      # needed by 'nacl_irt_x86_64.nexe', missing and no known rule to make it
-      enable_nacl = false;
-      # Enabling the Widevine component here doesn't affect whether we can
-      # redistribute the chromium package; the Widevine component is either
-      # added later in the wrapped -wv build or downloaded from Google.
-      enable_widevine = true;
-      use_cups = cupsSupport;
-      # Provides the enable-webrtc-pipewire-capturer flag to support Wayland screen capture.
-      rtc_use_pipewire = true;
-
-      treat_warnings_as_errors = false;
-      clang_use_chrome_plugins = false;
-      blink_symbol_level = 0;
-      symbol_level = 0;
-      fieldtrial_testing_like_official_build = true;
-
-      # Google API keys, see:
-      #   http://www.chromium.org/developers/how-tos/api-keys
-      # Note: These are for NixOS/nixpkgs use ONLY. For your own distribution,
-      # please get your own set of keys.
-      google_api_key = "AIzaSyDGi15Zwl11UNe6Y-5XW_upsfyw31qwZPI";
-      google_default_client_id = "404761575300.apps.googleusercontent.com";
-      google_default_client_secret = "9rIFQjfnkykEmqb6FfjJQD1D";
-    } // optionalAttrs proprietaryCodecs {
-      # enable support for the H.264 codec
-      proprietary_codecs = true;
-      enable_hangout_services_extension = true;
-      ffmpeg_branding = "Chrome";
-    } // optionalAttrs pulseSupport {
-      use_pulseaudio = true;
-      link_pulseaudio = true;
-    } // optionalAttrs useOzone {
-      use_ozone = true;
-      use_xkbcommon = true;
-      use_glib = true;
-      use_gtk = true;
-      use_system_libwayland = true;
-      use_system_minigbm = true;
-      use_system_libdrm = true;
-      system_wayland_scanner_path = "${wayland}/bin/wayland-scanner";
-    } // optionalAttrs ungoogled {
-      chrome_pgo_phase = 0;
-      enable_hangout_services_extension = false;
-      enable_js_type_check = false;
-      enable_mdns = false;
-      enable_nacl_nonsfi = false;
-      enable_one_click_signin = false;
-      enable_reading_list = false;
-      enable_remoting = false;
-      enable_reporting = false;
-      enable_service_discovery = false;
-      exclude_unwind_tables = true;
-      google_api_key = "";
-      google_default_client_id = "";
-      google_default_client_secret = "";
-      safe_browsing_mode = 0;
-      use_official_google_api_keys = false;
-      use_unofficial_version_number = false;
-    } // (extraAttrs.gnFlags or {}));
-
-    configurePhase = ''
-      runHook preConfigure
-
-      # This is to ensure expansion of $out.
-      libExecPath="${libExecPath}"
-      python 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.
-      grep -o WARNING gn-gen-outputs.txt && echo "Found gn WARNING, exiting nix build" && exit 1
-
-      runHook postConfigure
-    '';
-
-    # Don't spam warnings about unknown warning options. This is useful because
-    # our Clang is always older than Chromium's and the build logs have a size
-    # of approx. 25 MB without this option (and this saves e.g. 66 %).
-    NIX_CFLAGS_COMPILE = "-Wno-unknown-warning-option";
-
-    buildPhase = let
-      buildCommand = target: ''
-        ninja -C "${buildPath}" -j$NIX_BUILD_CORES -l$NIX_BUILD_CORES "${target}"
-        (
-          source chrome/installer/linux/common/installer.include
-          PACKAGE=$packageName
-          MENUNAME="Chromium"
-          process_template chrome/app/resources/manpage.1.in "${buildPath}/chrome.1"
-        )
-      '';
-      targets = extraAttrs.buildTargets or [];
-      commands = map buildCommand targets;
-    in concatStringsSep "\n" commands;
-
-    postFixup = ''
-      # Make sure that libGLESv2 is found by dlopen (if using EGL).
-      chromiumBinary="$libExecPath/$packageName"
-      origRpath="$(patchelf --print-rpath "$chromiumBinary")"
-      patchelf --set-rpath "${libGL}/lib:$origRpath" "$chromiumBinary"
-    '';
-
-    passthru = {
-      updateScript = ./update.py;
-      chromiumDeps = {
-        gn = gnChromium;
-      };
-    };
-  };
-
-# Remove some extraAttrs we supplied to the base attributes already.
-in stdenv.mkDerivation (base // removeAttrs extraAttrs [
-  "name" "gnFlags" "buildTargets"
-] // { passthru = base.passthru // (extraAttrs.passthru or {}); })
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix
deleted file mode 100644
index b75d271ace5..00000000000
--- a/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix
+++ /dev/null
@@ -1,214 +0,0 @@
-{ newScope, config, stdenv, fetchurl, makeWrapper
-, llvmPackages_11, ed, gnugrep, coreutils, xdg_utils
-, glib, gtk3, gnome3, gsettings-desktop-schemas, gn, fetchgit
-, libva ? null
-, pipewire_0_2
-, gcc, nspr, nss, runCommand
-, lib
-
-# package customization
-# Note: enable* flags should not require full rebuilds (i.e. only affect the wrapper)
-, channel ? "stable"
-, gnomeSupport ? false, gnome ? null
-, gnomeKeyringSupport ? false
-, proprietaryCodecs ? true
-, enablePepperFlash ? false
-, enableWideVine ? false
-, enableVaapi ? false # Disabled by default due to unofficial support
-, ungoogled ? true
-, cupsSupport ? true
-, pulseSupport ? config.pulseaudio or stdenv.isLinux
-, commandLineArgs ? ""
-}:
-
-let
-  llvmPackages = llvmPackages_11;
-  stdenv = llvmPackages.stdenv;
-
-  callPackage = newScope chromium;
-
-  chromium = rec {
-    inherit stdenv llvmPackages;
-
-    upstream-info = (lib.importJSON ./upstream-info.json).${channel};
-
-    mkChromiumDerivation = callPackage ./common.nix ({
-      inherit channel gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs
-              cupsSupport pulseSupport;
-      inherit ungoogled;
-      gnChromium = gn.overrideAttrs (oldAttrs: {
-        inherit (upstream-info.deps.gn) version;
-        src = fetchgit {
-          inherit (upstream-info.deps.gn) url rev sha256;
-        };
-      });
-    });
-
-    browser = callPackage ./browser.nix { inherit channel enableWideVine; };
-
-    plugins = callPackage ./plugins.nix {
-      inherit enablePepperFlash;
-    };
-
-    ungoogled-chromium = callPackage ./ungoogled.nix {};
-  };
-
-  pkgSuffix = if channel == "dev" then "unstable" else channel;
-  pkgName = "google-chrome-${pkgSuffix}";
-  chromeSrc = fetchurl {
-    urls = map (repo: "${repo}/${pkgName}/${pkgName}_${version}-1_amd64.deb") [
-      "https://dl.google.com/linux/chrome/deb/pool/main/g"
-      "http://95.31.35.30/chrome/pool/main/g"
-      "http://mirror.pcbeta.com/google/chrome/deb/pool/main/g"
-      "http://repo.fdzh.org/chrome/deb/pool/main/g"
-    ];
-    sha256 = chromium.upstream-info.sha256bin64;
-  };
-
-  mkrpath = p: "${lib.makeSearchPathOutput "lib" "lib64" p}:${lib.makeLibraryPath p}";
-  widevineCdm = stdenv.mkDerivation {
-    name = "chrome-widevine-cdm";
-
-    src = chromeSrc;
-
-    phases = [ "unpackPhase" "patchPhase" "installPhase" "checkPhase" ];
-
-    unpackCmd = let
-      widevineCdmPath =
-        if channel == "stable" then
-          "./opt/google/chrome/WidevineCdm"
-        else if channel == "beta" then
-          "./opt/google/chrome-beta/WidevineCdm"
-        else if channel == "dev" then
-          "./opt/google/chrome-unstable/WidevineCdm"
-        else
-          throw "Unknown chromium channel.";
-    in ''
-      # Extract just WidevineCdm from upstream's .deb file
-      ar p "$src" data.tar.xz | tar xJ "${widevineCdmPath}"
-
-      # Move things around so that we don't have to reference a particular
-      # chrome-* directory later.
-      mv "${widevineCdmPath}" ./
-
-      # unpackCmd wants a single output directory; let it take WidevineCdm/
-      rm -rf opt
-    '';
-
-    doCheck = true;
-    checkPhase = ''
-      ! find -iname '*.so' -exec ldd {} + | grep 'not found'
-    '';
-
-    PATCH_RPATH = mkrpath [ gcc.cc glib nspr nss ];
-
-    patchPhase = ''
-      patchelf --set-rpath "$PATCH_RPATH" _platform_specific/linux_x64/libwidevinecdm.so
-    '';
-
-    installPhase = ''
-      mkdir -p $out/WidevineCdm
-      cp -a * $out/WidevineCdm/
-    '';
-
-    meta = {
-      platforms = [ "x86_64-linux" ];
-      license = lib.licenses.unfree;
-    };
-  };
-
-  suffix = if channel != "stable" then "-" + channel else "";
-
-  sandboxExecutableName = chromium.browser.passthru.sandboxExecutableName;
-
-  version = chromium.browser.version;
-
-  # We want users to be able to enableWideVine without rebuilding all of
-  # chromium, so we have a separate derivation here that copies chromium
-  # and adds the unfree WidevineCdm.
-  chromiumWV = let browser = chromium.browser; in if enableWideVine then
-    runCommand (browser.name + "-wv") { version = browser.version; }
-      ''
-        mkdir -p $out
-        cp -a ${browser}/* $out/
-        chmod u+w $out/libexec/chromium
-        cp -a ${widevineCdm}/WidevineCdm $out/libexec/chromium/
-      ''
-    else browser;
-
-in stdenv.mkDerivation {
-  name = "ungoogled-chromium${suffix}-${version}";
-  inherit version;
-
-  buildInputs = [
-    makeWrapper ed
-
-    # needed for GSETTINGS_SCHEMAS_PATH
-    gsettings-desktop-schemas glib gtk3
-
-    # needed for XDG_ICON_DIRS
-    gnome3.adwaita-icon-theme
-  ];
-
-  outputs = ["out" "sandbox"];
-
-  buildCommand = let
-    browserBinary = "${chromiumWV}/libexec/chromium/chromium";
-    getWrapperFlags = plugin: "$(< \"${plugin}/nix-support/wrapper-flags\")";
-    libPath = stdenv.lib.makeLibraryPath [ libva pipewire_0_2 ];
-
-  in with stdenv.lib; ''
-    mkdir -p "$out/bin"
-
-    eval makeWrapper "${browserBinary}" "$out/bin/chromium" \
-      --add-flags ${escapeShellArg (escapeShellArg commandLineArgs)} \
-      ${lib.optionalString enableVaapi "--add-flags --enable-accelerated-video-decode"} \
-      ${concatMapStringsSep " " getWrapperFlags chromium.plugins.enabled}
-
-    ed -v -s "$out/bin/chromium" << EOF
-    2i
-
-    if [ -x "/run/wrappers/bin/${sandboxExecutableName}" ]
-    then
-      export CHROME_DEVEL_SANDBOX="/run/wrappers/bin/${sandboxExecutableName}"
-    else
-      export CHROME_DEVEL_SANDBOX="$sandbox/bin/${sandboxExecutableName}"
-    fi
-
-  '' + lib.optionalString (libPath != "") ''
-    # To avoid loading .so files from cwd, LD_LIBRARY_PATH here must not
-    # contain an empty section before or after a colon.
-    export LD_LIBRARY_PATH="\$LD_LIBRARY_PATH\''${LD_LIBRARY_PATH:+:}${libPath}"
-  '' + ''
-
-    # libredirect causes chromium to deadlock on startup
-    export LD_PRELOAD="\$(echo -n "\$LD_PRELOAD" | ${coreutils}/bin/tr ':' '\n' | ${gnugrep}/bin/grep -v /lib/libredirect\\\\.so$ | ${coreutils}/bin/tr '\n' ':')"
-
-    export XDG_DATA_DIRS=$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH\''${XDG_DATA_DIRS:+:}\$XDG_DATA_DIRS
-
-    # Mainly for xdg-open but also other xdg-* tools:
-    export PATH="${xdg_utils}/bin\''${PATH:+:}\$PATH"
-
-    .
-    w
-    EOF
-
-    ln -sv "${chromium.browser.sandbox}" "$sandbox"
-
-    ln -s "$out/bin/chromium" "$out/bin/chromium-browser"
-
-    mkdir -p "$out/share"
-    for f in '${chromium.browser}'/share/*; do # hello emacs */
-      ln -s -t "$out/share/" "$f"
-    done
-  '';
-
-  inherit (chromium.browser) packageName;
-  meta = chromium.browser.meta;
-  passthru = {
-    inherit (chromium) upstream-info browser;
-    mkDerivation = chromium.mkChromiumDerivation;
-    inherit chromeSrc sandboxExecutableName;
-    updateScript = ./update.py;
-  };
-}
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/patches/no-build-timestamps.patch b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/no-build-timestamps.patch
deleted file mode 100644
index 6b788f43d29..00000000000
--- a/pkgs/applications/networking/browsers/ungoogled-chromium/patches/no-build-timestamps.patch
+++ /dev/null
@@ -1,17 +0,0 @@
---- chromium-70.0.3538.67/build/compute_build_timestamp.py.orig	2018-11-02 16:00:34.368933077 +0200
-+++ chromium-70.0.3538.67/build/compute_build_timestamp.py	2018-11-08 04:06:21.658105129 +0200
-@@ -94,6 +94,14 @@
-       'build_type', help='The type of build', choices=('official', 'default'))
-   args = argument_parser.parse_args()
- 
-+  # I don't trust LASTCHANGE magic, and I definelly want something deterministic here
-+  SOURCE_DATE_EPOCH = os.getenv("SOURCE_DATE_EPOCH", None)
-+  if SOURCE_DATE_EPOCH is not None:
-+    print(SOURCE_DATE_EPOCH)
-+    return 0
-+  else:
-+    raise RuntimeError("SOURCE_DATE_EPOCH not set")
-+
-   # The mtime of the revision in build/util/LASTCHANGE is stored in a file
-   # next to it. Read it, to get a deterministic time close to "now".
-   # That date is then modified as described at the top of the file so that
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/patches/widevine-79.patch b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/widevine-79.patch
deleted file mode 100644
index 32f0ae2fb5e..00000000000
--- a/pkgs/applications/networking/browsers/ungoogled-chromium/patches/widevine-79.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/third_party/widevine/cdm/BUILD.gn b/third_party/widevine/cdm/BUILD.gn
-index ed0e2f5208b..5b431a030d5 100644
---- a/third_party/widevine/cdm/BUILD.gn
-+++ b/third_party/widevine/cdm/BUILD.gn
-@@ -14,7 +14,7 @@ buildflag_header("buildflags") {
- 
-   flags = [
-     "ENABLE_WIDEVINE=$enable_widevine",
--    "BUNDLE_WIDEVINE_CDM=$bundle_widevine_cdm",
-+    "BUNDLE_WIDEVINE_CDM=true",
-     "ENABLE_WIDEVINE_CDM_COMPONENT=$enable_widevine_cdm_component",
-   ]
- }
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/plugins.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/plugins.nix
deleted file mode 100644
index eef1c5ef38c..00000000000
--- a/pkgs/applications/networking/browsers/ungoogled-chromium/plugins.nix
+++ /dev/null
@@ -1,92 +0,0 @@
-{ stdenv, gcc
-, jshon
-, glib
-, nspr
-, nss
-, fetchzip
-, enablePepperFlash ? false
-
-, upstream-info
-}:
-
-with stdenv.lib;
-
-let
-  mkrpath = p: "${makeSearchPathOutput "lib" "lib64" p}:${makeLibraryPath p}";
-
-  # Generate a shell fragment that emits flags appended to the
-  # final makeWrapper call for wrapping the browser's main binary.
-  #
-  # Note that this is shell-escaped so that only the variable specified
-  # by the "output" attribute is substituted.
-  mkPluginInfo = { output ? "out", allowedVars ? [ output ]
-                 , flags ? [], envVars ? {}
-                 }: let
-    shSearch = ["'"] ++ map (var: "@${var}@") allowedVars;
-    shReplace = ["'\\''"] ++ map (var: "'\"\${${var}}\"'") allowedVars;
-    # We need to triple-escape "val":
-    #  * First because makeWrapper doesn't do any quoting of its arguments by
-    #    itself.
-    #  * Second because it's passed to the makeWrapper call separated by IFS but
-    #    not by the _real_ arguments, for example the Widevine plugin flags
-    #    contain spaces, so they would end up as separate arguments.
-    #  * Third in order to be correctly quoted for the "echo" call below.
-    shEsc = val: "'${replaceStrings ["'"] ["'\\''"] val}'";
-    mkSh = val: "'${replaceStrings shSearch shReplace (shEsc val)}'";
-    mkFlag = flag: ["--add-flags" (shEsc flag)];
-    mkEnvVar = key: val: ["--set" (shEsc key) (shEsc val)];
-    envList = mapAttrsToList mkEnvVar envVars;
-    quoted = map mkSh (flatten ((map mkFlag flags) ++ envList));
-  in ''
-    mkdir -p "''$${output}/nix-support"
-    echo ${toString quoted} > "''$${output}/nix-support/wrapper-flags"
-  '';
-
-  flash = stdenv.mkDerivation rec {
-    pname = "flashplayer-ppapi";
-    version = "32.0.0.465";
-
-    src = fetchzip {
-      url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz";
-      sha256 = "16qbc2s8dg2rwggphf8f5665iccc6lrvgz45bdwskg9pwg87hlj1";
-      stripRoot = false;
-    };
-
-    patchPhase = ''
-      chmod +x libpepflashplayer.so
-      patchelf --set-rpath "${mkrpath [ gcc.cc ]}" libpepflashplayer.so
-    '';
-
-    doCheck = true;
-    checkPhase = ''
-      ! find -iname '*.so' -exec ldd {} + | grep 'not found'
-    '';
-
-    installPhase = ''
-      flashVersion="$(
-        "${jshon}/bin/jshon" -F manifest.json -e version -u
-      )"
-
-      install -vD libpepflashplayer.so "$out/lib/libpepflashplayer.so"
-
-      ${mkPluginInfo {
-        allowedVars = [ "out" "flashVersion" ];
-        flags = [
-          "--ppapi-flash-path=@out@/lib/libpepflashplayer.so"
-          "--ppapi-flash-version=@flashVersion@"
-        ];
-      }}
-    '';
-
-    dontStrip = true;
-
-    meta = {
-      license = stdenv.lib.licenses.unfree;
-      maintainers = with stdenv.lib.maintainers; [ taku0 ];
-      platforms = platforms.x86_64;
-    };
-  };
-
-in {
-  enabled = optional enablePepperFlash flash;
-}
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix
deleted file mode 100644
index 26f2f730a41..00000000000
--- a/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "87.0.4280.88" = {
-    rev = "87.0.4280.88-1";
-    sha256 = "0w2137w8hfcgl6f938hqnb4ffp33v5r8vdzxrvs814w7dszkiqgg";
-  };
-}
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/update.py b/pkgs/applications/networking/browsers/ungoogled-chromium/update.py
deleted file mode 100755
index 9e1f0aec598..00000000000
--- a/pkgs/applications/networking/browsers/ungoogled-chromium/update.py
+++ /dev/null
@@ -1,121 +0,0 @@
-#! /usr/bin/env nix-shell
-#! nix-shell -i python -p python3 nix nix-prefetch-git
-
-import csv
-import json
-import re
-import subprocess
-import sys
-
-from codecs import iterdecode
-from collections import OrderedDict
-from datetime import datetime
-from os.path import abspath, dirname
-from urllib.request import urlopen
-
-HISTORY_URL = 'https://omahaproxy.appspot.com/history?os=linux'
-DEB_URL = 'https://dl.google.com/linux/chrome/deb/pool/main/g'
-BUCKET_URL = 'https://commondatastorage.googleapis.com/chromium-browser-official'
-
-JSON_PATH = dirname(abspath(__file__)) + '/upstream-info.json'
-
-def load_json(path):
-    with open(path, 'r') as f:
-        return json.load(f)
-
-def nix_prefetch_url(url, algo='sha256'):
-    print(f'nix-prefetch-url {url}')
-    out = subprocess.check_output(['nix-prefetch-url', '--type', algo, url])
-    return out.decode('utf-8').rstrip()
-
-def nix_prefetch_git(url, rev):
-    print(f'nix-prefetch-git {url} {rev}')
-    out = subprocess.check_output(['nix-prefetch-git', '--quiet', '--url', url, '--rev', rev])
-    return json.loads(out)
-
-def get_file_revision(revision, file_path):
-    url = f'https://raw.githubusercontent.com/chromium/chromium/{revision}/{file_path}'
-    with urlopen(url) as http_response:
-        return http_response.read()
-
-def get_matching_chromedriver(version):
-    # See https://chromedriver.chromium.org/downloads/version-selection
-    build = re.sub('.[0-9]+$', '', version)
-    chromedriver_version_url = f'https://chromedriver.storage.googleapis.com/LATEST_RELEASE_{build}'
-    with urlopen(chromedriver_version_url) as http_response:
-        chromedriver_version = http_response.read().decode()
-        def get_chromedriver_url(system):
-            return f'https://chromedriver.storage.googleapis.com/{chromedriver_version}/chromedriver_{system}.zip'
-        return {
-            'version': chromedriver_version,
-            'sha256_linux': nix_prefetch_url(get_chromedriver_url('linux64')),
-            'sha256_darwin': nix_prefetch_url(get_chromedriver_url('mac64'))
-        }
-
-def get_channel_dependencies(channel):
-    deps = get_file_revision(channel['version'], 'DEPS')
-    gn_pattern = b"'gn_version': 'git_revision:([0-9a-f]{40})'"
-    gn_commit = re.search(gn_pattern, deps).group(1).decode()
-    gn = nix_prefetch_git('https://gn.googlesource.com/gn', gn_commit)
-    return {
-        'gn': {
-            'version': datetime.fromisoformat(gn['date']).date().isoformat(),
-            'url': gn['url'],
-            'rev': gn['rev'],
-            'sha256': gn['sha256']
-        }
-    }
-
-channels = {}
-last_channels = load_json(JSON_PATH)
-
-print(f'GET {HISTORY_URL}', file=sys.stderr)
-with urlopen(HISTORY_URL) as resp:
-    builds = csv.DictReader(iterdecode(resp, 'utf-8'))
-    for build in builds:
-        channel_name = build['channel']
-
-        # If we've already found a newer build for this channel, we're
-        # no longer interested in it.
-        if channel_name in channels:
-            continue
-
-        # If we're back at the last build we used, we don't need to
-        # keep going -- there's no new version available, and we can
-        # just reuse the info from last time.
-        if build['version'] == last_channels[channel_name]['version']:
-            channels[channel_name] = last_channels[channel_name]
-            continue
-
-        channel = {'version': build['version']}
-        suffix = 'unstable' if channel_name == 'dev' else channel_name
-
-        try:
-            channel['sha256'] = nix_prefetch_url(f'{BUCKET_URL}/chromium-{build["version"]}.tar.xz')
-            channel['sha256bin64'] = nix_prefetch_url(f'{DEB_URL}/google-chrome-{suffix}/google-chrome-{suffix}_{build["version"]}-1_amd64.deb')
-        except subprocess.CalledProcessError:
-            # This build isn't actually available yet.  Continue to
-            # the next one.
-            continue
-
-        channel['deps'] = get_channel_dependencies(channel)
-        if channel_name == 'stable':
-            channel['chromedriver'] = get_matching_chromedriver(channel['version'])
-
-        channels[channel_name] = channel
-
-with open(JSON_PATH, 'w') as out:
-    def get_channel_key(item):
-        channel_name = item[0]
-        if channel_name == 'stable':
-            return 0
-        elif channel_name == 'beta':
-            return 1
-        elif channel_name == 'dev':
-            return 2
-        else:
-            print(f'Error: Unexpected channel: {channel_name}', file=sys.stderr)
-            sys.exit(1)
-    sorted_channels = OrderedDict(sorted(channels.items(), key=get_channel_key))
-    json.dump(sorted_channels, out, indent=2)
-    out.write('\n')
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.json b/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.json
deleted file mode 100644
index 6343dd4b246..00000000000
--- a/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
-  "stable": {
-    "version": "87.0.4280.88",
-    "sha256": "1h09g9b2zxad85vd146ymvg3w2kpngpi78yig3dn1vrmhwr4aiiy",
-    "sha256bin64": "0n3fm6wf8zfkv135d50xl8xxrnng3q55vyxkck1da8jyvh18bijb",
-    "deps": {
-      "gn": {
-        "version": "2020-09-09",
-        "url": "https://gn.googlesource.com/gn",
-        "rev": "e002e68a48d1c82648eadde2f6aafa20d08c36f2",
-        "sha256": "0x4c7amxwzxs39grqs3dnnz0531mpf1p75niq7zhinyfqm86i4dk"
-      }
-    },
-    "chromedriver": {
-      "version": "87.0.4280.88",
-      "sha256_linux": "141mr2jiy3nslwd3s43m4i6plkv9wv5fgi78cn7mz0ac9x6fpcgx",
-      "sha256_darwin": "048hsqp6575r980m769lzznvxypmfcwn89f1d3ik751ymzmb5r78"
-    }
-  },
-  "beta": {
-    "version": "88.0.4324.27",
-    "sha256": "0mciiyh3sn2zrl8g6znylc2pm9sb0wzsclgavf7mmlknri5sjblc",
-    "sha256bin64": "0qf2j1j3p94s724rwh8fydpjn88cs9yxxhjf5axvqwi7q3h35cfx",
-    "deps": {
-      "gn": {
-        "version": "2020-11-05",
-        "url": "https://gn.googlesource.com/gn",
-        "rev": "53d92014bf94c3893886470a1c7c1289f8818db0",
-        "sha256": "1xcm07qjk6m2czi150fiqqxql067i832adck6zxrishm70c9jbr9"
-      }
-    }
-  },
-  "dev": {
-    "version": "89.0.4343.0",
-    "sha256": "0jmc1l0lysl5zax98fjhzsfq3c1sqh3n3xscidafflx362wcfpwa",
-    "sha256bin64": "1v6xik8kf531y0g5xj0c8szjmak0qvh77kwkw7p7hqxqmnwwp06d",
-    "deps": {
-      "gn": {
-        "version": "2020-11-05",
-        "url": "https://gn.googlesource.com/gn",
-        "rev": "53d92014bf94c3893886470a1c7c1289f8818db0",
-        "sha256": "1xcm07qjk6m2czi150fiqqxql067i832adck6zxrishm70c9jbr9"
-      }
-    }
-  }
-}
diff --git a/pkgs/applications/networking/cluster/k3s/default.nix b/pkgs/applications/networking/cluster/k3s/default.nix
index 629f11865bb..c35579def7e 100644
--- a/pkgs/applications/networking/cluster/k3s/default.nix
+++ b/pkgs/applications/networking/cluster/k3s/default.nix
@@ -223,7 +223,7 @@ let
   };
 in
 stdenv.mkDerivation rec {
-  name = "k3s";
+  pname = "k3s";
   version = k3sVersion;
 
   # Important utilities used by  the kubelet, see
diff --git a/pkgs/applications/networking/cluster/minikube/default.nix b/pkgs/applications/networking/cluster/minikube/default.nix
index bd71f2f5c5b..080cfc167da 100644
--- a/pkgs/applications/networking/cluster/minikube/default.nix
+++ b/pkgs/applications/networking/cluster/minikube/default.nix
@@ -11,9 +11,9 @@
 
 buildGoModule rec {
   pname = "minikube";
-  version = "1.15.1";
+  version = "1.16.0";
 
-  vendorSha256 = "1xkk4f8qjqx5x878iniclni3jm2f7ka47va756vc3vk8p5s6vpdk";
+  vendorSha256 = "0nc2f9h77h24f0nvai5wvgmf1gh09dqfwrb6d5qghmq03a459san";
 
   doCheck = false;
 
@@ -21,7 +21,7 @@ buildGoModule rec {
     owner = "kubernetes";
     repo = "minikube";
     rev = "v${version}";
-    sha256 = "03knkc8z3vri73j1aa9ry6p1rxql3d75kphd429x5am856mpnn6g";
+    sha256 = "00dn8yy7mna0j8rdcnxbgnd5vkjdkqij8akgqhvbd32kxpqss890";
   };
 
   nativeBuildInputs = [ go-bindata installShellFiles pkg-config which ];
diff --git a/pkgs/applications/networking/cluster/nerdctl/default.nix b/pkgs/applications/networking/cluster/nerdctl/default.nix
index 4afb7458ff3..ed00fb231a6 100644
--- a/pkgs/applications/networking/cluster/nerdctl/default.nix
+++ b/pkgs/applications/networking/cluster/nerdctl/default.nix
@@ -14,16 +14,16 @@ let
 in
 buildGoModule rec {
   pname = "nerdctl";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "AkihiroSuda";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1bxxdsx8aqbrbjm0bn6makw77z96mng5by7k3licbk0vdgakaix6";
+    sha256 = "0vjcbvd5yrasw97hd5mrn6cdjvfv2r03z7g1wczlszlcs8gr6nxw";
   };
 
-  vendorSha256 = "1d2bqv7bc7q82z6sd8kkqj4xdccs660mj34ggwb09a59law139li";
+  vendorSha256 = "181lp9l4i0qpiqm8wbxa4ldi1j5bm3ygmanz1xh3mkjanl0pwqjr";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/applications/networking/cluster/nomad/0.11.nix b/pkgs/applications/networking/cluster/nomad/0.11.nix
index 6487a2edd7f..58bdb694eed 100644
--- a/pkgs/applications/networking/cluster/nomad/0.11.nix
+++ b/pkgs/applications/networking/cluster/nomad/0.11.nix
@@ -1,7 +1,11 @@
-{ callPackage, buildGoPackage }:
+{ callPackage
+, buildGoPackage
+, nvidia_x11
+, nvidiaGpuSupport
+}:
 
 callPackage ./generic.nix {
-  inherit buildGoPackage;
-  version = "0.11.7";
-  sha256 = "sha256-wp1Je+I3iijD/pHHQtylMQhOiVhS6AT/y2/pUiLr0M4=";
+  inherit buildGoPackage nvidia_x11 nvidiaGpuSupport;
+  version = "0.11.8";
+  sha256 = "1dhh07bifr02jh2lls8fv1d9ra67ymgh8qxqvpvm0cd0qdd469z1";
 }
diff --git a/pkgs/applications/networking/cluster/nomad/0.12.nix b/pkgs/applications/networking/cluster/nomad/0.12.nix
index 863f7cbed2f..b6e053e757d 100644
--- a/pkgs/applications/networking/cluster/nomad/0.12.nix
+++ b/pkgs/applications/networking/cluster/nomad/0.12.nix
@@ -1,7 +1,11 @@
-{ callPackage, buildGoPackage }:
+{ callPackage
+, buildGoPackage
+, nvidia_x11
+, nvidiaGpuSupport
+}:
 
 callPackage ./generic.nix {
-  inherit buildGoPackage;
-  version = "0.12.7";
-  sha256 = "0y1nwmpc4fqgjyb19n1f2w4y5k7fy4p68v2vnnry11nj3im7ia14";
+  inherit buildGoPackage nvidia_x11 nvidiaGpuSupport;
+  version = "0.12.9";
+  sha256 = "1a0ig6pb0z3qp7zk4jgz3h241bifmjlyqsfikyy3sxdnzj7yha27";
 }
diff --git a/pkgs/applications/networking/cluster/nomad/1.0.nix b/pkgs/applications/networking/cluster/nomad/1.0.nix
new file mode 100644
index 00000000000..0b7b7c12d1a
--- /dev/null
+++ b/pkgs/applications/networking/cluster/nomad/1.0.nix
@@ -0,0 +1,11 @@
+{ callPackage
+, buildGoPackage
+, nvidia_x11
+, nvidiaGpuSupport
+}:
+
+callPackage ./generic.nix {
+  inherit buildGoPackage nvidia_x11 nvidiaGpuSupport;
+  version = "1.0.1";
+  sha256 = "07k81csyxhgc7bgn297zlqyvc55qb5fmiavi7dk81rdpg5m2zjvv";
+}
diff --git a/pkgs/applications/networking/cluster/nomad/generic.nix b/pkgs/applications/networking/cluster/nomad/generic.nix
index 0bfdb0b27f6..dc22ab41d8b 100644
--- a/pkgs/applications/networking/cluster/nomad/generic.nix
+++ b/pkgs/applications/networking/cluster/nomad/generic.nix
@@ -1,4 +1,12 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, version, sha256 }:
+{ lib
+, buildGoPackage
+, fetchFromGitHub
+, version
+, sha256
+, nvidiaGpuSupport
+, patchelf
+, nvidia_x11
+}:
 
 buildGoPackage rec {
   pname = "nomad";
@@ -14,23 +22,33 @@ buildGoPackage rec {
     inherit rev sha256;
   };
 
+  nativeBuildInputs = lib.optionals nvidiaGpuSupport [
+    patchelf
+  ];
+
   # ui:
   #  Nomad release commits include the compiled version of the UI, but the file
   #  is only included if we build with the ui tag.
-  # nonvidia:
-  #  We disable Nvidia GPU scheduling on Linux, as it doesn't work there:
-  #  Ref: https://github.com/hashicorp/nomad/issues/5535
-  preBuild = let
-    tags = ["ui"]
-      ++ stdenv.lib.optional stdenv.isLinux "nonvidia";
-    tagsString = stdenv.lib.concatStringsSep " " tags;
-  in ''
-    export buildFlagsArray=(
-      -tags="${tagsString}"
-    )
- '';
+  preBuild =
+    let
+      tags = [ "ui" ] ++ lib.optional (!nvidiaGpuSupport) "nonvidia";
+      tagsString = lib.concatStringsSep " " tags;
+    in
+    ''
+      export buildFlagsArray=(
+        -tags="${tagsString}"
+      )
+    '';
+
+  # The dependency on NVML isn't explicit. We have to make it so otherwise the
+  # binary will not know where to look for the relevant symbols.
+  postFixup = lib.optionalString nvidiaGpuSupport ''
+    for bin in $out/bin/*; do
+      patchelf --add-needed "${nvidia_x11}/lib/libnvidia-ml.so" "$bin"
+    done
+  '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://www.nomadproject.io/";
     description = "A Distributed, Highly Available, Datacenter-Aware Scheduler";
     platforms = platforms.unix;
diff --git a/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix b/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix
index 293c2ed31c0..f7bcbca16c4 100644
--- a/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix
+++ b/pkgs/applications/networking/cluster/octant/plugins/starboard-octant-plugin.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "starboard-octant-plugin";
-  version = "0.7.0";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "v${version}";
-    sha256 = "140m7mnpqhfbp2qqpr3jjsc770xdph98mm5zpgwzg0jwgpsrcxsm";
+    sha256 = "11c8znbijhvxl2mas205mb18sqw868l6c86ah5hlkqh3niq2gmv3";
   };
 
-  vendorSha256 = "0aphx2rpnvzmfyfs11hf8j5b7s5lgw4kcq4jpdrkjwx7zhl6qx2g";
+  vendorSha256 = "0rmynfm5afjxc2lxy2rh9y6zhdd2q95wji2q8hcz78zank43rkcq";
 
   meta = with lib; {
     description = "Octant plugin for viewing Starboard security information";
diff --git a/pkgs/applications/networking/cluster/qbec/default.nix b/pkgs/applications/networking/cluster/qbec/default.nix
index 508e0b656d6..18a753ca3ca 100644
--- a/pkgs/applications/networking/cluster/qbec/default.nix
+++ b/pkgs/applications/networking/cluster/qbec/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "qbec";
-  version = "0.12.1";
+  version = "0.12.2";
 
   src = fetchFromGitHub {
     owner = "splunk";
     repo = "qbec";
     rev = "v${version}";
-    sha256 = "1g90z155nhcblr48qypw8qw3l8g4dz33iflv4cg4xrhwjp8dfbv9";
+    sha256 = "10bf9ja44n1gzhb5znqbmr1xjc87akrsdyxfvrz4f5bd3p1fh6j0";
   };
 
-  vendorSha256 = "15hbjghi2ifylg7nr85qlk0alsy97h9zj6hf5w84m76dla2bcjf3";
+  vendorSha256 = "0xkmccm6cyw1p5mah7psbpfsfaw8f09r1a2k4iksfggrn9mimaam";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/cluster/sonobuoy/default.nix b/pkgs/applications/networking/cluster/sonobuoy/default.nix
index be5cb51d450..668a229a62e 100644
--- a/pkgs/applications/networking/cluster/sonobuoy/default.nix
+++ b/pkgs/applications/networking/cluster/sonobuoy/default.nix
@@ -7,10 +7,8 @@ buildGoModule rec {
   pname = "sonobuoy";
   version = "0.19.0";
 
-  goPackagePath = "github.com/vmware-tanzu/sonobuoy";
-
   buildFlagsArray =
-    let t = goPackagePath;
+    let t = "github.com/vmware-tanzu/sonobuoy";
     in ''
       -ldflags=
         -s -X ${t}/pkg/buildinfo.Version=v${version}
diff --git a/pkgs/applications/networking/cluster/stern/default.nix b/pkgs/applications/networking/cluster/stern/default.nix
index 0f8ed05d8e6..29aa7d41f32 100644
--- a/pkgs/applications/networking/cluster/stern/default.nix
+++ b/pkgs/applications/networking/cluster/stern/default.nix
@@ -1,27 +1,28 @@
-{ stdenv, lib, buildPackages, buildGoPackage, fetchFromGitHub, installShellFiles }:
+{ stdenv, lib, buildPackages, buildGoModule, fetchFromGitHub, installShellFiles }:
+let isCrossBuild = stdenv.hostPlatform != stdenv.buildPlatform;
 
-let isCrossBuild = stdenv.hostPlatform != stdenv.buildPlatform; in
-
-buildGoPackage rec {
+in
+buildGoModule rec {
   pname = "stern";
-  version = "1.11.0";
-
-  goPackagePath = "github.com/wercker/stern";
+  version = "1.13.1";
 
   src = fetchFromGitHub {
-    owner = "wercker";
+    owner = "stern";
     repo = "stern";
-    rev = version;
-    sha256 = "0xndlq0ks8flzx6rdd4lnkxpkbvdy9sj1jwys5yj7p989ls8by3n";
+    rev = "v${version}";
+    sha256 = "0fj6a52wb0jv5bz2j2wq3ljnlxnsj9bg3kbzgkz0vh0b63zyn782";
   };
 
-  deleteVendor = true;
-  goDeps = ./deps.nix;
+  vendorSha256 = "14nrdaaby74bjbk777hr82p0ybzk3spc59lbrjn9z0q3hc0p4vaf";
 
   nativeBuildInputs = [ installShellFiles ];
 
+  buildFlagsArray =
+    [ "-ldflags=-s -w -X github.com/stern/stern/cmd.version=${version}" ];
+
   postInstall =
-    let stern = if isCrossBuild then buildPackages.stern else "$out"; in
+    let stern = if isCrossBuild then buildPackages.stern else "$out";
+    in
     ''
       for shell in bash zsh; do
         ${stern}/bin/stern --completion $shell > stern.$shell
@@ -30,10 +31,10 @@ buildGoPackage rec {
     '';
 
   meta = with lib; {
-    description      = "Multi pod and container log tailing for Kubernetes";
-    homepage         = "https://github.com/wercker/stern";
-    license          = licenses.asl20;
-    maintainers      = with maintainers; [ mbode ];
-    platforms        = platforms.unix;
+    description = "Multi pod and container log tailing for Kubernetes";
+    homepage = "https://github.com/stern/stern";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ mbode preisschild ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/networking/cluster/stern/deps.nix b/pkgs/applications/networking/cluster/stern/deps.nix
deleted file mode 100644
index fff5cf8c0de..00000000000
--- a/pkgs/applications/networking/cluster/stern/deps.nix
+++ /dev/null
@@ -1,336 +0,0 @@
-# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
-[
-  {
-    goPackagePath  = "cloud.google.com/go";
-    fetch = {
-      type = "git";
-      url = "https://code.googlesource.com/gocloud";
-      rev =  "dfffe386c33fb24c34ee501e5723df5b97b98514";
-      sha256 = "1g681yxz4mmzapzpzxfaz1nhcr1w526793yapfsnxlbs2skap3fy";
-    };
-  }
-  {
-    goPackagePath  = "github.com/Azure/go-autorest";
-    fetch = {
-      type = "git";
-      url = "https://github.com/Azure/go-autorest";
-      rev =  "1ff28809256a84bb6966640ff3d0371af82ccba4";
-      sha256 = "0sxvj2j1833bqwxvhq3wq3jgq73rnb81pnzvl0x3y1m0hzpaf2zv";
-    };
-  }
-  {
-    goPackagePath  = "github.com/dgrijalva/jwt-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dgrijalva/jwt-go";
-      rev =  "06ea1031745cb8b3dab3f6a236daf2b0aa468b7e";
-      sha256 = "08m27vlms74pfy5z79w67f9lk9zkx6a9jd68k3c4msxy75ry36mp";
-    };
-  }
-  {
-    goPackagePath  = "github.com/fatih/color";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fatih/color";
-      rev =  "2d684516a8861da43017284349b7e303e809ac21";
-      sha256 = "1fcfmz4wji3gqmmsdx493r7d101s58hwjalqps6hy25nva5pvmfs";
-    };
-  }
-  {
-    goPackagePath  = "github.com/ghodss/yaml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ghodss/yaml";
-      rev =  "73d445a93680fa1a78ae23a5839bad48f32ba1ee";
-      sha256 = "0pg53ky4sy3sp9j4n7vgf1p3gw4nbckwqfldcmmi9rf13kjh0mr7";
-    };
-  }
-  {
-    goPackagePath  = "github.com/gogo/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gogo/protobuf";
-      rev =  "c0656edd0d9eab7c66d1eb0c568f9039345796f7";
-      sha256 = "0b943dhx571lhgcs3rqzy0092mi2x5mwy2kl7g8rryhy3r5rzrz9";
-    };
-  }
-  {
-    goPackagePath  = "github.com/golang/glog";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/glog";
-      rev =  "23def4e6c14b4da8ac2ed8007337bc5eb5007998";
-      sha256 = "0jb2834rw5sykfr937fxi8hxi2zy80sj2bdn9b3jb4b26ksqng30";
-    };
-  }
-  {
-    goPackagePath  = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev =  "b4deda0973fb4c70b50d226b1af49f3da59f5265";
-      sha256 = "0ya4ha7m20bw048m1159ppqzlvda4x0vdprlbk5sdgmy74h3xcdq";
-    };
-  }
-  {
-    goPackagePath  = "github.com/google/btree";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/btree";
-      rev =  "4030bb1f1f0c35b30ca7009e9ebd06849dd45306";
-      sha256 = "0ba430m9fbnagacp57krgidsyrgp3ycw5r7dj71brgp5r52g82p6";
-    };
-  }
-  {
-    goPackagePath  = "github.com/google/gofuzz";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/gofuzz";
-      rev =  "24818f796faf91cd76ec7bddd72458fbced7a6c1";
-      sha256 = "0cq90m2lgalrdfrwwyycrrmn785rgnxa3l3vp9yxkvnv88bymmlm";
-    };
-  }
-  {
-    goPackagePath  = "github.com/googleapis/gnostic";
-    fetch = {
-      type = "git";
-      url = "https://github.com/googleapis/gnostic";
-      rev =  "0c5108395e2debce0d731cf0287ddf7242066aba";
-      sha256 = "0jf3cp5clli88gpjf24r6wxbkvngnc1kf59d4cgjczsn2wasvsfc";
-    };
-  }
-  {
-    goPackagePath  = "github.com/gregjones/httpcache";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gregjones/httpcache";
-      rev =  "787624de3eb7bd915c329cba748687a3b22666a6";
-      sha256 = "1zqlg9pkj7r6fqw7wv3ywvbz3bh0hvzifs2scgcraj812q5189w5";
-    };
-  }
-  {
-    goPackagePath  = "github.com/imdario/mergo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/imdario/mergo";
-      rev =  "6633656539c1639d9d78127b7d47c622b5d7b6dc";
-      sha256 = "1fffbq1l17i0gynmvcxypl7d9h4v81g5vlimiph5bfgf4sp4db7g";
-    };
-  }
-  {
-    goPackagePath  = "github.com/inconshreveable/mousetrap";
-    fetch = {
-      type = "git";
-      url = "https://github.com/inconshreveable/mousetrap";
-      rev =  "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75";
-      sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152";
-    };
-  }
-  {
-    goPackagePath  = "github.com/json-iterator/go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/json-iterator/go";
-      rev =  "f2b4162afba35581b6d4a50d3b8f34e33c144682";
-      sha256 = "0siqfghsm2lkdwinvg8x5gls3p76rq3cdm59c1r4x0b2mdfhnvcd";
-    };
-  }
-  {
-    goPackagePath  = "github.com/mattn/go-colorable";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-colorable";
-      rev =  "167de6bfdfba052fa6b2d3664c8f5272e23c9072";
-      sha256 = "1nwjmsppsjicr7anq8na6md7b1z84l9ppnlr045hhxjvbkqwalvx";
-    };
-  }
-  {
-    goPackagePath  = "github.com/mattn/go-isatty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-isatty";
-      rev =  "6ca4dbf54d38eea1a992b3c722a76a5d1c4cb25c";
-      sha256 = "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w";
-    };
-  }
-  {
-    goPackagePath  = "github.com/mitchellh/go-homedir";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mitchellh/go-homedir";
-      rev =  "b8bc1bf767474819792c23f32d8286a45736f1c6";
-      sha256 = "13ry4lylalkh4g2vny9cxwvryslzyzwp9r92z0b10idhdq3wad1q";
-    };
-  }
-  {
-    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/petar/GoLLRB";
-    fetch = {
-      type = "git";
-      url = "https://github.com/petar/GoLLRB";
-      rev =  "53be0d36a84c2a886ca057d34b6aa4468df9ccb4";
-      sha256 = "01xp3lcamqkvl91jg6ly202gdsgf64j39rkrcqxi6v4pbrcv7hz0";
-    };
-  }
-  {
-    goPackagePath  = "github.com/peterbourgon/diskv";
-    fetch = {
-      type = "git";
-      url = "https://github.com/peterbourgon/diskv";
-      rev =  "5f041e8faa004a95c88a202771f4cc3e991971e6";
-      sha256 = "1mxpa5aad08x30qcbffzk80g9540wvbca4blc1r2qyzl65b8929b";
-    };
-  }
-  {
-    goPackagePath  = "github.com/pkg/errors";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pkg/errors";
-      rev =  "816c9085562cd7ee03e7f8188a1cfd942858cded";
-      sha256 = "1ws5crb7c70wdicavl6qr4g03nn6m92zd6wwp9n2ygz5c8rmxh8k";
-    };
-  }
-  {
-    goPackagePath  = "github.com/spf13/cobra";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/cobra";
-      rev =  "a114f312e075f65bf30d6d9a1430113f857e543b";
-      sha256 = "10lmi5ni06yijxg02fcic5b7ycjkia12yma4a4lz8a56j30wykx1";
-    };
-  }
-  {
-    goPackagePath  = "github.com/spf13/pflag";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/pflag";
-      rev =  "3ebe029320b2676d667ae88da602a5f854788a8a";
-      sha256 = "11yxs0wqy70wj106fkz8r923yg4ncnc2mbw33v48zmlg4a1rasgp";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev =  "49796115aa4b964c318aad4f3084fdb41e9aa067";
-      sha256 = "0pcq2drkzsw585xi6rda8imd7a139prrmvgmv8nz0zgzk6g4dy59";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev =  "1c05540f6879653db88113bc4a2b70aec4bd491f";
-      sha256 = "0h8yqb0vcqgllgydrf9d3rzp83w8wlr8f0nm6r1rwf2qg30pq1pd";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/oauth2";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/oauth2";
-      rev =  "a6bd8cefa1811bd24b86f8902872e4e8225f74c4";
-      sha256 = "151in8qcf5y97ziavl6b03vgw4r87zqx5kg4vjhjszjbh60cfswp";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev =  "8e24a49d80f82323e1c4db1b5da3e0f31171a151";
-      sha256 = "0zsdnyb8dy98jw6f9yn6g5gdhaqwk39hqridr0mh4dhwvwvlj724";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev =  "f21a4dfb5e38f5895301dc265a8def02365cc3d0";
-      sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/time";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/time";
-      rev =  "f51c12702a4d776e4c1fa9b0fabab841babae631";
-      sha256 = "07wc6g2fvafkr6djsscm0jpbpl4135khhb6kpyx1953hi5d1jvyy";
-    };
-  }
-  {
-    goPackagePath  = "google.golang.org/appengine";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/appengine";
-      rev =  "ae0ab99deb4dc413a2b4bd6c8bdd0eb67f1e4d06";
-      sha256 = "1iabxnqgxvvn1239i6fvfl375vlbvhfrc03m1x2rvalmx4d6w9c7";
-    };
-  }
-  {
-    goPackagePath  = "gopkg.in/inf.v0";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-inf/inf";
-      rev =  "3887ee99ecf07df5b447e9b00d9c0b2adaa9f3e4";
-      sha256 = "0rf3vwyb8aqnac9x9d6ax7z5526c45a16yjm2pvkijr6qgqz8b82";
-    };
-  }
-  {
-    goPackagePath  = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-yaml/yaml";
-      rev =  "5420a8b6744d3b0345ab293f6fcba19c978f1183";
-      sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1";
-    };
-  }
-  {
-    goPackagePath  = "k8s.io/api";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kubernetes/api";
-      rev =  "8be2a0b24ed0dac9cfc1ac2d987ea16cfcdbecb6";
-      sha256 = "1dpmd59jlkxgrp5aaf8420344c6nq4kjlc1avgcp7690yrzc50v6";
-    };
-  }
-  {
-    goPackagePath  = "k8s.io/apimachinery";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kubernetes/apimachinery";
-      rev =  "594fc14b6f143d963ea2c8132e09e73fe244b6c9";
-      sha256 = "0xykhpmjgagyb0ac4y0ps4v1s9bd2b1sc0simh48c41a9fk3yvr7";
-    };
-  }
-  {
-    goPackagePath  = "k8s.io/client-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kubernetes/client-go";
-      rev =  "739dd8f9d4801eb23e2bc43423c0b4acaaded29a";
-      sha256 = "15psjmb14rz4kwysim9vfbbylx0khkw29b195rziv1vk202lh28k";
-    };
-  }
-]
\ No newline at end of file
diff --git a/pkgs/applications/networking/cluster/terraform-compliance/default.nix b/pkgs/applications/networking/cluster/terraform-compliance/default.nix
index 6205b3bf5fe..5f71f8d70cb 100644
--- a/pkgs/applications/networking/cluster/terraform-compliance/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-compliance/default.nix
@@ -54,7 +54,7 @@ buildPythonApplication rec {
 
   meta = with lib; {
     description = "BDD test framework for terraform";
-    homepage = https://github.com/eerkunt/terraform-compliance;
+    homepage = "https://github.com/eerkunt/terraform-compliance";
     license = licenses.mit;
     maintainers = with maintainers; [ kalbasit ];
   };
diff --git a/pkgs/applications/networking/cluster/terraform-providers/default.nix b/pkgs/applications/networking/cluster/terraform-providers/default.nix
index b7b6c8ad73b..3570191fd84 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/default.nix
@@ -65,6 +65,7 @@ let
     lxd = callPackage ./lxd {};
     shell = callPackage ./shell {};
     vpsadmin = callPackage ./vpsadmin {};
+    vercel = callPackage ./vercel {};
   };
 in
   automated-providers // special-providers
diff --git a/pkgs/applications/networking/cluster/terraform-providers/vercel/default.nix b/pkgs/applications/networking/cluster/terraform-providers/vercel/default.nix
new file mode 100644
index 00000000000..b4e17aabb45
--- /dev/null
+++ b/pkgs/applications/networking/cluster/terraform-providers/vercel/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "terraform-provider-vercel";
+  version = "2.1.0";
+
+  src = fetchFromGitHub {
+    owner = "ondrejsika";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "06lskp3mmax7g0lchq6jaxavycj7snkhip9madzqkr552qvz5cgw";
+  };
+
+  vendorSha256 = "0s0kf1v2217q9hfmc7r2yybcfk33k566dfvs2jiq63kyjnadhb0k";
+
+  postInstall = "mv $out/bin/terraform-provider-vercel{,_v${version}}";
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/ondrejsika/terraform-provider-vercel";
+    description = "Terraform provider for Vercel";
+    maintainers = with maintainers; [ mmahut ];
+  };
+}
diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix
index d18ec94ba8c..b9f15e21f32 100644
--- a/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/pkgs/applications/networking/cluster/terraform/default.nix
@@ -137,8 +137,8 @@ let
   ];
 in rec {
   terraform_0_12 = pluggable (generic {
-    version = "0.12.29";
-    sha256 = "18i7vkvnvfybwzhww8d84cyh93xfbwswcnwfrgvcny1qwm8rsaj8";
+    version = "0.12.30";
+    sha256 = "0mv2nsy2ygb1kgkw98xckihcdqxpzhdmks5p2gi2l7wb7lx51yz2";
     patches = [
         ./provider-path.patch
         (fetchpatch {
@@ -150,16 +150,16 @@ in rec {
   });
 
   terraform_0_13 = pluggable (generic {
-    version = "0.13.5";
-    sha256 = "1fnydzm5h65pdy2gkq403sllx05cvpldkdzdpcy124ywljb4x9d8";
+    version = "0.13.6";
+    sha256 = "04vas8i894ssfhncdvljdvmvj2qzfrcs20zcv71l1wmnnv9ibs6l";
     patches = [ ./provider-path.patch ];
     passthru = { inherit plugins; };
   });
 
   terraform_0_14 = pluggable (generic {
-    version = "0.14.2";
-    sha256 = "0j09bjdl1z836y3zdlgjcdah11wlnvsd5hmsagjsz9am04qlyfya";
-    vendorSha256 = "1iifjrnc79f4liyy4pgjbnarv2fx6vwlaqcv75crmyji40xv0w9s";
+    version = "0.14.4";
+    sha256 = "0kjbx1gshp1lvhnjfigfzza0sbl3m6d9qb3in7q5vc6kdkiplb66";
+    vendorSha256 = "10vb6gsw7mha99lvx3lbgd80vf0imcqyc0va0y64f6wzaw557n7v";
     patches = [ ./provider-path.patch ];
     passthru = { inherit plugins; };
   });
diff --git a/pkgs/applications/networking/cluster/tilt/default.nix b/pkgs/applications/networking/cluster/tilt/default.nix
index 40ba3530c8a..42de638ec42 100644
--- a/pkgs/applications/networking/cluster/tilt/default.nix
+++ b/pkgs/applications/networking/cluster/tilt/default.nix
@@ -5,13 +5,13 @@ buildGoModule rec {
   /* Do not use "dev" as a version. If you do, Tilt will consider itself
     running in development environment and try to serve assets from the
     source tree, which is not there once build completes.  */
-  version = "0.17.13";
+  version = "0.18.1";
 
   src = fetchFromGitHub {
     owner  = "tilt-dev";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "sha256-x3U5OF8T3z9kHcYe7SwKVEKNiEsi8AEvA1rlOma4y+8=";
+    sha256 = "1sdb2x06va0j9cxdwz95dklv2csq0s596wjsjqi4sq65y9bxjr7i";
   };
   vendorSha256 = null;
 
diff --git a/pkgs/applications/networking/cluster/waypoint/default.nix b/pkgs/applications/networking/cluster/waypoint/default.nix
new file mode 100644
index 00000000000..32a4aa373a4
--- /dev/null
+++ b/pkgs/applications/networking/cluster/waypoint/default.nix
@@ -0,0 +1,46 @@
+{ lib, buildGoModule, fetchFromGitHub, go-bindata }:
+
+buildGoModule rec {
+  pname = "waypoint";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "hashicorp";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-iGR2N1ZYA5G9K2cpfrwWRhSEfehRshx157ot1yq15AY=";
+  };
+
+  deleteVendor = true;
+  vendorSha256 = "sha256-ArebHOjP3zvpASVAoaPXpSbrG/jq+Jbx7+EaQ1uHSVY=";
+
+  subPackages = ["."];
+
+  nativeBuildInputs = [ go-bindata ];
+
+  buildPhase = ''
+    CGO_ENABLED=0 go build -ldflags '-s -w -extldflags "-static"' -o ./internal/assets/ceb/ceb ./cmd/waypoint-entrypoint
+    cd internal/assets
+    go-bindata -pkg assets -o prod.go -tags assetsembedded ./ceb
+    cd ../../
+    CGO_ENABLED=0 go build -ldflags '-s -w -X github.com/hashicorp/waypoint/version.GitDescribe=v${version}' -tags assetsembedded -o ./waypoint ./cmd/waypoint
+    CGO_ENABLED=0 go build -ldflags '-s -w' -tags assetsembedded -o ./waypoint-entrypoint ./cmd/waypoint-entrypoint
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mv waypoint{,-entrypoint} $out/bin/
+  '';
+
+  meta = with lib; {
+    description = "A tool to build, deploy, and release any application on any platform";
+    longDescription = ''
+      Waypoint allows developers to define their application build, deploy, and release lifecycle as code, reducing the
+      time to deliver deployments through a consistent and repeatable workflow.
+    '';
+    homepage = "https://waypointproject.io";
+    platforms = platforms.linux;
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ winpat jk ];
+  };
+}
diff --git a/pkgs/applications/networking/feedreaders/canto-daemon/default.nix b/pkgs/applications/networking/feedreaders/canto-daemon/default.nix
index b8279f22de4..2992f28c58a 100644
--- a/pkgs/applications/networking/feedreaders/canto-daemon/default.nix
+++ b/pkgs/applications/networking/feedreaders/canto-daemon/default.nix
@@ -1,19 +1,23 @@
 { stdenv, fetchFromGitHub, python3Packages, }:
 
 python3Packages.buildPythonApplication rec {
-  version = "0.9.7";
+  version = "0.9.8";
   pname = "canto-daemon";
 
   src = fetchFromGitHub {
     owner = "themoken";
     repo = "canto-next";
     rev = "v${version}";
-    sha256 = "1si53r8cd4avfc56r315zyrghkppnjd6n125z1agfv59i7hdmk3n";
+    sha256 = "0fmsdn28z09bvivdkqcla5bnalky7k744iir25z70bv4pz1jcvnk";
   };
 
   propagatedBuildInputs = with python3Packages; [ feedparser ];
 
-  meta = {
+  doCheck = false;
+
+  pythonImportsCheck = [ "canto_next" ];
+
+  meta = with stdenv.lib; {
     description = "Daemon for the canto Atom/RSS feed reader";
     longDescription = ''
       Canto is an Atom/RSS feed reader for the console that is meant to be
@@ -24,8 +28,8 @@ python3Packages.buildPythonApplication rec {
       and extensibility using the excellent Python programming language.
     '';
     homepage = "https://codezen.org/canto-ng/";
-    license = stdenv.lib.licenses.gpl2;
-    platforms = stdenv.lib.platforms.linux;
-    maintainers = [ stdenv.lib.maintainers.devhell ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers;[ devhell ];
   };
 }
diff --git a/pkgs/applications/networking/feedreaders/feeds/default.nix b/pkgs/applications/networking/feedreaders/feeds/default.nix
new file mode 100644
index 00000000000..243999553e6
--- /dev/null
+++ b/pkgs/applications/networking/feedreaders/feeds/default.nix
@@ -0,0 +1,88 @@
+{ lib
+, callPackage
+, stdenv
+, fetchFromGitLab
+
+, appstream
+, gobject-introspection
+, meson
+, ninja
+, pkg-config
+, wrapGAppsHook
+
+, glib
+, gtk3
+, libhandy
+, listparser ? callPackage ./listparser.nix { }
+, webkitgtk
+, python3
+}:
+python3.pkgs.buildPythonApplication rec {
+  pname = "feeds";
+  version = "0.16.1";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "World";
+    repo = "gfeeds";
+    rev = version;
+    sha256 = "10hq06nx7lcm3dqq34qkxc6k6383mvjs7pxii9y9995d9kk5a49k";
+  };
+
+  format = "other";
+
+  nativeBuildInputs = [
+    appstream
+    glib # for glib-compile-schemas
+    gobject-introspection
+    meson
+    ninja
+    pkg-config
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    glib
+    gtk3
+    libhandy
+    webkitgtk
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    beautifulsoup4
+    dateutil
+    feedparser
+    html5lib
+    listparser
+    lxml
+    pillow
+    pygments
+    pygobject3
+    pyreadability
+    pytz
+    requests
+  ];
+
+  # https://github.com/NixOS/nixpkgs/issues/56943
+  strictDeps = false;
+
+  dontWrapGApps = true;
+
+  preFixup = ''
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
+  passthru = {
+    inherit listparser;
+  };
+
+  meta = with lib; {
+    description = "An RSS/Atom feed reader for GNOME";
+    homepage = "https://gitlab.gnome.org/World/gfeeds";
+    license = licenses.gpl3Plus;
+    maintainers = [
+      maintainers.pbogdan
+    ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/networking/feedreaders/feeds/listparser.nix b/pkgs/applications/networking/feedreaders/feeds/listparser.nix
new file mode 100644
index 00000000000..c67df416c5c
--- /dev/null
+++ b/pkgs/applications/networking/feedreaders/feeds/listparser.nix
@@ -0,0 +1,31 @@
+{ lib
+, python3
+}:
+python3.pkgs.buildPythonPackage rec {
+  pname = "listparser";
+  version = "0.18";
+
+  src = python3.pkgs.fetchPypi {
+    inherit pname version;
+    sha256 = "0hdqs1mmayw1r8yla43hgb4d9y3zqs5483vgf8j9ygczkd2wrq2b";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    requests
+    six
+  ];
+
+  checkPhase = ''
+    ${python3.interpreter} lptest.py
+  '';
+
+  meta = with lib; {
+    description = "A parser for subscription lists";
+    homepage = "https://github.com/kurtmckee/listparser";
+    license = licenses.lgpl3Plus;
+    maintainers = [
+      maintainers.pbogdan
+    ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/networking/feedreaders/newsflash/default.nix b/pkgs/applications/networking/feedreaders/newsflash/default.nix
index 441a80fc071..e8a76b3d491 100644
--- a/pkgs/applications/networking/feedreaders/newsflash/default.nix
+++ b/pkgs/applications/networking/feedreaders/newsflash/default.nix
@@ -8,7 +8,7 @@
 , gdk-pixbuf
 , glib
 , gtk3
-, libhandy_0
+, libhandy
 , openssl
 , sqlite
 , webkitgtk
@@ -19,16 +19,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "newsflash";
-  version = "1.0.5";
+  version = "1.1.1";
 
   src = fetchFromGitLab {
     owner = "news-flash";
     repo = "news_flash_gtk";
     rev = version;
-    sha256 = "0kh1xqvxfz58gnrl8av0zkig9vcgmx9iaxw5p6gdm8a7gv18nvp3";
+    sha256 = "1z47h23g87dqmr9sfjl36fs5xjm2wj7z2bri9g0a4jcpwzl5awsd";
   };
 
-  cargoSha256 = "059sppidbxzjk8lmjq41d5qbymp9j9v2qr0jxd7xg9avr0klwc2s";
+  cargoSha256 = "0rnrdh9ganj63hf9j890yj9pahcgza95z7x020w72mbb4648hq26";
 
   patches = [
     ./no-post-install.patch
@@ -54,7 +54,7 @@ rustPlatform.buildRustPackage rec {
 
   buildInputs = [
     gtk3
-    libhandy_0
+    libhandy
     openssl
     sqlite
     webkitgtk
diff --git a/pkgs/applications/networking/flexget/default.nix b/pkgs/applications/networking/flexget/default.nix
index 8ef1a690441..f91d89e5ab1 100644
--- a/pkgs/applications/networking/flexget/default.nix
+++ b/pkgs/applications/networking/flexget/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "FlexGet";
-  version = "3.1.91";
+  version = "3.1.95";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "5d6668dd9721b60738ea44c616fcdee6210f7ef52b461eb13b77091caef4a832";
+    sha256 = "5dc80828713c0ece57c6e86a2bad41bbdf34ec41a0ea4da71adfb43784d85120";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/networking/icemon/default.nix b/pkgs/applications/networking/icemon/default.nix
new file mode 100644
index 00000000000..b757445eb08
--- /dev/null
+++ b/pkgs/applications/networking/icemon/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchFromGitHub, mkDerivation, qtbase, cmake, extra-cmake-modules, icecream, libcap_ng, lzo, zstd, libarchive, wrapQtAppsHook }:
+
+mkDerivation rec {
+  pname = "icemon";
+  version = "3.3";
+
+  src = fetchFromGitHub {
+    owner = "icecc";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "09jnipr67dhawbxfn69yh7mmjrkylgiqmd0gmc2limd3z15d7pgc";
+  };
+
+  nativeBuildInputs = [ cmake extra-cmake-modules wrapQtAppsHook ];
+  buildInputs = [ icecream qtbase libcap_ng lzo zstd libarchive ];
+
+  meta = with lib; {
+    description = "Icecream GUI Monitor";
+    inherit (src.meta) homepage;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ emantor ];
+    platforms = with platforms; linux ++ darwin;
+  };
+}
diff --git a/pkgs/applications/networking/ids/zeek/default.nix b/pkgs/applications/networking/ids/zeek/default.nix
index 713156a6621..336e3be074d 100644
--- a/pkgs/applications/networking/ids/zeek/default.nix
+++ b/pkgs/applications/networking/ids/zeek/default.nix
@@ -21,11 +21,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "zeek";
-  version = "3.2.2";
+  version = "3.2.3";
 
   src = fetchurl {
     url = "https://download.zeek.org/zeek-${version}.tar.gz";
-    sha256 = "00cxz7ad7p62s2glcagzcvwbnsivrv4bmz6rl1vij907jb24hmvc";
+    sha256 = "1in25clpbb2vdhms3iypj6r5sp8d1dxjcfn85c272sh7shnmqagr";
   };
 
   nativeBuildInputs = [ cmake flex bison file ];
@@ -56,6 +56,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "Powerful network analysis framework much different from a typical IDS";
     homepage = "https://www.zeek.org";
+    changelog = "https://github.com/zeek/zeek/blob/v${version}/CHANGES";
     license = licenses.bsd3;
     maintainers = with maintainers; [ pSub marsam tobim ];
     platforms = platforms.unix;
diff --git a/pkgs/applications/networking/instant-messengers/bluejeans/default.nix b/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
index 8b634834058..5e3f0bdb5d6 100644
--- a/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
+++ b/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
@@ -39,12 +39,12 @@
 
 stdenv.mkDerivation rec {
   pname = "bluejeans";
-  version = "2.17.0";
-  buildNumber = "11";
+  version = "2.19.0";
+  buildNumber = "61";
 
   src = fetchurl {
     url = "https://swdl.bluejeans.com/desktop-app/linux/${version}/BlueJeans_${version}.${buildNumber}.rpm";
-    sha256 = "1h5jbnp5bwy6bpma9a1ia08v7bpz09fm66jsip470k1r7vjjwa68";
+    sha256 = "163p67dqry256d454qzk4k4b692kz8s9fcvaxd6gi7zvnsd48ikr";
   };
 
   nativeBuildInputs = [ rpmextract makeWrapper ];
diff --git a/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json b/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
index 2bc223d5c61..7a735e59dcb 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
+++ b/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.15",
+  "version": "1.7.16",
   "description": "A feature-rich client for Matrix.org",
   "author": "Element",
   "repository": {
diff --git a/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix b/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix
index 21374014c88..08c3d2554c9 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix
+++ b/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix
@@ -3042,11 +3042,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";
       };
     }
     {
diff --git a/pkgs/applications/networking/instant-messengers/element/element-desktop.nix b/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
index 6f6b335430b..b6dfac397a1 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
+++ b/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
@@ -8,12 +8,12 @@
 
 let
   executableName = "element-desktop";
-  version = "1.7.15";
+  version = "1.7.16";
   src = fetchFromGitHub {
     owner = "vector-im";
     repo = "element-desktop";
     rev = "v${version}";
-    sha256 = "sha256-7kWf8MXSB4/sX1bjMsfkzgzElS/AYu5VHAKGcqgvH54=";
+    sha256 = "sha256-mdHsw1Vi+2hrAF7biX3pJqfRaZU2lpw9zUZdcCm717g=";
   };
   electron = electron_9;
 
diff --git a/pkgs/applications/networking/instant-messengers/element/element-web.nix b/pkgs/applications/networking/instant-messengers/element/element-web.nix
index 44233d46475..527af7a4de0 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-web.nix
+++ b/pkgs/applications/networking/instant-messengers/element/element-web.nix
@@ -12,11 +12,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "element-web";
-  version = "1.7.15";
+  version = "1.7.16";
 
   src = fetchurl {
     url = "https://github.com/vector-im/element-web/releases/download/v${version}/element-v${version}.tar.gz";
-    sha256 = "sha256-ZSi0OLA5dyPXn1NlZkkhCmWhrSryfyj/O6Ux1lO12ns=";
+    sha256 = "sha256-/KLTD7IvIp1f1dSUEMMCoknQzZarcP2wDM211h+OJMM=";
   };
 
   installPhase = ''
diff --git a/pkgs/applications/networking/instant-messengers/hipchat/default.nix b/pkgs/applications/networking/instant-messengers/hipchat/default.nix
index 7213332a549..63cbb69b187 100644
--- a/pkgs/applications/networking/instant-messengers/hipchat/default.nix
+++ b/pkgs/applications/networking/instant-messengers/hipchat/default.nix
@@ -43,7 +43,7 @@ in stdenv.mkDerivation {
   inherit version;
 
   src = fetchurl {
-    url = "https://atlassian.artifactoryonline.com/atlassian/hipchat-apt-client/pool/HipChat4-${version}-Linux.deb";
+    url = "https://atlassian.artifactoryonline.com/artifactory/hipchat-apt-client/pool/HipChat4-${version}-Linux.deb";
     sha256 = "03pz8wskafn848yvciq29kwdvqcgjrk6sjnm8nk9acl89xf0sn96";
   };
 
diff --git a/pkgs/applications/networking/instant-messengers/linphone/default.nix b/pkgs/applications/networking/instant-messengers/linphone/default.nix
index c055718f47f..1344440eafc 100644
--- a/pkgs/applications/networking/instant-messengers/linphone/default.nix
+++ b/pkgs/applications/networking/instant-messengers/linphone/default.nix
@@ -52,7 +52,7 @@
 
 mkDerivation rec {
   pname = "linphone-desktop";
-  version = "4.2.4";
+  version = "4.2.5";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -175,13 +175,12 @@ mkDerivation rec {
     ln -s ${liblinphone}/share/belr/grammars/* $out/share/belr/grammars/
     mkdir -p $out/share/linphone
     ln -s ${liblinphone}/share/linphone/* $out/share/linphone/
-    mkdir $out/lib # prevent warning
   '';
 
   meta = with lib; {
     homepage = "https://www.linphone.org/";
     description = "Open source SIP phone for voice/video calls and instant messaging";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ jluttine ];
   };
diff --git a/pkgs/applications/networking/instant-messengers/mirage/default.nix b/pkgs/applications/networking/instant-messengers/mirage/default.nix
index 0aa2dbf889b..decdb18aa06 100644
--- a/pkgs/applications/networking/instant-messengers/mirage/default.nix
+++ b/pkgs/applications/networking/instant-messengers/mirage/default.nix
@@ -1,7 +1,7 @@
-{ lib, mkDerivation, fetchFromGitHub
+{ stdenv, mkDerivation, fetchFromGitHub
 , qmake, pkgconfig, olm, wrapQtAppsHook
 , qtbase, qtquickcontrols2, qtkeychain, qtmultimedia, qttools, qtgraphicaleffects
-, python3Packages, pyotherside
+, python3Packages, pyotherside, libXScrnSaver
 }:
 
 let
@@ -13,13 +13,13 @@ let
 in
 mkDerivation rec {
   pname = "mirage";
-  version = "0.5.2";
+  version = "0.6.4";
 
   src = fetchFromGitHub {
     owner = "mirukana";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0i891fafdncdz1xg6nji80jb86agsrbdvai9nwf1yy126q7piryv";
+    sha256 = "15x0x2rf4fzsd0zr84fq3j3ddzkgc5il8s54jpxk8wl4ah03g4nv";
     fetchSubmodules = true;
   };
 
@@ -30,13 +30,14 @@ mkDerivation rec {
     qtquickcontrols2
     qtkeychain qtgraphicaleffects
     olm pyotherside
+    libXScrnSaver
   ];
 
   propagatedBuildInputs = pypkgs;
 
   pythonPath = pypkgs;
 
-  qmakeFlags = [ "PREFIX=${placeholder "out"}" ];
+  qmakeFlags = [ "PREFIX=${placeholder "out"}" "CONFIG+=qtquickcompiler" ];
 
   dontWrapQtApps = true;
   postInstall = ''
@@ -46,11 +47,12 @@ mkDerivation rec {
       "''${qtWrapperArgs[@]}"
     '';
 
-  meta = with lib; {
+  meta = with stdenv.lib; {
     description = "A fancy, customizable, keyboard-operable Qt/QML+Python Matrix chat client for encrypted and decentralized communication";
     homepage = "https://github.com/mirukana/mirage";
     license = licenses.lgpl3;
     maintainers = with maintainers; [ colemickens ];
+    broken = stdenv.isDarwin;
     inherit (qtbase.meta) platforms;
     inherit version;
   };
diff --git a/pkgs/applications/networking/instant-messengers/neochat/default.nix b/pkgs/applications/networking/instant-messengers/neochat/default.nix
new file mode 100644
index 00000000000..2a489ee3e71
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/neochat/default.nix
@@ -0,0 +1,67 @@
+{ mkDerivation
+, stdenv
+, fetchFromGitLab
+, pkg-config
+, cmake
+, qtbase
+, qttools
+, qtquickcontrols2
+, qtmultimedia
+, qtgraphicaleffects
+, qtkeychain
+, libpulseaudio
+, olm
+, libsecret
+, cmark
+, extra-cmake-modules
+, kirigami2
+, kitemmodels
+, ki18n
+, knotifications
+, kdbusaddons
+, kconfig
+, libquotient
+, kquickimageedit
+}:
+
+mkDerivation rec {
+  pname = "neochat";
+  version = "1.0";
+
+  src = fetchFromGitLab {
+    domain = "invent.kde.org";
+    owner = "network";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1r9n83kvc5v215lzmzh6hyc5q9i3w6znbf508qk0mdwdzxz4zry9";
+  };
+
+  nativeBuildInputs = [ cmake extra-cmake-modules pkg-config ];
+
+  buildInputs = [
+    qtkeychain
+    qtquickcontrols2
+    qtmultimedia
+    qtgraphicaleffects
+    olm
+    libsecret
+    cmark
+    kirigami2
+    kitemmodels
+    ki18n
+    knotifications
+    kdbusaddons
+    kconfig
+    libquotient
+    kquickimageedit
+    libpulseaudio
+  ];
+
+  meta = with stdenv.lib; {
+    description = "A client for matrix, the decentralized communication protocol.";
+    homepage = "https://apps.kde.org/en/neochat";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ mjlbach peterhoeg ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/pkgs/applications/networking/instant-messengers/quaternion/default.nix b/pkgs/applications/networking/instant-messengers/quaternion/default.nix
index c031615a90b..f918cbdc2b8 100644
--- a/pkgs/applications/networking/instant-messengers/quaternion/default.nix
+++ b/pkgs/applications/networking/instant-messengers/quaternion/default.nix
@@ -5,13 +5,13 @@
 
 mkDerivation rec {
   pname = "quaternion";
-  version = "0.0.9.4e";
+  version = "0.0.9.5-beta2";
 
   src = fetchFromGitHub {
     owner = "QMatrixClient";
     repo = "Quaternion";
     rev = version;
-    sha256 = "0hqhg7l6wpkdbzrdjvrbqymmahziri07ba0hvbii7dd2p0h248fv";
+    sha256 = "sha256-K4SMB5kL0YO2OIeNUu4hWqU4E4n4vZDRRsJVYmCZqvM=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/rambox/pro.nix b/pkgs/applications/networking/instant-messengers/rambox/pro.nix
index d39091d4618..3cdf1339e3b 100644
--- a/pkgs/applications/networking/instant-messengers/rambox/pro.nix
+++ b/pkgs/applications/networking/instant-messengers/rambox/pro.nix
@@ -1,11 +1,11 @@
-{ autoPatchelfHook, electron_4, fetchurl, makeDesktopItem, makeWrapper, nodePackages, nss, stdenv, xdg_utils, xorg }:
+{ autoPatchelfHook, electron_7, fetchurl, makeDesktopItem, makeWrapper, nodePackages, nss, stdenv, xdg_utils, xorg }:
 
 let
-  electron = electron_4;
+  electron = electron_7;
 in
 stdenv.mkDerivation rec {
   pname = "rambox-pro";
-  version = "1.3.2";
+  version = "1.4.1";
 
   dontBuild = true;
   dontStrip = true;
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://github.com/ramboxapp/download/releases/download/v${version}/RamboxPro-${version}-linux-x64.tar.gz";
-    sha256 = "010v5i8lxfz77cb5cn9va5cbnfa28nzdymk5k2fcpi65jldw1pxx";
+    sha256 = "1bd4fba3ac8c20fa557ebfb110f6503d36e6c3dba0401d1073529dcae2c2ec1e";
   };
 
   installPhase = ''
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index 05d94b2ef71..44df5f6be68 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -25,7 +25,7 @@ let
       else "");
 in stdenv.mkDerivation rec {
   pname = "signal-desktop";
-  version = "1.39.2"; # Please backport all updates to the stable channel.
+  version = "1.39.4"; # 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 +35,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 = "15lv8jpnn2cx7hmb7pn32cvq6nqvzjflf77bbnvxva5hf9zjkma9";
+    sha256 = "11rjz0vawwyny4rpdqsqyfh8pi177xykm69xxcj6kgcncxaxg0vb";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
index 47a79c7309d..d4e43ed3a92 100644
--- a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
+++ b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
@@ -108,6 +108,10 @@ in stdenv.mkDerivation {
     # Fix the desktop link
     substituteInPlace $out/share/applications/skypeforlinux.desktop \
       --replace /usr/bin/ $out/bin/
+    substituteInPlace $out/share/applications/skypeforlinux-share.desktop \
+      --replace /usr/bin/ $out/bin/
+    substituteInPlace $out/share/kservices5/ServiceMenus/skypeforlinux.desktop \
+      --replace /usr/bin/ $out/bin/
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/networking/instant-messengers/spectral/default.nix b/pkgs/applications/networking/instant-messengers/spectral/default.nix
deleted file mode 100644
index b0819ade4f3..00000000000
--- a/pkgs/applications/networking/instant-messengers/spectral/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ stdenv, fetchgit
-, pkgconfig, wrapQtAppsHook
-, cmake
-, qtbase, qttools, qtquickcontrols2, qtmultimedia, qtkeychain
-, libpulseaudio
-# Not mentioned but seems needed
-, qtgraphicaleffects
-, qtdeclarative
-, qtmacextras
-, olm, libsecret, cmark
-}:
-
-let qtkeychain-qt5 = qtkeychain.override {
-  inherit qtbase qttools;
-  withQt5 = true;
-};
-in stdenv.mkDerivation rec {
-  pname = "spectral";
-  version = "817";
-
-  src = fetchgit {
-    url = "https://gitlab.com/spectral-im/spectral.git";
-    rev = version;
-    sha256 = "0lg0bkz621cmqb67kz1zmn4xwbspcqalz68byll5iszqz9y4gnp1";
-    fetchSubmodules = true;
-  };
-
-  nativeBuildInputs = [ pkgconfig cmake wrapQtAppsHook ];
-  buildInputs = [ qtbase qtkeychain-qt5 qtquickcontrols2 qtmultimedia qtgraphicaleffects qtdeclarative olm libsecret cmark ]
-    ++ stdenv.lib.optional stdenv.hostPlatform.isLinux libpulseaudio
-    ++ stdenv.lib.optional stdenv.hostPlatform.isDarwin qtmacextras;
-
-  meta = with stdenv.lib; {
-    description = "A glossy cross-platform Matrix client";
-    homepage = "https://spectral.im";
-    license = licenses.gpl3;
-    platforms = with platforms; linux ++ darwin;
-    maintainers = with maintainers; [ dtzWill ];
-  };
-}
diff --git a/pkgs/applications/networking/instant-messengers/teams/default.nix b/pkgs/applications/networking/instant-messengers/teams/default.nix
index bf864eb4147..1f4e11527cc 100644
--- a/pkgs/applications/networking/instant-messengers/teams/default.nix
+++ b/pkgs/applications/networking/instant-messengers/teams/default.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "teams";
-  version = "1.3.00.25560";
+  version = "1.3.00.30857";
 
   src = fetchurl {
     url = "https://packages.microsoft.com/repos/ms-teams/pool/main/t/teams/teams_${version}_amd64.deb";
-    sha256 = "0kpcd9q6v2qh0dzddykisdbi3djbxj2rl70wchlzrb6bx95hkzmc";
+    sha256 = "06r48h1fr2si2g5ng8hsnbcmr70iapnafj21v5bzrzzrigzb2n2h";
   };
 
   nativeBuildInputs = [ dpkg autoPatchelfHook wrapGAppsHook ];
diff --git a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
index 6518f73a229..d4cc5293a9b 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
@@ -22,12 +22,12 @@ let
 
 in mkDerivation rec {
   pname = "telegram-desktop";
-  version = "2.4.7";
+  version = "2.5.1";
 
   # Telegram-Desktop with submodules
   src = fetchurl {
     url = "https://github.com/telegramdesktop/tdesktop/releases/download/v${version}/tdesktop-${version}-full.tar.gz";
-    sha256 = "1j2v29952l0am357pqvvgzm2zghmwhlr833kgp85hssxpr9xy4vv";
+    sha256 = "1qpap599h2c4hlmr00k82r6138ym4zqrbfpvm97gm97adn3mxk7i";
   };
 
   postPatch = ''
@@ -80,9 +80,6 @@ in mkDerivation rec {
   # TODO: Package mapbox-variant
 
   postFixup = ''
-    # Nuke refs to `tg_owt` which is introduced by `__FILE__` in headers.
-    remove-references-to -t ${tg_owt} $out/bin/telegram-desktop
-
     # This is necessary to run Telegram in a pure environment.
     # We also use gappsWrapperArgs from wrapGAppsHook.
     wrapProgram $out/bin/telegram-desktop \
diff --git a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
index 48499bf9f2c..2853418da0e 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
@@ -1,10 +1,10 @@
-{ lib, stdenv, fetchFromGitHub, cmake, ninja, yasm
-, pkg-config, libjpeg, openssl, libopus, ffmpeg, alsaLib, libpulseaudio
+{ lib, stdenv, fetchFromGitHub, pkg-config, cmake, ninja, yasm
+, libjpeg, openssl, libopus, ffmpeg, alsaLib, libpulseaudio, protobuf
 }:
 
 let
-  rev = "e8fcae73947445db3d418fb7c20b964b59e14706";
-  sha256 = "0s2dd41r71aixhvympiqfks1liv7x78y60n0i87vmyxyfx449b5h";
+  rev = "6eaebec41b34a0a0d98f02892d0cfe6bbcbc0a39";
+  sha256 = "0dbc36j09jmxvznal55hi3qrfyvj4y0ila6347nav9skcmk8fm64";
 
 in stdenv.mkDerivation {
   pname = "tg_owt";
@@ -14,11 +14,16 @@ in stdenv.mkDerivation {
     owner = "desktop-app";
     repo = "tg_owt";
     inherit rev sha256;
+    fetchSubmodules = true;
   };
 
+  outputs = [ "out" "dev" ];
+
   nativeBuildInputs = [ pkg-config cmake ninja yasm ];
 
-  buildInputs = [ libjpeg openssl libopus ffmpeg alsaLib libpulseaudio ];
+  buildInputs = [
+    libjpeg openssl libopus ffmpeg alsaLib libpulseaudio protobuf
+  ];
 
   meta.license = lib.licenses.bsd3;
 }
diff --git a/pkgs/applications/networking/iptraf-ng/default.nix b/pkgs/applications/networking/iptraf-ng/default.nix
index 1fc81be240b..6d61acb4982 100644
--- a/pkgs/applications/networking/iptraf-ng/default.nix
+++ b/pkgs/applications/networking/iptraf-ng/default.nix
@@ -1,24 +1,27 @@
-{ stdenv, fetchurl, ncurses }:
+{ stdenv, fetchFromGitHub, ncurses }:
 
 stdenv.mkDerivation rec {
-  version = "1.1.4";
+  version = "1.2.1";
   pname = "iptraf-ng";
 
-  src = fetchurl {
-    url = "https://fedorahosted.org/releases/i/p/iptraf-ng/${pname}-${version}.tar.gz";
-    sha256 = "02gb8z9h2s6s1ybyikywz7jgb1mafdx88hijfasv3khcgkq0q53r";
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1f91w1bjaayr6ld95z2q55ny983bb0m05k1jrw2bcddvcihaiqb1";
   };
 
   buildInputs = [ ncurses ];
 
-  configurePhase = ''
-    ./configure --prefix=$out/usr --sysconfdir=$out/etc \
-                --localstatedir=$out/var --sbindir=$out/bin
-  '';
+  makeFlags = [
+    "DESTDIR=$(out)"
+    "prefix=/usr"
+    "sbindir=/bin"
+  ];
 
   hardeningDisable = [ "format" ];
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A console-based network monitoring utility (fork of iptraf)";
     longDescription = ''
       IPTraf-ng is a console-based network monitoring utility. IPTraf-ng
@@ -38,9 +41,9 @@ stdenv.mkDerivation rec {
       of the Linux kernel, so it can be used on a wide variety of supported
       network cards.
     '';
-    homepage = "https://fedorahosted.org/iptraf-ng/";
-    license = stdenv.lib.licenses.gpl2;
-    platforms = stdenv.lib.platforms.linux;
-    maintainers = [ stdenv.lib.maintainers.devhell ];
+    homepage = "https://github.com/iptraf-ng/iptraf-ng";
+    license = licenses.gpl2Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ devhell ];
   };
 }
diff --git a/pkgs/applications/networking/mailreaders/aerc/default.nix b/pkgs/applications/networking/mailreaders/aerc/default.nix
index 45d41839a1c..781e6c8369d 100644
--- a/pkgs/applications/networking/mailreaders/aerc/default.nix
+++ b/pkgs/applications/networking/mailreaders/aerc/default.nix
@@ -6,15 +6,15 @@
 
 buildGoModule rec {
   pname = "aerc";
-  version = "0.4.0";
+  version = "0.5.2";
 
   src = fetchurl {
     url = "https://git.sr.ht/~sircmpwn/aerc/archive/${version}.tar.gz";
-    sha256 = "05qy14k9wmyhsg1hiv4njfx1zn1m9lz4d1p50kc36v7pq0n4csfk";
+    sha256 = "h7kiRA5TuZ8mDSMymWU33stFLIOMd06TQLYzKW+faO4=";
   };
 
   runVend = true;
-  vendorSha256 = "13zs5113ip85yl6sw9hzclxwlnrhy18d39vh9cwbq97dgnh9rz89";
+  vendorSha256 = "9PXdUH0gu8PGaKlRJCUF15W1/LxA+sv3Pwl2UnjYxWY=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch b/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch
index ed670d61a7b..91978753ae9 100644
--- a/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch
+++ b/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch
@@ -29,7 +29,7 @@ diff --git a/config/config.go b/config/config.go
 index 32d07fc..8ffd3e8 100644
 --- a/config/config.go
 +++ b/config/config.go
-@@ -355,6 +355,11 @@ func LoadConfigFromFile(root *string, sharedir string) (*AercConfig, error) {
+@@ -472,6 +472,11 @@ func LoadConfigFromFile(root *string, sharedir string) (*AercConfig, error) {
  			return nil, err
  		}
  	}
@@ -41,10 +41,11 @@ index 32d07fc..8ffd3e8 100644
  	file.NameMapper = mapName
  	config := &AercConfig{
  		Bindings: BindingConfig{
-@@ -423,6 +428,9 @@ func LoadConfigFromFile(root *string, sharedir string) (*AercConfig, error) {
+@@ -546,6 +428,9 @@ func LoadConfigFromFile(root *string, sharedir string) (*AercConfig, error) {
  	if err = config.LoadConfig(file); err != nil {
  		return nil, err
  	}
+
 +	for i, filter := range config.Filters {
 +		config.Filters[i].Command = strings.ReplaceAll(filter.Command, "@SHAREDIR@", sharedir)
 +	}
diff --git a/pkgs/applications/networking/mailreaders/imapfilter.nix b/pkgs/applications/networking/mailreaders/imapfilter.nix
index b677d82dce4..8423beec468 100644
--- a/pkgs/applications/networking/mailreaders/imapfilter.nix
+++ b/pkgs/applications/networking/mailreaders/imapfilter.nix
@@ -1,27 +1,27 @@
-{ stdenv, fetchFromGitHub, openssl, lua, pcre }:
+{ stdenv, fetchFromGitHub, openssl, lua, pcre2 }:
 
 stdenv.mkDerivation rec {
   pname = "imapfilter";
-  version = "2.6.16";
+  version = "2.7.5";
 
   src = fetchFromGitHub {
     owner = "lefcha";
     repo = "imapfilter";
     rev = "v${version}";
-    sha256 = "0f65sg6hhv6778fxwsz4hvarbm97dsb8jj0mg7a9qs273r35pqck";
+    sha256 = "nbVwbPkNbJz4GHhvOp+QVgiBqKA/HR34p4x3NXJB7ig=";
   };
   makeFlags = [
     "SSLCAFILE=/etc/ssl/certs/ca-bundle.crt"
     "PREFIX=$(out)"
   ];
 
-  propagatedBuildInputs = [ openssl pcre lua ];
+  buildInputs = [ openssl pcre2 lua ];
 
   meta = {
     homepage = "https://github.com/lefcha/imapfilter";
     description = "Mail filtering utility";
     license = stdenv.lib.licenses.mit;
     platforms = stdenv.lib.platforms.unix;
-    maintainers = with stdenv.lib.maintainers; [ ];
+    maintainers = with stdenv.lib.maintainers; [ doronbehar ];
   };
 }
diff --git a/pkgs/applications/networking/mailreaders/mailnag/default.nix b/pkgs/applications/networking/mailreaders/mailnag/default.nix
index d74797dbc50..1fa9c66c8ff 100644
--- a/pkgs/applications/networking/mailreaders/mailnag/default.nix
+++ b/pkgs/applications/networking/mailreaders/mailnag/default.nix
@@ -24,13 +24,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "mailnag";
-  version = "2.0.0";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "pulb";
     repo = "mailnag";
     rev = "v${version}";
-    sha256 = "0q97v9i96br22z3h6r2mz79i68ib8m8x42yxky78szfrf8j60i30";
+    sha256 = "08jqs3v01a9gkjca9xgjidhdgvnlm4541z9bwh9m3k5p2g76sz96";
   };
 
   buildInputs = [
@@ -49,7 +49,7 @@ python3Packages.buildPythonApplication rec {
   nativeBuildInputs = [
     gettext
     wrapGAppsHook
-    # To later add plugins to 
+    # To later add plugins to
     xorg.lndir
   ];
 
diff --git a/pkgs/applications/networking/mailreaders/mailspring/default.nix b/pkgs/applications/networking/mailreaders/mailspring/default.nix
index 6c6bf6f93db..eb946e267b2 100644
--- a/pkgs/applications/networking/mailreaders/mailspring/default.nix
+++ b/pkgs/applications/networking/mailreaders/mailspring/default.nix
@@ -34,7 +34,9 @@ stdenv.mkDerivation rec {
     alsaLib
     db
     glib
-    gtk3
+    # We don't know why with trackerSupport the executable fail to launch, See:
+    # https://github.com/NixOS/nixpkgs/issues/106732
+    (gtk3.override {trackerSupport = false; })
     libkrb5
     libsecret
     nss
diff --git a/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix b/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix
index c7554fc84b0..ce13a4de8d0 100644
--- a/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix
+++ b/pkgs/applications/networking/mailreaders/mlarchive2maildir/default.nix
@@ -2,11 +2,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "mlarchive2maildir";
-  version = "0.0.8";
+  version = "0.0.9";
 
   src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "1din3yay2sas85178v0xr0hbm2396y4dalkcqql1ny9vdm94h6sp";
+    sha256 = "02zjwa7zbcbqj76l0qmg7bbf3fqli60pl2apby3j4zwzcrrryczs";
   };
 
   nativeBuildInputs = with python3.pkgs; [ setuptools_scm ];
diff --git a/pkgs/applications/networking/mailreaders/mmh/default.nix b/pkgs/applications/networking/mailreaders/mmh/default.nix
index 7d6254ed13c..6bd977bd319 100644
--- a/pkgs/applications/networking/mailreaders/mmh/default.nix
+++ b/pkgs/applications/networking/mailreaders/mmh/default.nix
@@ -10,6 +10,11 @@ in stdenv.mkDerivation rec {
     sha256 = "1q97p4g3f1q2m567i2dbx7mm7ixw3g91ww2rymwj42cxk9iyizhv";
   };
 
+  postPatch = ''
+    substituteInPlace sbr/Makefile.in \
+      --replace "ar " "${stdenv.cc.targetPrefix}ar "
+ '';
+
   buildInputs = [ ncurses ];
   nativeBuildInputs = [ autoreconfHook flex ];
 
diff --git a/pkgs/applications/networking/mailreaders/mutt/default.nix b/pkgs/applications/networking/mailreaders/mutt/default.nix
index 0596cd350df..f7b1b990acb 100644
--- a/pkgs/applications/networking/mailreaders/mutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/mutt/default.nix
@@ -27,11 +27,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "mutt";
-  version = "2.0.3";
+  version = "2.0.4";
 
   src = fetchurl {
     url = "http://ftp.mutt.org/pub/mutt/${pname}-${version}.tar.gz";
-    sha256 = "1vf1ab3mnx7p4s4n4pssajj211s3zr4730bwgsjx9gxcnyppqclw";
+    sha256 = "1m4ig69qw4g3lhm4351snmy5i0ch65fqc9vqqdybr6jy21w7w225";
   };
 
   patches = optional smimeSupport (fetchpatch {
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
index 8cdd27653e2..b1905359cd3 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
@@ -1,22 +1,31 @@
-{ stdenv, fetchurl, config, makeWrapper
+{ stdenv, lib, fetchurl, config, makeWrapper
 , alsaLib
 , at-spi2-atk
 , atk
 , cairo
+, coreutils
 , cups
 , curl
-, dbus-glib
 , dbus
+, dbus-glib
 , fontconfig
 , freetype
 , gdk-pixbuf
 , glib
 , glibc
+, gnome3
+, gnugrep
+, gnupg
+, gnused
+, gpgme
 , gtk2
 , gtk3
 , kerberos
+, libcanberra
+, libGL
+, libGLU
 , libX11
-, libXScrnSaver
+, libxcb
 , libXcomposite
 , libXcursor
 , libXdamage
@@ -25,21 +34,14 @@
 , libXi
 , libXinerama
 , libXrender
+, libXScrnSaver
 , libXt
-, libxcb
-, libcanberra
-, gnome3
-, libGLU, libGL
 , nspr
 , nss
 , pango
+, runtimeShell
 , writeScript
 , xidel
-, coreutils
-, gnused
-, gnugrep
-, gnupg
-, runtimeShell
 }:
 
 # imports `version` and `sources`
@@ -58,9 +60,9 @@ let
 
   systemLocale = config.i18n.defaultLocale or "en-US";
 
-  defaultSource = stdenv.lib.findFirst (sourceMatches "en-US") {} sources;
+  defaultSource = lib.findFirst (sourceMatches "en-US") {} sources;
 
-  source = stdenv.lib.findFirst (sourceMatches systemLocale) defaultSource sources;
+  source = lib.findFirst (sourceMatches systemLocale) defaultSource sources;
 
   name = "thunderbird-bin-${version}";
 in
@@ -75,7 +77,7 @@ stdenv.mkDerivation {
 
   phases = "unpackPhase installPhase";
 
-  libPath = stdenv.lib.makeLibraryPath
+  libPath = lib.makeLibraryPath
     [ stdenv.cc.cc
       alsaLib
       at-spi2-atk
@@ -110,7 +112,7 @@ stdenv.mkDerivation {
       nspr
       nss
       pango
-    ] + ":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" [
+    ] + ":" + lib.makeSearchPathOutput "lib" "lib64" [
       stdenv.cc.cc
     ];
 
@@ -118,6 +120,9 @@ stdenv.mkDerivation {
 
   nativeBuildInputs = [ makeWrapper ];
 
+  # See "Note on GPG support" in `../thunderbird/default.nix` for explanations
+  # on adding `gnupg` and `gpgme` into PATH/LD_LIBRARY_PATH.
+
   installPhase =
     ''
       mkdir -p "$prefix/usr/lib/thunderbird-bin-${version}"
@@ -158,7 +163,9 @@ stdenv.mkDerivation {
         --suffix XDG_DATA_DIRS : "$XDG_ICON_DIRS" \
         --set SNAP_NAME "thunderbird" \
         --set MOZ_LEGACY_PROFILES 1 \
-        --set MOZ_ALLOW_DOWNGRADE 1
+        --set MOZ_ALLOW_DOWNGRADE 1 \
+        --prefix PATH : "${lib.getBin gnupg}/bin" \
+        --prefix LD_LIBRARY_PATH : "${lib.getLib gpgme}/lib"
     '';
 
   passthru.updateScript = import ./../../browsers/firefox-bin/update.nix {
@@ -168,14 +175,14 @@ stdenv.mkDerivation {
     basePath = "pkgs/applications/networking/mailreaders/thunderbird-bin";
     baseUrl = "http://archive.mozilla.org/pub/thunderbird/releases/";
   };
-  meta = with stdenv.lib; {
+  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 stdenv.lib.maintainers; [ ];
+    maintainers = with lib.maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
index 4a1472fde71..b7858ba14e9 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
@@ -1,665 +1,665 @@
 {
-  version = "78.5.1";
+  version = "78.6.0";
   sources = [
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/af/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/af/thunderbird-78.6.0.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "87cb38398aaa5af68e562a5fc6d20d3d3477d871979bd4a635c94c440e66a482";
+      sha256 = "7f8fd3a1f0e869ee03a4f120c88b606fbe4ae35d9865394fccd291caa9ae7069";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/ar/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/ar/thunderbird-78.6.0.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "935efae7caa116e16c341d64634954d77cafbc5e28626b46f5385b8416060f51";
+      sha256 = "73e7beba4e5a2b9cd92ded3ee8e662be9a80d65d59790ed1d5401b5a61c8d147";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/ast/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/ast/thunderbird-78.6.0.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "a5868dc7987529790910e638b64b15295a2d57e449fa515f4e17a4ab88a830e6";
+      sha256 = "890cda9e6a9582d43d61c9b4deb2241f46d34dbac5516d9a808dfbb472a22eec";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/be/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/be/thunderbird-78.6.0.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "af52b29567ce26159890f70fcdccd4cafd49c7fc75c620bb606727fd27b7049a";
+      sha256 = "b951394def900c975b2796e47d948c03c59f0fde445f22d1b9a0d89ae8b7dd83";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/bg/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/bg/thunderbird-78.6.0.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "91856a4745a8bdefac7c2b0193766a4f0009378dfe941dbbe1afcae2ffae2337";
+      sha256 = "2440a8ea3a49d4fe7a84b0c6e67a98889bf98c5f828699bd980705c100a0e585";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/br/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/br/thunderbird-78.6.0.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "d5ba5fe368c99377a264d8574607335fc4317dad447bb38fdc6a5b53d2e95b49";
+      sha256 = "74b48030e64ff509379dd92d08734804006a8cc6176c69e387e03596138c48b0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/ca/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/ca/thunderbird-78.6.0.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "396a1d7b668c7f47b56d7cb41e6e914f03e9e517a14b4698abedb501037ef2c1";
+      sha256 = "4b951a13352db2cc90aadf94c1e57bc5b40660d82dab855aa80751bbce9aa3b8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/cak/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/cak/thunderbird-78.6.0.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "914b76ad8268db608be0595039a68189146ded384c23407ccbcd78a5e74e19ae";
+      sha256 = "bfb2ebc8a6b376603b9e310ad664a099725a29183c67b02ee13ecf3eb9a3bdac";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/cs/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/cs/thunderbird-78.6.0.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "4b62702cabecfbb2567b19446f405936c9d948dad6f65a2e3f21809d4f2b1176";
+      sha256 = "de30e9d948ade3c82b7ebd58a3bbed5e880abcdb2d9c58f8e64d9d3d78bb336d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/cy/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/cy/thunderbird-78.6.0.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "736d245bd7766ac8c611a6801b3769a84baf4abae94818e0cfcadde8521850ad";
+      sha256 = "b7d0bb95acb861c453d8649673d9e582920a6df6a9662b8a6f996636d54c68c2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/da/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/da/thunderbird-78.6.0.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "53143b51b84ee74ee9131d3b3b80e2cf873e5a8c22478c87db34a9d2ac34607a";
+      sha256 = "2c4765b34f1d63a9eae942531b7f489150d6850f68487565082ea18c94f3ad0d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/de/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/de/thunderbird-78.6.0.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "2f3a4d8bf96e9653dd3883ac4399c650e87831d7df137358401966683d382e6c";
+      sha256 = "e29280a519f4eca06d4e5862085d8fb8cefb9577918ba953cdc6f63ffc44a6ed";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/dsb/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/dsb/thunderbird-78.6.0.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "81a3674dd2495da673a2fe3e3d200d7cadf83f9c67ff92bf2d607f6546bc2f38";
+      sha256 = "d638be5a999fd1b287628b449235e9995169c06c2cf46d1f7e6de282bf4357b8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/el/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/el/thunderbird-78.6.0.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "651e8f535b2518bc4e56706cfb76da6d0e35d4fec031f8426cbefb404e4790d7";
+      sha256 = "34cbbca7eb8ecd5078d52d429b76ed0b5334398040d6e00aa5b5926bf8eeaba8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/en-CA/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/en-CA/thunderbird-78.6.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "775983115d98e3581db993f6202fdad1de6b23d38e5bb7edfd965ad6bc0ae425";
+      sha256 = "d50be05404a4b51e3a9c2fc4a73d75504f11e12a7ba7331ca43d5f078f462303";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/en-GB/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/en-GB/thunderbird-78.6.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "d0a3569c76b85fdca01e5098cf279b08a63d2d9023e92cadf3f8dc136d76c619";
+      sha256 = "4d11d73b268369117861250f4fecd5c6d19a904145caaaeb7ee86c7eb9e63f9f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/en-US/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/en-US/thunderbird-78.6.0.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "4363d8fd759ac4f4783eeb76726c8cf22e5afb3c171f26fe5cca5ab194ab6959";
+      sha256 = "6691e528ac3fc88a023507e1172d67daac235fa1fce97e75e6fbd7072a493e0f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/es-AR/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/es-AR/thunderbird-78.6.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "3a04a2e42935c97c7ef003e4a690c0433783b57ce56700f07ad8b590e48b4ad0";
+      sha256 = "2f45d7f6e42fdef4f8bb8ab815879157cd962c91afa352a35f8cbc3fcf52fd82";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/es-ES/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/es-ES/thunderbird-78.6.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "f70a3feb09b79153d18e2a382017abbd6e015c78d4d55ff66f8b199b450172c4";
+      sha256 = "7bf50cefecce82e20c06441f003cc51eb7cc16d3a0e55a118213eee78e8b8494";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/et/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/et/thunderbird-78.6.0.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "c739f5306a2526baf74e57a029371390d02f8c119681b0f154481ae32c67c18c";
+      sha256 = "2b2c624808f75ae0d713ad37e9959ad518ae5702caa10845fb3aa8089e77bc9c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/eu/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/eu/thunderbird-78.6.0.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "9f95f4f1ec40e2732e053e68b31529b827f95876ad890d752f5380158f53b9e6";
+      sha256 = "3495821650563af2a62f36f928fb7503568de920211b9ef2f21904884d4fa3ef";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/fa/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/fa/thunderbird-78.6.0.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "e53dd458656ee9f39e996042016256949c974161c51b1bee63a401d90d59bace";
+      sha256 = "90b9ff389550e5801bc7ca7e1e4d7db5b281081bef2d0d30b7c2e9799e8cd0c9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/fi/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/fi/thunderbird-78.6.0.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "b0a96b08e986e49ee6526ab098fb0d44700b3a2aa7f96205b318fdd4b938ef51";
+      sha256 = "cd5819b7ed9e3017cbef8e1ca33cb92e1804fc8ece9edf6a74133db90b61ee6f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/fr/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/fr/thunderbird-78.6.0.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "872da741245da7466de58d766a0362983d59a111a65a333881d3636defe00eb4";
+      sha256 = "82b382d1ea014a26a397c3fe06c586732df756104533c7450494ad43b11e43a5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/fy-NL/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/fy-NL/thunderbird-78.6.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "d57862f51ec01e63ab77916ab352276b7f4992b089508dee0c9c5d389ab88d95";
+      sha256 = "3b4b0c4a23ad63f2d152eb8741a30fe4092c2d37d1bbb2cd56eb75c85d885f4a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/ga-IE/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/ga-IE/thunderbird-78.6.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "bda41b8eff5a5004f753944c49f15ddbd1f76c19b0310481251e04ff64309597";
+      sha256 = "093b76080942d3e7584f7948dc65003c20878e8bf4bec4808669f012183cf97f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/gd/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/gd/thunderbird-78.6.0.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "0671af342859574cb96dbe119d76d7ffa92a8c3fef11eee2a03f662ea71fb84a";
+      sha256 = "a726c67ab384b58c3a1ff84a3a1fe95f73219996e7e26f5dcdfe5dda30d34cdf";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/gl/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/gl/thunderbird-78.6.0.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "b458d6f79914fc4c551b3fa4444dc5ad4fa8d3310907a33a3480bf363bcdbfdb";
+      sha256 = "b731c512c61ece7b811d74e5f40cdae742207463799cccfa9906b43f58d5f2fb";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/he/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/he/thunderbird-78.6.0.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "146f2a8417827d2d6352f7cc20486ecca8fd1e0ad384d4eb2d8b2635edf2075f";
+      sha256 = "d15591239235d2f7debc8454e65c1e67101b8f32901fcc7543025986c524b156";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/hr/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/hr/thunderbird-78.6.0.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "5c510bd3a8f8015e5c8a7c0cff401e3557b0cdca83bff77d2384c8f75f287152";
+      sha256 = "003d02062016c8f13038e61f189b7ebb75753ffd9a55879e1f8fd3ee1c1f2a2f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/hsb/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/hsb/thunderbird-78.6.0.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "605ae5746f0df98c7a561550da9cc938d0e06a222f422910ab118fa89d09e793";
+      sha256 = "2325fd29cadc8c824ddd90ba7d0975ca42c2d9964c62269f0361b5318274155f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/hu/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/hu/thunderbird-78.6.0.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "7d42f5e242e04d06bb9abd9bde8fe21571fa13f91b027369a048447d4de8526c";
+      sha256 = "15650cc17e75780f17927ced485a03a23dcf771dd7d8343b28acd0ae1f0e1f9e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/hy-AM/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/hy-AM/thunderbird-78.6.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "74b0b31089be36c0538eb24c98e57123f24599b4122aac5b08c4eb914f6a8f7d";
+      sha256 = "c20a4f0ccf2bce093986e3758784190215bf19d31469f6bb51f5a494ed54fb03";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/id/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/id/thunderbird-78.6.0.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "291ad6b1fcdc537e723ee76cf0a40a3084bdf1ebec68fc3c8c54714618f5d790";
+      sha256 = "286eb0484f9a4b9c2d24dd836abcc07b00218a6c870535df1e4947482de1a79f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/is/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/is/thunderbird-78.6.0.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "188e2cab8e00421b8a5f9c9a174e8a529ab404a0f4f3976797e41848eb0abc4d";
+      sha256 = "b291df9b76800c56424ed8c9ad8e55be68f2606968abef2eb83ee3c86d56fc6f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/it/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/it/thunderbird-78.6.0.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "12daeb5314ae81a82ce95c35dc9e34d676fe8b666a84a38aea36367b52aa2c95";
+      sha256 = "51d112544b67c44d82b4d0f54bd35f0dfb485917ad72c09ce6136a8750e58eb0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/ja/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/ja/thunderbird-78.6.0.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "cdd41967d60abff6053f1736375cbbdb521bbdf5aa25110ca8e08bb365c853ca";
+      sha256 = "931815f8f2e0e3a9e3b9eb150fe8f0112b26537b02cc0c0c0dce9c14c1959ac9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/ka/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/ka/thunderbird-78.6.0.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "9548232d8df327e6282b5413d904d5742aadfa75574b1333a235df2097337032";
+      sha256 = "d51b241842f8da9d6cfc8307b11b73fe813d46a7d6cd9651c46e1af18201e89c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/kab/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/kab/thunderbird-78.6.0.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "ca35aa36ed5794661372e76f24dd6c98d11d35da76aff5396215ebe9331aa881";
+      sha256 = "935d2e485aff93ee91c20710c286cb591379f5fae1a34851454707710c75df88";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/kk/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/kk/thunderbird-78.6.0.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "dd90fff1a4ee8380e03e59ef324298d1591833a021d14a11fdb2829cd3a934f3";
+      sha256 = "4534b9c69f44c197997283f455d4b692ff96df122e9d633288d2874b8657833b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/ko/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/ko/thunderbird-78.6.0.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "4dae3766bf420a0cfb5473fa95356f0061b657a7ebfdc808b69a8e639564893b";
+      sha256 = "bb083026c53734d3956126a7bc11f1e02e122e463b0f8cb72757cc7cf94cb911";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/lt/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/lt/thunderbird-78.6.0.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "de4b448d9651692bc4eb38447d94c94e37d93dae816edb5f3936d56a58aa41af";
+      sha256 = "a9cd61089e2898a3e27cd0d10d9295c295b579324a30ff58f7500c0dd9fa1977";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/ms/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/ms/thunderbird-78.6.0.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "08593e72643de8f79b6d90a0c41d6031f915097d3f28f1e7e901c21caa0ab037";
+      sha256 = "f84ac7f403802271c2730979dd7da85ec976d970aa39c1f50215ba1902449245";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/nb-NO/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/nb-NO/thunderbird-78.6.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "21caa07be03725788c41fa527e7656a0467194e8a498de87f2455b571c4e14b2";
+      sha256 = "98fd61d91149b26750f06e12f64605ffe04f243d96c5ead0d11a2a600c4baa7d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/nl/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/nl/thunderbird-78.6.0.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "7c1c00a8e03d0a8e4fa9cdc3b4acce51215e9f273660e48ad76347e6003a1985";
+      sha256 = "44dbe77dbfb8d74c2c79052e1152e0da0a751d0cccea5b643c5019704454b0ac";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/nn-NO/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/nn-NO/thunderbird-78.6.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "103bc1307f47c20102e14362fcd6da696eb122fe77f680e70cd0849c9c03c47a";
+      sha256 = "e88e668c434b5b2469ef8268985015735ba5ff8639a1c670d1c9d42e1dd0b30b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/pa-IN/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/pa-IN/thunderbird-78.6.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "388d01d0881573164816d7ddf6a08c17ad966616f1c8e8e429f821d2bb179a62";
+      sha256 = "388b87f10db2a0dc9c73580ccc5248c492d6274766e4350981f8289db39c95cf";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/pl/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/pl/thunderbird-78.6.0.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "160651e72037bb89ac62534714ce9ecbebdec0cf1f8a6127396c68ab531745f9";
+      sha256 = "cc0e7c7bf4fd33ab255b1bcca808e6ae84c9575b3555228f84da8dad83b02d2a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/pt-BR/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/pt-BR/thunderbird-78.6.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "6d2064a6ed4bb684384f7e79b61cfceb66a9a26900e9947b3666c36d6b8793cd";
+      sha256 = "a8b4b7db5ed2a45af8bc595c85f15f9ea78d2a790bb62a9e419b7b2c78616a66";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/pt-PT/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/pt-PT/thunderbird-78.6.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "2ccc7a3d9d845f1a3e2ad3869cbd4cefa10e44992c27444a599f6f1429070f32";
+      sha256 = "c4504cebf2b2c831ec94029605b3068ab1cf220d3cce33b085d658c20fbf4dc4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/rm/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/rm/thunderbird-78.6.0.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "05e45497c19d46292617de4f247f014f7b14a684f74bfd314caf408416dc5b19";
+      sha256 = "b1be40d4a3f6f26c9a06e3179244ae2ad9c9c259e76cdd695cb3f881e43de919";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/ro/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/ro/thunderbird-78.6.0.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "bf01cf8c987e46f03236dbaab14aa551464019f471aa111299b6c7538e995f80";
+      sha256 = "305ecbe685a107461aa3dad94e7b74d9f32b343a3d9813cf7d570e0919d5d931";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/ru/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/ru/thunderbird-78.6.0.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "a3cbdfa26ff487d0efdabfa9dc324b75ec1446964f1c0192afcd67565dfc4a51";
+      sha256 = "4d49f15c2c9e69a6156e89017c71f5cbda3114940bfdf273efd0e82dfcc3457b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/si/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/si/thunderbird-78.6.0.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "fb26eef7b0c5b233e41f8d4ad79f11aa7d0db21b155bf0d9284881cabb51f6e4";
+      sha256 = "9d108c3b3d54d12c5008f0d77c4a6741ab94c7fcfec1cb4ff59bb2730938d01f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/sk/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/sk/thunderbird-78.6.0.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "d462f2606bfd7f6e0e45334a68d266889f0f9f927f08d5b92c39329711a8c4cf";
+      sha256 = "a6e51284b554fd6a8970757d519870098baa26d3fd23561e335105ec5bf836ad";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/sl/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/sl/thunderbird-78.6.0.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "b6011aefaf1eb60c8849b4ecc7a7a6fa0a72def8ba690f5b7ca61de3e089c9a4";
+      sha256 = "99b80fb6efd174beaf885e3d5451557a353693158ef147c931aa4d8560966122";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/sq/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/sq/thunderbird-78.6.0.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "aeed36c0d6129dc58d496f8f6177a88950a4c4cfe2e4ac157fb389ea79488b11";
+      sha256 = "5bba738143daec5c687fedf566052c9d387a87520e510acdb963ae80c5d24b3c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/sr/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/sr/thunderbird-78.6.0.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "f55cb398b3e6420acf6791d9ab5592b9915d299c5111ea917934b5729d22dd7f";
+      sha256 = "c18424e503d87ee7ea940a4d9551b9ec51a90b76b73180c89541872dbba27674";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/sv-SE/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/sv-SE/thunderbird-78.6.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "036b4f2b3d6cd24bcdcdbc1da1f44df2fba012f22ab96d0840a8c7ae0b945055";
+      sha256 = "d0eb7a8a1a6248e40142a62b61f9fe3e78bb8c277c9734d821358e0a075d5184";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/th/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/th/thunderbird-78.6.0.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "316ae39fb02b9ad1b28bbe7a21342e5e85dd7593978b4935b7be20253fe6b761";
+      sha256 = "04d3465fb8afcff051ce9a578901f3e9a8fbfab65f31cd7245b0b9321daa102f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/tr/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/tr/thunderbird-78.6.0.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "73811e185274d880abdb15503a928a537428460080245426a07cf1c01e38f1c6";
+      sha256 = "46acaf32f9f035dd320d4e28d6b36ef8ce2d8ff5f753cfb6a7b02f37e8edb09f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/uk/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/uk/thunderbird-78.6.0.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "8ff9e333cf16a02e7888f297851b5a9316c5b57cf546f592f12d2aab6e3bed48";
+      sha256 = "60b0be6207532039958f03a81e5fdf070d15cd624a0583c4d8e87e0528ccd240";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/uz/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/uz/thunderbird-78.6.0.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "899c0c8c886fbaa6a6609a500bb374797bd36272138a6fcdc6aca7c7b6a6fe66";
+      sha256 = "070963c90b858e9ab75cee1490671ec3f9f46190896eca554fde0ced205d0d44";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/vi/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/vi/thunderbird-78.6.0.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "13afdad34f64a1c96f9612c10c8af880e9718ae10d8a1578bc397b238a936dbd";
+      sha256 = "9040ed756aa19c0e850391bd9fa148eb0fbca45b84eea888c874a9c93ee0428b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/zh-CN/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/zh-CN/thunderbird-78.6.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "00a1d01acabd210ba70ed6d0842ab5e1674109c7f39f561e8295d1ffd5f80a0d";
+      sha256 = "caba2b9f3fabf1231b947c578c9761a241178f732c110fcd4cf620146ce5002b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-x86_64/zh-TW/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-x86_64/zh-TW/thunderbird-78.6.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "19b84b15a6bbf593a342c874822764bd73022d2c846fe20a6d7d91aceeb1ee15";
+      sha256 = "b48378e3833a0710bca60cb9c87396f0163cf9cd6211725ea711e116557e5abc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/af/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/af/thunderbird-78.6.0.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "4c1487a6b823a76d477085e66b377f536f2cfd95b4ddc6804b97c792af77c554";
+      sha256 = "b4ca4cd2535fb02c059db2783f2428634373730217d420530d7c2f6441191fe7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/ar/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/ar/thunderbird-78.6.0.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "d33576a1d8c346195a20c8a222281d682d14f604654ff173eb28ca8a9343574b";
+      sha256 = "29c287ff2ce37f3d4c23770f85aa220d7b9265df2b188aa38730fca68f8ea40b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/ast/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/ast/thunderbird-78.6.0.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "09d68977bc121e562f3c697bd1d87b21250c8a0bcac013940e3806d4a69a749d";
+      sha256 = "e1267edf8d35bfaf1f2bab751b5235855ce9ab768acc607ff308021dc917cd8f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/be/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/be/thunderbird-78.6.0.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "bb58501c902788b2d1f8f308468aa57447a15979cab59dc89c27e3738748b6d9";
+      sha256 = "1359027429e2c1ed2535f0878105bc0485f52b569aa342246d380acd1df13e4f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/bg/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/bg/thunderbird-78.6.0.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "373bd3548f518a4ae56e8a103b64eb76c3139b984a5af8013de56b133a0d44c0";
+      sha256 = "4e2d1a02d6ef6ee123c68db8ff299037cbfa017334599f5e3ac7114ee3e8874b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/br/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/br/thunderbird-78.6.0.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "40934c8ec7070ad29cb0111624de431a0cdeeff9c7c01d8781444e33f65acbca";
+      sha256 = "526e73827d595452c40bcd2066885d41a9497bf7d61043a5236d600cb9202e94";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/ca/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/ca/thunderbird-78.6.0.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "fbce4213fe7564f2af3f980f5844961cac9a7ec2a30b23d7cdd4e5db6aa4ebaa";
+      sha256 = "73605bd265262a8f538b7d15b26915ecb030a76824a09192e7b2e897ac5affe5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/cak/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/cak/thunderbird-78.6.0.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "2aaf7ea23606be03f5f7168aaa4286760f236d084babd1f81540f8b62b37962c";
+      sha256 = "bbdcb9447938bc2ae8b4dc0a5a250cf82e316c7ef56abca2962f871abf9d1d4a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/cs/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/cs/thunderbird-78.6.0.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "880e36431f76161674fdb9f2902c9d5487bed528a198722458b7e6e76e80e9b5";
+      sha256 = "4052bda928576a30657dc4087bdded6ea2339e271bff36194bbd37e610f55d13";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/cy/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/cy/thunderbird-78.6.0.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "eddb4dcac8063e5b245eb1c095c4ff98cb03714bf5b07f0366b89d670a9d95dd";
+      sha256 = "d3b337be4b64903d075f8e2269ff5f88831d5a88f24a56deead19ea534867d10";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/da/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/da/thunderbird-78.6.0.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "2425487caaab7979f504d37cf6b100c7cb030e8e5495b6723fa4f953348e4f40";
+      sha256 = "96080cee994410b59935c0baaa4d8bc0c592d1654242b00540b3b1997398951a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/de/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/de/thunderbird-78.6.0.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "81df3e5ba46fe5959f785c06bef0b70daa55e8f8721cfff0bf55a76f7343b32f";
+      sha256 = "46b4c8b867fbc4f5ed288f0c503a776a256c229799601d7810ac51b73685d6a2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/dsb/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/dsb/thunderbird-78.6.0.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "995d3aaf3df22aa3166f161b98113fc25b813dc7cee2743b2bdd6913b4a620c4";
+      sha256 = "f1b8576a1c5ed9dea2b92b10b03e2f16e17207c1f5dce4f83556b11a846de754";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/el/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/el/thunderbird-78.6.0.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "ad5162a76dba9c37e2542fa7ed08c63edce9955600e9b50889abb03e352ddf23";
+      sha256 = "01d559767ff8a2562b81c7e42007993065b4d46319fe4890e157a2450a34875f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/en-CA/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/en-CA/thunderbird-78.6.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "c605520e5e65449855c355147f18b813f66d38dce52e8d3a23b90afbec5bcbf1";
+      sha256 = "99571e51cc28c9dbc5aab42fa5d5f7f680fdfa287f7f8b96c5548949155735a5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/en-GB/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/en-GB/thunderbird-78.6.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "63b0d984ee8296c5185ed1aab279a0ef065986d989edbd0a7683b9db6a6d94bb";
+      sha256 = "e515ef917801e0fa67b9d4821f7185b21e36b35b7df8bb43b6a917851bcae753";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/en-US/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/en-US/thunderbird-78.6.0.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "b5404037f2678d36acbb225f43d426a86db9a4828a69b1beaf44dc3b5264ae7e";
+      sha256 = "cee59a70210f9fc8672a914179c957d67556b068d8ce9387c01636e89e54aba9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/es-AR/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/es-AR/thunderbird-78.6.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "cefe0ff79bacc9c16fe649c0d7b4f932afca6ebb10c8426fac527485e92f4422";
+      sha256 = "e30605e7460ff80a1c26107d0393d7cd12ecfd95d55f256db6f808076d03c53d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/es-ES/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/es-ES/thunderbird-78.6.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "de7c6685c4e73ee334faf83c809b2f45d55c971282ba99aecfd5d1c8b05577da";
+      sha256 = "0e2301dd592c06a2628aeba21f38fe4b422ed2690531c1487e958c6cea1b236c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/et/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/et/thunderbird-78.6.0.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "e5174b12c61221436a5926224f61f218bfe762086f1d5bb814af5f7708592392";
+      sha256 = "d15684c68e9bef8902e9dcdb87bacda263953cc93ba7368b69fd318739b58fdf";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/eu/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/eu/thunderbird-78.6.0.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "66bfbb4edc775117a6f048f52084fff9828633166ac6234a7c1dc0d67311677f";
+      sha256 = "4144e7de84ce0a6b39d8c29a96221532951c76679a8ac5a85aa07a62b99680d6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/fa/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/fa/thunderbird-78.6.0.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "072163a9d1a94b1f5c297c794791b4bd3e7f7e6897e7f7615df59a9dd2232a52";
+      sha256 = "028ac9a6ad5d6e7360e597d961a7422238d96cda848042975ececec6f3a06aa3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/fi/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/fi/thunderbird-78.6.0.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "9c269f267251bee9828acfd78d04bf149767dfe5247ae4f53ec5b0bd65c410ba";
+      sha256 = "ee5adee4c249edd9b61fcacc0a2150d4471a7897aa1057fe3ea04e16729de966";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/fr/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/fr/thunderbird-78.6.0.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "6ccfac2b5d96491c4d5dc7b00e4458617ca68fe07917941559534a31424c977c";
+      sha256 = "d5d0190541184198a6c628b3c79c7dc96ec911ab195ed3419f33c4817d401e01";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/fy-NL/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/fy-NL/thunderbird-78.6.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "1b470c45c9d52a8a84c59dbb4ed0e6966d124ffdc3ea865e4d02289bd39b346f";
+      sha256 = "c7b8ee6e8b66a6948f80f10e1ebf2d61c70e5be439f197953bff91f499fa8d51";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/ga-IE/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/ga-IE/thunderbird-78.6.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "a1cbb9a4c1bf91f920da9e4e0e39e6ecff0a8c87413898c1930ce69dadad9a26";
+      sha256 = "32a1d8ded34b26136b2884d24f31c5b08c965c10061758b87df9510395f8dc7e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/gd/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/gd/thunderbird-78.6.0.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "909be2cc362ed839f373eb22d27c5f3c569b1c82fc2ba5aaf270d605029d336c";
+      sha256 = "a65ff1d77deb34ed46bb84ab480afad20fcf417f39c714021ccd83b4a9d3212e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/gl/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/gl/thunderbird-78.6.0.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "8ffadcffd16aca8befd4b9c230b7da750e6a694add7ee465227a0c3f31a5c655";
+      sha256 = "87660c561fc92396c1eeafb82e907fbc2670b6649e2c7f0bdc73714fefa3de55";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/he/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/he/thunderbird-78.6.0.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "a9242889345131a405d138d0ec8e470eb49c59ada18b1e8f78004f307ceb41b1";
+      sha256 = "1e5c7324c57de9e5e2a87dceb1d41994a74f55e108e8d97161e0fd428f6b197f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/hr/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/hr/thunderbird-78.6.0.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "eb1f5496811677e28b2ed034da40ebf1fef324673e0f3acb2c21f0db5c71f592";
+      sha256 = "cad204c16e1b8ee26809321aa27c73220e64bcd86d261474c636d088ade006e3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/hsb/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/hsb/thunderbird-78.6.0.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "643a2b11a0775a71a8fa6c25097cfe297e6bc190fb29eee18ddd3d16fb61d989";
+      sha256 = "9d3e8988b5e8a3f089a0334304e255a716bc24f4ec9b08dd6594b7ddb4daa3cd";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/hu/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/hu/thunderbird-78.6.0.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "61d91bed542a7e014a8d11e46e1b3d97e8bef1303bba397b3d4da0585b1e68af";
+      sha256 = "f46e9d49a74ccb2172c78e6e149149ff49c0be7c93336c62f8c17b30a1b1d15f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/hy-AM/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/hy-AM/thunderbird-78.6.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "2e6739d14a45529ed2a68abb8ed03ad901b4e7770efebd382f6e9626c86da036";
+      sha256 = "f3f7e033489907339055d0ef02abf4a423434248b1a10623736fdcf09a3edd79";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/id/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/id/thunderbird-78.6.0.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "8753bc4c7292cd0c6ee382bb5572e432222e7c39ed739904d91ed1ece5a8197e";
+      sha256 = "581cbae2f96a616d29d30eda0dad30992eaa7fe71f65c20af10f528d130d83d1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/is/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/is/thunderbird-78.6.0.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "4f624262b72fce7d258b6f7c264f7d2266ebcfdd59fce895e4e85c72fa784637";
+      sha256 = "8653b1e05517a723a4113995e0e69a73fa59196f5625e2c1b0e51d9d60561646";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/it/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/it/thunderbird-78.6.0.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "6298ce45c4a659e47877302d61a50dfc7e0634e7c3e7036aeec49da5a2839073";
+      sha256 = "98faf75b5216cc75c2348962769fcdaa98ff59c4f4870b44cb6e7a69b7b5e9bc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/ja/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/ja/thunderbird-78.6.0.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "85a7b01f65c79b0e13c4f8a18f3950f0a250f380fc8756b8fb1709680a148554";
+      sha256 = "ad34916c36ac06eec4c1a900ff33639c6238e01c6426693261433b9bdf44ea91";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/ka/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/ka/thunderbird-78.6.0.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "f7b18243b9985b54eb8684b62bad47b7b021eb959f467fec9876c866d92b1727";
+      sha256 = "c3468772b8667784814f6d323a74aef24f561cf3fbd2c5dfbfed16f73e7e7c6d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/kab/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/kab/thunderbird-78.6.0.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "cc8eb77d0d0ea95a1e2b13db51da4f18a9500aeacee1cbe505da67f2b6a9b979";
+      sha256 = "1ba665c91e38df62809a601223238dc3c34a50c96e42e5792b145eb9aed3aef7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/kk/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/kk/thunderbird-78.6.0.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "6999faf34774806e1e4257a139dd97dd50a889a7729fef4f51a8b41bb4ad169e";
+      sha256 = "651fda1baa62acfae3f13bb65096368719461d206ce45b84a3ff5540e09d9e24";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/ko/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/ko/thunderbird-78.6.0.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "42b0bf1ebfce252fdfca3ed8de9f227bbb054bf591e6155b716b18e9613a9cff";
+      sha256 = "49b82df2eaa66e658b4ff0f84af7b128a92eddce7e9ce129f0f28b8239367967";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/lt/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/lt/thunderbird-78.6.0.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "6ffe9b52189579bee34604499649901be5c8be2a026eb70a33ac9eb4e3b21880";
+      sha256 = "6d263e236457576a0e853fd0b00711182c34c32436f65c8fc952aa2810fa500d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/ms/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/ms/thunderbird-78.6.0.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "640942eb04d84d24bd28cf5e49e57497934810394b50693bad591cf3b783e1bf";
+      sha256 = "45b050930b8357e3a988701d46234ccdd43ba7b38e56b88d157dee6309c375c3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/nb-NO/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/nb-NO/thunderbird-78.6.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "c0d35274192ae664314e91fd9364609cbbf142f8177d37210c9c49fdf8d31086";
+      sha256 = "23760a375705d8c3d22aaefab60c9a761fe73f5d6c97f3a3621312ba362f77ef";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/nl/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/nl/thunderbird-78.6.0.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "864ac834a0f44ce112deb107abce170802abaa63556f0aad88ee828bf3f8a98c";
+      sha256 = "8f006195886d26a519363c1a61940a53388952a67bae4fad07de50ab24ee21c5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/nn-NO/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/nn-NO/thunderbird-78.6.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "e821eaf0388885e3b5e88001a2c4410cdf065059b79a3581c324f53d1cf59eb5";
+      sha256 = "85710ff8542c6d592a939a55300040633f5b8fa8587f5c6c0ba0c3c2c7e5e62e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/pa-IN/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/pa-IN/thunderbird-78.6.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "5a0afbf815683afd24c258ac66a45dc300028b4d41a9950784355645874459ed";
+      sha256 = "cc1120713915ba43b74e9a4daa5814cf83b32317bc1503061c233e5fe28f8214";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/pl/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/pl/thunderbird-78.6.0.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "cebdc0a0188edc63fce0b4fe0a4a3f22ab792ad486bd1e10e635ac8f641f1b5d";
+      sha256 = "bf3da9722d7c9602304f64c7b11aba83cb899a23c1ddd179d5eb431aca23301b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/pt-BR/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/pt-BR/thunderbird-78.6.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "7bbf9aa4d48bf84a7455dcebc6b7476e4c1ffa085c1771fbdf302f71d10e4825";
+      sha256 = "0104d48b2de1e26e3b66545a76b7892e2b1b17f56ebf8558353e031fb8741614";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/pt-PT/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/pt-PT/thunderbird-78.6.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "b84c28dfb5d677768a6e0f69c8ea63fcaf884839739789ac72f50e7b8884f8ca";
+      sha256 = "b376bc3cc3f87484c9f976f30a3049bd4873ec67982574ec570c5c96d7643285";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/rm/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/rm/thunderbird-78.6.0.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "f34eea430a9e929c25ad961b1c92724c5539a46cbbfb9a97a5c7edca4996115a";
+      sha256 = "d68e60b06b03b5313a1ddc42464ee5a3ead106655860e1d2c359802875276778";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/ro/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/ro/thunderbird-78.6.0.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "115cd666282822f35924d4de3b33fd0dd3d790d278bb35849ada579d43d5ac54";
+      sha256 = "051c01b3e2f69258e1d44599c6c485785c1624a67fa6548517ec242c69bf47fa";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/ru/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/ru/thunderbird-78.6.0.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "961eb62e639f8f7c7c5695bd39df50fe4b3401e7aeade8281600779bb8edd374";
+      sha256 = "db0f48c765e7ec9c090e1d5f43f42faa5ac6cc9e4d593dbc6b8ff6f8f7210027";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/si/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/si/thunderbird-78.6.0.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "0887999609e47839a0f7600215c3083ce939fe13abc0c38cf701449224dbc87a";
+      sha256 = "fc104d206779b8b909f645a86151b193da0792c9af6360fbb4933d8224f23bb2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/sk/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/sk/thunderbird-78.6.0.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "a3b9281efc4c0cd6cb454f2c5b97567b4d2c6567076cee188e85c30a45213f98";
+      sha256 = "d08d8fe02577ad931020fdfd45b673fd2b71e41d66c1532b8025012e493c869d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/sl/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/sl/thunderbird-78.6.0.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "141e9a41dba4c2a3eee4370d2db6e14f8805fee2d70c20ecbb9865b7a0dcaa77";
+      sha256 = "6907401bb3973911ece57b9b3bd56032b02c2c140ab79ec554f4574a7e2121cc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/sq/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/sq/thunderbird-78.6.0.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "6a50fdac7993294937756a169b4b0ac7fe021611c5c6a730ea194ee7302c95dc";
+      sha256 = "bca13f569b5cd0e6a4bac8ae59a8f1b228010a95871763600080473f45ffe5a2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/sr/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/sr/thunderbird-78.6.0.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "2ec4c2f367bceb3f05c75e55366cc66fae6593fc35c79d7bea57f34f93d79dba";
+      sha256 = "df9328979af4c36d553992e0928d63a6cfcf0a54541e091fe7bb57e2e934057f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/sv-SE/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/sv-SE/thunderbird-78.6.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "4a9027f9aa74bd9c6e3cbf02ac1918f1b9dfbda57ed0344a99fccad9fa271f79";
+      sha256 = "a310b66e76a2062354d2ec10dbe0827188610618ac87f866010b418d26032a50";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/th/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/th/thunderbird-78.6.0.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "f394b18a364fa84ff5eeeee00c841248ba4095285833ce625b700fd500b9c0cc";
+      sha256 = "efb37f15a311d2c66678f42f13085e77eaf8819b2fe16ee52e3410dde5e85bee";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/tr/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/tr/thunderbird-78.6.0.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "9f180c1b6b604fc597bf1ecb10e3521c70953cb70d4292105cb3bc7cbeb806c0";
+      sha256 = "4f9f9088ab91ebc3e4e022ba77cf8c168ab961c73317fccd07e987e38ec6eb57";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/uk/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/uk/thunderbird-78.6.0.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "f828ac8f52bda71f913462e60fb7ea2221de4f824063b95b85709320a820db8a";
+      sha256 = "d9c527045270007c74e84d9f77ab6cbab2f07112d8688757920f5adbc5bbdf1d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/uz/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/uz/thunderbird-78.6.0.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "8d3dd4a1bbe008e4d346c22c01bafe988dde88fa6c9919c50194b9b155bc821f";
+      sha256 = "9ea90845e8668afff622f412f571b59e03e6c02d49a4e47cb99ab93f5da822dd";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/vi/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/vi/thunderbird-78.6.0.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "4db40b3debca281c59e926bd0f9cb4e5cd2150bf27235f1178ed8e497616a031";
+      sha256 = "ccf4bd8c6269fb8ae15413923d556ecafb808ef205688dfb78379347a5bce5f4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/zh-CN/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/zh-CN/thunderbird-78.6.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "399707f970a01e2f3c2eacc81f2f3bb33b1f49433c3ba6c49f4615b499f0c246";
+      sha256 = "22f0b4a72f995a9936fed178138d3e0c40fb3aefeda989c9ba83fc82a4296fcf";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.5.1/linux-i686/zh-TW/thunderbird-78.5.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.6.0/linux-i686/zh-TW/thunderbird-78.6.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "27ad21908069582a4a7641dc9a7d9acc69d4842382499cef2cee2f84d0fc3856";
+      sha256 = "b8c8633732641b8ab87bfc2a2867a95b817ce6d0fd0e8f569221bc51ac23e849";
     }
     ];
 }
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/default.nix b/pkgs/applications/networking/mailreaders/thunderbird/default.nix
index 58eae867487..66d2667e7ed 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird/default.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird/default.nix
@@ -14,13 +14,15 @@
 , freetype
 , glib
 , gnugrep
+, gnupg
 , gnused
+, gpgme
 , icu
 , jemalloc
 , lib
+, libevent
 , libGL
 , libGLU
-, libevent
 , libjpeg
 , libnotify
 , libpng
@@ -71,13 +73,13 @@ assert waylandSupport -> gtk3Support == true;
 
 stdenv.mkDerivation rec {
   pname = "thunderbird";
-  version = "78.5.1";
+  version = "78.6.0";
 
   src = fetchurl {
     url =
       "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
     sha512 =
-      "202s2h9fsvg4chy93rgxdf4vlavf3wbp9vqgh0nrgk5wcdhz17144vhw1bmxia8hf99snq2a3ix6haidwl8d2n6l2nfsjzcnphhxd9z";
+      "0hx9gg3ngpvgshrz9j7ni4kh3chadqd5w5fpywjjw4naj0k53d0i9jjhq4p6fyvf6rb2g825ibqq794lr9drn6nrfndh5w1yn5lw69n";
   };
 
   nativeBuildInputs = [
@@ -266,7 +268,7 @@ stdenv.mkDerivation rec {
       genericName = "Mail Reader";
       name = "thunderbird";
       exec = "thunderbird %U";
-      icon = "$out/lib/thunderbird/chrome/icons/default/default256.png";
+      icon = "thunderbird";
       mimeType = lib.concatStringsSep ";" [
         # Email
         "x-scheme-handler/mailto"
@@ -286,8 +288,18 @@ stdenv.mkDerivation rec {
   postInstall = ''
     # TODO: Move to a dev output?
     rm -rf $out/include $out/lib/thunderbird-devel-* $out/share/idl
+    install -Dm 444 $out/lib/thunderbird/chrome/icons/default/default256.png $out/share/icons/hicolor/256x256/apps/thunderbird.png
   '';
 
+  # Note on GPG support:
+  # Thunderbird's native GPG support does not yet support smartcards.
+  # The official upstream recommendation is to configure fall back to gnupg
+  # using the Thunderbird config `mail.openpgp.allow_external_gnupg`
+  # and GPG keys set up; instructions with pictures at:
+  # https://anweshadas.in/how-to-use-yubikey-or-any-gpg-smartcard-in-thunderbird-78/
+  # For that to work out of the box, it requires `gnupg` on PATH and
+  # `gpgme` in `LD_LIBRARY_PATH`; we do this below.
+
   preFixup = ''
     # Needed to find Mozilla runtime
     gappsWrapperArgs+=(
@@ -297,6 +309,8 @@ stdenv.mkDerivation rec {
       --set SNAP_NAME "thunderbird"
       --set MOZ_LEGACY_PROFILES 1
       --set MOZ_ALLOW_DOWNGRADE 1
+      --prefix PATH : "${lib.getBin gnupg}/bin"
+      --prefix LD_LIBRARY_PATH : "${lib.getLib gpgme}/lib"
     )
   '';
 
@@ -325,7 +339,7 @@ stdenv.mkDerivation rec {
 
   requiredSystemFeatures = [ "big-parallel" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A full-featured e-mail client";
     homepage = "https://www.thunderbird.net";
     maintainers = with maintainers; [
diff --git a/pkgs/applications/networking/msmtp/default.nix b/pkgs/applications/networking/msmtp/default.nix
index bfa98b94d0a..a9d2158d20a 100644
--- a/pkgs/applications/networking/msmtp/default.nix
+++ b/pkgs/applications/networking/msmtp/default.nix
@@ -9,11 +9,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "msmtp";
-  version = "1.8.13";
+  version = "1.8.14";
 
   src = fetchurl {
     url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz";
-    sha256 = "1fcv99nis7c6yc63n04cncjysv9jndrp469gcfxh54aiinmlbadd";
+    sha256 = "1W8GXXEUhunCNGGFFaAqSKSNq0BRs08+EI++y2+3c7Q=";
   };
 
   patches = [
diff --git a/pkgs/applications/networking/netperf/default.nix b/pkgs/applications/networking/netperf/default.nix
index c2e51ee743b..47693cc97f1 100644
--- a/pkgs/applications/networking/netperf/default.nix
+++ b/pkgs/applications/networking/netperf/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
     sha256 = "1wbbgdvhadd3qs3afv6i777argdpcyxkwz4yv6aqp223n8ki6dm8";
   };
 
-  buildInputs = stdenv.lib.optional (stdenv.hostPlatform.isx86) libsmbios;
+  buildInputs = stdenv.lib.optional (with stdenv.hostPlatform; isx86 && isLinux) libsmbios;
   nativeBuildInputs = [ autoreconfHook ];
   autoreconfPhase = ''
     autoreconf -i -I src/missing/m4
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
     homepage = "http://www.netperf.org/netperf/";
     license = "Hewlett-Packard BSD-like license";
 
-    platforms = stdenv.lib.platforms.linux;
+    platforms = stdenv.lib.platforms.unix;
     maintainers = [ stdenv.lib.maintainers.mmlb ];
   };
 }
diff --git a/pkgs/applications/networking/openbazaar/client.nix b/pkgs/applications/networking/openbazaar/client.nix
index c890329771f..1d055520d1f 100644
--- a/pkgs/applications/networking/openbazaar/client.nix
+++ b/pkgs/applications/networking/openbazaar/client.nix
@@ -13,11 +13,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "openbazaar-client";
-  version = "2.4.8";
+  version = "2.4.9";
 
   src = fetchurl {
     url = "https://github.com/OpenBazaar/openbazaar-desktop/releases/download/v${version}/openbazaar2client_${version}_amd64.deb";
-    sha256 = "0c8ar0rd4yydy4rd4hqafljrhi40v3cwhc9v7fjbrfhcx1ikmf64";
+    sha256 = "1l6l72kb5h5f32dl5wqv31sigl3fh2byixv0h0d3icmjf558c39p";
   };
 
   dontBuild = true;
diff --git a/pkgs/applications/networking/p2p/deluge/1/default.nix b/pkgs/applications/networking/p2p/deluge/1.nix
index 7ab33792415..aa70f969d22 100644
--- a/pkgs/applications/networking/p2p/deluge/1/default.nix
+++ b/pkgs/applications/networking/p2p/deluge/1.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchpatch, intltool, libtorrentRasterbar, pythonPackages }:
+{ stdenv, fetchurl, fetchpatch, intltool, libtorrent-rasterbar, pythonPackages }:
 
 pythonPackages.buildPythonPackage rec {
   pname = "deluge";
@@ -19,7 +19,7 @@ pythonPackages.buildPythonPackage rec {
 
   propagatedBuildInputs = with pythonPackages; [
     pyGtkGlade twisted Mako chardet pyxdg pyopenssl service-identity
-    libtorrentRasterbar.dev libtorrentRasterbar.python setuptools
+    libtorrent-rasterbar.dev libtorrent-rasterbar.python setuptools
   ];
 
   nativeBuildInputs = [ intltool ];
diff --git a/pkgs/applications/networking/p2p/deluge/2/default.nix b/pkgs/applications/networking/p2p/deluge/default.nix
index 2e9f08ce98a..f9c421c4087 100644
--- a/pkgs/applications/networking/p2p/deluge/2/default.nix
+++ b/pkgs/applications/networking/p2p/deluge/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, intltool, libtorrentRasterbar, pythonPackages
+{ stdenv, fetchurl, intltool, libtorrent-rasterbar, pythonPackages
 , gtk3, glib, gobject-introspection, librsvg, wrapGAppsHook }:
 
 pythonPackages.buildPythonPackage rec {
@@ -12,7 +12,7 @@ pythonPackages.buildPythonPackage rec {
 
   propagatedBuildInputs = with pythonPackages; [
     twisted Mako chardet pyxdg pyopenssl service-identity
-    libtorrentRasterbar.dev libtorrentRasterbar.python setuptools
+    libtorrent-rasterbar.dev libtorrent-rasterbar.python setuptools
     setproctitle pillow rencode six zope_interface
     dbus-python pygobject3 pycairo
     gtk3 gobject-introspection librsvg
diff --git a/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix b/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
index 364aeac550e..8ef8740f4d2 100644
--- a/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
+++ b/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
@@ -3,12 +3,12 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  version = "6.8.8";
+  version = "6.8.9";
   pname = "frostwire";
 
   src = fetchurl {
     url = "https://dl.frostwire.com/frostwire/${version}/frostwire-${version}.amd64.tar.gz";
-    sha256 = "0zxk0nv7m1k4n8n82h1rkh239a58s7j643lgqbw3qx45bdy4sf4k";
+    sha256 = "0f5vyliwncryj6hj5xx0dycxycxddsn28n6zixjrn56jajijyl6q";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/networking/p2p/qbittorrent/default.nix b/pkgs/applications/networking/p2p/qbittorrent/default.nix
index 9b6a8bd707d..2e69ad23e14 100644
--- a/pkgs/applications/networking/p2p/qbittorrent/default.nix
+++ b/pkgs/applications/networking/p2p/qbittorrent/default.nix
@@ -1,29 +1,32 @@
-{ mkDerivation, lib, fetchFromGitHub, pkgconfig
-, boost, libtorrentRasterbar, qtbase, qttools, qtsvg
-, debugSupport ? false # Debugging
+{ mkDerivation, lib, fetchFromGitHub, makeWrapper, pkgconfig
+, boost, libtorrent-rasterbar, qtbase, qttools, qtsvg
+, debugSupport ? false
 , guiSupport ? true, dbus ? null # GUI (disable to run headless)
 , webuiSupport ? true # WebUI
+, trackerSearch ? true, python3 ? null
 }:
 
 assert guiSupport -> (dbus != null);
-with lib;
+assert trackerSearch -> (python3 != null);
 
+with lib;
 mkDerivation rec {
   pname = "qbittorrent";
-  version = "4.3.0.1";
+  version = "4.3.1";
 
   src = fetchFromGitHub {
     owner = "qbittorrent";
     repo = "qbittorrent";
     rev = "release-${version}";
-    sha256 = "068sf24mjvc2idimgpzvf7gjk8n9xrr3qqlqfx5j3j598ckm3yfp";
+    sha256 = "17ih00q7idrpl3b2vgh4smva6lazs5jw06pblriscn1lrwdvrc38";
   };
 
   # NOTE: 2018-05-31: CMake is working but it is not officially supported
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ makeWrapper pkgconfig ];
 
-  buildInputs = [ boost libtorrentRasterbar qtbase qttools qtsvg ]
-    ++ optional guiSupport dbus; # D(esktop)-Bus depends on GUI support
+  buildInputs = [ boost libtorrent-rasterbar qtbase qttools qtsvg ]
+    ++ optional guiSupport dbus # D(esktop)-Bus depends on GUI support
+    ++ optional trackerSearch python3;
 
   # Otherwise qm_gen.pri assumes lrelease-qt5, which does not exist.
   QMAKE_LRELEASE = "lrelease";
@@ -35,6 +38,12 @@ mkDerivation rec {
     ++ optional (!webuiSupport) "--disable-webui"
     ++ optional debugSupport "--enable-debug";
 
+  postInstall = "wrapProgram $out/bin/${
+    if guiSupport
+    then "qbittorrent"
+    else "qbittorrent-nox"
+  } --prefix PATH : ${makeBinPath [ python3 ]}";
+
   enableParallelBuilding = true;
 
   meta = {
diff --git a/pkgs/applications/networking/p2p/tribler/default.nix b/pkgs/applications/networking/p2p/tribler/default.nix
index 5cab23ecd71..d30697a4df0 100644
--- a/pkgs/applications/networking/p2p/tribler/default.nix
+++ b/pkgs/applications/networking/p2p/tribler/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   ];
 
   pythonPath = [
-    python3Packages.libtorrentRasterbar
+    python3Packages.libtorrent-rasterbar
     python3Packages.twisted
     python3Packages.netifaces
     python3Packages.pycrypto
diff --git a/pkgs/applications/networking/pcloud/default.nix b/pkgs/applications/networking/pcloud/default.nix
index 7db633737d9..1b094fc442a 100644
--- a/pkgs/applications/networking/pcloud/default.nix
+++ b/pkgs/applications/networking/pcloud/default.nix
@@ -26,13 +26,13 @@
 
 let
   pname = "pcloud";
-  version = "1.8.8";
+  version = "1.8.9";
   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=XZpnMpXZPWyhRfdvXUhyY6XpdfmQmJiLRmmV&filename=${name}.zip";
-    hash = "sha256-z9OeFkH6EVthg5Dz2mN3jlBTMhiMt/6bUIYFeMO6EXk=";
+    url = "https://api.pcloud.com/getpubzip?code=XZjfKzXZ6h3uGRFId48VRNHHkuqajhRvMlPV&filename=${name}.zip";
+    hash = "sha256:1bwdwfwgy3wwzlggi8qhf5q2bq2kqiqi3mgvsr9w0mxyaxxv13r8";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/applications/networking/remote/teamviewer/default.nix b/pkgs/applications/networking/remote/teamviewer/default.nix
index 9c3ed826a2d..217cd0c2099 100644
--- a/pkgs/applications/networking/remote/teamviewer/default.nix
+++ b/pkgs/applications/networking/remote/teamviewer/default.nix
@@ -38,6 +38,13 @@ mkDerivation rec {
     ln -s /var/log/teamviewer $out/share/teamviewer/logfiles
     ln -s ${xdg_utils}/bin $out/share/teamviewer/tv_bin/xdg-utils
 
+    for i in 16 20 24 32 48 256; do
+      size=$i"x"$i
+
+      mkdir -p $out/share/icons/hicolor/$size/apps
+      ln -s $out/share/teamviewer/tv_bin/desktop/teamviewer_$i.png $out/share/icons/hicolor/$size/apps/TeamViewer.png
+    done;
+
     sed -i "s,/opt/teamviewer,$out/share/teamviewer,g" $out/share/teamviewer/tv_bin/desktop/com.teamviewer.*.desktop
 
     substituteInPlace $out/share/teamviewer/tv_bin/script/tvw_aux \
diff --git a/pkgs/applications/networking/remote/waypipe/default.nix b/pkgs/applications/networking/remote/waypipe/default.nix
index 2c91d6496a0..d3253519826 100644
--- a/pkgs/applications/networking/remote/waypipe/default.nix
+++ b/pkgs/applications/networking/remote/waypipe/default.nix
@@ -6,14 +6,14 @@
 
 stdenv.mkDerivation rec {
   pname = "waypipe-unstable";
-  version = "0.7.1";
+  version = "0.7.2";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "mstoeckl";
     repo = "waypipe";
     rev = "v${version}";
-    sha256 = "00skyxmbssfxksb8wlqdr8gajpysadirjcn230fd5gaf5msvllx7";
+    sha256 = "sha256-LtfrSEwZikOXp/fdyJ/+EylRx19zdsHMkrl1eEf1/aY=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/networking/seafile-client/default.nix b/pkgs/applications/networking/seafile-client/default.nix
index 69b7b432b0a..fb0c0a18ac5 100644
--- a/pkgs/applications/networking/seafile-client/default.nix
+++ b/pkgs/applications/networking/seafile-client/default.nix
@@ -1,16 +1,16 @@
 { mkDerivation, lib, fetchFromGitHub, pkgconfig, cmake, qtbase, qttools
-, seafile-shared, ccnet, jansson, libsearpc
+, seafile-shared, jansson, libsearpc
 , withShibboleth ? true, qtwebengine }:
 
 mkDerivation rec {
   pname = "seafile-client";
-  version = "7.0.9";
+  version = "8.0.1";
 
   src = fetchFromGitHub {
     owner = "haiwen";
     repo = "seafile-client";
-    rev = "v${version}";
-    sha256 = "0pcn6lfzma2hvpwsp9q0002wvym7zabpp8fvq29l101gzirn79m9";
+    rev = "b4b944921c7efef13a93d693c45c997943899dec";
+    sha256 = "2vV+6ZXjVg81JVLfWeD0UK+RdmpBxBU2Ozx790WFSyw=";
   };
 
   nativeBuildInputs = [ pkgconfig cmake ];
@@ -21,7 +21,7 @@ mkDerivation rec {
     ++ lib.optional withShibboleth "-DBUILD_SHIBBOLETH_SUPPORT=ON";
 
   qtWrapperArgs = [
-    "--suffix PATH : ${lib.makeBinPath [ ccnet seafile-shared ]}"
+    "--suffix PATH : ${lib.makeBinPath [ seafile-shared ]}"
   ];
 
   meta = with lib; {
diff --git a/pkgs/applications/networking/shellhub-agent/default.nix b/pkgs/applications/networking/shellhub-agent/default.nix
new file mode 100644
index 00000000000..0aa78482e5a
--- /dev/null
+++ b/pkgs/applications/networking/shellhub-agent/default.nix
@@ -0,0 +1,48 @@
+{ stdenv
+, buildGoModule
+, fetchFromGitHub
+, genericUpdater
+, common-updater-scripts
+}:
+
+buildGoModule rec {
+  pname = "shellhub-agent";
+  version = "0.4.2";
+
+  src = fetchFromGitHub {
+    owner = "shellhub-io";
+    repo = "shellhub";
+    rev = "v${version}";
+    sha256 = "0cd41ing1pcf1bdaaq00w5h7lih5j2kcaa0m41g3ikm3vd1w5qna";
+  };
+
+  modRoot = "./agent";
+
+  vendorSha256 = "19gsfhh6idqysdxhpq45sq35gw19adz9lp83krjlhzj1vqm59qma";
+
+  buildFlagsArray = [ "-ldflags=-s -w -X main.AgentVersion=v${version}" ];
+
+  passthru = {
+    updateScript = genericUpdater {
+      inherit pname version;
+      versionLister = "${common-updater-scripts}/bin/list-git-tags ${src.meta.homepage}";
+      rev-prefix = "v";
+      ignoredVersions = ".(rc|beta).*";
+    };
+  };
+
+  meta = with stdenv.lib; {
+    description =
+      "Enables easy access any Linux device behind firewall and NAT";
+    longDescription = ''
+      ShellHub is a modern SSH server for remotely accessing Linux devices via
+      command line (using any SSH client) or web-based user interface, designed
+      as an alternative to _sshd_. Think ShellHub as centralized SSH for the the
+      edge and cloud computing.
+    '';
+    homepage = "https://shellhub.io/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ otavio ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/networking/sniffers/wireshark/default.nix b/pkgs/applications/networking/sniffers/wireshark/default.nix
index c1464151eca..cb29857e168 100644
--- a/pkgs/applications/networking/sniffers/wireshark/default.nix
+++ b/pkgs/applications/networking/sniffers/wireshark/default.nix
@@ -10,9 +10,8 @@ assert withQt  -> qt5  != null;
 with stdenv.lib;
 
 let
-  version = "3.4.0";
+  version = "3.4.2";
   variant = if withQt then "qt" else "cli";
-  pcap = libpcap.override { withBluez = stdenv.isLinux; };
 
 in stdenv.mkDerivation {
   pname = "wireshark-${variant}";
@@ -21,7 +20,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.xz";
-    sha256 = "1bm8jj2rviis9j9l6nixvhxcfx362y9iphkxssgmiz2kj6yypr37";
+    sha256 = "1i548w6zv6ni5n22rs90a12aakyq811493dxmadlcsj2krr6i66y";
   };
 
   cmakeFlags = [
@@ -39,7 +38,7 @@ in stdenv.mkDerivation {
   ] ++ optional withQt qt5.wrapQtAppsHook;
 
   buildInputs = [
-    gettext pcre perl pcap lua5 libssh nghttp2 openssl libgcrypt
+    gettext pcre perl libpcap lua5 libssh nghttp2 openssl libgcrypt
     libgpgerror gnutls geoip c-ares python3 glib zlib makeWrapper
   ] ++ optionals withQt  (with qt5; [ qtbase qtmultimedia qtsvg qttools ])
     ++ optionals stdenv.isLinux  [ libcap libnl ]
diff --git a/pkgs/applications/networking/sync/desync/default.nix b/pkgs/applications/networking/sync/desync/default.nix
index 9831ab34b2e..7f7d2fb277a 100644
--- a/pkgs/applications/networking/sync/desync/default.nix
+++ b/pkgs/applications/networking/sync/desync/default.nix
@@ -1,20 +1,20 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "desync";
-  version = "0.4.0";
-  rev = "v${version}";
-
-  goPackagePath = "github.com/folbricht/desync";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
-    inherit rev;
+    rev = "v${version}";
     owner = "folbricht";
     repo = "desync";
-    sha256 = "17qh0g1paa7212j761q9z246k10a3xrwd8fgiizw3lr9adn50kdk";
+    sha256 = "0j9hixgkja268r2zn2dglrmlrb2z57sgz6q3wqb8dfwpan7b5rsy";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = "1gajh99jb6mbwk93dypddhl7r7n8h2s11s3s82firbrb5k24s4pz";
+
+  # nix builder doesn't have access to test data; tests fail for reasons unrelated to binary being bad.
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "Content-addressed binary distribution system";
diff --git a/pkgs/applications/networking/sync/desync/deps.nix b/pkgs/applications/networking/sync/desync/deps.nix
deleted file mode 100644
index 7f5f3251d16..00000000000
--- a/pkgs/applications/networking/sync/desync/deps.nix
+++ /dev/null
@@ -1,312 +0,0 @@
-[
-
-  {
-    goPackagePath = "github.com/datadog/zstd";
-    fetch = {
-      type = "git";
-      url = "https://github.com/datadog/zstd";
-      rev = "v1.3.4";
-      sha256 = "06wphl43ji23c0cmmm6fd3wszbwq36mdp1jarak2a6hmxl6yf0b8";
-    };
-  }
-
-  {
-    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/dchest/siphash";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dchest/siphash";
-      rev = "v1.2.0";
-      sha256 = "01qhv9zd9l6p7pwf1fj022mp9s5496rk4lnm3yvpjsiwp6k4af8c";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/fatih/color";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fatih/color";
-      rev = "v1.7.0";
-      sha256 = "0v8msvg38r8d1iiq2i5r4xyfx0invhc941kjrsg5gzwvagv55inv";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/folbricht/tempfile";
-    fetch = {
-      type = "git";
-      url = "https://github.com/folbricht/tempfile";
-      rev = "v0.0.1";
-      sha256 = "0vz08qvbniqxc24vhmcbq5ncnz97ncp4jbxgcf0hziazxfp114z3";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/go-ini/ini";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-ini/ini";
-      rev = "v1.38.2";
-      sha256 = "0xbnw1nd22q6k863n5gs0nxld15w0p8qxbhfky85akcb5rk1vwi9";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/gopherjs/gopherjs";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gopherjs/gopherjs";
-      rev = "0210a2f0f73c";
-      sha256 = "1n80xjfc1dkxs8h8mkpw83n89wi5n7hzc3rxhwjs76rkxpq3rc9j";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/hanwen/go-fuse";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hanwen/go-fuse";
-      rev = "1d35017e9701";
-      sha256 = "11rggvkd6lc5lcpsfvc9iip4z9cingzpkpshaskv2cirbxdynyi8";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/inconshreveable/mousetrap";
-    fetch = {
-      type = "git";
-      url = "https://github.com/inconshreveable/mousetrap";
-      rev = "v1.0.0";
-      sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/jtolds/gls";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jtolds/gls";
-      rev = "v4.2.1";
-      sha256 = "1vm37pvn0k4r6d3m620swwgama63laz8hhj3pyisdhxwam4m2g1h";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/kr/fs";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/fs";
-      rev = "v0.1.0";
-      sha256 = "11zg176x9hr9q7fsk95r6q0wf214gg4czy02slax4x56n79g6a7q";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/mattn/go-colorable";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-colorable";
-      rev = "v0.0.9";
-      sha256 = "1nwjmsppsjicr7anq8na6md7b1z84l9ppnlr045hhxjvbkqwalvx";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/mattn/go-isatty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-isatty";
-      rev = "v0.0.4";
-      sha256 = "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/mattn/go-runewidth";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-runewidth";
-      rev = "v0.0.3";
-      sha256 = "0lc39b6xrxv7h3v3y1kgz49cgi5qxwlygs715aam6ba35m48yi7g";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/minio/minio-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/minio/minio-go";
-      rev = "v6.0.6";
-      sha256 = "0bgivqw1n1189lksp85djw1rqcan2axyh4jv9q54iclrjkpbab37";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/mitchellh/go-homedir";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mitchellh/go-homedir";
-      rev = "v1.0.0";
-      sha256 = "0f0z0aa4wivk4z1y503dmnw0k0g0g403dly8i4q263gfshs82sbq";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/pkg/errors";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pkg/errors";
-      rev = "v0.8.0";
-      sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/pkg/sftp";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pkg/sftp";
-      rev = "v1.8.2";
-      sha256 = "040flbir6sv213xzs75vkd5fd7bmm3fqxfcnsx8fr77zkn52hm4m";
-    };
-  }
-
-  {
-    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/smartystreets/assertions";
-    fetch = {
-      type = "git";
-      url = "https://github.com/smartystreets/assertions";
-      rev = "7c9eb446e3cf";
-      sha256 = "1dix6qgaj6kw38hicy3zs3lvacl1kn0n267b3xw0vvdkqf1v0395";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/smartystreets/goconvey";
-    fetch = {
-      type = "git";
-      url = "https://github.com/smartystreets/goconvey";
-      rev = "ef6db91d284a";
-      sha256 = "16znlpsms8z2qc3airawyhzvrzcp70p9bx375i19bg489hgchxb7";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/spf13/cobra";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/cobra";
-      rev = "v0.0.3";
-      sha256 = "1q1nsx05svyv9fv3fy6xv6gs9ffimkyzsfm49flvl3wnvf1ncrkd";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/spf13/pflag";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/pflag";
-      rev = "v1.0.2";
-      sha256 = "005598piihl3l83a71ahj10cpq9pbhjck4xishx1b4dzc02r9xr2";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/stretchr/testify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/testify";
-      rev = "v1.2.2";
-      sha256 = "0dlszlshlxbmmfxj5hlwgv3r22x0y1af45gn1vd198nvvs3pnvfs";
-    };
-  }
-
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "0709b304e793";
-      sha256 = "0i05s09y5pavmfh71fgih7syxg58x7a4krgd8am6d3mnahnmab5c";
-    };
-  }
-
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "161cd47e91fd";
-      sha256 = "0254ld010iijygbzykib2vags1dc0wlmcmhgh4jl8iny159lhbcv";
-    };
-  }
-
-  {
-    goPackagePath = "golang.org/x/sync";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sync";
-      rev = "1d60e4601c6f";
-      sha256 = "046jlanz2lkxq1r57x9bl6s4cvfqaic6p2xybsj8mq1120jv4rs6";
-    };
-  }
-
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "49385e6e1522";
-      sha256 = "0spbldahns09fdxkxflb1x24f8k2awdlnr6k5i7ci4fqd19r1dv4";
-    };
-  }
-
-  {
-    goPackagePath = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev = "v0.3.0";
-      sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
-    };
-  }
-
-  {
-    goPackagePath = "gopkg.in/cheggaaa/pb.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/cheggaaa/pb.v1";
-      rev = "v1.0.25";
-      sha256 = "0vxqiw6f3xyv0zy3g4lksf8za0z8i0hvfpw92hqimsy84f79j3dp";
-    };
-  }
-
-  {
-    goPackagePath = "gopkg.in/ini.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/ini.v1";
-      rev = "v1.38.2";
-      sha256 = "0xbnw1nd22q6k863n5gs0nxld15w0p8qxbhfky85akcb5rk1vwi9";
-    };
-  }
-]
diff --git a/pkgs/applications/networking/sync/onedrive/default.nix b/pkgs/applications/networking/sync/onedrive/default.nix
index be255a6c146..b41178922af 100644
--- a/pkgs/applications/networking/sync/onedrive/default.nix
+++ b/pkgs/applications/networking/sync/onedrive/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "onedrive";
-  version = "2.4.2";
+  version = "2.4.7";
 
   src = fetchFromGitHub {
     owner = "abraunegg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "10s33p1xzq9c5n1bxv9n7n31afxgx9i6c17w0xgxdrma75micm3a";
+    sha256 = "12g2z6c4f65y8cc7vyhk9nlg1mpbsmlsj7ghlny452qhr13m7qpn";
   };
 
   nativeBuildInputs = [ autoreconfHook ldc installShellFiles pkgconfig ];
diff --git a/pkgs/applications/networking/syncplay/default.nix b/pkgs/applications/networking/syncplay/default.nix
index da4551d7f55..e93b6f9a432 100644
--- a/pkgs/applications/networking/syncplay/default.nix
+++ b/pkgs/applications/networking/syncplay/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonApplication rec {
   pname = "syncplay";
-  version = "1.6.6";
+  version = "1.6.7";
 
   format = "other";
 
@@ -10,7 +10,7 @@ buildPythonApplication rec {
     owner = "Syncplay";
     repo = "syncplay";
     rev = "v${version}";
-    sha256 = "1wkxdp7dv5y1100awy949higvs5035ylfyl83qrp4lnimy3imw09";
+    sha256 = "1hxmd13sff51lh9l3vpk33qrzf7gi58c76bc01iqimp17sxwfz3k";
   };
 
   propagatedBuildInputs = [ pyside2 shiboken2 twisted certifi ] ++ twisted.extras.tls;
diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix
index a8c0d4117a3..6d8983179dc 100644
--- a/pkgs/applications/office/libreoffice/default.nix
+++ b/pkgs/applications/office/libreoffice/default.nix
@@ -300,8 +300,6 @@ in (mkDrv rec {
     cp -r sysui/desktop/icons  "$out/share"
     sed -re 's@Icon=libreoffice(dev)?[0-9.]*-?@Icon=@' -i "$out/share/applications/"*.desktop
 
-    qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH")
-
     mkdir -p $dev
     cp -r include $dev
   '' + lib.optionalString kdeIntegration ''
diff --git a/pkgs/applications/office/libreoffice/src-fresh/download.nix b/pkgs/applications/office/libreoffice/src-fresh/download.nix
index e26081a0298..d956a3b08a6 100644
--- a/pkgs/applications/office/libreoffice/src-fresh/download.nix
+++ b/pkgs/applications/office/libreoffice/src-fresh/download.nix
@@ -469,11 +469,11 @@
     md5name = "b24890e2bb46e12e72a79f7e965f409f4e16466d00e1dd15d93d73ee6b592523-libjpeg-turbo-1.5.3.tar.gz";
   }
   {
-    name = "language-subtag-registry-2020-04-01.tar.bz2";
-    url = "https://dev-www.libreoffice.org/src/language-subtag-registry-2020-04-01.tar.bz2";
-    sha256 = "fb1ee0dabfd956a445fbe9f351e86a52767808558f20f4256e67fbbb3768e9da";
+    name = "language-subtag-registry-2020-09-29.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/language-subtag-registry-2020-09-29.tar.bz2";
+    sha256 = "cbe9fca811a37056560aab73e9fc9d3522b46b6785cb02db165f521bf42c230f";
     md5 = "";
-    md5name = "fb1ee0dabfd956a445fbe9f351e86a52767808558f20f4256e67fbbb3768e9da-language-subtag-registry-2020-04-01.tar.bz2";
+    md5name = "cbe9fca811a37056560aab73e9fc9d3522b46b6785cb02db165f521bf42c230f-language-subtag-registry-2020-09-29.tar.bz2";
   }
   {
     name = "JLanguageTool-1.7.0.tar.bz2";
@@ -700,11 +700,11 @@
     md5name = "66adacd705a7d19895e08eac46d1e851332adf2e736c566bef1164e7a442519d-libpagemaker-0.0.4.tar.xz";
   }
   {
-    name = "pdfium-4137.tar.bz2";
-    url = "https://dev-www.libreoffice.org/src/pdfium-4137.tar.bz2";
-    sha256 = "9a2f9bddca935a263f06c81003483473a525ccd0f4e517bc75fceb914d4c54b6";
+    name = "pdfium-4306.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/pdfium-4306.tar.bz2";
+    sha256 = "eca406d47ac7e2a84dcc86f93c08f96e591d409589e881477fa75e488e4851d8";
     md5 = "";
-    md5name = "9a2f9bddca935a263f06c81003483473a525ccd0f4e517bc75fceb914d4c54b6-pdfium-4137.tar.bz2";
+    md5name = "eca406d47ac7e2a84dcc86f93c08f96e591d409589e881477fa75e488e4851d8-pdfium-4306.tar.bz2";
   }
   {
     name = "pixman-0.34.0.tar.gz";
diff --git a/pkgs/applications/office/libreoffice/src-fresh/primary.nix b/pkgs/applications/office/libreoffice/src-fresh/primary.nix
index dbfd249901e..c9b18264711 100644
--- a/pkgs/applications/office/libreoffice/src-fresh/primary.nix
+++ b/pkgs/applications/office/libreoffice/src-fresh/primary.nix
@@ -8,8 +8,8 @@ rec {
 
   major = "7";
   minor = "0";
-  patch = "3";
-  tweak = "1";
+  patch = "4";
+  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 = "0b998k2dxbbj7hn3srn07fgsah236h14ncyyahamdff6h3hvqrk5";
+    sha256 = "1g9akxvm7fh6lnprnc3g184qdy8gbinhb4rb60gjpw82ip6d5acz";
   };
 
   # FIXME rename
   translations = fetchSrc {
     name = "translations";
-    sha256 = "0s3ic79q0c16hbd6r06mwkyqhw4fdfy9z3xbqvdxp7jl64cjlaj4";
+    sha256 = "1v3kpk56fm783d5wihx41jqidpclizkfxrg4n0pq95d79hdiljsl";
   };
 
   # 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 = "14wjkcdmcflfcc7264jx64s6clk5rdsprx7nkbv08z0bp6ff677b";
+    sha256 = "1np9f799ww12kggl5az6piv5fi9rf737il5a5r47r4wl2li56qqb";
   };
 }
diff --git a/pkgs/applications/office/paperwork/paperwork-gtk.nix b/pkgs/applications/office/paperwork/paperwork-gtk.nix
index c493421dd11..847287c8c85 100644
--- a/pkgs/applications/office/paperwork/paperwork-gtk.nix
+++ b/pkgs/applications/office/paperwork/paperwork-gtk.nix
@@ -2,8 +2,6 @@
 , python3Packages
 , gtk3
 , cairo
-, aspellDicts
-, buildEnv
 , gnome3
 , librsvg
 , xvfb_run
@@ -40,16 +38,19 @@ python3Packages.buildPythonApplication rec {
     make l10n_compile
   '';
 
-  ASPELL_CONF = "dict-dir ${buildEnv {
-    name = "aspell-all-dicts";
-    paths = lib.collect lib.isDerivation aspellDicts;
-  }}/lib/aspell";
-
   postInstall = ''
     # paperwork-shell needs to be re-wrapped with access to paperwork
     cp ${python3Packages.paperwork-shell}/bin/.paperwork-cli-wrapped $out/bin/paperwork-cli
     # install desktop files and icons
     XDG_DATA_HOME=$out/share $out/bin/paperwork-gtk install --user
+
+    # fixes [WARNING] [openpaperwork_core.resources.setuptools] Failed to find
+    # resource file paperwork_gtk.icon.out/paperwork_128.png, tried at path
+    # /nix/store/3n5lz6y8k9yks76f0nar3smc8djan3xr-paperwork-2.0.2/lib/python3.8/site-packages/paperwork_gtk/icon/out/paperwork_128.png.
+    site=$out/lib/${python3Packages.python.libPrefix}/site-packages/paperwork_gtk
+    for i in $site/data/paperwork_*.png; do
+      ln -s $i $site/icon/out;
+    done
   '';
 
   checkInputs = [ xvfb_run dbus.daemon ];
diff --git a/pkgs/applications/office/paperwork/paperwork-shell.nix b/pkgs/applications/office/paperwork/paperwork-shell.nix
index 1be6f329e3c..7e633f54f9e 100644
--- a/pkgs/applications/office/paperwork/paperwork-shell.nix
+++ b/pkgs/applications/office/paperwork/paperwork-shell.nix
@@ -10,6 +10,7 @@
 , paperwork-backend
 , fabulous
 , getkey
+, psutil
 
 , pkgs
 }:
@@ -34,6 +35,7 @@ buildPythonPackage rec {
     paperwork-backend
     fabulous
     getkey
+    psutil
   ];
 
   checkInputs = [
diff --git a/pkgs/applications/office/paperwork/src.nix b/pkgs/applications/office/paperwork/src.nix
index 70770676edd..45c05cc4962 100644
--- a/pkgs/applications/office/paperwork/src.nix
+++ b/pkgs/applications/office/paperwork/src.nix
@@ -1,12 +1,12 @@
 {fetchFromGitLab}:
 rec {
-  version = "2.0.1";
+  version = "2.0.2";
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     repo = "paperwork";
     group = "World";
     owner = "OpenPaperwork";
     rev = version;
-    sha256 = "16pc4drwpjl4937wdavs6wk0j1qs474b072wplhs8ywxfgqip1h4";
+    sha256 = "1di7nnl8ywyiwfpl5m1kvip1m0hvijbmqmkdpviwqw7ajizrr1ly";
   };
 }
diff --git a/pkgs/applications/office/zanshin/default.nix b/pkgs/applications/office/zanshin/default.nix
index e3b9408ed96..843e7ec0145 100644
--- a/pkgs/applications/office/zanshin/default.nix
+++ b/pkgs/applications/office/zanshin/default.nix
@@ -1,6 +1,7 @@
 { mkDerivation
 , lib
 , fetchurl
+, fetchpatch
 , extra-cmake-modules
 , qtbase
 , boost
@@ -24,6 +25,15 @@ mkDerivation rec {
     sha256 = "0b316ddcd46sawva84x5d8nsp19v66gbm83djrra7fv3k8nkv4xh";
   };
 
+  patches = [
+    # Build with kontactinterface >= 5.14.42.
+    # Remove after next release.
+    (fetchpatch {
+      url = "https://invent.kde.org/pim/zanshin/-/commit/4850c08998b33b37af99c3312d193b063b3e8174.diff";
+      sha256 = "sha256:0lh0a035alhmws3zyfnkb814drq5cqxvzpwl4g1g5d435gy8k4ps";
+    })
+  ];
+
   nativeBuildInputs = [
     extra-cmake-modules
   ];
@@ -48,6 +58,5 @@ mkDerivation rec {
     maintainers = with maintainers; [ zraexy ];
     platforms = platforms.linux;
     license = licenses.gpl2Plus;
-    broken = true;
   };
 }
diff --git a/pkgs/applications/printing/pappl/default.nix b/pkgs/applications/printing/pappl/default.nix
new file mode 100644
index 00000000000..5cad364d240
--- /dev/null
+++ b/pkgs/applications/printing/pappl/default.nix
@@ -0,0 +1,62 @@
+{ lib, stdenv, fetchFromGitHub
+, avahi
+, cups
+, gnutls
+, libjpeg
+, libpng
+, libusb1
+, pkg-config
+, withPAMSupport ? true, pam
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "pappl";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "michaelrsweet";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1cg06v8hxska0hnybnmfda1v4h3ifjir24nx2iqx80kb6jq0hayb";
+  };
+
+  outputs = [ "out" "dev" ];
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    cups
+    libjpeg
+    libpng
+    libusb1
+    zlib
+  ] ++ lib.optionals (!stdenv.isDarwin) [
+    # upstream mentions these are not needed for Mac
+    # see: https://github.com/michaelrsweet/pappl#requirements
+    avahi
+    gnutls
+  ] ++ lib.optionals withPAMSupport [
+    pam
+  ];
+
+  # testing requires some networking
+  # doCheck = true;
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/pappl-makeresheader --help
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "C-based framework/library for developing CUPS Printer Applications";
+    homepage = "https://github.com/michaelrsweet/pappl";
+    license = licenses.asl20;
+    platforms = platforms.linux; # should also work for darwin, but requires additional work
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/pkgs/applications/radio/sdrangel/default.nix b/pkgs/applications/radio/sdrangel/default.nix
index dd8c56610c2..96f6df2744b 100644
--- a/pkgs/applications/radio/sdrangel/default.nix
+++ b/pkgs/applications/radio/sdrangel/default.nix
@@ -26,18 +26,19 @@ qtserialport,
 qtwebsockets,
 rtl-sdr,
 serialdv,
+soapysdr-with-plugins,
 uhd
 }:
 
 mkDerivation rec {
   pname = "sdrangel";
-  version = "4.21.1";
+  version = "6.4.0";
 
   src = fetchFromGitHub {
     owner = "f4exb";
     repo = "sdrangel";
     rev = "v${version}";
-    sha256 = "y6BVwnSJXiapgm9pAuby1DLLeU5MSyB4uqEa3oS35/U=";
+    sha256 = "4iJoKs0BHmBR6JRFuTIqs0GW3SjhPRMPRlqdyTI38T4=";
     fetchSubmodules = false;
   };
 
@@ -46,12 +47,13 @@ mkDerivation rec {
     glew opencv3 libusb1 boost libopus limesuite libav libiio libpulseaudio
     qtbase qtwebsockets qtmultimedia rtl-sdr airspy hackrf
     fftwFloat codec2 cm256cc serialdv qtserialport
-    libbladeRF uhd
+    libbladeRF uhd soapysdr-with-plugins
   ];
   cmakeFlags = [
     "-DLIBSERIALDV_INCLUDE_DIR:PATH=${serialdv}/include/serialdv"
     "-DLIMESUITE_INCLUDE_DIR:PATH=${limesuite}/include"
     "-DLIMESUITE_LIBRARY:FILEPATH=${limesuite}/lib/libLimeSuite.so"
+    "-DSOAPYSDR_DIR=${soapysdr-with-plugins}"
   ];
 
   LD_LIBRARY_PATH = "${ocl-icd}/lib";
diff --git a/pkgs/applications/radio/soapyaudio/default.nix b/pkgs/applications/radio/soapyaudio/default.nix
new file mode 100644
index 00000000000..ce5811b009e
--- /dev/null
+++ b/pkgs/applications/radio/soapyaudio/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, cmake, pkg-config
+, hamlib, rtaudio, alsaLib, libpulseaudio, libjack2, libusb1, soapysdr
+} :
+
+stdenv.mkDerivation rec {
+  pname = "soapyaudio";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "pothosware";
+    repo = "SoapyAudio";
+    rev = "soapy-audio-${version}";
+    sha256 = "0minlsc1lvmqm20vn5hb4im7pz8qwklfy7sbr2xr73xkrbqdahc0";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = [ hamlib rtaudio alsaLib libpulseaudio libjack2 libusb1 soapysdr ];
+
+  cmakeFlags = [
+    "-DSoapySDR_DIR=${soapysdr}/share/cmake/SoapySDR/"
+    "-DUSE_HAMLIB=ON"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/pothosware/SoapyAudio";
+    description = "SoapySDR plugin for amateur radio and audio devices";
+    license = licenses.mit;
+    maintainers = with maintainers; [ numinit ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/radio/soapyuhd/default.nix b/pkgs/applications/radio/soapyuhd/default.nix
index a169116c29a..b2223d1abb7 100644
--- a/pkgs/applications/radio/soapyuhd/default.nix
+++ b/pkgs/applications/radio/soapyuhd/default.nix
@@ -1,22 +1,19 @@
-{ stdenv, fetchFromGitHub, cmake, pkgconfig
+{ stdenv, fetchFromGitHub, cmake, pkg-config
 , uhd, boost, soapysdr
 } :
 
-let
-  version = "0.3.6";
-
-in stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "soapyuhd";
-  inherit version;
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "pothosware";
     repo = "SoapyUHD";
     rev = "soapy-uhd-${version}";
-    sha256 = "11kp5iv21k8lqwjjydzqmcxdgpm6yicw6d3jhzvcvwcavd41crs7";
+    sha256 = "14rk9ap9ayks2ma6mygca08yfds9bgfmip8cvwl87l06hwhnlwhj";
   };
 
-  nativeBuildInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [ uhd boost soapysdr ];
 
   cmakeFlags = [ "-DSoapySDR_DIR=${soapysdr}/share/cmake/SoapySDR/" ];
@@ -28,7 +25,7 @@ in stdenv.mkDerivation {
   meta = with stdenv.lib; {
     homepage = "https://github.com/pothosware/SoapyAirspy";
     description = "SoapySDR plugin for UHD devices";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ markuskowa ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/applications/radio/soundmodem/default.nix b/pkgs/applications/radio/soundmodem/default.nix
new file mode 100644
index 00000000000..d7410f92809
--- /dev/null
+++ b/pkgs/applications/radio/soundmodem/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, pkg-config, alsaLib, audiofile, gtk2, libxml2 }:
+
+stdenv.mkDerivation rec {
+  name = "soundmodem";
+  version = "0.20";
+
+  src = fetchurl {
+    url = "https://archive.org/download/${name}-${version}/${name}-${version}.tar.gz";
+    sha256 = "156l3wjnh5rcisxb42kcmlf74swf679v4xnj09zy5j74rd4h721z";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ alsaLib audiofile gtk2 libxml2 ];
+
+  patches = [ ./matFix.patch ];
+
+  doCheck = true;
+
+  meta = with stdenv.lib; {
+    description = "Audio based modem for ham radio supporting ax.25";
+    longDescription = ''
+      This software allows a standard PC soundcard to be used as a packet radio "modem". The whole processing is done on the main processor CPU.
+      Unlike previous packet radio modem software, this new release offers several new benefits:
+        - Now uses standard operating system sound drivers (OSS/Free under Linux, /dev/audio under Solaris and DirectSound under Windows), thus runs on all soundcards for which drivers for the desired operating system are available.
+        - No fixed relationship between bitrate, sampling rate, and modem parameters. Modems may be parametrized, and multiple modems may even run on the same audio channel!
+        - Usermode solution allows the use of MMX, VIS, Floating point and other media instruction sets to speed up computation.
+        - Cross platform builds from a single source code provides ubiquitous availability.
+    '';
+    #homepage = "http://gna.org/projects/soundmodem"; # official, but "Connection refused"
+    homepage = "http://soundmodem.vk4msl.id.au/";
+    downloadPage = "https://archive.org/download/${name}-${version}/${name}-${version}.tar.gz";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ ymarkus ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/radio/soundmodem/matFix.patch b/pkgs/applications/radio/soundmodem/matFix.patch
new file mode 100644
index 00000000000..55436cda3d4
--- /dev/null
+++ b/pkgs/applications/radio/soundmodem/matFix.patch
@@ -0,0 +1,11 @@
+--- a/matlib/mat.hh	2003-01-06 23:47:26.000000000 +0100
++++ b/matlib/mat.copy.hh	2021-01-06 10:05:34.332415179 +0100
+@@ -91,7 +91,7 @@
+                 memcpy(c, r, d1 * d3 * sizeof(c[0]));
+ }
+
+-template<typename T> void mdet(const T *c, unsigned int d)
++template<typename T> int mdet(const T *c, unsigned int d)
+ {
+         T *c2;
+         unsigned int i, j, k, l;
diff --git a/pkgs/applications/radio/urh/default.nix b/pkgs/applications/radio/urh/default.nix
index 5411571113d..3a51f77d7bd 100644
--- a/pkgs/applications/radio/urh/default.nix
+++ b/pkgs/applications/radio/urh/default.nix
@@ -5,13 +5,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "urh";
-  version = "2.9.0";
+  version = "2.9.1";
 
   src = fetchFromGitHub {
     owner = "jopohl";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1pcyj1vzv51j8rgi0hh9chw3vfkfi03bg1rg7gs4nk95ffmwx4pd";
+    sha256 = "0s8zlq2bx6hp8c522rkxj9kbkf3a0qj6iyg7q9dcxmcl3q2sanq9";
   };
 
   nativeBuildInputs = [ qt5.wrapQtAppsHook ];
diff --git a/pkgs/applications/science/astronomy/kstars/default.nix b/pkgs/applications/science/astronomy/kstars/default.nix
index fde8df61048..c32d671cb05 100644
--- a/pkgs/applications/science/astronomy/kstars/default.nix
+++ b/pkgs/applications/science/astronomy/kstars/default.nix
@@ -1,46 +1,51 @@
 {
-  stdenv, extra-cmake-modules, fetchurl,
+  lib, mkDerivation, extra-cmake-modules, fetchurl,
 
   kconfig, kdoctools, kguiaddons, ki18n, kinit, kiconthemes, kio,
-  knewstuff, kplotting, kwidgetsaddons, kxmlgui, wrapQtAppsHook,
+  knewstuff, kplotting, kwidgetsaddons, kxmlgui, knotifyconfig,
 
-  qtx11extras, qtwebsockets,
+
+  qtx11extras, qtwebsockets, qtkeychain, libsecret,
 
   eigen, zlib,
 
-  cfitsio, indilib, xplanet, libnova, gsl
+  cfitsio, indilib, xplanet, libnova, libraw, gsl, wcslib, stellarsolver
 }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "kstars";
-  version = "3.4.3";
+  version = "3.5.0";
 
   src = fetchurl {
-    url = "https://mirrors.mit.edu/kde/stable/kstars/kstars-${version}.tar.xz";
-    sha256 = "0j5yxg6ay6sic194skz6vjzg6yvrpb3gvypvs0frjrcjbsl1j4f8";
+    url = "mirror://kde/stable/kstars/kstars-${version}.tar.xz";
+    sha256 = "0fpkm75abn0hhdhfyvpfl6n0fr7gvw63xhb4hvwdrglhkf2nxam1";
   };
 
   patches = [
-    ./indi-fix.patch
+    # 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 wrapQtAppsHook ];
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kconfig kdoctools kguiaddons ki18n kinit kiconthemes kio
-    knewstuff kplotting kwidgetsaddons kxmlgui
+    knewstuff kplotting kwidgetsaddons kxmlgui knotifyconfig
 
-    qtx11extras qtwebsockets
+    qtx11extras qtwebsockets qtkeychain libsecret
 
     eigen zlib
 
-    cfitsio indilib xplanet libnova gsl
+    cfitsio indilib xplanet libnova libraw gsl wcslib stellarsolver
   ];
 
   cmakeFlags = [
     "-DINDI_NIX_ROOT=${indilib}"
+    "-DXPLANET_NIX_ROOT=${xplanet}"
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Virtual planetarium astronomy software";
     homepage = "https://kde.org/applications/education/org.kde.kstars";
     longDescription = ''
@@ -50,6 +55,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.gpl2;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ timput ];
+    maintainers = with maintainers; [ timput hjones2199 ];
   };
 }
diff --git a/pkgs/applications/science/astronomy/kstars/fs-fixes.patch b/pkgs/applications/science/astronomy/kstars/fs-fixes.patch
new file mode 100644
index 00000000000..b9bdfc0c5de
--- /dev/null
+++ b/pkgs/applications/science/astronomy/kstars/fs-fixes.patch
@@ -0,0 +1,59 @@
+--- 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/pkgs/applications/science/astronomy/kstars/indi-fix.patch b/pkgs/applications/science/astronomy/kstars/indi-fix.patch
deleted file mode 100644
index 9ff9f8a31dd..00000000000
--- a/pkgs/applications/science/astronomy/kstars/indi-fix.patch
+++ /dev/null
@@ -1,50 +0,0 @@
---- CMakeLists.txt	2020-11-02 13:58:06.119743710 -0600
-+++ kstars-3.4.3/CMakeLists.txt	2020-11-02 14:05:01.707799274 -0600
-@@ -4,5 +4,7 @@
- set (KStars_VERSION_REVISION 3)
- set (CMAKE_CXX_STANDARD 11)
- 
-+add_definitions(-DINDI_NIX_ROOT=${INDI_NIX_ROOT})
-+
- # Build KStars Lite with -DBUILD_KSTARS_LITE=ON
- option(BUILD_KSTARS_LITE "Build KStars Lite" OFF)
-
---- ksutils.cpp	2020-11-02 13:47:44.883596916 -0600
-+++ kstars-3.4.3/kstars/auxiliary/ksutils.cpp	2020-11-02 17:41:44.961937090 -0600
-@@ -1076,6 +1076,9 @@
- {
-     QString snap = QProcessEnvironment::systemEnvironment().value("SNAP");
-     QString flat = QProcessEnvironment::systemEnvironment().value("FLATPAK_DEST");
-+#define STR_EXPAND(x) #x
-+#define STR(x) STR_EXPAND(x)
-+    QString nix = QString(STR(INDI_NIX_ROOT));
- 
-     if (option == "fitsDir")
-     {
-@@ -1089,7 +1091,7 @@
-         if (flat.isEmpty() == false)
-             return flat + "/bin/indiserver";
-         else
--            return snap + "/usr/bin/indiserver";
-+            return nix + "/bin/indiserver";
-     }
-     else if (option == "INDIHubAgent")
-     {
-@@ -1099,7 +1101,7 @@
-         if (flat.isEmpty() == false)
-             return flat + "/bin/indihub-agent";
-         else
--            return snap + "/usr/bin/indihub-agent";
-+            return nix + "/bin/indihub-agent";
-     }
-     else if (option == "indiDriversDir")
-     {
-@@ -1109,7 +1111,7 @@
-         if (flat.isEmpty() == false)
-             return flat + "/share/indi";
-         else
--            return snap + "/usr/share/indi";
-+            return nix + "/share/indi";
- #else
-         return QStandardPaths::locate(QStandardPaths::GenericDataLocation, "indi", QStandardPaths::LocateDirectory);
- #endif
diff --git a/pkgs/applications/science/astronomy/phd2/default.nix b/pkgs/applications/science/astronomy/phd2/default.nix
index 98afba77c4f..7ddad385227 100644
--- a/pkgs/applications/science/astronomy/phd2/default.nix
+++ b/pkgs/applications/science/astronomy/phd2/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchFromGitHub, pkg-config, cmake, gtk3,
-  wxGTK30-gtk3, curl, gettext, glib, indilib, libnova }:
+{ stdenv, fetchFromGitHub, pkg-config, cmake, gtk3, wxGTK30-gtk3,
+  curl, gettext, glib, indilib, libnova, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "phd2";
@@ -12,13 +12,18 @@ stdenv.mkDerivation rec {
     sha256 = "1ih7m9lilh12xbhmwm9kkicaqy72mi3firl6df7m5x38n2zj3zm4";
   };
 
-  nativeBuildInputs = [ cmake pkg-config ];
+  nativeBuildInputs = [ cmake pkg-config wrapGAppsHook ];
   buildInputs = [ gtk3 wxGTK30-gtk3 curl gettext glib indilib libnova ];
 
   cmakeFlags = [
     "-DOPENSOURCE_ONLY=1"
   ];
 
+  # Fix broken wrapped name scheme by moving wrapped binary to where wrapper expects it
+  postFixup = ''
+    mv $out/bin/.phd2.bin-wrapped $out/bin/.phd2-wrapped.bin
+  '';
+
   meta = with stdenv.lib; {
     homepage = "https://openphdguiding.org/";
     description = "Telescope auto-guidance application";
diff --git a/pkgs/applications/science/biology/bowtie/default.nix b/pkgs/applications/science/biology/bowtie/default.nix
new file mode 100644
index 00000000000..964eeddb461
--- /dev/null
+++ b/pkgs/applications/science/biology/bowtie/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "bowtie";
+  version = "1.3.0";
+
+  src = fetchFromGitHub {
+    owner = "BenLangmead";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0da2kzyfsn6xv8mlqsv2vv7k8g0c9d2vgqzq8yqk888yljdzcrjp";
+  };
+
+  buildInputs = [ zlib ];
+
+  installFlags = [ "prefix=$(out)" ];
+
+  meta = with stdenv.lib; {
+    description = "An ultrafast memory-efficient short read aligner";
+    license = licenses.artistic2;
+    homepage = "http://bowtie-bio.sf.net/bowtie";
+    maintainers = with maintainers; [ prusnak ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/science/biology/bowtie2/default.nix b/pkgs/applications/science/biology/bowtie2/default.nix
index dc818e2fb86..603e5892ff1 100644
--- a/pkgs/applications/science/biology/bowtie2/default.nix
+++ b/pkgs/applications/science/biology/bowtie2/default.nix
@@ -1,19 +1,19 @@
-{ stdenv, fetchFromGitHub, zlib, tbb, python, perl }:
+{ stdenv, fetchFromGitHub, cmake, tbb, zlib }:
 
 stdenv.mkDerivation rec {
   pname = "bowtie2";
-  version = "2.3.5.1";
+  version = "2.4.2";
 
   src = fetchFromGitHub {
     owner = "BenLangmead";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1l1f0yhjqqvy4lpxfml1xwv7ayimwbpzazvp0281gb4jb5f5mr1a";
+    sha256 = "11apzq7l1lk3yxw97g9dfr0gwnvfh58x6apifcblgd66gbip3y1y";
   };
 
-  buildInputs = [ zlib tbb python perl ];
+  nativeBuildInputs = [ cmake ];
 
-  installFlags = [ "prefix=$(out)" ];
+  buildInputs = [ tbb zlib ];
 
   meta = with stdenv.lib; {
     description = "An ultrafast and memory-efficient tool for aligning sequencing reads to long reference sequences";
@@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
     homepage = "http://bowtie-bio.sf.net/bowtie2";
     maintainers = with maintainers; [ rybern ];
     platforms = platforms.all;
-    broken = stdenv.isAarch64;
+    broken = stdenv.isAarch64; # only x86 is supported
   };
 }
diff --git a/pkgs/applications/science/biology/last/default.nix b/pkgs/applications/science/biology/last/default.nix
index 0976e5a1080..6db7ae55da8 100644
--- a/pkgs/applications/science/biology/last/default.nix
+++ b/pkgs/applications/science/biology/last/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "last";
-  version = "1145";
+  version = "1170";
 
   src = fetchurl {
     url = "http://last.cbrc.jp/last-${version}.zip";
-    sha256 = "0g54nmxxrirgid1i1k5i6rf7vnjpk9548sy06yqb4fj7vdzqgq99";
+    sha256 = "sha256-hBuG6QGXtBrvNrtaZU+i8gxu2ZQw+srFRkbuWoL5JHc=";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/pkgs/applications/science/biology/raxml/default.nix b/pkgs/applications/science/biology/raxml/default.nix
index 5c7353af931..a77505c1b3f 100644
--- a/pkgs/applications/science/biology/raxml/default.nix
+++ b/pkgs/applications/science/biology/raxml/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     sha256 = "1jqjzhch0rips0vp04prvb8vmc20c5pdmsqn8knadcf91yy859fh";
   };
 
-  buildInputs = if mpi then [ pkgs.openmpi ] else [];
+  buildInputs = stdenv.lib.optionals mpi [ pkgs.openmpi ];
 
   # TODO darwin, AVX and AVX2 makefile targets
   buildPhase = if mpi then ''
diff --git a/pkgs/applications/science/biology/spades/default.nix b/pkgs/applications/science/biology/spades/default.nix
index d555f2873a6..776719579d9 100644
--- a/pkgs/applications/science/biology/spades/default.nix
+++ b/pkgs/applications/science/biology/spades/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, zlib, bzip2, cmake }:
+{ stdenv, fetchurl, zlib, bzip2, cmake, python3 }:
 
 stdenv.mkDerivation rec {
   pname = "SPAdes";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = [ zlib bzip2 ];
+  buildInputs = [ zlib bzip2 python3 ];
 
   doCheck = true;
 
diff --git a/pkgs/applications/science/biology/varscan/default.nix b/pkgs/applications/science/biology/varscan/default.nix
index e97c8f14451..2c395650e17 100644
--- a/pkgs/applications/science/biology/varscan/default.nix
+++ b/pkgs/applications/science/biology/varscan/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "varscan";
-  version = "2.4.2";
+  version = "2.4.4";
 
   src = fetchurl {
-    url = "https://github.com/dkoboldt/varscan/releases/download/${version}/VarScan.v${version}.jar";
-    sha256 = "0cfhshinyqgwc6i7zf8lhbfybyly2x5anrz824zyvdhzz5i69zrl";
+    url = "https://github.com/dkoboldt/varscan/raw/master/VarScan.v${version}.jar";
+    sha256 = "sha256-+yO3KrZ2+1qJvQIJHCtsmv8hC5a+4E2d7mrvTYtygU0=";
   };
 
   buildInputs = [ jre makeWrapper ];
diff --git a/pkgs/applications/science/chemistry/openmolcas/default.nix b/pkgs/applications/science/chemistry/openmolcas/default.nix
index d432e66a19f..317a83371ad 100644
--- a/pkgs/applications/science/chemistry/openmolcas/default.nix
+++ b/pkgs/applications/science/chemistry/openmolcas/default.nix
@@ -1,11 +1,9 @@
 { stdenv, fetchFromGitLab, cmake, gfortran, perl
-, openblas, blas, lapack, hdf5-cpp, python3, texlive
+, openblas, hdf5-cpp, python3, texlive
 , armadillo, openmpi, globalarrays, openssh
 , makeWrapper, fetchpatch
 } :
 
-assert blas.implementation == "openblas" && lapack.implementation == "openblas";
-
 let
   version = "20.10";
   gitLabRev = "v${version}";
@@ -74,7 +72,7 @@ in stdenv.mkDerivation {
     homepage = "https://gitlab.com/Molcas/OpenMolcas";
     maintainers = [ maintainers.markuskowa ];
     license = licenses.lgpl21;
-    platforms = platforms.linux;
+    platforms = [ "x86_64-linux" ];
   };
 }
 
diff --git a/pkgs/applications/science/chemistry/quantum-espresso/default.nix b/pkgs/applications/science/chemistry/quantum-espresso/default.nix
index 2443e6b23ab..071091f2ecf 100644
--- a/pkgs/applications/science/chemistry/quantum-espresso/default.nix
+++ b/pkgs/applications/science/chemistry/quantum-espresso/default.nix
@@ -4,12 +4,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "6.5";
+  version = "6.6";
   pname = "quantum-espresso";
 
   src = fetchurl {
     url = "https://gitlab.com/QEF/q-e/-/archive/qe-${version}/q-e-qe-${version}.tar.gz";
-    sha256 = "00nnsq1vq579xsmkvwrgs6bdqdcbdlsmcp4yfynnvs40ca52m2r5";
+    sha256 = "0b3718bwdqfyssyz25jknijar79qh5cf1bbizv9faliz135mcilj";
   };
 
   passthru = {
diff --git a/pkgs/applications/science/electronics/magic-vlsi/default.nix b/pkgs/applications/science/electronics/magic-vlsi/default.nix
index 6667f2be9c3..d6c9011efa6 100644
--- a/pkgs/applications/science/electronics/magic-vlsi/default.nix
+++ b/pkgs/applications/science/electronics/magic-vlsi/default.nix
@@ -1,19 +1,37 @@
-{ stdenv, fetchurl
-, m4, tcsh, libX11, tcl, tk
-, cairo, ncurses, mesa_glu, python3
+{ stdenv
+, fetchurl
+, python3
+, m4
+, cairo
+, libX11
+, mesa_glu
+, ncurses
+, tcl
+, tcsh
+, tk
 }:
 
 stdenv.mkDerivation rec {
   pname = "magic-vlsi";
-  version = "8.3.80";
+  version = "8.3.109";
 
   src = fetchurl {
     url    = "http://opencircuitdesign.com/magic/archive/magic-${version}.tgz";
-    sha256 = "0a5x4sh5xsr79pqbgv6221jc4fvaxkg2pvrdhy1cs4bmsc1sbm9j";
+    sha256 = "sha256-ZK4OF5XwjW1OJmOVUFqLklfpM10eIwCILygqIyjRbEQ=";
   };
 
-  buildInputs = [ m4 tcsh libX11 tcl tk cairo ncurses mesa_glu ];
   nativeBuildInputs = [ python3 ];
+  buildInputs = [
+    cairo
+    libX11
+    m4
+    mesa_glu
+    ncurses
+    tcl
+    tcsh
+    tk
+  ];
+
   enableParallelBuilding = true;
 
   configureFlags = [
@@ -37,6 +55,6 @@ stdenv.mkDerivation rec {
     description = "VLSI layout tool written in Tcl";
     homepage    = "http://opencircuitdesign.com/magic/";
     license     = licenses.mit;
-    maintainers = with maintainers; [ anna328p thoughtpolice ];
+    maintainers = with maintainers; [ anna328p thoughtpolice AndersonTorres ];
   };
 }
diff --git a/pkgs/applications/science/electronics/nanovna-saver/default.nix b/pkgs/applications/science/electronics/nanovna-saver/default.nix
index 62bda91e500..9f959bddf2d 100644
--- a/pkgs/applications/science/electronics/nanovna-saver/default.nix
+++ b/pkgs/applications/science/electronics/nanovna-saver/default.nix
@@ -2,7 +2,7 @@
 , qtbase }:
 
 let
-  version = "0.3.7";
+  version = "0.3.8";
   pname = "nanovna-saver";
 
 in mkDerivationWith python3Packages.buildPythonApplication {
@@ -12,7 +12,7 @@ in mkDerivationWith python3Packages.buildPythonApplication {
     owner = "NanoVNA-Saver";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0c22ckyypg91gfb2sdc684msw28nnb6r8cq3b362gafvv00a35mi";
+    sha256 = "0z83rwpnbbs1n74mx8dgh1d1crp90mannj9vfy161dmy4wzc5kpv";
   };
 
   nativeBuildInputs = [ wrapQtAppsHook ];
diff --git a/pkgs/applications/science/geometry/gama/default.nix b/pkgs/applications/science/geometry/gama/default.nix
index fe606125c55..c5e95d37b51 100644
--- a/pkgs/applications/science/geometry/gama/default.nix
+++ b/pkgs/applications/science/geometry/gama/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, fetchurl, lib, expat, octave, libxml2, texinfo }:
+{ stdenv, fetchurl, lib, expat, octave, libxml2, texinfo, zip }:
 stdenv.mkDerivation rec {
   pname = "gama";
-  version = "2.09";
+  version = "2.12";
 
   src = fetchurl {
     url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "0c1b28frl6109arj09v4zr1xs859krn8871mkvis517g5pb55dc9";
+    sha256 = "0zfilasalsy29b7viw0iwgnl9bkvp0l87gpxl1hx7379l8agwqyj";
   };
 
   buildInputs = [ expat ];
 
-  nativeBuildInputs = [ texinfo ];
+  nativeBuildInputs = [ texinfo zip ];
 
   checkInputs = [ octave libxml2 ];
   doCheck = true;
diff --git a/pkgs/applications/science/logic/cryptoverif/default.nix b/pkgs/applications/science/logic/cryptoverif/default.nix
index 28295ea2892..78861786def 100644
--- a/pkgs/applications/science/logic/cryptoverif/default.nix
+++ b/pkgs/applications/science/logic/cryptoverif/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cryptoverif";
-  version = "2.03pl1";
+  version = "2.04";
 
   src = fetchurl {
     url    = "http://prosecco.gforge.inria.fr/personal/bblanche/cryptoverif/cryptoverif${version}.tar.gz";
-    sha256 = "0q7qa1qm7mbky3m36445gdmgmkb9mrhrdsk7mmwn8fzw0rfc6z00";
+    sha256 = "1mzk6n0g2vdsv38y493zg85lxrpz72b92cmsray3g970xzanqd6s";
   };
 
   buildInputs = [ ocaml ];
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   ** from under $out/libexec. By default, it expects to find the files
   ** in $CWD which doesn't work. */
   patchPhase = ''
-    substituteInPlace ./src/settings.ml \
+    substituteInPlace ./src/syntax.ml \
       --replace \"default\" \"$out/libexec/default\"
   '';
 
diff --git a/pkgs/applications/science/math/bcal/default.nix b/pkgs/applications/science/math/bcal/default.nix
index 18b6e051b3f..5df2d20549c 100644
--- a/pkgs/applications/science/math/bcal/default.nix
+++ b/pkgs/applications/science/math/bcal/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, fetchFromGitHub, python3Packages, readline }:
+{ stdenv, fetchFromGitHub, python3Packages, readline, bc }:
 
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "bcal";
-  version = "1.9";
+  version = "2.2";
 
   src = fetchFromGitHub {
     owner = "jarun";
     repo = "bcal";
     rev = "v${version}";
-    sha256 = "0h6qi5rvzl6c6fsfdpdb3l4jcgip03l18i0b1x08z1y89i56y8mm";
+    sha256 = "4vR5rcbNkoEdSRNoMH9qMHP3iWFxejkVfXNiYfwbo/A=";
   };
 
   nativeBuildInputs = [ python3Packages.pytest ];
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ readline ];
 
   doCheck = true;
+  checkInputs = [ bc ];
   checkPhase = ''
     python3 -m pytest test.py
   '';
@@ -27,7 +28,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Storage conversion and expression calculator";
     homepage = "https://github.com/jarun/bcal";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     platforms = [ "aarch64-linux" "x86_64-darwin" "x86_64-linux" ];
     maintainers = with maintainers; [ jfrankenau ];
   };
diff --git a/pkgs/applications/science/math/geogebra/default.nix b/pkgs/applications/science/math/geogebra/default.nix
index a6950ad3451..a0548ffb232 100644
--- a/pkgs/applications/science/math/geogebra/default.nix
+++ b/pkgs/applications/science/math/geogebra/default.nix
@@ -27,7 +27,7 @@ let
       calculus in one easy-to-use package.
     '';
     homepage = "https://www.geogebra.org/";
-    maintainers = with maintainers; [ ma27 ];
+    maintainers = with maintainers; [ ];
     license = with licenses; [ gpl3 cc-by-nc-sa-30 geogebra ];
     platforms = with platforms; linux ++ darwin;
     hydraPlatforms = [];
diff --git a/pkgs/applications/science/math/giac/default.nix b/pkgs/applications/science/math/giac/default.nix
index ea9c921f19e..b090274919b 100644
--- a/pkgs/applications/science/math/giac/default.nix
+++ b/pkgs/applications/science/math/giac/default.nix
@@ -9,11 +9,11 @@ assert (!blas.isILP64) && (!lapack.isILP64);
 
 stdenv.mkDerivation rec {
   pname = "giac${lib.optionalString enableGUI "-with-xcas"}";
-  version = "1.5.0-21"; # TODO try to remove preCheck phase on upgrade
+  version = "1.5.0-87"; # TODO try to remove preCheck phase on upgrade
 
   src = fetchurl {
     url = "https://www-fourier.ujf-grenoble.fr/~parisse/debian/dists/stable/main/source/giac_${version}.tar.gz";
-    sha256 = "1b9khiv0mk2xzw1rblm2jy6qsf8y6f9k7qy15sxpb21d72hzzbl2";
+    sha256 = "1d0h1yb7qvh9x7wwv9yrzmcp712f49w1iljkxp4y6g9pzsmg1mmv";
   };
 
   patches = stdenv.lib.optionals (!enableGUI) [
diff --git a/pkgs/applications/science/math/mathematica/default.nix b/pkgs/applications/science/math/mathematica/default.nix
index d04a89bd884..ea9a9c1b755 100644
--- a/pkgs/applications/science/math/mathematica/default.nix
+++ b/pkgs/applications/science/math/mathematica/default.nix
@@ -12,7 +12,7 @@
 , glib
 , libssh2
 , ncurses
-, opencv2
+, opencv4
 , openssl
 , unixODBC
 , xkeyboard_config
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
     glib
     libssh2
     ncurses
-    opencv2
+    opencv4
     openssl
     stdenv.cc.cc.lib
     unixODBC
diff --git a/pkgs/applications/science/math/mathematica/l10ns.nix b/pkgs/applications/science/math/mathematica/l10ns.nix
index 8ec6ac5048d..896983ce156 100644
--- a/pkgs/applications/science/math/mathematica/l10ns.nix
+++ b/pkgs/applications/science/math/mathematica/l10ns.nix
@@ -8,22 +8,10 @@ let allVersions = with lib; flip map
   # N.B. Versions in this list should be ordered from newest to oldest.
   [
     {
-      version = "12.1.1";
+      version = "12.2.0";
       lang = "en";
       language = "English";
-      sha256 = "02mk8gmv8idnakva1nc7r7mx8ld02lk7jgsj1zbn962aps3bhixd";
-    }
-    {
-      version = "12.1.0";
-      lang = "en";
-      language = "English";
-      sha256 = "15m9l20jvkxh5w6mbp81ys7mx2lx5j8acw5gz0il89lklclgb8z7";
-    }
-    {
-      version = "12.0.0";
-      lang = "en";
-      language = "English";
-      sha256 = "b9fb71e1afcc1d72c200196ffa434512d208fa2920e207878433f504e58ae9d7";
+      sha256 = "3b6676a203c6adb7e9c418a5484b037974287b5be09c64e7dfea74ddc0e400d7";
     }
     {
       version = "11.3.0";
diff --git a/pkgs/applications/science/math/maxima/default.nix b/pkgs/applications/science/math/maxima/default.nix
index 1bf7d16f290..cdc81a87646 100644
--- a/pkgs/applications/science/math/maxima/default.nix
+++ b/pkgs/applications/science/math/maxima/default.nix
@@ -87,6 +87,10 @@ stdenv.mkDerivation ({
 
   enableParallelBuilding = true;
 
+  passthru = {
+    ecl = ecl;
+  };
+
   meta = {
     description = "Computer algebra system";
     homepage = "http://maxima.sourceforge.net";
diff --git a/pkgs/applications/science/math/nauty/default.nix b/pkgs/applications/science/math/nauty/default.nix
index 76e7c796a13..94b7ad266c4 100644
--- a/pkgs/applications/science/math/nauty/default.nix
+++ b/pkgs/applications/science/math/nauty/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
   version = "27r1";
   src = fetchurl {
     url = "http://pallini.di.uniroma1.it/nauty${version}.tar.gz";
-    sha256 = "1nym0p2djws8ylkpr0kgpxfa6fxdlh46cmvz0gn5vd02jzgs0aww";
+    sha256 = "0xsfqfcknbd6g6wzpa5l7crmmk3bf3zjh37rhylq6b20dqcmvjkn";
   };
   outputs = [ "out" "dev" ];
   configureFlags = [
diff --git a/pkgs/applications/science/math/pari/default.nix b/pkgs/applications/science/math/pari/default.nix
index a3e2f99ab27..7ec42d11ab1 100644
--- a/pkgs/applications/science/math/pari/default.nix
+++ b/pkgs/applications/science/math/pari/default.nix
@@ -15,7 +15,8 @@ stdenv.mkDerivation rec {
   version = "2.11.4";
 
   src = fetchurl {
-    url = "https://pari.math.u-bordeaux.fr/pub/pari/unix/${pname}-${version}.tar.gz";
+    # 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/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.gz";
     sha256 = "sha256-v8iPxPc1L0hA5uNSxy8DacvqikVAOxg0piafNwmXCxw=";
   };
 
diff --git a/pkgs/applications/science/math/pynac/default.nix b/pkgs/applications/science/math/pynac/default.nix
index 87fb205174b..e3474d865e2 100644
--- a/pkgs/applications/science/math/pynac/default.nix
+++ b/pkgs/applications/science/math/pynac/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, fetchurl
 , autoreconfHook
 , pkgconfig
 , flint
@@ -33,6 +34,14 @@ stdenv.mkDerivation rec {
     pkgconfig
   ];
 
+  patches = [
+    (fetchurl {
+      name = "py_ssize_t_clean.patch";
+      url = "https://git.sagemath.org/sage.git/plain/build/pkgs/pynac/patches/py_ssize_t_clean.patch?h=9.2";
+      sha256 = "0l3gbg9hc4v671zf4w376krnk3wh8hj3649610nlvzzxckcryzab";
+    })
+  ];
+
   meta = with stdenv.lib; {
     description = "Python is Not a CAS -- modified version of Ginac";
     longDescription = ''
diff --git a/pkgs/applications/science/math/sage/default.nix b/pkgs/applications/science/math/sage/default.nix
index caf51c3da25..416f2b957b7 100644
--- a/pkgs/applications/science/math/sage/default.nix
+++ b/pkgs/applications/science/math/sage/default.nix
@@ -9,31 +9,13 @@
 let
   inherit (pkgs) symlinkJoin callPackage nodePackages;
 
-  # https://trac.sagemath.org/ticket/15980 for tracking of python3 support
-  python = pkgs.python2.override {
+  python3 = pkgs.python3.override {
     packageOverrides = self: super: {
-      # python packages that appear unmaintained and were not accepted into the nixpkgs
-      # tree because of that. These packages are only dependencies of the more-or-less
-      # deprecated sagenb. However sagenb is still a default dependency and the doctests
-      # depend on it.
-      # See https://github.com/NixOS/nixpkgs/pull/38787 for a discussion.
-      # The dependency on the sage notebook (and therefore these packages) will be
-      # removed in the future:
-      # https://trac.sagemath.org/ticket/25837
-      flask-oldsessions = self.callPackage ./flask-oldsessions.nix {};
-      flask-openid = self.callPackage ./flask-openid.nix {};
-      python-openid = self.callPackage ./python-openid.nix {};
-      sagenb = self.callPackage ./sagenb.nix {
-        mathjax = nodePackages.mathjax;
-      };
-
-      # Package with a cyclic dependency with sage
-      pybrial = self.callPackage ./pybrial.nix {};
-
       # `sagelib`, i.e. all of sage except some wrappers and runtime dependencies
       sagelib = self.callPackage ./sagelib.nix {
-        inherit flint ecl arb;
+        inherit flint arb;
         inherit sage-src env-locations pynac singular;
+        ecl = maxima-ecl.ecl;
         linbox = pkgs.linbox.override { withSage = true; };
         pkg-config = pkgs.pkgconfig; # not to confuse with pythonPackages.pkgconfig
       };
@@ -59,9 +41,10 @@ let
   # A bash script setting various environment variables to tell sage where
   # the files its looking fore are located. Also see `sage-env`.
   env-locations = callPackage ./env-locations.nix {
-    inherit pari_data ecl;
+    inherit pari_data;
     inherit singular maxima-ecl;
-    cysignals = python.pkgs.cysignals;
+    ecl = maxima-ecl.ecl;
+    cysignals = python3.pkgs.cysignals;
     three = nodePackages.three;
     mathjax = nodePackages.mathjax;
   };
@@ -69,21 +52,22 @@ let
   # The shell file that gets sourced on every sage start. Will also source
   # the env-locations file.
   sage-env = callPackage ./sage-env.nix {
-    sagelib = python.pkgs.sagelib;
+    sagelib = python3.pkgs.sagelib;
     inherit env-locations;
-    inherit python ecl singular palp flint pynac pythonEnv maxima-ecl;
+    inherit python3 singular palp flint pynac pythonEnv maxima-ecl;
+    ecl = maxima-ecl.ecl;
     pkg-config = pkgs.pkgconfig; # not to confuse with pythonPackages.pkgconfig
   };
 
   # The documentation for sage, building it takes a lot of ram.
   sagedoc = callPackage ./sagedoc.nix {
     inherit sage-with-env;
-    inherit python maxima-ecl;
+    inherit python3 maxima-ecl;
   };
 
   # sagelib with added wrappers and a dependency on sage-tests to make sure thet tests were run.
   sage-with-env = callPackage ./sage-with-env.nix {
-    inherit pythonEnv;
+    inherit python3 pythonEnv;
     inherit sage-env;
     inherit pynac singular maxima-ecl;
     pkg-config = pkgs.pkgconfig; # not to confuse with pythonPackages.pkgconfig
@@ -100,10 +84,8 @@ let
 
   sage-src = callPackage ./sage-src.nix {};
 
-  pythonRuntimeDeps = with python.pkgs; [
+  pythonRuntimeDeps = with python3.pkgs; [
     sagelib
-    pybrial
-    sagenb
     cvxopt
     networkx
     service-identity
@@ -116,11 +98,10 @@ let
     ipywidgets
     rpy2
     sphinx
-    typing
     pillow
   ];
 
-  pythonEnv = python.buildEnv.override {
+  pythonEnv = python3.buildEnv.override {
     extraLibs = pythonRuntimeDeps;
     ignoreCollisions = true;
   } // { extraLibs = pythonRuntimeDeps; }; # make the libs accessible
@@ -129,8 +110,21 @@ let
 
   singular = pkgs.singular.override { inherit flint; };
 
-  # https://trac.sagemath.org/ticket/26625
-  maxima-ecl = pkgs.maxima-ecl;
+  maxima-ecl = pkgs.maxima-ecl.override {
+    ecl = pkgs.ecl.override {
+      # "echo syntax error | ecl > /dev/full 2>&1" segfaults in
+      # ECL. We apply a patch to fix it (write_error.patch), but it
+      # only works if threads are disabled.  sage 9.2 tests this
+      # (src/sage/interfaces/tests.py) and ships ecl like so.
+      # https://gitlab.com/embeddable-common-lisp/ecl/-/merge_requests/1#note_1657275
+      threadSupport = false;
+
+      # if we don't use the system boehmgc, sending a SIGINT to ecl
+      # can segfault if we it happens during memory allocation.
+      # src/sage/libs/ecl.pyx would intermittently fail in this case.
+      useBoehmgc = true;
+    };
+  };
 
   # *not* to confuse with the python package "pynac"
   pynac = pkgs.pynac.override { inherit singular flint; };
@@ -161,9 +155,6 @@ let
       pari-seadata-small
     ];
   };
-
-  # https://trac.sagemath.org/ticket/22191
-  ecl = pkgs.ecl_16_1_2;
 in
 # A wrapper around sage that makes sure sage finds its docs (if they were build).
 callPackage ./sage.nix {
diff --git a/pkgs/applications/science/math/sage/env-locations.nix b/pkgs/applications/science/math/sage/env-locations.nix
index bda2d23b9e5..b1ad0aad9c7 100644
--- a/pkgs/applications/science/math/sage/env-locations.nix
+++ b/pkgs/applications/science/math/sage/env-locations.nix
@@ -44,6 +44,6 @@ writeTextFile rec {
     export JSMOL_DIR="${jmol}/share/jsmol"
     export MATHJAX_DIR="${mathjax}/lib/node_modules/mathjax"
     export THREEJS_DIR="${three}/lib/node_modules/three"
-    export SAGE_INCLUDE_DIRECTORIES="${cysignals}/lib/python2.7/site-packages"
+    export SAGE_INCLUDE_DIRECTORIES="${cysignals}/${cysignals.pythonModule.sitePackages}"
   '';
 }
diff --git a/pkgs/applications/science/math/sage/flask-oldsessions.nix b/pkgs/applications/science/math/sage/flask-oldsessions.nix
deleted file mode 100644
index 86fe9912c19..00000000000
--- a/pkgs/applications/science/math/sage/flask-oldsessions.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, python
-, flask
-}:
-
-buildPythonPackage rec {
-  pname = "Flask-OldSessions";
-  version = "0.10";
-
-  # no artifact on pypi: https://github.com/mitsuhiko/flask-oldsessions/issues/1
-  src = fetchFromGitHub {
-    owner = "mitsuhiko";
-    repo = "flask-oldsessions";
-    rev = version;
-    sha256 = "04b5m8njjiwld9a0zw55iqwvyjgwcpdbhz1cic8nyhgcmypbicqn";
-  };
-
-  propagatedBuildInputs = [
-    flask
-  ];
-
-  # missing module flask.testsuite, probably assumes an old version of flask
-  doCheck = false;
-  checkPhase = ''
-    ${python.interpreter} run-tests.py
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Provides a session class that works like the one in Flask before 0.10.";
-    license = licenses.bsd2;
-    maintainers = teams.sage.members;
-    homepage = "https://github.com/mitsuhiko/flask-oldsessions";
-  };
-}
diff --git a/pkgs/applications/science/math/sage/flask-openid.nix b/pkgs/applications/science/math/sage/flask-openid.nix
deleted file mode 100644
index 900b033429e..00000000000
--- a/pkgs/applications/science/math/sage/flask-openid.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, flask
-, python-openid
-}:
-
-buildPythonPackage rec {
-  pname = "Flask-OpenID";
-  version = "1.2.5";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1aycwmwi7ilcaa5ab8hm0bp6323zl8z25q9ha0gwrl8aihfgx3ss";
-  };
-
-  propagatedBuildInputs = [
-    flask
-    python-openid
-  ];
-
-  meta = with stdenv.lib; {
-    description = "Adds openid support to flask applications";
-    license = licenses.bsd2;
-    maintainers = teams.sage.members;
-    homepage = "https://pythonhosted.org/Flask-OpenID/";
-  };
-}
diff --git a/pkgs/applications/science/math/sage/patches/Only-test-py2-py3-optional-tests-when-all-of-sage-is.patch b/pkgs/applications/science/math/sage/patches/Only-test-py2-py3-optional-tests-when-all-of-sage-is.patch
index 8cd80281d0e..d5c19a54fd9 100644
--- a/pkgs/applications/science/math/sage/patches/Only-test-py2-py3-optional-tests-when-all-of-sage-is.patch
+++ b/pkgs/applications/science/math/sage/patches/Only-test-py2-py3-optional-tests-when-all-of-sage-is.patch
@@ -1,17 +1,17 @@
-From 8218bd4fdeb4c92de8af0d3aabec55980fc4fb3d Mon Sep 17 00:00:00 2001
+From f5ea42a7aaed7611fb55b65897b9fcf2b7bcf97e Mon Sep 17 00:00:00 2001
 From: Timo Kaufmann <timokau@zoho.com>
 Date: Sun, 21 Oct 2018 17:52:40 +0200
 Subject: [PATCH] Only test py2/py3 optional tests when all of sage is tested
 
 ---
- src/sage/doctest/control.py | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
+ src/sage/doctest/control.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/src/sage/doctest/control.py b/src/sage/doctest/control.py
-index bf18df8b2b..935c67abf7 100644
+index 2d93841e50..6d156e29a1 100644
 --- a/src/sage/doctest/control.py
 +++ b/src/sage/doctest/control.py
-@@ -362,7 +362,8 @@ class DocTestController(SageObject):
+@@ -375,7 +375,8 @@ class DocTestController(SageObject):
                      if not optionaltag_regex.search(o):
                          raise ValueError('invalid optional tag {!r}'.format(o))
  
@@ -21,15 +21,6 @@ index bf18df8b2b..935c67abf7 100644
  
          self.options = options
  
-@@ -765,7 +766,7 @@ class DocTestController(SageObject):
-             sage: DC = DocTestController(DD, [dirname])
-             sage: DC.expand_files_into_sources()
-             sage: sorted(DC.sources[0].options.optional)  # abs tol 1
--            ['guava', 'magma', 'py2']
-+            ['guava', 'magma']
- 
-         We check that files are skipped appropriately::
- 
 -- 
-2.18.1
+2.28.0
 
diff --git a/pkgs/applications/science/math/sage/patches/do-not-test-find-library.patch b/pkgs/applications/science/math/sage/patches/do-not-test-find-library.patch
index 3f844e1b1ef..98175920238 100644
--- a/pkgs/applications/science/math/sage/patches/do-not-test-find-library.patch
+++ b/pkgs/applications/science/math/sage/patches/do-not-test-find-library.patch
@@ -1,17 +1,17 @@
 diff --git a/src/sage/env.py b/src/sage/env.py
-index 061b94f3f1..67cd091540 100644
+index 1ddfc7cfb9..45033d6328 100644
 --- a/src/sage/env.py
 +++ b/src/sage/env.py
-@@ -189,88 +189,13 @@ var('MAXIMA_FAS')
+@@ -203,97 +203,13 @@ var('ARB_LIBRARY',                   'arb')
  var('SAGE_BANNER', '')
  var('SAGE_IMPORTALL', 'yes')
  
 -
 -def _get_shared_lib_filename(libname, *additional_libnames):
 -    """
--    Return the full path to a shared library file installed in the standard
--    location for the system within the ``LIBDIR`` prefix (or
--    ``$SAGE_LOCAL/lib`` in the case of manual build of Sage).
+-    Return the full path to a shared library file installed in
+-    ``$SAGE_LOCAL/lib`` or the directories associated with the
+-    Python sysconfig.
 -
 -    This can also be passed more than one library name (e.g. for cases where
 -    some library may have multiple names depending on the platform) in which
@@ -25,7 +25,7 @@ index 061b94f3f1..67cd091540 100644
 -    For distributions like Debian that use a multiarch layout, we also try the
 -    multiarch lib paths (i.e. ``/usr/lib/<arch>/``).
 -
--    Returns ``None`` if the file does not exist.
+-    This returns ``None`` if the file does not exist.
 -
 -    EXAMPLES::
 -
@@ -48,11 +48,17 @@ index 061b94f3f1..67cd091540 100644
 -
 -    for libname in (libname,) + additional_libnames:
 -        if sys.platform == 'cygwin':
--            bindir = sysconfig.get_config_var('BINDIR')
+-            # Later down we take the last matching DLL found, so search
+-            # SAGE_LOCAL second so that it takes precedence
+-            bindirs = [
+-                sysconfig.get_config_var('BINDIR'),
+-                os.path.join(SAGE_LOCAL, 'bin')
+-            ]
 -            pats = ['cyg{}.dll'.format(libname), 'cyg{}-*.dll'.format(libname)]
 -            filenames = []
--            for pat in pats:
--                filenames += glob.glob(os.path.join(bindir, pat))
+-            for bindir in bindirs:
+-                for pat in pats:
+-                    filenames += glob.glob(os.path.join(bindir, pat))
 -
 -            # Note: This is not very robust, since if there are multi DLL
 -            # versions for the same library this just selects one more or less
@@ -66,10 +72,13 @@ index 061b94f3f1..67cd091540 100644
 -            else:
 -                ext = 'so'
 -
--            libdirs = [sysconfig.get_config_var('LIBDIR')]
+-            libdirs = [
+-                os.path.join(SAGE_LOCAL, 'lib'),
+-                sysconfig.get_config_var('LIBDIR')
+-            ]
 -            multilib = sysconfig.get_config_var('MULTILIB')
 -            if multilib:
--                libdirs.insert(0, os.path.join(libdirs[0], multilib))
+-                libdirs.insert(1, os.path.join(libdirs[0], multilib))
 -
 -            for libdir in libdirs:
 -                basename = 'lib{}.{}'.format(libname, ext)
@@ -89,7 +98,7 @@ index 061b94f3f1..67cd091540 100644
  
  # locate libgap shared object
 -GAP_SO= _get_shared_lib_filename('gap','')
-+GAP_SO= '/default'
++GAP_SO = '/default'
  var('GAP_SO', GAP_SO)
  
  # post process
diff --git a/pkgs/applications/science/math/sage/patches/docutils-0.15.patch b/pkgs/applications/science/math/sage/patches/docutils-0.15.patch
deleted file mode 100644
index 63f5d2e146d..00000000000
--- a/pkgs/applications/science/math/sage/patches/docutils-0.15.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff --git a/src/sage/misc/sphinxify.py b/src/sage/misc/sphinxify.py
-index 4849c2bffa..76b7bc8602 100644
---- a/src/sage/misc/sphinxify.py
-+++ b/src/sage/misc/sphinxify.py
-@@ -25,6 +25,7 @@ from __future__ import absolute_import, print_function
- import os
- import re
- import shutil
-+import warnings
- from tempfile import mkdtemp
- from sphinx.application import Sphinx
- 
-@@ -120,7 +121,10 @@ smart_quotes = no""")
-     # buildername, confoverrides, status, warning, freshenv).
-     sphinx_app = Sphinx(srcdir, confdir, outdir, doctreedir, format,
-                         confoverrides, None, None, True)
--    sphinx_app.build(None, [rst_name])
-+    with warnings.catch_warnings():
-+        # Quick and dirty workaround for https://trac.sagemath.org/ticket/28856#comment:19
-+        warnings.simplefilter("ignore")
-+        sphinx_app.build(None, [rst_name])
-     sys.path = old_sys_path
- 
-     # We need to remove "_" from __builtin__ that the gettext module installs
diff --git a/pkgs/applications/science/math/sage/patches/ignore-cmp-deprecation.patch b/pkgs/applications/science/math/sage/patches/ignore-cmp-deprecation.patch
index 11ca7481961..a91ee319b8f 100644
--- a/pkgs/applications/science/math/sage/patches/ignore-cmp-deprecation.patch
+++ b/pkgs/applications/science/math/sage/patches/ignore-cmp-deprecation.patch
@@ -1,24 +1,24 @@
 diff --git a/src/sage/tests/cmdline.py b/src/sage/tests/cmdline.py
-index bd6b76ab82..ccf1203dec 100644
+index 6e034dcb5a..8ec60ec72b 100644
 --- a/src/sage/tests/cmdline.py
 +++ b/src/sage/tests/cmdline.py
-@@ -837,8 +837,6 @@ def test_executable(args, input="", timeout=100.0, **kwds):
+@@ -660,8 +660,8 @@ def test_executable(args, input="", timeout=100.0, pydebug_ignore_warnings=False
+         sage: with open(input, 'w') as F:
+         ....:     _ = F.write(s)
+         sage: L = ["sage", "--rst2ipynb", input, output]
+-        sage: test_executable(L)                              # optional - rst2ipynb
+-        ('', '', 0)
++        sage: test_executable(L)[2]                           # optional - rst2ipynb
++        0
+         sage: import json                                     # optional - rst2ipynb
+         sage: d = json.load(open(output,'r'))                 # optional - rst2ipynb
+         sage: type(d)                                         # optional - rst2ipynb
+@@ -757,8 +757,6 @@ def test_executable(args, input="", timeout=100.0, pydebug_ignore_warnings=False
          ///
          4
          }}}
--        sage: err # py2
+-        sage: err # py2 # optional -- sagenb
 -        ''
-         sage: ret
+         sage: ret # py2 # optional -- sagenb
          0
  
-@@ -871,8 +869,8 @@ def test_executable(args, input="", timeout=100.0, **kwds):
-         sage: output = tmp_filename(ext='.sws')
-         sage: with open(input, 'w') as F:
-         ....:     _ = F.write(s)
--        sage: test_executable(["sage", "--rst2sws", input, output]) # py2
--        ('', '', 0)
-+        sage: test_executable(["sage", "--rst2sws", input, output])[2] # py2
-+        0
-         sage: import tarfile # py2
-         sage: f = tarfile.open(output, 'r') # py2
-         sage: print(f.extractfile('sage_worksheet/worksheet.html').read()) # py2
diff --git a/pkgs/applications/science/math/sage/patches/ignore-werkzeug-immutable-dict-deprecation.patch b/pkgs/applications/science/math/sage/patches/ignore-werkzeug-immutable-dict-deprecation.patch
deleted file mode 100644
index c5f95b498d5..00000000000
--- a/pkgs/applications/science/math/sage/patches/ignore-werkzeug-immutable-dict-deprecation.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/src/sage/all.py b/src/sage/all.py
-index c87c9372e9..862fca4fcc 100644
---- a/src/sage/all.py
-+++ b/src/sage/all.py
-@@ -306,6 +306,7 @@ warnings.filters.remove(('ignore', None, DeprecationWarning, None, 0))
- # Ignore all deprecations from IPython etc.
- warnings.filterwarnings('ignore', category=DeprecationWarning,
-     module='.*(IPython|ipykernel|jupyter_client|jupyter_core|nbformat|notebook|ipywidgets|storemagic)')
-+warnings.filterwarnings('ignore', category=DeprecationWarning, message=r".*The import 'werkzeug.ImmutableDict' is deprecated")
- # Ignore collections.abc warnings, there are a lot of them but they are
- # harmless.
- warnings.filterwarnings('ignore', category=DeprecationWarning,
diff --git a/pkgs/applications/science/math/sage/patches/pari-stackwarn.patch b/pkgs/applications/science/math/sage/patches/pari-stackwarn.patch
deleted file mode 100644
index 49cdfd189b9..00000000000
--- a/pkgs/applications/science/math/sage/patches/pari-stackwarn.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/src/sage/doctest/parsing.py b/src/sage/doctest/parsing.py
-index 6bdc9a0..31fc780 100644
---- a/src/sage/doctest/parsing.py
-+++ b/src/sage/doctest/parsing.py
-@@ -40,6 +40,7 @@ from .external import available_software
- 
- float_regex = re.compile('\s*([+-]?\s*((\d*\.?\d+)|(\d+\.?))([eE][+-]?\d+)?)')
- optional_regex = re.compile(r'(py2|py3|long time|not implemented|not tested|known bug)|([^ a-z]\s*optional\s*[:-]*((\s|\w)*))')
-+pari_stack_warning_regex = re.compile(r'\s*\*\*\*.*(Warning: increasing stack size to )\d+\.')
- find_sage_prompt = re.compile(r"^(\s*)sage: ", re.M)
- find_sage_continuation = re.compile(r"^(\s*)\.\.\.\.:", re.M)
- random_marker = re.compile('.*random', re.I)
-@@ -935,6 +936,7 @@ class SageOutputChecker(doctest.OutputChecker):
-             <type 'float'>
-         """
-         got = self.human_readable_escape_sequences(got)
-+        got = pari_stack_warning_regex.sub('', got)
-         if isinstance(want, MarkedOutput):
-             if want.random:
-                 return True
diff --git a/pkgs/applications/science/math/sage/patches/pillow-update.patch b/pkgs/applications/science/math/sage/patches/pillow-update.patch
new file mode 100644
index 00000000000..19d61552262
--- /dev/null
+++ b/pkgs/applications/science/math/sage/patches/pillow-update.patch
@@ -0,0 +1,39 @@
+diff --git a/src/sage/repl/image.py b/src/sage/repl/image.py
+index d7d00b0..cd1607a 100644
+--- a/src/sage/repl/image.py
++++ b/src/sage/repl/image.py
+@@ -77,7 +77,7 @@ class Image(SageObject):
+ 
+         - ``size`` -- 2-tuple, containing (width, height) in pixels.
+ 
+-        - ``color`` -- string or tuple of numeric. What colour to use
++        - ``color`` -- string, numeric or tuple of numeric. What colour to use
+           for the image. Default is black.  If given, this should be a
+           a tuple with one value per band. When creating RGB images,
+           you can also use colour strings as supported by the
+@@ -91,9 +91,15 @@ class Image(SageObject):
+         EXAMPLES::
+ 
+             sage: from sage.repl.image import Image
+-            sage: Image('P', (16, 16), (13,))
++            sage: Image('P', (16, 16), 13)
+             16x16px 8-bit Color image
+         """
++        # pillow does not support Sage integers as color
++        from sage.rings.integer import Integer
++        if isinstance(color, Integer):
++            color = int(color)
++        elif isinstance(color, tuple):
++            color = tuple(int(i) if isinstance(i, Integer) else i for i in color)
+         self._pil = PIL.Image.new(mode, size, color)
+ 
+     @property
+@@ -233,7 +239,7 @@ class Image(SageObject):
+         EXAMPLES::
+ 
+             sage: from sage.repl.image import Image
+-            sage: img = Image('P', (12, 34), (13,))
++            sage: img = Image('P', (12, 34), 13)
+             sage: filename = tmp_filename(ext='.png')
+             sage: img.save(filename)
+             sage: with open(filename, 'rb') as f:
diff --git a/pkgs/applications/science/math/sage/patches/python-5755-hotpatch.patch b/pkgs/applications/science/math/sage/patches/python-5755-hotpatch.patch
deleted file mode 100644
index 1b64f39fe60..00000000000
--- a/pkgs/applications/science/math/sage/patches/python-5755-hotpatch.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff --git a/src/sage/all.py b/src/sage/all.py
-index ca309ef..be3186b 100644
---- a/src/sage/all.py
-+++ b/src/sage/all.py
-@@ -298,6 +298,23 @@ warnings.filterwarnings('ignore', module='matplotlib[.]font_manager')
- warnings.filterwarnings('default',
-     '[\s\S]*See http://trac.sagemath.org/[0-9]* for details.')
- 
-+# Hotpatch around https://bugs.python.org/issue5755 which won't be fixed for
-+# python 2.7. Idea by https://stackoverflow.com/a/36293331.
-+from distutils.command.build_ext import build_ext
-+from distutils.sysconfig import customize_compiler
-+
-+_build_extensions = build_ext.build_extensions
-+
-+def build_extensions_patched(self):
-+    customize_compiler(self.compiler)
-+    try:
-+        self.compiler.compiler_so.remove("-Wstrict-prototypes")
-+    except (AttributeError, ValueError):
-+        pass
-+    _build_extensions(self)
-+
-+build_ext.build_extensions = build_extensions_patched
-+
- 
- # Set a new random number seed as the very last thing
- # (so that printing initial_seed() and using that seed
diff --git a/pkgs/applications/science/math/sage/patches/register-pretty-printer-earlier.patch b/pkgs/applications/science/math/sage/patches/register-pretty-printer-earlier.patch
new file mode 100644
index 00000000000..83bd83a6d33
--- /dev/null
+++ b/pkgs/applications/science/math/sage/patches/register-pretty-printer-earlier.patch
@@ -0,0 +1,36 @@
+diff --git a/src/sage/doctest/forker.py b/src/sage/doctest/forker.py
+index cb3667659e..867f547d71 100644
+--- a/src/sage/doctest/forker.py
++++ b/src/sage/doctest/forker.py
+@@ -200,6 +200,15 @@ def init_sage(controller=None):
+     from sage.cpython._py2_random import Random
+     sage.misc.randstate.DEFAULT_PYTHON_RANDOM = Random
+ 
++    # IPython's pretty printer sorts the repr of dicts by their keys by default
++    # (or their keys' str() if they are not otherwise orderable).  However, it
++    # disables this for CPython 3.6+ opting to instead display dicts' "natural"
++    # insertion order, which is preserved in those versions).
++    # However, this order is random in some instances.
++    # Also modifications of code may affect the order.
++    # So here we fore sorted dict printing.
++    IPython.lib.pretty.for_type(dict, _sorted_dict_pprinter_factory('{', '}'))
++
+     if controller is None:
+         import sage.repl.ipython_kernel.all_jupyter
+     else:
+@@ -222,15 +231,6 @@ def init_sage(controller=None):
+     from sage.repl.rich_output.backend_doctest import BackendDoctest
+     dm.switch_backend(BackendDoctest())
+ 
+-    # IPython's pretty printer sorts the repr of dicts by their keys by default
+-    # (or their keys' str() if they are not otherwise orderable).  However, it
+-    # disables this for CPython 3.6+ opting to instead display dicts' "natural"
+-    # insertion order, which is preserved in those versions).
+-    # However, this order is random in some instances.
+-    # Also modifications of code may affect the order.
+-    # So here we fore sorted dict printing.
+-    IPython.lib.pretty.for_type(dict, _sorted_dict_pprinter_factory('{', '}'))
+-
+     # Switch on extra debugging
+     from sage.structure.debug_options import debug
+     debug.refine_category_hash_check = True
diff --git a/pkgs/applications/science/math/sage/patches/sagenb-cmp-deprecation.patch b/pkgs/applications/science/math/sage/patches/sagenb-cmp-deprecation.patch
deleted file mode 100644
index 9f502a66951..00000000000
--- a/pkgs/applications/science/math/sage/patches/sagenb-cmp-deprecation.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/sagenb/__init__.py b/sagenb/__init__.py
-index 4db0d2cb..2fc5f01e 100644
---- a/sagenb/__init__.py
-+++ b/sagenb/__init__.py
-@@ -1,3 +1,8 @@
- # -*- coding: utf-8 -*
-   # init
-+import warnings
- from . import storage
-+
-+# deprecation in attrs, needs to be fixed in twisted
-+warnings.filterwarnings('ignore', category=DeprecationWarning,
-+    message=r'The usage of `cmp` is deprecated and will be removed.*')
diff --git a/pkgs/applications/science/math/sage/patches/sagespawn-implicit-casting.patch b/pkgs/applications/science/math/sage/patches/sagespawn-implicit-casting.patch
new file mode 100644
index 00000000000..2ee5db3e29c
--- /dev/null
+++ b/pkgs/applications/science/math/sage/patches/sagespawn-implicit-casting.patch
@@ -0,0 +1,13 @@
+diff --git a/src/sage/interfaces/sagespawn.pyx b/src/sage/interfaces/sagespawn.pyx
+index 9041238f1d..469befbc66 100644
+--- a/src/sage/interfaces/sagespawn.pyx
++++ b/src/sage/interfaces/sagespawn.pyx
+@@ -228,7 +228,7 @@ class SagePtyProcess(PtyProcess):
+         Check that the process eventually dies after calling
+         ``terminate_async``::
+ 
+-            sage: s.ptyproc.terminate_async(interval=0.2)
++            sage: s.ptyproc.terminate_async(interval=float(0.2))
+             sage: while True:
+             ....:     try:
+             ....:         os.kill(s.pid, 0)
diff --git a/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch b/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch
index 56f09279622..661077cfa8c 100644
--- a/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch
+++ b/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch
@@ -36,7 +36,7 @@ index 73a078e619..059125c59f 100644
          # Run Sphinx with Sage's special logger
 -        sys.argv = ["sphinx-build"] + build_command.split()
 -        from .sphinxbuild import runsphinx
-+        args = "python -um sage_setup.docbuild.sphinxbuild -N".split() + build_command.split()
++        args = "python3 -um sage_setup.docbuild.sphinxbuild -N".split() + build_command.split()
          try:
 -            runsphinx()
 +            subprocess.check_call(args)
diff --git a/pkgs/applications/science/math/sage/patches/sympow-cache.patch b/pkgs/applications/science/math/sage/patches/sympow-cache.patch
index 20020d610f8..d71f3acbc70 100644
--- a/pkgs/applications/science/math/sage/patches/sympow-cache.patch
+++ b/pkgs/applications/science/math/sage/patches/sympow-cache.patch
@@ -1,5 +1,5 @@
 diff --git a/src/sage/lfunctions/sympow.py b/src/sage/lfunctions/sympow.py
-index 1640ac4f6a..03578be7b8 100644
+index 92cb01fd73..b123e6accc 100644
 --- a/src/sage/lfunctions/sympow.py
 +++ b/src/sage/lfunctions/sympow.py
 @@ -50,6 +50,7 @@ from __future__ import print_function, absolute_import
@@ -8,14 +8,14 @@ index 1640ac4f6a..03578be7b8 100644
  
 +from sage.env import DOT_SAGE
  from sage.structure.sage_object import SageObject
- from sage.misc.all import pager, verbose
- import sage.rings.all
-@@ -76,7 +77,7 @@ class Sympow(SageObject):
+ from sage.misc.all import pager
+ from sage.misc.verbose import verbose
+@@ -78,7 +79,7 @@ class Sympow(SageObject):
          """
          Used to call sympow with given args
          """
--        cmd = 'sympow %s'%args
+-        cmd = 'sympow %s' % args
 +        cmd = 'env SYMPOW_CACHEDIR="%s/sympow///" sympow %s' % (DOT_SAGE, args)
-         v = os.popen(cmd).read().strip()
+         with os.popen(cmd) as f:
+             v = f.read().strip()
          verbose(v, level=2)
-         return v
diff --git a/pkgs/applications/science/math/sage/patches/sympy-1.7-update.patch b/pkgs/applications/science/math/sage/patches/sympy-1.7-update.patch
new file mode 100644
index 00000000000..1d21622a235
--- /dev/null
+++ b/pkgs/applications/science/math/sage/patches/sympy-1.7-update.patch
@@ -0,0 +1,25 @@
+diff --git a/src/sage/interfaces/sympy.py b/src/sage/interfaces/sympy.py
+index cc35a42a9f..6e577d5d8d 100644
+--- a/src/sage/interfaces/sympy.py
++++ b/src/sage/interfaces/sympy.py
+@@ -397,7 +397,7 @@ def _sympysage_rf(self):
+         sage: from sympy import Symbol, rf
+         sage: _ = var('x, y')
+         sage: rfxy = rf(Symbol('x'), Symbol('y'))
+-        sage: assert rising_factorial(x,y)._sympy_() == rfxy.rewrite('gamma')
++        sage: assert rising_factorial(x,y)._sympy_() == rfxy.rewrite('gamma', piecewise=False)
+         sage: assert rising_factorial(x,y) == rfxy._sage_()
+     """
+     from sage.arith.all import rising_factorial
+diff --git a/src/sage/symbolic/expression.pyx b/src/sage/symbolic/expression.pyx
+index 7c18ec1efa..c2619ac42d 100644
+--- a/src/sage/symbolic/expression.pyx
++++ b/src/sage/symbolic/expression.pyx
+@@ -955,6 +955,6 @@ cdef class Expression(CommutativeRingElement):
+             sage: unicode_art(13 - I)
+             13 - ⅈ
+             sage: unicode_art(1.3 - I)
+-            1.3 - 1.0⋅ⅈ
++            1.3 - ⅈ
+             sage: unicode_art(cos(I))
+             cosh(1)
diff --git a/pkgs/applications/science/math/sage/pybrial.nix b/pkgs/applications/science/math/sage/pybrial.nix
deleted file mode 100644
index 5fc8a4aa6f4..00000000000
--- a/pkgs/applications/science/math/sage/pybrial.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, buildPythonPackage
-, brial
-}:
-# This has a cyclic dependency with sage. I don't include sage in the
-# buildInputs and let python figure it out at runtime. Because of this,
-# I don't include the package in the main nipxkgs tree. It wouldn't be useful
-# outside of sage anyways (as you could just directly depend on sage and use
-# it).
-buildPythonPackage rec {
-    pname = "pyBRiAl";
-    version = brial.version;
-
-    # included with BRiAl source
-    src = brial.src;
-
-    sourceRoot = "source/sage-brial";
-
-    meta = with stdenv.lib; {
-      description = "python implementation of BRiAl";
-      license = licenses.gpl2;
-      maintainers = teams.sage.members;
-    };
-}
diff --git a/pkgs/applications/science/math/sage/python-openid.nix b/pkgs/applications/science/math/sage/python-openid.nix
deleted file mode 100644
index 1e8a908ac79..00000000000
--- a/pkgs/applications/science/math/sage/python-openid.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, isPy3k
-, django
-, nose
-, twill
-, pycrypto
-}:
-
-buildPythonPackage rec {
-  pname = "python-openid";
-  version = "2.2.5";
-
-  disabled = isPy3k;
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1vvhxlghjan01snfdc4k7ykd80vkyjgizwgg9bncnin8rqz1ricj";
-  };
-
-  propagatedBuildInputs = [
-    pycrypto
-  ];
-
-  # Cannot access the djopenid example module.
-  # I don't know how to fix that (adding the examples dir to PYTHONPATH doesn't work)
-  doCheck = false;
-  checkInputs = [ nose django twill ];
-  checkPhase = ''
-    nosetests
-  '';
-
-  meta = with stdenv.lib; {
-    description = "OpenID library for Python";
-    license = licenses.asl20;
-    maintainers = teams.sage.members;
-    homepage = "https://github.com/openid/python-openid/";
-  };
-}
diff --git a/pkgs/applications/science/math/sage/sage-env.nix b/pkgs/applications/science/math/sage/sage-env.nix
index ba7f6ccd18b..568a4a39f39 100644
--- a/pkgs/applications/science/math/sage/sage-env.nix
+++ b/pkgs/applications/science/math/sage/sage-env.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , writeTextFile
-, python
 , sagelib
 , env-locations
 , gfortran
@@ -67,11 +66,6 @@ let
     "@sage-local@"
     "@sage-local@/build"
     pythonEnv
-    # empty python env to add python wrapper that clears PYTHONHOME (see
-    # wrapper.nix). This is necessary because sage will call the python3 binary
-    # (from python2 code). The python2 PYTHONHOME (again set in wrapper.nix)
-    # will then confuse python3, if it is not overwritten.
-    python3.buildEnv
     gfortran # for inline fortran
     stdenv.cc # for cython
     bash
@@ -129,8 +123,21 @@ writeTextFile rec {
       ]
     }'
     export SAGE_ROOT='${sagelib.src}'
-    export SAGE_LOCAL='@sage-local@'
+  '' +
+    # TODO: is using pythonEnv instead of @sage-local@ here a good
+    # idea? there is a test in src/sage/env.py that checks if the values
+    # SAGE_ROOT and SAGE_LOCAL set here match the ones set in env.py.
+    # we fix up env.py's SAGE_ROOT in sage-src.nix (which does not
+    # have access to sage-with-env), but env.py autodetects
+    # SAGE_LOCAL to be pythonEnv.
+    # setting SAGE_LOCAL to pythonEnv also avoids having to create
+    # python3, ipython, ipython3 and jupyter symlinks in
+    # sage-with-env.nix.
+  ''
+    export SAGE_LOCAL='${pythonEnv}'
+
     export SAGE_SHARE='${sagelib}/share'
+    export SAGE_ENV_CONFIG_SOURCED=1 # sage-env complains if sage-env-config is not sourced beforehand
     orig_path="$PATH"
     export PATH='${runtimepath}'
 
@@ -177,9 +184,9 @@ writeTextFile rec {
       ])
     }'
 
-    export SAGE_LIB='${sagelib}/${python.sitePackages}'
+    export SAGE_LIB='${sagelib}/${python3.sitePackages}'
 
-    export SAGE_EXTCODE='${sagelib.src}/src/ext'
+    export SAGE_EXTCODE='${sagelib.src}/src/sage/ext_data'
 
   # for find_library
     export DYLD_LIBRARY_PATH="${lib.makeLibraryPath [stdenv.cc.libc singular]}''${DYLD_LIBRARY_PATH:+:}$DYLD_LIBRARY_PATH"
diff --git a/pkgs/applications/science/math/sage/sage-src.nix b/pkgs/applications/science/math/sage/sage-src.nix
index 4791d12450a..b8fb4159660 100644
--- a/pkgs/applications/science/math/sage/sage-src.nix
+++ b/pkgs/applications/science/math/sage/sage-src.nix
@@ -10,44 +10,23 @@
 # all get the same sources with the same patches applied.
 
 stdenv.mkDerivation rec {
-  version = "8.9";
+  version = "9.2";
   pname = "sage-src";
 
   src = fetchFromGitHub {
     owner = "sagemath";
     repo = "sage";
     rev = version;
-    sha256 = "1bwga58x3s8z42w5h51c232f91ndsc1861dlb1glhax3pn0rhn3a";
+    sha256 = "103j8d5x6szl9fxaz0dvdi4y47q1af9h9y5hmjh2xayi62qmp5ql";
   };
 
   # Patches needed because of particularities of nix or the way this is packaged.
   # The goal is to upstream all of them and get rid of this list.
   nixPatches = [
-    # https://trac.sagemath.org/ticket/25358
-    (fetchpatch {
-      name = "safe-directory-test-without-patch.patch";
-      url = "https://git.sagemath.org/sage.git/patch?id2=8bdc326ba57d1bb9664f63cf165a9e9920cc1afc&id=dc673c17555efca611f68398d5013b66e9825463";
-      sha256 = "1hhannz7xzprijakn2w2d0rhd5zv2zikik9p51i87bas3nc658f7";
-    })
-    
-    # `is_unitary` test in `matrix_double_dense.pyx` fails with some BLAS implementations
-    # https://trac.sagemath.org/ticket/29297 should be included in 9.1
-    (fetchpatch {
-      name = "is_unitary-special-case.patch";
-      url = "https://git.sagemath.org/sage.git/patch?id=cc3eb9ffa991e328b09028d32aab7e7cc2ddbb6a";
-      sha256 = "0jq4w8hnp5c9q99011ldr4n3knvm1rx2g85z0hidv3i9x868p0ay";
-    })
-
-    # Unfortunately inclusion in upstream sage was rejected. Instead the bug was
-    # fixed in python, but of course not backported to 2.7. So we'll probably
-    # have to keep this around until 2.7 is deprecated.
-    # https://trac.sagemath.org/ticket/25316
-    # https://github.com/python/cpython/pull/7476
-    ./patches/python-5755-hotpatch.patch
-
     # Make sure py2/py3 tests are only run when their expected context (all "sage"
     # tests) are also run. That is necessary to test dochtml individually. See
     # https://trac.sagemath.org/ticket/26110 for an upstream discussion.
+    # TODO: Determine if it is still necessary.
     ./patches/Only-test-py2-py3-optional-tests-when-all-of-sage-is.patch
 
     # Fixes a potential race condition which can lead to transient doctest failures.
@@ -61,10 +40,17 @@ stdenv.mkDerivation rec {
     # https://groups.google.com/forum/#!topic/sage-packaging/YGOm8tkADrE
     ./patches/sphinx-docbuild-subprocesses.patch
 
-    # Fix doctest failures with docutils 0.15:
-    # https://nix-cache.s3.amazonaws.com/log/dzmzrb2zvardsmpy7idg7djkizmkzdhs-sage-tests-8.9.drv
-    # https://trac.sagemath.org/ticket/28856#comment:19
-    ./patches/docutils-0.15.patch
+    # Sage's workaround to pretty print dicts (in
+    # src/sage/doctest/forker.py:init_sage) runs too late (after
+    # controller.load_environment(), which imports sage.all.*) to to
+    # affect sage.sandpiles.Sandpile{Config,Divisor}'s pretty printer.
+    # Due to the sandpiles module being lazily loaded, this only
+    # affects the first run (subsequent runs read from an import cache
+    # at ~/.sage/cache and are not affected), which is probably why
+    # other distributions don't hit this bug. This breaks two sandpile
+    # tests, so do the workaround a little bit earlier.
+    # https://trac.sagemath.org/ticket/31053
+    ./patches/register-pretty-printer-earlier.patch
   ];
 
   # Since sage unfortunately does not release bugfix releases, packagers must
@@ -74,6 +60,17 @@ stdenv.mkDerivation rec {
     # To help debug the transient error in
     # https://trac.sagemath.org/ticket/23087 when it next occurs.
     ./patches/configurationpy-error-verbose.patch
+
+    # fix intermittent errors in Sage 9.2's psage.py (this patch is
+    # already included in Sage 9.3): https://trac.sagemath.org/ticket/30730
+    (fetchpatch {
+      name = "fix-psage-is-locked.patch";
+      url = "https://git.sagemath.org/sage.git/patch/?id=75df605f216ddc7b6ca719be942d666b241520e9";
+      sha256 = "0g9pl1wbb3sgs26d3bvv70cpa77sfskylv4kd255y1794f1fgk4q";
+    })
+
+    # fix intermittent errors in sagespawn.pyx: https://trac.sagemath.org/ticket/31052
+    ./patches/sagespawn-implicit-casting.patch
   ];
 
   # Patches needed because of package updates. We could just pin the versions of
@@ -96,55 +93,19 @@ stdenv.mkDerivation rec {
       } // builtins.removeAttrs args [ "rev" "base" ])
     );
   in [
-    # New glpk version has new warnings, filter those out until upstream sage has found a solution
-    # Should be fixed with glpk > 4.65.
-    # https://trac.sagemath.org/ticket/24824
-    ./patches/pari-stackwarn.patch # not actually necessary since the pari upgrade, but necessary for the glpk patch to apply
-    (fetchpatch {
-      url = "https://salsa.debian.org/science-team/sagemath/raw/58bbba93a807ca2933ca317501d093a1bb4b84db/debian/patches/dt-version-glpk-4.65-ignore-warnings.patch";
-      sha256 = "0b9293v73wb4x13wv5zwyjgclc01zn16msccfzzi6znswklgvddp";
-      stripLen = 1;
-    })
-
     # After updating smypow to (https://trac.sagemath.org/ticket/3360) we can
     # now set the cache dir to be withing the .sage directory. This is not
     # strictly necessary, but keeps us from littering in the user's HOME.
     ./patches/sympow-cache.patch
 
-    # https://trac.sagemath.org/ticket/28472
-    (fetchpatch {
-      name = "eclib-20190909.patch";
-      url = "https://git.sagemath.org/sage.git/patch?id=d27dc479a5772d59e4bc85d805b6ffd595284f1d";
-      sha256 = "1nf1s9y7n30lhlbdnam7sghgaq9nasmv96415gl5jlcf7a3hlxk3";
-    })
-
     # ignore a deprecation warning for usage of `cmp` in the attrs library in the doctests
     ./patches/ignore-cmp-deprecation.patch
 
-    # Werkzeug has deprecated ImmutableDict, but it is still used in legacy
-    # sagenb. That's no big issue since sagenb will be removed soon anyways.
-    ./patches/ignore-werkzeug-immutable-dict-deprecation.patch
-
-    # threejs r109 (#28560)
-    (fetchpatch {
-      name = "threejs-r109.patch";
-      url = "https://git.sagemath.org/sage.git/patch?id=fcc11d6effa39f375bc5f4ea5831fb7a2f2767da";
-      sha256 = "0hnmc8ld3bblks0hcjvjjaydkgwdr1cs3dbl2ys4gfq964pjgqwc";
-    })
-
-    # https://trac.sagemath.org/ticket/28911
-    (fetchpatch {
-      name = "sympy-1.5.patch";
-      url = "https://git.sagemath.org/sage.git/patch/?h=c6d0308db15efd611211d26cfcbefbd180fc0831";
-      sha256 = "0nwai2jr22h49km4hx3kwafs3mzsc5kwsv7mqwjf6ibwfx2bbgyq";
-    })
+    # adapt sage's Image class to pillow 8.0.1 (https://trac.sagemath.org/ticket/30971)
+    ./patches/pillow-update.patch
 
-    # https://trac.sagemath.org/ticket/29313 (patch from ArchLinux)
-    (fetchpatch {
-      name = "pari-2.11.3.patch";
-      url = "https://aur.archlinux.org/cgit/aur.git/plain/sagemath-pari-2.11.3.patch?h=sagemath-git&id=02e1d58bd1cd70935d69a4990469d18be6bd2c43";
-      sha256 = "0z07444zvijyw96d11q7j81pvg7ysd6ycf1bbbjr6za9y74hv7d2";
-    })
+    # fix test output with sympy 1.7 (https://trac.sagemath.org/ticket/30985)
+    ./patches/sympy-1.7-update.patch
   ];
 
   patches = nixPatches ++ bugfixPatches ++ packageUpgradePatches;
@@ -152,16 +113,16 @@ stdenv.mkDerivation rec {
   postPatch = ''
     # make sure shebangs etc are fixed, but sage-python23 still works
     find . -type f -exec sed \
-      -e 's/sage-python23/python/g' \
+      -e 's/sage-python23/python3/g' \
       -i {} \;
 
     echo '#!${runtimeShell}
-    python "$@"' > build/bin/sage-python23
+    python3 "$@"' > build/bin/sage-python23
 
     # Make sure sage can at least be imported without setting any environment
     # variables. It won't be close to feature complete though.
     sed -i \
-      "s|var('SAGE_LOCAL',.*|var('SAGE_LOCAL', '$out/src')|" \
+      "s|var('SAGE_ROOT'.*|var('SAGE_ROOT', '$out')|" \
       src/sage/env.py
 
     # Do not use sage-env-config (generated by ./configure).
@@ -169,7 +130,39 @@ stdenv.mkDerivation rec {
     echo '# do nothing' >  src/bin/sage-env-config
   '';
 
-  configurePhase = "# do nothing";
+  # Test src/doc/en/reference/spkg/conf.py will fail if
+  # src/doc/en/reference/spkg/index.rst is not generated.  It is
+  # generated by src/doc/bootstrap, so I've copied the relevant part
+  # here. An alternative would be to create an empty
+  # src/doc/en/reference/spkg/index.rst file.
+  configurePhase = ''
+    OUTPUT_DIR="src/doc/en/reference/spkg"
+    mkdir -p "$OUTPUT_DIR"
+    OUTPUT_INDEX="$OUTPUT_DIR"/index.rst
+    cat > "$OUTPUT_INDEX" <<EOF
+
+    External Packages
+    =================
+
+    .. toctree::
+       :maxdepth: 1
+
+    EOF
+    for PKG_SCRIPTS in build/pkgs/*; do
+        if [ -d "$PKG_SCRIPTS" ]; then
+            PKG_BASE=$(basename "$PKG_SCRIPTS")
+            if [ -f "$PKG_SCRIPTS"/SPKG.rst ]; then
+                # Instead of just copying, we may want to call
+                # a version of sage-spkg-info to format extra information.
+                cp "$PKG_SCRIPTS"/SPKG.rst "$OUTPUT_DIR"/$PKG_BASE.rst
+                echo >> "$OUTPUT_INDEX" "   $PKG_BASE"
+            fi
+        fi
+    done
+    cat >> "$OUTPUT_INDEX" <<EOF
+    .. include:: ../footer.txt
+    EOF
+  '';
 
   buildPhase = "# do nothing";
 
diff --git a/pkgs/applications/science/math/sage/sage-with-env.nix b/pkgs/applications/science/math/sage/sage-with-env.nix
index 87c1e07f530..f204d97961b 100644
--- a/pkgs/applications/science/math/sage/sage-with-env.nix
+++ b/pkgs/applications/science/math/sage/sage-with-env.nix
@@ -13,7 +13,7 @@
 , pari
 , gmp
 , gfan
-, python2
+, python3
 , flintqs
 , eclib
 , ntl
@@ -50,11 +50,11 @@ let
   ];
 
   # remove python prefix, replace "-" in the name by "_", apply patch_names
-  # python2.7-some-pkg-1.0 -> some_pkg-1.0
+  # python3.8-some-pkg-1.0 -> some_pkg-1.0
   pkg_to_spkg_name = pkg: patch_names: let
     parts = lib.splitString "-" pkg.name;
-    # remove python2.7-
-    stripped_parts = if (builtins.head parts) == python2.libPrefix then builtins.tail parts else parts;
+    # remove python3.8-
+    stripped_parts = if (builtins.head parts) == python3.libPrefix then builtins.tail parts else parts;
     version = lib.last stripped_parts;
     orig_pkgname = lib.init stripped_parts;
     pkgname = patch_names (lib.concatStringsSep "_" orig_pkgname);
diff --git a/pkgs/applications/science/math/sage/sage.nix b/pkgs/applications/science/math/sage/sage.nix
index a21bffea14c..e2acef7b8eb 100644
--- a/pkgs/applications/science/math/sage/sage.nix
+++ b/pkgs/applications/science/math/sage/sage.nix
@@ -61,7 +61,6 @@ stdenv.mkDerivation rec {
   };
 
   meta = with stdenv.lib; {
-    broken = true;
     description = "Open Source Mathematics Software, free alternative to Magma, Maple, Mathematica, and Matlab";
     license = licenses.gpl2;
     maintainers = teams.sage.members;
diff --git a/pkgs/applications/science/math/sage/sagedoc.nix b/pkgs/applications/science/math/sage/sagedoc.nix
index bf618fe64f4..a10672f3a09 100644
--- a/pkgs/applications/science/math/sage/sagedoc.nix
+++ b/pkgs/applications/science/math/sage/sagedoc.nix
@@ -1,6 +1,6 @@
 { stdenv
 , sage-with-env
-, python
+, python3
 , maxima-ecl
 , tachyon
 , jmol
@@ -17,16 +17,15 @@ stdenv.mkDerivation rec {
   # modules are imported and because matplotlib is used to produce plots.
   buildInputs = [
     sage-with-env.env.lib
-    python
+    python3
     maxima-ecl
     tachyon
     jmol
     cddlib
-  ] ++ (with python.pkgs; [
+  ] ++ (with python3.pkgs; [
     psutil
     future
     sphinx
-    sagenb
     scipy
     sympy
     matplotlib
@@ -35,8 +34,6 @@ stdenv.mkDerivation rec {
     ipykernel
     ipywidgets
     jupyter_client
-    typing
-    pybrial
   ]);
 
   unpackPhase = ''
@@ -47,13 +44,26 @@ stdenv.mkDerivation rec {
     chmod -R 755 "$SAGE_DOC_SRC_OVERRIDE"
   '';
 
+  postPatch = ''
+    # src/doc/bootstrap generates installation instructions for
+    # arch, debian, fedora, cygwin and homebrew. as a hack, disable
+    # including the generated files.
+    sed -i "/literalinclude/d" $SAGE_DOC_SRC_OVERRIDE/en/installation/source.rst
+  '';
+
   buildPhase = ''
     export SAGE_NUM_THREADS="$NIX_BUILD_CORES"
     export HOME="$TMPDIR/sage_home"
     mkdir -p "$HOME"
 
     # needed to link them in the sage docs using intersphinx
-    export PPLPY_DOCS=${python.pkgs.pplpy.doc}/share/doc/pplpy
+    export PPLPY_DOCS=${python3.pkgs.pplpy.doc}/share/doc/pplpy
+
+    # adapted from src/doc/bootstrap
+    OUTPUT_DIR="$SAGE_DOC_SRC_OVERRIDE/en/reference/repl"
+    mkdir -p "$OUTPUT_DIR"
+    OUTPUT="$OUTPUT_DIR/options.txt"
+    ${sage-with-env}/bin/sage -advanced > "$OUTPUT"
 
     ${sage-with-env}/bin/sage -python -m sage_setup.docbuild \
       --mathjax \
diff --git a/pkgs/applications/science/math/sage/sagelib.nix b/pkgs/applications/science/math/sage/sagelib.nix
index 830d806a8bc..1c2235bf71b 100644
--- a/pkgs/applications/science/math/sage/sagelib.nix
+++ b/pkgs/applications/science/math/sage/sagelib.nix
@@ -15,6 +15,7 @@
 , ecm
 , flint
 , gd
+, giac
 , givaro
 , glpk
 , gsl
@@ -51,6 +52,7 @@
 , libbraiding
 , gmpy2
 , pplpy
+, sqlite
 }:
 
 assert (!blas.isILP64) && (!lapack.isILP64);
@@ -94,6 +96,7 @@ buildPythonPackage rec {
     ecm
     fflas-ffpack
     flint
+    giac
     givaro
     glpk
     gsl
@@ -124,6 +127,7 @@ buildPythonPackage rec {
     libbraiding
     gmpy2
     pplpy
+    sqlite
   ];
 
   buildPhase = ''
diff --git a/pkgs/applications/science/math/sage/sagenb.nix b/pkgs/applications/science/math/sage/sagenb.nix
deleted file mode 100644
index ad5c53b6c11..00000000000
--- a/pkgs/applications/science/math/sage/sagenb.nix
+++ /dev/null
@@ -1,57 +0,0 @@
-{ stdenv
-, python
-, buildPythonPackage
-, fetchFromGitHub
-, mathjax
-, twisted
-, flask
-, flask-oldsessions
-, flask-openid
-, flask-autoindex
-, flask-babel
-}:
-
-# Has a cyclic dependency with sage (not expressed here) and is not useful outside of sage.
-# Deprecated, hopefully soon to be removed. See
-# https://trac.sagemath.org/ticket/25837
-
-buildPythonPackage rec {
-  pname = "sagenb";
-  version = "1.1.2";
-
-  src = fetchFromGitHub {
-    owner = "sagemath";
-    repo = "sagenb";
-    rev = version;
-    sha256 = "0bxvhr03qh2nsjdfc4pyfiqrn9jhp3vf7irsc9gqx0185jlblbxs";
-  };
-
-  patches = [
-    # cmp deprecation in attrs needs to be handled in twisted
-    ./patches/sagenb-cmp-deprecation.patch
-  ];
-
-  propagatedBuildInputs = [
-    twisted
-    flask
-    flask-oldsessions
-    flask-openid
-    flask-autoindex
-    flask-babel
-  ];
-
-  # tests depend on sage
-  doCheck = false;
-
-  meta = with stdenv.lib; {
-    description = "Sage Notebook";
-    license = licenses.gpl3Plus;
-    maintainers = teams.sage.members;
-  };
-
-  # let sagenb use mathjax
-  postInstall = ''
-    mkdir -p "$out/${python.sitePackages}/sagenb/data"
-    ln -s ${mathjax}/lib/node_modules/mathjax "$out/${python.sitePackages}/sagenb/data/mathjax"
-  '';
-}
diff --git a/pkgs/applications/science/misc/colmap/default.nix b/pkgs/applications/science/misc/colmap/default.nix
index 83dff3e08f1..60f9810dfb6 100644
--- a/pkgs/applications/science/misc/colmap/default.nix
+++ b/pkgs/applications/science/misc/colmap/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, fetchpatch, fetchFromGitHub, cmake, boost17x, ceres-solver, eigen,
+{ mkDerivation, lib, fetchFromGitHub, cmake, boost17x, ceres-solver, eigen,
   freeimage, glog, libGLU, glew, qtbase,
   cudaSupport ? false, cudatoolkit ? null }:
 
@@ -7,22 +7,15 @@ assert !cudaSupport || cudatoolkit != null;
 let boost_static = boost17x.override { enableStatic = true; };
 in
 mkDerivation rec {
-  version = "3.5";
+  version = "3.6";
   pname = "colmap";
   src = fetchFromGitHub {
      owner = "colmap";
      repo = "colmap";
      rev = version;
-     sha256 = "1vnb62p0y2bnga173wmjs0lnyqdjikv0fkcxjzxm8187khk2lly8";
+     sha256 = "1kfivdmhpmdxjjf30rr57y2iy7xmdpg4h8aw3qgacv8ckfpgda3n";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/colmap/colmap/commit/6af3d8b0048cecc3b9fc6f4e78c3214dd038180b.patch";
-      sha256 = "1zv5girmv4hv78w1xn131v8njwhpbyylc1m15731lnhrs8bri0jq";
-    })
-  ];
-
   buildInputs = [
     boost_static ceres-solver eigen
     freeimage glog libGLU glew qtbase
diff --git a/pkgs/applications/science/misc/root/default.nix b/pkgs/applications/science/misc/root/default.nix
index 97d8d4e7cee..03b20697310 100644
--- a/pkgs/applications/science/misc/root/default.nix
+++ b/pkgs/applications/science/misc/root/default.nix
@@ -1,19 +1,20 @@
-{ stdenv, lib, fetchurl, makeWrapper, cmake, gl2ps, gsl, libX11, libXpm, libXft
-, libXext, libGLU, libGL, libxml2, lz4, lzma, pcre, pkgconfig, python, xxHash
-, zlib
+{ stdenv, lib, fetchurl, makeWrapper, cmake, ftgl, gl2ps, glew, gsl, llvm_5
+, libX11, libXpm, libXft, libXext, libGLU, libGL, libxml2, lz4, lzma, pcre
+, pkgconfig, python, xxHash, zlib, zstd
+, libAfterImage, giflib, libjpeg, libtiff, libpng
 , Cocoa, OpenGL, noSplash ? false }:
 
 stdenv.mkDerivation rec {
   pname = "root";
-  version = "6.18.04";
+  version = "6.22.06";
 
   src = fetchurl {
     url = "https://root.cern.ch/download/root_v${version}.source.tar.gz";
-    sha256 = "196ghma6g5a7sqz52wyjkgvmh4hj4vqwppm0zwdypy33hgy8anii";
+    sha256 = "0mqvj42nax0bmz8h83jjlwjm3xxjy1n0n10inc8csip9ly28fs64";
   };
 
   nativeBuildInputs = [ makeWrapper cmake pkgconfig ];
-  buildInputs = [ gl2ps pcre zlib libxml2 lz4 lzma gsl xxHash python.pkgs.numpy ]
+  buildInputs = [ ftgl gl2ps glew pcre zlib zstd llvm_5 libxml2 lz4 lzma gsl xxHash libAfterImage giflib libjpeg libtiff libpng python.pkgs.numpy ]
     ++ lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU libGL ]
     ++ lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ]
     ;
@@ -38,6 +39,7 @@ stdenv.mkDerivation rec {
     "-DCMAKE_INSTALL_INCLUDEDIR=include"
     "-Dalien=OFF"
     "-Dbonjour=OFF"
+    "-Dbuiltin_llvm=OFF"
     "-Dcastor=OFF"
     "-Dchirp=OFF"
     "-Dclad=OFF"
@@ -69,7 +71,14 @@ stdenv.mkDerivation rec {
     "-Dxrootd=OFF"
   ]
   ++ stdenv.lib.optional (stdenv.cc.libc != null) "-DC_INCLUDE_DIRS=${stdenv.lib.getDev stdenv.cc.libc}/include"
-  ++ stdenv.lib.optional stdenv.isDarwin "-DOPENGL_INCLUDE_DIR=${OpenGL}/Library/Frameworks";
+  ++ stdenv.lib.optionals stdenv.isDarwin [
+    "-DOPENGL_INCLUDE_DIR=${OpenGL}/Library/Frameworks"
+    "-DCMAKE_DISABLE_FIND_PACKAGE_Python2=TRUE"
+
+    # fatal error: module map file '/nix/store/<hash>-Libsystem-osx-10.12.6/include/module.modulemap' not found
+    # fatal error: could not build module '_Builtin_intrinsics'
+    "-Druntime_cxxmodules=OFF"
+  ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/applications/science/misc/root/sw_vers.patch b/pkgs/applications/science/misc/root/sw_vers.patch
index 34af132c11f..b2ee1b6a4ce 100644
--- a/pkgs/applications/science/misc/root/sw_vers.patch
+++ b/pkgs/applications/science/misc/root/sw_vers.patch
@@ -1,19 +1,7 @@
-diff a/build/unix/compiledata.sh b/build/unix/compiledata.sh
---- a/build/unix/compiledata.sh
-+++ b/build/unix/compiledata.sh
-@@ -47,7 +47,7 @@ fi
- 
- if [ "$ARCH" = "macosx" ] || [ "$ARCH" = "macosx64" ] || \
-    [ "$ARCH" = "macosxicc" ]; then
--   macosx_minor=`sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2`
-+   macosx_minor=12
-    SOEXT="so"
-    if [ $macosx_minor -ge 5 ]; then
-       if [ "x`echo $SOFLAGS | grep -- '-install_name'`" != "x" ]; then
 diff a/cmake/modules/SetUpMacOS.cmake b/cmake/modules/SetUpMacOS.cmake
 --- a/cmake/modules/SetUpMacOS.cmake
 +++ b/cmake/modules/SetUpMacOS.cmake
-@@ -2,17 +2,8 @@ set(ROOT_ARCHITECTURE macosx)
+@@ -8,17 +8,10 @@ set(ROOT_ARCHITECTURE macosx)
  set(ROOT_PLATFORM macosx)
  
  if (CMAKE_SYSTEM_NAME MATCHES Darwin)
@@ -21,8 +9,8 @@ diff a/cmake/modules/SetUpMacOS.cmake b/cmake/modules/SetUpMacOS.cmake
 -                  COMMAND cut -d . -f 1-2
 -                  OUTPUT_VARIABLE MACOSX_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
 -
--  MESSAGE(STATUS "Found a Mac OS X System ${MACOSX_VERSION}")
--
+   MESSAGE(STATUS "Found a macOS system ${MACOSX_VERSION}")
+ 
 -  if(MACOSX_VERSION VERSION_GREATER 10.7 AND ${CMAKE_CXX_COMPILER_ID} MATCHES Clang)
      set(libcxx ON CACHE BOOL "Build using libc++" FORCE)
 -  endif()
@@ -31,7 +19,7 @@ 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
-@@ -25,23 +16,7 @@ if (CMAKE_SYSTEM_NAME MATCHES Darwin)
+@@ -37,23 +30,7 @@ if (CMAKE_SYSTEM_NAME MATCHES Darwin)
         SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64")
         SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m64")
         SET(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -m64")
@@ -56,7 +44,7 @@ diff a/cmake/modules/SetUpMacOS.cmake b/cmake/modules/SetUpMacOS.cmake
  
    if (CMAKE_COMPILER_IS_GNUCXX)
       message(STATUS "Found GNU compiler collection")
-@@ -104,7 +79,6 @@ if (CMAKE_SYSTEM_NAME MATCHES Darwin)
+@@ -115,7 +92,6 @@ if (CMAKE_SYSTEM_NAME MATCHES Darwin)
    endif()
  
    #---Set Linker flags----------------------------------------------------------------------
@@ -67,33 +55,33 @@ diff a/cmake/modules/SetUpMacOS.cmake b/cmake/modules/SetUpMacOS.cmake
 diff a/config/root-config.in b/config/root-config.in
 --- a/config/root-config.in
 +++ b/config/root-config.in
-@@ -306,12 +306,6 @@ macosxicc)
-    auxlibs="-lm -ldl"
+@@ -312,12 +312,6 @@ macosxicc)
     ;;
- macosx64)
--   # MacOS X with gcc (GNU cc v4.x) in 64 bit mode
+ macosx64|macosxarm64)
+    # MacOS X with gcc (GNU cc v4.x) in 64 bit mode
+-   macosx_major=`sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 1 | sed -e 's/^[[:space:]]*//'`
 -   macosx_minor=`sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2`
 -   # cannot find the one linked to libGraf if relocated after built
--   if [ $macosx_minor -le 4 ]; then
+-   if [ $macosx_major -eq 10 -a $macosx_minor -le 4 ]; then
 -      rootlibs="$rootlibs -lfreetype"
 -   fi
     auxcflags="${cxxversionflag} -m64"
     auxldflags="-m64"
     auxlibs="-lm -ldl"
-@@ -375,18 +369,11 @@ freebsd* | openbsd* | linux*)
+@@ -378,18 +372,11 @@ freebsd* | openbsd* | linux*)
+    done
+    ;;
  macosx*)
+-   if [ \( $macosx_major -eq 10 -a $macosx_minor -ge 5 \) -o $macosx_major -gt 10  ]; then
+       auxcflags="-pthread $auxcflags"
+       auxlibs="-lpthread $auxlibs"
+-   else
+-      auxcflags="-D_REENTRANT $auxcflags"
+-      auxlibs="-lpthread $auxlibs"
+-   fi
     for f in $features ; do
-       if test "x$f" = "xthread" ; then
--         if [ $macosx_minor -ge 5 ]; then
-             auxcflags="-pthread $auxcflags"
-             auxlibs="-lpthread $auxlibs"
--         else
--            auxcflags="-D_REENTRANT $auxcflags"
--            auxlibs="-lpthread $auxlibs"
--         fi
-       fi
        if test "x$f" = "xrpath" ; then
--         if [ $macosx_minor -ge 5 ]; then
+-         if [ \( $macosx_major -eq 10 -a $macosx_minor -ge 5 \) -o $macosx_major -gt 10  ]; then
              auxlibs="-Wl,-rpath,$libdir $auxlibs"
 -         fi
        fi
diff --git a/pkgs/applications/science/misc/simgrid/default.nix b/pkgs/applications/science/misc/simgrid/default.nix
index 0ba1cd0d2fa..11d73095834 100644
--- a/pkgs/applications/science/misc/simgrid/default.nix
+++ b/pkgs/applications/science/misc/simgrid/default.nix
@@ -18,14 +18,14 @@ in
 
 stdenv.mkDerivation rec {
   pname = "simgrid";
-  version = "3.25";
+  version = "3.26";
 
   src = fetchFromGitLab {
     domain = "framagit.org";
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "019fgryfwpcrkv1f3271v7qxk0mfw2w990vgnk1cqhmr9i1f17gs";
+    sha256 = "0kwiggdjqjhjvmwb1m7hb9clvm3xz948fy5ia67dif2pakwad754";
   };
 
   nativeBuildInputs = [ cmake perl python3 boost valgrind ]
diff --git a/pkgs/applications/science/molecular-dynamics/viennarna/default.nix b/pkgs/applications/science/molecular-dynamics/viennarna/default.nix
new file mode 100644
index 00000000000..a68feaea1ef
--- /dev/null
+++ b/pkgs/applications/science/molecular-dynamics/viennarna/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, fetchurl
+, gsl
+, mpfr
+, perl
+, python3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ViennaRNA";
+  version = "2.4.17";
+
+  src = fetchurl {
+    url = "https://www.tbi.univie.ac.at/RNA/download/sourcecode/2_4_x/${pname}-${version}.tar.gz";
+    sha256 = "08f1h2a8fn1s2zwf1244smiydhgwxgcnzy6irpdlmpvwygv0irmi";
+  };
+
+  buildInputs = [
+    gsl
+    mpfr
+    perl
+    python3
+  ];
+
+  configureFlags = [
+    "--with-cluster"
+    "--with-kinwalker"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Prediction and comparison of RNA secondary structures";
+    homepage = "https://www.tbi.univie.ac.at/RNA/";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ prusnak ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/science/robotics/mavproxy/default.nix b/pkgs/applications/science/robotics/mavproxy/default.nix
index a71ddc874c9..8e7c5bddd96 100644
--- a/pkgs/applications/science/robotics/mavproxy/default.nix
+++ b/pkgs/applications/science/robotics/mavproxy/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonApplication rec {
   pname = "MAVProxy";
-  version = "1.8.29";
+  version = "1.8.30";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8f5900dc0a404ab9cf5a00155f83e9aaeab18161ce21a352dfdcf2d7abf5d78e";
+    sha256 = "fe046481b793b592334749249620fce8a463f4c46b394ff744645975465d677b";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/science/robotics/mission-planner/default.nix b/pkgs/applications/science/robotics/mission-planner/default.nix
new file mode 100644
index 00000000000..5ae04d8a84b
--- /dev/null
+++ b/pkgs/applications/science/robotics/mission-planner/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, fetchurl, makeDesktopItem, makeWrapper, unzip, mono6 }:
+
+let
+  pname = "mission-planner";
+  desktopItem = makeDesktopItem {
+    name = pname;
+    exec = pname;
+    icon = pname;
+    comment = "MissionPlanner GCS & Ardupilot configuration tool";
+    desktopName = "MissionPlanner";
+    genericName = "Ground Control Station";
+  };
+in stdenv.mkDerivation rec {
+  inherit pname;
+  version = "1.3.74";
+
+  src = fetchurl {
+    url = "https://firmware.ardupilot.org/Tools/MissionPlanner/MissionPlanner-${version}.zip";
+    sha256 = "1cgpmsmmnbzw1lwsdafp8yklk1rwc61yf12vc1ahcc6bl7q2385x";
+  };
+
+  nativeBuildInputs = [ makeWrapper mono6 unzip ];
+  sourceRoot = ".";
+
+  AOT_FILES = [ "MissionPlanner.exe" "MissionPlanner.*.dll" ];
+
+  buildPhase = ''
+    runHook preBuild
+    for file in $AOT_FILES
+    do
+      mono --aot $file
+    done
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/{bin,opt/mission-planner}
+    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 \
+      --add-flags $out/opt/mission-planner/MissionPlanner.exe
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "An ArduPilot ground station";
+    longDescription = ''
+      Full-featured ground station application for the ArduPilot open source
+      autopilot project.  Lets you both flash, configure and control ArduPilot
+      Plane, Copter and Rover targets.
+    '';
+    homepage = "https://ardupilot.org/planner/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ wucke13 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/science/robotics/qgroundcontrol/default.nix b/pkgs/applications/science/robotics/qgroundcontrol/default.nix
index 8710b88ced3..023a4fc8b6a 100644
--- a/pkgs/applications/science/robotics/qgroundcontrol/default.nix
+++ b/pkgs/applications/science/robotics/qgroundcontrol/default.nix
@@ -6,7 +6,7 @@
 
 mkDerivation rec {
   pname = "qgroundcontrol";
-  version = "4.0.10";
+  version = "4.0.11";
 
   qtInputs = [
     qtbase qtcharts qtlocation qtserialport qtsvg qtquickcontrols2
@@ -62,7 +62,7 @@ mkDerivation rec {
     owner = "mavlink";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1jmhhd2nwxq3m9rzzmrjls8f6hhj52ia71b1sv4vvcjh802cha8g";
+    sha256 = "14pk1vmcpg2cc5p100chbhnynclcwyqmyb2n2w11vvk0l2c9z1gz";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/terminal-emulators/foot/default.nix b/pkgs/applications/terminal-emulators/foot/default.nix
index 3d95f7c5772..2b79c5362de 100644
--- a/pkgs/applications/terminal-emulators/foot/default.nix
+++ b/pkgs/applications/terminal-emulators/foot/default.nix
@@ -1,35 +1,142 @@
-{ stdenv, fetchgit
-, fcft, freetype, pixman, libxkbcommon, fontconfig, wayland
-, meson, ninja, ncurses, scdoc, tllist, wayland-protocols, pkg-config
+{ stdenv
+, lib
+, fetchzip
+, fetchurl
+, runCommandNoCC
+, fcft
+, freetype
+, pixman
+, libxkbcommon
+, fontconfig
+, wayland
+, meson
+, ninja
+, ncurses
+, scdoc
+, tllist
+, wayland-protocols
+, pkg-config
+, allowPgo ? true
+, python3  # for PGO
 }:
 
+let
+  version = "1.6.2";
+
+  # build stimuli file for PGO build and the script to generate it
+  # independently of the foot's build, so we can cache the result
+  # and avoid unnecessary rebuilds as it can take relatively long
+  # to generate
+  stimulusGenerator = stdenv.mkDerivation {
+    pname = "foot-generate-alt-random-writes";
+    inherit version;
+
+    src = fetchurl {
+      url = "https://codeberg.org/dnkl/foot/raw/tag/${version}/scripts/generate-alt-random-writes.py";
+      sha256 = "0pnc5nvqrbgx5618ylrkrs9fyxjh4jcsbryfk6vlnk8x4wyyaibz";
+    };
+
+    dontUnpack = true;
+
+    buildInputs = [ python3 ];
+
+    installPhase = ''
+      install -Dm755 $src $out
+    '';
+  };
+
+  stimuliFile = runCommandNoCC "pgo-stimulus-file" { } ''
+    ${stimulusGenerator} \
+      --rows=67 --cols=135 \
+      --scroll --scroll-region \
+      --colors-regular --colors-bright --colors-256 --colors-rgb \
+      --attr-bold --attr-italic --attr-underline \
+      --sixel \
+      --seed=2305843009213693951 \
+      $out
+  '';
+
+  compilerName =
+    if stdenv.cc.isClang
+    then "clang"
+    else if stdenv.cc.isGNU
+    then "gcc"
+    else "unknown";
+
+  # https://codeberg.org/dnkl/foot/src/branch/master/INSTALL.md#performance-optimized-pgo
+  pgoCflags = {
+    "clang" = "-O3 -Wno-ignored-optimization-argument -Wno-profile-instr-out-of-date -Wno-profile-instr-unprofiled";
+    "gcc" = "-O3 -Wno-missing-profile";
+  }."${compilerName}";
+
+  # ar with lto support
+  ar = {
+    "clang" = "llvm-ar";
+    "gcc" = "gcc-ar";
+    "unknown" = "ar";
+  }."${compilerName}";
+
+  # PGO only makes sense if we are not cross compiling and
+  # using a compiler which foot's PGO build supports (clang or gcc)
+  doPgo = allowPgo && (stdenv.hostPlatform == stdenv.buildPlatform)
+    && compilerName != "unknown";
+in
 stdenv.mkDerivation rec {
   pname = "foot";
-  version = "1.5.1";
+  inherit version;
 
-  src = fetchgit {
-    url = "https://codeberg.org/dnkl/foot.git";
-    rev = version;
-    sha256 = "sha256-GAk2qkrgCNILJOeRcn1NT4t3w+R6WFTZ1goOhBEwKwc=";
+  src = fetchzip {
+    url = "https://codeberg.org/dnkl/${pname}/archive/${version}.tar.gz";
+    sha256 = "08i3jmjky5s2nnc0c95c009cym91rs4sj4876sr4xnlkb7ab4812";
   };
 
   nativeBuildInputs = [
-    meson ninja ncurses scdoc tllist wayland-protocols pkg-config
-  ];
+    meson
+    ninja
+    ncurses
+    scdoc
+    tllist
+    wayland-protocols
+    pkg-config
+  ] ++ lib.optional stdenv.cc.isClang stdenv.cc.cc.llvm;
+
   buildInputs = [
-    fontconfig freetype pixman wayland libxkbcommon fcft
+    fontconfig
+    freetype
+    pixman
+    wayland
+    libxkbcommon
+    fcft
   ];
 
-  # recommended build flags for foot as per INSTALL.md
-  # https://codeberg.org/dnkl/foot/src/branch/master/INSTALL.md#user-content-release-build
+  # recommended build flags for performance optimized foot builds
+  # https://codeberg.org/dnkl/foot/src/branch/master/INSTALL.md#release-build
+  CFLAGS =
+    if !doPgo
+    then "-O3 -fno-plt"
+    else pgoCflags;
+
+  # ar with gcc plugins for lto objects
   preConfigure = ''
-    export CFLAGS+="-O3 -fno-plt"
+    export AR="${ar}"
   '';
 
   mesonFlags = [ "--buildtype=release" "-Db_lto=true" ];
 
-  meta = with stdenv.lib; {
+  # build and run binary generating PGO profiles,
+  # then reconfigure to build the normal foot binary utilizing PGO
+  preBuild = lib.optionalString doPgo ''
+    meson configure -Db_pgo=generate
+    ninja
+    ./pgo ${stimuliFile} ${stimuliFile} ${stimuliFile}
+    meson configure -Db_pgo=use
+  '' + lib.optionalString (doPgo && stdenv.cc.cc.pname == "clang") ''
+    llvm-profdata merge default_*profraw --output=default.profdata
+  '';
+
+  meta = with lib; {
     homepage = "https://codeberg.org/dnkl/foot/";
+    changelog = "https://codeberg.org/dnkl/foot/releases/tag/${version}";
     description = "A fast, lightweight and minimalistic Wayland terminal emulator";
     license = licenses.mit;
     maintainers = [ maintainers.sternenseemann ];
diff --git a/pkgs/applications/terminal-emulators/kitty/default.nix b/pkgs/applications/terminal-emulators/kitty/default.nix
index b6a93aefb59..2fa03a97e8b 100644
--- a/pkgs/applications/terminal-emulators/kitty/default.nix
+++ b/pkgs/applications/terminal-emulators/kitty/default.nix
@@ -21,14 +21,14 @@
 with python3Packages;
 buildPythonApplication rec {
   pname = "kitty";
-  version = "0.19.2";
+  version = "0.19.3";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "kovidgoyal";
     repo = "kitty";
     rev = "v${version}";
-    sha256 = "06mlrc283k5f75y36fmmaxnj29jfc1s8vaykjph6a86m1gcl5wgi";
+    sha256 = "0r49bybqy6c0n1lz6yc85py80wb40w757m60f5rszjf200wnyl6s";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/terminal-emulators/tilda/default.nix b/pkgs/applications/terminal-emulators/tilda/default.nix
index 0a672b039f6..560a47a9cdb 100644
--- a/pkgs/applications/terminal-emulators/tilda/default.nix
+++ b/pkgs/applications/terminal-emulators/tilda/default.nix
@@ -1,23 +1,35 @@
-{ stdenv, fetchFromGitHub, pkgconfig
-, autoreconfHook, gettext, expat, pcre2
-, libconfuse, vte, gtk
-, makeWrapper }:
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+, pkg-config
+, expat
+, gettext
+, gtk
+, libconfuse
+, pcre2
+, vte
+, makeWrapper
+}:
 
-with stdenv.lib;
 stdenv.mkDerivation rec {
-
   pname = "tilda";
-  version = "1.5.2";
+  version = "1.5.4";
 
   src = fetchFromGitHub {
     owner = "lanoxx";
     repo = "tilda";
     rev = "${pname}-${version}";
-    sha256 = "0psq0f4s0s92bba6wwcf6b0j7i59b76svqxhvpavwv53yvhmmamn";
+    sha256 = "sha256-uDx28jmjNUyzJbgTJiHbjI9U5mYb9bnfl/9AjbxNUWA=";
   };
 
-  nativeBuildInputs = [ autoreconfHook makeWrapper pkgconfig ];
-  buildInputs = [ gettext pcre2 libconfuse vte gtk ];
+  nativeBuildInputs = [ autoreconfHook makeWrapper pkg-config ];
+  buildInputs = [
+    gettext
+    gtk
+    libconfuse
+    pcre2
+    vte
+  ];
 
   LD_LIBRARY_PATH = "${expat.out}/lib"; # ugly hack for xgettext to work during build
 
@@ -30,10 +42,10 @@ stdenv.mkDerivation rec {
         --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A Gtk based drop down terminal for Linux and Unix";
     homepage = "https://github.com/lanoxx/tilda/";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = [ maintainers.AndersonTorres ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/applications/terminal-emulators/xterm/default.nix b/pkgs/applications/terminal-emulators/xterm/default.nix
index 1ec704f5d43..d06a66edf1a 100644
--- a/pkgs/applications/terminal-emulators/xterm/default.nix
+++ b/pkgs/applications/terminal-emulators/xterm/default.nix
@@ -4,14 +4,14 @@
 
 stdenv.mkDerivation rec {
   pname = "xterm";
-  version = "362";
+  version = "363";
 
   src = fetchurl {
     urls = [
       "ftp://ftp.invisible-island.net/xterm/${pname}-${version}.tgz"
       "https://invisible-mirror.net/archives/xterm/${pname}-${version}.tgz"
     ];
-    sha256 = "HU/+Im+o8CGFm7wwB3iP9jpGoxJC2b2ae9fr4k6BrKI=";
+    sha256 = "2Bo2OeJlUrZ2W9zyi+Hs24rKv5B5VXCOgwrWOX6hC0g=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/version-management/fossil/default.nix b/pkgs/applications/version-management/fossil/default.nix
index f8ad81c6058..6d39ae0931c 100644
--- a/pkgs/applications/version-management/fossil/default.nix
+++ b/pkgs/applications/version-management/fossil/default.nix
@@ -15,7 +15,7 @@
 
 stdenv.mkDerivation rec {
   pname = "fossil";
-  version = "2.12.1";
+  version = "2.13";
 
   src = fetchurl {
     urls =
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
         "https://www.fossil-scm.org/index.html/uv/fossil-src-${version}.tar.gz"
       ];
     name = "${pname}-${version}.tar.gz";
-    sha256 = "00v6gmn2wpfms5jzf103hkm5s8i3bfs5mzacmznlhdzdrzzjc8w2";
+    sha256 = "1xbk7bb7340x2vvn22ykii54v721fwk8vgr3xvjkvv8ff7hd6cyr";
   };
 
   nativeBuildInputs = [ installShellFiles tcl ];
diff --git a/pkgs/applications/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix
index 49e46a3b69c..2b0efdf6904 100644
--- a/pkgs/applications/version-management/git-and-tools/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/default.nix
@@ -38,6 +38,8 @@ let
 
   ghq = callPackage ./ghq { };
 
+  ghr = callPackage ./ghr { };
+
   git = appendToName "minimal" gitBase;
 
   git-absorb = callPackage ./git-absorb {
@@ -203,6 +205,7 @@ let
 
   gitui = callPackage ./gitui {
     inherit (darwin.apple_sdk.frameworks) Security AppKit;
+    inherit (pkgs) openssl perl;
   };
 
   glab = callPackage ./glab { };
diff --git a/pkgs/applications/version-management/git-and-tools/delta/default.nix b/pkgs/applications/version-management/git-and-tools/delta/default.nix
index f667a7b6d8c..465de2d1d2b 100644
--- a/pkgs/applications/version-management/git-and-tools/delta/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/delta/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "delta";
-  version = "0.4.4";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "dandavison";
     repo = pname;
     rev = version;
-    sha256 = "1ng22g9h1l1v2yav8zh6w4nn6ifv8sfz8566m8155d0cza2iimw6";
+    sha256 = "17cmwkha25hwsvnjcp388zd9kwacfq7adjp0sjw59y0vyr1maf22";
   };
 
-  cargoSha256 = "0b3qv1ksk8fmpawih2qrz29wlpj1gvq9hw4yqm7hdk6awl5h8lvv";
+  cargoSha256 = "1bji818cmkl0286a4qcnfiwibnqd5q5fvzmzgk5cabrdwaag2ia5";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -34,6 +34,6 @@ rustPlatform.buildRustPackage rec {
     description = "A syntax-highlighting pager for git";
     changelog = "https://github.com/dandavison/delta/releases/tag/${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ marsam ma27 zowoq ];
+    maintainers = with maintainers; [ marsam zowoq ];
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/ghr/default.nix b/pkgs/applications/version-management/git-and-tools/ghr/default.nix
new file mode 100644
index 00000000000..be6d64646a5
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/ghr/default.nix
@@ -0,0 +1,30 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "ghr";
+  version = "0.13.0";
+
+  src = fetchFromGitHub {
+    owner = "tcnksm";
+    repo = "ghr";
+    rev = "v${version}";
+    sha256 = "1nm5kdjkqayxh06j9nr5daic9sw9nx9w06y9gaqhdrw9byvjpr1a";
+  };
+
+  vendorSha256 = "14avsngzhl1b8a05i43ph6sxh9vj0jls0acxr9j7r0h3f0vpamcj";
+
+  # Tests require a Github API token, and networking
+  doCheck = false;
+  doInstallCheck = true;
+
+  installCheckPhase = ''
+    $out/bin/ghr --version
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/tcnksm/ghr";
+    description = "Upload multiple artifacts to GitHub Release in parallel";
+    license = licenses.mit;
+    maintainers = [ maintainers.ivar ];
+  };
+}
diff --git a/pkgs/applications/version-management/git-and-tools/git-machete/default.nix b/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
index dac3c54a16a..3fb8b2f35e8 100644
--- a/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonApplication rec {
   pname = "git-machete";
-  version = "2.15.7";
+  version = "2.15.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0djbl4s9i7bs7kkldr7453yayi38s8mx0i41mkd0j2cvv5r9himr";
+    sha256 = "0sg9ci9q1v3975855vi491ass72ladp3bjj2mvg77yxj13g3qqsx";
   };
 
   nativeBuildInputs = [ installShellFiles pbr ];
diff --git a/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix b/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix
index a99ff3c2e08..a6ca3126d5c 100644
--- a/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gitstatus";
-  version = "1.4.3";
+  version = "1.4.4";
 
   src = fetchFromGitHub {
     owner = "romkatv";
     repo = "gitstatus";
     rev = "v${version}";
-    sha256 = "0skpi22plzb9r9cgqfnjzpaz856q9f4n0gd5i97nv8bfny8hl30z";
+    sha256 = "1w5kpca2v6iii912riywp1jscq7cpr5xv93mglr30pjnar1mk8gs";
   };
 
   buildInputs = [ (callPackage ./romkatv_libgit2.nix {}) ];
@@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "10x faster implementation of `git status` command";
     homepage = "https://github.com/romkatv/gitstatus";
-    license = [ licenses.gpl3 ];
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ mmlb hexa ];
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/gitui/default.nix b/pkgs/applications/version-management/git-and-tools/gitui/default.nix
index 21e382a44bc..f89349aaeaa 100644
--- a/pkgs/applications/version-management/git-and-tools/gitui/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gitui/default.nix
@@ -1,20 +1,20 @@
-{ stdenv, rustPlatform, fetchFromGitHub, libiconv, xorg, python3, Security, AppKit }:
+{ stdenv, rustPlatform, fetchFromGitHub, libiconv, perl, python3, Security, AppKit, openssl, xclip }:
 rustPlatform.buildRustPackage rec {
   pname = "gitui";
-  version = "0.10.1";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "extrawurst";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ifwbi6nydh66z6cprjmz2qvy9z52rj9jg2xf054i249gy955hah";
+    sha256 = "0yq98jslbac87zdzlwqc2kcd6hqy2wnza3l8n3asss1iaqcb0ilh";
   };
 
-  cargoSha256 = "1454dn7k1fc4yxhbcmx0z3hj9d9srnlc2k1qp707h1vq46ib1rsf";
+  cargoSha256 = "16riggrhk1f6lg8y46wn89ab5b1iz6lw00ngid20x4z32d2ww70f";
 
-  nativeBuildInputs = [ python3 ];
-  buildInputs = [ ]
-    ++ stdenv.lib.optional stdenv.isLinux xorg.libxcb
+  nativeBuildInputs = [ python3 perl ];
+  buildInputs = [ openssl ]
+    ++ stdenv.lib.optional stdenv.isLinux xclip
     ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv Security AppKit ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/version-management/git-and-tools/hub/default.nix b/pkgs/applications/version-management/git-and-tools/hub/default.nix
index be813642797..788512df85c 100644
--- a/pkgs/applications/version-management/git-and-tools/hub/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/hub/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, groff, installShellFiles, util-linux }:
+{ stdenv, buildGoPackage, fetchFromGitHub, git, groff, installShellFiles, util-linux, nixosTests }:
 
 buildGoPackage rec {
   pname = "hub";
@@ -20,6 +20,8 @@ buildGoPackage rec {
 
   postPatch = ''
     patchShebangs .
+    substituteInPlace git/git.go --replace "cmd.New(\"git\")" "cmd.New(\"${git}/bin/git\")"
+    substituteInPlace commands/args.go --replace "Executable:  \"git\"" "Executable:  \"${git}/bin/git\""
   '';
 
   postInstall = ''
@@ -33,6 +35,8 @@ buildGoPackage rec {
     installManPage share/man/man[1-9]/*.[1-9]
   '';
 
+  passthru.tests = { inherit (nixosTests) hub; };
+
   meta = with stdenv.lib; {
     description = "Command-line wrapper for git that makes you better at GitHub";
     license = licenses.mit;
diff --git a/pkgs/applications/version-management/git-and-tools/lab/default.nix b/pkgs/applications/version-management/git-and-tools/lab/default.nix
index 3459f5099c9..437529cd73a 100644
--- a/pkgs/applications/version-management/git-and-tools/lab/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/lab/default.nix
@@ -1,32 +1,32 @@
-{ lib, buildGoModule, fetchFromGitHub, makeWrapper, xdg_utils }:
+{ lib, buildGoModule, fetchFromGitHub, makeWrapper, xdg_utils, installShellFiles, git }:
 
 buildGoModule rec {
   pname = "lab";
-  version = "0.17.2";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "zaquestion";
     repo = "lab";
     rev = "v${version}";
-    sha256 = "0zkwvmzgj7h8lc8jkg2a81392b28c8hkwqzj6dds6q4asbmymx5c";
+    sha256 = "1vl5ylix4h6z1vrdslv9qphgb6yqpqd4r54jzk5kd6zgrnf9c2zc";
   };
 
   subPackages = [ "." ];
 
-  vendorSha256 = "1lrmafvv5zfn9kc0p8g5vdz351n1zbaqwhwk861fxys0rdpqskyc";
+  vendorSha256 = "07zl5xhzgrgr5skba6cds5nal58pllf10gak0ap62j1k9gk2ych2";
 
   doCheck = false;
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper installShellFiles ];
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
   postInstall = ''
-    mkdir -p "$out/share/bash-completion/completions" "$out/share/zsh/site-functions"
-    export LAB_CORE_HOST=a LAB_CORE_USER=b LAB_CORE_TOKEN=c
-    $out/bin/lab completion bash > $out/share/bash-completion/completions/lab
-    $out/bin/lab completion zsh > $out/share/zsh/site-functions/_lab
-    wrapProgram $out/bin/lab --prefix PATH ":" "${lib.makeBinPath [ xdg_utils ]}";
+    wrapProgram $out/bin/lab --prefix PATH ":" "${lib.makeBinPath [ git xdg_utils ]}";
+    for shell in bash fish zsh; do
+      $out/bin/lab completion $shell > lab.$shell
+      installShellCompletion lab.$shell
+    done
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/version-management/gitea/default.nix b/pkgs/applications/version-management/gitea/default.nix
index 340ab283bf6..ffbeb050956 100644
--- a/pkgs/applications/version-management/gitea/default.nix
+++ b/pkgs/applications/version-management/gitea/default.nix
@@ -8,11 +8,11 @@ with stdenv.lib;
 
 buildGoPackage rec {
   pname = "gitea";
-  version = "1.13.0";
+  version = "1.13.1";
 
   src = fetchurl {
     url = "https://github.com/go-gitea/gitea/releases/download/v${version}/gitea-src-${version}.tar.gz";
-    sha256 = "090i4hk9mb66ia14kyp7rqymhc897yi1ifb0skvknylx0sw8vhk9";
+    sha256 = "sha256-tah7ciq+jkkROJq/V+yPRtWPuWaSnf5hKndjnifsQYc=";
   };
 
   unpackPhase = ''
diff --git a/pkgs/applications/version-management/gitlab/data.json b/pkgs/applications/version-management/gitlab/data.json
index 866b7efa423..c6d4401fde4 100644
--- a/pkgs/applications/version-management/gitlab/data.json
+++ b/pkgs/applications/version-management/gitlab/data.json
@@ -1,13 +1,13 @@
 {
-  "version": "13.6.1",
-  "repo_hash": "0kfh9ngykrnvvjpx4m69pfyfvsvvqfxzlxhm8dgx9ypz4bpmr947",
+  "version": "13.7.1",
+  "repo_hash": "13bbi9ps6z8q9di9gni2ckydgfk7pxkaqf0wgx8gfwm80sc7s0km",
   "owner": "gitlab-org",
   "repo": "gitlab",
-  "rev": "v13.6.1-ee",
+  "rev": "v13.7.1-ee",
   "passthru": {
-    "GITALY_SERVER_VERSION": "13.6.1",
-    "GITLAB_PAGES_VERSION": "1.30.0",
-    "GITLAB_SHELL_VERSION": "13.13.0",
-    "GITLAB_WORKHORSE_VERSION": "8.54.0"
+    "GITALY_SERVER_VERSION": "13.7.1",
+    "GITLAB_PAGES_VERSION": "1.32.0",
+    "GITLAB_SHELL_VERSION": "13.14.0",
+    "GITLAB_WORKHORSE_VERSION": "8.58.0"
   }
 }
diff --git a/pkgs/applications/version-management/gitlab/gitaly/Gemfile b/pkgs/applications/version-management/gitlab/gitaly/Gemfile
index d8564dca877..0a7fcd7c260 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/Gemfile
+++ b/pkgs/applications/version-management/gitlab/gitaly/Gemfile
@@ -1,7 +1,7 @@
 source 'https://rubygems.org'
 
 gem 'rugged', '~> 0.28'
-gem 'github-linguist', '~> 7.11', require: 'linguist'
+gem 'github-linguist', '~> 7.12', require: 'linguist'
 gem 'gitlab-markup', '~> 1.7.1'
 gem 'activesupport', '~> 6.0.3.3'
 gem 'rdoc', '~> 6.0'
diff --git a/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock b/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
index a633e067f0d..eb5c86946d7 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
@@ -45,7 +45,7 @@ GEM
     ffi (1.13.1)
     gemojione (3.3.0)
       json
-    github-linguist (7.11.0)
+    github-linguist (7.12.1)
       charlock_holmes (~> 0.7.7)
       escape_utils (~> 1.2.0)
       mini_mime (~> 1.0)
@@ -134,7 +134,7 @@ GEM
     redis (4.1.3)
     regexp_parser (1.8.1)
     rexml (3.2.4)
-    rouge (3.24.0)
+    rouge (3.26.0)
     rspec (3.8.0)
       rspec-core (~> 3.8.0)
       rspec-expectations (~> 3.8.0)
@@ -197,7 +197,7 @@ DEPENDENCIES
   activesupport (~> 6.0.3.3)
   factory_bot
   faraday (~> 1.0)
-  github-linguist (~> 7.11)
+  github-linguist (~> 7.12)
   gitlab-gollum-lib (~> 4.2.7.9)
   gitlab-gollum-rugged_adapter (~> 0.4.4.2)
   gitlab-labkit (~> 0.13.2)
diff --git a/pkgs/applications/version-management/gitlab/gitaly/default.nix b/pkgs/applications/version-management/gitlab/gitaly/default.nix
index 57465f808df..e8c99198df4 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -4,6 +4,18 @@
 , libgit2, openssl, zlib, pcre, http-parser }:
 
 let
+  # libgit2 was updated to 1.1.0 in nixpkgs, but gitlab doesn't support that yet.
+  # See https://github.com/NixOS/nixpkgs/pull/106909
+  libgit = libgit2.overrideAttrs (attrs: rec {
+    version = "1.0.0";
+    src = fetchFromGitHub {
+      owner = "libgit2";
+      repo = "libgit2";
+      rev = "v${version}";
+      sha256 = "06cwrw93ycpfb5kisnsa5nsy95pm11dbh0vvdjg1jn25h9q5d3vc";
+    };
+  });
+
   rubyEnv = bundlerEnv rec {
     name = "gitaly-env";
     inherit ruby;
@@ -21,17 +33,17 @@ let
       };
   };
 in buildGoModule rec {
-  version = "13.6.1";
+  version = "13.7.1";
   pname = "gitaly";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitaly";
     rev = "v${version}";
-    sha256 = "02w7pf7l9sr2nk8ky9b0d5b4syx3d9my65h2kzvh2afk7kv35h5y";
+    sha256 = "1zmjll7sdan8kc7bq5vjaiyqwzlh5zmx1g4ql4dqmnwscpn1avjb";
   };
 
-  vendorSha256 = "15mx5g2wa93sajbdwh58wcspg0n51d1ciwb7f15d0nm5hspz3w9r";
+  vendorSha256 = "15i1ajvrff1bfpv3kmb1wm1mmriswwfw2v4cml0nv0zp6a5n5187";
 
   passthru = {
     inherit rubyEnv;
@@ -39,7 +51,7 @@ in buildGoModule rec {
 
   buildFlags = [ "-tags=static,system_libgit2" ];
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ rubyEnv.wrappedRuby libgit2 openssl zlib pcre http-parser ];
+  buildInputs = [ rubyEnv.wrappedRuby libgit openssl zlib pcre http-parser ];
   doCheck = false;
 
   postInstall = ''
diff --git a/pkgs/applications/version-management/gitlab/gitaly/gemset.nix b/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
index 9cdadec5d4f..fe05c1d0178 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
@@ -207,10 +207,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12vwx6msqqdyf10zrrp2zdwr8ixrb82phriyin16rsmndb93cijv";
+      sha256 = "08lnb04qmlz4arls3nr3ia0k8r1kcyn010fr5qvc2qddidckqk88";
       type = "gem";
     };
-    version = "7.11.0";
+    version = "7.12.1";
   };
   github-markup = {
     source = {
@@ -645,10 +645,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1igl00gk0vaq4xxk44m7yflqdzsblgxlzcxj8saz96bmx7mg7392";
+      sha256 = "0b4b300i3m4m4kw7w1n9wgxwy16zccnb7271miksyzd0wq5b9pm3";
       type = "gem";
     };
-    version = "3.24.0";
+    version = "3.26.0";
   };
   rspec = {
     dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
diff --git a/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix b/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
index e2dd35ff331..14f7ce0f81e 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
@@ -2,12 +2,12 @@
 
 buildGoModule rec {
   pname = "gitlab-shell";
-  version = "13.13.0";
+  version = "13.14.0";
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-shell";
     rev = "v${version}";
-    sha256 = "1zx7x3g18xzw7fs7cayd20llxabv5r93m2mp6ixgr99ksvi6zix7";
+    sha256 = "171c4rfffb73198fhlwk8rq7xy4b4zrnssi8c1wd0x82kqv6csb0";
   };
 
   buildInputs = [ ruby ];
diff --git a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
index a0f80533caa..e536d4fcbb1 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
@@ -3,16 +3,16 @@
 buildGoModule rec {
   pname = "gitlab-workhorse";
 
-  version = "8.54.0";
+  version = "8.58.0";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-workhorse";
     rev = "v${version}";
-    sha256 = "0fz00sl9q4d3vbslh7y9nsnhjshgfg0x7mv7b7a9sc3mxmabp7gz";
+    sha256 = "1642vxxqnpccjzfls3vz4l62kvksk6irwv1dhjcxv1cppbr9hz80";
   };
 
-  vendorSha256 = "0wi6vj9phwh0bsdk2lrgq807nb90iivlm0bkdjkim06jq068mizj";
+  vendorSha256 = "0vkw12w7vr0g4hf4f0im79y7l36d3ah01n1vl7siy94si47g8ir5";
   buildInputs = [ git ];
   buildFlagsArray = "-ldflags=-X main.Version=${version}";
   doCheck = false;
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
index d60fefe29dc..49d0841be3c 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
@@ -66,7 +66,7 @@ gem 'attr_encrypted', '~> 3.1.0'
 gem 'u2f', '~> 0.2.1'
 
 # GitLab Pages
-gem 'validates_hostname', '~> 1.0.10'
+gem 'validates_hostname', '~> 1.0.11'
 gem 'rubyzip', '~> 2.0.0', require: 'zip'
 # GitLab Pages letsencrypt support
 gem 'acme-client', '~> 2.0', '>= 2.0.6'
@@ -115,11 +115,11 @@ gem 'carrierwave', '~> 1.3'
 gem 'mini_magick', '~> 4.10.1'
 
 # for backups
-gem 'fog-aws', '~> 3.5'
+gem 'fog-aws', '~> 3.7'
 # Locked until fog-google resolves https://github.com/fog/fog-google/issues/421.
 # Also see config/initializers/fog_core_patch.rb.
 gem 'fog-core', '= 2.1.0'
-gem 'fog-google', '~> 1.11'
+gem 'fog-google', '~> 1.12'
 gem 'fog-local', '~> 0.6'
 gem 'fog-openstack', '~> 1.0'
 gem 'fog-rackspace', '~> 0.1.1'
@@ -149,7 +149,7 @@ gem 'html-pipeline', '~> 2.12'
 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.20'
+gem 'commonmarker', '~> 0.21'
 gem 'kramdown', '~> 2.3.0'
 gem 'RedCloth', '~> 4.3.2'
 gem 'rdoc', '~> 6.1.2'
@@ -159,7 +159,8 @@ gem 'wikicloth', '0.8.1'
 gem 'asciidoctor', '~> 2.0.10'
 gem 'asciidoctor-include-ext', '~> 0.3.1', require: false
 gem 'asciidoctor-plantuml', '~> 0.0.12'
-gem 'rouge', '~> 3.25.0'
+gem 'asciidoctor-kroki', '~> 0.2.2', require: false
+gem 'rouge', '~> 3.26.0'
 gem 'truncato', '~> 0.7.11'
 gem 'bootstrap_form', '~> 4.2.0'
 gem 'nokogiri', '~> 1.10.9'
@@ -209,7 +210,7 @@ gem 'httparty', '~> 0.16.4'
 gem 'rainbow', '~> 3.0'
 
 # Progress bar
-gem 'ruby-progressbar'
+gem 'ruby-progressbar', '~> 1.10'
 
 # GitLab settings
 gem 'settingslogic', '~> 2.0.9'
@@ -291,7 +292,6 @@ gem 'sassc-rails', '~> 2.1.0'
 gem 'terser', '1.0.2'
 
 gem 'addressable', '~> 2.7'
-gem 'font-awesome-rails', '~> 4.7'
 gem 'gemojione', '~> 3.3'
 gem 'gon', '~> 6.2'
 gem 'request_store', '~> 1.5'
@@ -311,7 +311,7 @@ gem 'gitlab-pg_query', '~> 1.3', require: 'pg_query'
 gem 'premailer-rails', '~> 1.10.3'
 
 # LabKit: Tracing and Correlation
-gem 'gitlab-labkit', '0.13.1'
+gem 'gitlab-labkit', '0.13.3'
 
 # I18n
 gem 'ruby_parser', '~> 3.15', require: false
@@ -351,6 +351,7 @@ group :development do
 end
 
 group :development, :test do
+  gem 'deprecation_toolkit', '~> 1.5.1', require: false
   gem 'bullet', '~> 6.1.0'
   gem 'pry-byebug', '~> 3.9.0', platform: :mri
   gem 'pry-rails', '~> 0.3.9'
@@ -370,7 +371,7 @@ group :development, :test do
   gem 'spring', '~> 2.1.0'
   gem 'spring-commands-rspec', '~> 1.0.4'
 
-  gem 'gitlab-styles', '~> 5.1.0', require: false
+  gem 'gitlab-styles', '~> 5.3.0', require: false
 
   gem 'scss_lint', '~> 0.59.0', require: false
   gem 'haml_lint', '~> 0.36.0', require: false
@@ -428,7 +429,7 @@ end
 gem 'octokit', '~> 4.15'
 
 # https://gitlab.com/gitlab-org/gitlab/issues/207207
-gem 'gitlab-mail_room', '~> 0.0.7', require: 'mail_room'
+gem 'gitlab-mail_room', '~> 0.0.8', require: 'mail_room'
 
 gem 'email_reply_trimmer', '~> 0.1'
 gem 'html2text'
@@ -464,7 +465,7 @@ group :ed25519 do
 end
 
 # Gitaly GRPC protocol definitions
-gem 'gitaly', '~> 13.5.0-rc2'
+gem 'gitaly', '~> 13.7.0.pre.rc1'
 
 gem 'grpc', '~> 1.30.2'
 
@@ -477,6 +478,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.4.4'
 
 # Structured logging
 gem 'lograge', '~> 0.5'
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
index 64179847dd8..1cd90080fd8 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
@@ -84,6 +84,8 @@ GEM
     asciidoctor (2.0.10)
     asciidoctor-include-ext (0.3.1)
       asciidoctor (>= 1.5.6, < 3.0.0)
+    asciidoctor-kroki (0.2.2)
+      asciidoctor (~> 2.0)
     asciidoctor-plantuml (0.0.12)
       asciidoctor (>= 1.5.6, < 3.0.0)
     ast (2.4.1)
@@ -177,7 +179,7 @@ GEM
       open4 (~> 1.3)
     coderay (1.1.3)
     colored2 (3.1.2)
-    commonmarker (0.20.1)
+    commonmarker (0.21.0)
       ruby-enum (~> 0.5)
     concord (0.1.5)
       adamantium (~> 0.2.0)
@@ -220,10 +222,12 @@ GEM
     debugger-ruby_core_source (1.3.8)
     deckar01-task_list (2.3.1)
       html-pipeline
-    declarative (0.0.10)
+    declarative (0.0.20)
     declarative-option (0.1.0)
     default_value_for (3.3.0)
       activerecord (>= 3.2.0, < 6.1)
+    deprecation_toolkit (1.5.1)
+      activesupport (>= 4.2)
     derailed_benchmarks (1.7.0)
       benchmark-ips (~> 2)
       get_process_mem (~> 0)
@@ -359,7 +363,7 @@ GEM
       fog-json
       ipaddress (~> 0.8)
       xml-simple (~> 1.1)
-    fog-aws (3.5.2)
+    fog-aws (3.7.0)
       fog-core (~> 2.1)
       fog-json (~> 1.1)
       fog-xml (~> 0.1)
@@ -369,11 +373,11 @@ GEM
       excon (~> 0.58)
       formatador (~> 0.2)
       mime-types
-    fog-google (1.11.0)
+    fog-google (1.12.0)
       fog-core (<= 2.1.0)
       fog-json (~> 1.2)
       fog-xml (~> 0.1.0)
-      google-api-client (>= 0.32, < 0.34)
+      google-api-client (>= 0.44.2, < 0.51)
       google-cloud-env (~> 1.2)
     fog-json (1.2.0)
       fog-core
@@ -392,8 +396,6 @@ GEM
     fog-xml (0.1.3)
       fog-core
       nokogiri (>= 1.5.11, < 2.0.0)
-    font-awesome-rails (4.7.0.5)
-      railties (>= 3.2, < 6.1)
     formatador (0.2.5)
     fugit (1.2.1)
       et-orbi (~> 1.1, >= 1.1.8)
@@ -418,11 +420,14 @@ GEM
       rails (>= 3.2.0)
     git (1.7.0)
       rchardet (~> 1.8)
-    gitaly (13.5.0.pre.rc2)
+    gitaly (13.7.0.pre.rc1)
       grpc (~> 1.0)
     github-markup (1.7.0)
     gitlab-chronic (0.10.5)
       numerizer (~> 0.2)
+    gitlab-experiment (0.4.4)
+      activesupport (>= 3.0)
+      scientist (~> 1.5, >= 1.5.0)
     gitlab-fog-azure-rm (1.0.0)
       azure-storage-blob (~> 2.0)
       azure-storage-common (~> 2.0)
@@ -430,15 +435,16 @@ GEM
       fog-json (~> 1.2.0)
       mime-types
       ms_rest_azure (~> 0.12.0)
-    gitlab-labkit (0.13.1)
+    gitlab-labkit (0.13.3)
       actionpack (>= 5.0.0, < 6.1.0)
       activesupport (>= 5.0.0, < 6.1.0)
+      gitlab-pg_query (~> 1.3)
       grpc (~> 1.19)
       jaeger-client (~> 1.1)
       opentracing (~> 0.4)
       redis (> 3.0.0, < 5.0.0)
     gitlab-license (1.0.0)
-    gitlab-mail_room (0.0.7)
+    gitlab-mail_room (0.0.8)
     gitlab-markup (1.7.1)
     gitlab-net-dns (0.9.1)
     gitlab-pg_query (1.3.0)
@@ -449,7 +455,7 @@ GEM
       gitlab-puma (>= 2.7, < 5)
     gitlab-sidekiq-fetcher (0.5.2)
       sidekiq (~> 5)
-    gitlab-styles (5.1.0)
+    gitlab-styles (5.3.0)
       rubocop (~> 0.89.1)
       rubocop-gitlab-security (~> 0.1.0)
       rubocop-performance (~> 1.8.1)
@@ -468,20 +474,21 @@ GEM
       actionpack (>= 3.0)
       multi_json
       request_store (>= 1.0)
-    google-api-client (0.33.2)
+    google-api-client (0.50.0)
       addressable (~> 2.5, >= 2.5.1)
       googleauth (~> 0.9)
       httpclient (>= 2.8.1, < 3.0)
       mini_mime (~> 1.0)
       representable (~> 3.0)
       retriable (>= 2.0, < 4.0)
+      rexml
       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)
-    googleauth (0.12.0)
+    googleauth (0.14.0)
       faraday (>= 0.17.3, < 2.0)
       jwt (>= 1.4, < 3.0)
       memoist (~> 0.16)
@@ -691,7 +698,7 @@ GEM
     marginalia (1.9.0)
       actionpack (>= 2.3)
       activerecord (>= 2.3)
-    memoist (0.16.0)
+    memoist (0.16.2)
     memoizable (0.4.2)
       thread_safe (~> 0.3, >= 0.3.1)
     memory_profiler (0.9.14)
@@ -832,7 +839,7 @@ GEM
     org-ruby (0.9.12)
       rubypants (~> 0.2)
     orm_adapter (0.5.0)
-    os (1.0.0)
+    os (1.1.1)
     parallel (1.19.2)
     parser (2.7.2.0)
       ast (~> 2.4.1)
@@ -977,7 +984,7 @@ GEM
     rexml (3.2.4)
     rinku (2.0.0)
     rotp (2.1.2)
-    rouge (3.25.0)
+    rouge (3.26.0)
     rqrcode (0.7.0)
       chunky_png
     rqrcode-rails3 (0.1.7)
@@ -1041,7 +1048,7 @@ GEM
     rubocop-rspec (1.44.1)
       rubocop (~> 0.87)
       rubocop-ast (>= 0.7.1)
-    ruby-enum (0.7.2)
+    ruby-enum (0.8.0)
       i18n
     ruby-fogbugz (0.2.1)
       crack (~> 0.4)
@@ -1081,6 +1088,7 @@ GEM
     sawyer (0.8.2)
       addressable (>= 2.3.5)
       faraday (> 0.8, < 2.0)
+    scientist (1.5.0)
     scss_lint (0.59.0)
       sass (~> 3.5, >= 3.5.5)
     securecompare (1.0.0)
@@ -1215,7 +1223,7 @@ GEM
     validate_url (1.0.8)
       activemodel (>= 3.0.0)
       public_suffix
-    validates_hostname (1.0.10)
+    validates_hostname (1.0.11)
       activerecord (>= 3.0)
       activesupport (>= 3.0)
     version_sorter (2.2.4)
@@ -1267,6 +1275,7 @@ DEPENDENCIES
   asana (= 0.10.2)
   asciidoctor (~> 2.0.10)
   asciidoctor-include-ext (~> 0.3.1)
+  asciidoctor-kroki (~> 0.2.2)
   asciidoctor-plantuml (~> 0.0.12)
   atlassian-jwt (~> 0.2.0)
   attr_encrypted (~> 3.1.0)
@@ -1292,7 +1301,7 @@ DEPENDENCIES
   capybara-screenshot (~> 1.0.22)
   carrierwave (~> 1.3)
   charlock_holmes (~> 0.7.7)
-  commonmarker (~> 0.20)
+  commonmarker (~> 0.21)
   concurrent-ruby (~> 1.1)
   connection_pool (~> 2.0)
   countries (~> 3.0)
@@ -1302,6 +1311,7 @@ DEPENDENCIES
   database_cleaner (~> 1.7.0)
   deckar01-task_list (= 2.3.1)
   default_value_for (~> 3.3.0)
+  deprecation_toolkit (~> 1.5.1)
   derailed_benchmarks
   device_detector
   devise (~> 4.7.2)
@@ -1329,33 +1339,33 @@ DEPENDENCIES
   flipper-active_support_cache_store (~> 0.17.1)
   flowdock (~> 0.7)
   fog-aliyun (~> 0.3)
-  fog-aws (~> 3.5)
+  fog-aws (~> 3.7)
   fog-core (= 2.1.0)
-  fog-google (~> 1.11)
+  fog-google (~> 1.12)
   fog-local (~> 0.6)
   fog-openstack (~> 1.0)
   fog-rackspace (~> 0.1.1)
-  font-awesome-rails (~> 4.7)
   fugit (~> 1.2.1)
   fuubar (~> 2.2.0)
   gemojione (~> 3.3)
   gettext (~> 3.3)
   gettext_i18n_rails (~> 1.8.0)
   gettext_i18n_rails_js (~> 1.3)
-  gitaly (~> 13.5.0.pre.rc2)
+  gitaly (~> 13.7.0.pre.rc1)
   github-markup (~> 1.7.0)
   gitlab-chronic (~> 0.10.5)
+  gitlab-experiment (~> 0.4.4)
   gitlab-fog-azure-rm (~> 1.0)
-  gitlab-labkit (= 0.13.1)
+  gitlab-labkit (= 0.13.3)
   gitlab-license (~> 1.0)
-  gitlab-mail_room (~> 0.0.7)
+  gitlab-mail_room (~> 0.0.8)
   gitlab-markup (~> 1.7.1)
   gitlab-net-dns (~> 0.9.1)
   gitlab-pg_query (~> 1.3)
   gitlab-puma (~> 4.3.3.gitlab.2)
   gitlab-puma_worker_killer (~> 0.1.1.gitlab.1)
   gitlab-sidekiq-fetcher (= 0.5.2)
-  gitlab-styles (~> 5.1.0)
+  gitlab-styles (~> 5.3.0)
   gitlab_chronic_duration (~> 0.10.6.2)
   gitlab_omniauth-ldap (~> 2.1.1)
   gon (~> 6.2)
@@ -1468,7 +1478,7 @@ DEPENDENCIES
   request_store (~> 1.5)
   responders (~> 3.0)
   retriable (~> 3.1.2)
-  rouge (~> 3.25.0)
+  rouge (~> 3.26.0)
   rqrcode-rails3 (~> 0.1.7)
   rspec-parameterized
   rspec-rails (~> 4.0.0)
@@ -1477,7 +1487,7 @@ DEPENDENCIES
   rspec_profiling (~> 0.0.6)
   ruby-fogbugz (~> 0.2.1)
   ruby-prof (~> 1.3.0)
-  ruby-progressbar
+  ruby-progressbar (~> 1.10)
   ruby_parser (~> 3.15)
   rubyzip (~> 2.0.0)
   rugged (~> 0.28)
@@ -1515,7 +1525,7 @@ DEPENDENCIES
   unicorn-worker-killer (~> 0.4.4)
   unleash (~> 0.1.5)
   valid_email (~> 0.1)
-  validates_hostname (~> 1.0.10)
+  validates_hostname (~> 1.0.11)
   version_sorter (~> 2.2.4)
   vmstat (~> 2.3.0)
   webauthn (~> 2.3)
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
index 651b418234c..ebb3fe5b740 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
@@ -258,6 +258,17 @@
     };
     version = "0.3.1";
   };
+  asciidoctor-kroki = {
+    dependencies = ["asciidoctor"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10yc07x2z9f122wnncf34s91vlfcd4wy8y9wshxc7j2m4a2jlzm5";
+      type = "gem";
+    };
+    version = "0.2.2";
+  };
   asciidoctor-plantuml = {
     dependencies = ["asciidoctor"];
     groups = ["default"];
@@ -762,10 +773,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19zd9na1g2d0zzbqhmfj8rjfzcxj34vja3i52gvv859i8fifa461";
+      sha256 = "0vwpkmwfr8lx8b6cfvwh56f1ygyf2da5ah37mxbdr9mxmfwig5fr";
       type = "gem";
     };
-    version = "0.20.1";
+    version = "0.21.0";
   };
   concord = {
     dependencies = ["adamantium" "equalizer"];
@@ -955,10 +966,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0642xvwzzbgi3kp1bg467wma4g3xqrrn0sk369hjam7w579gnv5j";
+      sha256 = "1yczgnqrbls7shrg63y88g7wand2yp9h6sf56c9bdcksn5nds8c0";
       type = "gem";
     };
-    version = "0.0.10";
+    version = "0.0.20";
   };
   declarative-option = {
     groups = ["default"];
@@ -981,6 +992,17 @@
     };
     version = "3.3.0";
   };
+  deprecation_toolkit = {
+    dependencies = ["activesupport"];
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fh4d98irhph3ri7c2rrvvmmjd4z14702r8baq9flh5f34dap8d8";
+      type = "gem";
+    };
+    version = "1.5.1";
+  };
   derailed_benchmarks = {
     dependencies = ["benchmark-ips" "get_process_mem" "heapy" "memory_profiler" "mini_histogram" "rack" "rake" "ruby-statistics" "thor" "unicode_plot"];
     groups = ["default"];
@@ -1590,10 +1612,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "086kyvdhf1k8nk7f4gmybjc3k0m88f9pw99frddcy1w96pj5kyg4";
+      sha256 = "1764kvyzigaxwmxgfggpqq15qpplm77j2nmvhf8f0gybsm3vbrbn";
       type = "gem";
     };
-    version = "3.5.2";
+    version = "3.7.0";
   };
   fog-core = {
     dependencies = ["builder" "excon" "formatador" "mime-types"];
@@ -1612,10 +1634,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1h9apmm2pyb157pbnrqk37wfs2d9f35navsgzs3kclrxhyl2qm5f";
+      sha256 = "1cl6rprichdn1i40c2ndri1c53cfb0x2xk58l9arwip9ivkasln4";
       type = "gem";
     };
-    version = "1.11.0";
+    version = "1.12.0";
   };
   fog-json = {
     dependencies = ["fog-core" "multi_json"];
@@ -1672,17 +1694,6 @@
     };
     version = "0.1.3";
   };
-  font-awesome-rails = {
-    dependencies = ["railties"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0a32q69rdsdw9zhmf2cflvvnikg20amidhn40sv2afw2qk91fcrz";
-      type = "gem";
-    };
-    version = "4.7.0.5";
-  };
   formatador = {
     groups = ["default"];
     platforms = [];
@@ -1797,10 +1808,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1q1l0c1yjnhr451jj845h2vd9s00grjiyj2w9r1b9y3bscsyzs0m";
+      sha256 = "1al29diaj9zrkj1rxwrqd644f2winv81dmnjycvm0gsim0vvw2hq";
       type = "gem";
     };
-    version = "13.5.0.pre.rc2";
+    version = "13.7.0.pre.rc1";
   };
   github-markup = {
     groups = ["default"];
@@ -1823,6 +1834,17 @@
     };
     version = "0.10.5";
   };
+  gitlab-experiment = {
+    dependencies = ["activesupport" "scientist"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12ng0q49vl4k80m3hyx6bz915x1gmfmxjvgzdp3w0q77j4qv6nwi";
+      type = "gem";
+    };
+    version = "0.4.4";
+  };
   gitlab-fog-azure-rm = {
     dependencies = ["azure-storage-blob" "azure-storage-common" "fog-core" "fog-json" "mime-types" "ms_rest_azure"];
     groups = ["default"];
@@ -1835,15 +1857,15 @@
     version = "1.0.0";
   };
   gitlab-labkit = {
-    dependencies = ["actionpack" "activesupport" "grpc" "jaeger-client" "opentracing" "redis"];
+    dependencies = ["actionpack" "activesupport" "gitlab-pg_query" "grpc" "jaeger-client" "opentracing" "redis"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0cnrpqswicawhpvd4dh4jcma9d4haznc4gyl37ssvj1jkfhc4w40";
+      sha256 = "0x4d5dl60cfvvqj89b8blpsxa7lbbblqwdqy8kc1z51gira7i803";
       type = "gem";
     };
-    version = "0.13.1";
+    version = "0.13.3";
   };
   gitlab-license = {
     groups = ["default"];
@@ -1860,10 +1882,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14785l38sqrgf06y45ayhj3nhfqdar8vrsxna764vdsw01dngmin";
+      sha256 = "05j8rpsbl2l5q4xnfh2cnws9axy1a19asg8nlw6jngba94raw5ir";
       type = "gem";
     };
-    version = "0.0.7";
+    version = "0.0.8";
   };
   gitlab-markup = {
     groups = ["default"];
@@ -1934,10 +1956,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0l24vgcmvval1apqk99c3ifcwlg1fh60vf02ggnc20f65dka81p3";
+      sha256 = "14zg4mxj780ssk6lg8mvy4br3327cdlq17k5sds8zk2glng9vmsh";
       type = "gem";
     };
-    version = "5.1.0";
+    version = "5.3.0";
   };
   gitlab_chronic_duration = {
     dependencies = ["numerizer"];
@@ -1984,15 +2006,15 @@
     version = "6.2.0";
   };
   google-api-client = {
-    dependencies = ["addressable" "googleauth" "httpclient" "mini_mime" "representable" "retriable" "signet"];
+    dependencies = ["addressable" "googleauth" "httpclient" "mini_mime" "representable" "retriable" "rexml" "signet"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13y6xara8w211y88pxa8bcbg6y40vkidqk854zl7z4csmgfnplxq";
+      sha256 = "05ynbapd26wppcqa81kw6kb8a39mzp0fql1rwmk3lgr95ybmxr1s";
       type = "gem";
     };
-    version = "0.33.2";
+    version = "0.50.0";
   };
   google-cloud-env = {
     dependencies = ["faraday"];
@@ -2032,10 +2054,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rsk471ld98pxhvzig3lnw9i13454c9nschvzxvq6vjqnn9ip0yh";
+      sha256 = "0cm60nbmwzf83fzy06f3iyn5a6sw91siw8x9bdvpwwmjsmivana6";
       type = "gem";
     };
-    version = "0.12.0";
+    version = "0.14.0";
   };
   gpgme = {
     dependencies = ["mini_portile2"];
@@ -2854,10 +2876,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pq8fhqh8w25qcw9v3vzfb0i6jp0k3949ahxc3wrwz2791dpbgbh";
+      sha256 = "0i9wpzix3sjhf6d9zw60dm4371iq8kyz7ckh2qapan2vyaim6b55";
       type = "gem";
     };
-    version = "0.16.0";
+    version = "0.16.2";
   };
   memoizable = {
     dependencies = ["thread_safe"];
@@ -3562,10 +3584,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1s401gvhqgs2r8hh43ia205mxsy1wc0ib4k76wzkdpspfcnfr1rk";
+      sha256 = "12fli64wz5j9868gpzv5wqsingk1jk457qyqksv9ksmq9b0zpc9x";
       type = "gem";
     };
-    version = "1.0.0";
+    version = "1.1.1";
   };
   parallel = {
     groups = ["development" "test"];
@@ -4250,10 +4272,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0yvcv901lrh5rfnk1h4h56hf2m6n9pd6w8n96vag74aakgz3gaxn";
+      sha256 = "0b4b300i3m4m4kw7w1n9wgxwy16zccnb7271miksyzd0wq5b9pm3";
       type = "gem";
     };
-    version = "3.25.0";
+    version = "3.26.0";
   };
   rqrcode = {
     dependencies = ["chunky_png"];
@@ -4458,10 +4480,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0h62avini866kxpjzqxlqnajma3yvj0y25l6hn9h2mv5pp6fcrhx";
+      sha256 = "0d3dyx2z41zd6va9dwn3q8caf710vzdaf57xspc0y17aqmnprwnw";
       type = "gem";
     };
-    version = "0.7.2";
+    version = "0.8.0";
   };
   ruby-fogbugz = {
     dependencies = ["crack"];
@@ -4663,6 +4685,16 @@
     };
     version = "0.8.2";
   };
+  scientist = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09565ppvd851zxpspn5d5q28wqkfjyfxhvda9w80i16p3y937155";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
   scss_lint = {
     dependencies = ["sass"];
     groups = ["development" "test"];
@@ -5374,10 +5406,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "066hkh3ihzhrp5a9knjgqqfi5dyv4z5hfrpdj4fpgxjkvkfaxivy";
+      sha256 = "1hxqza44pvk6x6vb91cvllhw71hqziby06dk1s94rh9f6khbl1nm";
       type = "gem";
     };
-    version = "1.0.10";
+    version = "1.0.11";
   };
   version_sorter = {
     groups = ["default"];
diff --git a/pkgs/applications/version-management/gitlab/update.py b/pkgs/applications/version-management/gitlab/update.py
index 0f215370e18..f662bd3097f 100755
--- a/pkgs/applications/version-management/gitlab/update.py
+++ b/pkgs/applications/version-management/gitlab/update.py
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
-#! nix-shell -i python3 -p bundix bundler common-updater-scripts nix nix-universal-prefetch python3 python3Packages.requests python3Packages.click python3Packages.click-log vgo2nix yarn2nix
+#! nix-shell -i python3 -p bundix bundler nix-update nix nix-universal-prefetch python3 python3Packages.requests python3Packages.click python3Packages.click-log yarn2nix
 
 import click
 import click_log
@@ -83,10 +83,10 @@ def _get_data_json():
         return json.load(f)
 
 
-def _call_update_source_version(pkg, version):
-    """calls update-source-version from nixpkgs root dir"""
+def _call_nix_update(pkg, version):
+    """calls nix-update from nixpkgs root dir"""
     nixpkgs_path = pathlib.Path(__file__).parent / '../../../../'
-    return subprocess.check_output(['update-source-version', pkg, version], cwd=nixpkgs_path)
+    return subprocess.check_output(['nix-update', pkg, '--version', version], cwd=nixpkgs_path)
 
 
 @click_log.simple_verbosity_option(logger)
@@ -168,20 +168,10 @@ def update_gitaly():
         with open(gitaly_dir / fn, 'w') as f:
             f.write(repo.get_file(f"ruby/{fn}", f"v{gitaly_server_version}"))
 
-    for fn in ['go.mod', 'go.sum']:
-        with open(gitaly_dir / fn, 'w') as f:
-            f.write(repo.get_file(fn, f"v{gitaly_server_version}"))
-
     subprocess.check_output(['bundle', 'lock'], cwd=gitaly_dir)
     subprocess.check_output(['bundix'], cwd=gitaly_dir)
 
-    os.environ['GOROOT'] = ""
-    subprocess.check_output(['vgo2nix', '--keep-going'], cwd=gitaly_dir)
-
-    for fn in ['go.mod', 'go.sum']:
-        os.unlink(gitaly_dir / fn)
-
-    _call_update_source_version('gitaly', gitaly_server_version)
+    _call_nix_update('gitaly', gitaly_server_version)
 
 
 @cli.command('update-gitlab-shell')
@@ -189,42 +179,22 @@ def update_gitlab_shell():
     """Update gitlab-shell"""
     data = _get_data_json()
     gitlab_shell_version = data['passthru']['GITLAB_SHELL_VERSION']
-    _call_update_source_version('gitlab-shell', gitlab_shell_version)
+    _call_nix_update('gitlab-shell', gitlab_shell_version)
 
     repo = GitLabRepo(repo='gitlab-shell')
     gitlab_shell_dir = pathlib.Path(__file__).parent / 'gitlab-shell'
 
-    for fn in ['go.mod', 'go.sum']:
-        with open(gitlab_shell_dir / fn, 'w') as f:
-            f.write(repo.get_file(fn, f"v{gitlab_shell_version}"))
-
-    os.environ['GOROOT'] = ""
-    subprocess.check_output(['vgo2nix', '--keep-going'], cwd=gitlab_shell_dir)
-
-    for fn in ['go.mod', 'go.sum']:
-        os.unlink(gitlab_shell_dir / fn)
-
 
 @cli.command('update-gitlab-workhorse')
 def update_gitlab_workhorse():
     """Update gitlab-workhorse"""
     data = _get_data_json()
     gitlab_workhorse_version = data['passthru']['GITLAB_WORKHORSE_VERSION']
-    _call_update_source_version('gitlab-workhorse', gitlab_workhorse_version)
+    _call_nix_update('gitlab-workhorse', gitlab_workhorse_version)
 
     repo = GitLabRepo('gitlab-org', 'gitlab-workhorse')
     gitlab_workhorse_dir = pathlib.Path(__file__).parent / 'gitlab-workhorse'
 
-    for fn in ['go.mod', 'go.sum']:
-        with open(gitlab_workhorse_dir / fn, 'w') as f:
-            f.write(repo.get_file(fn, f"v{gitlab_workhorse_version}"))
-
-    os.environ['GOROOT'] = ""
-    subprocess.check_output(['vgo2nix', '--keep-going'], cwd=gitlab_workhorse_dir)
-
-    for fn in ['go.mod', 'go.sum']:
-        os.unlink(gitlab_workhorse_dir / fn)
-
 @cli.command('update-all')
 @click.option('--rev', default='latest', help='The rev to use (vX.Y.Z-ee), or \'latest\'')
 @click.pass_context
diff --git a/pkgs/applications/version-management/gitlab/yarnPkgs.nix b/pkgs/applications/version-management/gitlab/yarnPkgs.nix
index ca504fc231e..ba24888d952 100644
--- a/pkgs/applications/version-management/gitlab/yarnPkgs.nix
+++ b/pkgs/applications/version-management/gitlab/yarnPkgs.nix
@@ -786,19 +786,27 @@
       };
     }
     {
-      name = "_gitlab_svgs___svgs_1.175.0.tgz";
+      name = "_gitlab_svgs___svgs_1.177.0.tgz";
       path = fetchurl {
-        name = "_gitlab_svgs___svgs_1.175.0.tgz";
-        url  = "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-1.175.0.tgz";
-        sha1 = "734f341784af1cd1d62d160a17bcdfb61ff7b04d";
+        name = "_gitlab_svgs___svgs_1.177.0.tgz";
+        url  = "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-1.177.0.tgz";
+        sha1 = "e481ed327a11d3834c8b1668d7485b9eefef97f5";
       };
     }
     {
-      name = "_gitlab_ui___ui_23.9.0.tgz";
+      name = "_gitlab_tributejs___tributejs_1.0.0.tgz";
       path = fetchurl {
-        name = "_gitlab_ui___ui_23.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/@gitlab/ui/-/ui-23.9.0.tgz";
-        sha1 = "e21966130b41e624dbe4505911a79afb731c2d6b";
+        name = "_gitlab_tributejs___tributejs_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@gitlab/tributejs/-/tributejs-1.0.0.tgz";
+        sha1 = "672befa222aeffc83e7d799b0500a7a4418e59b8";
+      };
+    }
+    {
+      name = "_gitlab_ui___ui_24.8.1.tgz";
+      path = fetchurl {
+        name = "_gitlab_ui___ui_24.8.1.tgz";
+        url  = "https://registry.yarnpkg.com/@gitlab/ui/-/ui-24.8.1.tgz";
+        sha1 = "eb674d19aedf9c91b9a14aa7a66397d54b199fb7";
       };
     }
     {
@@ -1026,19 +1034,19 @@
       };
     }
     {
-      name = "_toast_ui_editor___editor_2.5.0.tgz";
+      name = "_toast_ui_editor___editor_2.5.1.tgz";
       path = fetchurl {
-        name = "_toast_ui_editor___editor_2.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/@toast-ui/editor/-/editor-2.5.0.tgz";
-        sha1 = "02779b119eaa6dd7601249d75ca031e0b98400f1";
+        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 = "_toast_ui_vue_editor___vue_editor_2.5.0.tgz";
+      name = "_toast_ui_vue_editor___vue_editor_2.5.1.tgz";
       path = fetchurl {
-        name = "_toast_ui_vue_editor___vue_editor_2.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/@toast-ui/vue-editor/-/vue-editor-2.5.0.tgz";
-        sha1 = "8094136588b0f726241b5f89d0754a7169f2ffee";
+        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";
       };
     }
     {
@@ -4394,11 +4402,11 @@
       };
     }
     {
-      name = "dompurify___dompurify_2.2.2.tgz";
+      name = "dompurify___dompurify_2.2.4.tgz";
       path = fetchurl {
-        name = "dompurify___dompurify_2.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/dompurify/-/dompurify-2.2.2.tgz";
-        sha1 = "cb8c2b1a2f3c8a0b565127504ae4eedec176a972";
+        name = "dompurify___dompurify_2.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/dompurify/-/dompurify-2.2.4.tgz";
+        sha1 = "a98cd182b729bdd8715c3eb7a8bf8eafb2ff7410";
       };
     }
     {
@@ -7434,6 +7442,14 @@
       };
     }
     {
+      name = "jest_raw_loader___jest_raw_loader_1.0.1.tgz";
+      path = fetchurl {
+        name = "jest_raw_loader___jest_raw_loader_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/jest-raw-loader/-/jest-raw-loader-1.0.1.tgz";
+        sha1 = "ce9f56d54650f157c4a7d16d224ba5d613bcd626";
+      };
+    }
+    {
       name = "jest_regex_util___jest_regex_util_26.0.0.tgz";
       path = fetchurl {
         name = "jest_regex_util___jest_regex_util_26.0.0.tgz";
@@ -8938,11 +8954,11 @@
       };
     }
     {
-      name = "mock_apollo_client___mock_apollo_client_0.4.0.tgz";
+      name = "mock_apollo_client___mock_apollo_client_0.5.0.tgz";
       path = fetchurl {
-        name = "mock_apollo_client___mock_apollo_client_0.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/mock-apollo-client/-/mock-apollo-client-0.4.0.tgz";
-        sha1 = "556a6090b1816dbf07e51093b652aca84aee979e";
+        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";
       };
     }
     {
@@ -12658,14 +12674,6 @@
       };
     }
     {
-      name = "tributejs___tributejs_5.1.3.tgz";
-      path = fetchurl {
-        name = "tributejs___tributejs_5.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/tributejs/-/tributejs-5.1.3.tgz";
-        sha1 = "980600fc72865be5868893078b4bfde721129eae";
-      };
-    }
-    {
       name = "trim_newlines___trim_newlines_1.0.0.tgz";
       path = fetchurl {
         name = "trim_newlines___trim_newlines_1.0.0.tgz";
@@ -13466,19 +13474,19 @@
       };
     }
     {
-      name = "vue_loader___vue_loader_15.9.3.tgz";
+      name = "vue_loader___vue_loader_15.9.5.tgz";
       path = fetchurl {
-        name = "vue_loader___vue_loader_15.9.3.tgz";
-        url  = "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.3.tgz";
-        sha1 = "0de35d9e555d3ed53969516cac5ce25531299dda";
+        name = "vue_loader___vue_loader_15.9.5.tgz";
+        url  = "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.5.tgz";
+        sha1 = "7a960dc420a3439deaacdda038fdcdbf7c432706";
       };
     }
     {
-      name = "vue_router___vue_router_3.4.5.tgz";
+      name = "vue_router___vue_router_3.4.9.tgz";
       path = fetchurl {
-        name = "vue_router___vue_router_3.4.5.tgz";
-        url  = "https://registry.yarnpkg.com/vue-router/-/vue-router-3.4.5.tgz";
-        sha1 = "d396ec037b35931bdd1e9b7edd86f9788dc15175";
+        name = "vue_router___vue_router_3.4.9.tgz";
+        url  = "https://registry.yarnpkg.com/vue-router/-/vue-router-3.4.9.tgz";
+        sha1 = "c016f42030ae2932f14e4748b39a1d9a0e250e66";
       };
     }
     {
@@ -13538,11 +13546,11 @@
       };
     }
     {
-      name = "vuex___vuex_3.5.1.tgz";
+      name = "vuex___vuex_3.6.0.tgz";
       path = fetchurl {
-        name = "vuex___vuex_3.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/vuex/-/vuex-3.5.1.tgz";
-        sha1 = "f1b8dcea649bc25254cf4f4358081dbf5da18b3d";
+        name = "vuex___vuex_3.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/vuex/-/vuex-3.6.0.tgz";
+        sha1 = "95efa56a58f7607c135b053350833a09e01aa813";
       };
     }
     {
diff --git a/pkgs/applications/version-management/gitoxide/default.nix b/pkgs/applications/version-management/gitoxide/default.nix
index 0b9d29bd525..f7a17e510f4 100644
--- a/pkgs/applications/version-management/gitoxide/default.nix
+++ b/pkgs/applications/version-management/gitoxide/default.nix
@@ -1,27 +1,27 @@
-{ lib, rustPlatform, fetchFromGitHub, pkg-config, openssl }:
+{ stdenv, rustPlatform, fetchFromGitHub, pkg-config, openssl, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "gitoxide";
-  version = "0.4.3";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "Byron";
     repo = "gitoxide";
     rev = "v${version}";
-    sha256 = "0ap5ih4s99c4ah95mcafqsvy4yhfqab6vg1c6ydzfa4czczgcxff";
+    sha256 = "qt1IN/5+yw5lrQ00YsvXUcUXCxd97EtNf5JvxJVa7uc=";
   };
 
-  cargoSha256 = "0vj7g2jhvd5d37rcq02hval9axpciwyqyd10z2a0bsvw0r4bh943";
+  cargoSha256 = "mitUyf/z7EgjKzFy8ZER8Ceoe9tk6r0ctSYdDG87rIU=";
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ openssl ];
+  buildInputs = [ openssl ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ Security ];
 
   # Needed to get openssl-sys to use pkgconfig.
   OPENSSL_NO_VENDOR = 1;
 
-  meta = with lib; {
-    description =
-      "A command-line application for interacting with git repositories";
+  meta = with stdenv.lib; {
+    description = "A command-line application for interacting with git repositories";
     homepage = "https://github.com/Byron/gitoxide";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = [ maintainers.syberant ];
diff --git a/pkgs/applications/version-management/pijul/default.nix b/pkgs/applications/version-management/pijul/default.nix
index b09267fb939..1439f792248 100644
--- a/pkgs/applications/version-management/pijul/default.nix
+++ b/pkgs/applications/version-management/pijul/default.nix
@@ -13,14 +13,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pijul";
-  version = "1.0.0-alpha.21";
+  version = "1.0.0-alpha.24";
 
   src = fetchCrate {
     inherit version pname;
-    sha256 = "0csa2a8ci6b9vgq57hyz2ng0x8pv1p1ilw72z2b8rrpacdrzb633";
+    sha256 = "1h1vgx0zlymnhalqsgmp9gv6sxbizmyryldx5vzl6djl23dvzd6s";
   };
 
-  cargoSha256 = "05z5iqs63s6cvaq4sjfxhcg5ka3rwn6ikcjs26jyqcbkp2bd9z88";
+  cargoSha256 = "1yx7qqfyabhrf6mcca4frdcp9a426khp90nznhshhm71liqr9y44";
 
   cargoBuildFlags = stdenv.lib.optional gitImportSupport "--features=git";
 
diff --git a/pkgs/applications/version-management/redmine/default.nix b/pkgs/applications/version-management/redmine/default.nix
index defbf9c2aec..4279fdd5f99 100644
--- a/pkgs/applications/version-management/redmine/default.nix
+++ b/pkgs/applications/version-management/redmine/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, bundlerEnv, ruby }:
+{ stdenv, fetchurl, bundlerEnv, ruby, makeWrapper }:
 
 let
   version = "4.1.1";
@@ -19,6 +19,7 @@ in
       sha256 = "1nndy5hz8zvfglxf1f3bsb1pkrfwinfxzkdan1vjs3rkckkszyh5";
     };
 
+    nativeBuildInputs = [ makeWrapper ];
     buildInputs = [ rubyEnv rubyEnv.wrappedRuby rubyEnv.bundler ];
 
     # taken from https://www.redmine.org/issues/33784
@@ -31,12 +32,14 @@ in
     '';
 
     installPhase = ''
-      mkdir -p $out/share
+      mkdir -p $out/bin $out/share
       cp -r . $out/share/redmine
       for i in config files log plugins public/plugin_assets public/themes tmp; do
         rm -rf $out/share/redmine/$i
         ln -fs /run/redmine/$i $out/share/redmine/$i
       done
+
+      makeWrapper ${rubyEnv.wrappedRuby}/bin/ruby $out/bin/rdm-mailhandler.rb --add-flags $out/share/redmine/extra/mail_handler/rdm-mailhandler.rb
     '';
 
     meta = with stdenv.lib; {
diff --git a/pkgs/applications/video/droidcam/default.nix b/pkgs/applications/video/droidcam/default.nix
new file mode 100644
index 00000000000..dc6c0d330eb
--- /dev/null
+++ b/pkgs/applications/video/droidcam/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchFromGitHub
+, ffmpeg, libjpeg_turbo, gtk3, alsaLib, speex, libusbmuxd, libappindicator-gtk3
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "droidcam";
+  version = "1.6";
+
+  src = fetchFromGitHub {
+    owner = "aramg";
+    repo = "droidcam";
+    rev = "v${version}";
+    sha256 = "sha256-3RmEmLNUbwIh+yr7vtYZnMwbzfmtW3mz5u4Ohau9OLU=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    ffmpeg
+    libjpeg_turbo
+    gtk3
+    alsaLib
+    speex
+    libusbmuxd
+    libappindicator-gtk3
+  ];
+
+  postPatch = ''
+    substituteInPlace linux/src/droidcam.c \
+      --replace "/opt/droidcam-icon.png" "$out/share/icons/hicolor/droidcam.png"
+  '';
+
+  preBuild = ''
+    cd linux
+    makeFlagsArray+=("JPEG=$(pkg-config --libs --cflags libturbojpeg)")
+    makeFlagsArray+=("USBMUXD=$(pkg-config --libs --cflags libusbmuxd-2.0)")
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dt $out/bin droidcam droidcam-cli
+    install -D icon2.png $out/share/icons/hicolor/droidcam.png
+
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Linux client for DroidCam app";
+    homepage = "https://github.com/aramg/droidcam";
+    license = licenses.gpl2Only;
+    maintainers = [ maintainers.suhr ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/video/kodi/plugins.nix b/pkgs/applications/video/kodi/plugins.nix
index 6863ef9ca62..12c16a744b0 100644
--- a/pkgs/applications/video/kodi/plugins.nix
+++ b/pkgs/applications/video/kodi/plugins.nix
@@ -467,7 +467,7 @@ let self = rec {
     propagatedBuildInputs = [
       simpleplugin
       python2Packages.requests
-      python2Packages.libtorrentRasterbar
+      python2Packages.libtorrent-rasterbar
     ];
 
     meta = {
diff --git a/pkgs/applications/video/qmplay2/default.nix b/pkgs/applications/video/qmplay2/default.nix
index b7f7f8c5302..a873c9e72ea 100644
--- a/pkgs/applications/video/qmplay2/default.nix
+++ b/pkgs/applications/video/qmplay2/default.nix
@@ -22,7 +22,7 @@
 
 let
   pname = "qmplay2";
-  version = "20.07.04";
+  version = "20.12.16";
 in stdenv.mkDerivation {
   inherit pname version;
 
@@ -30,7 +30,7 @@ in stdenv.mkDerivation {
     owner = "zaps166";
     repo = "QMPlay2";
     rev = version;
-    sha256 = "sha256-sUDucxSvsdD2C2FSVrrXeHdNdrjECtJSXVr106OdHzA=";
+    sha256 = "sha256-+XXlQI9MyENioYmzqbbZYQ6kaMATBjPrPaErR2Vqhus=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/video/streamlink-twitch-gui/bin.nix b/pkgs/applications/video/streamlink-twitch-gui/bin.nix
index 1c955a36f34..1c88e3324b9 100644
--- a/pkgs/applications/video/streamlink-twitch-gui/bin.nix
+++ b/pkgs/applications/video/streamlink-twitch-gui/bin.nix
@@ -1,8 +1,29 @@
-{ autoPatchelfHook, fetchurl, lib, makeDesktopItem, makeWrapper, stdenv, wrapGAppsHook
-, at-spi2-core, atk, alsaLib, cairo, cups, dbus, expat, gcc-unwrapped
-, gdk-pixbuf, glib, pango, gtk3-x11, libudev0-shim, libuuid, nss, nspr, xorg
-, streamlink }:
-
+{ autoPatchelfHook
+, fetchurl
+, lib
+, makeDesktopItem
+, makeWrapper
+, stdenv
+, wrapGAppsHook
+, at-spi2-core
+, atk
+, alsaLib
+, cairo
+, cups
+, dbus
+, expat
+, gcc-unwrapped
+, gdk-pixbuf
+, glib
+, pango
+, gtk3-x11
+, libudev0-shim
+, libuuid
+, nss
+, nspr
+, xorg
+, streamlink
+}:
 let
   basename = "streamlink-twitch-gui";
   runtimeLibs = lib.makeLibraryPath [ libudev0-shim ];
@@ -16,16 +37,16 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "${basename}-bin";
-  version = "1.10.0";
+  version = "1.11.0";
 
   src = fetchurl {
     url = "https://github.com/streamlink/${basename}/releases/download/v${version}/${basename}-v${version}-${arch}.tar.gz";
     sha256 =
       if arch == "linux64"
       then
-        "17s9zbzj4pgz9mxxwjbp3788afkddc9s3p7xp28y5084z9wwzph2"
+        "0y96nziavvpdvrpn58p6a175kaa8cgadp19rnbm250x9cypn1d9y"
       else
-        "1pww05hr48m6v0g1sz48g1c7p615lig3s12l21xgyz4gkjzmjy22";
+        "0sfmhqf55w7wavqy4idsqpkf5p7l8sapjxap6xvyzpz4z5z6xr7y";
   };
 
   nativeBuildInputs = with xorg; [
diff --git a/pkgs/applications/video/streamlink/default.nix b/pkgs/applications/video/streamlink/default.nix
index 4c8800c918e..97607f939fd 100644
--- a/pkgs/applications/video/streamlink/default.nix
+++ b/pkgs/applications/video/streamlink/default.nix
@@ -1,21 +1,42 @@
-{ stdenv, pythonPackages, fetchFromGitHub, rtmpdump, ffmpeg_3 }:
+{ lib
+, pythonPackages
+, fetchFromGitHub
+, rtmpdump
+, ffmpeg_3
+}:
 
 pythonPackages.buildPythonApplication rec {
-  version = "1.5.0";
   pname = "streamlink";
+  version = "2.0.0";
+  disabled = pythonPackages.pythonOlder "3.5.0";
 
   src = fetchFromGitHub {
     owner = "streamlink";
     repo = "streamlink";
     rev = version;
-    sha256 = "00pishpyim3mcvr9njcbfhj79j85b5xhkslk3mspc2csqknw4k61";
+    sha256 = "+W9Nu5Ze08r7IlUZOkkVOz582E1Bbj0a3qIQHwxSmj8=";
   };
 
-  checkInputs = with pythonPackages; [ pytest mock requests-mock freezegun ];
+  checkInputs = with pythonPackages; [
+    pytest
+    mock
+    requests-mock
+    freezegun
+  ];
 
-  propagatedBuildInputs = (with pythonPackages; [ pycryptodome requests iso-639 iso3166 websocket_client isodate ]) ++ [ rtmpdump ffmpeg_3 ];
+  propagatedBuildInputs = (with pythonPackages; [
+    pycryptodome
+    requests
+    iso-639
+    iso3166
+    websocket_client
+    isodate
+  ]) ++ [
+    rtmpdump
+    ffmpeg_3
+  ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/streamlink/streamlink";
     description = "CLI for extracting streams from various websites to video player of your choosing";
     longDescription = ''
@@ -27,6 +48,6 @@ pythonPackages.buildPythonApplication rec {
     '';
     license = licenses.bsd2;
     platforms = platforms.linux ++ platforms.darwin;
-    maintainers = with maintainers; [ dezgeg zraexy enzime ];
+    maintainers = with maintainers; [ dezgeg zraexy ];
   };
 }
diff --git a/pkgs/applications/video/subtitleeditor/default.nix b/pkgs/applications/video/subtitleeditor/default.nix
index 29e2de6b6c0..eea6353d66c 100644
--- a/pkgs/applications/video/subtitleeditor/default.nix
+++ b/pkgs/applications/video/subtitleeditor/default.nix
@@ -35,6 +35,9 @@ stdenv.mkDerivation {
     gst_all_1.gstreamermm
     gst_all_1.gst-plugins-base
     gst_all_1.gst-plugins-good
+    gst_all_1.gst-plugins-bad
+    gst_all_1.gst-plugins-ugly
+    gst_all_1.gst-libav
     hicolor-icon-theme
     libsigcxx
     libxmlxx
diff --git a/pkgs/applications/video/tartube/default.nix b/pkgs/applications/video/tartube/default.nix
index 23ee76eb469..36375d9ecc0 100644
--- a/pkgs/applications/video/tartube/default.nix
+++ b/pkgs/applications/video/tartube/default.nix
@@ -10,17 +10,18 @@
 , wrapGAppsHook
 , youtube-dl
 , glib
+, ffmpeg
 }:
 
 python3Packages.buildPythonApplication rec {
   pname = "tartube";
-  version = "2.1.0";
+  version = "2.3.042";
 
   src = fetchFromGitHub {
     owner = "axcore";
     repo = "tartube";
     rev = "v${version}";
-    sha256 = "1klqjwqm29y2f6nc8gn222ykfvb5d64z1w2kifw9bq5bv0np9bda";
+    sha256 = "117q4s2b2js3204506qv3kjcsy3amcf0mpwj6q0ixs1256ilkxwj";
   };
 
   nativeBuildInputs = [
@@ -37,6 +38,7 @@ python3Packages.buildPythonApplication rec {
     requests
     feedparser
     playsound
+    ffmpeg
   ];
 
   buildInputs = [
@@ -48,7 +50,7 @@ python3Packages.buildPythonApplication rec {
   ];
 
   postPatch = ''
-    sed -i "/^\s*install_requires/s/, 'gi'\|'gi', \|'gi'//" setup.py
+    sed -i "/^\s*install_requires/s/, 'pgi'\|'pgi', \|'pgi'//" setup.py
   '';
 
   postInstall = ''
diff --git a/pkgs/applications/video/vdr/default.nix b/pkgs/applications/video/vdr/default.nix
index bc3d54f3b5b..16aa2a3e6a5 100644
--- a/pkgs/applications/video/vdr/default.nix
+++ b/pkgs/applications/video/vdr/default.nix
@@ -5,12 +5,12 @@
 }: stdenv.mkDerivation rec {
 
   pname = "vdr";
-  version = "2.4.4";
+  version = "2.4.6";
 
   src = fetchgit {
     url = "git://git.tvdr.de/vdr.git";
-    rev = "V20404";
-    sha256 = "1fzghnp5mpcwn3a3fyk3w8h15z4f2cnc75247kvxj1c9069mgnwa";
+    rev = "V20406";
+    sha256 = "sha256-te9lMmnWpesv+np2gJUDL17pI0WyVxhUnoBsFSRtOco=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/virtualization/charliecloud/default.nix b/pkgs/applications/virtualization/charliecloud/default.nix
index d6cbc25d883..79e32007144 100644
--- a/pkgs/applications/virtualization/charliecloud/default.nix
+++ b/pkgs/applications/virtualization/charliecloud/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
 
-  version = "0.20";
+  version = "0.21";
   pname = "charliecloud";
 
   src = fetchFromGitHub {
     owner = "hpc";
     repo = "charliecloud";
     rev = "v${version}";
-    sha256 = "15ihffwhpjnzgz0ir5vc9la4fwkqj91vmrcsb2r58ikq7h9sk45j";
+    sha256 = "Y/tH6Znq//HBA/FHfIm2Wpppx6TiL7CqKtZFDc/XSNc=";
   };
 
   nativeBuildInputs = [ autoreconfHook makeWrapper ];
diff --git a/pkgs/applications/virtualization/cntr/default.nix b/pkgs/applications/virtualization/cntr/default.nix
index e3ab1c6c2f8..ab9b63eb79b 100644
--- a/pkgs/applications/virtualization/cntr/default.nix
+++ b/pkgs/applications/virtualization/cntr/default.nix
@@ -2,23 +2,22 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cntr";
-  version = "1.2.1";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "cntr";
     rev = version;
-    sha256 = "0dhfz7aj3cqi974ybf0axchih40rzrs9m8bxhwz1hgig57aisfc0";
+    sha256 = "sha256-4ogyOKuz6702/sOQNvE+UP+cvQrPPU3VjL4b0FUfRNw=";
   };
 
-  cargoSha256 = "088drkpkgq8psv5j6igxyhfvvbalzg6nd98r9z0nxkawck5i2clz";
+  cargoSha256 = "sha256-lblvun2T1qpFiowld77Ti2MFPzhs5pOWWRbErORXYCM=";
 
   meta = with stdenv.lib; {
     description = "A container debugging tool based on FUSE";
     homepage = "https://github.com/Mic92/cntr";
     license = licenses.mit;
-    # aarch64 support will be fixed soon
-    platforms = [ "x86_64-linux" ];
+    platforms = platforms.linux;
     maintainers = [ maintainers.mic92 ];
   };
 }
diff --git a/pkgs/applications/virtualization/conmon/default.nix b/pkgs/applications/virtualization/conmon/default.nix
index d2f1f2debe5..e143ebcca75 100644
--- a/pkgs/applications/virtualization/conmon/default.nix
+++ b/pkgs/applications/virtualization/conmon/default.nix
@@ -9,20 +9,25 @@
 
 stdenv.mkDerivation rec {
   pname = "conmon";
-  version = "2.0.21";
+  version = "2.0.22";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = "v${version}";
-    sha256 = "13g436s00bcwzs31qsx5rpgkbbyxd4zvx8mbkq10gkrsv4r04q23";
+    sha256 = "07wd3pns6x25dcnc1r84cwmrzg8xgzsfmidkclcpcagf97ad7jmc";
   };
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ glib systemd ]
   ++ stdenv.lib.optionals (!stdenv.hostPlatform.isMusl) [ glibc glibc.static ];
 
-  installFlags = [ "PREFIX=$(out)" ];
+  # manpage requires building the vendored go-md2man
+  makeFlags = [ "bin/conmon" ];
+
+  installPhase = ''
+    install -D bin/conmon -t $out/bin
+  '';
 
   passthru.tests = { inherit (nixosTests) cri-o podman; };
 
diff --git a/pkgs/applications/virtualization/containerd/default.nix b/pkgs/applications/virtualization/containerd/default.nix
index cece3cc6b67..695109fd8a4 100644
--- a/pkgs/applications/virtualization/containerd/default.nix
+++ b/pkgs/applications/virtualization/containerd/default.nix
@@ -1,12 +1,16 @@
-{ lib, fetchFromGitHub, buildGoPackage, btrfs-progs, go-md2man, installShellFiles, util-linux, nixosTests }:
-
-with lib;
+{ lib
+, fetchFromGitHub
+, buildGoPackage
+, btrfs-progs
+, go-md2man
+, installShellFiles
+, util-linux
+, nixosTests
+}:
 
 buildGoPackage rec {
   pname = "containerd";
   version = "1.4.3";
-  # git commit for the above version's tag
-  commit = "269548fa27e0089a8b8278fc4fc781d7f65a939b";
 
   src = fetchFromGitHub {
     owner = "containerd";
@@ -22,29 +26,32 @@ buildGoPackage rec {
 
   buildInputs = [ btrfs-progs ];
 
-  buildFlags = [ "VERSION=v${version}" "REVISION=${commit}" ];
+  buildFlags = [ "VERSION=v${version}" "REVISION=${src.rev}" ];
 
-  BUILDTAGS = []
-    ++ optional (btrfs-progs == null) "no_btrfs";
+  BUILDTAGS = [ ]
+    ++ lib.optional (btrfs-progs == null) "no_btrfs";
 
   buildPhase = ''
     cd go/src/${goPackagePath}
     patchShebangs .
-    make binaries $buildFlags
+    make binaries man $buildFlags
   '';
 
   installPhase = ''
-    for b in bin/*; do
-      install -Dm555 $b $out/$b
-    done
-
-    make man
+    install -Dm555 bin/* -t $out/bin
     installManPage man/*.[1-9]
   '';
 
+  # completion installed separately so it can be overridden in docker
+  # can be moved to installPhase when docker uses containerd >= 1.4
+  postInstall = ''
+    installShellFiles --bash contrib/autocomplete/ctr
+    installShellFiles --zsh --name _ctr contrib/autocomplete/zsh_autocomplete
+  '';
+
   passthru.tests = { inherit (nixosTests) docker; };
 
-  meta = {
+  meta = with lib; {
     homepage = "https://containerd.io/";
     description = "A daemon to control runC";
     license = licenses.asl20;
diff --git a/pkgs/applications/virtualization/docker-slim/default.nix b/pkgs/applications/virtualization/docker-slim/default.nix
index 84e0135f665..9ba7ff5d66b 100644
--- a/pkgs/applications/virtualization/docker-slim/default.nix
+++ b/pkgs/applications/virtualization/docker-slim/default.nix
@@ -6,7 +6,7 @@
 
 buildGoPackage rec {
   pname = "docker-slim";
-  version = "1.32.0";
+  version = "1.33.0";
 
   goPackagePath = "github.com/docker-slim/docker-slim";
 
@@ -14,7 +14,7 @@ buildGoPackage rec {
     owner = "docker-slim";
     repo = "docker-slim";
     rev = version;
-    sha256 = "0pd2v7df176ca923c4nw9ns5gz442jkb0jhzqjl53rwfwz1vxy9h";
+    sha256 = "0fk1r9id3fjcqdg4nls2k5ik3822njz4xx9fpbvmx0fycvjmbr4v";
   };
 
   subPackages = [ "cmd/docker-slim" "cmd/docker-slim-sensor" ];
@@ -39,6 +39,7 @@ buildGoPackage rec {
   meta = with stdenv.lib; {
     description = "Minify and secure Docker containers";
     homepage = "https://dockersl.im/";
+    changelog = "https://github.com/docker-slim/docker-slim/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ Br1ght0ne marsam mbrgm ];
   };
diff --git a/pkgs/applications/virtualization/docker/default.nix b/pkgs/applications/virtualization/docker/default.nix
index 1d55744efb4..1f4d5e3aac6 100644
--- a/pkgs/applications/virtualization/docker/default.nix
+++ b/pkgs/applications/virtualization/docker/default.nix
@@ -41,6 +41,8 @@ rec {
         rev = containerdRev;
         sha256 = containerdSha256;
       };
+      # disable completion, can be removed when docker uses containerd >= 1.4
+      postInstall = [];
       # This should be removed once Docker uses containerd >=1.4
       nativeBuildInputs = oldAttrs.nativeBuildInputs ++ lib.optional withlibseccomp pkgconfig;
       buildInputs = oldAttrs.buildInputs ++ lib.optional withlibseccomp libseccomp;
diff --git a/pkgs/applications/virtualization/vpcs/default.nix b/pkgs/applications/virtualization/vpcs/default.nix
index 464fe46b499..ce08428eba0 100644
--- a/pkgs/applications/virtualization/vpcs/default.nix
+++ b/pkgs/applications/virtualization/vpcs/default.nix
@@ -1,19 +1,16 @@
-{ stdenv, fetchurl, glibc }:
+{ stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "vpcs";
-  version = "0.8";
+  version = "0.8.1";
 
-  src = fetchurl {
-    name = "${pname}-${version}.tar.bz2";
-    url = "mirror://sourceforge/project/${pname}/${version}/${pname}-${version}-src.tbz";
-    sha256 = "14y9nflcyq486vvw0na0fkfmg5dac004qb332v4m5a0vaz8059nw";
+  src = fetchFromGitHub {
+    owner = "GNS3";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0kqy4bd3ns8nzn7fa72izn7a08sfrasy1rn7fd8ajah2wv8d2cak";
   };
 
-  patches = [ ./vpcs-0.8-glibc-2.26.patch ];
-
-  buildInputs = [ glibc.static ];
-
   buildPhase = ''(
     cd src
     ./mk.sh ${stdenv.buildPlatform.platform.kernelArch}
@@ -27,13 +24,13 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with stdenv.lib; {
-    description = "Virtual PC simulator";
+    description = "A simple virtual PC simulator";
     longDescription = ''
-      The VPCS can simulate up to 9 PCs. You can ping/traceroute them, or
-      ping/traceroute the other hosts/routers from the VPCS when you study the
-      Cisco routers in the dynamips.
+      The VPCS (Virtual PC Simulator) can simulate up to 9 PCs. You can
+      ping/traceroute them, or ping/traceroute the other hosts/routers from the
+      VPCS when you study the Cisco routers in the dynamips.
     '';
-    homepage = "https://sourceforge.net/projects/vpcs/";
+    inherit (src.meta) homepage;
     license = licenses.bsd2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ primeos ];
diff --git a/pkgs/applications/virtualization/vpcs/vpcs-0.8-glibc-2.26.patch b/pkgs/applications/virtualization/vpcs/vpcs-0.8-glibc-2.26.patch
deleted file mode 100644
index d94a39ccd64..00000000000
--- a/pkgs/applications/virtualization/vpcs/vpcs-0.8-glibc-2.26.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/src/getopt.h b/src/getopt.h
-index 4394aa2..bf59e10 100644
---- a/src/getopt.h
-+++ b/src/getopt.h
-@@ -49,9 +49,6 @@ extern int optind;
- extern int opterr;
- extern int optopt;
- 
--#ifndef FreeBSD
--int getopt(int argc, char** argv, char* optstr);
--#endif
- int arg_to_int(const char* arg, int min, int max, int defalt);
- 
- #ifdef __cplusplus
diff --git a/pkgs/applications/window-managers/i3/balance-workspace.nix b/pkgs/applications/window-managers/i3/balance-workspace.nix
new file mode 100644
index 00000000000..18e9167227f
--- /dev/null
+++ b/pkgs/applications/window-managers/i3/balance-workspace.nix
@@ -0,0 +1,23 @@
+{ lib, buildPythonPackage, fetchPypi, i3ipc }:
+
+buildPythonPackage rec {
+  pname = "i3-balance-workspace";
+  version = "1.8.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1gndzrwff8gfdqjjxv4zf2h2k0x7y97w1c3mrjpihz8xd0hbnk4d";
+  };
+
+  propagatedBuildInputs = [ i3ipc ];
+
+  doCheck = false;  # project has no test
+  pythonImportsCheck = [ "i3_balance_workspace" ];
+
+  meta = {
+    description = "Balance windows and workspaces in i3wm";
+    homepage = "https://pypi.org/project/i3-balance-workspace/";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ pacien ];
+  };
+}
diff --git a/pkgs/applications/window-managers/i3/gaps.nix b/pkgs/applications/window-managers/i3/gaps.nix
index 755ceb42161..10f86132ea9 100644
--- a/pkgs/applications/window-managers/i3/gaps.nix
+++ b/pkgs/applications/window-managers/i3/gaps.nix
@@ -20,7 +20,7 @@ i3.overrideAttrs (oldAttrs : rec {
     homepage    = "https://github.com/Airblader/i3";
     maintainers = with maintainers; [ fmthoma ];
     license     = licenses.bsd3;
-    platforms   = platforms.all;
+    platforms   = platforms.linux ++ platforms.netbsd ++ platforms.openbsd;
 
     longDescription = ''
       Fork of i3wm, a tiling window manager primarily targeted at advanced users
diff --git a/pkgs/applications/window-managers/i3/i3-resurrect.nix b/pkgs/applications/window-managers/i3/i3-resurrect.nix
new file mode 100644
index 00000000000..a765d2e298e
--- /dev/null
+++ b/pkgs/applications/window-managers/i3/i3-resurrect.nix
@@ -0,0 +1,22 @@
+{ lib, buildPythonApplication, click, i3ipc, psutil, natsort, fetchPypi, xprop, xdotool, importlib-metadata }:
+
+buildPythonApplication rec {
+  pname = "i3-resurrect";
+  version = "1.4.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0h181frdwpqfj9agw43qgicdvzv1i7xwky0vs0ksd8h18qxqp4hr";
+  };
+
+  propagatedBuildInputs = [ click psutil xprop natsort i3ipc xdotool importlib-metadata ];
+  doCheck = false; # no tests
+
+  meta = with lib; {
+    homepage = "https://github.com/JonnyHaystack/i3-resurrect";
+    description = "A simple but flexible solution to saving and restoring i3 workspaces";
+    license = licenses.gpl3;
+    platforms= platforms.linux;
+    maintainers = with maintainers; [ magnetophon ];
+  };
+}
diff --git a/pkgs/applications/window-managers/i3/lock-color.nix b/pkgs/applications/window-managers/i3/lock-color.nix
index a64e5ea3369..f07a1926f6e 100644
--- a/pkgs/applications/window-managers/i3/lock-color.nix
+++ b/pkgs/applications/window-managers/i3/lock-color.nix
@@ -55,8 +55,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ malyn ];
     license = licenses.bsd3;
 
-    # Needs the SSE2 instruction set. See upstream issue
-    # https://github.com/chrjguill/i3lock-color/issues/44
-    platforms = platforms.x86;
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/window-managers/icewm/default.nix b/pkgs/applications/window-managers/icewm/default.nix
index b86e598a4d0..f07bc873b7a 100644
--- a/pkgs/applications/window-managers/icewm/default.nix
+++ b/pkgs/applications/window-managers/icewm/default.nix
@@ -1,30 +1,86 @@
-{ stdenv, fetchFromGitHub, cmake, gettext, perl, asciidoc
-, libjpeg, libtiff, libungif, libpng, imlib, expat
-, freetype, fontconfig, pkgconfig, gdk-pixbuf, gdk-pixbuf-xlib, glib
-, mkfontdir, libX11, libXft, libXext, libXinerama
-, libXrandr, libICE, libSM, libXpm, libXdmcp, libxcb
-, libpthreadstubs, pcre, libXdamage, libXcomposite, libXfixes
-, libsndfile, fribidi }:
+{ stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, perl
+, asciidoc
+, expat
+, fontconfig
+, freetype
+, fribidi
+, gdk-pixbuf
+, gdk-pixbuf-xlib
+, gettext
+, glib
+, imlib2
+, libICE
+, libSM
+, libX11
+, libXcomposite
+, libXdamage
+, libXdmcp
+, libXext
+, libXfixes
+, libXft
+, libXinerama
+, libXpm
+, libXrandr
+, libjpeg
+, libpng
+, libpthreadstubs
+, libsndfile
+, libtiff
+, libungif
+, libxcb
+, mkfontdir
+, pcre
+}:
 
-with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "icewm";
-  version = "1.9.2";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner  = "bbidulock";
     repo = pname;
     rev = version;
-    sha256 = "16a9ikknjmhrrlc5r6z2ilkjj5vzyfk4ypwab39mg7vcmd7jzc41";
+    sha256 = "sha256-WdRAWAQEf9c66MVrLAs5VgBDK5r4JKM2GrjAV4cuGfA=";
   };
 
-  nativeBuildInputs = [ cmake pkgconfig perl asciidoc ];
+  nativeBuildInputs = [ cmake pkg-config perl asciidoc ];
 
   buildInputs = [
-    gettext libjpeg libtiff libungif libpng imlib expat freetype fontconfig
-    gdk-pixbuf gdk-pixbuf-xlib glib mkfontdir libX11 libXft libXext libXinerama
-    libXrandr libICE libSM libXpm libXdmcp libxcb libpthreadstubs pcre
-    libsndfile fribidi libXdamage libXcomposite libXfixes ];
+    expat
+    fontconfig
+    freetype
+    fribidi
+    gdk-pixbuf
+    gdk-pixbuf-xlib
+    gettext
+    glib
+    imlib2
+    libICE
+    libSM
+    libX11
+    libXcomposite
+    libXdamage
+    libXdmcp
+    libXext
+    libXfixes
+    libXft
+    libXinerama
+    libXpm
+    libXrandr
+    libjpeg
+    libpng
+    libpthreadstubs
+    libsndfile
+    libtiff
+    libungif
+    libxcb
+    mkfontdir
+    pcre
+  ];
 
   cmakeFlags = [ "-DPREFIX=$out" "-DCFGDIR=/etc/icewm" ];
 
@@ -33,11 +89,20 @@ stdenv.mkDerivation rec {
     cp -r ../lib/themes/{gtk2,Natural,nice,nice2,warp3,warp4,yellowmotif} $out/share/icewm/themes/
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A simple, lightweight X window manager";
     longDescription = ''
-      IceWM is a window manager for the X Window System. The goal of
-      IceWM is speed, simplicity, and not getting in the user's way.
+      IceWM is a window manager for the X Window System. The goal of IceWM is
+      speed, simplicity, and not getting in the user’s way. It comes with a
+      taskbar with pager, global and per-window keybindings and a dynamic menu
+      system. Application windows can be managed by keyboard and mouse. Windows
+      can be iconified to the taskbar, to the tray, to the desktop or be made
+      hidden. They are controllable by a quick switch window (Alt+Tab) and in a
+      window list. A handful of configurable focus models are
+      menu-selectable. Setups with multiple monitors are supported by RandR and
+      Xinerama. IceWM is very configurable, themeable and well documented. It
+      includes an optional external background wallpaper manager with
+      transparency support, a simple session manager and a system tray.
     '';
     homepage = "https://www.ice-wm.org/";
     license = licenses.lgpl2;
diff --git a/pkgs/applications/window-managers/notion/default.nix b/pkgs/applications/window-managers/notion/default.nix
index 494bb9ff1b7..a00462e8111 100644
--- a/pkgs/applications/window-managers/notion/default.nix
+++ b/pkgs/applications/window-managers/notion/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "notion";
-  version = "4.0.1";
+  version = "4.0.2";
 
   src = fetchFromGitHub {
     owner = "raboof";
     repo = pname;
     rev = version;
-    sha256 = "1s0fyacygvc9iz7b9v3b2cmzzqc02nh4g1p9bfcxbg254iscd502";
+    sha256 = "14swd0yqci8lxn259fkd9w92bgyf4rmjwgvgyqp78wlfix6ai4mv";
   };
 
   nativeBuildInputs = [ pkgconfig makeWrapper groff ];
diff --git a/pkgs/applications/window-managers/pekwm/default.nix b/pkgs/applications/window-managers/pekwm/default.nix
index da2c11c873b..dce727ee29b 100644
--- a/pkgs/applications/window-managers/pekwm/default.nix
+++ b/pkgs/applications/window-managers/pekwm/default.nix
@@ -1,20 +1,37 @@
-{ stdenv, fetchurl, pkgconfig
-, libpng, libjpeg
-, libXext, libXft, libXpm, libXrandr, libXinerama }:
+{ stdenv
+, fetchFromGitHub
+, pkg-config
+, cmake
+, libXext
+, libXft
+, libXinerama
+, libXpm
+, libXrandr
+, libjpeg
+, libpng
+}:
 
 stdenv.mkDerivation rec {
-
   pname = "pekwm";
-  version = "0.1.17";
+  version = "0.1.18";
 
-  src = fetchurl {
-    url = "https://www.pekwm.org/projects/pekwm/files/${pname}-${version}.tar.bz2";
-    sha256 = "003x6bxj1lb2ljxz3v414bn0rdl6z68c0r185fxwgs1qkyzx67wa";
+  src = fetchFromGitHub {
+    owner = "pekdon";
+    repo = "pekwm";
+    rev = "release-${version}";
+    sha256 = "sha256-R1XDEk097ycMI3R4SjUEJv37CiMaDCQMvg7N8haN0MM=";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ libpng libjpeg
-  libXext libXft libXpm libXrandr libXinerama ];
+  nativeBuildInputs = [ pkg-config cmake ];
+  buildInputs = [
+    libXext
+    libXft
+    libXinerama
+    libXpm
+    libXrandr
+    libjpeg
+    libpng
+  ];
 
   meta = with stdenv.lib; {
     description = "A lightweight window manager";
@@ -24,7 +41,7 @@ stdenv.mkDerivation rec {
       longer resembles aewm++ at all. It has a much expanded
       feature-set, including window grouping (similar to ion, pwm, or
       fluxbox), autoproperties, xinerama, keygrabber that supports
-      keychains, and much more.      
+      keychains, and much more.
       - Lightweight and Unobtrusive, a window manager shouldn't be
         noticed.
       - Very configurable, we all work and think in different ways.
@@ -33,7 +50,7 @@ stdenv.mkDerivation rec {
       - Chainable Keygrabber, usability for everyone.
     '';
       homepage = "http://www.pekwm.org";
-      license = licenses.gpl2;
+      license = licenses.gpl2Plus;
       maintainers = [ maintainers.AndersonTorres ];
       platforms = platforms.linux;
   };
diff --git a/pkgs/applications/window-managers/picom/default.nix b/pkgs/applications/window-managers/picom/default.nix
index 064e555f3a5..2bfd4f7e085 100644
--- a/pkgs/applications/window-managers/picom/default.nix
+++ b/pkgs/applications/window-managers/picom/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.mit;
     homepage = "https://github.com/yshui/picom";
-    maintainers = with maintainers; [ ertes enzime twey ];
+    maintainers = with maintainers; [ ertes twey ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/window-managers/wayfire/applications.nix b/pkgs/applications/window-managers/wayfire/applications.nix
new file mode 100644
index 00000000000..6c22227c0c5
--- /dev/null
+++ b/pkgs/applications/window-managers/wayfire/applications.nix
@@ -0,0 +1,23 @@
+{ newScope, wayfirePlugins }:
+
+let
+  self = with self; {
+    inherit wayfirePlugins;
+
+    callPackage = newScope self;
+
+    wayfire = callPackage ./. { };
+
+    wcm = callPackage ./wcm.nix {
+      inherit (wayfirePlugins) wf-shell;
+    };
+
+    wrapWayfireApplication = callPackage ./wrapper.nix { };
+
+    withPlugins = selector: self // {
+      wayfire = wrapWayfireApplication wayfire selector;
+      wcm = wrapWayfireApplication wcm selector;
+    };
+  };
+in
+self
diff --git a/pkgs/applications/window-managers/wayfire/default.nix b/pkgs/applications/window-managers/wayfire/default.nix
new file mode 100644
index 00000000000..513784b8b52
--- /dev/null
+++ b/pkgs/applications/window-managers/wayfire/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, lib, fetchurl, meson, ninja, pkg-config, git
+, cairo, libdrm, libexecinfo, libinput, libjpeg, libxkbcommon, wayland
+, wayland-protocols, wf-config, wlroots
+}:
+
+stdenv.mkDerivation rec {
+  pname = "wayfire";
+  version = "0.6.0";
+
+  src = fetchurl {
+    url = "https://github.com/WayfireWM/wayfire/releases/download/${version}/wayfire-${version}.tar.xz";
+    sha256 = "0wc5szslgf8d4r4dlbfgc5v49j2ziaa8fycmknq4p0vl67mh7acq";
+  };
+
+  nativeBuildInputs = [ meson ninja pkg-config wayland ];
+  buildInputs = [
+    cairo libdrm libexecinfo libinput libjpeg libxkbcommon wayland
+    wayland-protocols wf-config wlroots
+  ];
+
+  mesonFlags = [ "--sysconfdir" "/etc" ];
+
+  meta = with lib; {
+    homepage = "https://wayfire.org/";
+    description = "3D wayland compositor";
+    license = licenses.mit;
+    maintainers = with maintainers; [ qyliss wucke13 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/window-managers/wayfire/plugins.nix b/pkgs/applications/window-managers/wayfire/plugins.nix
new file mode 100644
index 00000000000..830a918fcb7
--- /dev/null
+++ b/pkgs/applications/window-managers/wayfire/plugins.nix
@@ -0,0 +1,12 @@
+{ newScope, wayfire }:
+
+let
+  self = with self; {
+    inherit wayfire;
+
+    callPackage = newScope self;
+
+    wf-shell = callPackage ./wf-shell.nix { };
+  };
+in
+self
diff --git a/pkgs/applications/window-managers/wayfire/wcm.nix b/pkgs/applications/window-managers/wayfire/wcm.nix
new file mode 100644
index 00000000000..7c4b546c68e
--- /dev/null
+++ b/pkgs/applications/window-managers/wayfire/wcm.nix
@@ -0,0 +1,29 @@
+{ stdenv, lib, fetchFromGitHub, meson, ninja, pkg-config, wayland, wrapGAppsHook
+, gnome3, libevdev, libxml2, wayfire, wayland-protocols, wf-config, wf-shell
+}:
+
+stdenv.mkDerivation rec {
+  pname = "wcm";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "WayfireWM";
+    repo = "wcm";
+    rev = "v${version}";
+    sha256 = "1b22gymqfn0c49nf39676q5bj25rxab874iayiq31cmn14r30dyg";
+  };
+
+  nativeBuildInputs = [ meson ninja pkg-config wayland wrapGAppsHook ];
+  buildInputs = [
+    gnome3.gtk libevdev libxml2 wayfire wayland
+    wayland-protocols wf-config wf-shell
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/WayfireWM/wcm";
+    description = "Wayfire Config Manager";
+    license = licenses.mit;
+    maintainers = with maintainers; [ qyliss wucke13 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/window-managers/wayfire/wf-config.nix b/pkgs/applications/window-managers/wayfire/wf-config.nix
new file mode 100644
index 00000000000..00a4404c1d4
--- /dev/null
+++ b/pkgs/applications/window-managers/wayfire/wf-config.nix
@@ -0,0 +1,23 @@
+{ stdenv, lib, fetchurl, meson, ninja, pkg-config, glm, libevdev, libxml2 }:
+
+stdenv.mkDerivation rec {
+  pname = "wf-config";
+  version = "0.6.0";
+
+  src = fetchurl {
+    url = "https://github.com/WayfireWM/wf-config/releases/download/${version}/wf-config-${version}.tar.xz";
+    sha256 = "1a5aqybhbp9dp4jygrm3gbkdap5qbd52y6ihfr4rm1cj37sckcn0";
+  };
+
+  nativeBuildInputs = [ meson ninja pkg-config ];
+  buildInputs = [ libevdev libxml2 ];
+  propagatedBuildInputs = [ glm ];
+
+  meta = with lib; {
+    homepage = "https://github.com/WayfireWM/wf-config";
+    description = "Library for managing configuration files, written for Wayfire";
+    license = licenses.mit;
+    maintainers = with maintainers; [ qyliss wucke13 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/window-managers/wayfire/wf-shell.nix b/pkgs/applications/window-managers/wayfire/wf-shell.nix
new file mode 100644
index 00000000000..6e5f189275b
--- /dev/null
+++ b/pkgs/applications/window-managers/wayfire/wf-shell.nix
@@ -0,0 +1,30 @@
+{ stdenv, lib, fetchurl, meson, ninja, pkg-config, wayland, git
+, alsaLib, gnome3, gtk-layer-shell, pulseaudio, wayfire, wf-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "wf-shell";
+  version = "0.6.1";
+
+  # > Note to packagers: do not use the autogenerated "Source code"
+  # > archives from GitHub, but the wf-shell-0.4.0.tar.xz file.
+  src = fetchurl {
+    url = "https://github.com/WayfireWM/wf-shell/releases/download/v${version}/wf-shell-${version}.tar.xz";
+    sha256 = "0jl8gj185k2ff754lcj5b5nldhkvrhmlaj8lsik4kx78vlb5m3ns";
+  };
+
+  nativeBuildInputs = [ meson ninja pkg-config wayland ];
+  buildInputs = [
+    alsaLib gnome3.gtkmm gtk-layer-shell pulseaudio wayfire wf-config
+  ];
+
+  mesonFlags = [ "--sysconfdir" "/etc" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/WayfireWM/wf-shell";
+    description = "GTK3-based panel for Wayfire";
+    license = licenses.mit;
+    maintainers = with maintainers; [ qyliss wucke13 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/window-managers/wayfire/wrapper.nix b/pkgs/applications/window-managers/wayfire/wrapper.nix
new file mode 100644
index 00000000000..62292898547
--- /dev/null
+++ b/pkgs/applications/window-managers/wayfire/wrapper.nix
@@ -0,0 +1,39 @@
+{ runCommandNoCC, lib, makeWrapper, wayfirePlugins }:
+
+let
+  inherit (lib) escapeShellArg makeBinPath;
+
+  xmlPath = plugin: "${plugin}/share/wayfire/metadata/wf-shell";
+
+  makePluginPath = lib.makeLibraryPath;
+  makePluginXMLPath = lib.concatMapStringsSep ":" xmlPath;
+in
+
+application:
+
+choosePlugins:
+
+let
+  plugins = choosePlugins wayfirePlugins;
+in
+
+runCommandNoCC "${application.name}-wrapped" {
+  nativeBuildInputs = [ makeWrapper ];
+
+  passthru = application.passthru // {
+    unwrapped = application;
+  };
+
+  inherit (application) meta;
+} ''
+  mkdir -p $out/bin
+  for bin in ${application}/bin/*
+  do
+      makeWrapper "$bin" $out/bin/''${bin##*/} \
+          --suffix PATH : ${escapeShellArg (makeBinPath plugins)} \
+          --suffix WAYFIRE_PLUGIN_PATH : ${escapeShellArg (makePluginPath plugins)} \
+          --suffix WAYFIRE_PLUGIN_XML_PATH : ${escapeShellArg (makePluginXMLPath plugins)}
+  done
+  find ${application} -mindepth 1 -maxdepth 1 -not -name bin \
+      -exec ln -s '{}' $out ';'
+''
diff --git a/pkgs/applications/window-managers/wio/default.nix b/pkgs/applications/window-managers/wio/default.nix
new file mode 100644
index 00000000000..b597cf978a6
--- /dev/null
+++ b/pkgs/applications/window-managers/wio/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchgit
+, meson
+, ninja
+, pkg-config
+, alacritty
+, cage
+, cairo
+, libxkbcommon
+, udev
+, wayland
+, wayland-protocols
+, wlroots
+, xwayland
+, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+  pname = "wio";
+  version = "unstable-2020-11-02";
+
+  src = fetchgit {
+    url = "https://git.sr.ht/~sircmpwn/wio";
+    rev = "31b742e473b15a2087be740d1de28bc2afd47a4d";
+    sha256 = "1vpvlahv6dmr7vfb11p5cc5ds2y2vfvcb877nkqx18yin6pg357l";
+  };
+
+  nativeBuildInputs = [ meson ninja pkg-config makeWrapper ];
+  buildInputs = [
+    cairo
+    libxkbcommon
+    udev
+    wayland
+    wayland-protocols
+    wlroots
+    xwayland
+  ];
+
+  postInstall = ''
+    wrapProgram $out/bin/wio \
+      --prefix PATH ":" "${stdenv.lib.makeBinPath [ alacritty cage ]}"
+  '';
+
+  meta = with stdenv.lib; {
+    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 ];
+  };
+
+  passthru.providedSessions = [ "wio" ];
+}
+# TODO: factor Linux-specific options
diff --git a/pkgs/applications/window-managers/yabar/build.nix b/pkgs/applications/window-managers/yabar/build.nix
index 10806ba78cf..b9996e1b466 100644
--- a/pkgs/applications/window-managers/yabar/build.nix
+++ b/pkgs/applications/window-managers/yabar/build.nix
@@ -50,6 +50,6 @@ stdenv.mkDerivation {
     homepage    = "https://github.com/geommer/yabar";
     license     = licenses.mit;
     platforms   = platforms.linux;
-    maintainers = with maintainers; [ ma27 ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/build-support/build-fhs-userenv/chrootenv/chrootenv.c b/pkgs/build-support/build-fhs-userenv/chrootenv/chrootenv.c
index dcb2e97aa93..a438b80e182 100644
--- a/pkgs/build-support/build-fhs-userenv/chrootenv/chrootenv.c
+++ b/pkgs/build-support/build-fhs-userenv/chrootenv/chrootenv.c
@@ -43,6 +43,7 @@ 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));
 }
 
@@ -56,6 +57,7 @@ void bind_mount_item(const gchar *host, const gchar *guest, const gchar *name) {
 
 void bind(const gchar *host, const gchar *guest) {
   mount_tmpfs(guest);
+
   pivot_host(guest);
 
   g_autofree gchar *host_dir = g_build_filename("/host", host, NULL);
@@ -105,7 +107,11 @@ int main(gint argc, gchar **argv) {
     uid_t uid = getuid();
     gid_t gid = getgid();
 
-    if (unshare(CLONE_NEWNS | CLONE_NEWUSER) < 0) {
+    int namespaces = CLONE_NEWNS;
+    if (uid != 0) {
+      namespaces |= CLONE_NEWUSER;
+    }
+    if (unshare(namespaces) < 0) {
       int unshare_errno = errno;
 
       g_message("Requires Linux version >= 3.19 built with CONFIG_USER_NS");
@@ -116,9 +122,11 @@ int main(gint argc, gchar **argv) {
       fail("unshare", unshare_errno);
     }
 
-    spit("/proc/self/setgroups", "deny");
-    spit("/proc/self/uid_map", "%d %d 1", uid, uid);
-    spit("/proc/self/gid_map", "%d %d 1", gid, gid);
+    if (uid != 0) {
+      spit("/proc/self/setgroups", "deny");
+      spit("/proc/self/uid_map", "%d %d 1", uid, uid);
+      spit("/proc/self/gid_map", "%d %d 1", gid, gid);
+    }
 
     // If there is a /host directory, assume this is nested chrootenv and use it as host instead.
     gboolean nested_host = g_file_test("/host", G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR);
diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix
index 09cef8b8678..0855c27eff4 100644
--- a/pkgs/build-support/cc-wrapper/default.nix
+++ b/pkgs/build-support/cc-wrapper/default.nix
@@ -76,10 +76,14 @@ let
         cannonlake     = versionAtLeast ccVersion "8.0";
         icelake-client = versionAtLeast ccVersion "8.0";
         icelake-server = versionAtLeast ccVersion "8.0";
+        cascadelake    = versionAtLeast ccVersion "9.0";
+        cooperlake     = versionAtLeast ccVersion "10.0";
+        tigerlake      = versionAtLeast ccVersion "10.0";
         knm            = versionAtLeast ccVersion "8.0";
         # AMD
         znver1         = versionAtLeast ccVersion "6.0";
         znver2         = versionAtLeast ccVersion "9.0";
+        znver3         = versionAtLeast ccVersion "11.0";
       }.${arch} or true
     else if isClang then
       { # Intel
@@ -437,7 +441,7 @@ stdenv.mkDerivation {
     '' + optionalString targetPlatform.isNetBSD ''
       hardening_unsupported_flags+=" stackprotector fortify"
     '' + optionalString cc.langAda or false ''
-      hardening_unsupported_flags+=" stackprotector strictoverflow"
+      hardening_unsupported_flags+=" format stackprotector strictoverflow"
     '' + optionalString cc.langD or false ''
       hardening_unsupported_flags+=" format"
     '' + optionalString targetPlatform.isWasm ''
diff --git a/pkgs/build-support/docker/examples.nix b/pkgs/build-support/docker/examples.nix
index 85ddeb25740..86375a40baa 100644
--- a/pkgs/build-support/docker/examples.nix
+++ b/pkgs/build-support/docker/examples.nix
@@ -416,4 +416,15 @@ rec {
     contents = crossPkgs.hello;
   };
 
+  # layered image where a store path is itself a symlink
+  layeredStoreSymlink =
+  let
+    target = pkgs.writeTextDir "dir/target" "Content doesn't matter.";
+    symlink = pkgs.runCommandNoCC "symlink" {} "ln -s ${target} $out";
+  in
+    pkgs.dockerTools.buildLayeredImage {
+      name = "layeredstoresymlink";
+      tag = "latest";
+      contents = [ pkgs.bash symlink ];
+    } // { passthru = { inherit symlink; }; };
 }
diff --git a/pkgs/build-support/docker/stream_layered_image.py b/pkgs/build-support/docker/stream_layered_image.py
index cbae0f723f9..e35bd0b0e8c 100644
--- a/pkgs/build-support/docker/stream_layered_image.py
+++ b/pkgs/build-support/docker/stream_layered_image.py
@@ -83,7 +83,11 @@ def archive_paths_to(obj, paths, mtime):
 
         for path in paths:
             path = pathlib.Path(path)
-            files = itertools.chain([path], path.rglob("*"))
+            if path.is_symlink():
+                files = [path]
+            else:
+                files = itertools.chain([path], path.rglob("*"))
+
             for filename in sorted(files):
                 ti = append_root(tar.gettarinfo(filename))
 
diff --git a/pkgs/build-support/emacs/generic.nix b/pkgs/build-support/emacs/generic.nix
index 956787ad59e..588699517ba 100644
--- a/pkgs/build-support/emacs/generic.nix
+++ b/pkgs/build-support/emacs/generic.nix
@@ -60,10 +60,13 @@ stdenv.mkDerivation ({
 
   LIBRARY_PATH = "${lib.getLib stdenv.cc.libc}/lib";
 
+  addEmacsNativeLoadPath = true;
+
   postInstall = ''
-    find $out/share/emacs -type f -name '*.el' -print0 | xargs -0 -n 1 -I {} -P $NIX_BUILD_CORES sh -c "emacs --batch -f batch-native-compile {} || true"
+    find $out/share/emacs -type f -name '*.el' -print0 \
+      | xargs -0 -n 1 -I {} -P $NIX_BUILD_CORES sh -c \
+          "emacs --batch --eval=\"(add-to-list 'comp-eln-load-path \\\"$out/share/emacs/native-lisp/\\\")\" -f batch-native-compile {} || true"
   '';
-
 }
 
 // removeAttrs args [ "buildInputs" "packageRequires"
diff --git a/pkgs/build-support/emacs/setup-hook.sh b/pkgs/build-support/emacs/setup-hook.sh
index 83e995631b3..f6f2331b8e0 100644
--- a/pkgs/build-support/emacs/setup-hook.sh
+++ b/pkgs/build-support/emacs/setup-hook.sh
@@ -7,9 +7,20 @@ addToEmacsLoadPath() {
   fi
 }
 
+addToEmacsNativeLoadPath() {
+  local nativeDir="$1"
+  if [[ -d $nativeDir && ${EMACSNATIVELOADPATH-} != *"$nativeDir":* ]]; then
+    export EMACSNATIVELOADPATH="$nativeDir:${EMACSNATIVELOADPATH-}"
+  fi
+}
+
 addEmacsVars () {
   addToEmacsLoadPath "$1/share/emacs/site-lisp"
 
+  if [ -n "${addEmacsNativeLoadPath:-}" ]; then
+    addToEmacsNativeLoadPath "$1/share/emacs/native-lisp"
+  fi
+
   # Add sub paths to the Emacs load path if it is a directory
   # containing .el files. This is necessary to build some packages,
   # e.g., using trivialBuild.
diff --git a/pkgs/build-support/emacs/wrapper.nix b/pkgs/build-support/emacs/wrapper.nix
index 0afd0f831fe..a3136839122 100644
--- a/pkgs/build-support/emacs/wrapper.nix
+++ b/pkgs/build-support/emacs/wrapper.nix
@@ -34,7 +34,15 @@ in customEmacsPackages.emacsWithPackages (epkgs: [ epkgs.evil epkgs.magit ])
 
 { lib, lndir, makeWrapper, runCommand }: self:
 
-with lib; let inherit (self) emacs; in
+with lib;
+
+let
+
+  inherit (self) emacs;
+
+  nativeComp = emacs.nativeComp or false;
+
+in
 
 packagesFun: # packages explicitly requested by the user
 
@@ -95,6 +103,9 @@ runCommand
         }
         mkdir -p $out/bin
         mkdir -p $out/share/emacs/site-lisp
+        ${optionalString nativeComp ''
+          mkdir -p $out/share/emacs/native-lisp
+        ''}
 
         local requires
         for pkg in $explicitRequires; do
@@ -116,6 +127,9 @@ runCommand
         linkEmacsPackage() {
           linkPath "$1" "bin" "bin"
           linkPath "$1" "share/emacs/site-lisp" "share/emacs/site-lisp"
+          ${optionalString nativeComp ''
+            linkPath "$1" "share/emacs/native-lisp" "share/emacs/native-lisp"
+          ''}
         }
 
         # Iterate over the array of inputs (avoiding nix's own interpolation)
@@ -138,12 +152,21 @@ runCommand
         (load-file "$emacs/share/emacs/site-lisp/site-start.el")
         (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/")
+        ''}
         EOF
         # Link subdirs.el from the emacs distribution
         ln -s $emacs/share/emacs/site-lisp/subdirs.el -T $subdirs
 
         # Byte-compiling improves start-up time only slightly, but costs nothing.
         $emacs/bin/emacs --batch -f batch-byte-compile "$siteStart" "$subdirs"
+
+        ${optionalString nativeComp ''
+          $emacs/bin/emacs --batch \
+            --eval "(add-to-list 'comp-eln-load-path \"$out/share/emacs/native-lisp/\")" \
+            -f batch-native-compile "$siteStart" "$subdirs"
+        ''}
       '';
 
     inherit (emacs) meta;
@@ -159,6 +182,7 @@ runCommand
       substitute ${./wrapper.sh} $out/bin/$progname \
         --subst-var-by bash ${emacs.stdenv.shell} \
         --subst-var-by wrapperSiteLisp "$deps/share/emacs/site-lisp" \
+        --subst-var-by wrapperSiteLispNative "$deps/share/emacs/native-lisp:" \
         --subst-var prog
       chmod +x $out/bin/$progname
     done
@@ -173,11 +197,16 @@ runCommand
             $emacs/Applications/Emacs.app/Contents/Resources \
             $out/Applications/Emacs.app/Contents
 
+
       substitute ${./wrapper.sh} $out/Applications/Emacs.app/Contents/MacOS/Emacs \
         --subst-var-by bash ${emacs.stdenv.shell} \
         --subst-var-by wrapperSiteLisp "$deps/share/emacs/site-lisp" \
         --subst-var-by prog "$emacs/Applications/Emacs.app/Contents/MacOS/Emacs"
       chmod +x $out/Applications/Emacs.app/Contents/MacOS/Emacs
+
+      makeWrapper $emacs/Applications/Emacs.app/Contents/MacOS/Emacs $out/Applications/Emacs.app/Contents/MacOS/Emacs \
+        --suffix EMACSLOADPATH ":" "$deps/share/emacs/site-lisp:" \
+        --suffix EMACSNATIVELOADPATH ":" "$deps/share/emacs/native-lisp:"
     fi
 
     mkdir -p $out/share
diff --git a/pkgs/build-support/emacs/wrapper.sh b/pkgs/build-support/emacs/wrapper.sh
index 96c9a8a60ea..e8eecb8c869 100644
--- a/pkgs/build-support/emacs/wrapper.sh
+++ b/pkgs/build-support/emacs/wrapper.sh
@@ -3,6 +3,7 @@
 IFS=:
 
 newLoadPath=()
+newNativeLoadPath=()
 added=
 
 if [[ -n $EMACSLOADPATH ]]
@@ -21,7 +22,26 @@ else
     newLoadPath+=("")
 fi
 
+if [[ -n $EMACSNATIVELOADPATH ]]
+then
+    while read -rd: entry
+    do
+        if [[ -z $entry && -z $added ]]
+        then
+            newNativeLoadPath+=(@wrapperSiteLispNative@)
+            added=1
+        fi
+        newNativeLoadPath+=("$entry")
+    done <<< "$EMACSNATIVELOADPATH:"
+else
+    newNativeLoadPath+=(@wrapperSiteLispNative@)
+    newNativeLoadPath+=("")
+fi
+
 export EMACSLOADPATH="${newLoadPath[*]}"
 export emacsWithPackages_siteLisp=@wrapperSiteLisp@
 
+export EMACSNATIVELOADPATH="${newNativeLoadPath[*]}"
+export emacsWithPackages_siteLispNative=@wrapperSiteLispNative@
+
 exec @prog@ "$@"
diff --git a/pkgs/build-support/kernel/initrd-compressor-meta.nix b/pkgs/build-support/kernel/initrd-compressor-meta.nix
new file mode 100644
index 00000000000..443e599a239
--- /dev/null
+++ b/pkgs/build-support/kernel/initrd-compressor-meta.nix
@@ -0,0 +1,53 @@
+rec {
+  cat = {
+    executable = pkgs: "cat";
+    ubootName = "none";
+    extension = ".cpio";
+  };
+  gzip = {
+    executable = pkgs: "${pkgs.gzip}/bin/gzip";
+    defaultArgs = ["-9n"];
+    ubootName = "gzip";
+    extension = ".gz";
+  };
+  bzip2 = {
+    executable = pkgs: "${pkgs.bzip2}/bin/bzip2";
+    ubootName = "bzip2";
+    extension = ".bz2";
+  };
+  xz = {
+    executable = pkgs: "${pkgs.xz}/bin/xz";
+    defaultArgs = ["--check=crc32" "--lzma2=dict=512KiB"];
+    extension = ".xz";
+  };
+  lzma = {
+    executable = pkgs: "${pkgs.xz}/bin/lzma";
+    defaultArgs = ["--check=crc32" "--lzma1=dict=512KiB"];
+    ubootName = "lzma";
+    extension = ".lzma";
+  };
+  lz4 = {
+    executable = pkgs: "${pkgs.lz4}/bin/lz4";
+    defaultArgs = ["-l"];
+    ubootName = "lz4";
+    extension = ".lz4";
+  };
+  lzop = {
+    executable = pkgs: "${pkgs.lzop}/bin/lzop";
+    ubootName = "lzo";
+    extension = ".lzo";
+  };
+  zstd = {
+    executable = pkgs: "${pkgs.zstd}/bin/zstd";
+    defaultArgs = ["-10"];
+    ubootName = "zstd";
+    extension = ".zst";
+  };
+  pigz = gzip // {
+    executable = pkgs: "${pkgs.pigz}/bin/pigz";
+  };
+  pixz = xz // {
+    executable = pkgs: "${pkgs.pixz}/bin/pixz";
+    defaultArgs = [];
+  };
+}
diff --git a/pkgs/build-support/kernel/make-initrd.nix b/pkgs/build-support/kernel/make-initrd.nix
index ed5dbdaee17..901eb311a88 100644
--- a/pkgs/build-support/kernel/make-initrd.nix
+++ b/pkgs/build-support/kernel/make-initrd.nix
@@ -1,22 +1,74 @@
-# Create an initial ramdisk containing the closure of the specified
-# file system objects.  An initial ramdisk is used during the initial
+# Create an initramfs containing the closure of the specified
+# file system objects.  An initramfs is used during the initial
 # stages of booting a Linux system.  It is loaded by the boot loader
 # along with the kernel image.  It's supposed to contain everything
 # (such as kernel modules) necessary to allow us to mount the root
 # file system.  Once the root file system is mounted, the `real' boot
 # script can be called.
 #
-# An initrd is really just a gzipped cpio archive.
-#
-# Symlinks are created for each top-level file system object.  E.g.,
-# `contents = {object = ...; symlink = /init;}' is a typical
-# argument.
-
-{ stdenvNoCC, perl, cpio, contents, ubootTools
+# An initramfs is a cpio archive, and may be compressed with a number
+# of algorithms.
+let
+  # Some metadata on various compression programs, relevant to naming
+  # the initramfs file and, if applicable, generating a u-boot image
+  # from it.
+  compressors = import ./initrd-compressor-meta.nix;
+  # Get the basename of the actual compression program from the whole
+  # compression command, for the purpose of guessing the u-boot
+  # compression type and filename extension.
+  compressorName = fullCommand: builtins.elemAt (builtins.match "([^ ]*/)?([^ ]+).*" fullCommand) 1;
+in
+{ stdenvNoCC, perl, cpio, ubootTools, lib, pkgsBuildHost
+# Name of the derivation (not of the resulting file!)
 , name ? "initrd"
-, compressor ? "gzip -9n"
+
+# Program used to compress the cpio archive; use "cat" for no compression.
+# This can also be a function which takes a package set and returns the path to the compressor,
+# such as `pkgs: "${pkgs.lzop}/bin/lzop"`.
+, compressor ? "gzip"
+, _compressorFunction ?
+  if lib.isFunction compressor then compressor
+  else if ! builtins.hasContext compressor && builtins.hasAttr compressor compressors then compressors.${compressor}.executable
+  else _: compressor
+, _compressorExecutable ? _compressorFunction pkgsBuildHost
+, _compressorName ? compressorName _compressorExecutable
+, _compressorMeta ? compressors.${_compressorName} or {}
+
+# List of arguments to pass to the compressor program, or null to use its defaults
+, compressorArgs ? null
+, _compressorArgsReal ? if compressorArgs == null then _compressorMeta.defaultArgs or [] else compressorArgs
+
+# Filename extension to use for the compressed initramfs. This is
+# included for clarity, but $out/initrd will always be a symlink to
+# the final image.
+# If this isn't guessed, you may want to complete the metadata above and send a PR :)
+, extension ? _compressorMeta.extension or
+    (throw "Unrecognised compressor ${_compressorName}, please specify filename extension")
+
+# List of { object = path_or_derivation; symlink = "/path"; }
+# The paths are copied into the initramfs in their nix store path
+# form, then linked at the root according to `symlink`.
+, contents
+
+# List of uncompressed cpio files to prepend to the initramfs. This
+# can be used to add files in specified paths without them becoming
+# symlinks to store paths.
 , prepend ? []
-, lib
+
+# Whether to wrap the initramfs in a u-boot image.
+, makeUInitrd ? stdenvNoCC.hostPlatform.platform.kernelTarget == "uImage"
+
+# If generating a u-boot image, the architecture to use. The default
+# guess may not align with u-boot's nomenclature correctly, so it can
+# be overridden.
+# See https://gitlab.denx.de/u-boot/u-boot/-/blob/9bfb567e5f1bfe7de8eb41f8c6d00f49d2b9a426/common/image.c#L81-106 for a list.
+, uInitrdArch ? stdenvNoCC.hostPlatform.kernelArch
+
+# The name of the compression, as recognised by u-boot.
+# See https://gitlab.denx.de/u-boot/u-boot/-/blob/9bfb567e5f1bfe7de8eb41f8c6d00f49d2b9a426/common/image.c#L195-204 for a list.
+# If this isn't guessed, you may want to complete the metadata above and send a PR :)
+, uInitrdCompression ? _compressorMeta.ubootName or
+    (throw "Unrecognised compressor ${_compressorName}, please specify uInitrdCompression")
 }:
 let
   # !!! Move this into a public lib function, it is probably useful for others
@@ -24,15 +76,26 @@ let
     lib.concatStringsSep "-" (filter (x: !(isList x)) (split "[^a-zA-Z0-9_=.?-]+" x));
 
 in stdenvNoCC.mkDerivation rec {
-  inherit name;
+  inherit name makeUInitrd extension uInitrdArch prepend;
 
-  builder = ./make-initrd.sh;
+  ${if makeUInitrd then "uinitrdCompression" else null} = uInitrdCompression;
 
-  makeUInitrd = stdenvNoCC.hostPlatform.platform.kernelTarget == "uImage";
+  builder = ./make-initrd.sh;
 
   nativeBuildInputs = [ perl cpio ]
     ++ stdenvNoCC.lib.optional makeUInitrd ubootTools;
 
+  compress = "${_compressorExecutable} ${lib.escapeShellArgs _compressorArgsReal}";
+
+  # Pass the function through, for reuse in append-initrd-secrets. The
+  # function is used instead of the string, in order to support
+  # cross-compilation (append-initrd-secrets running on a different
+  # architecture than what the main initramfs is built on).
+  passthru = {
+    compressorExecutableFunction = _compressorFunction;
+    compressorArgs = _compressorArgsReal;
+  };
+
   # !!! should use XML.
   objects = map (x: x.object) contents;
   symlinks = map (x: x.symlink) contents;
@@ -47,6 +110,4 @@ in stdenvNoCC.mkDerivation rec {
       contents
       (lib.range 0 (lib.length contents - 1));
   pathsFromGraph = ./paths-from-graph.pl;
-
-  inherit compressor prepend;
 }
diff --git a/pkgs/build-support/kernel/make-initrd.sh b/pkgs/build-support/kernel/make-initrd.sh
index 0aeaedeb372..c0619ef14ae 100644
--- a/pkgs/build-support/kernel/make-initrd.sh
+++ b/pkgs/build-support/kernel/make-initrd.sh
@@ -39,10 +39,13 @@ mkdir -p $out
 for PREP in $prepend; do
   cat $PREP >> $out/initrd
 done
-(cd root && find * -print0 | xargs -0r touch -h -d '@1')
-(cd root && find * -print0 | sort -z | cpio -o -H newc -R +0:+0 --reproducible --null | $compressor >> $out/initrd)
+(cd root && find * .[^.*] -exec touch -h -d '@1' '{}' +)
+(cd root && find * .[^.*] -print0 | sort -z | cpio -o -H newc -R +0:+0 --reproducible --null | eval -- $compress >> "$out/initrd")
 
 if [ -n "$makeUInitrd" ]; then
-    mv $out/initrd $out/initrd.gz
-    mkimage -A arm -O linux -T ramdisk -C gzip -d $out/initrd.gz $out/initrd
+    mkimage -A $uInitrdArch -O linux -T ramdisk -C "$uInitrdCompression" -d $out/initrd"$extension" $out/initrd.img
+    # Compatibility symlink
+    ln -s "initrd.img" "$out/initrd"
+else
+    ln -s "initrd" "$out/initrd$extension"
 fi
diff --git a/pkgs/build-support/nix-gitignore/default.nix b/pkgs/build-support/nix-gitignore/default.nix
index abfe67ea430..5d7b945bf1b 100644
--- a/pkgs/build-support/nix-gitignore/default.nix
+++ b/pkgs/build-support/nix-gitignore/default.nix
@@ -20,13 +20,14 @@ let
 in rec {
   # [["good/relative/source/file" true] ["bad.tmpfile" false]] -> root -> path
   filterPattern = patterns: root:
-    let
-      filters = map (pair: relPath: if match (head pair) relPath == null then true else last pair) patterns;
-    in
-      name: _type:
-        let
-          relPath = lib.removePrefix ((toString root) + "/") name;
-        in foldl' (acc: f: if acc == true then f relPath else acc) true filters;
+    (name: _type:
+      let
+        relPath = lib.removePrefix ((toString root) + "/") name;
+        matches = pair: (match (head pair) relPath) != null;
+        matched = map (pair: [(matches pair) (last pair)]) patterns;
+      in
+        last (last ([[true true]] ++ (filter head matched)))
+    );
 
   # string -> [[regex bool]]
   gitignoreToPatterns = gitignore:
@@ -90,9 +91,7 @@ in rec {
       (filter (l: !isList l && !isComment l)
       (split "\n" gitignore));
 
-  gitignoreFilter = ign: let
-    patterns = gitignoreToPatterns ign;
-  in root: filterPattern patterns root;
+  gitignoreFilter = ign: root: filterPattern (gitignoreToPatterns ign) root;
 
   # string|[string|file] (→ [string|file] → [string]) -> string
   gitignoreCompileIgnore = file_str_patterns: root:
@@ -101,10 +100,9 @@ in rec {
       str_patterns = map (onPath readFile) (lib.toList file_str_patterns);
     in concatStringsSep "\n" str_patterns;
 
-  gitignoreFilterPure = filter: patterns: root: let
-    compiledFilter = gitignoreCompileIgnore patterns root;
-    filterFn = gitignoreFilter compiledFilter;
-  in name: type: filterFn root name type && filter name type;
+  gitignoreFilterPure = filter: patterns: root: name: type:
+    gitignoreFilter (gitignoreCompileIgnore patterns root) root name type
+    && filter name type;
 
   # This is a very hacky way of programming this!
   # A better way would be to reuse existing filtering by making multiple gitignore functions per each root.
diff --git a/pkgs/build-support/ocaml/dune.nix b/pkgs/build-support/ocaml/dune.nix
index b134effab8a..fce0096c83d 100644
--- a/pkgs/build-support/ocaml/dune.nix
+++ b/pkgs/build-support/ocaml/dune.nix
@@ -1,4 +1,4 @@
-{ stdenv, ocaml, findlib, dune, dune_2, opaline }:
+{ stdenv, ocaml, findlib, dune, dune_2 }:
 
 { pname, version, buildInputs ? [], enableParallelBuilding ? true, ... }@args:
 
@@ -25,7 +25,7 @@ stdenv.mkDerivation ({
   '';
   installPhase = ''
     runHook preInstall
-    ${opaline}/bin/opaline -prefix $out -libdir $OCAMLFIND_DESTDIR
+    dune install --prefix $out --libdir $OCAMLFIND_DESTDIR ${pname}
     runHook postInstall
   '';
 
diff --git a/pkgs/build-support/rust/build-rust-crate/test/default.nix b/pkgs/build-support/rust/build-rust-crate/test/default.nix
index f6cd54c4ee3..65c8880b134 100644
--- a/pkgs/build-support/rust/build-rust-crate/test/default.nix
+++ b/pkgs/build-support/rust/build-rust-crate/test/default.nix
@@ -146,12 +146,18 @@ let
         };
       in
       runCommand "assert-outputs-${name}" {
-      } ''
+      } (''
       local actualFiles=$(mktemp)
 
       cd "${crateOutput}"
-      find . -type f | sort >$actualFiles
-      diff -q ${expectedFilesFile} $actualFiles >/dev/null || {
+      find . -type f \
+        | sort \
+      ''
+      # sed out the hash because it differs per platform
+      + ''
+        | sed -E -e 's/-[0-9a-fA-F]{10}\.rlib/-HASH.rlib/g' \
+        > "$actualFiles"
+      diff -q ${expectedFilesFile} "$actualFiles" > /dev/null || {
         echo -e "\033[0;1;31mERROR: Difference in expected output files in ${crateOutput} \033[0m" >&2
         echo === Got:
         sed -e 's/^/  /' $actualFiles
@@ -164,7 +170,7 @@ let
         exit 1
       }
       touch $out
-      ''
+      '')
       ;
 
   in rec {
@@ -594,7 +600,7 @@ let
       };
       expectedFiles = [
         "./nix-support/propagated-build-inputs"
-        "./lib/libtest_lib-042a1fdbef.rlib"
+        "./lib/libtest_lib-HASH.rlib"
         "./lib/link"
       ];
     };
@@ -611,7 +617,7 @@ let
       };
       expectedFiles = [
         "./nix-support/propagated-build-inputs"
-        "./lib/libtest_lib-042a1fdbef.rlib"
+        "./lib/libtest_lib-HASH.rlib"
         "./lib/link"
       ];
     };
diff --git a/pkgs/build-support/rust/default.nix b/pkgs/build-support/rust/default.nix
index 8e47a2b0bf2..9e8e32035d0 100644
--- a/pkgs/build-support/rust/default.nix
+++ b/pkgs/build-support/rust/default.nix
@@ -15,7 +15,13 @@
 }:
 
 { name ? "${args.pname}-${args.version}"
-, cargoSha256 ? "unset"
+
+  # SRI hash
+, cargoHash ? ""
+
+  # Legacy hash
+, cargoSha256 ? ""
+
 , src ? null
 , srcs ? null
 , unpackPhase ? null
@@ -46,7 +52,7 @@
 , buildAndTestSubdir ? null
 , ... } @ args:
 
-assert cargoVendorDir == null -> cargoSha256 != "unset";
+assert cargoVendorDir == null -> !(cargoSha256 == "" && cargoHash == "");
 assert buildType == "release" || buildType == "debug";
 
 let
@@ -54,6 +60,7 @@ let
   cargoDeps = if cargoVendorDir == null
     then fetchCargoTarball ({
         inherit name src srcs sourceRoot unpackPhase cargoUpdateHook;
+        hash = cargoHash;
         patches = cargoPatches;
         sha256 = cargoSha256;
       } // depsExtraArgs)
@@ -61,7 +68,7 @@ let
 
   # If we have a cargoSha256 fixed-output derivation, validate it at build time
   # against the src fixed-output derivation to check consistency.
-  validateCargoDeps = cargoSha256 != "unset";
+  validateCargoDeps = !(cargoHash == "" && cargoSha256 == "");
 
   # Some cargo builds include build hooks that modify their own vendor
   # dependencies. This copies the vendor directory into the build tree and makes
diff --git a/pkgs/build-support/rust/fetchCargoTarball.nix b/pkgs/build-support/rust/fetchCargoTarball.nix
index dff5d99da9e..0726e5cfa5a 100644
--- a/pkgs/build-support/rust/fetchCargoTarball.nix
+++ b/pkgs/build-support/rust/fetchCargoTarball.nix
@@ -22,11 +22,17 @@ in
 , srcs ? []
 , patches ? []
 , sourceRoot
-, sha256
+, hash ? ""
+, sha256 ? ""
 , cargoUpdateHook ? ""
 , ...
 } @ args:
-stdenv.mkDerivation ({
+
+let hash_ =
+  if hash != "" then { outputHashAlgo = null; outputHash = hash; }
+  else if sha256 != "" then { outputHashAlgo = "sha256"; outputHash = sha256; }
+  else throw "fetchCargoTarball requires a hash for ${name}";
+in stdenv.mkDerivation ({
   name = "${name}-vendor.tar.gz";
   nativeBuildInputs = [ cacert git cargo-vendor-normalise cargo ];
 
@@ -40,7 +46,7 @@ stdenv.mkDerivation ({
         echo
         echo "ERROR: The Cargo.lock file doesn't exist"
         echo
-        echo "Cargo.lock is needed to make sure that cargoSha256 doesn't change"
+        echo "Cargo.lock is needed to make sure that cargoHash/cargoSha256 doesn't change"
         echo "when the registry is updated."
         echo
 
@@ -72,8 +78,7 @@ stdenv.mkDerivation ({
         -czf $out $name
   '';
 
-  outputHashAlgo = "sha256";
-  outputHash = sha256;
+  inherit (hash_) outputHashAlgo outputHash;
 
   impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars;
 } // (builtins.removeAttrs args [
diff --git a/pkgs/build-support/setup-hooks/auto-patchelf.sh b/pkgs/build-support/setup-hooks/auto-patchelf.sh
index 49e84f84ceb..511371931de 100644
--- a/pkgs/build-support/setup-hooks/auto-patchelf.sh
+++ b/pkgs/build-support/setup-hooks/auto-patchelf.sh
@@ -1,3 +1,5 @@
+#!/usr/bin/env bash
+
 declare -a autoPatchelfLibs
 declare -Ag autoPatchelfFailedDeps
 
@@ -11,6 +13,8 @@ runPatchelf() {
   patchelf "$@" || (echo "Command failed: patchelf $*" && exit 1)
 }
 
+# shellcheck disable=SC2154
+# (targetOffset is referenced but not assigned.)
 addEnvHooks "$targetOffset" gatherLibraries
 
 isExecutable() {
@@ -116,6 +120,8 @@ autoPatchelfFile() {
     interpreter="$(< "$NIX_CC/nix-support/dynamic-linker")"
     if isExecutable "$toPatch"; then
         runPatchelf --set-interpreter "$interpreter" "$toPatch"
+        # shellcheck disable=SC2154
+        # (runtimeDependencies is referenced but not assigned.)
         if [ -n "$runtimeDependencies" ]; then
             for dep in $runtimeDependencies; do
                 rpath="$rpath${rpath:+:}$dep/lib"
@@ -129,11 +135,13 @@ autoPatchelfFile() {
     # clear the RPATH first.
     runPatchelf --remove-rpath "$toPatch"
 
+    # If the file is not a dynamic executable, ldd/sed will fail,
+    # in which case we return, since there is nothing left to do.
     local missing
     missing="$(
         ldd "$toPatch" 2> /dev/null | \
             sed -n -e 's/^[\t ]*\([^ ]\+\) => not found.*/\1/p'
-    )"
+    )" || return 0
 
     # This ensures that we get the output of all missing dependencies instead
     # of failing at the first one, because it's more useful when working on a
@@ -175,10 +183,10 @@ addAutoPatchelfSearchPath() {
         esac
     done
 
-    for file in \
-      $(find "$@" "${findOpts[@]}" \! -type d \
-          \( -name '*.so' -o -name '*.so.*' \))
-    do addToDepCache "$file"; done
+    while IFS= read -r -d '' file; do
+    addToDepCache "$file"
+    done <  <(find "$@" "${findOpts[@]}" \! -type d \
+            \( -name '*.so' -o -name '*.so.*' \) -print0)
 }
 
 autoPatchelf() {
@@ -231,6 +239,8 @@ autoPatchelf() {
       echo "autoPatchelfHook could not satisfy dependency $failedDep wanted by ${autoPatchelfFailedDeps[$failedDep]}"
       depsMissing=1
     done
+    # shellcheck disable=SC2154
+    # (autoPatchelfIgnoreMissingDeps is referenced but not assigned.)
     if [[ $depsMissing == 1 && -z "$autoPatchelfIgnoreMissingDeps" ]]; then
       echo "Add the missing dependencies to the build inputs or set autoPatchelfIgnoreMissingDeps=true"
       exit 1
diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix
index 2f18e96e4ce..5f3c7e1d621 100644
--- a/pkgs/build-support/vm/default.nix
+++ b/pkgs/build-support/vm/default.nix
@@ -1196,4 +1196,4 @@ rec {
      `debDistros' sets. */
   diskImages = lib.mapAttrs (name: f: f {}) diskImageFuns;
 
-} // import ./windows pkgs
+}
diff --git a/pkgs/build-support/vm/windows/bootstrap.nix b/pkgs/build-support/vm/windows/bootstrap.nix
deleted file mode 100644
index 3b06d8f4749..00000000000
--- a/pkgs/build-support/vm/windows/bootstrap.nix
+++ /dev/null
@@ -1,83 +0,0 @@
-{ stdenv, fetchurl, vmTools, writeScript, writeText, runCommand, makeInitrd
-, python, perl, coreutils, dosfstools, gzip, mtools, netcat-gnu, openssh, qemu
-, samba, socat, vde2, cdrkit, pathsFromGraph, gnugrep
-}:
-
-{ isoFile, productKey, arch ? null }:
-
-with stdenv.lib;
-
-let
-  controller = import ./controller {
-    inherit stdenv writeScript vmTools makeInitrd;
-    inherit samba vde2 openssh socat netcat-gnu coreutils gzip gnugrep;
-  };
-
-  mkCygwinImage = import ./cygwin-iso {
-    inherit stdenv fetchurl runCommand python perl cdrkit pathsFromGraph;
-    arch = let
-      defaultArch = if stdenv.is64bit then "x86_64" else "i686";
-    in if arch == null then defaultArch else arch;
-  };
-
-  installer = import ./install {
-    inherit controller mkCygwinImage;
-    inherit stdenv runCommand openssh qemu writeText dosfstools mtools;
-  };
-in rec {
-  installedVM = installer {
-    inherit isoFile productKey;
-  };
-
-  runInVM = img: attrs: controller (attrs // {
-    inherit (installedVM) sshKey;
-    qemuArgs = attrs.qemuArgs or [] ++ [
-      "-boot order=c"
-      "-drive file=${img},index=0,media=disk"
-    ];
-  });
-
-  runAndSuspend = let
-    drives = {
-      s = {
-        source = "nixstore";
-        target = "/nix/store";
-      };
-      x = {
-        source = "xchg";
-        target = "/tmp/xchg";
-      };
-    };
-
-    genDriveCmds = letter: { source, target }: [
-      "net use ${letter}: '\\\\192.168.0.2\\${source}' /persistent:yes"
-      "mkdir -p '${target}'"
-      "mount -o bind '/cygdrive/${letter}' '${target}'"
-      "echo '/cygdrive/${letter} ${target} none bind 0 0' >> /etc/fstab"
-    ];
-  in runInVM "winvm.img" {
-    command = concatStringsSep " && " ([
-      "net config server /autodisconnect:-1"
-    ] ++ concatLists (mapAttrsToList genDriveCmds drives));
-    suspendTo = "state.gz";
-  };
-
-  suspendedVM = stdenv.mkDerivation {
-    name = "cygwin-suspended-vm";
-    buildCommand = ''
-      ${qemu}/bin/qemu-img create \
-        -b "${installedVM}/disk.img" \
-        -f qcow2 winvm.img
-      ${runAndSuspend}
-      mkdir -p "$out"
-      cp winvm.img "$out/disk.img"
-      cp state.gz "$out/state.gz"
-    '';
-  };
-
-  resumeAndRun = command: runInVM "${suspendedVM}/disk.img" {
-    resumeFrom = "${suspendedVM}/state.gz";
-    qemuArgs = singleton "-snapshot";
-    inherit command;
-  };
-}
diff --git a/pkgs/build-support/vm/windows/controller/default.nix b/pkgs/build-support/vm/windows/controller/default.nix
deleted file mode 100644
index 9d13983a283..00000000000
--- a/pkgs/build-support/vm/windows/controller/default.nix
+++ /dev/null
@@ -1,263 +0,0 @@
-{ stdenv, writeScript, vmTools, makeInitrd
-, samba, vde2, openssh, socat, netcat-gnu, coreutils, gnugrep, gzip
-, runtimeShell
-}:
-
-{ sshKey
-, qemuArgs ? []
-, command ? "sync"
-, suspendTo ? null
-, resumeFrom ? null
-, installMode ? false
-}:
-
-with stdenv.lib;
-
-let
-  preInitScript = writeScript "preinit.sh" ''
-    #!${vmTools.initrdUtils}/bin/ash -e
-    export PATH=${vmTools.initrdUtils}/bin
-    mount -t proc none /proc
-    mount -t sysfs none /sys
-    for arg in $(cat /proc/cmdline); do
-      if [ "x''${arg#command=}" != "x$arg" ]; then
-        command="''${arg#command=}"
-      fi
-    done
-
-    for i in $(cat ${modulesClosure}/insmod-list); do
-      insmod $i
-    done
-
-    mkdir -p /dev /fs
-
-    mount -t tmpfs none /dev
-    mknod /dev/null    c 1 3
-    mknod /dev/zero    c 1 5
-    mknod /dev/random  c 1 8
-    mknod /dev/urandom c 1 9
-    mknod /dev/tty     c 5 0
-
-    ifconfig lo up
-    ifconfig eth0 up 192.168.0.2
-
-    mount -t tmpfs none /fs
-    mkdir -p /fs/nix/store /fs/xchg /fs/dev /fs/sys /fs/proc /fs/etc /fs/tmp
-
-    mount -o bind /dev /fs/dev
-    mount -t sysfs none /fs/sys
-    mount -t proc none /fs/proc
-
-    mount -t 9p \
-      -o trans=virtio,version=9p2000.L,cache=loose \
-      store /fs/nix/store
-
-    mount -t 9p \
-      -o trans=virtio,version=9p2000.L \
-      xchg /fs/xchg
-
-    echo root:x:0:0::/root:/bin/false > /fs/etc/passwd
-
-    set +e
-    chroot /fs $command $out
-    echo $? > /fs/xchg/in-vm-exit
-
-    poweroff -f
-  '';
-
-  initrd = makeInitrd {
-    contents = singleton {
-      object = preInitScript;
-      symlink = "/init";
-    };
-  };
-
-  loopForever = "while :; do ${coreutils}/bin/sleep 1; done";
-
-  initScript = writeScript "init.sh" (''
-    #!${runtimeShell}
-    ${coreutils}/bin/cp -L "${sshKey}" /ssh.key
-    ${coreutils}/bin/chmod 600 /ssh.key
-  '' + (if installMode then ''
-    echo -n "Waiting for Windows installation to finish..."
-    while ! ${netcat-gnu}/bin/netcat -z 192.168.0.1 22; do
-      echo -n .
-      # Print a dot every 10 seconds only to shorten line length.
-      ${coreutils}/bin/sleep 10
-    done
-    ${coreutils}/bin/touch /xchg/waiting_done
-    echo " success."
-    # Loop forever, because this VM is going to be killed.
-    ${loopForever}
-  '' else ''
-    ${coreutils}/bin/mkdir -p /etc/samba /etc/samba/private \
-                              /var/lib/samba /var/log /var/run
-    ${coreutils}/bin/cat > /etc/samba/smb.conf <<CONFIG
-    [global]
-    security = user
-    map to guest = Bad User
-    guest account = root
-    workgroup = cygwin
-    netbios name = controller
-    server string = %h
-    log level = 1
-    max log size = 1000
-    log file = /var/log/samba.log
-
-    [nixstore]
-    path = /nix/store
-    writable = yes
-    guest ok = yes
-
-    [xchg]
-    path = /xchg
-    writable = yes
-    guest ok = yes
-    CONFIG
-
-    ${samba}/sbin/nmbd -D
-    ${samba}/sbin/smbd -D
-
-    echo -n "Waiting for Windows VM to become available..."
-    while ! ${netcat-gnu}/bin/netcat -z 192.168.0.1 22; do
-      echo -n .
-      ${coreutils}/bin/sleep 1
-    done
-    ${coreutils}/bin/touch /xchg/waiting_done
-    echo " success."
-
-    ${openssh}/bin/ssh \
-      -o UserKnownHostsFile=/dev/null \
-      -o StrictHostKeyChecking=no \
-      -i /ssh.key \
-      -l Administrator \
-      192.168.0.1 -- ${lib.escapeShellArg command}
-  '') + optionalString (suspendTo != null) ''
-    ${coreutils}/bin/touch /xchg/suspend_now
-    ${loopForever}
-  '');
-
-  kernelAppend = concatStringsSep " " [
-    "panic=1"
-    "loglevel=4"
-    "console=tty1"
-    "console=ttyS0"
-    "command=${initScript}"
-  ];
-
-  controllerQemuArgs = concatStringsSep " " (maybeKvm64 ++ [
-    "-pidfile $CTRLVM_PIDFILE"
-    "-nographic"
-    "-no-reboot"
-    "-virtfs local,path=/nix/store,security_model=none,mount_tag=store"
-    "-virtfs local,path=$XCHG_DIR,security_model=none,mount_tag=xchg"
-    "-kernel ${modulesClosure.kernel}/bzImage"
-    "-initrd ${initrd}/initrd"
-    "-append \"${kernelAppend}\""
-    "-net nic,vlan=0,macaddr=52:54:00:12:01:02,model=virtio"
-    "-net vde,vlan=0,sock=$QEMU_VDE_SOCKET"
-  ]);
-
-  maybeKvm64 = optional (stdenv.hostPlatform.system == "x86_64-linux") "-cpu kvm64";
-
-  cygwinQemuArgs = concatStringsSep " " (maybeKvm64 ++ [
-    "-monitor unix:$MONITOR_SOCKET,server,nowait"
-    "-pidfile $WINVM_PIDFILE"
-    "-nographic"
-    "-net nic,vlan=0,macaddr=52:54:00:12:01:01"
-    "-net vde,vlan=0,sock=$QEMU_VDE_SOCKET"
-    "-rtc base=2010-01-01,clock=vm"
-  ] ++ qemuArgs ++ optionals (resumeFrom != null) [
-    "-incoming 'exec: ${gzip}/bin/gzip -c -d \"${resumeFrom}\"'"
-  ]);
-
-  modulesClosure = overrideDerivation vmTools.modulesClosure (o: {
-    rootModules = o.rootModules ++ singleton "virtio_net";
-  });
-
-  preVM = ''
-    (set; declare -p) > saved-env
-    XCHG_DIR="$(${coreutils}/bin/mktemp -d nix-vm.XXXXXXXXXX --tmpdir)"
-    ${coreutils}/bin/mv saved-env "$XCHG_DIR/"
-
-    eval "$preVM"
-
-    QEMU_VDE_SOCKET="$(pwd)/vde.ctl"
-    MONITOR_SOCKET="$(pwd)/monitor"
-    WINVM_PIDFILE="$(pwd)/winvm.pid"
-    CTRLVM_PIDFILE="$(pwd)/ctrlvm.pid"
-    ${vde2}/bin/vde_switch -s "$QEMU_VDE_SOCKET" --dirmode 0700 &
-    echo 'alive?' | ${socat}/bin/socat - \
-      UNIX-CONNECT:$QEMU_VDE_SOCKET/ctl,retry=20
-  '';
-
-  vmExec = ''
-    ${vmTools.qemuProg} ${controllerQemuArgs} &
-    ${vmTools.qemuProg} ${cygwinQemuArgs} &
-    echo -n "Waiting for VMs to start up..."
-    timeout=60
-    while ! test -e "$WINVM_PIDFILE" -a -e "$CTRLVM_PIDFILE"; do
-      timeout=$(($timeout - 1))
-      echo -n .
-      if test $timeout -le 0; then
-        echo " timed out."
-        exit 1
-      fi
-      ${coreutils}/bin/sleep 1
-    done
-    echo " done."
-  '';
-
-  checkDropOut = ''
-    if ! test -e "$XCHG_DIR/waiting_done" &&
-       ! kill -0 $(< "$WINVM_PIDFILE"); then
-      echo "Windows VM has dropped out early, bailing out!" >&2
-      exit 1
-    fi
-  '';
-
-  toMonitor = "${socat}/bin/socat - UNIX-CONNECT:$MONITOR_SOCKET";
-
-  postVM = if suspendTo != null then ''
-    while ! test -e "$XCHG_DIR/suspend_now"; do
-      ${checkDropOut}
-      ${coreutils}/bin/sleep 1
-    done
-    ${toMonitor} <<CMD
-    stop
-    migrate_set_speed 4095m
-    migrate "exec:${gzip}/bin/gzip -c > '${suspendTo}'"
-    CMD
-    echo -n "Waiting for memory dump to finish..."
-    while ! echo info migrate | ${toMonitor} | \
-          ${gnugrep}/bin/grep -qi '^migration *status: *complete'; do
-      ${coreutils}/bin/sleep 1
-      echo -n .
-    done
-    echo " done."
-    echo quit | ${toMonitor}
-    wait $(< "$WINVM_PIDFILE")
-    eval "$postVM"
-    exit 0
-  '' else if installMode then ''
-    wait $(< "$WINVM_PIDFILE")
-    eval "$postVM"
-    exit 0
-  '' else ''
-    while kill -0 $(< "$CTRLVM_PIDFILE"); do
-      ${checkDropOut}
-    done
-    if ! test -e "$XCHG_DIR/in-vm-exit"; then
-      echo "Virtual machine didn't produce an exit code."
-      exit 1
-    fi
-    eval "$postVM"
-    exit $(< "$XCHG_DIR/in-vm-exit")
-  '';
-
-in writeScript "run-cygwin-vm.sh" ''
-  #!${stdenv.shell} -e
-  ${preVM}
-  ${vmExec}
-  ${postVM}
-''
diff --git a/pkgs/build-support/vm/windows/cygwin-iso/default.nix b/pkgs/build-support/vm/windows/cygwin-iso/default.nix
deleted file mode 100644
index 76cd41a75bc..00000000000
--- a/pkgs/build-support/vm/windows/cygwin-iso/default.nix
+++ /dev/null
@@ -1,56 +0,0 @@
-{ stdenv, fetchurl, runCommand, python, perl, xorriso, pathsFromGraph
-, arch ? "x86_64"
-}:
-
-{ packages ? []
-, mirror ? "http://ftp.gwdg.de/pub/linux/sources.redhat.com/cygwin"
-, extraContents ? []
-}:
-
-let
-  cygPkgList = if arch == "x86_64" then fetchurl {
-    url = "${mirror}/x86_64/setup.ini";
-    sha256 = "0arrxvxbl85l82iy648snx5cl952w791p45p0dfg1xpiaf96cbkj";
-  } else fetchurl {
-    url = "${mirror}/x86/setup.ini";
-    sha256 = "1fayx34868vd5h2nah7chiw65sl3i9qzrwvs7lrlv2h8k412vb69";
-  };
-
-  cygwinCross = (import ../../../../.. {
-    localSystem = stdenv.hostPlatform;
-    crossSystem = {
-      libc = "msvcrt";
-      platform = {};
-      inherit arch;
-      config = "${arch}-w64-mingw32";
-    };
-  }).windows.cygwinSetup;
-
-  makeCygwinClosure = { packages, packageList }: let
-    expr = import (runCommand "cygwin.nix" { buildInputs = [ python ]; } ''
-      python ${./mkclosure.py} "${packages}" ${toString packageList} > "$out"
-    '');
-    gen = { url, hash }: {
-      source = fetchurl {
-        url = "${mirror}/${url}";
-        sha512 = hash;
-      };
-      target = url;
-    };
-  in map gen expr;
-
-in import ../../../../../nixos/lib/make-iso9660-image.nix {
-  inherit stdenv perl xorriso pathsFromGraph;
-  syslinux = null;
-  contents = [
-    { source = "${cygwinCross}/bin/setup.exe";
-      target = "setup.exe";
-    }
-    { source = cygPkgList;
-      target = "setup.ini";
-    }
-  ] ++ makeCygwinClosure {
-    packages = cygPkgList;
-    packageList = packages;
-  } ++ extraContents;
-}
diff --git a/pkgs/build-support/vm/windows/cygwin-iso/mkclosure.py b/pkgs/build-support/vm/windows/cygwin-iso/mkclosure.py
deleted file mode 100644
index 4c0d67c43ba..00000000000
--- a/pkgs/build-support/vm/windows/cygwin-iso/mkclosure.py
+++ /dev/null
@@ -1,78 +0,0 @@
-# Ugliest Python code I've ever written. -- aszlig
-import sys
-
-def get_plist(path):
-    in_pack = False
-    in_str = False
-    current_key = None
-    buf = ""
-    packages = {}
-    package_name = None
-    package_attrs = {}
-    with open(path, 'r') as setup:
-        for line in setup:
-            if in_str and line.rstrip().endswith('"'):
-                package_attrs[current_key] = buf + line.rstrip()[:-1]
-                in_str = False
-                continue
-            elif in_str:
-                buf += line
-                continue
-
-            if line.startswith('@'):
-                in_pack = True
-                package_name = line[1:].strip()
-                package_attrs = {}
-            elif in_pack and ':' in line:
-                key, value = line.split(':', 1)
-                if value.lstrip().startswith('"'):
-                    if value.lstrip()[1:].rstrip().endswith('"'):
-                        value = value.strip().strip('"')
-                    else:
-                        in_str = True
-                        current_key = key.strip().lower()
-                        buf = value.lstrip()[1:]
-                        continue
-                package_attrs[key.strip().lower()] = value.strip()
-            elif in_pack:
-                in_pack = False
-                packages[package_name] = package_attrs
-    return packages
-
-def main():
-    packages = get_plist(sys.argv[1])
-    to_include = set()
-
-    def traverse(package):
-        to_include.add(package)
-        attrs = packages.get(package, {})
-        deps = attrs.get('requires', '').split()
-        for new_dep in set(deps) - to_include:
-            traverse(new_dep)
-
-    map(traverse, sys.argv[2:])
-
-    sys.stdout.write('[\n')
-    for package, attrs in packages.iteritems():
-        if package not in to_include:
-            cats = [c.lower() for c in attrs.get('category', '').split()]
-            if 'base' not in cats:
-                continue
-
-        install_line = attrs.get('install')
-        if install_line is None:
-            continue
-
-        url, size, hash = install_line.split(' ', 2)
-
-        pack = [
-            '  {',
-            '    url = "{0}";'.format(url),
-            '    hash = "{0}";'.format(hash),
-            '  }',
-        ];
-        sys.stdout.write('\n'.join(pack) + '\n')
-    sys.stdout.write(']\n')
-
-if __name__ == '__main__':
-    main()
diff --git a/pkgs/build-support/vm/windows/default.nix b/pkgs/build-support/vm/windows/default.nix
deleted file mode 100644
index 309241c36de..00000000000
--- a/pkgs/build-support/vm/windows/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-#note: the hardcoded /bin/sh is required for the VM's cygwin shell
-pkgs:
-
-let
-  bootstrapper = import ./bootstrap.nix {
-    inherit (pkgs) stdenv vmTools writeScript writeText runCommand makeInitrd;
-    inherit (pkgs) coreutils dosfstools gzip mtools netcat-gnu openssh qemu samba;
-    inherit (pkgs) socat vde2 fetchurl python perl cdrkit pathsFromGraph;
-    inherit (pkgs) gnugrep;
-  };
-
-  builder = ''
-    source /tmp/xchg/saved-env 2> /dev/null || true
-    export NIX_STORE=/nix/store
-    export NIX_BUILD_TOP=/tmp
-    export TMPDIR=/tmp
-    export PATH=/empty
-    cd "$NIX_BUILD_TOP"
-    exec $origBuilder $origArgs
-  '';
-
-in {
-  runInWindowsVM = drv: pkgs.lib.overrideDerivation drv (attrs: let
-    bootstrap = bootstrapper attrs.windowsImage;
-  in {
-    requiredSystemFeatures = [ "kvm" ];
-    builder = pkgs.stdenv.shell;
-    args = ["-e" (bootstrap.resumeAndRun builder)];
-    windowsImage = bootstrap.suspendedVM;
-    origArgs = attrs.args;
-    origBuilder = if attrs.builder == attrs.stdenv.shell
-                  then "/bin/sh"
-                  else attrs.builder;
-
-    postHook = ''
-      PATH=/usr/bin:/bin:/usr/sbin:/sbin
-      SHELL=/bin/sh
-      eval "$origPostHook"
-    '';
-
-    origPostHook = attrs.postHook or "";
-    fixupPhase = ":";
-  });
-}
diff --git a/pkgs/build-support/vm/windows/install/default.nix b/pkgs/build-support/vm/windows/install/default.nix
deleted file mode 100644
index fe8e8f61de0..00000000000
--- a/pkgs/build-support/vm/windows/install/default.nix
+++ /dev/null
@@ -1,74 +0,0 @@
-{ stdenv, runCommand, openssh, qemu, controller, mkCygwinImage
-, writeText, dosfstools, mtools
-}:
-
-{ isoFile
-, productKey
-}:
-
-let
-  bootstrapAfterLogin = runCommand "bootstrap.sh" {} ''
-    cat > "$out" <<EOF
-    mkdir -p ~/.ssh
-    cat > ~/.ssh/authorized_keys <<PUBKEY
-    $(cat "${cygwinSshKey}/key.pub")
-    PUBKEY
-    ssh-host-config -y -c 'binmode ntsec' -w dummy
-    cygrunsrv -S sshd
-    shutdown -s 5
-    EOF
-  '';
-
-  cygwinSshKey = stdenv.mkDerivation {
-    name = "snakeoil-ssh-cygwin";
-    buildCommand = ''
-      mkdir -p "$out"
-      ${openssh}/bin/ssh-keygen -t ecdsa -f "$out/key" -N ""
-    '';
-  };
-
-  sshKey = "${cygwinSshKey}/key";
-
-  packages = [ "openssh" "shutdown" ];
-
-  floppyCreator = import ./unattended-image.nix {
-    inherit stdenv writeText dosfstools mtools;
-  };
-
-  instfloppy = floppyCreator {
-    cygwinPackages = packages;
-    inherit productKey;
-  };
-
-  cygiso = mkCygwinImage {
-    inherit packages;
-    extraContents = stdenv.lib.singleton {
-      source = bootstrapAfterLogin;
-      target = "bootstrap.sh";
-    };
-  };
-
-  installController = controller {
-    inherit sshKey;
-    installMode = true;
-    qemuArgs = [
-      "-boot order=c,once=d"
-      "-drive file=${instfloppy},readonly,index=0,if=floppy"
-      "-drive file=winvm.img,index=0,media=disk"
-      "-drive file=${isoFile},index=1,media=cdrom"
-      "-drive file=${cygiso}/iso/cd.iso,index=2,media=cdrom"
-    ];
-  };
-
-in stdenv.mkDerivation {
-  name = "cygwin-base-vm";
-  buildCommand = ''
-    ${qemu}/bin/qemu-img create -f qcow2 winvm.img 2G
-    ${installController}
-    mkdir -p "$out"
-    cp winvm.img "$out/disk.img"
-  '';
-  passthru = {
-    inherit sshKey;
-  };
-}
diff --git a/pkgs/build-support/vm/windows/install/unattended-image.nix b/pkgs/build-support/vm/windows/install/unattended-image.nix
deleted file mode 100644
index 5b1ff84cf44..00000000000
--- a/pkgs/build-support/vm/windows/install/unattended-image.nix
+++ /dev/null
@@ -1,123 +0,0 @@
-{ stdenv, writeText, dosfstools, mtools }:
-
-{ productKey
-, shExecAfterwards ? "E:\\bootstrap.sh"
-, cygwinRoot ? "C:\\cygwin"
-, cygwinSetup ? "E:\\setup.exe"
-, cygwinRepository ? "E:\\"
-, cygwinPackages ? [ "openssh" ]
-}:
-
-let
-  afterSetup = [
-    cygwinSetup
-    "-L -n -q"
-    "-l ${cygwinRepository}"
-    "-R ${cygwinRoot}"
-    "-C base"
-  ] ++ map (p: "-P ${p}") cygwinPackages;
-
-  winXpUnattended = writeText "winnt.sif" ''
-    [Data]
-    AutoPartition = 1
-    AutomaticUpdates = 0
-    MsDosInitiated = 0
-    UnattendedInstall = Yes
-
-    [Unattended]
-    DUDisable = Yes
-    DriverSigningPolicy = Ignore
-    Hibernation = No
-    OemPreinstall = No
-    OemSkipEula = Yes
-    Repartition = Yes
-    TargetPath = \WINDOWS
-    UnattendMode = FullUnattended
-    UnattendSwitch = Yes
-    WaitForReboot = No
-
-    [GuiUnattended]
-    AdminPassword = "nopasswd"
-    AutoLogon = Yes
-    AutoLogonCount = 1
-    OEMSkipRegional = 1
-    OemSkipWelcome = 1
-    ServerWelcome = No
-    TimeZone = 85
-
-    [UserData]
-    ComputerName = "cygwin"
-    FullName = "cygwin"
-    OrgName = ""
-    ProductKey = "${productKey}"
-
-    [Networking]
-    InstallDefaultComponents = Yes
-
-    [Identification]
-    JoinWorkgroup = cygwin
-
-    [NetAdapters]
-    PrimaryAdapter = params.PrimaryAdapter
-
-    [params.PrimaryAdapter]
-    InfID = *
-
-    [params.MS_MSClient]
-
-    [NetProtocols]
-    MS_TCPIP = params.MS_TCPIP
-
-    [params.MS_TCPIP]
-    AdapterSections=params.MS_TCPIP.PrimaryAdapter
-
-    [params.MS_TCPIP.PrimaryAdapter]
-    DHCP = No
-    IPAddress = 192.168.0.1
-    SpecificTo = PrimaryAdapter
-    SubnetMask = 255.255.255.0
-    WINS = No
-
-    ; Turn off all components
-    [Components]
-    ${stdenv.lib.concatMapStrings (comp: "${comp} = Off\n") [
-      "AccessOpt" "Appsrv_console" "Aspnet" "BitsServerExtensionsISAPI"
-      "BitsServerExtensionsManager" "Calc" "Certsrv" "Certsrv_client"
-      "Certsrv_server" "Charmap" "Chat" "Clipbook" "Cluster" "Complusnetwork"
-      "Deskpaper" "Dialer" "Dtcnetwork" "Fax" "Fp_extensions" "Fp_vdir_deploy"
-      "Freecell" "Hearts" "Hypertrm" "IEAccess" "IEHardenAdmin" "IEHardenUser"
-      "Iis_asp" "Iis_common" "Iis_ftp" "Iis_inetmgr" "Iis_internetdataconnector"
-      "Iis_nntp" "Iis_serversideincludes" "Iis_smtp" "Iis_webdav" "Iis_www"
-      "Indexsrv_system" "Inetprint" "Licenseserver" "Media_clips" "Media_utopia"
-      "Minesweeper" "Mousepoint" "Msmq_ADIntegrated" "Msmq_Core"
-      "Msmq_HTTPSupport" "Msmq_LocalStorage" "Msmq_MQDSService"
-      "Msmq_RoutingSupport" "Msmq_TriggersService" "Msnexplr" "Mswordpad"
-      "Netcis" "Netoc" "OEAccess" "Objectpkg" "Paint" "Pinball" "Pop3Admin"
-      "Pop3Service" "Pop3Srv" "Rec" "Reminst" "Rootautoupdate" "Rstorage" "SCW"
-      "Sakit_web" "Solitaire" "Spider" "TSWebClient" "Templates"
-      "TerminalServer" "UDDIAdmin" "UDDIDatabase" "UDDIWeb" "Vol" "WMAccess"
-      "WMPOCM" "WbemMSI" "Wms" "Wms_admin_asp" "Wms_admin_mmc" "Wms_isapi"
-      "Wms_server" "Zonegames"
-    ]}
-
-    [WindowsFirewall]
-    Profiles = WindowsFirewall.TurnOffFirewall
-
-    [WindowsFirewall.TurnOffFirewall]
-    Mode = 0
-
-    [SetupParams]
-    UserExecute = "${stdenv.lib.concatStringsSep " " afterSetup}"
-
-    [GuiRunOnce]
-    Command0 = "${cygwinRoot}\bin\bash -l ${shExecAfterwards}"
-  '';
-
-in stdenv.mkDerivation {
-  name = "unattended-floppy.img";
-  buildCommand = ''
-    dd if=/dev/zero of="$out" count=1440 bs=1024
-    ${dosfstools}/sbin/mkfs.msdos "$out"
-    ${mtools}/bin/mcopy -i "$out" "${winXpUnattended}" ::winnt.sif
-  '';
-}
diff --git a/pkgs/data/fonts/iosevka/bin.nix b/pkgs/data/fonts/iosevka/bin.nix
index 8b8e4f25fef..b86460a50fd 100644
--- a/pkgs/data/fonts/iosevka/bin.nix
+++ b/pkgs/data/fonts/iosevka/bin.nix
@@ -10,7 +10,7 @@ let
     (builtins.attrNames (builtins.removeAttrs variantHashes [ "iosevka" ]));
 in stdenv.mkDerivation rec {
   pname = "${name}-bin";
-  version = "4.0.3";
+  version = "4.3.0";
 
   src = fetchurl {
     url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/ttc-${name}-${version}.zip";
diff --git a/pkgs/data/fonts/iosevka/variants.nix b/pkgs/data/fonts/iosevka/variants.nix
index 13fad48f900..d86f1ea3cfd 100644
--- a/pkgs/data/fonts/iosevka/variants.nix
+++ b/pkgs/data/fonts/iosevka/variants.nix
@@ -1,24 +1,24 @@
 # This file was autogenerated. DO NOT EDIT!
 {
-  iosevka = "1xc45rs09aj899wz9ghyizq6ddbgxpkqq5bl1jc89hls5laf7qjb";
-  iosevka-aile = "0n52lfn7awc28a4f5yh4my8q4ikzza705kp69chfw9jm2xx79npc";
-  iosevka-curly = "0m51r0bc25khllq8nsfgsldhwfs7kzl8kqasivjlm14mpv5080fn";
-  iosevka-curly-slab = "0ffiz2kg43kc2dxv48sjji33ra3kc6sy8vlard93c601fqjmrjws";
-  iosevka-etoile = "1fj8g7sjp9idjh14iqk4wsz3rdarlmq7amcdsr0dznwyivx8a9wx";
-  iosevka-slab = "0qpfzyi050zca0bwhb460nvcaarij4srhify0rb8sf9ygpzyvnjh";
-  iosevka-sparkle = "00dw894930xdikai8bcaimp0a3720diwi0r7ii52jwl4d70w53dx";
-  iosevka-ss01 = "1c6pfv792cjf5xqjnhjmpvcy36mzr7ymv6h0qwjl94mglw8qrhqs";
-  iosevka-ss02 = "1j05p2gky2z2bm5gajnm8mbbc7w1isg8m66lhd7mc42y6ygs0b2g";
-  iosevka-ss03 = "1kn9khfkk53my4mhpf43gl4ryd4ibw21f7jv553xlrnhm3vn8hxy";
-  iosevka-ss04 = "0bc4mqkxvjyvslrv43rwcmmpfyjiszpi77f6bng60h25ah3kdnqs";
-  iosevka-ss05 = "01m2z1vr5a404kxbzgcnavhsz0jj7hqda61bcvvir6xdqb881rp3";
-  iosevka-ss06 = "1qdlm9ky3rn6m9mgi2idwiy6jd3f0f74j87ms097khvnh6jg2wd7";
-  iosevka-ss07 = "14il043liricgxximsrklx36sfs4qa1a4dw017jaaqarr0gyar49";
-  iosevka-ss08 = "19la0b99msphhfbbw88fwkh0ni875q73976mdskvr5j63715cqx3";
-  iosevka-ss09 = "1m3rh42941r6nk5dq136vs8iaq8vhclcbl955f6zxcgk4aqdmp84";
-  iosevka-ss10 = "1kda7k8jqgpfajq1c6n656wpab7hh9icyiy31l21ilpmj0dzsxx6";
-  iosevka-ss11 = "1ch0c3i3063955ckp1af384ad70m6fiff6x6rxqk76s2vsywmxcf";
-  iosevka-ss12 = "01s16301rm8mr833zlairv19rb5aavb0lidhy9cr2p0d59p96b0h";
-  iosevka-ss13 = "0gnlmfka2hyr1g7a4gw97776aa6j7iz9zjhxliam0gh0iwnz5w41";
-  iosevka-ss14 = "1rar6cs8d4x9p0qnwvlkjcnfh1bhk6v7r05v1l68wlsmvrvriv17";
+  iosevka = "1m4qkn1abj6a9famy5cvnl9xk7690mglpj358xg01fnkmrm8ayzf";
+  iosevka-aile = "0ry949kdnxlahg9a2qn758klb9yvv2wniwadb4hj2xz65zzfyv7i";
+  iosevka-curly = "08ac8xprk3sq8lvgxlxp1z19bx0ndr7ga17kzxlqd4r96qjgab0p";
+  iosevka-curly-slab = "1zmihfk32clp4ajywg9w6pbq3dh068s9d4bxzpgvicsfvbl04irk";
+  iosevka-etoile = "09bk4myxg51m9xfyrljxm4r7gq1361x2yzlik99qp5anpxflf2jf";
+  iosevka-slab = "10x6wwcicwy7rawrg563l5qfbp6vsaim82q3ifd6zqxxc71m33yd";
+  iosevka-sparkle = "1f59j1cs11gabrk3m78bay96jpwz7lfc8z34ns9kx4bd43w0xnkx";
+  iosevka-ss01 = "1kvsgghqc04mdqmbn2c98yqr062lav6aqawbdk1nsqyzihb09wq3";
+  iosevka-ss02 = "06ri8ihinz6bd6swrxf500j1hfl8y9dfm7hjgm3hpdch4fcrhrnz";
+  iosevka-ss03 = "110bwfikcxyr8s6p5l29wiyyfhnfv5p2bjlqrzs46pzpyj9g4730";
+  iosevka-ss04 = "064nq0zphsik097ynv71p7007w0ysld1a0phfxmc0199s8qdahid";
+  iosevka-ss05 = "0c99yp2fxsmx6pwqdlr217rh5khk79fnl8i35a19wf0z3sm4kcna";
+  iosevka-ss06 = "0wfxcryhfwcqb2gd227qyiv1a3vzxig79bkp20cpb215w1hn6hkw";
+  iosevka-ss07 = "141qpwbjy34v088a29fmj7nipvdxwh4l99wwyaq5ycbgj8743k93";
+  iosevka-ss08 = "08yihjqp1fc6l1in9jk8dnlf9fwqahqv76di4xy9vk1dhgi1bd09";
+  iosevka-ss09 = "01ad5dif3hwd2yf3y3sa58acqbps5kyivbxmsdqwpl5cvl2f9i83";
+  iosevka-ss10 = "0aljyqqxw4mijkwzbq8hcpmpxm34ylp9pfcvisca2k7dspg17n2l";
+  iosevka-ss11 = "1cz8ri184mdj6q67rdasbg7fjbhla2vj85lrkhy2avk515av2c2g";
+  iosevka-ss12 = "0hif6sgk7r2d235sghaf9nqn7qr58rgj43ipc0pr5lykaraqi7md";
+  iosevka-ss13 = "1wrzn9m2vvnc2sfh3wqgmr5ci3mpi0fmbzlvkf0j2hspkfy4d8iw";
+  iosevka-ss14 = "1d71qbbd2b6nqdaxns70m3qm9qr03l5ld84fqlfcsmxdsnlhhx3k";
 }
diff --git a/pkgs/data/fonts/jetbrains-mono/default.nix b/pkgs/data/fonts/jetbrains-mono/default.nix
index fc4d76f6ad6..42012e43d4b 100644
--- a/pkgs/data/fonts/jetbrains-mono/default.nix
+++ b/pkgs/data/fonts/jetbrains-mono/default.nix
@@ -1,24 +1,24 @@
 { lib, fetchzip }:
 
 let
-  version = "2.210";
+  version = "2.221";
 in
 fetchzip {
   name = "JetBrainsMono-${version}";
 
   url = "https://github.com/JetBrains/JetBrainsMono/releases/download/v${version}/JetBrainsMono-${version}.zip";
 
-  sha256 = "05csy42qji8xbaq5iap2nmki0d0cbiwiq9kbzjd1cah9qn6gfill";
+  sha256 = "1in3znnj0i0yfwj93ncxi3s1cp9lhgwnv2r14br47rr7vik4zjr6";
 
   postFetch = ''
     mkdir -p $out/share/fonts
     unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
-    unzip -j $downloadedFile \*.woff2 -d $out/share/fonts/woff2
   '';
 
   meta = with lib; {
     description = "A typeface made for developers";
     homepage = "https://jetbrains.com/mono/";
+    changelog = "https://github.com/JetBrains/JetBrainsMono/blob/v${version}/Changelog.md";
     license = licenses.ofl;
     maintainers = [ maintainers.marsam ];
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/meslo-lgs-nf/default.nix b/pkgs/data/fonts/meslo-lgs-nf/default.nix
new file mode 100644
index 00000000000..36ce33cd7d2
--- /dev/null
+++ b/pkgs/data/fonts/meslo-lgs-nf/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "meslo-lgs-nf";
+  version = "2020-03-22";
+
+  src = fetchFromGitHub {
+    owner = "romkatv";
+    repo = "powerlevel10k-media";
+    rev = "32c7d40239c93507277f14522be90b5750f442c9";
+    sha256 = "10hq4whai1rqj495w4n80p0y21am8rihm4rc40xq7241d6dzilrd";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    cp $src/*.ttf $out/share/fonts/truetype
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Meslo Nerd Font patched for Powerlevel10k";
+    homepage = "https://github.com/romkatv/powerlevel10k-media";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ bbigras ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/data/fonts/stix-two/default.nix b/pkgs/data/fonts/stix-two/default.nix
index e6e4009020a..1e32ebbf16a 100644
--- a/pkgs/data/fonts/stix-two/default.nix
+++ b/pkgs/data/fonts/stix-two/default.nix
@@ -1,25 +1,22 @@
-{ stdenv, fetchFromGitHub }:
-
+{ lib, fetchzip }:
 let
-  version = "2.0.2";
-in fetchFromGitHub {
+  version = "2.10";
+in
+fetchzip {
   name = "stix-two-${version}";
 
-  owner = "stipub";
-  repo = "stixfonts";
-  rev = "v${version}";
+  url = "https://github.com/stipub/stixfonts/raw/v${version}/zipfiles/STIX${builtins.replaceStrings [ "." ] [ "_" ] version}-all.zip";
+
+  sha256 = "1xvh5c5asbasfa333mizimvdp209g0lppbwv2p0cg3ixfpxgq4dl";
 
   postFetch = ''
-    tar xf $downloadedFile --strip=1
-    install -m444 -Dt $out/share/fonts/opentype/ OTF/*.otf
-    install -m444 -Dt $out/share/fonts/woff/     WOFF/*.woff
-    install -m444 -Dt $out/share/fonts/woff2/    WOFF2/*.woff2
+    mkdir -p $out/share/fonts/
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
   '';
 
-  sha256 = "1ah8s0cb67yv4ll8zfs01mdh9m5i2lbkrfbmkhi1xdid6pxsk32x";
-
-  meta = with stdenv.lib; {
-    homepage = "http://www.stixfonts.org/";
+  meta = with lib; {
+    homepage = "https://www.stixfonts.org/";
     description = "Fonts for Scientific and Technical Information eXchange";
     license = licenses.ofl;
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/unifont/default.nix b/pkgs/data/fonts/unifont/default.nix
index ce2a92ce48a..3a9f107c4c7 100644
--- a/pkgs/data/fonts/unifont/default.nix
+++ b/pkgs/data/fonts/unifont/default.nix
@@ -4,16 +4,16 @@
 
 stdenv.mkDerivation rec {
   pname = "unifont";
-  version = "13.0.04";
+  version = "13.0.05";
 
   ttf = fetchurl {
     url = "mirror://gnu/unifont/${pname}-${version}/${pname}-${version}.ttf";
-    sha256 = "sha256-p0wSTyXCXuWIw+hDZ4HZPxgdBJ6oOOqOuX6FzZJmwrE=";
+    sha256 = "0ff7zbyqi45q0171rl9ckj6lpfhcj8a9850d8j89m7wbwky32isf";
   };
 
   pcf = fetchurl {
     url = "mirror://gnu/unifont/${pname}-${version}/${pname}-${version}.pcf.gz";
-    sha256 = "sha256-sKY2qshNV3zXfD2BSbfs0qom1gPt7vD5QmVEkACmx18=";
+    sha256 = "16n666p6rs6l4r8grh67gy4ls33qfnbb5xk7cksywzjwdh42js0r";
   };
 
   nativeBuildInputs = [ libfaketime fonttosfnt mkfontscale ];
diff --git a/pkgs/data/fonts/unifont_upper/default.nix b/pkgs/data/fonts/unifont_upper/default.nix
index 2daf66e7510..04480aaeec7 100644
--- a/pkgs/data/fonts/unifont_upper/default.nix
+++ b/pkgs/data/fonts/unifont_upper/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchzip }:
 
 let
-  version = "13.0.04";
+  version = "13.0.05";
 in fetchzip rec {
   name = "unifont_upper-${version}";
 
@@ -9,7 +9,7 @@ in fetchzip rec {
 
   postFetch = "install -Dm644 $downloadedFile $out/share/fonts/truetype/unifont_upper.ttf";
 
-  sha256 = "0bji0crx84nbjf1m1lzql7icrb02zbs3l66dn21pvr9czsry870f";
+  sha256 = "1cpi44fzsiq3yqg38763awgri1ma46421c3v8167bsxzsx7vzlkp";
 
   meta = with lib; {
     description = "Unicode font for glyphs above the Unicode Basic Multilingual Plane";
diff --git a/pkgs/data/icons/kora-icon-theme/default.nix b/pkgs/data/icons/kora-icon-theme/default.nix
new file mode 100644
index 00000000000..cd5f9f75879
--- /dev/null
+++ b/pkgs/data/icons/kora-icon-theme/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchFromGitHub , gtk3, breeze-icons, gnome-icon-theme, hicolor-icon-theme }:
+
+stdenv.mkDerivation rec  {
+  pname = "kora-icon-theme";
+  version = "1.3.4";
+
+  src = fetchFromGitHub  {
+    owner = "bikass";
+    repo = "kora";
+    rev = "v${version}";
+    sha256 = "01s7zhwwbdqgksjvfvn7kqijxzzc7734f707yk8y7anshq0518x3";
+  };
+
+  nativeBuildInputs = [
+    gtk3
+  ];
+
+  propagatedBuildInputs = [
+    breeze-icons
+    gnome-icon-theme
+    hicolor-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    mkdir -p $out/share/icons
+    mv kora* $out/share/icons/
+
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "An SVG icon theme in four variants";
+    homepage = "https://github.com/bikass/kora";
+    license = with licenses; [ gpl3Only ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ bloomvdomino ];
+  };
+}
diff --git a/pkgs/data/icons/luna-icons/default.nix b/pkgs/data/icons/luna-icons/default.nix
index 2cbf1c50632..b0de2ac3b13 100644
--- a/pkgs/data/icons/luna-icons/default.nix
+++ b/pkgs/data/icons/luna-icons/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "luna-icons";
-  version = "0.6";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "darkomarko42";
     repo = pname;
     rev = version;
-    sha256 = "1lm7ws7in8cjjl38c7xw67jr42d717kk5kkfac7rprk0z7pb104l";
+    sha256 = "0mz5cayjgsc109nv7kdkn3gn1n79bl3hb773lrzrr0k2zblxg353";
   };
 
   nativeBuildInputs = [
@@ -35,6 +35,12 @@ stdenv.mkDerivation rec {
     mkdir -p $out/share/icons
     cp -a Luna* $out/share/icons
 
+    # remove files with spaces in the name, otherwise
+    # gtk-update-icon-cache fails with the message "The generated cache
+    # was invalid"
+    # https://github.com/darkomarko42/Luna-Icons/issues/2
+    rm "$out/share/icons/Luna/scalable/apps/yast-checkmedia (copia).svg"
+
     for theme in $out/share/icons/*; do
       gtk-update-icon-cache "$theme"
     done
diff --git a/pkgs/data/icons/papirus-icon-theme/default.nix b/pkgs/data/icons/papirus-icon-theme/default.nix
index 9227ceb4915..0f4d0d1d90c 100644
--- a/pkgs/data/icons/papirus-icon-theme/default.nix
+++ b/pkgs/data/icons/papirus-icon-theme/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "papirus-icon-theme";
-  version = "20200801";
+  version = "20200901";
 
   src = fetchFromGitHub {
     owner = "PapirusDevelopmentTeam";
     repo = pname;
     rev = version;
-    sha256 = "0w9ks8izxv7mkh82fnclfcdf6mif991dsbbnxsqmcbvljrmjval2";
+    sha256 = "00khqbd7jz97q1kd43kkm6yaa40ml36rh04s76sgbm58srs66v3c";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/data/misc/cacert/default.nix b/pkgs/data/misc/cacert/default.nix
index 0545c0e5efa..ad8c3983173 100644
--- a/pkgs/data/misc/cacert/default.nix
+++ b/pkgs/data/misc/cacert/default.nix
@@ -17,7 +17,7 @@ let
     sha256 = "1d4q27j1gss0186a5m8bs5dk786w07ccyq0qi6xmd2zr1a8q16wy";
   };
 
-  version = "3.57";
+  version = "3.60";
   underscoreVersion = builtins.replaceStrings ["."] ["_"] version;
 in
 
@@ -26,7 +26,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://mozilla/security/nss/releases/NSS_${underscoreVersion}_RTM/src/nss-${version}.tar.gz";
-    sha256 = "55a86c01be860381d64bb4e5b94eb198df9b0f098a8af0e58c014df398bdc382";
+    sha256 = "hKvVV1q4dMU65RG9Rh5dCGjRobOE7kB1MVTN0dWQ/j0=";
   };
 
   outputs = [ "out" "unbundled" ];
diff --git a/pkgs/data/misc/hackage/default.nix b/pkgs/data/misc/hackage/default.nix
index 9f21ca1eeb7..351ca123df2 100644
--- a/pkgs/data/misc/hackage/default.nix
+++ b/pkgs/data/misc/hackage/default.nix
@@ -1,6 +1,6 @@
 { fetchurl }:
 
 fetchurl {
-  url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/a82d2463451cfd47772b3fb331b1a0e8386675ef.tar.gz";
-  sha256 = "0l2h2z0982nmw3kq9r6ppwgs7ar4bda9c808mc2nkcyfmcnkdl6w";
+  url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/f20dd1d767313d653d6f0c6dd9a82f92d36ecb4c.tar.gz";
+  sha256 = "1prawfbp6390dlgfvd3hxvgdab7rfkr88j35m5cbk3a4hxghkyj3";
 }
diff --git a/pkgs/data/themes/marwaita-manjaro/default.nix b/pkgs/data/themes/marwaita-manjaro/default.nix
index 6750c011996..27b503b842d 100644
--- a/pkgs/data/themes/marwaita-manjaro/default.nix
+++ b/pkgs/data/themes/marwaita-manjaro/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "marwaita-manjaro";
-  version = "1.6";
+  version = "1.8";
 
   src = fetchFromGitHub {
     owner = "darkomarko42";
     repo = pname;
     rev = version;
-    sha256 = "133b9ri1yhvwrm9fm648mq0xnbr9mccy6yar7d390n4659j09v3s";
+    sha256 = "0zxj20inwdfxhsc7cq6b3ijkxmrhnrwvbmyb1lw4vfjs4p4wrws0";
   };
 
   buildInputs = [
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "Manjaro Style (green version) of Marwaita GTK theme";
     homepage = "https://www.pling.com/p/1351213/";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/data/themes/marwaita/default.nix b/pkgs/data/themes/marwaita/default.nix
index b50eb855a96..c3ff0bb433a 100644
--- a/pkgs/data/themes/marwaita/default.nix
+++ b/pkgs/data/themes/marwaita/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "marwaita";
-  version = "7.7";
+  version = "8.0";
 
   src = fetchFromGitHub {
     owner = "darkomarko42";
     repo = pname;
     rev = version;
-    sha256 = "09r9ggngskazddhcm9c2n0cjc4qs9215vyri4i02cbp1jl82kwvg";
+    sha256 = "0ljigm5z13r0idfkjgy5ysq9pzdj66ql269p5phhp47aagmjcv3s";
   };
 
   buildInputs = [
diff --git a/pkgs/data/themes/sweet/default.nix b/pkgs/data/themes/sweet/default.nix
index 9d3603cbf52..6ba7ae40c68 100644
--- a/pkgs/data/themes/sweet/default.nix
+++ b/pkgs/data/themes/sweet/default.nix
@@ -1,46 +1,46 @@
-{ stdenv, fetchurl, unzip }:
+{ stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
   pname = "sweet";
-  version = "1.10.5";
+  version = "2.0";
 
   srcs = [
     (fetchurl {
-      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet-Ambar-Blue.zip";
-      sha256 = "11040hx8ci4vbnyaj63zj924v0ln7rjm9a28mcqdax60h3dp12lj";
+      url = "https://github.com/EliverLara/Sweet/releases/download/${version}/Sweet-Ambar-Blue.tar.xz";
+      sha256 = "028pk07im7pab8a2vh3bvjm8jg37dpvn4c1mwn6vhb6wcr9v5c75";
     })
     (fetchurl {
-      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet-Ambar.zip";
-      sha256 = "0lvnjmirpwdav8q0bfbhybwkr2h6dilc7lhhj18xd2k57xadjmxr";
+      url = "https://github.com/EliverLara/Sweet/releases/download/${version}/Sweet-Ambar.tar.xz";
+      sha256 = "0zmdmqndj65kr43g3z57blrmv0y856zlfprm6y45zbf4xz3ybkg6";
     })
     (fetchurl {
-      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet-Dark.zip";
-      sha256 = "0a7mh1pgvi8w1ahsmvgnmpdawm30lcjqk4zqvg0lqadsd04dn4h1";
+      url = "https://github.com/EliverLara/Sweet/releases/download/${version}/Sweet-Dark.tar.xz";
+      sha256 = "02sw664fkrfpsygspq8fn4zgk8rxs9rd29nnx6nyvkji68mb51s6";
     })
     (fetchurl {
-      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet-mars.zip";
-      sha256 = "0n2dkl35qrik10wvhvkayyra987p03g56pxhz5kc73cbsl5zd96l";
+      url = "https://github.com/EliverLara/Sweet/releases/download/${version}/Sweet-mars.tar.xz";
+      sha256 = "14rl3il61jyqwiqlpgbh397q3rcs7jcf2pvr2763ar5a9czmy8h6";
     })
     (fetchurl {
-      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet.zip";
-      sha256 = "0wwmc3wj2pjg4kimfkvcsimk3s4s7l7k000vxqi8yjlfs70f273c";
+      url = "https://github.com/EliverLara/Sweet/releases/download/${version}/Sweet.tar.xz";
+      sha256 = "0rza3yxwj256ibqimymjhd6lpjzr7fkhggq0ijdg1wab3q91x66q";
     })
   ];
 
-  nativeBuildInputs = [ unzip ];
-
   sourceRoot = ".";
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/themes/
     cp -a Sweet* $out/share/themes/
     rm $out/share/themes/*/{LICENSE,README*}
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
     description = "Light and dark colorful Gtk3.20+ theme";
     homepage = "https://github.com/EliverLara/Sweet";
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ fuzen ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix b/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix
index 00ea002f746..71eb54ea202 100644
--- a/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-desktop";
-  version = "4.8.0";
+  version = "4.6.4";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "1369iig7w0x45sr9yd4a5xxqrwsfwq90hlnknarhz62h5hpykjwi";
+    sha256 = "08z5hgc6dwdp9fczm75axwh8q9665iz4y2lxp92xp62r3k0v9fvd";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/desktops/cinnamon/cinnamon-menus/default.nix b/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
index 0e84302f6c6..9edc1368707 100644
--- a/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-menus";
-  version = "4.8.1";
+  version = "4.6.1";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "1fsiq8q8b65skxbg1bsishygnw2zg8kr0d09rassqjdimd4yfi1y";
+    sha256 = "1qdaql4mknhzvl2qi1pyw4c820lqb7lg07gblh0wzfk4f7h8hddx";
   };
 
   buildInputs = [
diff --git a/pkgs/desktops/cinnamon/cinnamon-session/default.nix b/pkgs/desktops/cinnamon/cinnamon-session/default.nix
index 02082f64ed3..4e9c09f4d73 100644
--- a/pkgs/desktops/cinnamon/cinnamon-session/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-session/default.nix
@@ -27,13 +27,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-session";
-  version = "4.8.0";
+  version = "4.6.2";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "0sbfd1d4kjiccaq9s36r2cvdcmvd1x2087nkfgl32gwxakqi3g4n";
+    sha256 = "133vpgs0dqr16pvx5wyxhfcargn9wl14z0q99m2pn93hf6zycmsv";
   };
 
   patches = [
diff --git a/pkgs/desktops/cinnamon/cinnamon-translations/default.nix b/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
index 8e29aa9fcc7..142c586d8d6 100644
--- a/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-translations";
-  version = "4.8.0";
+  version = "4.6.2";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "1j3azjwin89z5v6nphx0wsa35p224h2gps50kcq9gwankkfcf3q1";
+    sha256 = "0zaghha62ibhg3rir6mrfy1z3v7p7v83b6glhmj9s51nxd86fyv6";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix b/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
index 1311bea08d4..67d433a8209 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
@@ -25,11 +25,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-calendar";
-  version = "3.38.1";
+  version = "3.38.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "04pmjzwcy1lswkri30rnvac99dff8zajs41as0j1cqrd1058i03j";
+    sha256 = "0SG7NLCLbqYB9du6Q6SxYTpuVJP8Cx4uzJDGZnEakS0=";
   };
 
   patches = [
@@ -38,6 +38,12 @@ stdenv.mkDerivation rec {
       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=";
+    })
   ];
 
   passthru = {
diff --git a/pkgs/desktops/gnome-3/core/gdm/default.nix b/pkgs/desktops/gnome-3/core/gdm/default.nix
index 026e0d2fae6..10130be57da 100644
--- a/pkgs/desktops/gnome-3/core/gdm/default.nix
+++ b/pkgs/desktops/gnome-3/core/gdm/default.nix
@@ -47,13 +47,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "gdm";
-  version = "3.38.2";
+  version = "3.38.2.1";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gdm/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1k2k3rv10y9dppp6ffz6gqi2p6s3g03bxjyy8njvcjyxqdk6d8i5";
+    sha256 = "yliiBdXr/L2rVqEXFriY4Wrl3/Ia7nnQdgRkRGKOxNo=";
   };
 
   mesonFlags = [
diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix
index 302ad2c21aa..2bc825d8149 100644
--- a/pkgs/desktops/gnome-3/default.nix
+++ b/pkgs/desktops/gnome-3/default.nix
@@ -264,7 +264,9 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   gnome-flashback = callPackage ./misc/gnome-flashback { };
 
-  gnome-panel = callPackage ./misc/gnome-panel { };
+  gnome-panel = callPackage ./misc/gnome-panel {
+    autoreconfHook = pkgs.autoreconfHook269;
+  };
 
   gnome-tweaks = callPackage ./misc/gnome-tweaks { };
 
diff --git a/pkgs/desktops/gnome-3/extensions/material-shell/default.nix b/pkgs/desktops/gnome-3/extensions/material-shell/default.nix
index 1b8341a281f..e7931fc4fc0 100644
--- a/pkgs/desktops/gnome-3/extensions/material-shell/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/material-shell/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-material-shell";
-  version = "10";
+  version = "12";
 
   src = fetchFromGitHub {
     owner = "material-shell";
     repo = "material-shell";
     rev = version;
-    sha256 = "18d813n8s7ns8xp75zmlna7a8mi23rn9yqps51xvdd0sdgn72a1c";
+    sha256 = "0ikrh70drwr0pqjcdz7l1ky8xllpnk7myprjd4s61nqkx9j2iz44";
   };
 
   # This package has a Makefile, but it's used for building a zip for
diff --git a/pkgs/desktops/gnome-3/games/iagno/default.nix b/pkgs/desktops/gnome-3/games/iagno/default.nix
index 08d402ead57..9443fc2bb8c 100644
--- a/pkgs/desktops/gnome-3/games/iagno/default.nix
+++ b/pkgs/desktops/gnome-3/games/iagno/default.nix
@@ -26,15 +26,6 @@ stdenv.mkDerivation rec {
     sha256 = "097dw1l92l73xah9l56ka5mi3dvx48ffpiv33ni5i5rqw0ng7fc4";
   };
 
-  patches = [
-    # Fix build with Meson 0.55
-    # https://gitlab.gnome.org/GNOME/iagno/-/issues/16
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/iagno/commit/0100bab269f2102f24a6e41202b931da1b6e8dc5.patch";
-      sha256 = "ZW75s+bV45ivwA+SKUN7ejSvnXYEo/kYQjDVvFBA/sg=";
-    })
-  ];
-
   nativeBuildInputs = [
     meson
     ninja
diff --git a/pkgs/desktops/gnome-3/misc/gnome-tweaks/default.nix b/pkgs/desktops/gnome-3/misc/gnome-tweaks/default.nix
index a042ce134a9..b6a12fca133 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-tweaks/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gnome-tweaks/default.nix
@@ -20,13 +20,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "gnome-tweaks";
-  version = "3.34.0";
+  version = "3.34.1";
   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 = "0l2j42ba7v866iknygamnkiq7igh0fjvq92r93cslvvfnkx2ccq0";
+    sha256 = "19y62dj4n5i6v4zpjllxl51dch6ndy8xs45v5aqmmq9xyfrqk5yq";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/compton-conf/default.nix b/pkgs/desktops/lxqt/compton-conf/default.nix
index b41d766c1ad..38dfd621848 100644
--- a/pkgs/desktops/lxqt/compton-conf/default.nix
+++ b/pkgs/desktops/lxqt/compton-conf/default.nix
@@ -11,13 +11,13 @@
 
 mkDerivation rec {
   pname = "compton-conf";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "1wqnajarkrpmc60jr1zw5w39lvlf9ii4ri9wgyn55hh1rkbzi7py";
+    sha256 = "0gcvyn7aabdz5yj0jzv14hlgjgbm8d9ib5r73i842f0hv4cv9m0q";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/libfm-qt/default.nix b/pkgs/desktops/lxqt/libfm-qt/default.nix
index fc97906ab7d..fb6b759db55 100644
--- a/pkgs/desktops/lxqt/libfm-qt/default.nix
+++ b/pkgs/desktops/lxqt/libfm-qt/default.nix
@@ -16,13 +16,13 @@
 
 mkDerivation rec {
   pname = "libfm-qt";
-  version = "0.15.1";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = "libfm-qt";
     rev = version;
-    sha256 = "1gjxml6c9m3xn094zbr9835sr4749dpxk4nc0ap9lg27qim63gx3";
+    sha256 = "0b52bczqvw4brxv5fszjrl1375yid6xzjm49ns9rx1jw71422w0p";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/liblxqt/default.nix b/pkgs/desktops/lxqt/liblxqt/default.nix
index bd8181d57f6..ee915491f85 100644
--- a/pkgs/desktops/lxqt/liblxqt/default.nix
+++ b/pkgs/desktops/lxqt/liblxqt/default.nix
@@ -15,13 +15,13 @@
 
 mkDerivation rec {
   pname = "liblxqt";
-  version = "0.15.1";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "01vfy7r7h0c5axlwqwsxg3pzdlaicnf2474bcq3jwk12gipvj5sd";
+    sha256 = "1rp26g1ygzzy1cm7md326sv99zjz4y12pa402nlf2vrf2lzbwfmk";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/libqtxdg/default.nix b/pkgs/desktops/lxqt/libqtxdg/default.nix
index f5da7a4b235..f2d00a5869e 100644
--- a/pkgs/desktops/lxqt/libqtxdg/default.nix
+++ b/pkgs/desktops/lxqt/libqtxdg/default.nix
@@ -10,13 +10,13 @@
 
 mkDerivation rec {
   pname = "libqtxdg";
-  version = "3.5.0";
+  version = "3.6.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "00dzs6zc8prc0mxmvq0pmpy1qi8rysg97as7jfd0ndk5jii0nd85";
+    sha256 = "0wiannhaydnbqd8ni3nflx2s4036grxs8aklcb95j88v3cgr2gck";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/libsysstat/default.nix b/pkgs/desktops/lxqt/libsysstat/default.nix
index 642b57fe0d7..6f6e432ad9e 100644
--- a/pkgs/desktops/lxqt/libsysstat/default.nix
+++ b/pkgs/desktops/lxqt/libsysstat/default.nix
@@ -9,13 +9,13 @@
 
 mkDerivation rec {
   pname = "libsysstat";
-  version = "0.4.3";
+  version = "0.4.4";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "1dlshyv7pd7gwl55rd3msppjdpz2pwp5f4da9a9wapg7kiskqahf";
+    sha256 = "1pbshhg8pjkzkka5f2rxfxal7rb4fjccpgj07kxvgcnqlah27ydk";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lximage-qt/default.nix b/pkgs/desktops/lxqt/lximage-qt/default.nix
index 22ce26526ac..014898f5326 100644
--- a/pkgs/desktops/lxqt/lximage-qt/default.nix
+++ b/pkgs/desktops/lxqt/lximage-qt/default.nix
@@ -16,13 +16,13 @@
 
 mkDerivation rec {
   pname = "lximage-qt";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "1pz0ird5vyrz1xycfn2vqh628f2mzwrx0psnp4hqdmj1xk9bjkbp";
+    sha256 = "1z2lvfrw9shpvwxva0vf0rk74nj3mmjgxznsgq8r65645fnj5imb";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-about/default.nix b/pkgs/desktops/lxqt/lxqt-about/default.nix
index 01365129467..0070d31af9a 100644
--- a/pkgs/desktops/lxqt/lxqt-about/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-about/default.nix
@@ -14,13 +14,13 @@
 
 mkDerivation rec {
   pname = "lxqt-about";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "0bgwh9jbvpnsdcij0bfkgzg0pb0ljjalv65q4q0hlha430pmpv3x";
+    sha256 = "0m7gan31byy80k9jqfqxx4drvfx0d9savj4shnrabsb3z3fj9h8h";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-admin/default.nix b/pkgs/desktops/lxqt/lxqt-admin/default.nix
index 21a637bc669..b3b74b92f6a 100644
--- a/pkgs/desktops/lxqt/lxqt-admin/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-admin/default.nix
@@ -15,13 +15,13 @@
 
 mkDerivation rec {
   pname = "lxqt-admin";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "16fbnlvla8lq6rkv5gpmkw2jj9h1wzd3jcf8sjrbns6ygyfdxx3a";
+    sha256 = "0mi119ji0260idi14980nhmylx3krnfmkj9r81nmbbrg02h158nz";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-archiver/default.nix b/pkgs/desktops/lxqt/lxqt-archiver/default.nix
index 93e5ffec2a0..8c5c57045d9 100644
--- a/pkgs/desktops/lxqt/lxqt-archiver/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-archiver/default.nix
@@ -14,13 +14,13 @@
 
 mkDerivation rec {
   pname = "lxqt-archiver";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = "lxqt-archiver";
     rev = version;
-    sha256 = "1cip2dbvxbdlx1axz5sn4mwigwvfxb1q14byn09crv71adyfprw5";
+    sha256 = "0f4nj598w6qhcrhbab15cpfmrda02jcflxhb15vyv7gnplalkya6";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-build-tools/default.nix b/pkgs/desktops/lxqt/lxqt-build-tools/default.nix
index 92ce3c2fe50..cd39096678f 100644
--- a/pkgs/desktops/lxqt/lxqt-build-tools/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-build-tools/default.nix
@@ -11,13 +11,13 @@
 
 mkDerivation rec {
   pname = "lxqt-build-tools";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "18l1w9lyf3nyj05wjhaj4lclak6qydlhw9bqi6kxgr1bv8k709lf";
+    sha256 = "1wf6mhcfgk64isy7bk018szlm18xa3hjjnmhpcy2whnnjfq0jal6";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-config/default.nix b/pkgs/desktops/lxqt/lxqt-config/default.nix
index 677b90b25c5..c50b258243e 100644
--- a/pkgs/desktops/lxqt/lxqt-config/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-config/default.nix
@@ -18,13 +18,13 @@
 
 mkDerivation rec {
   pname = "lxqt-config";
-  version = "0.15.0";
+  version = "0.16.1";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "1nqkc716rl4c0rad4vqlqadm6lljrhwpdflaa5k9lrdiingr0s7s";
+    sha256 = "1ppkkz7rg5ddlyk1ikh2s3g7nbb0wnpl0lldg9j68l76d61sfm8z";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-globalkeys/default.nix b/pkgs/desktops/lxqt/lxqt-globalkeys/default.nix
index 59e2096dea4..62bb75e7876 100644
--- a/pkgs/desktops/lxqt/lxqt-globalkeys/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-globalkeys/default.nix
@@ -15,13 +15,13 @@
 
 mkDerivation rec {
   pname = "lxqt-globalkeys";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "09vib713zbmnwicijycl3n9q35l45lrcw129lf9z95s3ch81x1hm";
+    sha256 = "00n02mci0wry9l2prc98liiamshacnj8pvmra5wkmygm581q2r19";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-notificationd/default.nix b/pkgs/desktops/lxqt/lxqt-notificationd/default.nix
index 43f9bf31932..520c0322eaa 100644
--- a/pkgs/desktops/lxqt/lxqt-notificationd/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-notificationd/default.nix
@@ -15,13 +15,13 @@
 
 mkDerivation rec {
   pname = "lxqt-notificationd";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "0vqk1rc4fn2s0ls6sl03vzsb16xczrxab4rzjim3azm4pwsxjd1k";
+    sha256 = "0ahvjf5102a0pz5bfznjvkg55xix6k9bw381gzv6jqw5553snanc";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-openssh-askpass/default.nix b/pkgs/desktops/lxqt/lxqt-openssh-askpass/default.nix
index a164571800a..cdfb51a472d 100644
--- a/pkgs/desktops/lxqt/lxqt-openssh-askpass/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-openssh-askpass/default.nix
@@ -15,13 +15,13 @@
 
 mkDerivation rec {
   pname = "lxqt-openssh-askpass";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "056bj3ssp4vqapzqg3da3m95vi92043j7mv70lmpznxdwyjwgxc3";
+    sha256 = "163mshrwfwp31bjis66l50krsyp184idw9gyp7pdh047psca5129";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-panel/default.nix b/pkgs/desktops/lxqt/lxqt-panel/default.nix
index a0bdd9bfae6..d333bae3d30 100644
--- a/pkgs/desktops/lxqt/lxqt-panel/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-panel/default.nix
@@ -30,13 +30,13 @@
 
 mkDerivation rec {
   pname = "lxqt-panel";
-  version = "0.15.1";
+  version = "0.16.1";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "0f3sjzkria61nz342daxps2w57wnx6laq9iww8hha7rbi24yw2sd";
+    sha256 = "1mm23fys5npm5fi47y3h2mzvlhlcaz7k1p4wwmc012f0hqcrvqik";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-policykit/default.nix b/pkgs/desktops/lxqt/lxqt-policykit/default.nix
index 7575c805a31..5b708d6c036 100644
--- a/pkgs/desktops/lxqt/lxqt-policykit/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-policykit/default.nix
@@ -18,13 +18,13 @@
 
 mkDerivation rec {
   pname = "lxqt-policykit";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "001zgjxgvzp7clfqr46sx8m3a7v38xxgxjqrpz01lxx18zik3d9h";
+    sha256 = "05qi550cjyjzhlma4zxnp1pn8i5cgak2k2mwwh2a5gpicp5axavn";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix b/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix
index 2b48a2a04b5..22eb060dfd5 100644
--- a/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix
@@ -12,18 +12,19 @@
 , kidletime
 , liblxqt
 , libqtxdg
+, lxqt-globalkeys
 , lxqtUpdateScript
 }:
 
 mkDerivation rec {
   pname = "lxqt-powermanagement";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "0gqxy4d05gibsvq27qdfwp5v19310l0ln4bvwaan6ailbyyya90f";
+    sha256 = "1pf3z8hymddk1cm5j5lqgah967xsdl37j66gz5bs3dw7871gbdhy";
   };
 
   nativeBuildInputs = [
@@ -41,6 +42,7 @@ mkDerivation rec {
     kidletime
     liblxqt
     libqtxdg
+    lxqt-globalkeys
   ];
 
   passthru.updateScript = lxqtUpdateScript { inherit pname version src; };
diff --git a/pkgs/desktops/lxqt/lxqt-qtplugin/default.nix b/pkgs/desktops/lxqt/lxqt-qtplugin/default.nix
index 7bdd628f458..5fbf9f8f568 100644
--- a/pkgs/desktops/lxqt/lxqt-qtplugin/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-qtplugin/default.nix
@@ -15,13 +15,13 @@
 
 mkDerivation rec {
   pname = "lxqt-qtplugin";
-  version = "0.15.1";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "0if01bdhz8ph4k1mwvjjjw0fw6mxzprgz17ap23xbsdr009hxdf0";
+    sha256 = "14k5icxjkl5znp59y44791brsmwy54jkwr4vn3kg4ggqjdp3vbh9";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-runner/default.nix b/pkgs/desktops/lxqt/lxqt-runner/default.nix
index 8a27ef41610..d99692847f6 100644
--- a/pkgs/desktops/lxqt/lxqt-runner/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-runner/default.nix
@@ -20,13 +20,13 @@
 
 mkDerivation rec {
   pname = "lxqt-runner";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "1x6s4k27cvj2k51hwpcp3l686c2am504ckry4fm76h0mlnkffjm5";
+    sha256 = "0bmx5y4l443j8vrzw8967kw5i150braq0pfj8xk0nyz6zz62rrf1";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-session/default.nix b/pkgs/desktops/lxqt/lxqt-session/default.nix
index 2e513b23988..bb212cf15a7 100644
--- a/pkgs/desktops/lxqt/lxqt-session/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-session/default.nix
@@ -18,13 +18,13 @@
 
 mkDerivation rec {
   pname = "lxqt-session";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "0kbk13dpmr75yd905n30k51cl7srrxz31ma4kacx450qgr5rwawn";
+    sha256 = "1lmj0cx4crdjl2qih3scm2gvsx3qna0nb6mjjrcx0f2k7h744pik";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-sudo/default.nix b/pkgs/desktops/lxqt/lxqt-sudo/default.nix
index 5f8fbcd2a6a..a6fef7479ab 100644
--- a/pkgs/desktops/lxqt/lxqt-sudo/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-sudo/default.nix
@@ -16,13 +16,13 @@
 
 mkDerivation rec {
   pname = "lxqt-sudo";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "1j8pxqxb2c10hrfq34nfx75pc0cz6044j4w458nnxbgvl5b8cdcb";
+    sha256 = "0al64v12ddi6bgrr2z86jh21c02wg5l0mxjcmk9xlsvdx0d94cdx";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/lxqt-themes/default.nix b/pkgs/desktops/lxqt/lxqt-themes/default.nix
index 4613017b8a9..5ab100bd101 100644
--- a/pkgs/desktops/lxqt/lxqt-themes/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-themes/default.nix
@@ -8,13 +8,13 @@
 
 mkDerivation rec {
   pname = "lxqt-themes";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "1magzckhgrac2b5jm83hj3s8x4hyfnbh2v86lfa4c36whnfvsz29";
+    sha256 = "12pbba7a2rk0kjn3hl2lvn90di58w0s5psbq51kz39ah3rlp9dzz";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/obconf-qt/default.nix b/pkgs/desktops/lxqt/obconf-qt/default.nix
index 91baba60d8a..3b9891053ff 100644
--- a/pkgs/desktops/lxqt/obconf-qt/default.nix
+++ b/pkgs/desktops/lxqt/obconf-qt/default.nix
@@ -15,13 +15,13 @@
 
 mkDerivation rec {
   pname = "obconf-qt";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "13bah70k78kscrr01z7dwdzwhay8mz0f7gfsg2a6w113mgqkn7ib";
+    sha256 = "0kk5scp1j0hqi27q3yl9cg73ybxzm22nj96pa8adhdn4shg9bpac";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/pavucontrol-qt/default.nix b/pkgs/desktops/lxqt/pavucontrol-qt/default.nix
index 24343d42374..dafb8947918 100644
--- a/pkgs/desktops/lxqt/pavucontrol-qt/default.nix
+++ b/pkgs/desktops/lxqt/pavucontrol-qt/default.nix
@@ -13,13 +13,13 @@
 
 mkDerivation rec {
   pname = "pavucontrol-qt";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "0ppm79c6pkz2hvs1rri55d3s46j6r0vhiv634wzap9qshjb1j367";
+    sha256 = "1d3kp2y3crrmbqak4mn9d6cfbhi5l5xhchhjh44ng8gpww22k5h0";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/pcmanfm-qt/default.nix b/pkgs/desktops/lxqt/pcmanfm-qt/default.nix
index 599dd67828c..9a6085da02c 100644
--- a/pkgs/desktops/lxqt/pcmanfm-qt/default.nix
+++ b/pkgs/desktops/lxqt/pcmanfm-qt/default.nix
@@ -15,13 +15,13 @@
 
 mkDerivation rec {
   pname = "pcmanfm-qt";
-  version = "0.15.1";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "12rzcv5n4s299c8787islkn4xcjb9bbrj12mxcd5ii91jq39aii4";
+    sha256 = "09mlv5qkwzpfz5l41pcz0k01kgsikzkghhfkl84hwyjdm4i2vapj";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/qps/default.nix b/pkgs/desktops/lxqt/qps/default.nix
index 7ef9db40f7c..fea3db315cf 100644
--- a/pkgs/desktops/lxqt/qps/default.nix
+++ b/pkgs/desktops/lxqt/qps/default.nix
@@ -14,13 +14,13 @@
 
 mkDerivation rec {
   pname = "qps";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "0jg7sfhdm5xsahzcw8hc2vpp5p3sqzdqwp4my65nj85i7wzgxmva";
+    sha256 = "0gfw7iz7jzyfl9hiq3aivbgkkl61fz319cfg57fgn2kldlcljhwa";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/qterminal/default.nix b/pkgs/desktops/lxqt/qterminal/default.nix
index c7bcf6dad3b..47a621d2198 100644
--- a/pkgs/desktops/lxqt/qterminal/default.nix
+++ b/pkgs/desktops/lxqt/qterminal/default.nix
@@ -12,13 +12,13 @@
 
 mkDerivation rec {
   pname = "qterminal";
-  version = "0.15.0";
+  version = "0.16.1";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "1vna0fvdasrdx7l5zxaaxi1v9fy34g2qblgkdhpczxivnmmxm5a3";
+    sha256 = "0l1jhkyx7ihv3nvqm1gfvzhrhl4l8yvqxly0c9zgl6mzrd39cj3d";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/qtermwidget/default.nix b/pkgs/desktops/lxqt/qtermwidget/default.nix
index fc3fb4a5db0..2517b7a4447 100644
--- a/pkgs/desktops/lxqt/qtermwidget/default.nix
+++ b/pkgs/desktops/lxqt/qtermwidget/default.nix
@@ -10,13 +10,13 @@
 
 mkDerivation rec {
   pname = "qtermwidget";
-  version = "0.15.0";
+  version = "0.16.1";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "07wvcc650998yav9hr4hpm842j0iqdvls3mn9n2n4v8xvm7cii2m";
+    sha256 = "0kpg4b60h6dads8ncwlk0zj1c8y7xpb0kz28j0v9fqjbmxja7x6w";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lxqt/screengrab/default.nix b/pkgs/desktops/lxqt/screengrab/default.nix
index 6a2e14fa50d..cac2ef27d72 100644
--- a/pkgs/desktops/lxqt/screengrab/default.nix
+++ b/pkgs/desktops/lxqt/screengrab/default.nix
@@ -16,13 +16,13 @@
 
 mkDerivation rec {
   pname = "screengrab";
-  version = "2.0.1";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "lxqt";
     repo = pname;
     rev = version;
-    sha256 = "07wm9q0nkrvmyb12kvh0709qrwizlxgy6i5j2czhb4giljrpr4x6";
+    sha256 = "0jy2izgl3jg6mnykpw7ji1fjv7dsivdfi6k6i6glrpa0z1p51gic";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/plasma-5/bluedevil.nix b/pkgs/desktops/plasma-5/bluedevil.nix
index b5ff3f5dd05..7500dda7e3f 100644
--- a/pkgs/desktops/plasma-5/bluedevil.nix
+++ b/pkgs/desktops/plasma-5/bluedevil.nix
@@ -1,14 +1,17 @@
 {
-  mkDerivation, extra-cmake-modules, shared-mime-info,
-  bluez-qt, kcoreaddons, kdbusaddons, kded, ki18n, kiconthemes, kio,
-  knotifications, kwidgetsaddons, kwindowsystem, plasma-framework, qtdeclarative
+  mkDerivation, lib, extra-cmake-modules, shared-mime-info,
+  qtbase, qtdeclarative, bluez-qt,
+  kcoreaddons, kdbusaddons, kded, ki18n, kiconthemes, kio, knotifications,
+  kwidgetsaddons, kwindowsystem, plasma-framework
 }:
 
 mkDerivation {
   name = "bluedevil";
   nativeBuildInputs = [ extra-cmake-modules shared-mime-info ];
   buildInputs = [
-    bluez-qt ki18n kio kwindowsystem plasma-framework qtdeclarative kcoreaddons
-    kdbusaddons kded kiconthemes knotifications kwidgetsaddons
+    qtbase qtdeclarative bluez-qt
+    ki18n kio kwindowsystem plasma-framework kcoreaddons kdbusaddons kded
+    kiconthemes knotifications kwidgetsaddons
   ];
+  meta.broken = lib.versionOlder qtbase.version "5.15.0";
 }
diff --git a/pkgs/desktops/plasma-5/default.nix b/pkgs/desktops/plasma-5/default.nix
index 39299d8c83c..014f794b5e8 100644
--- a/pkgs/desktops/plasma-5/default.nix
+++ b/pkgs/desktops/plasma-5/default.nix
@@ -118,6 +118,7 @@ let
       ksysguard = callPackage ./ksysguard.nix {};
       kwallet-pam = callPackage ./kwallet-pam.nix {};
       kwayland-integration = callPackage ./kwayland-integration.nix {};
+      kwayland-server = callPackage ./kwayland-server {};
       kwin = callPackage ./kwin {};
       kwrited = callPackage ./kwrited.nix {};
       libkscreen = callPackage ./libkscreen {};
@@ -126,6 +127,7 @@ let
       oxygen = callPackage ./oxygen.nix {};
       plasma-browser-integration = callPackage ./plasma-browser-integration.nix {};
       plasma-desktop = callPackage ./plasma-desktop {};
+      plasma-disks = callPackage ./plasma-disks.nix {};
       plasma-integration = callPackage ./plasma-integration {};
       plasma-nm = callPackage ./plasma-nm {};
       plasma-pa = callPackage ./plasma-pa.nix { inherit gconf; };
@@ -137,7 +139,6 @@ let
       powerdevil = callPackage ./powerdevil.nix {};
       sddm-kcm = callPackage ./sddm-kcm.nix {};
       systemsettings = callPackage ./systemsettings.nix {};
-      user-manager = callPackage ./user-manager.nix {};
       xdg-desktop-portal-kde = callPackage ./xdg-desktop-portal-kde.nix {};
 
       thirdParty = let inherit (libsForQt5) callPackage; in {
diff --git a/pkgs/desktops/plasma-5/discover.nix b/pkgs/desktops/plasma-5/discover.nix
index ccfeaa4f63e..37632ab2f76 100644
--- a/pkgs/desktops/plasma-5/discover.nix
+++ b/pkgs/desktops/plasma-5/discover.nix
@@ -1,14 +1,15 @@
 {
-  mkDerivation,
+  mkDerivation, lib,
   extra-cmake-modules, gettext, kdoctools, python,
   appstream-qt, discount, flatpak, fwupd, ostree, packagekit-qt, pcre, util-linux,
-  qtquickcontrols2,
+  qtbase, qtquickcontrols2,
   karchive, kconfig, kcrash, kdbusaddons, kdeclarative, kio, kirigami2, kitemmodels,
   knewstuff, kwindowsystem, kxmlgui, plasma-framework
 }:
 
 mkDerivation {
   name = "discover";
+  meta.broken = lib.versionOlder qtbase.version "5.15.0";
   nativeBuildInputs = [ extra-cmake-modules gettext kdoctools python ];
   buildInputs = [
     # discount is needed for libmarkdown
diff --git a/pkgs/desktops/plasma-5/fetch.sh b/pkgs/desktops/plasma-5/fetch.sh
index abb5659526f..2087db493cf 100644
--- a/pkgs/desktops/plasma-5/fetch.sh
+++ b/pkgs/desktops/plasma-5/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/plasma/5.18.5/ )
+WGET_ARGS=( https://download.kde.org/stable/plasma/5.20.4/ -A '*.tar.xz' )
diff --git a/pkgs/desktops/plasma-5/kactivitymanagerd.nix b/pkgs/desktops/plasma-5/kactivitymanagerd.nix
index d2870c27e65..5c856b9d39c 100644
--- a/pkgs/desktops/plasma-5/kactivitymanagerd.nix
+++ b/pkgs/desktops/plasma-5/kactivitymanagerd.nix
@@ -1,12 +1,13 @@
 {
-  mkDerivation,
+  mkDerivation, lib,
   extra-cmake-modules,
   boost, kconfig, kcoreaddons, kdbusaddons, ki18n, kio, kglobalaccel,
-  kwindowsystem, kxmlgui, kcrash
+  kwindowsystem, kxmlgui, kcrash, qtbase
 }:
 
 mkDerivation {
   name = "kactivitymanagerd";
+  meta.broken = lib.versionOlder qtbase.version "5.15.0";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     boost kconfig kcoreaddons kdbusaddons kglobalaccel ki18n kio kwindowsystem
diff --git a/pkgs/desktops/plasma-5/kde-gtk-config/default.nix b/pkgs/desktops/plasma-5/kde-gtk-config/default.nix
index c1ed6dbd6c6..798f8d807af 100644
--- a/pkgs/desktops/plasma-5/kde-gtk-config/default.nix
+++ b/pkgs/desktops/plasma-5/kde-gtk-config/default.nix
@@ -2,7 +2,7 @@
   mkDerivation,
   extra-cmake-modules, wrapGAppsHook,
   glib, gtk2, gtk3, karchive, kcmutils, kconfigwidgets, ki18n, kiconthemes, kio,
-  knewstuff, gsettings-desktop-schemas, xsettingsd
+  knewstuff, gsettings-desktop-schemas, xsettingsd, kdecoration, sass
 }:
 
 mkDerivation {
@@ -11,7 +11,7 @@ mkDerivation {
   dontWrapGApps = true;  # There is nothing to wrap
   buildInputs = [
     ki18n kio glib gtk2 gtk3 karchive kcmutils kconfigwidgets kiconthemes
-    knewstuff gsettings-desktop-schemas xsettingsd
+    knewstuff gsettings-desktop-schemas xsettingsd kdecoration sass
   ];
   cmakeFlags = [
     "-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include"
diff --git a/pkgs/desktops/plasma-5/kdecoration.nix b/pkgs/desktops/plasma-5/kdecoration.nix
index 569da3c7034..9a09ce30f4c 100644
--- a/pkgs/desktops/plasma-5/kdecoration.nix
+++ b/pkgs/desktops/plasma-5/kdecoration.nix
@@ -1,8 +1,9 @@
-{ mkDerivation, extra-cmake-modules, qtbase, ki18n }:
+{ mkDerivation, lib, extra-cmake-modules, qtbase, ki18n }:
 
 mkDerivation {
   name = "kdecoration";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ qtbase ki18n ];
   outputs = [ "out" "dev" ];
+  meta.broken = lib.versionOlder qtbase.version "5.15.0";
 }
diff --git a/pkgs/desktops/plasma-5/kgamma5.nix b/pkgs/desktops/plasma-5/kgamma5.nix
index ccbf3820b90..e7cc42e77cd 100644
--- a/pkgs/desktops/plasma-5/kgamma5.nix
+++ b/pkgs/desktops/plasma-5/kgamma5.nix
@@ -1,11 +1,12 @@
 {
-  mkDerivation,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
-  kconfig, kconfigwidgets, ki18n, qtx11extras, libXxf86vm
+  kconfig, kconfigwidgets, ki18n, qtbase, qtx11extras, libXxf86vm
 }:
 
 mkDerivation {
   name = "kgamma5";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [ kconfig kconfigwidgets ki18n qtx11extras libXxf86vm ];
+  meta.broken = lib.versionOlder qtbase.version "5.15";
 }
diff --git a/pkgs/desktops/plasma-5/kinfocenter.nix b/pkgs/desktops/plasma-5/kinfocenter.nix
index cf353af5891..c8213482d79 100644
--- a/pkgs/desktops/plasma-5/kinfocenter.nix
+++ b/pkgs/desktops/plasma-5/kinfocenter.nix
@@ -1,6 +1,7 @@
 {
-  mkDerivation,
+  mkDerivation, lib,
   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,
@@ -9,6 +10,7 @@
 
 mkDerivation {
   name = "kinfocenter";
+  meta.broken = lib.versionOlder qtbase.version "5.15.0";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kcmutils kcompletion kconfig kconfigwidgets kcoreaddons kdbusaddons
diff --git a/pkgs/desktops/plasma-5/kscreenlocker.nix b/pkgs/desktops/plasma-5/kscreenlocker.nix
index e748121132c..ace14b385e6 100644
--- a/pkgs/desktops/plasma-5/kscreenlocker.nix
+++ b/pkgs/desktops/plasma-5/kscreenlocker.nix
@@ -1,13 +1,14 @@
 {
-  mkDerivation,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
   kcmutils, kcrash, kdeclarative, kdelibs4support, kglobalaccel, kidletime,
-  kwayland, libXcursor, pam, plasma-framework, qtdeclarative, qtx11extras,
+  kwayland, libXcursor, pam, plasma-framework, qtbase, qtdeclarative, qtx11extras,
   wayland,
 }:
 
 mkDerivation {
   name = "kscreenlocker";
+  meta.broken = lib.versionOlder qtbase.version "5.15.0";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kcmutils kcrash kdeclarative kdelibs4support kglobalaccel kidletime kwayland
diff --git a/pkgs/desktops/plasma-5/ksshaskpass.nix b/pkgs/desktops/plasma-5/ksshaskpass.nix
index 39e260f6c70..c4dabd71343 100644
--- a/pkgs/desktops/plasma-5/ksshaskpass.nix
+++ b/pkgs/desktops/plasma-5/ksshaskpass.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
   kcoreaddons, ki18n, kwallet, kwidgetsaddons, qtbase,
 }:
@@ -8,4 +8,5 @@ mkDerivation {
   name = "ksshaskpass";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [ kcoreaddons ki18n kwallet kwidgetsaddons qtbase ];
+  meta.broken = lib.versionOlder qtbase.version "5.15.0";
 }
diff --git a/pkgs/desktops/plasma-5/ksysguard.nix b/pkgs/desktops/plasma-5/ksysguard.nix
index 72793fdf083..0581b8bde74 100644
--- a/pkgs/desktops/plasma-5/ksysguard.nix
+++ b/pkgs/desktops/plasma-5/ksysguard.nix
@@ -1,13 +1,14 @@
 {
-  mkDerivation,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
   libcap, libpcap, lm_sensors,
   kconfig, kcoreaddons, kdelibs4support, ki18n, kiconthemes, kitemviews,
-  knewstuff, libksysguard
+  knewstuff, libksysguard, qtbase
 }:
 
 mkDerivation {
   name = "ksysguard";
+  meta.broken = lib.versionOlder qtbase.version "5.15.0";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kconfig kcoreaddons kitemviews knewstuff kiconthemes libksysguard
diff --git a/pkgs/desktops/plasma-5/kwayland-integration.nix b/pkgs/desktops/plasma-5/kwayland-integration.nix
index 667d3ead176..2e923094dc5 100644
--- a/pkgs/desktops/plasma-5/kwayland-integration.nix
+++ b/pkgs/desktops/plasma-5/kwayland-integration.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation,
+  mkDerivation, lib,
   extra-cmake-modules,
   kguiaddons, kidletime, kwayland, kwindowsystem, qtbase,
 }:
@@ -8,4 +8,5 @@ mkDerivation {
   name = "kwayland-integration";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ kguiaddons kidletime kwindowsystem kwayland qtbase ];
+  meta.broken = lib.versionOlder qtbase.version "5.15.0";
 }
diff --git a/pkgs/desktops/plasma-5/kwayland-server/0001-Use-KDE_INSTALL_TARGETS_DEFAULT_ARGS-when-installing.patch b/pkgs/desktops/plasma-5/kwayland-server/0001-Use-KDE_INSTALL_TARGETS_DEFAULT_ARGS-when-installing.patch
new file mode 100644
index 00000000000..771e093bb9e
--- /dev/null
+++ b/pkgs/desktops/plasma-5/kwayland-server/0001-Use-KDE_INSTALL_TARGETS_DEFAULT_ARGS-when-installing.patch
@@ -0,0 +1,25 @@
+From 80bca7370d4b8bafcf18abcda30f02e190f419a4 Mon Sep 17 00:00:00 2001
+From: Tom Hall <tahall256@protonmail.ch>
+Date: Sat, 29 Aug 2020 19:14:30 +0100
+Subject: [PATCH] Use KDE_INSTALL_TARGETS_DEFAULT_ARGS when installing targets
+
+---
+ src/server/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/server/CMakeLists.txt b/src/server/CMakeLists.txt
+index 0f99682..35e3601 100644
+--- a/src/server/CMakeLists.txt
++++ b/src/server/CMakeLists.txt
+@@ -356,7 +356,7 @@ set_target_properties(KWaylandServer PROPERTIES VERSION   ${KWAYLANDSERVER_VERSI
+                                                 SOVERSION ${KWAYLANDSERVER_SOVERSION}
+ )
+ 
+-install(TARGETS KWaylandServer EXPORT KWaylandServerTargets ${KF5_INSTALL_TARGETS_DEFAULT_ARGS})
++install(TARGETS KWaylandServer EXPORT KWaylandServerTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
+ 
+ set(SERVER_LIB_HEADERS
+   ${CMAKE_CURRENT_BINARY_DIR}/KWaylandServer/kwaylandserver_export.h
+-- 
+2.26.2
+
diff --git a/pkgs/desktops/plasma-5/kwayland-server/default.nix b/pkgs/desktops/plasma-5/kwayland-server/default.nix
new file mode 100644
index 00000000000..6d2a3fabff2
--- /dev/null
+++ b/pkgs/desktops/plasma-5/kwayland-server/default.nix
@@ -0,0 +1,19 @@
+{
+  mkDerivation, lib, cmake,
+  extra-cmake-modules, kdoctools,
+  kwayland, plasma-wayland-protocols,
+  wayland, wayland-protocols, qtbase
+}:
+
+mkDerivation {
+  name = "kwayland-server";
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules #kdoctools
+  ];
+  buildInputs = [
+    kwayland plasma-wayland-protocols wayland wayland-protocols
+  ];
+  patches = [ ./0001-Use-KDE_INSTALL_TARGETS_DEFAULT_ARGS-when-installing.patch ];
+  meta.broken = lib.versionOlder qtbase.version "5.15.0";
+}
diff --git a/pkgs/desktops/plasma-5/kwin/default.nix b/pkgs/desktops/plasma-5/kwin/default.nix
index e2fb0877ec8..f0b07fba736 100644
--- a/pkgs/desktops/plasma-5/kwin/default.nix
+++ b/pkgs/desktops/plasma-5/kwin/default.nix
@@ -11,7 +11,7 @@
   breeze-qt5, kactivities, kcompletion, kcmutils, kconfig, kconfigwidgets,
   kcoreaddons, kcrash, kdeclarative, kdecoration, kglobalaccel, ki18n,
   kiconthemes, kidletime, kinit, kio, knewstuff, knotifications, kpackage,
-  kscreenlocker, kservice, kwayland, kwidgetsaddons, kwindowsystem, kxmlgui,
+  kscreenlocker, kservice, kwayland, kwayland-server, kwidgetsaddons, kwindowsystem, kxmlgui,
   plasma-framework, libcap, libdrm, mesa
 }:
 
@@ -30,18 +30,13 @@ mkDerivation {
     breeze-qt5 kactivities kcmutils kcompletion kconfig kconfigwidgets
     kcoreaddons kcrash kdeclarative kdecoration kglobalaccel ki18n kiconthemes
     kidletime kinit kio knewstuff knotifications kpackage kscreenlocker kservice
-    kwayland kwidgetsaddons kwindowsystem kxmlgui plasma-framework
+    kwayland kwayland-server kwidgetsaddons kwindowsystem kxmlgui plasma-framework
     libcap libdrm mesa
   ];
-  outputs = [ "bin" "dev" "out" ];
+  outputs = [ "dev" "out" ];
   patches = [
     ./0001-follow-symlinks.patch
     ./0002-xwayland.patch
-    (fetchpatch { # included in >= 5.18.6
-      name = "EGL_TEXTURE_Y_XUXV_WL.diff";
-      url = "https://github.com/KDE/kwin/commit/2c76cc478.diff";
-      sha256 = "1ywaky05h5j1x758q3yhp3ap45ispffghyxynqz5lybl5n6yyxhy";
-    })
   ];
   CXXFLAGS = [
     ''-DNIXPKGS_XWAYLAND=\"${lib.getBin xwayland}/bin/Xwayland\"''
diff --git a/pkgs/desktops/plasma-5/kwrited.nix b/pkgs/desktops/plasma-5/kwrited.nix
index f6f6187e946..e6ee4829bcb 100644
--- a/pkgs/desktops/plasma-5/kwrited.nix
+++ b/pkgs/desktops/plasma-5/kwrited.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation,
+  mkDerivation, lib,
   extra-cmake-modules,
   kcoreaddons, kdbusaddons, ki18n, knotifications, kpty, qtbase,
 }:
@@ -8,4 +8,5 @@ mkDerivation {
   name = "kwrited";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ kcoreaddons kdbusaddons ki18n knotifications kpty qtbase ];
+  meta.broken = lib.versionOlder qtbase.version "5.15.0";
 }
diff --git a/pkgs/desktops/plasma-5/libkscreen/default.nix b/pkgs/desktops/plasma-5/libkscreen/default.nix
index db952944eca..08a9e6f4f24 100644
--- a/pkgs/desktops/plasma-5/libkscreen/default.nix
+++ b/pkgs/desktops/plasma-5/libkscreen/default.nix
@@ -7,7 +7,7 @@
 mkDerivation {
   name = "libkscreen";
   meta = {
-    broken = builtins.compareVersions qtbase.version "5.12.0" < 0;
+    broken = lib.versionOlder qtbase.version "5.15.0";
   };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ kwayland libXrandr qtx11extras ];
diff --git a/pkgs/desktops/plasma-5/libksysguard/default.nix b/pkgs/desktops/plasma-5/libksysguard/default.nix
index 96d113e11fb..8178d407950 100644
--- a/pkgs/desktops/plasma-5/libksysguard/default.nix
+++ b/pkgs/desktops/plasma-5/libksysguard/default.nix
@@ -1,13 +1,14 @@
 {
-  mkDerivation,
+  mkDerivation, lib,
   extra-cmake-modules,
   kauth, kcompletion, kconfig, kconfigwidgets, kcoreaddons, ki18n, kiconthemes,
-  kservice, kwidgetsaddons, kwindowsystem, plasma-framework, qtscript, qtwebengine,
-  qtx11extras
+  knewstuff, kservice, kwidgetsaddons, kwindowsystem, plasma-framework,
+  qtbase, qtscript, qtwebengine, qtx11extras
 }:
 
 mkDerivation {
   name = "libksysguard";
+  meta.broken = lib.versionOlder qtbase.version "5.14.0";
   patches = [
     ./0001-qdiriterator-follow-symlinks.patch
   ];
@@ -15,7 +16,7 @@ mkDerivation {
   buildInputs = [
     kauth kconfig ki18n kiconthemes kwindowsystem kcompletion kconfigwidgets
     kcoreaddons kservice kwidgetsaddons plasma-framework qtscript qtx11extras
-    qtwebengine
+    qtwebengine knewstuff
   ];
   outputs = [ "bin" "dev" "out" ];
 }
diff --git a/pkgs/desktops/plasma-5/milou.nix b/pkgs/desktops/plasma-5/milou.nix
index 790979d664f..ab23703a470 100644
--- a/pkgs/desktops/plasma-5/milou.nix
+++ b/pkgs/desktops/plasma-5/milou.nix
@@ -1,12 +1,13 @@
 {
-  mkDerivation,
+  mkDerivation, lib,
   extra-cmake-modules,
   kcoreaddons, kdeclarative, ki18n, kitemmodels, krunner, kservice,
-  plasma-framework, qtscript, qtdeclarative
+  plasma-framework, qtbase, qtscript, qtdeclarative
 }:
 
 mkDerivation {
   name = "milou";
+  meta.broken = lib.versionOlder qtbase.version "5.15.0";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     kcoreaddons kdeclarative ki18n kitemmodels krunner kservice plasma-framework
diff --git a/pkgs/desktops/plasma-5/oxygen.nix b/pkgs/desktops/plasma-5/oxygen.nix
index 1b1f34f17b5..6eea3c92319 100644
--- a/pkgs/desktops/plasma-5/oxygen.nix
+++ b/pkgs/desktops/plasma-5/oxygen.nix
@@ -3,7 +3,7 @@
   extra-cmake-modules,
   frameworkintegration, kcmutils, kcompletion, kconfig, kdecoration, kguiaddons,
   ki18n, kwidgetsaddons, kservice, kwayland, kwindowsystem, qtdeclarative,
-  qtx11extras
+  qtx11extras, libXdmcp
 }:
 
 mkDerivation {
@@ -12,7 +12,7 @@ mkDerivation {
   propagatedBuildInputs = [
     frameworkintegration kcmutils kcompletion kconfig kdecoration kguiaddons
     ki18n kservice kwayland kwidgetsaddons kwindowsystem qtdeclarative
-    qtx11extras
+    qtx11extras libXdmcp
   ];
   outputs = [ "bin" "dev" "out" ];
 }
diff --git a/pkgs/desktops/plasma-5/plasma-desktop/default.nix b/pkgs/desktops/plasma-5/plasma-desktop/default.nix
index 73e449a1362..a07a50f0492 100644
--- a/pkgs/desktops/plasma-5/plasma-desktop/default.nix
+++ b/pkgs/desktops/plasma-5/plasma-desktop/default.nix
@@ -19,7 +19,7 @@ mkDerivation {
   name = "plasma-desktop";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    boost fontconfig ibus libcanberra_kde libpulseaudio libXcursor libXft
+    boost fontconfig ibus libcanberra_kde libpulseaudio libXcursor libXft xorgserver
     libxkbfile phonon xf86inputevdev xf86inputsynaptics xinput xkeyboard_config
 
     qtdeclarative qtquickcontrols qtquickcontrols2 qtsvg qtx11extras
@@ -35,7 +35,7 @@ mkDerivation {
     ./tzdir.patch
   ];
   postPatch = ''
-    sed '1i#include <cmath>' -i kcms/touchpad/src/backends/x11/synapticstouchpad.cpp
+    sed '1i#include <cmath>' -i kcms/touchpad/backends/x11/synapticstouchpad.cpp
   '';
   CXXFLAGS = [
     "-I${lib.getDev xorgserver}/include/xorg"
diff --git a/pkgs/desktops/plasma-5/plasma-disks.nix b/pkgs/desktops/plasma-5/plasma-disks.nix
new file mode 100644
index 00000000000..f97b061292a
--- /dev/null
+++ b/pkgs/desktops/plasma-5/plasma-disks.nix
@@ -0,0 +1,19 @@
+{
+  mkDerivation, extra-cmake-modules, kdoctools,
+  kcmutils, kconfig, kdbusaddons, khtml, ki18n, kiconthemes, kio, kitemviews,
+  kservice, kwindowsystem, kxmlgui, qtquickcontrols, qtquickcontrols2,
+  kactivities, kactivities-stats, kirigami2, kcrash, plasma-workspace,
+  systemsettings
+}:
+
+mkDerivation {
+  name = "plasma-disks";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [
+    kcmutils kconfig kdbusaddons khtml ki18n kiconthemes kio kitemviews kservice
+    kwindowsystem kxmlgui qtquickcontrols qtquickcontrols2
+    kactivities kactivities-stats kirigami2 kcrash plasma-workspace
+    systemsettings
+  ];
+  outputs = [ "bin" "dev" "out" ];
+}
diff --git a/pkgs/desktops/plasma-5/plasma-nm/default.nix b/pkgs/desktops/plasma-5/plasma-nm/default.nix
index 8296d549782..31fd3558957 100644
--- a/pkgs/desktops/plasma-5/plasma-nm/default.nix
+++ b/pkgs/desktops/plasma-5/plasma-nm/default.nix
@@ -1,15 +1,17 @@
 {
-  mkDerivation, substituteAll,
+  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, qtdeclarative, qttools, solid
+  openconnect, openvpn, plasma-framework, qca-qt5, qtbase, qtdeclarative,
+  qttools, solid
 }:
 
 mkDerivation {
   name = "plasma-nm";
+  meta.broken = lib.versionOlder qtbase.version "5.15.0";
   nativeBuildInputs = [ extra-cmake-modules kdoctools qttools ];
   buildInputs = [
     kdeclarative kdelibs4support ki18n kio kwindowsystem plasma-framework
diff --git a/pkgs/desktops/plasma-5/plasma-pa.nix b/pkgs/desktops/plasma-5/plasma-pa.nix
index e29df104f3c..00f5fefdc43 100644
--- a/pkgs/desktops/plasma-5/plasma-pa.nix
+++ b/pkgs/desktops/plasma-5/plasma-pa.nix
@@ -1,8 +1,8 @@
 {
-  mkDerivation,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
   kconfigwidgets, kcoreaddons, kdeclarative, kglobalaccel, ki18n, kwindowsystem, plasma-framework,
-  qtdeclarative,
+  qtbase, qtdeclarative,
   gconf, glib, libcanberra-gtk3, libpulseaudio, sound-theme-freedesktop
 }:
 
@@ -15,6 +15,7 @@ mkDerivation {
     kconfigwidgets kcoreaddons kdeclarative kglobalaccel ki18n plasma-framework
     kwindowsystem
 
-    qtdeclarative
+    qtbase qtdeclarative
   ];
+  meta.broken = lib.versionOlder qtbase.version "5.15.0";
 }
diff --git a/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch b/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch
index 12080092629..ea8afedbe5b 100644
--- a/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch
+++ b/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch
@@ -1,19 +1,33 @@
-From 6477e377fcca39c07ef5f91a55084d7d74715d00 Mon Sep 17 00:00:00 2001
-From: Thomas Tuegel <ttuegel@mailbox.org>
-Date: Tue, 28 Jan 2020 05:00:53 -0600
-Subject: [PATCH 1/2] startkde
+From d653bc84c8aed33072237ed858194a8a73b6a2e7 Mon Sep 17 00:00:00 2001
+From: Tom Hall <tahall256@protonmail.ch>
+Date: Mon, 7 Sep 2020 18:09:52 +0100
+Subject: [PATCH] startkde
 
 ---
+ startkde/plasma-session/startup.cpp     |  2 +-
  startkde/startplasma-waylandsession.cpp |  2 +-
  startkde/startplasma-x11.cpp            |  2 +-
- startkde/startplasma.cpp                | 24 ++++++++++--------------
- 3 files changed, 12 insertions(+), 16 deletions(-)
+ startkde/startplasma.cpp                | 22 +++++++++-------------
+ 4 files changed, 12 insertions(+), 16 deletions(-)
 
+diff --git a/startkde/plasma-session/startup.cpp b/startkde/plasma-session/startup.cpp
+index 89cc144ba..8ca9e81d2 100644
+--- a/startkde/plasma-session/startup.cpp
++++ b/startkde/plasma-session/startup.cpp
+@@ -211,7 +211,7 @@ Startup::Startup(QObject *parent):
+     upAndRunning(QStringLiteral("ksmserver"));
+     const AutoStart autostart;
+ 
+-    QProcess::execute(QStringLiteral(CMAKE_INSTALL_FULL_LIBEXECDIR_KF5 "/start_kdeinit_wrapper"), QStringList());
++    QProcess::execute(QStringLiteral(NIXPKGS_START_KDEINIT_WRAPPER), QStringList());
+ 
+     KJob* phase1;
+     QProcessEnvironment kdedProcessEnv;
 diff --git a/startkde/startplasma-waylandsession.cpp b/startkde/startplasma-waylandsession.cpp
-index 87c71c6b3..5fc53140e 100644
+index f59654d18..5e3a93db0 100644
 --- a/startkde/startplasma-waylandsession.cpp
 +++ b/startkde/startplasma-waylandsession.cpp
-@@ -67,7 +67,7 @@ int main(int /*argc*/, char** /*argv*/)
+@@ -61,7 +61,7 @@ int main(int argc, char** argv)
      waitForKonqi();
      out << "startplasma-waylandsession: Shutting down...\n";
  
@@ -23,10 +37,10 @@ index 87c71c6b3..5fc53140e 100644
      cleanupX11();
      out << "startplasma-waylandsession: Done.\n";
 diff --git a/startkde/startplasma-x11.cpp b/startkde/startplasma-x11.cpp
-index 3314b6283..14cbe29fa 100644
+index ae1c4d101..0df24b5be 100644
 --- a/startkde/startplasma-x11.cpp
 +++ b/startkde/startplasma-x11.cpp
-@@ -111,7 +111,7 @@ int main(int /*argc*/, char** /*argv*/)
+@@ -110,7 +110,7 @@ int main(int argc, char** argv)
  
      out << "startkde: Shutting down...\n";
  
@@ -36,10 +50,10 @@ index 3314b6283..14cbe29fa 100644
      cleanupPlasmaEnvironment();
      cleanupX11();
 diff --git a/startkde/startplasma.cpp b/startkde/startplasma.cpp
-index 4c9f5cef6..5ea4c2cf1 100644
+index a055d5635..62afb1513 100644
 --- a/startkde/startplasma.cpp
 +++ b/startkde/startplasma.cpp
-@@ -34,7 +34,7 @@ QTextStream out(stderr);
+@@ -41,7 +41,7 @@ QTextStream out(stderr);
  void messageBox(const QString &text)
  {
      out << text;
@@ -48,7 +62,7 @@ index 4c9f5cef6..5ea4c2cf1 100644
  }
  
  QStringList allServices(const QLatin1String& prefix)
-@@ -242,15 +242,15 @@ void setupX11()
+@@ -262,15 +262,15 @@ void setupX11()
  //     If the user has overwritten fonts, the cursor font may be different now
  //     so don't move this up.
  
@@ -69,20 +83,7 @@ index 4c9f5cef6..5ea4c2cf1 100644
  }
  
  // TODO: Check if Necessary
-@@ -267,11 +267,7 @@ bool syncDBusEnvironment()
- {
-     int exitCode;
-     // At this point all environment variables are set, let's send it to the DBus session server to update the activation environment
--    if (!QStandardPaths::findExecutable(QStringLiteral("dbus-update-activation-environment")).isEmpty()) {
--        exitCode = runSync(QStringLiteral("dbus-update-activation-environment"), { QStringLiteral("--systemd"), QStringLiteral("--all") });
--    } else {
--        exitCode = runSync(QStringLiteral(CMAKE_INSTALL_FULL_LIBEXECDIR "/ksyncdbusenv"), {});
--    }
-+		exitCode = runSync(QStringLiteral(NIXPKGS_DBUS_UPDATE_ACTIVATION_ENVIRONMENT), { QStringLiteral("--systemd"), QStringLiteral("--all") });
-     return exitCode == 0;
- }
- 
-@@ -287,7 +283,7 @@ void setupFontDpi()
+@@ -306,7 +302,7 @@ void setupFontDpi()
      //TODO port to c++?
      const QByteArray input = "Xft.dpi: " + QByteArray::number(fontsCfg.readEntry("forceFontDPI", 0));
      QProcess p;
@@ -91,7 +92,7 @@ index 4c9f5cef6..5ea4c2cf1 100644
      p.setProcessChannelMode(QProcess::ForwardedChannels);
      p.write(input);
      p.closeWriteChannel();
-@@ -309,7 +305,7 @@ QProcess* setupKSplash()
+@@ -328,7 +324,7 @@ QProcess* setupKSplash()
          KConfigGroup ksplashCfg = cfg.group("KSplash");
          if (ksplashCfg.readEntry("Engine", QStringLiteral("KSplashQML")) == QLatin1String("KSplashQML")) {
              p = new QProcess;
@@ -100,15 +101,6 @@ index 4c9f5cef6..5ea4c2cf1 100644
          }
      }
      return p;
-@@ -331,7 +327,7 @@ bool startKDEInit()
- {
-     // We set LD_BIND_NOW to increase the efficiency of kdeinit.
-     // kdeinit unsets this variable before loading applications.
--    const int exitCode = runSync(QStringLiteral(CMAKE_INSTALL_FULL_LIBEXECDIR_KF5 "/start_kdeinit_wrapper"), { QStringLiteral("--kded"), QStringLiteral("+kcminit_startup") }, { QStringLiteral("LD_BIND_NOW=true") });
-+    const int exitCode = runSync(QStringLiteral(NIXPKGS_START_KDEINIT_WRAPPER), { QStringLiteral("--kded"), QStringLiteral("+kcminit_startup") }, { QStringLiteral("LD_BIND_NOW=true") });
-     if (exitCode != 0) {
-         messageBox(QStringLiteral("startkde: Could not start kdeinit5. Check your installation."));
-         return false;
 -- 
-2.25.1
+2.28.0
 
diff --git a/pkgs/desktops/plasma-5/plasma-workspace/default.nix b/pkgs/desktops/plasma-5/plasma-workspace/default.nix
index 6472856cd9b..e1becaab95b 100644
--- a/pkgs/desktops/plasma-5/plasma-workspace/default.nix
+++ b/pkgs/desktops/plasma-5/plasma-workspace/default.nix
@@ -4,7 +4,7 @@
   extra-cmake-modules, kdoctools,
 
   coreutils, dbus, gnugrep, gnused, isocodes, libdbusmenu, libSM, libXcursor,
-  libXtst, pam, wayland, xmessage, xprop, xrdb, xsetroot,
+  libXtst, libXft, pam, wayland, xmessage, xprop, xrdb, xsetroot,
 
   baloo, breeze-qt5, kactivities, kactivities-stats, kcmutils, kconfig, kcrash,
   kdbusaddons, kdeclarative, kdelibs4support, kdesu, kglobalaccel, kidletime,
@@ -12,7 +12,7 @@
   kscreenlocker, ktexteditor, ktextwidgets, kwallet, kwayland, kwin,
   kxmlrpcclient, libkscreen, libksysguard, libqalculate, networkmanager-qt,
   phonon, plasma-framework, prison, solid, kholidays, kquickcharts,
-  appstream-qt,
+  appstream-qt, plasma-wayland-protocols,
 
   qtgraphicaleffects, qtquickcontrols, qtquickcontrols2, qtscript, qttools,
   qtwayland, qtx11extras, qqc2-desktop-style,
@@ -25,14 +25,14 @@ mkDerivation {
 
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    isocodes libdbusmenu libSM libXcursor libXtst pam wayland
+    isocodes libdbusmenu libSM libXcursor libXtst libXft pam wayland
 
     baloo kactivities kactivities-stats kcmutils kconfig kcrash kdbusaddons
     kdeclarative kdelibs4support kdesu kglobalaccel kidletime kjsembed knewstuff
     knotifyconfig kpackage kpeople krunner kscreenlocker ktexteditor
     ktextwidgets kwallet kwayland kwin kxmlrpcclient libkscreen libksysguard
     libqalculate networkmanager-qt phonon plasma-framework prison solid
-    kholidays kquickcharts appstream-qt
+    kholidays kquickcharts appstream-qt plasma-wayland-protocols
 
     qtgraphicaleffects qtquickcontrols qtquickcontrols2 qtscript qtwayland
     qtx11extras qqc2-desktop-style
diff --git a/pkgs/desktops/plasma-5/polkit-kde-agent.nix b/pkgs/desktops/plasma-5/polkit-kde-agent.nix
index c25b3d2744b..27f03e2d931 100644
--- a/pkgs/desktops/plasma-5/polkit-kde-agent.nix
+++ b/pkgs/desktops/plasma-5/polkit-kde-agent.nix
@@ -1,7 +1,7 @@
 {
-  mkDerivation, extra-cmake-modules,
+  mkDerivation, lib, extra-cmake-modules,
   kcoreaddons, kconfig, kcrash, kdbusaddons, ki18n, kiconthemes, knotifications,
-  kwidgetsaddons, kwindowsystem, polkit-qt
+  kwidgetsaddons, kwindowsystem, polkit-qt, qtbase
 }:
 
 mkDerivation {
@@ -12,4 +12,5 @@ mkDerivation {
     knotifications kwindowsystem polkit-qt
   ];
   outputs = [ "out" "dev" ];
+  meta.broken = lib.versionOlder qtbase.version "5.15.0";
 }
diff --git a/pkgs/desktops/plasma-5/powerdevil.nix b/pkgs/desktops/plasma-5/powerdevil.nix
index 979d69a02f6..28e6db853a1 100644
--- a/pkgs/desktops/plasma-5/powerdevil.nix
+++ b/pkgs/desktops/plasma-5/powerdevil.nix
@@ -19,18 +19,10 @@ mkDerivation {
     "-DHAVE_DDCUTIL=On"
   ];
   patches = [
-    # This fixes an issue where 'DDCA_Feature_List*' cannot be converted to
-    # 'DDCA_Feature_List'.
-    # https://bugs.kde.org/show_bug.cgi?id=423605
-    (fetchpatch {
-      url = "https://invent.kde.org/plasma/powerdevil/-/commit/fcb26be2fb279e6ad3b7b814d26a5921d16201eb.patch";
-      sha256 = "0gdyaa0nd1c1d6x2h0m933lascm8zm5sikd99wxmkf7hhaby6k2s";
-    })
-
     # 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";
-    })
+    #(fetchpatch {
+    #  url = "https://invent.kde.org/plasma/powerdevil/-/commit/c7590f9065ec9547b7fabad77a548bbc0c693113.patch";
+    #  sha256 = "077whhi0jrb3bajx357k7n66hv7nchis8jix0nfc1zjvi9fm6pi2";
+    #})
   ];
 }
diff --git a/pkgs/desktops/plasma-5/sddm-kcm.nix b/pkgs/desktops/plasma-5/sddm-kcm.nix
index 6becf3bf420..a9f51e50a26 100644
--- a/pkgs/desktops/plasma-5/sddm-kcm.nix
+++ b/pkgs/desktops/plasma-5/sddm-kcm.nix
@@ -1,12 +1,13 @@
 {
-  mkDerivation, extra-cmake-modules, shared-mime-info,
+  mkDerivation, lib, extra-cmake-modules, shared-mime-info,
   libpthreadstubs, libXcursor, libXdmcp,
-  qtquickcontrols2, qtx11extras,
+  qtbase, qtquickcontrols2, qtx11extras,
   karchive, ki18n, kio, knewstuff
 }:
 
 mkDerivation {
   name = "sddm-kcm";
+  meta.broken = lib.versionOlder qtbase.version "5.15.0";
   nativeBuildInputs = [ extra-cmake-modules shared-mime-info ];
   buildInputs = [
     libpthreadstubs libXcursor libXdmcp
diff --git a/pkgs/desktops/plasma-5/srcs.nix b/pkgs/desktops/plasma-5/srcs.nix
index 6f9214ccd60..ecca8c5bfdd 100644
--- a/pkgs/desktops/plasma-5/srcs.nix
+++ b/pkgs/desktops/plasma-5/srcs.nix
@@ -1,390 +1,398 @@
 # DO NOT EDIT! This file is generated automatically.
-# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/desktops/plasma-5
+# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/desktops/plasma-5/
 { fetchurl, mirror }:
 
 {
   bluedevil = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/bluedevil-5.18.5.tar.xz";
-      sha256 = "5350efbaee01c78fd451e96bb2aceb7986d45ab05500476d1e95c4e79ec89a66";
-      name = "bluedevil-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/bluedevil-5.20.4.tar.xz";
+      sha256 = "522ad4ff3f3fc4e213328f821041d40b5126d0d3ca49ecc9aea35c59e2c64129";
+      name = "bluedevil-5.20.4.tar.xz";
     };
   };
   breeze = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/breeze-5.18.5.tar.xz";
-      sha256 = "1d08dfd24df4a4fcacad1e3759e559e82f6014ba63dc75dc32a24de6cd133563";
-      name = "breeze-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/breeze-5.20.4.tar.xz";
+      sha256 = "b61b3f9961c196bbcfb33519bbec06d19e6267182f7215e21071a5619681b30f";
+      name = "breeze-5.20.4.tar.xz";
     };
   };
   breeze-grub = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/breeze-grub-5.18.5.tar.xz";
-      sha256 = "24c40171601b82d1c7d01eb85d16718a2f46cf23ee792f5524ac89fda3d278b1";
-      name = "breeze-grub-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/breeze-grub-5.20.4.tar.xz";
+      sha256 = "8692b6800e89b97973b50d6915f9ca028cdcb0354c34b54719af54441e3f3feb";
+      name = "breeze-grub-5.20.4.tar.xz";
     };
   };
   breeze-gtk = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/breeze-gtk-5.18.5.tar.xz";
-      sha256 = "41c7e83a28c033903d4fcab3da28a4c74ddb72958e66693a2d2e451f716cb7e9";
-      name = "breeze-gtk-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/breeze-gtk-5.20.4.tar.xz";
+      sha256 = "8905b3a0ff40a48ed2f00f69b7e30c4658deb9fbd1afc61700a28d078693b61d";
+      name = "breeze-gtk-5.20.4.tar.xz";
     };
   };
   breeze-plymouth = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/breeze-plymouth-5.18.5.tar.xz";
-      sha256 = "c0d48dc5a02f3236ff657f86ee8cf532cf885a0e8b36bfe79f007e4d5e277281";
-      name = "breeze-plymouth-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/breeze-plymouth-5.20.4.tar.xz";
+      sha256 = "879d4bd8d0c42a5c1f51497a4ee4ebb3e69f7904170bafa392b95e1c0ce05ada";
+      name = "breeze-plymouth-5.20.4.tar.xz";
     };
   };
   discover = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/discover-5.18.5.tar.xz";
-      sha256 = "d5ce4f4668c50ba9be37e04227db4bbe469e00470c87907f1e217fdcad6e76b6";
-      name = "discover-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/discover-5.20.4.tar.xz";
+      sha256 = "3669648fa39e14a8da059373c9a01caacfd5b126d61daed65d5d7aae7ab30012";
+      name = "discover-5.20.4.tar.xz";
     };
   };
   drkonqi = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/drkonqi-5.18.5.tar.xz";
-      sha256 = "b1a626c4ed2f9de8f8bc3359d8827e7fa6ac17486b8477674e47627fcf6efad1";
-      name = "drkonqi-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/drkonqi-5.20.4.tar.xz";
+      sha256 = "55d4a166ee74c4a935c69cec64ecd8eb3fdd79aae8dcd996f6432a873be3fac8";
+      name = "drkonqi-5.20.4.tar.xz";
     };
   };
   kactivitymanagerd = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/kactivitymanagerd-5.18.5.tar.xz";
-      sha256 = "24f32eb4585d427ee62e08a9fa2f057353085c62644d6bec8fb4b2568e507ac7";
-      name = "kactivitymanagerd-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/kactivitymanagerd-5.20.4.tar.xz";
+      sha256 = "210215dd9a49fda98febb60f73f4cc95eda3eb9ec96c0db2f2881f6be13afb34";
+      name = "kactivitymanagerd-5.20.4.tar.xz";
     };
   };
   kde-cli-tools = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/kde-cli-tools-5.18.5.tar.xz";
-      sha256 = "e3981d1a17111f4e284b787a6e841d7ff47f4fdbca0ad17e105c0a047e5aaaa8";
-      name = "kde-cli-tools-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/kde-cli-tools-5.20.4.tar.xz";
+      sha256 = "55f35158715bafdd51e448a2760327ed4f91c54fcd3da807dec2736d077b16a3";
+      name = "kde-cli-tools-5.20.4.tar.xz";
     };
   };
   kdecoration = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/kdecoration-5.18.5.tar.xz";
-      sha256 = "f09856245f2cb08d9013da4c3128b5438f1e2f58af40031eb547ae765f57a9c8";
-      name = "kdecoration-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/kdecoration-5.20.4.tar.xz";
+      sha256 = "8d1224a50a2e8c0ec24faab4453432eb8083b35a63e479523de95dce644226e8";
+      name = "kdecoration-5.20.4.tar.xz";
     };
   };
   kde-gtk-config = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/kde-gtk-config-5.18.5.tar.xz";
-      sha256 = "9d7b1fd8b61f9f99c5a5721ea0227c4562588834a4886d66637f4c092f0e53ab";
-      name = "kde-gtk-config-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/kde-gtk-config-5.20.4.tar.xz";
+      sha256 = "db3510cb08788c915be5e034106145597de5a412236b60c57b8db4b64dbbd7b1";
+      name = "kde-gtk-config-5.20.4.tar.xz";
     };
   };
   kdeplasma-addons = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/kdeplasma-addons-5.18.5.tar.xz";
-      sha256 = "1d135a32a7442f79dba4cb4e23221cd2ad1aad36b54fb12bfa91918daf3ff53f";
-      name = "kdeplasma-addons-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/kdeplasma-addons-5.20.4.tar.xz";
+      sha256 = "44768c7fb00386bc4f005c773bca59d8acc354f8a3f43efa6565cefc74d490d7";
+      name = "kdeplasma-addons-5.20.4.tar.xz";
     };
   };
   kgamma5 = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/kgamma5-5.18.5.tar.xz";
-      sha256 = "3aa89e361646214fb4910409644b941c83a85505d3d8a1d37984598d3e54269f";
-      name = "kgamma5-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/kgamma5-5.20.4.tar.xz";
+      sha256 = "59b1247dfc3c45247cff62e3706b52c9a1be2cf9cfe6e92c9c7299fc5cb51b41";
+      name = "kgamma5-5.20.4.tar.xz";
     };
   };
   khotkeys = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/khotkeys-5.18.5.tar.xz";
-      sha256 = "8f02fdf3bbecdc31c305c276fe2b3b2eca6dc10195e65c723ee9148fed81e766";
-      name = "khotkeys-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/khotkeys-5.20.4.tar.xz";
+      sha256 = "13c7e5a38f095056c6411b8dc91fc0640256c0a6f0a5166ba716e2454388d648";
+      name = "khotkeys-5.20.4.tar.xz";
     };
   };
   kinfocenter = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/kinfocenter-5.18.5.tar.xz";
-      sha256 = "a9679bce4cd2d64e6f471c89de6da410237263b02512768f3acd0a4932b12ec5";
-      name = "kinfocenter-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/kinfocenter-5.20.4.tar.xz";
+      sha256 = "09af2cafde33d0c8a824451ca532a443b6f571e20037fe6b31245c9984e9a6b3";
+      name = "kinfocenter-5.20.4.tar.xz";
     };
   };
   kmenuedit = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/kmenuedit-5.18.5.tar.xz";
-      sha256 = "59d998972121662d2835d43ff5be36eca7bf62e66e39fd67b7005e8ef8afd5f6";
-      name = "kmenuedit-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/kmenuedit-5.20.4.tar.xz";
+      sha256 = "32c2d2eb979e43e4cc0892aa9460eb8ebaf603b77385b9f058a48ca4347dde4b";
+      name = "kmenuedit-5.20.4.tar.xz";
     };
   };
   kscreen = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/kscreen-5.18.5.tar.xz";
-      sha256 = "9b6238447a4a38babdff482724ae3d33786b211e8b4224aaadafaad7435f6ba2";
-      name = "kscreen-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/kscreen-5.20.4.tar.xz";
+      sha256 = "4063fae5cb40a22a98fd0cc217e9b0ea4aef6518203c4bbe2664d5d01dfb9d9c";
+      name = "kscreen-5.20.4.tar.xz";
     };
   };
   kscreenlocker = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/kscreenlocker-5.18.5.tar.xz";
-      sha256 = "b4269cd027e1fee721760a22ca5d738d3d98622fa222fcf9e57d2da77a4e18d2";
-      name = "kscreenlocker-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/kscreenlocker-5.20.4.tar.xz";
+      sha256 = "d80d4625a0a48a7a63c5ff8255e8639eb2fb57ebc436c46979949b39fc530126";
+      name = "kscreenlocker-5.20.4.tar.xz";
     };
   };
   ksshaskpass = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/ksshaskpass-5.18.5.tar.xz";
-      sha256 = "c483c17d6ce2e3dffd54fc812f97b88c32f5def6e8c5e7a526e23f5e7f208cc5";
-      name = "ksshaskpass-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/ksshaskpass-5.20.4.tar.xz";
+      sha256 = "a391ba0490ca41a33207adb6aff2233165d4aeed119fd056489d6eccfc81f218";
+      name = "ksshaskpass-5.20.4.tar.xz";
     };
   };
   ksysguard = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/ksysguard-5.18.5.tar.xz";
-      sha256 = "4acb352698b612a21a5eccf22042ab46265d50bbf3aa85844bbca762a64c9e2f";
-      name = "ksysguard-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/ksysguard-5.20.4.tar.xz";
+      sha256 = "a5f247b24ce75a28f301446fbeb25abf968e77e0c32cd4be9b574a21d3bbfaf4";
+      name = "ksysguard-5.20.4.tar.xz";
     };
   };
   kwallet-pam = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/kwallet-pam-5.18.5.tar.xz";
-      sha256 = "bc4fe3dde503645d6233c3932d3cf74a7f5bf7acefb96bd6dbd224c8919d841a";
-      name = "kwallet-pam-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/kwallet-pam-5.20.4.tar.xz";
+      sha256 = "0749056e9acbbc194b20be5b0921383013ed6c268c22cf905aeeda32514d3ac9";
+      name = "kwallet-pam-5.20.4.tar.xz";
     };
   };
   kwayland-integration = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/kwayland-integration-5.18.5.tar.xz";
-      sha256 = "82d6943d79a9a2a9bce10623adb2c9af396a2dcf258a723bb349aafbde20e6d5";
-      name = "kwayland-integration-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/kwayland-integration-5.20.4.tar.xz";
+      sha256 = "2dd985dd8d21cdc7743b9f297d0d582f960339b4714953564f2f047d28cee53d";
+      name = "kwayland-integration-5.20.4.tar.xz";
+    };
+  };
+  kwayland-server = {
+    version = "5.20.4";
+    src = fetchurl {
+      url = "${mirror}/stable/plasma/5.20.4/kwayland-server-5.20.4.tar.xz";
+      sha256 = "3edc7b73baa6fa8b0bec51272e8786bab41998b0f675262d5086fdf6c1e9bb44";
+      name = "kwayland-server-5.20.4.tar.xz";
     };
   };
   kwin = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/kwin-5.18.5.tar.xz";
-      sha256 = "ca39c63fd740432e95490031fd9d5ac003da034582014fa41c2be2b89627ddf8";
-      name = "kwin-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/kwin-5.20.4.tar.xz";
+      sha256 = "c59861e9d456974bffaff2cb371cd8d31bdb789f89a60af632089c556111662a";
+      name = "kwin-5.20.4.tar.xz";
     };
   };
   kwrited = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/kwrited-5.18.5.tar.xz";
-      sha256 = "45ffa31d3d141ce453fb09fd823d7edd8e6c782b353bce22b8c879ad794fd1fe";
-      name = "kwrited-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/kwrited-5.20.4.tar.xz";
+      sha256 = "f02b900538246f4df2707585052b732552d2ea115a16f8fbda618fa02e5a1bb2";
+      name = "kwrited-5.20.4.tar.xz";
     };
   };
   libkscreen = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/libkscreen-5.18.5.tar.xz";
-      sha256 = "a962319000324200ec1abe3c58b1b8ab71ed4cc7c88a3c7e03a1c8eca86c287c";
-      name = "libkscreen-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/libkscreen-5.20.4.tar.xz";
+      sha256 = "ce1bd03a25b101793fa1472ac3fc696079e607a6f45330ea724845bda288d28d";
+      name = "libkscreen-5.20.4.tar.xz";
     };
   };
   libksysguard = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/libksysguard-5.18.5.tar.xz";
-      sha256 = "d4d7030a2869a546a211844aa158dcef3598386cc035a8655529938ba102440b";
-      name = "libksysguard-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/libksysguard-5.20.4.tar.xz";
+      sha256 = "a89968476cb8a888550e1a5138ab8e86eeb49788187192cba71f79abd4aad422";
+      name = "libksysguard-5.20.4.tar.xz";
     };
   };
   milou = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/milou-5.18.5.tar.xz";
-      sha256 = "7ec763833c025aa719d1e25f3c5c1c8b6c934a48bf346517e94660e09d8582b2";
-      name = "milou-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/milou-5.20.4.tar.xz";
+      sha256 = "123ac9470a94f2eb6e4212979d2df4160fa15962b1fc18551bfcdfe5aa18a201";
+      name = "milou-5.20.4.tar.xz";
     };
   };
   oxygen = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/oxygen-5.18.5.tar.xz";
-      sha256 = "479bdfa80b3f2216075470ab4be1e3159a17620870acf276144b9639134609f8";
-      name = "oxygen-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/oxygen-5.20.4.tar.xz";
+      sha256 = "e58cb6a2e1976a973e24d974556e6306a076ce1295f33a9a1bc56a8715857f67";
+      name = "oxygen-5.20.4.tar.xz";
     };
   };
   plasma-browser-integration = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/plasma-browser-integration-5.18.5.tar.xz";
-      sha256 = "3a087a836657b5304e2e0ef9ebefb84ce1f896bfbfc5dbf948d4b3eb7b709383";
-      name = "plasma-browser-integration-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/plasma-browser-integration-5.20.4.tar.xz";
+      sha256 = "55057e4f15a1e8b2d2f0489d32f95bb89f610ae99184b587ba90f7db0e8292b4";
+      name = "plasma-browser-integration-5.20.4.tar.xz";
     };
   };
   plasma-desktop = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/plasma-desktop-5.18.5.tar.xz";
-      sha256 = "aeb106018fd90da79c8a3c444d880282846a842029b1223e7830db2d4b42df9f";
-      name = "plasma-desktop-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/plasma-desktop-5.20.4.tar.xz";
+      sha256 = "3864e80bb9b8da596188162b14cd9bb77e7a8abedfb0fa41c8c72d47139d1355";
+      name = "plasma-desktop-5.20.4.tar.xz";
+    };
+  };
+  plasma-disks = {
+    version = "5.20.4";
+    src = fetchurl {
+      url = "${mirror}/stable/plasma/5.20.4/plasma-disks-5.20.4.tar.xz";
+      sha256 = "f0110588b2603905962beedd596cfa6eb6371b7bac2186aa845d22237199d845";
+      name = "plasma-disks-5.20.4.tar.xz";
     };
   };
   plasma-integration = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/plasma-integration-5.18.5.tar.xz";
-      sha256 = "c99b987efb2ab965cc2a55793ef94c7ccb2152ca5d75956a40ec99261ad4b870";
-      name = "plasma-integration-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/plasma-integration-5.20.4.tar.xz";
+      sha256 = "4dbaf6a05d69df02e73c88970be3d7a1efb62a3931edf06c9760cd3bb87e1299";
+      name = "plasma-integration-5.20.4.tar.xz";
     };
   };
   plasma-nano = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/plasma-nano-5.18.5.tar.xz";
-      sha256 = "d2f29b05894573517cb3336088e102d3604b1c2735e9bbe605119f559f0c6341";
-      name = "plasma-nano-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/plasma-nano-5.20.4.tar.xz";
+      sha256 = "8e23e0ce53654daf4ab688edd6a7852b5d859bfd86b4e1795a60f570dda409bd";
+      name = "plasma-nano-5.20.4.tar.xz";
     };
   };
   plasma-nm = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/plasma-nm-5.18.5.tar.xz";
-      sha256 = "1e091d01993708220f89501bb8a289279bf527d0593fd9e4b9223e6e8caf9aaa";
-      name = "plasma-nm-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/plasma-nm-5.20.4.tar.xz";
+      sha256 = "7b4d1026f2caa709a9ae284cd18342d1c573276f9b4c356ef47779dadb8b57cf";
+      name = "plasma-nm-5.20.4.tar.xz";
     };
   };
   plasma-pa = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/plasma-pa-5.18.5.tar.xz";
-      sha256 = "28765c07f584e7688a85c9761155e606440936de2ebb678917dac2c85f5d0209";
-      name = "plasma-pa-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/plasma-pa-5.20.4.tar.xz";
+      sha256 = "56fb4809966aa33290c46fed968f2c7186c415663f032c75b3279c57134674f3";
+      name = "plasma-pa-5.20.4.tar.xz";
     };
   };
   plasma-phone-components = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/plasma-phone-components-5.18.5.tar.xz";
-      sha256 = "d0c091367ae07c71457a0c03d1023ac48d8665385a6a1b0e32f6ae7ad1fa7070";
-      name = "plasma-phone-components-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/plasma-phone-components-5.20.4.tar.xz";
+      sha256 = "80053324bfb6431946df67e712638f797c2bcd9cb78766629a0372de7f6f727e";
+      name = "plasma-phone-components-5.20.4.tar.xz";
     };
   };
   plasma-sdk = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/plasma-sdk-5.18.5.tar.xz";
-      sha256 = "5f399231d16d62f9880f953891477f74e0b1f7b931448a4b0fbb97f37acd2fe5";
-      name = "plasma-sdk-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/plasma-sdk-5.20.4.tar.xz";
+      sha256 = "49d29c1c95832c585ea3c0b26f8fb46f5fa0fac726f9f7e9cbf0ab83415a00ea";
+      name = "plasma-sdk-5.20.4.tar.xz";
     };
   };
   plasma-tests = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/plasma-tests-5.18.5.tar.xz";
-      sha256 = "3251ea30cb3c62de9bba2deb152370ea9e0e56b7506efd655888f1892c18413a";
-      name = "plasma-tests-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/plasma-tests-5.20.4.tar.xz";
+      sha256 = "35234da922aad986db73ca4d2ca1c0440dbff24e200b98584246b060cc7a2735";
+      name = "plasma-tests-5.20.4.tar.xz";
     };
   };
   plasma-thunderbolt = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/plasma-thunderbolt-5.18.5.tar.xz";
-      sha256 = "c61dc7abe350ead15ca4d6111606aaf19773c38a0307ae8a7d8a7c60b82be5d1";
-      name = "plasma-thunderbolt-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/plasma-thunderbolt-5.20.4.tar.xz";
+      sha256 = "7c37c66815242b5d1e208df3b4dbf4fe0d8542ac9aa352d06c548fc172348429";
+      name = "plasma-thunderbolt-5.20.4.tar.xz";
     };
   };
   plasma-vault = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/plasma-vault-5.18.5.tar.xz";
-      sha256 = "cae2713823e8c59c7a2beb96d362a15024fe260cf10419ba037e8a798f3c1b41";
-      name = "plasma-vault-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/plasma-vault-5.20.4.tar.xz";
+      sha256 = "525226a143e6bb173e8106ed2f2313a529ed380a0a1488b096a60af6d08d881c";
+      name = "plasma-vault-5.20.4.tar.xz";
     };
   };
   plasma-workspace = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/plasma-workspace-5.18.5.tar.xz";
-      sha256 = "14e82033be745f4db46a70d319e2c86012295ea31056092bc974004189b92354";
-      name = "plasma-workspace-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/plasma-workspace-5.20.4.tar.xz";
+      sha256 = "12bfe6c3f62e4d1d2f7bc02ccb2e2ed5aee2ffe21c310987e42a2205374c30c9";
+      name = "plasma-workspace-5.20.4.tar.xz";
     };
   };
   plasma-workspace-wallpapers = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/plasma-workspace-wallpapers-5.18.5.tar.xz";
-      sha256 = "f8da3bd7b97a9944639ed0860303b8a7a008905246313e1983367810a3a84d6d";
-      name = "plasma-workspace-wallpapers-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/plasma-workspace-wallpapers-5.20.4.tar.xz";
+      sha256 = "4740d67e85910ed398c048916963f31c6632698d6a4494bc09cc1b0cd14e2808";
+      name = "plasma-workspace-wallpapers-5.20.4.tar.xz";
     };
   };
   plymouth-kcm = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/plymouth-kcm-5.18.5.tar.xz";
-      sha256 = "e8f75dd8c8a45cd706a0a6e62826d1eb4fff9c3912cbaadba8c06e9de915d2e3";
-      name = "plymouth-kcm-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/plymouth-kcm-5.20.4.tar.xz";
+      sha256 = "0cde268064c92b89c5b2a5f8c033983d372406656d446f52b77611effd67ad77";
+      name = "plymouth-kcm-5.20.4.tar.xz";
     };
   };
   polkit-kde-agent = {
-    version = "1-5.18.5";
+    version = "1-5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/polkit-kde-agent-1-5.18.5.tar.xz";
-      sha256 = "5e1733cb51c826c6215da4fbbc9c9568240275cf86b9922cd7a643d192a75a91";
-      name = "polkit-kde-agent-1-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/polkit-kde-agent-1-5.20.4.tar.xz";
+      sha256 = "f01a7b3443553810b0c9e6f25d2ca51eeac7c5e9fd624505852e77183e294b61";
+      name = "polkit-kde-agent-1-5.20.4.tar.xz";
     };
   };
   powerdevil = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/powerdevil-5.18.5.tar.xz";
-      sha256 = "e000185ee61bff81fe28896a7d6353746c82c7f4d2626792fd22d34b5f49f548";
-      name = "powerdevil-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/powerdevil-5.20.4.tar.xz";
+      sha256 = "864128ea9178701bc322f728402cf9277b3c6feaa15fe425aa2adf92464bd28d";
+      name = "powerdevil-5.20.4.tar.xz";
     };
   };
   sddm-kcm = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/sddm-kcm-5.18.5.tar.xz";
-      sha256 = "cc99c185d701acc7442f33ef17b2396894dcf164f3f583c25105ac3f2528c33b";
-      name = "sddm-kcm-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/sddm-kcm-5.20.4.tar.xz";
+      sha256 = "c61e136c10b98a91e1bd48ca5bbdd2a15b197a38b83d7ad5ccd289200524935e";
+      name = "sddm-kcm-5.20.4.tar.xz";
     };
   };
   systemsettings = {
-    version = "5.18.5";
-    src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/systemsettings-5.18.5.tar.xz";
-      sha256 = "cde5b714261aaa54f937887657c3d3e74814c5447448b989159ee6035be4783b";
-      name = "systemsettings-5.18.5.tar.xz";
-    };
-  };
-  user-manager = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/user-manager-5.18.5.tar.xz";
-      sha256 = "741d293947fa3fb3966f047bab121597bf1071be010684daff4a91626cf54484";
-      name = "user-manager-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/systemsettings-5.20.4.tar.xz";
+      sha256 = "e87eedfb40a0255348cf2a775ca0ea15bbce37687eedd521f2200670315953b9";
+      name = "systemsettings-5.20.4.tar.xz";
     };
   };
   xdg-desktop-portal-kde = {
-    version = "5.18.5";
+    version = "5.20.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.18.5/xdg-desktop-portal-kde-5.18.5.tar.xz";
-      sha256 = "807452708a0318b8e21b43f9ec7e016d1de51cac5d8714d70c577bb6f3976224";
-      name = "xdg-desktop-portal-kde-5.18.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.20.4/xdg-desktop-portal-kde-5.20.4.tar.xz";
+      sha256 = "cb3d856f7caeae7bd02a3e9e43f12ee3d432aa399df9d40db0636199b7ed4df8";
+      name = "xdg-desktop-portal-kde-5.20.4.tar.xz";
     };
   };
 }
diff --git a/pkgs/desktops/plasma-5/user-manager.nix b/pkgs/desktops/plasma-5/user-manager.nix
deleted file mode 100644
index f46792fc48f..00000000000
--- a/pkgs/desktops/plasma-5/user-manager.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-  mkDerivation, extra-cmake-modules, kdoctools, kcmutils, kconfig, khtml,
-  ki18n, kiconthemes, kio, kwindowsystem, libpwquality
-}:
-
-mkDerivation {
-  name = "user-manager";
-  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
-  buildInputs = [
-    kcmutils kconfig khtml ki18n kiconthemes kio kwindowsystem
-    libpwquality
-  ];
-}
diff --git a/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix b/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix
index c03c6a89161..2b0450928f5 100644
--- a/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix
+++ b/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix
@@ -1,18 +1,20 @@
 {
-  mkDerivation,
+  mkDerivation, lib,
   extra-cmake-modules, gettext, kdoctools, python,
-  cups, epoxy, mesa, pcre, pipewire,
+  cups, epoxy, mesa, pcre, pipewire, wayland, wayland-protocols,
   kcoreaddons, knotifications, kwayland, kwidgetsaddons, kwindowsystem,
-  kirigami2, kdeclarative, plasma-framework, kio
+  kirigami2, kdeclarative, plasma-framework, plasma-wayland-protocols, kio,
+  qtbase
 }:
 
 mkDerivation {
   name = "xdg-desktop-portal-kde";
+  meta.broken = lib.versionOlder qtbase.version "5.15.0";
   nativeBuildInputs = [ extra-cmake-modules gettext kdoctools python ];
   buildInputs = [
-    cups epoxy mesa pcre pipewire
+    cups epoxy mesa pcre pipewire wayland wayland-protocols
 
     kio kcoreaddons knotifications kwayland kwidgetsaddons kwindowsystem
-    kirigami2 kdeclarative plasma-framework
+    kirigami2 kdeclarative plasma-framework plasma-wayland-protocols
   ];
 }
diff --git a/pkgs/desktops/xfce/applications/mousepad/default.nix b/pkgs/desktops/xfce/applications/mousepad/default.nix
index 6f841958c79..3c84f5558a1 100644
--- a/pkgs/desktops/xfce/applications/mousepad/default.nix
+++ b/pkgs/desktops/xfce/applications/mousepad/default.nix
@@ -4,6 +4,7 @@ mkXfceDerivation {
   category = "apps";
   pname = "mousepad";
   version = "0.4.2";
+  odd-unstable = false;
 
   sha256 = "0a35vaq4l0d8vzw7hqpvbgkr3wj1sqr2zvj7bc5z4ikz2cppqj7p";
 
diff --git a/pkgs/desktops/xfce/applications/orage/default.nix b/pkgs/desktops/xfce/applications/orage/default.nix
index 08b78ec4006..3af6c0a6bba 100644
--- a/pkgs/desktops/xfce/applications/orage/default.nix
+++ b/pkgs/desktops/xfce/applications/orage/default.nix
@@ -1,18 +1,23 @@
-{ lib, fetchpatch, mkXfceDerivation, dbus-glib, gtk2, libical, libnotify, tzdata
-, popt, libxfce4ui, xfce4-panel, withPanelPlugin ? true }:
+{ stdenv, fetchurl, fetchpatch, pkg-config, intltool, dbus-glib, gtk2, libical, libnotify, tzdata
+, popt, libxfce4ui, xfce4-panel, withPanelPlugin ? true, wrapGAppsHook, xfce }:
 
 assert withPanelPlugin -> libxfce4ui != null && xfce4-panel != null;
 
 let
-  inherit (lib) optionals;
+  inherit (stdenv.lib) optionals;
 in
 
-mkXfceDerivation {
-  category = "archive";
+stdenv.mkDerivation rec {
   pname = "orage";
   version = "4.12.1";
 
-  sha256 = "04z6y1vfaz1im1zq1zr7cf8pjibjhj9zkyanbp7vn30q520yxa0m";
+  src = fetchurl {
+    url = "https://archive.xfce.org/src/apps/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
+    sha256 = "0qlhvnl2m33vfxqlbkic2nmfpwyd4mq230jzhs48cg78392amy9w";
+  };
+
+  nativeBuildInputs = [ pkg-config intltool wrapGAppsHook ];
+
   buildInputs = [ dbus-glib gtk2 libical libnotify popt ]
     ++ optionals withPanelPlugin [ libxfce4ui xfce4-panel ];
 
@@ -28,12 +33,21 @@ mkXfceDerivation {
     # Fix build with libical 3.0
     (fetchpatch {
       name = "fix-libical3.patch";
-      url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/libical3.patch?h=packages/orage&id=7b1b06c42dda034d538977b9f3550b28e370057f";
+      url = "https://aur.archlinux.org/cgit/aur.git/plain/libical3.patch?h=orage-4.10";
       sha256 = "1l8s106mcidmbx2p8c2pi8v9ngbv2x3fsgv36j8qk8wyd4qd1jbf";
     })
   ];
 
-  meta = {
-    description = "A simple calendar application with reminders";
+  passthru.updateScript = xfce.updateScript {
+    inherit pname version;
+    attrPath = "xfce.${pname}";
+    versionLister = xfce.archiveLister "apps" pname;
+  };
+
+  meta = with stdenv.lib; {
+    description = "Simple calendar application with reminders";
+    homepage = "https://git.xfce.org/archive/orage/";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/desktops/xfce/core/xfwm4/default.nix b/pkgs/desktops/xfce/core/xfwm4/default.nix
index 7ab12461046..df46a80c4b7 100644
--- a/pkgs/desktops/xfce/core/xfwm4/default.nix
+++ b/pkgs/desktops/xfce/core/xfwm4/default.nix
@@ -5,9 +5,9 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "xfwm4";
-  version = "4.14.5";
+  version = "4.14.6";
 
-  sha256 = "0xxprhs8g00ysrl25y6z9agih6wb7n29v5f5m2icaz7yjvj1k9iv";
+  sha256 = "1ml5b4nn8laqhjihfqqsbjn66525abhin5d32bplh1k9yfxw4xi4";
 
   nativeBuildInputs = [ exo librsvg ];
 
diff --git a/pkgs/desktops/xfce/mkXfceDerivation.nix b/pkgs/desktops/xfce/mkXfceDerivation.nix
index 4c6edf99b61..8709b84820c 100644
--- a/pkgs/desktops/xfce/mkXfceDerivation.nix
+++ b/pkgs/desktops/xfce/mkXfceDerivation.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, pkgconfig, xfce4-dev-tools, hicolor-icon-theme, xfce, wrapGAppsHook }:
+{ stdenv, fetchFromGitLab, pkgconfig, xfce4-dev-tools, hicolor-icon-theme, xfce, wrapGAppsHook }:
 
 { category
 , pname
@@ -23,14 +23,16 @@ let
     zipAttrsWithNames (filterAttrNames isList (head attrsets)) (_: concatLists) attrsets;
 
   template = rec {
-    name = "${pname}-${version}";
+    inherit pname version;
 
     nativeBuildInputs = [ pkgconfig xfce4-dev-tools wrapGAppsHook ];
     buildInputs = [ hicolor-icon-theme ];
     configureFlags = [ "--enable-maintainer-mode" ];
 
-    src = fetchgit {
-      url = "git://git.xfce.org/${category}/${pname}";
+    src = fetchFromGitLab {
+      domain = "gitlab.xfce.org";
+      owner = category;
+      repo = pname;
       inherit rev sha256;
     };
 
@@ -41,11 +43,11 @@ let
 
     passthru.updateScript = xfce.updateScript {
       inherit pname version attrPath rev-prefix odd-unstable patchlevel-unstable;
-      versionLister = xfce.gitLister src.url;
+      versionLister = xfce.gitLister src.meta.homepage;
     };
 
     meta = with stdenv.lib; {
-      homepage = "https://git.xfce.org/${category}/${pname}/about";
+      homepage = "https://gitlab.xfce.org/${category}/${pname}/about";
       license = licenses.gpl2; # some libraries are under LGPLv2+
       platforms = platforms.linux;
     };
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-namebar-plugin.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-namebar-plugin.nix
index affc957c51d..5575bf585fc 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-namebar-plugin.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-namebar-plugin.nix
@@ -1,29 +1,36 @@
-{ stdenv, pkgconfig, fetchFromGitHub, python2, vala_0_40
-, gtk2, libwnck, libxfce4util, xfce4-panel, wafHook }:
+{ stdenv, pkgconfig, fetchFromGitHub, python3, vala_0_46
+, gtk3, libwnck3, libxfce4util, xfce4-panel, wafHook, xfce }:
 
 stdenv.mkDerivation rec {
-  ver = "0.3.1";
-  rev = "07a23b3";
-  name = "xfce4-namebar-plugin-${ver}";
+  pname = "xfce4-namebar-plugin";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
-    owner = "TiZ-EX1";
-    repo = "xfce4-namebar-plugin";
-    rev = rev;
-    sha256 = "1sl4qmjywfvv53ch7hyfysjfd91zl38y7gdw2y3k69vkzd3h18ad";
+    owner = "HugLifeTiZ";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0l70f6mzkscsj4wr43wp5c0l2qnf85vj24cv02bjrh3bzz6wkak8";
   };
 
-  nativeBuildInputs = [ pkgconfig wafHook ];
-  buildInputs = [ python2 vala_0_40 gtk2 libwnck libxfce4util xfce4-panel ];
+  nativeBuildInputs = [ pkgconfig vala_0_46 wafHook python3 ];
+  buildInputs = [ gtk3 libwnck3 libxfce4util xfce4-panel ];
 
   postPatch = ''
-    substituteInPlace src/preferences.vala --replace 'Environment.get_system_data_dirs()' "{ \"$out/share\" }"
-    substituteInPlace src/namebar.vala     --replace 'Environment.get_system_data_dirs()' "{ \"$out/share\" }"
+    for f in src/preferences.vala src/namebar.vala; do
+      substituteInPlace $f --replace 'var dirs = Environment.get_system_data_dirs()' "string[] dirs = { \"$out/share\" }"
+    done
   '';
 
+  passthru.updateScript = xfce.updateScript {
+    inherit pname version;
+    attrPath = "xfce.${pname}";
+    versionLister = xfce.gitLister src.meta.homepage;
+    rev-prefix = "v";
+  };
+
   meta = with stdenv.lib; {
-    homepage = "https://github.com/TiZ-EX1/xfce4-namebar-plugin";
-    description = "A plugins which integrates titlebar and window controls into the xfce4-panel";
+    homepage = "https://github.com/HugLifeTiZ/xfce4-namebar-plugin";
+    description = "Plugin which integrates titlebar and window controls into the xfce4-panel";
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = [ maintainers.volth ];
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix
index ac9f22a9a0c..ef269d64e04 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix
@@ -5,6 +5,7 @@ mkXfceDerivation {
   pname = "xfce4-whiskermenu-plugin";
   version = "2.4.6";
   rev-prefix = "v";
+  odd-unstable = false;
   sha256 = "03asfaxqbhawzb3870az7qgid5y7cg3ip8h6r4z8kavcd0b7x4ii";
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/arduino/arduino-ci/default.nix b/pkgs/development/arduino/arduino-ci/default.nix
index cdc6cb8ccb6..b6b1fc9c89d 100644
--- a/pkgs/development/arduino/arduino-ci/default.nix
+++ b/pkgs/development/arduino/arduino-ci/default.nix
@@ -1,23 +1,22 @@
-{ stdenv, fetchFromGitHub,  makeWrapper, arduino-cli, ruby, python3, patchelf }:
+{ stdenv, fetchFromGitHub,  makeWrapper, arduino-cli, ruby, python3 }:
 
 let
 
   runtimePath = stdenv.lib.makeBinPath [
     arduino-cli
-    (python3.withPackages (ps: [ ps.pyserial ])) # required by esp32 core
-    patchelf # required by esp32 core
+    python3 # required by the esp8266 core
   ];
 
 in
 stdenv.mkDerivation rec {
   pname = "arduino-ci";
-  version = "0.1.0";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner  = "pololu";
     repo   = "arduino-ci";
     rev    = "v${version}";
-    sha256 = "sha256-uLCLupzJ446WcxXZtzJk1wnae+k1NTSy0cGHLqW7MZU=";
+    sha256 = "sha256-9RbBxgwsSQ7oGGKr1Vsn9Ug9AsacoRgvQgd9jbRQ034=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/arduino/arduino-core/default.nix b/pkgs/development/arduino/arduino-core/default.nix
index 1c537edd0b4..456a8d8b81c 100644
--- a/pkgs/development/arduino/arduino-core/default.nix
+++ b/pkgs/development/arduino/arduino-core/default.nix
@@ -11,7 +11,8 @@
 , ncurses
 , readline
 , withGui ? false
-, gtk2 ? null
+, gtk3 ? null
+, wrapGAppsHook
 , withTeensyduino ? false
   /* Packages needed for Teensyduino */
 , upx
@@ -29,7 +30,7 @@
 , udev
 }:
 
-assert withGui -> gtk2 != null;
+assert withGui -> gtk3 != null && wrapGAppsHook != null;
 assert withTeensyduino -> withGui;
 let
   externalDownloads = import ./downloads.nix {
@@ -55,7 +56,7 @@ let
     gcc.cc.lib
     gdk-pixbuf
     glib
-    gtk2
+    gtk3
     libpng12
     libusb-compat-0_1
     pango
@@ -78,39 +79,43 @@ let
              + stdenv.lib.optionalString (!withGui) "-core";
 in
 stdenv.mkDerivation rec {
-  version = "1.8.12";
+  version = "1.8.13";
   name = "${flavor}-${version}";
 
   src = fetchFromGitHub {
     owner = "arduino";
     repo = "Arduino";
     rev = version;
-    sha256 = "0lxkyvsh55biz2q20ba4qabraind5cpxznl41zfq027vl22j6kd2";
+    sha256 = "0qg3qyj1b7wbaw2rsfly7nf3115h26nskl4ggrn6plhx272ni84p";
   };
 
-  teensyduino_version = "151";
+  teensyduino_version = "153";
   teensyduino_src = fetchurl {
     url = "https://www.pjrc.com/teensy/td_${teensyduino_version}/TeensyduinoInstall.${teensy_architecture}";
     sha256 = {
-      linux64 = "0q8mw9bm2vb5vwa98gwcs6ad164i98hc1qqh2qw029yhwm599pn0";
-      linux32 = "1rq6sx0048ab200jy0cz5vznwxi99avidngj42rjnh7kcfas5c4m";
-      linuxarm = "19j55bq36040rpdpfxcqimda76rkbx137q15bs8nvxj13wrbl4ip";
-      linuxaarch64 = "09k78dycn1vcpcx37c1dak8bgjv8gs34l89n9r9s0c3rqmv3pg4x";
+      linux64 = "02qgsj4h4zrjxkcclx7clsqbqd699kg0dq1xxa9hbj3vfnddjv1f";
+      linux32 = "14xaff8xj176ih8ifdvxsly5xgjjm82dqbn7lqq81a43i0svjjyn";
+      linuxarm = "0xpg9axa6dqyhccm9cpvsv2al7rgwy4gv2l8b2kffvn974dl5759";
+      linuxaarch64 = "1lyn4zy4l5mml3c19fw6i2pk1ypnq6mgjmxmzk9d54wpf6n3j5dk";
     }.${teensy_architecture} or (throw "No arduino binaries for ${teensy_architecture}");
   };
   # Used because teensyduino requires jars be a specific size
   arduino_dist_src = fetchurl {
-    url = "http://downloads.arduino.cc/arduino-${version}-${teensy_architecture}.tar.xz";
+    url = "https://downloads.arduino.cc/arduino-${version}-${teensy_architecture}.tar.xz";
     sha256 =
       {
-        linux64 = "128f34kkxz7ab6ir5mqyr8d1mgxig8f9jygwxy44pdnq2rk6gmh9";
-        linux32 = "11n85lwsn1w4ysfacyw08v85s3f3zvl8j8ac7rld19yxgjslvisi";
-        linuxarm = "1k8yjivaydm6y16mplrjyblgx7l0wjzm3mjxh5saxrjq7drswmxx";
-        linuxaarch64 = "04v2nhyjhahml6nmz23bfb63c0an4a7zxgcgxqqq442i8vd304wa";
+        linux64 = "1bdlk51dqiyg5pw23hs8rfv8nrjqy0jqfl89h1466ahahpnd080v";
+        linux32 = "0mgsw9wpwv1pgs2jslzflh7zf4ggqjgcd55hmdzrj0dvgkyw4cr2";
+        linuxarm = "08n4lpak3i7yfyi0085j4nq14gb2n7zx85wl9drp8gaavxnfbp5f";
+        linuxaarch64 = "0m4nhykzknm2hdpz1fhr2hbpncry53kvzs9y5lgj7rx3sy6ygbh7";
       }.${teensy_architecture} or (throw "No arduino binaries for ${teensy_architecture}");
   };
 
 
+  # the glib setup hook will populate GSETTINGS_SCHEMAS_PATH,
+  # wrapGAppHooks (among other things) adds it to XDG_DATA_DIRS
+  # so 'save as...' works:
+  nativeBuildInputs = [ glib wrapGAppsHook ];
   buildInputs = [
     jdk
     ant
@@ -149,7 +154,7 @@ stdenv.mkDerivation rec {
 
   # This will be patched into `arduino` wrapper script
   # Java loads gtk dynamically, so we need to provide it using LD_LIBRARY_PATH
-  dynamicLibraryPath = lib.makeLibraryPath [ gtk2 ];
+  dynamicLibraryPath = lib.makeLibraryPath [ gtk3 ];
   javaPath = lib.makeBinPath [ jdk ];
 
   # Everything else will be patched into rpath
diff --git a/pkgs/development/arduino/arduino-core/downloads.nix b/pkgs/development/arduino/arduino-core/downloads.nix
index f2edf64ceb6..76fa7664f0e 100644
--- a/pkgs/development/arduino/arduino-core/downloads.nix
+++ b/pkgs/development/arduino/arduino-core/downloads.nix
@@ -107,20 +107,20 @@
     url = "https://github.com/arduino-libraries/WiFi101-FirmwareUpdater-Plugin/releases/download/v0.10.10/WiFi101-Updater-ArduinoIDE-Plugin-0.10.10.zip";
     sha256 = "0bs5qdglsfc2q5c48m6wdjpzhz4ya4askh1g8364dp6p7jmg6w0d";
   };
-  "build/avr-1.8.2.tar.bz2" = fetchurl {
-    url = "https://downloads.arduino.cc/cores/avr-1.8.2.tar.bz2";
-    sha256 = "06zl8fwphknd0qdx87fcr1003gid1yqsazaj674mm9widqfd84v2";
+  "build/avr-1.8.3.tar.bz2" = fetchurl {
+    url = "https://downloads.arduino.cc/cores/avr-1.8.3.tar.bz2";
+    sha256 = "051wnc0nmsmxvvs4c79zvjag33yx5il2pz2j7qyjsxkp4jc9p2ny";
   };
 }
 
 // optionalAttrs (system == "x86_64-linux") {
-  "build/arduino-builder-linux64-1.5.2.tar.bz2" = fetchurl {
-    url = "https://downloads.arduino.cc/tools/arduino-builder-linux64-1.5.2.tar.bz2";
-    sha256 = "0wypr9a2cbv9r0ignsr13raw09i3vfc5zvkjxp2xwb7mv35y77z3";
+  "build/arduino-builder-linux64-1.5.4.tar.bz2" = fetchurl {
+    url = "https://downloads.arduino.cc/tools/arduino-builder-linux64-1.5.4.tar.bz2";
+    sha256 = "1cgvwlvxzzpjaj4njz1mrsif27l26dwkz9c7gbhdj0lvlk3xsa7s";
   };
-  "build/linux/avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-pc-linux-gnu.tar.bz2" = fetchurl {
-    url = "https://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino5-x86_64-pc-linux-gnu.tar.bz2";
-    sha256 = "1yq6a811dabrkcgzfi3jsys41r19qsna46kglkjbcy0rza7yvzry";
+  "build/linux/avr-gcc-7.3.0-atmel3.6.1-arduino7-x86_64-pc-linux-gnu.tar.bz2" = fetchurl {
+    url = "https://downloads.arduino.cc/tools/avr-gcc-7.3.0-atmel3.6.1-arduino7-x86_64-pc-linux-gnu.tar.bz2";
+    sha256 = "07nrzv7gsq7bi7ichlw3xsdvgzk0lvv56b73ksn3089ajpv3g35x";
   };
   "build/linux/avrdude-6.3.0-arduino17-x86_64-pc-linux-gnu.tar.bz2" = fetchurl {
     url = "https://downloads.arduino.cc/tools/avrdude-6.3.0-arduino17-x86_64-pc-linux-gnu.tar.bz2";
diff --git a/pkgs/development/arduino/platformio/default.nix b/pkgs/development/arduino/platformio/default.nix
index 248d07adf6e..194385e7952 100644
--- a/pkgs/development/arduino/platformio/default.nix
+++ b/pkgs/development/arduino/platformio/default.nix
@@ -4,14 +4,14 @@
 let
   callPackage = newScope self;
 
-  version = "5.0.3";
+  version = "5.0.4";
 
   # 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 = "0sf5dy0cmhy66rmk0hq1by7nrmf7qz0a99hrk55dpbp6r6vnk3hw";
+    sha256 = "15jnhlhkk9z6cyzxw065r3080dqan951klwf65p152vfzg79wf84";
   };
 
   self = {
diff --git a/pkgs/development/compilers/crystal/build-package.nix b/pkgs/development/compilers/crystal/build-package.nix
index 856c6e58bc1..bcac4eeb9c4 100644
--- a/pkgs/development/compilers/crystal/build-package.nix
+++ b/pkgs/development/compilers/crystal/build-package.nix
@@ -1,6 +1,7 @@
 { stdenv, lib, crystal, shards, git, pkgconfig, which, linkFarm, fetchFromGitHub, installShellFiles }:
 
-{ # Some projects do not include a lock file, so you can pass one
+{
+  # Some projects do not include a lock file, so you can pass one
   lockFile ? null
   # Generate shards.nix with `nix-shell -p crystal2nix --run crystal2nix` in the projects root
 , shardsFile ? null
@@ -10,10 +11,11 @@
 , installManPages ? true
   # Specify binaries to build in the form { foo.src = "src/foo.cr"; }
   # The default `crystal build` options can be overridden with { foo.options = [ "--no-debug" ]; }
-, crystalBinaries ? { }, ... }@args:
+, crystalBinaries ? { }
+, ...
+}@args:
 
 assert (builtins.elem format [ "make" "crystal" "shards" ]);
-
 let
   mkDerivationArgs = builtins.removeAttrs args [
     "format"
@@ -23,22 +25,34 @@ let
     "crystalBinaries"
   ];
 
-  crystalLib = linkFarm "crystal-lib" (lib.mapAttrsToList (name: value: {
-    inherit name;
-    path = fetchFromGitHub value;
-  }) (import shardsFile));
+  crystalLib = linkFarm "crystal-lib" (lib.mapAttrsToList
+    (name: value: {
+      inherit name;
+      path = fetchFromGitHub value;
+    })
+    (import shardsFile));
 
   # we previously had --no-debug here but that is not recommended by upstream
   defaultOptions = [ "--release" "--progress" "--verbose" ];
 
   buildDirectly = shardsFile == null || crystalBinaries != { };
-in stdenv.mkDerivation (mkDerivationArgs // {
 
-  configurePhase = args.configurePhase or lib.concatStringsSep "\n" ([
-    "runHook preConfigure"
-  ] ++ lib.optional (lockFile != null)   "ln -s ${lockFile} ./shard.lock"
-    ++ lib.optional (shardsFile != null) "ln -s ${crystalLib} lib"
-    ++ [ "runHook postConfigure "]);
+in
+stdenv.mkDerivation (mkDerivationArgs // {
+
+  configurePhase = args.configurePhase or lib.concatStringsSep "\n"
+    (
+      [
+        "runHook preConfigure"
+      ]
+      ++ lib.optional (lockFile != null) "cp ${lockFile} ./shard.lock"
+      ++ lib.optionals (shardsFile != null) [
+        "test -e lib || mkdir lib"
+        "for d in ${crystalLib}/*; do ln -s $d lib/; done"
+        "cp shard.lock lib/.shards.info"
+      ]
+      ++ [ "runHook postConfigure" ]
+    );
 
   CRFLAGS = lib.concatStringsSep " " defaultOptions;
 
@@ -53,24 +67,31 @@ in stdenv.mkDerivation (mkDerivationArgs // {
     "runHook preBuild"
   ] ++ lib.optional (format == "make")
     ''make ''${buildTargets:-build} $makeFlags''
-  ++ lib.optionals (format == "crystal") (lib.mapAttrsToList (bin: attrs: ''
-        crystal ${lib.escapeShellArgs (["build" "-o" bin
-            (attrs.src or (throw "No source file for crystal binary ${bin} provided"))
-        ] ++ (attrs.options or defaultOptions))}
-      '') crystalBinaries)
+  ++ lib.optionals (format == "crystal") (lib.mapAttrsToList
+    (bin: attrs: ''
+      crystal ${lib.escapeShellArgs ([
+        "build"
+        "-o"
+        bin
+        (attrs.src or (throw "No source file for crystal binary ${bin} provided"))
+      ] ++ (attrs.options or defaultOptions))}
+    '')
+    crystalBinaries)
   ++ lib.optional (format == "shards")
-      "shards build --local --production ${lib.concatStringsSep " " defaultOptions}"
+    "shards build --local --production ${lib.concatStringsSep " " defaultOptions}"
   ++ [ "runHook postBuild" ]));
 
   installPhase = args.installPhase or (lib.concatStringsSep "\n" ([
     "runHook preInstall"
   ] ++ lib.optional (format == "make")
     ''make ''${installTargets:-install} $installFlags''
-  ++ lib.optionals (format == "crystal") (map (bin: ''
+  ++ lib.optionals (format == "crystal") (map
+    (bin: ''
       install -Dm555 ${lib.escapeShellArgs [ bin "${placeholder "out"}/bin/${bin}" ]}
-    '') (lib.attrNames crystalBinaries))
+    '')
+    (lib.attrNames crystalBinaries))
   ++ lib.optional (format == "shards")
-      ''install -Dm555 bin/* -t $out/bin''
+    ''install -Dm555 bin/* -t $out/bin''
   ++ [
     ''
       for f in README* *.md LICENSE; do
@@ -78,9 +99,9 @@ in stdenv.mkDerivation (mkDerivationArgs // {
       done
     ''
   ] ++ (lib.optional installManPages ''
-      if [ -d man ]; then
-        installManPage man/*.?
-      fi
+    if [ -d man ]; then
+      installManPage man/*.?
+    fi
   '') ++ [
     "runHook postInstall"
   ]));
diff --git a/pkgs/development/compilers/crystal/crystal2nix.cr b/pkgs/development/compilers/crystal/crystal2nix.cr
deleted file mode 100644
index 0610de5cfa4..00000000000
--- a/pkgs/development/compilers/crystal/crystal2nix.cr
+++ /dev/null
@@ -1,42 +0,0 @@
-require "yaml"
-require "json"
-
-class PrefetchJSON
-  JSON.mapping(sha256: String)
-end
-
-class ShardLock
-  YAML.mapping(
-    version: Float32,
-    shards: Hash(String, Hash(String, String))
-  )
-end
-
-File.open "shards.nix", "w+" do |file|
-  file.puts %({)
-  yaml = ShardLock.from_yaml(File.read("shard.lock"))
-  yaml.shards.each do |key, value|
-    owner, repo = value["github"].split("/")
-    url = "https://github.com/#{value["github"]}"
-    rev = if value["version"]?
-            "v#{value["version"]}"
-          else
-            value["commit"]
-          end
-
-    sha256 = ""
-    args = ["--url", url, "--rev", rev]
-    Process.run("@nixPrefetchGit@", args: args) do |x|
-      x.error.each_line { |e| puts e }
-      sha256 = PrefetchJSON.from_json(x.output).sha256
-    end
-
-    file.puts %(  #{key} = {)
-    file.puts %(    owner = "#{owner}";)
-    file.puts %(    repo = "#{repo}";)
-    file.puts %(    rev = "#{rev}";)
-    file.puts %(    sha256 = "#{sha256}";)
-    file.puts %(  };)
-  end
-  file.puts %(})
-end
diff --git a/pkgs/development/compilers/crystal/crystal2nix.nix b/pkgs/development/compilers/crystal/crystal2nix.nix
deleted file mode 100644
index 5fc40cd2374..00000000000
--- a/pkgs/development/compilers/crystal/crystal2nix.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ lib, crystal, nix-prefetch-git }:
-
-crystal.buildCrystalPackage {
-  pname = "crystal2nix";
-  version = "unstable-2018-07-31";
-
-  nixPrefetchGit = "${lib.getBin nix-prefetch-git}/bin/nix-prefetch-git";
-  unpackPhase = "substituteAll ${./crystal2nix.cr} crystal2nix.cr";
-
-  format = "crystal";
-
-  crystalBinaries.crystal2nix.src = "crystal2nix.cr";
-
-  # it will blow up without a shard.yml file
-  doInstallCheck = false;
-
-  meta = with lib; {
-    description = "Utility to convert Crystal's shard.lock files to a Nix file";
-    license = licenses.mit;
-    maintainers = with maintainers; [ manveru ];
-  };
-}
diff --git a/pkgs/development/compilers/crystal2nix/default.nix b/pkgs/development/compilers/crystal2nix/default.nix
new file mode 100644
index 00000000000..25cbbd4d01a
--- /dev/null
+++ b/pkgs/development/compilers/crystal2nix/default.nix
@@ -0,0 +1,36 @@
+{ lib, fetchFromGitHub, fetchgit, crystal, makeWrapper, nix-prefetch-git }:
+
+crystal.buildCrystalPackage rec {
+  pname = "crystal2nix";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "peterhoeg";
+    repo = "crystal2nix";
+    rev = "v${version}";
+    sha256 = "sha256-K1ElG8VC/D0axmSRaufH3cE50xNQisAmFucDkV+5O0s=";
+  };
+
+  format = "shards";
+
+  shardsFile = ./shards.nix;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    wrapProgram $out/bin/crystal2nix \
+      --prefix PATH : ${lib.makeBinPath [ nix-prefetch-git ]}
+  '';
+
+  # temporarily off. We need the checks to execute the wrapped binary
+  doCheck = false;
+
+  # it requires an internet connection when run
+  doInstallCheck = false;
+
+  meta = with lib; {
+    description = "Utility to convert Crystal's shard.lock files to a Nix file";
+    license = licenses.mit;
+    maintainers = with maintainers; [ manveru peterhoeg ];
+  };
+}
diff --git a/pkgs/development/compilers/crystal2nix/shards.nix b/pkgs/development/compilers/crystal2nix/shards.nix
new file mode 100644
index 00000000000..abfc0f93072
--- /dev/null
+++ b/pkgs/development/compilers/crystal2nix/shards.nix
@@ -0,0 +1,14 @@
+{
+  json_mapping = {
+    owner = "crystal-lang";
+    repo = "json_mapping.cr";
+    rev = "v0.1.0";
+    sha256 = "1qq5vs2085x7cwmp96rrjns0yz9kiz1lycxynfbz5psxll6b8p55";
+  };
+  yaml_mapping = {
+    owner = "crystal-lang";
+    repo = "yaml_mapping.cr";
+    rev = "v0.1.0";
+    sha256 = "02spz1521g59ar6rp0znnr01di766kknbjxjnygs39yn0cmpzqc1";
+  };
+}
diff --git a/pkgs/development/compilers/cudatoolkit/default.nix b/pkgs/development/compilers/cudatoolkit/default.nix
index cd4af47a21e..b3b7b305fba 100644
--- a/pkgs/development/compilers/cudatoolkit/default.nix
+++ b/pkgs/development/compilers/cudatoolkit/default.nix
@@ -146,5 +146,12 @@ in rec {
     gcc = gcc9;
   };
 
-  cudatoolkit_11 = cudatoolkit_11_0;
+  cudatoolkit_11_1 = common {
+    version = "11.1.1";
+    url = "https://developer.download.nvidia.com/compute/cuda/11.1.1/local_installers/cuda_11.1.1_455.32.00_linux.run";
+    sha256 = "13yxv2fgvdnqqbwh1zb80x4xhyfkbajfkwyfpdg9493010kngbiy";
+    gcc = gcc9;
+  };
+
+  cudatoolkit_11 = cudatoolkit_11_1;
 }
diff --git a/pkgs/development/compilers/ecl/default.nix b/pkgs/development/compilers/ecl/default.nix
index 0b37dcf64fc..40f3e38e506 100644
--- a/pkgs/development/compilers/ecl/default.nix
+++ b/pkgs/development/compilers/ecl/default.nix
@@ -36,6 +36,38 @@ stdenv.mkDerivation {
   };
 
   patches = [
+    # https://trac.sagemath.org/ticket/22191#comment:237
+    (fetchurl {
+      name = "ECL_WITH_LISP_FPE.patch";
+      url = "https://git.sagemath.org/sage.git/plain/build/pkgs/ecl/patches/ECL_WITH_LISP_FPE.patch?h=9.2";
+      sha256 = "0b194613avcmzr1k9gq725z41wdkg5rsa0q21kdw050iqpprcj1c";
+    })
+
+    # https://gitlab.com/embeddable-common-lisp/ecl/-/merge_requests/1
+    (fetchurl {
+      name = "write_error.patch";
+      url = "https://git.sagemath.org/sage.git/plain/build/pkgs/ecl/patches/write_error.patch?h=9.2";
+      sha256 = "1lvdvh77blnxp0zbd27dsbq1ljkb5qblabf1illszn4j7qgq88fh";
+    })
+
+    # Three patches to fix ecl's unicode handling (https://trac.sagemath.org/ticket/30122)
+    (fetchurl {
+      name = "0001-unicode-fix-ecl_string_case-for-non-ascii-characters.patch";
+      url = "https://git.sagemath.org/sage.git/plain/build/pkgs/ecl/patches/0001-unicode-fix-ecl_string_case-for-non-ascii-characters.patch?h=9.2";
+      sha256 = "0z8pnhawivrrbg4vz144nr2sz64jxp7764hn6df13bgkz84iqbmk";
+    })
+
+    (fetchurl {
+      name = "0002-cosmetic-fix-some-compiler-warnings.patch";
+      url = "https://git.sagemath.org/sage.git/plain/build/pkgs/ecl/patches/0002-cosmetic-fix-some-compiler-warnings.patch?h=9.2";
+      sha256 = "0msx3say9igwr9z5ywnr3gs6vsndnzlx47fmzwzh4l0m274cnia8";
+    })
+
+    (fetchurl {
+      name = "0003-printer-fix-printing-of-symbols-with-non-ascii-names.patch";
+      url = "https://git.sagemath.org/sage.git/plain/build/pkgs/ecl/patches/0003-printer-fix-printing-of-symbols-with-non-ascii-names.patch?h=9.2";
+      sha256 = "0ln5dsx6p265fkph3bl5wblgfi3f7frb4jl6v473wz3ibvcx1x9a";
+    })
   ];
 
   configureFlags = [
diff --git a/pkgs/development/compilers/flasm/default.nix b/pkgs/development/compilers/flasm/default.nix
new file mode 100644
index 00000000000..9393d4fc59f
--- /dev/null
+++ b/pkgs/development/compilers/flasm/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchzip, unzip, bison, flex, gperf, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "flasm";
+  version = "1.64";
+
+  src = fetchzip {
+    url = "https://www.nowrap.de/download/flasm16src.zip";
+    sha256 = "03hvxm66rb6rjwbr07hc3k7ia5rim2xlhxbd9qmcai9xwmyiqafg";
+    stripRoot = false;
+  };
+
+  makeFlags = [ "CC=cc" ];
+
+  nativeBuildInputs = [ unzip bison flex gperf ];
+
+  buildInputs = [ zlib ];
+
+  installPhase = ''
+    install -Dm755 flasm -t $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Assembler and disassembler for Flash (SWF) bytecode";
+    homepage = "http://flasm.sourceforge.net/";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ siraben ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/compilers/flutter/default.nix b/pkgs/development/compilers/flutter/default.nix
index baab0583fb0..3eea7f596b6 100644
--- a/pkgs/development/compilers/flutter/default.nix
+++ b/pkgs/development/compilers/flutter/default.nix
@@ -1,5 +1,4 @@
 { callPackage, dart }:
-
 let
   dart_stable = dart.override { version = "2.10.0"; };
   dart_beta = dart.override { version = "2.10.0"; };
@@ -8,7 +7,8 @@ let
   getPatches = dir:
     let files = builtins.attrNames (builtins.readDir dir);
     in map (f: dir + ("/" + f)) files;
-in {
+in
+{
   mkFlutter = mkFlutter;
   stable = mkFlutter rec {
     pname = "flutter";
diff --git a/pkgs/development/compilers/flutter/flutter.nix b/pkgs/development/compilers/flutter/flutter.nix
index 7fda2d616f3..b7769e88af3 100644
--- a/pkgs/development/compilers/flutter/flutter.nix
+++ b/pkgs/development/compilers/flutter/flutter.nix
@@ -1,10 +1,36 @@
-{ channel, pname, version, sha256Hash, patches, dart
-, filename ? "flutter_linux_${version}-${channel}.tar.xz"}:
-
-{ bash, buildFHSUserEnv, cacert, coreutils, git, makeWrapper, runCommand, stdenv
-, fetchurl, alsaLib, dbus, expat, libpulseaudio, libuuid, libX11, libxcb
-, libXcomposite, libXcursor, libXdamage, libXfixes, libGL, nspr, nss, systemd }:
-
+{ channel
+, pname
+, version
+, sha256Hash
+, patches
+, dart
+, filename ? "flutter_linux_${version}-${channel}.tar.xz"
+}:
+
+{ bash
+, buildFHSUserEnv
+, cacert
+, coreutils
+, git
+, runCommand
+, stdenv
+, fetchurl
+, alsaLib
+, dbus
+, expat
+, libpulseaudio
+, libuuid
+, libX11
+, libxcb
+, libXcomposite
+, libXcursor
+, libXdamage
+, libXfixes
+, libGL
+, nspr
+, nss
+, systemd
+}:
 let
   drvName = "flutter-${channel}-${version}";
   flutter = stdenv.mkDerivation {
@@ -16,7 +42,7 @@ let
       sha256 = sha256Hash;
     };
 
-    buildInputs = [ makeWrapper git ];
+    buildInputs = [ git ];
 
     inherit patches;
 
@@ -31,28 +57,27 @@ let
       SNAPSHOT_PATH="$FLUTTER_ROOT/bin/cache/flutter_tools.snapshot"
       STAMP_PATH="$FLUTTER_ROOT/bin/cache/flutter_tools.stamp"
       SCRIPT_PATH="$FLUTTER_TOOLS_DIR/bin/flutter_tools.dart"
-      DART_SDK_PATH="$FLUTTER_ROOT/bin/cache/dart-sdk"
-
-      DART="$DART_SDK_PATH/bin/dart"
-      PUB="$DART_SDK_PATH/bin/pub"
+      DART_SDK_PATH="${dart}"
 
       HOME=../.. # required for pub upgrade --offline, ~/.pub-cache
                  # path is relative otherwise it's replaced by /build/flutter
 
-      (cd "$FLUTTER_TOOLS_DIR" && "$PUB" upgrade --offline)
+      (cd "$FLUTTER_TOOLS_DIR" && ${dart}/bin/pub upgrade --offline)
 
       local revision="$(cd "$FLUTTER_ROOT"; git rev-parse HEAD)"
-      "$DART" --snapshot="$SNAPSHOT_PATH" --packages="$FLUTTER_TOOLS_DIR/.packages" "$SCRIPT_PATH"
+      ${dart}/bin/dart --snapshot="$SNAPSHOT_PATH" --packages="$FLUTTER_TOOLS_DIR/.packages" "$SCRIPT_PATH"
       echo "$revision" > "$STAMP_PATH"
       echo -n "${version}" > version
 
-      rm -rf bin/cache/{artifacts,downloads}
+      rm -rf bin/cache/{artifacts,dart-sdk,downloads}
       rm -f  bin/cache/*.stamp
     '';
 
     installPhase = ''
       mkdir -p $out
       cp -r . $out
+      mkdir -p $out/bin/cache/
+      ln -sf ${dart} $out/bin/cache/dart-sdk
     '';
   };
 
@@ -100,7 +125,9 @@ let
       ];
   };
 
-in runCommand drvName {
+in
+runCommand drvName
+{
   startScript = ''
     #!${bash}/bin/bash
     export PUB_CACHE=''${PUB_CACHE:-"$HOME/.pub-cache"}
@@ -126,8 +153,4 @@ in runCommand drvName {
 
   echo -n "$startScript" > $out/bin/${pname}
   chmod +x $out/bin/${pname}
-
-  mkdir -p $out/bin/cache/dart-sdk/
-  cp -r ${dart}/* $out/bin/cache/dart-sdk/
-  ln $out/bin/cache/dart-sdk/bin/dart $out/bin/dart
 ''
diff --git a/pkgs/development/compilers/gcc-arm-embedded/10/default.nix b/pkgs/development/compilers/gcc-arm-embedded/10/default.nix
new file mode 100644
index 00000000000..b300a190e1c
--- /dev/null
+++ b/pkgs/development/compilers/gcc-arm-embedded/10/default.nix
@@ -0,0 +1,53 @@
+{ stdenv
+, fetchurl
+, ncurses5
+, python27
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gcc-arm-embedded";
+  version = "10-2020-q4-major";
+  subdir = "10-2020q4";
+
+  suffix = {
+    aarch64-linux = "aarch64-linux";
+    x86_64-darwin = "mac";
+    x86_64-linux  = "x86_64-linux";
+  }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+
+  src = fetchurl {
+    url = "https://developer.arm.com/-/media/Files/downloads/gnu-rm/${subdir}/gcc-arm-none-eabi-${version}-${suffix}.tar.bz2";
+    sha256 = {
+      aarch64-linux = "0spkbh7vnda1w0nvavk342nb24nqxn8kln3k9j85mzil560qqg9l";
+      x86_64-darwin = "1h5xn0npwkilqxg7ifrymsl7kjpafr9r9gjqgcpb0kjxavijvldy";
+      x86_64-linux  = "066nvhg5zdf3jvy9w23y439ghf1hvbicdyrrw9957gwb8ym4q4r1";
+    }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+  };
+
+  dontConfigure = true;
+  dontBuild = true;
+  dontPatchELF = true;
+  dontStrip = true;
+
+  installPhase = ''
+    mkdir -p $out
+    cp -r * $out
+    ln -s $out/share/doc/gcc-arm-none-eabi/man $out/man
+  '';
+
+  preFixup = ''
+    find $out -type f | while read f; do
+      patchelf "$f" > /dev/null 2>&1 || continue
+      patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) "$f" || true
+      patchelf --set-rpath ${stdenv.lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 python27 ]} "$f" || true
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Pre-built GNU toolchain from ARM Cortex-M & Cortex-R processors";
+    homepage = "https://developer.arm.com/open-source/gnu-toolchain/gnu-rm";
+    license = with licenses; [ bsd2 gpl2 gpl3 lgpl21 lgpl3 mit ];
+    maintainers = with maintainers; [ prusnak ];
+    platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
+  };
+}
diff --git a/pkgs/development/compilers/gcc-arm-embedded/6/default.nix b/pkgs/development/compilers/gcc-arm-embedded/6/default.nix
index f635fce972f..7d8a4b5b14d 100644
--- a/pkgs/development/compilers/gcc-arm-embedded/6/default.nix
+++ b/pkgs/development/compilers/gcc-arm-embedded/6/default.nix
@@ -22,7 +22,10 @@ stdenv.mkDerivation rec {
     }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
   };
 
-  phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
+  dontConfigure = true;
+  dontBuild = true;
+  dontPatchELF = true;
+  dontStrip = true;
 
   installPhase = ''
     mkdir -p $out
@@ -30,12 +33,9 @@ stdenv.mkDerivation rec {
     ln -s $out/share/doc/gcc-arm-none-eabi/man $out/man
   '';
 
-  dontPatchELF = true;
-  dontStrip = true;
-
   preFixup = ''
     find $out -type f | while read f; do
-      patchelf $f > /dev/null 2>&1 || continue
+      patchelf "$f" > /dev/null 2>&1 || continue
       patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) "$f" || true
       patchelf --set-rpath ${stdenv.lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 python27 ]} "$f" || true
     done
diff --git a/pkgs/development/compilers/gcc-arm-embedded/7/default.nix b/pkgs/development/compilers/gcc-arm-embedded/7/default.nix
index 4944038fde4..633ae054d05 100644
--- a/pkgs/development/compilers/gcc-arm-embedded/7/default.nix
+++ b/pkgs/development/compilers/gcc-arm-embedded/7/default.nix
@@ -22,7 +22,10 @@ stdenv.mkDerivation rec {
     }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
   };
 
-  phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
+  dontConfigure = true;
+  dontBuild = true;
+  dontPatchELF = true;
+  dontStrip = true;
 
   installPhase = ''
     mkdir -p $out
@@ -30,12 +33,9 @@ stdenv.mkDerivation rec {
     ln -s $out/share/doc/gcc-arm-none-eabi/man $out/man
   '';
 
-  dontPatchELF = true;
-  dontStrip = true;
-
   preFixup = ''
     find $out -type f | while read f; do
-      patchelf $f > /dev/null 2>&1 || continue
+      patchelf "$f" > /dev/null 2>&1 || continue
       patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) "$f" || true
       patchelf --set-rpath ${stdenv.lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 python27 ]} "$f" || true
     done
diff --git a/pkgs/development/compilers/gcc-arm-embedded/8/default.nix b/pkgs/development/compilers/gcc-arm-embedded/8/default.nix
index 510889dad62..99ec9d1b549 100644
--- a/pkgs/development/compilers/gcc-arm-embedded/8/default.nix
+++ b/pkgs/development/compilers/gcc-arm-embedded/8/default.nix
@@ -22,7 +22,10 @@ stdenv.mkDerivation rec {
     }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
   };
 
-  phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
+  dontConfigure = true;
+  dontBuild = true;
+  dontPatchELF = true;
+  dontStrip = true;
 
   installPhase = ''
     mkdir -p $out
@@ -30,12 +33,9 @@ stdenv.mkDerivation rec {
     ln -s $out/share/doc/gcc-arm-none-eabi/man $out/man
   '';
 
-  dontPatchELF = true;
-  dontStrip = true;
-
   preFixup = ''
     find $out -type f | while read f; do
-      patchelf $f > /dev/null 2>&1 || continue
+      patchelf "$f" > /dev/null 2>&1 || continue
       patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) "$f" || true
       patchelf --set-rpath ${stdenv.lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 python27 ]} "$f" || true
     done
diff --git a/pkgs/development/compilers/gcc-arm-embedded/9/default.nix b/pkgs/development/compilers/gcc-arm-embedded/9/default.nix
index 98b126e85f8..c4c1ebc1d8a 100644
--- a/pkgs/development/compilers/gcc-arm-embedded/9/default.nix
+++ b/pkgs/development/compilers/gcc-arm-embedded/9/default.nix
@@ -24,7 +24,10 @@ stdenv.mkDerivation rec {
     }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
   };
 
-  phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
+  dontConfigure = true;
+  dontBuild = true;
+  dontPatchELF = true;
+  dontStrip = true;
 
   installPhase = ''
     mkdir -p $out
@@ -32,12 +35,9 @@ stdenv.mkDerivation rec {
     ln -s $out/share/doc/gcc-arm-none-eabi/man $out/man
   '';
 
-  dontPatchELF = true;
-  dontStrip = true;
-
   preFixup = ''
     find $out -type f | while read f; do
-      patchelf $f > /dev/null 2>&1 || continue
+      patchelf "$f" > /dev/null 2>&1 || continue
       patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) "$f" || true
       patchelf --set-rpath ${stdenv.lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 python27 ]} "$f" || true
     done
diff --git a/pkgs/development/compilers/gcc/10/Added-mcf-thread-model-support-from-mcfgthread.patch b/pkgs/development/compilers/gcc/10/Added-mcf-thread-model-support-from-mcfgthread.patch
new file mode 100644
index 00000000000..d9809e828f1
--- /dev/null
+++ b/pkgs/development/compilers/gcc/10/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/pkgs/development/compilers/gcc/10/default.nix b/pkgs/development/compilers/gcc/10/default.nix
index 4f05cd3144c..c31e7c426e0 100644
--- a/pkgs/development/compilers/gcc/10/default.nix
+++ b/pkgs/development/compilers/gcc/10/default.nix
@@ -7,7 +7,12 @@
 , profiledCompiler ? false
 , langJit ? false
 , staticCompiler ? false
-, enableShared ? true
+, # 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)
@@ -61,10 +66,9 @@ let majorVersion = "10";
       ++ optional langAda ../gnat-cflags.patch
       ++ optional langFortran ../gfortran-driving.patch
       ++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch
-      ++ optional (!crossStageStatic && targetPlatform.isMinGW) (fetchpatch {
-        url = "https://raw.githubusercontent.com/lhmouse/MINGW-packages/${import ../common/mfcgthreads-patches-repo.nix}/mingw-w64-gcc-git/9000-gcc-${majorVersion}-branch-Added-mcf-thread-model-support-from-mcfgthread.patch";
-        sha256 = "1in5kvcknlpi9z1vvjw6jfmwy8k12zvbqlqfnq84qpm99r0rh00a";
-      });
+
+      # 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";
@@ -137,10 +141,10 @@ stdenv.mkDerivation ({
         )
     else "")
       + stdenv.lib.optionalString targetPlatform.isAvr ''
-	        makeFlagsArray+=(
-	           'LIMITS_H_TEST=false'
-	        )
-	      '';
+            makeFlagsArray+=(
+               'LIMITS_H_TEST=false'
+            )
+          '';
 
   inherit noSysDirs staticCompiler crossStageStatic
     libcCross crossMingw;
diff --git a/pkgs/development/compilers/gcc/4.8/default.nix b/pkgs/development/compilers/gcc/4.8/default.nix
index 213d0c91ff3..617a19e238b 100644
--- a/pkgs/development/compilers/gcc/4.8/default.nix
+++ b/pkgs/development/compilers/gcc/4.8/default.nix
@@ -7,7 +7,12 @@
 , profiledCompiler ? false
 , langJit ? false
 , staticCompiler ? false
-, enableShared ? true
+, # 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); required for Java
diff --git a/pkgs/development/compilers/gcc/4.9/default.nix b/pkgs/development/compilers/gcc/4.9/default.nix
index 98d4b61648e..7ea80ffbeb3 100644
--- a/pkgs/development/compilers/gcc/4.9/default.nix
+++ b/pkgs/development/compilers/gcc/4.9/default.nix
@@ -7,7 +7,12 @@
 , profiledCompiler ? false
 , langJit ? false
 , staticCompiler ? false
-, enableShared ? true
+, # 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); required for Java
diff --git a/pkgs/development/compilers/gcc/6/Added-mcf-thread-model-support-from-mcfgthread.patch b/pkgs/development/compilers/gcc/6/Added-mcf-thread-model-support-from-mcfgthread.patch
new file mode 100644
index 00000000000..25e3a902cbf
--- /dev/null
+++ b/pkgs/development/compilers/gcc/6/Added-mcf-thread-model-support-from-mcfgthread.patch
@@ -0,0 +1,285 @@
+From 30534f48c6ede142dad0008d1641392d82b8a137 Mon Sep 17 00:00:00 2001
+From: Liu Hao <lh_mouse@126.com>
+Date: Mon, 18 Apr 2016 11:50:55 +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 +++++++++++++++++++++++
+ 15 files changed, 71 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 858b878d4b3..6f745790d64 100644
+--- a/gcc/config.gcc
++++ b/gcc/config.gcc
+@@ -1722,6 +1722,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 fe11333a2d1..cac85802f38 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 e04818966fa..7b75a372506 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 954673c1c43..6b5667f1c70 100755
+--- a/gcc/configure
++++ b/gcc/configure
+@@ -11702,7 +11702,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 4c65d441e72..e6fa04ada4f 100644
+--- a/gcc/configure.ac
++++ b/gcc/configure.ac
+@@ -1593,7 +1593,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 eab2765d7fd..f4058b6f4a2 100644
+--- a/libatomic/configure.tgt
++++ b/libatomic/configure.tgt
+@@ -124,7 +124,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 2b139b8befc..fb18d2a042e 100644
+--- a/libgcc/config.host
++++ b/libgcc/config.host
+@@ -712,6 +712,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
+@@ -736,6 +739,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 e7d6c75a6f7..664d0f852c4 100644
+--- a/libgcc/configure
++++ b/libgcc/configure
+@@ -5077,6 +5077,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 b5ae4213f94..c484d3aee5f 100755
+--- a/libstdc++-v3/configure
++++ b/libstdc++-v3/configure
+@@ -15177,6 +15177,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 e6520c1094f..3d6907796dd 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>
+@@ -163,3 +179,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 9b617998ffe..a441fdbb616 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>
+ #if defined(__GTHREADS) && defined(__GTHREAD_HAS_COND) \
+@@ -424,3 +445,5 @@ namespace __cxxabiv1
+ #endif
+   }
+ }
++
++#endif
+-- 
+2.12.1
+
diff --git a/pkgs/development/compilers/gcc/6/default.nix b/pkgs/development/compilers/gcc/6/default.nix
index a2f034a4827..029777430ff 100644
--- a/pkgs/development/compilers/gcc/6/default.nix
+++ b/pkgs/development/compilers/gcc/6/default.nix
@@ -8,7 +8,12 @@
 , profiledCompiler ? false
 , langJit ? false
 , staticCompiler ? false
-, enableShared ? true
+, # 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
 , flex
@@ -71,10 +76,9 @@ let majorVersion = "6";
       ++ optional langAda ../gnat-cflags.patch
       ++ optional langFortran ../gfortran-driving.patch
       ++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch
-      ++ optional (!crossStageStatic && targetPlatform.isMinGW) (fetchpatch {
-        url = "https://raw.githubusercontent.com/lhmouse/MINGW-packages/${import ../common/mfcgthreads-patches-repo.nix}/mingw-w64-gcc-git/9000-gcc-${majorVersion}-branch-Added-mcf-thread-model-support-from-mcfgthread.patch";
-        sha256 = "1c449jgm1vx9g4kv82bxmvlgrwb8f6kwkl0gqmjlmhf7f4hjy2nr";
-      });
+
+      # Obtain latest patch with ../update-mcfgthread-patches.sh
+      ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch;
 
     javaEcj = fetchurl {
       # The `$(top_srcdir)/ecj.jar' file is automatically picked up at
diff --git a/pkgs/development/compilers/gcc/7/Added-mcf-thread-model-support-from-mcfgthread.patch b/pkgs/development/compilers/gcc/7/Added-mcf-thread-model-support-from-mcfgthread.patch
new file mode 100644
index 00000000000..0c5d0ee9e46
--- /dev/null
+++ b/pkgs/development/compilers/gcc/7/Added-mcf-thread-model-support-from-mcfgthread.patch
@@ -0,0 +1,285 @@
+From d3cb66e4751fcbd581b81a14a973de2d78fc02ad Mon Sep 17 00:00:00 2001
+From: Liu Hao <lh_mouse@126.com>
+Date: Mon, 18 Apr 2016 11:50:55 +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 +++++++++++++++++++++++
+ 15 files changed, 71 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 8f91197f34e..59db37cac04 100644
+--- a/gcc/config.gcc
++++ b/gcc/config.gcc
+@@ -1719,6 +1719,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 270ec0dd037..88966f79695 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 e5f014cb473..989cfbe894e 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 ea73b151a4e..317200e5620 100755
+--- a/gcc/configure
++++ b/gcc/configure
+@@ -11681,7 +11681,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 9d4c792a33f..d51899a5676 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 b8af3ab2546..73248438a8c 100644
+--- a/libatomic/configure.tgt
++++ b/libatomic/configure.tgt
+@@ -125,7 +125,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 b279a6458f9..20d22f585da 100644
+--- a/libgcc/config.host
++++ b/libgcc/config.host
+@@ -710,6 +710,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
+@@ -734,6 +737,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 45c459788c3..8fc569ef16e 100644
+--- a/libgcc/configure
++++ b/libgcc/configure
+@@ -5086,6 +5086,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 2406cb9d946..50e7e4ced89 100755
+--- a/libstdc++-v3/configure
++++ b/libstdc++-v3/configure
+@@ -15182,6 +15182,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 923a0707556..a55d85aad2d 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 19953bc52f0..72fd5f26d5b 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
+-- 
+2.12.1
+
diff --git a/pkgs/development/compilers/gcc/7/default.nix b/pkgs/development/compilers/gcc/7/default.nix
index 6d066044ec1..d950d6ac35b 100644
--- a/pkgs/development/compilers/gcc/7/default.nix
+++ b/pkgs/development/compilers/gcc/7/default.nix
@@ -6,7 +6,12 @@
 , profiledCompiler ? false
 , langJit ? false
 , staticCompiler ? false
-, enableShared ? true
+, # 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)
@@ -68,10 +73,9 @@ let majorVersion = "7";
       ++ optional langFortran ../gfortran-driving.patch
       ++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch
       ++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch
-      ++ optional (!crossStageStatic && targetPlatform.isMinGW) (fetchpatch {
-        url = "https://raw.githubusercontent.com/lhmouse/MINGW-packages/${import ../common/mfcgthreads-patches-repo.nix}/mingw-w64-gcc-git/9000-gcc-${majorVersion}-branch-Added-mcf-thread-model-support-from-mcfgthread.patch";
-        sha256 = "1nyjnshpq5gbcbbpfv27hy4ajvycmgkpiabkjlxnnrnq1d99k1ay";
-      });
+
+      # 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";
diff --git a/pkgs/development/compilers/gcc/8/Added-mcf-thread-model-support-from-mcfgthread.patch b/pkgs/development/compilers/gcc/8/Added-mcf-thread-model-support-from-mcfgthread.patch
new file mode 100644
index 00000000000..d9809e828f1
--- /dev/null
+++ b/pkgs/development/compilers/gcc/8/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/pkgs/development/compilers/gcc/8/default.nix b/pkgs/development/compilers/gcc/8/default.nix
index 9e6a24d1294..683a9edfe09 100644
--- a/pkgs/development/compilers/gcc/8/default.nix
+++ b/pkgs/development/compilers/gcc/8/default.nix
@@ -6,7 +6,12 @@
 , profiledCompiler ? false
 , langJit ? false
 , staticCompiler ? false
-, enableShared ? true
+, # 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)
@@ -58,10 +63,9 @@ let majorVersion = "8";
       ++ optional langFortran ../gfortran-driving.patch
       ++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch
       ++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch
-      ++ optional (!crossStageStatic && targetPlatform.isMinGW) (fetchpatch {
-        url = "https://raw.githubusercontent.com/lhmouse/MINGW-packages/${import ../common/mfcgthreads-patches-repo.nix}/mingw-w64-gcc-git/9000-gcc-${majorVersion}-branch-Added-mcf-thread-model-support-from-mcfgthread.patch";
-        sha256 = "1in5kvcknlpi9z1vvjw6jfmwy8k12zvbqlqfnq84qpm99r0rh00a";
-      });
+
+      # 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";
@@ -134,10 +138,10 @@ stdenv.mkDerivation ({
         )
     else "")
       + stdenv.lib.optionalString targetPlatform.isAvr ''
-	        makeFlagsArray+=(
-	           'LIMITS_H_TEST=false'
-	        )
-	      '';
+            makeFlagsArray+=(
+               'LIMITS_H_TEST=false'
+            )
+          '';
 
   inherit noSysDirs staticCompiler crossStageStatic
     libcCross crossMingw;
diff --git a/pkgs/development/compilers/gcc/9/Added-mcf-thread-model-support-from-mcfgthread.patch b/pkgs/development/compilers/gcc/9/Added-mcf-thread-model-support-from-mcfgthread.patch
new file mode 100644
index 00000000000..d9809e828f1
--- /dev/null
+++ b/pkgs/development/compilers/gcc/9/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/pkgs/development/compilers/gcc/9/default.nix b/pkgs/development/compilers/gcc/9/default.nix
index c64a9dcc3f5..7827cb98505 100644
--- a/pkgs/development/compilers/gcc/9/default.nix
+++ b/pkgs/development/compilers/gcc/9/default.nix
@@ -8,7 +8,12 @@
 , profiledCompiler ? false
 , langJit ? false
 , staticCompiler ? false
-, enableShared ? true
+, # 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)
@@ -74,10 +79,9 @@ let majorVersion = "9";
       ++ optional langD ../libphobos.patch
       ++ optional langFortran ../gfortran-driving.patch
       ++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch
-      ++ optional (!crossStageStatic && targetPlatform.isMinGW) (fetchpatch {
-        url = "https://raw.githubusercontent.com/lhmouse/MINGW-packages/${import ../common/mfcgthreads-patches-repo.nix}/mingw-w64-gcc-git/9000-gcc-${majorVersion}-branch-Added-mcf-thread-model-support-from-mcfgthread.patch";
-        sha256 = "1in5kvcknlpi9z1vvjw6jfmwy8k12zvbqlqfnq84qpm99r0rh00a";
-      });
+
+      # 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";
diff --git a/pkgs/development/compilers/gcc/common/configure-flags.nix b/pkgs/development/compilers/gcc/common/configure-flags.nix
index 7e0d691412b..12d3f5d8987 100644
--- a/pkgs/development/compilers/gcc/common/configure-flags.nix
+++ b/pkgs/development/compilers/gcc/common/configure-flags.nix
@@ -73,7 +73,7 @@ let
       "--enable-libssp"
       "--disable-nls"
       # To keep ABI compatibility with upstream mingw-w64
-      "--enable-fully-dynamic-string"      
+      "--enable-fully-dynamic-string"
     ] ++ lib.optionals (crossMingw && targetPlatform.isx86_32) [
       # See Note [Windows Exception Handling]
       "--enable-sjlj-exceptions"
@@ -187,13 +187,16 @@ let
       "--disable-symvers"
       "libat_cv_have_ifunc=no"
       "--disable-gnu-indirect-function"
-    ] 
+    ]
     ++ lib.optionals langJit [
       "--enable-host-shared"
-    ] 
+    ]
     ++ lib.optionals (langD) [
       "--with-target-system-zlib=yes"
     ]
+    # Make -fcommon default on gcc10
+    # TODO: fix all packages (probably 100+) and remove that
+    ++ lib.optional (version >= "10.1.0") "--with-specs=%{!fno-common:%{!fcommon:-fcommon}}"
   ;
 
 in configureFlags
diff --git a/pkgs/development/compilers/gcc/common/mfcgthreads-patches-repo.nix b/pkgs/development/compilers/gcc/common/mfcgthreads-patches-repo.nix
deleted file mode 100644
index f8822c6dba0..00000000000
--- a/pkgs/development/compilers/gcc/common/mfcgthreads-patches-repo.nix
+++ /dev/null
@@ -1 +0,0 @@
-"740f233da00c4fb5bcc225b2e29768824bcecc58"
diff --git a/pkgs/development/compilers/gcc/update-mcfgthread-patches.sh b/pkgs/development/compilers/gcc/update-mcfgthread-patches.sh
new file mode 100755
index 00000000000..c4fd79b26c3
--- /dev/null
+++ b/pkgs/development/compilers/gcc/update-mcfgthread-patches.sh
@@ -0,0 +1,15 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p curl
+
+# We use this script to download local copies instead of using
+# fetchpatch because lmhouse/MINGW-packages-dev is constantly rebased
+# against msys2/MINGW-packages-dev and won't have stable commit hashes.
+
+name=Added-mcf-thread-model-support-from-mcfgthread.patch
+source=https://raw.githubusercontent.com/lhmouse/MINGW-packages-dev/master/mingw-w64-gcc-git
+dest=$(dirname "$0")
+
+for majorVersion in 6 7 8 9 10; do
+    curl "$source/9000-gcc-$majorVersion-branch-$name" \
+         > "$dest/$majorVersion/$name"
+done
diff --git a/pkgs/development/compilers/ghc/8.10.3.nix b/pkgs/development/compilers/ghc/8.10.3.nix
new file mode 100644
index 00000000000..c24b72fb43b
--- /dev/null
+++ b/pkgs/development/compilers/ghc/8.10.3.nix
@@ -0,0 +1,256 @@
+{ stdenv, pkgsBuildTarget, targetPackages
+
+# build-tools
+, bootPkgs
+, autoconf, automake, coreutils, fetchpatch, fetchurl, perl, python3, m4, sphinx
+, bash
+
+, libiconv ? null, ncurses
+
+, # GHC can be built with system libffi or a bundled one.
+  libffi ? null
+
+, useLLVM ? !stdenv.targetPlatform.isx86
+, # LLVM is conceptually a run-time-only depedendency, but for
+  # non-x86, we need LLVM to bootstrap later stages, so it becomes a
+  # build-time dependency too.
+  buildLlvmPackages, llvmPackages
+
+, # 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 ? !(stdenv.lib.any (stdenv.lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
+
+, # If enabled, use -fPIC when compiling static libs.
+  enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
+
+  # aarch64 outputs otherwise exceed 2GB limit
+, enableProfiledLibs ? !stdenv.targetPlatform.isAarch64
+
+, # Whether to build dynamic libs for the standard library (on the target
+  # platform). Static libs are always built.
+  enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
+
+, # Whether to build terminfo.
+  enableTerminfo ? !stdenv.targetPlatform.isWindows
+
+, # What flavour to build. An empty string indicates no
+  # specific flavour and falls back to ghc default values.
+  ghcFlavour ? stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
+    (if useLLVM then "perf-cross" else "perf-cross-ncg")
+
+, # Whether to disable the large address space allocator
+  # necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
+  disableLargeAddressSpace ? stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64
+}:
+
+assert !enableIntegerSimple -> gmp != null;
+
+let
+  inherit (stdenv) buildPlatform hostPlatform targetPlatform;
+
+  inherit (bootPkgs) ghc;
+
+  # TODO(@Ericson2314) Make unconditional
+  targetPrefix = stdenv.lib.optionalString
+    (targetPlatform != hostPlatform)
+    "${targetPlatform.config}-";
+
+  buildMK = ''
+    BuildFlavour = ${ghcFlavour}
+    ifneq \"\$(BuildFlavour)\" \"\"
+    include mk/flavours/\$(BuildFlavour).mk
+    endif
+    DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
+    INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
+  '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
+    Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
+    CrossCompilePrefix = ${targetPrefix}
+    HADDOCK_DOCS = NO
+    BUILD_SPHINX_HTML = NO
+    BUILD_SPHINX_PDF = NO
+  '' + stdenv.lib.optionalString (!enableProfiledLibs) ''
+    GhcLibWays = "v dyn"
+  '' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
+    GhcLibHcOpts += -fPIC
+    GhcRtsHcOpts += -fPIC
+  '' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
+    EXTRA_CC_OPTS += -std=gnu99
+  '';
+
+  # Splicer will pull out correct variations
+  libDeps = platform: stdenv.lib.optional enableTerminfo ncurses
+    ++ [libffi]
+    ++ stdenv.lib.optional (!enableIntegerSimple) gmp
+    ++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
+
+  toolsForTarget = [
+    pkgsBuildTarget.targetPackages.stdenv.cc
+  ] ++ stdenv.lib.optional useLLVM buildLlvmPackages.llvm;
+
+  targetCC = builtins.head toolsForTarget;
+
+  # ld.gold is disabled for musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
+  # see #84670 and #49071 for more background.
+  useLdGold = targetPlatform.isLinux && !(targetPlatform.useLLVM or false) && !targetPlatform.isMusl;
+
+in
+stdenv.mkDerivation (rec {
+  version = "8.10.3";
+  name = "${targetPrefix}ghc-${version}";
+
+  src = fetchurl {
+    url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
+    sha256 = "0cdrdvs5qnqr93cr9zvrlfjv2xr671kjjghnsw4afa4hahcq7p6c";
+  };
+
+  enableParallelBuilding = true;
+
+  outputs = [ "out" "doc" ];
+
+  patches = stdenv.lib.optionals stdenv.isDarwin [
+    # Make Block.h compile with c++ compilers. Remove with the next release
+    (fetchpatch {
+      url = "https://gitlab.haskell.org/ghc/ghc/-/commit/97d0b0a367e4c6a52a17c3299439ac7de129da24.patch";
+      sha256 = "0r4zjj0bv1x1m2dgxp3adsf2xkr94fjnyj1igsivd9ilbs5ja0b5";
+    })
+  ];
+
+  postPatch = "patchShebangs .";
+
+  # GHC is a bit confused on its cross terminology.
+  preConfigure = ''
+    for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
+      export "''${env#TARGET_}=''${!env}"
+    done
+    # GHC is a bit confused on its cross terminology, as these would normally be
+    # the *host* tools.
+    export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
+    export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
+    # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
+    export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.lib.optionalString useLdGold ".gold"}"
+    export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
+    export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
+    export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
+    export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
+    export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
+    export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
+
+    echo -n "${buildMK}" > mk/build.mk
+    sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
+  '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
+    export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+    export NIX_LDFLAGS+=" -no_dtrace_dof"
+  '' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
+    sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
+  '' + stdenv.lib.optionalString targetPlatform.isMusl ''
+      echo "patching llvm-targets for musl targets..."
+      echo "Cloning these existing '*-linux-gnu*' targets:"
+      grep linux-gnu llvm-targets | sed 's/^/  /'
+      echo "(go go gadget sed)"
+      sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets
+      echo "llvm-targets now contains these '*-linux-musl*' targets:"
+      grep linux-musl llvm-targets | sed 's/^/  /'
+
+      echo "And now patching to preserve '-musleabi' as done with '-gnueabi'"
+      # (aclocal.m4 is actual source, but patch configure as well since we don't re-gen)
+      for x in configure aclocal.m4; do
+        substituteInPlace $x \
+          --replace '*-android*|*-gnueabi*)' \
+                    '*-android*|*-gnueabi*|*-musleabi*)'
+      done
+  '';
+
+  # TODO(@Ericson2314): Always pass "--target" and always prefix.
+  configurePlatforms = [ "build" "host" ]
+    ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
+
+  # `--with` flags for libraries needed for RTS linker
+  configureFlags = [
+    "--datadir=$doc/share/doc/ghc"
+    "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
+  ] ++ stdenv.lib.optionals (libffi != null) [
+    "--with-system-libffi"
+    "--with-ffi-includes=${targetPackages.libffi.dev}/include"
+    "--with-ffi-libraries=${targetPackages.libffi.out}/lib"
+  ] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
+    "--with-gmp-includes=${targetPackages.gmp.dev}/include"
+    "--with-gmp-libraries=${targetPackages.gmp.out}/lib"
+  ] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
+    "--with-iconv-includes=${libiconv}/include"
+    "--with-iconv-libraries=${libiconv}/lib"
+  ] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
+    "--enable-bootstrap-with-devel-snapshot"
+  ] ++ stdenv.lib.optionals useLdGold [
+    "CFLAGS=-fuse-ld=gold"
+    "CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
+    "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
+  ] ++ stdenv.lib.optionals (disableLargeAddressSpace) [
+    "--disable-large-address-space"
+  ];
+
+  # Make sure we never relax`$PATH` and hooks support for compatibility.
+  strictDeps = true;
+
+  # Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself.
+  dontAddExtraLibs = true;
+
+  nativeBuildInputs = [
+    perl autoconf automake m4 python3 sphinx
+    ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
+  ];
+
+  # For building runtime libs
+  depsBuildTarget = toolsForTarget;
+
+  buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
+
+  propagatedBuildInputs = [ targetPackages.stdenv.cc ]
+    ++ stdenv.lib.optional useLLVM llvmPackages.llvm;
+
+  depsTargetTarget = map stdenv.lib.getDev (libDeps targetPlatform);
+  depsTargetTargetPropagated = map (stdenv.lib.getOutput "out") (libDeps targetPlatform);
+
+  # required, because otherwise all symbols from HSffi.o are stripped, and
+  # that in turn causes GHCi to abort
+  stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
+
+  checkTarget = "test";
+
+  hardeningDisable = [ "format" ] ++ stdenv.lib.optional stdenv.targetPlatform.isMusl "pie";
+
+  postInstall = ''
+    # Install the bash completion file.
+    install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
+
+    # Patch scripts to include "readelf" and "cat" in $PATH.
+    for i in "$out/bin/"*; do
+      test ! -h $i || continue
+      egrep --quiet '^#!' <(head -n 1 $i) || continue
+      sed -i -e '2i export PATH="$PATH:${stdenv.lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
+    done
+  '';
+
+  passthru = {
+    inherit bootPkgs targetPrefix;
+
+    inherit llvmPackages;
+    inherit enableShared;
+
+    # Our Cabal compiler name
+    haskellCompilerName = "ghc-${version}";
+  };
+
+  meta = {
+    homepage = "http://haskell.org/ghc";
+    description = "The Glasgow Haskell Compiler";
+    maintainers = with stdenv.lib.maintainers; [ marcweber andres peti ];
+    timeout = 24 * 3600;
+    inherit (ghc.meta) license platforms;
+  };
+
+} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
+  dontStrip = true;
+  dontPatchELF = true;
+  noAuditTmpdir = true;
+})
diff --git a/pkgs/development/compilers/ghc/9.0.1.nix b/pkgs/development/compilers/ghc/9.0.1.nix
index bdb1a7555c2..d86cce9849c 100644
--- a/pkgs/development/compilers/ghc/9.0.1.nix
+++ b/pkgs/development/compilers/ghc/9.0.1.nix
@@ -6,6 +6,7 @@
 , bash
 
 , libiconv ? null, ncurses
+, glibcLocales ? null
 
 , # GHC can be built with system libffi or a bundled one.
   libffi ? null
@@ -95,12 +96,12 @@ let
 
 in
 stdenv.mkDerivation (rec {
-  version = "9.0.0.20200925";
+  version = "9.0.0.20201227";
   name = "${targetPrefix}ghc-${version}";
 
   src = fetchurl {
-    url = "https://downloads.haskell.org/ghc/9.0.1-alpha1/ghc-${version}-src.tar.xz";
-    sha256 = "1c6vgic0bx0c4c6gszq7znvc5gxf0lgh630283mivbs1lyiqj88l";
+    url = "https://downloads.haskell.org/ghc/9.0.1-rc1/ghc-${version}-src.tar.xz";
+    sha256 = "1kg227fzg9qq2p7r8xqr99vvnx7ind4clxkydikyzf3vqvaacjfy";
   };
 
   enableParallelBuilding = true;
@@ -109,6 +110,9 @@ stdenv.mkDerivation (rec {
 
   postPatch = "patchShebangs .";
 
+  # GHC needs the locale configured during the Haddock phase.
+  LANG = "en_US.UTF-8";
+
   # GHC is a bit confused on its cross terminology.
   preConfigure = ''
     for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
@@ -129,6 +133,8 @@ stdenv.mkDerivation (rec {
 
     echo -n "${buildMK}" > mk/build.mk
     sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
+  '' + stdenv.lib.optionalString (stdenv.isLinux) ''
+    export LOCALE_ARCHIVE="${glibcLocales}/lib/locale/locale-archive"
   '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
     export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
   '' + stdenv.lib.optionalString stdenv.isDarwin ''
@@ -185,7 +191,7 @@ stdenv.mkDerivation (rec {
   strictDeps = true;
 
   # Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself.
-	dontAddExtraLibs = true;
+  dontAddExtraLibs = true;
 
   nativeBuildInputs = [
     perl autoconf automake m4 python3 sphinx
diff --git a/pkgs/development/compilers/go/2-dev.nix b/pkgs/development/compilers/go/2-dev.nix
new file mode 100644
index 00000000000..9af08dde19e
--- /dev/null
+++ b/pkgs/development/compilers/go/2-dev.nix
@@ -0,0 +1,262 @@
+{ pkgs, stdenv, fetchurl, fetchgit, tzdata, iana-etc, runCommand
+, perl, which, pkgconfig, patch, procps, pcre, cacert, Security, Foundation
+, mailcap, runtimeShell
+, buildPackages
+, pkgsBuildTarget
+, fetchpatch
+}:
+
+let
+
+  inherit (stdenv.lib) optionals optionalString;
+
+  goBootstrap = runCommand "go-bootstrap" {} ''
+    mkdir $out
+    cp -rf ${buildPackages.go_bootstrap}/* $out/
+    chmod -R u+w $out
+    find $out -name "*.c" -delete
+    cp -rf $out/bin/* $out/share/go/bin/
+  '';
+
+  goarch = platform: {
+    "i686" = "386";
+    "x86_64" = "amd64";
+    "aarch64" = "arm64";
+    "arm" = "arm";
+    "armv5tel" = "arm";
+    "armv6l" = "arm";
+    "armv7l" = "arm";
+    "powerpc64le" = "ppc64le";
+  }.${platform.parsed.cpu.name} or (throw "Unsupported system");
+
+  # We need a target compiler which is still runnable at build time,
+  # to handle the cross-building case where build != host == target
+  targetCC = pkgsBuildTarget.targetPackages.stdenv.cc;
+in
+
+stdenv.mkDerivation rec {
+  pname = "go2-unstable";
+  version = "2020-12-08";
+
+  src = fetchgit {
+    url = https://go.googlesource.com/go;
+    rev = "abe4d3dce12252ed09216eaa67b7dab8c8922537";
+    sha256 = "sha256:1d46w8426148q81fvrifx9glgn402jvf29n44i8j8g1pvzkfckh6";
+  };
+
+  # perl is used for testing go vet
+  nativeBuildInputs = [ perl which pkgconfig patch procps ];
+  buildInputs = [ cacert pcre ]
+    ++ optionals stdenv.isLinux [ stdenv.cc.libc.out ]
+    ++ optionals (stdenv.hostPlatform.libc == "glibc") [ stdenv.cc.libc.static ];
+
+  depsTargetTargetPropagated = optionals stdenv.isDarwin [ Security Foundation ];
+
+  hardeningDisable = [ "all" ];
+
+  prePatch = ''
+    echo '${version}' > VERSION
+    patchShebangs ./ # replace /bin/bash
+
+    # This source produces shell script at run time,
+    # and thus it is not corrected by patchShebangs.
+    substituteInPlace misc/cgo/testcarchive/carchive_test.go \
+      --replace '#!/usr/bin/env bash' '#!${runtimeShell}'
+
+    # Patch the mimetype database location which is missing on NixOS.
+    # but also allow static binaries built with NixOS to run outside nix
+    sed -i 's,\"/etc/mime.types,"${mailcap}/etc/mime.types\"\,\n\t&,' src/mime/type_unix.go
+
+    # Disabling the 'os/http/net' tests (they want files not available in
+    # chroot builds)
+    rm src/net/{listen,parse}_test.go
+    rm src/syscall/exec_linux_test.go
+
+    # !!! substituteInPlace does not seems to be effective.
+    # The os test wants to read files in an existing path. Just don't let it be /usr/bin.
+    sed -i 's,/usr/bin,'"`pwd`", src/os/os_test.go
+    sed -i 's,/bin/pwd,'"`type -P pwd`", src/os/os_test.go
+    # Fails on aarch64
+    sed -i '/TestFallocate/aif true \{ return\; \}' src/cmd/link/internal/ld/fallocate_test.go
+    # Skip this test since ssl patches mess it up.
+    sed -i '/TestLoadSystemCertsLoadColonSeparatedDirs/aif true \{ return\; \}' src/crypto/x509/root_unix_test.go
+    # Disable another PIE test which breaks.
+    sed -i '/TestTrivialPIE/aif true \{ return\; \}' misc/cgo/testshared/shared_test.go
+    # Disable the BuildModePie test
+    sed -i '/TestBuildmodePIE/aif true \{ return\; \}' src/cmd/go/go_test.go
+    # Disable the unix socket test
+    sed -i '/TestShutdownUnix/aif true \{ return\; \}' src/net/net_test.go
+    # Disable the hostname test
+    sed -i '/TestHostname/aif true \{ return\; \}' src/os/os_test.go
+    # ParseInLocation fails the test
+    sed -i '/TestParseInSydney/aif true \{ return\; \}' src/time/format_test.go
+    # Remove the api check as it never worked
+    sed -i '/src\/cmd\/api\/run.go/ireturn nil' src/cmd/dist/test.go
+    # Remove the coverage test as we have removed this utility
+    sed -i '/TestCoverageWithCgo/aif true \{ return\; \}' src/cmd/go/go_test.go
+    # Remove the timezone naming test
+    sed -i '/TestLoadFixed/aif true \{ return\; \}' src/time/time_test.go
+    # Remove disable setgid test
+    sed -i '/TestRespectSetgidDir/aif true \{ return\; \}' src/cmd/go/internal/work/build_test.go
+    # Remove cert tests that conflict with NixOS's cert resolution
+    sed -i '/TestEnvVars/aif true \{ return\; \}' src/crypto/x509/root_unix_test.go
+    # TestWritevError hangs sometimes
+    sed -i '/TestWritevError/aif true \{ return\; \}' src/net/writev_test.go
+    # TestVariousDeadlines fails sometimes
+    sed -i '/TestVariousDeadlines/aif true \{ return\; \}' src/net/timeout_test.go
+
+    sed -i 's,/etc/protocols,${iana-etc}/etc/protocols,' src/net/lookup_unix.go
+    sed -i 's,/etc/services,${iana-etc}/etc/services,' src/net/port_unix.go
+
+    # Disable cgo lookup tests not works, they depend on resolver
+    rm src/net/cgo_unix_test.go
+
+  '' + 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 ''
+    echo '#!${runtimeShell}' > misc/cgo/testplugin/test.bash
+  '' + 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
+    sed -i 's,"/etc","'"$TMPDIR"'",' src/os/os_test.go
+    sed -i 's,/_go_os_test,'"$TMPDIR"'/_go_os_test,' src/os/path_test.go
+
+    sed -i '/TestChdirAndGetwd/aif true \{ return\; \}' src/os/os_test.go
+    sed -i '/TestCredentialNoSetGroups/aif true \{ return\; \}' src/os/exec/exec_posix_test.go
+    sed -i '/TestRead0/aif true \{ return\; \}' src/os/os_test.go
+    sed -i '/TestSystemRoots/aif true \{ return\; \}' src/crypto/x509/root_darwin_test.go
+
+    sed -i '/TestGoInstallRebuildsStalePackagesInOtherGOPATH/aif true \{ return\; \}' src/cmd/go/go_test.go
+    sed -i '/TestBuildDashIInstallsDependencies/aif true \{ return\; \}' src/cmd/go/go_test.go
+
+    sed -i '/TestDisasmExtld/aif true \{ return\; \}' src/cmd/objdump/objdump_test.go
+
+    sed -i 's/unrecognized/unknown/' src/cmd/link/internal/ld/lib.go
+
+    # TestCurrent fails because Current is not implemented on Darwin
+    sed -i 's/TestCurrent/testCurrent/g' src/os/user/user_test.go
+    sed -i 's/TestLookup/testLookup/g' src/os/user/user_test.go
+
+    touch $TMPDIR/group $TMPDIR/hosts $TMPDIR/passwd
+  '';
+
+  patches = [
+    ./remove-tools-1.11.patch
+    ./ssl-cert-file-2-dev.patch
+    ./remove-test-pie-1.15.patch
+    ./creds-test.patch
+    ./go-1.9-skip-flaky-19608.patch
+    ./go-1.9-skip-flaky-20072.patch
+    ./skip-external-network-tests-1.15.patch
+    ./skip-nohup-tests.patch
+    ./skip-cgo-tests-1.15.patch
+  ] ++ [
+    # breaks under load: https://github.com/golang/go/issues/25628
+    (if stdenv.isAarch32
+    then ./skip-test-extra-files-on-aarch32-1.14.patch
+    else ./skip-test-extra-files-on-386-1.14.patch)
+  ];
+
+  postPatch = ''
+    find . -name '*.orig' -exec rm {} ';'
+  '';
+
+  GOOS = stdenv.targetPlatform.parsed.kernel.name;
+  GOARCH = goarch stdenv.targetPlatform;
+  # GOHOSTOS/GOHOSTARCH must match the building system, not the host system.
+  # Go will nevertheless build a for host system that we will copy over in
+  # the install phase.
+  GOHOSTOS = stdenv.buildPlatform.parsed.kernel.name;
+  GOHOSTARCH = goarch stdenv.buildPlatform;
+
+  # {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
+      "${targetCC}/bin/${targetCC.targetPrefix}cc"
+    else
+      null;
+  CXX_FOR_TARGET = if (stdenv.buildPlatform != stdenv.targetPlatform) then
+      "${targetCC}/bin/${targetCC.targetPrefix}c++"
+    else
+      null;
+
+  GOARM = toString (stdenv.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
+  GO_TEST_TIMEOUT_SCALE = 3;
+
+  # Indicate that we are running on build infrastructure
+  # Some tests assume things like home directories and users exists
+  GO_BUILDER_NAME = "nix";
+
+  GOROOT_BOOTSTRAP="${goBootstrap}/share/go";
+
+  postConfigure = ''
+    export GOCACHE=$TMPDIR/go-cache
+    # this is compiled into the binary
+    export GOROOT_FINAL=$out/share/go
+
+    export PATH=$(pwd)/bin:$PATH
+
+    ${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
+    ''}
+    ulimit -a
+  '';
+
+  postBuild = ''
+    (cd src && ./make.bash)
+  '';
+
+  doCheck = stdenv.hostPlatform == stdenv.targetPlatform && !stdenv.isDarwin;
+
+  checkPhase = ''
+    runHook preCheck
+    (cd src && HOME=$TMPDIR GOCACHE=$TMPDIR/go-cache ./run.bash --no-rebuild)
+    runHook postCheck
+  '';
+
+  preInstall = ''
+    rm -r pkg/obj
+    # Contains the wrong perl shebang when cross compiling,
+    # since it is not used for anything we can deleted as well.
+    rm src/regexp/syntax/make_perl_groups.pl
+  '' + (if (stdenv.buildPlatform != stdenv.hostPlatform) then ''
+    mv bin/*_*/* bin
+    rmdir bin/*_*
+    ${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)) ''
+      rm -rf pkg/${GOOS}_${GOARCH} pkg/tool/${GOOS}_${GOARCH}
+    ''}
+  '' else "");
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $GOROOT_FINAL
+    cp -a bin pkg src lib misc api doc $GOROOT_FINAL
+    ln -s $GOROOT_FINAL/bin $out/bin
+    runHook postInstall
+  '';
+
+  disallowedReferences = [ goBootstrap ];
+
+  meta = with stdenv.lib; {
+    branch = "dev.go2go";
+    homepage = "http://golang.org/";
+    description = "The Go Programming language";
+    license = licenses.bsd3;
+    maintainers = teams.golang.members ++ [ maintainers._3noch ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/development/compilers/go/ssl-cert-file-2-dev.patch b/pkgs/development/compilers/go/ssl-cert-file-2-dev.patch
new file mode 100644
index 00000000000..6146880f7a0
--- /dev/null
+++ b/pkgs/development/compilers/go/ssl-cert-file-2-dev.patch
@@ -0,0 +1,45 @@
+diff --git a/src/crypto/x509/root_darwin_amd64.go b/src/crypto/x509/root_darwin_amd64.go
+index ce88de025e..258ecc45d1 100644
+--- a/src/crypto/x509/root_darwin_amd64.go
++++ b/src/crypto/x509/root_darwin_amd64.go
+@@ -10,6 +10,7 @@ import (
+ 	"bytes"
+ 	macOS "crypto/x509/internal/macos"
+ 	"fmt"
++	"io/ioutil"
+ 	"os"
+ 	"strings"
+ )
+@@ -25,6 +26,14 @@ func (c *Certificate) systemVerify(opts *VerifyOptions) (chains [][]*Certificate
+ var loadSystemRootsWithCgo func() (*CertPool, error)
+
+ func loadSystemRoots() (*CertPool, error) {
++	if file := os.Getenv("NIX_SSL_CERT_FILE"); file != "" {
++		data, err := ioutil.ReadFile(file)
++		if err == nil {
++			roots := NewCertPool()
++			roots.AppendCertsFromPEM(data)
++			return roots, nil
++		}
++	}
+ 	var trustedRoots []*Certificate
+ 	untrustedRoots := make(map[string]bool)
+
+diff --git a/src/crypto/x509/root_unix.go b/src/crypto/x509/root_unix.go
+index b48e618a65..195c1ff25a 100644
+--- a/src/crypto/x509/root_unix.go
++++ b/src/crypto/x509/root_unix.go
+@@ -42,6 +42,13 @@ func (c *Certificate) systemVerify(opts *VerifyOptions) (chains [][]*Certificate
+
+ func loadSystemRoots() (*CertPool, error) {
+ 	roots := NewCertPool()
++	if file := os.Getenv("NIX_SSL_CERT_FILE"); file != "" {
++		data, err := ioutil.ReadFile(file)
++		if err == nil {
++			roots.AppendCertsFromPEM(data)
++			return roots, nil
++		}
++	}
+
+ 	files := certFiles
+ 	if f := os.Getenv(certFileEnv); f != "" {
diff --git a/pkgs/development/compilers/idris2/default.nix b/pkgs/development/compilers/idris2/default.nix
index 5bde4bbb720..275c2944462 100644
--- a/pkgs/development/compilers/idris2/default.nix
+++ b/pkgs/development/compilers/idris2/default.nix
@@ -5,13 +5,13 @@
 # Uses scheme to bootstrap the build of idris2
 stdenv.mkDerivation rec {
   pname = "idris2";
-  version = "0.2.1";
+  version = "0.2.2";
 
   src = fetchFromGitHub {
     owner = "idris-lang";
     repo = "Idris2";
     rev = "v${version}";
-    sha256 = "044slgl2pwvj939kz3z92n6l182plc5fzng1n4z4k6bg11msqq14";
+    sha256 = "18m483vccijfh9z6x4zgi37fql3q765x3ypkwixv3rwq9nxnd6hm";
   };
 
   strictDeps = true;
diff --git a/pkgs/development/compilers/llvm/10/libc++/default.nix b/pkgs/development/compilers/llvm/10/libc++/default.nix
index 95711903932..3511783be89 100644
--- a/pkgs/development/compilers/llvm/10/libc++/default.nix
+++ b/pkgs/development/compilers/llvm/10/libc++/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv, fetch, cmake, python3, libcxxabi, fixDarwinDylibNames, version
-, enableShared ? true }:
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
 
 stdenv.mkDerivation {
   pname = "libc++";
diff --git a/pkgs/development/compilers/llvm/10/libc++abi.nix b/pkgs/development/compilers/llvm/10/libc++abi.nix
index 00371b862ad..7335d06e4fe 100644
--- a/pkgs/development/compilers/llvm/10/libc++abi.nix
+++ b/pkgs/development/compilers/llvm/10/libc++abi.nix
@@ -1,5 +1,6 @@
 { stdenv, cmake, fetch, libcxx, libunwind, llvm, version
-, enableShared ? true }:
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
 
 stdenv.mkDerivation {
   pname = "libc++abi";
diff --git a/pkgs/development/compilers/llvm/10/libunwind.nix b/pkgs/development/compilers/llvm/10/libunwind.nix
index b13bacb3638..75e42260b7f 100644
--- a/pkgs/development/compilers/llvm/10/libunwind.nix
+++ b/pkgs/development/compilers/llvm/10/libunwind.nix
@@ -1,4 +1,6 @@
-{ stdenv, version, fetch, cmake, fetchpatch, enableShared ? true }:
+{ stdenv, version, fetch, cmake, fetchpatch
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
 
 stdenv.mkDerivation rec {
   pname = "libunwind";
diff --git a/pkgs/development/compilers/llvm/11/libc++/default.nix b/pkgs/development/compilers/llvm/11/libc++/default.nix
index 1ce879cccb6..5c3ec87617c 100644
--- a/pkgs/development/compilers/llvm/11/libc++/default.nix
+++ b/pkgs/development/compilers/llvm/11/libc++/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv, fetch, cmake, python3, libcxxabi, llvm, fixDarwinDylibNames, version
-, enableShared ? true }:
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
 
 stdenv.mkDerivation {
   pname = "libc++";
diff --git a/pkgs/development/compilers/llvm/11/libc++abi.nix b/pkgs/development/compilers/llvm/11/libc++abi.nix
index edf83197d2c..d173b1735cb 100644
--- a/pkgs/development/compilers/llvm/11/libc++abi.nix
+++ b/pkgs/development/compilers/llvm/11/libc++abi.nix
@@ -1,5 +1,6 @@
 { stdenv, cmake, fetch, libcxx, libunwind, llvm, version
-, enableShared ? true }:
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
 
 stdenv.mkDerivation {
   pname = "libc++abi";
diff --git a/pkgs/development/compilers/llvm/11/libunwind.nix b/pkgs/development/compilers/llvm/11/libunwind.nix
index 5a4492e803f..b22da214417 100644
--- a/pkgs/development/compilers/llvm/11/libunwind.nix
+++ b/pkgs/development/compilers/llvm/11/libunwind.nix
@@ -1,4 +1,6 @@
-{ stdenv, version, fetch, cmake, fetchpatch, enableShared ? true }:
+{ stdenv, version, fetch, cmake, fetchpatch
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
 
 stdenv.mkDerivation rec {
   pname = "libunwind";
diff --git a/pkgs/development/compilers/llvm/7/libc++/default.nix b/pkgs/development/compilers/llvm/7/libc++/default.nix
index 76baadf1c6e..ed4192a232e 100644
--- a/pkgs/development/compilers/llvm/7/libc++/default.nix
+++ b/pkgs/development/compilers/llvm/7/libc++/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv, fetch, cmake, python3, libcxxabi, fixDarwinDylibNames, version
-, enableShared ? ! stdenv.hostPlatform.isMusl }:
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
 
 stdenv.mkDerivation {
   pname = "libc++";
diff --git a/pkgs/development/compilers/llvm/7/libc++abi.nix b/pkgs/development/compilers/llvm/7/libc++abi.nix
index 7f2ec528f3c..4c46aeaa191 100644
--- a/pkgs/development/compilers/llvm/7/libc++abi.nix
+++ b/pkgs/development/compilers/llvm/7/libc++abi.nix
@@ -1,7 +1,8 @@
 { stdenv, cmake, fetch, libcxx, llvm, version
 , standalone ? false
   # on musl the shared objects don't build
-, enableShared ? ! stdenv.hostPlatform.isMusl }:
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
 
 stdenv.mkDerivation {
   pname = "libc++abi";
diff --git a/pkgs/development/compilers/llvm/8/libc++/default.nix b/pkgs/development/compilers/llvm/8/libc++/default.nix
index 01e0d8e008c..2ed54a22069 100644
--- a/pkgs/development/compilers/llvm/8/libc++/default.nix
+++ b/pkgs/development/compilers/llvm/8/libc++/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv, fetch, cmake, python3, libcxxabi, fixDarwinDylibNames, version
-, enableShared ? true }:
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
 
 stdenv.mkDerivation {
   pname = "libc++";
diff --git a/pkgs/development/compilers/llvm/8/libc++abi.nix b/pkgs/development/compilers/llvm/8/libc++abi.nix
index 590872aaab6..50a38dfa967 100644
--- a/pkgs/development/compilers/llvm/8/libc++abi.nix
+++ b/pkgs/development/compilers/llvm/8/libc++abi.nix
@@ -1,5 +1,6 @@
 { stdenv, cmake, fetch, libcxx, libunwind, llvm, version
-, enableShared ? true }:
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
 
 stdenv.mkDerivation {
   pname = "libc++abi";
diff --git a/pkgs/development/compilers/llvm/8/libunwind.nix b/pkgs/development/compilers/llvm/8/libunwind.nix
index 646cd3c3ca4..3295d392203 100644
--- a/pkgs/development/compilers/llvm/8/libunwind.nix
+++ b/pkgs/development/compilers/llvm/8/libunwind.nix
@@ -1,4 +1,6 @@
-{ stdenv, version, fetch, cmake, fetchpatch, enableShared ? true }:
+{ stdenv, version, fetch, cmake, fetchpatch
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
 
 stdenv.mkDerivation {
   pname = "libunwind";
diff --git a/pkgs/development/compilers/llvm/8/llvm.nix b/pkgs/development/compilers/llvm/8/llvm.nix
index 0f6179c2d31..fb928b67ad5 100644
--- a/pkgs/development/compilers/llvm/8/llvm.nix
+++ b/pkgs/development/compilers/llvm/8/llvm.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetch
+, fetchpatch
 , cmake
 , python3
 , libffi
@@ -55,6 +56,14 @@ in stdenv.mkDerivation ({
 
   propagatedBuildInputs = [ ncurses zlib ];
 
+  patches = [
+    # Fix missing includes for GCC 10
+    (fetchpatch {
+      url = "https://bugs.gentoo.org/attachment.cgi?id=612792";
+      sha256 = "0rwx6jpqq4xnf4mvfm8v2d4r34y1yi05am0mx5k2d5bha9j64lqg";
+    })
+  ];
+
   postPatch = optionalString stdenv.isDarwin ''
     substituteInPlace cmake/modules/AddLLVM.cmake \
       --replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \
diff --git a/pkgs/development/compilers/llvm/9/libc++/default.nix b/pkgs/development/compilers/llvm/9/libc++/default.nix
index c9f0e6254ab..f5c3d21e7f1 100644
--- a/pkgs/development/compilers/llvm/9/libc++/default.nix
+++ b/pkgs/development/compilers/llvm/9/libc++/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv, fetch, cmake, python3, libcxxabi, fixDarwinDylibNames, version
-, enableShared ? true }:
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
 
 stdenv.mkDerivation {
   pname = "libc++";
diff --git a/pkgs/development/compilers/llvm/9/libc++abi.nix b/pkgs/development/compilers/llvm/9/libc++abi.nix
index 5b63560282c..13f033091be 100644
--- a/pkgs/development/compilers/llvm/9/libc++abi.nix
+++ b/pkgs/development/compilers/llvm/9/libc++abi.nix
@@ -1,5 +1,6 @@
 { stdenv, cmake, fetch, libcxx, libunwind, llvm, version
-, enableShared ? true }:
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
 
 stdenv.mkDerivation {
   pname = "libc++abi";
diff --git a/pkgs/development/compilers/llvm/9/libunwind.nix b/pkgs/development/compilers/llvm/9/libunwind.nix
index 883c36baf06..98df98838f1 100644
--- a/pkgs/development/compilers/llvm/9/libunwind.nix
+++ b/pkgs/development/compilers/llvm/9/libunwind.nix
@@ -1,4 +1,6 @@
-{ stdenv, version, fetch, cmake, fetchpatch, enableShared ? true }:
+{ stdenv, version, fetch, cmake, fetchpatch
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
 
 stdenv.mkDerivation rec {
   pname = "libunwind";
diff --git a/pkgs/development/compilers/llvm/rocm/default.nix b/pkgs/development/compilers/llvm/rocm/default.nix
index c67b011721a..36b42cef392 100644
--- a/pkgs/development/compilers/llvm/rocm/default.nix
+++ b/pkgs/development/compilers/llvm/rocm/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchFromGitHub, callPackage, wrapCCWith }:
 
 let
-  version = "3.10.0";
+  version = "4.0.0";
   src = fetchFromGitHub {
     owner = "RadeonOpenCompute";
     repo = "llvm-project";
     rev = "rocm-${version}";
-    hash = "sha256-Lnma831RXJMnn3N8im3QLy6dYfXAvtbeFX/0CKvpkgY=";
+    hash = "sha256-nIvqEk18NLtY8Hec2Iq6ufWMblzYJ8SOIXgqomtqa0s=";
   };
 in rec {
   clang = wrapCCWith rec {
diff --git a/pkgs/development/compilers/nextpnr/default.nix b/pkgs/development/compilers/nextpnr/default.nix
index 664ceb79636..e50ac50dc57 100644
--- a/pkgs/development/compilers/nextpnr/default.nix
+++ b/pkgs/development/compilers/nextpnr/default.nix
@@ -3,9 +3,9 @@
 , icestorm, trellis
 , llvmPackages
 
-, enableGui ? true
-, wrapQtAppsHook
-, qtbase
+, enableGui ? false
+, wrapQtAppsHook ? null
+, qtbase ? null
 , OpenGL ? null
 }:
 
@@ -14,14 +14,14 @@ let
 in
 with stdenv; mkDerivation rec {
   pname = "nextpnr";
-  version = "2020.12.01";
+  version = "2021.01.02";
 
   srcs = [
     (fetchFromGitHub {
       owner  = "YosysHQ";
       repo   = "nextpnr";
-      rev    = "868902fbdf0b476bdccf4d25cbb80ba602d2cc11";
-      sha256 = "1kb5lhixb7f4q800gjyw9xm9ff1yaq3pgna17f5f0bw6b4ds56zc";
+      rev    = "9b9628047c01a970cfe20f83f2b7129ed109440d";
+      sha256 = "0pcv96d0n40h2ipywi909hpzlys5b6r4pamc320qk1xxhppmgkmm";
       name   = "nextpnr";
     })
     (fetchFromGitHub {
@@ -48,14 +48,14 @@ with stdenv; mkDerivation rec {
     [ "-DCURRENT_GIT_VERSION=${lib.substring 0 7 (lib.elemAt srcs 0).rev}"
       "-DARCH=generic;ice40;ecp5"
       "-DBUILD_TESTS=ON"
-      "-DICEBOX_ROOT=${icestorm}/share/icebox"
+      "-DICESTORM_INSTALL_PREFIX=${icestorm}"
       "-DTRELLIS_INSTALL_PREFIX=${trellis}"
       "-DTRELLIS_LIBDIR=${trellis}/lib/trellis"
       "-DUSE_OPENMP=ON"
       # warning: high RAM usage
-      "-DSERIALIZE_CHIPDB=OFF"
+      "-DSERIALIZE_CHIPDBS=OFF"
     ]
-    ++ (lib.optional (!enableGui) "-DBUILD_GUI=OFF")
+    ++ (lib.optional enableGui "-DBUILD_GUI=ON")
     ++ (lib.optional (enableGui && stdenv.isDarwin)
         "-DOPENGL_INCLUDE_DIR=${OpenGL}/Library/Frameworks");
 
diff --git a/pkgs/development/compilers/ocaml/4.12.nix b/pkgs/development/compilers/ocaml/4.12.nix
index 444d332817b..16649f09869 100644
--- a/pkgs/development/compilers/ocaml/4.12.nix
+++ b/pkgs/development/compilers/ocaml/4.12.nix
@@ -1,9 +1,9 @@
 import ./generic.nix {
   major_version = "4";
   minor_version = "12";
-  patch_version = "0-alpha2";
+  patch_version = "0-alpha3";
   src = fetchTarball {
-    url = "http://caml.inria.fr/pub/distrib/ocaml-4.12/ocaml-4.12.0~alpha2.tar.xz";
-    sha256 = "148vgjcfajjvrvh0q9kb2y7fszqd02cikb5wyznz7kjxka6xxyn9";
+    url = "http://caml.inria.fr/pub/distrib/ocaml-4.12/ocaml-4.12.0~alpha3.tar.xz";
+    sha256 = "1hqlf9fi5gmvb6r13z5819rg6k813bw9ihgbbji67hhh4q361wlw";
   };
 }
diff --git a/pkgs/development/compilers/openjdk/14.nix b/pkgs/development/compilers/openjdk/14.nix
new file mode 100644
index 00000000000..e851a5bf4b9
--- /dev/null
+++ b/pkgs/development/compilers/openjdk/14.nix
@@ -0,0 +1,157 @@
+{ stdenv, lib, fetchurl, bash, pkg-config, autoconf, cpio, file, which, unzip
+, zip, perl, cups, freetype, alsaLib, libjpeg, giflib, libpng, zlib, lcms2
+, libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama
+, libXcursor, libXrandr, fontconfig, openjdk14-bootstrap
+, setJavaClassPath
+, headless ? false
+, enableJavaFX ? openjfx.meta.available, openjfx
+, enableGnome2 ? true, gtk3, gnome_vfs, glib, GConf
+}:
+
+let
+  major = "14";
+  update = ".0.2";
+  build = "-ga";
+
+  openjdk = stdenv.mkDerivation rec {
+    pname = "openjdk" + lib.optionalString headless "-headless";
+    version = "${major}${update}${build}";
+
+    src = fetchurl {
+      url = "https://hg.openjdk.java.net/jdk-updates/jdk${major}u/archive/jdk-${version}.tar.gz";
+      sha256 = "1s1pc6ihzf0awp4hbaqfxmbica0hnrg8nr7s0yd2hfn7nan8xmf3";
+    };
+
+    nativeBuildInputs = [ pkg-config autoconf ];
+    buildInputs = [
+      cpio file which unzip zip perl zlib cups freetype alsaLib libjpeg giflib
+      libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst
+      libXi libXinerama libXcursor libXrandr fontconfig openjdk14-bootstrap
+    ] ++ lib.optionals (!headless && enableGnome2) [
+      gtk3 gnome_vfs GConf glib
+    ];
+
+    patches = [
+      ./fix-java-home-jdk10.patch
+      ./read-truststore-from-env-jdk10.patch
+      ./currency-date-range-jdk10.patch
+      ./increase-javadoc-heap-jdk13.patch
+      # -Wformat etc. are stricter in newer gccs, per
+      # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79677
+      # so grab the work-around from
+      # https://src.fedoraproject.org/rpms/java-openjdk/pull-request/24
+      (fetchurl {
+        url = "https://src.fedoraproject.org/rpms/java-openjdk/raw/06c001c7d87f2e9fe4fedeef2d993bcd5d7afa2a/f/rh1673833-remove_removal_of_wformat_during_test_compilation.patch";
+        sha256 = "082lmc30x64x583vqq00c8y0wqih3y4r0mp1c4bqq36l22qv6b6r";
+      })
+    ] ++ lib.optionals (!headless && enableGnome2) [
+      ./swing-use-gtk-jdk13.patch
+    ];
+
+    prePatch = ''
+      chmod +x configure
+      patchShebangs --build configure
+    '';
+
+    configureFlags = [
+      "--with-boot-jdk=${openjdk14-bootstrap.home}"
+      "--enable-unlimited-crypto"
+      "--with-native-debug-symbols=internal"
+      "--with-libjpeg=system"
+      "--with-giflib=system"
+      "--with-libpng=system"
+      "--with-zlib=system"
+      "--with-lcms=system"
+      "--with-stdc++lib=dynamic"
+    ] ++ lib.optional stdenv.isx86_64 "--with-jvm-features=zgc"
+      ++ lib.optional headless "--enable-headless-only"
+      ++ lib.optional (!headless && enableJavaFX) "--with-import-modules=${openjfx}";
+
+    separateDebugInfo = true;
+
+    NIX_CFLAGS_COMPILE = "-Wno-error";
+
+    NIX_LDFLAGS = toString (lib.optionals (!headless) [
+      "-lfontconfig" "-lcups" "-lXinerama" "-lXrandr" "-lmagic"
+    ] ++ lib.optionals (!headless && enableGnome2) [
+      "-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2"
+    ]);
+
+    buildFlags = [ "all" ];
+
+    installPhase = ''
+      mkdir -p $out/lib
+
+      mv build/*/images/jdk $out/lib/openjdk
+
+      # Remove some broken manpages.
+      rm -rf $out/lib/openjdk/man/ja*
+
+      # Mirror some stuff in top-level.
+      mkdir -p $out/share
+      ln -s $out/lib/openjdk/include $out/include
+      ln -s $out/lib/openjdk/man $out/share/man
+      ln -s $out/lib/openjdk/lib/src.zip $out/lib/src.zip
+
+      # jni.h expects jni_md.h to be in the header search path.
+      ln -s $out/include/linux/*_md.h $out/include/
+
+      # Remove crap from the installation.
+      rm -rf $out/lib/openjdk/demo
+      ${lib.optionalString headless ''
+        rm $out/lib/openjdk/lib/{libjsound,libfontmanager}.so
+      ''}
+
+      ln -s $out/lib/openjdk/bin $out/bin
+    '';
+
+    preFixup = ''
+      # Propagate the setJavaClassPath setup hook so that any package
+      # that depends on the JDK has $CLASSPATH set up properly.
+      mkdir -p $out/nix-support
+      #TODO or printWords?  cf https://github.com/NixOS/nixpkgs/pull/27427#issuecomment-317293040
+      echo -n "${setJavaClassPath}" > $out/nix-support/propagated-build-inputs
+
+      # Set JAVA_HOME automatically.
+      mkdir -p $out/nix-support
+      cat <<EOF > $out/nix-support/setup-hook
+      if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out/lib/openjdk; fi
+      EOF
+    '';
+
+    postFixup = ''
+      # Build the set of output library directories to rpath against
+      LIBDIRS=""
+      for output in $outputs; do
+        if [ "$output" = debug ]; then continue; fi
+        LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS"
+      done
+      # Add the local library paths to remove dependencies on the bootstrap
+      for output in $outputs; do
+        if [ "$output" = debug ]; then continue; fi
+        OUTPUTDIR=$(eval echo \$$output)
+        BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*)
+        echo "$BINLIBS" | while read i; do
+          patchelf --set-rpath "$LIBDIRS:$(patchelf --print-rpath "$i")" "$i" || true
+          patchelf --shrink-rpath "$i" || true
+        done
+      done
+    '';
+
+    disallowedReferences = [ openjdk14-bootstrap ];
+
+    meta = with stdenv.lib; {
+      homepage = "https://openjdk.java.net/";
+      license = licenses.gpl2;
+      description = "The open-source Java Development Kit";
+      maintainers = with maintainers; [ edwtjo ];
+      platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" "armv6l-linux" ];
+    };
+
+    passthru = {
+      architecture = "";
+      home = "${openjdk}/lib/openjdk";
+      inherit gtk3;
+    };
+  };
+in openjdk
diff --git a/pkgs/development/compilers/openjdk/darwin/default.nix b/pkgs/development/compilers/openjdk/darwin/default.nix
index c6498cb4530..f10ede2506a 100644
--- a/pkgs/development/compilers/openjdk/darwin/default.nix
+++ b/pkgs/development/compilers/openjdk/darwin/default.nix
@@ -7,11 +7,11 @@ let
   };
 
   jdk = stdenv.mkDerivation rec {
-    name = "zulu14.28.21-ca-jdk14.0.1";
+    name = "zulu15.28.51-ca-jdk15.0.1";
 
     src = fetchurl {
       url = "https://cdn.azul.com/zulu/bin/${name}-macosx_x64.tar.gz";
-      sha256 = "1pc0y3fxhlf42a51qbdha1fabci61yzq70kk5c1rzk0ai78d92q8";
+      sha256 = "0h738pbnwcn7pjp0qyryzazqj5nw5sy2f8l0ycl39crm9ia6akvh";
       curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/";
     };
 
diff --git a/pkgs/development/compilers/openjdk/default.nix b/pkgs/development/compilers/openjdk/default.nix
index 1dcd3e23e6f..ec0042809c6 100644
--- a/pkgs/development/compilers/openjdk/default.nix
+++ b/pkgs/development/compilers/openjdk/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, lib, fetchurl, bash, pkgconfig, autoconf, cpio, file, which, unzip
+{ stdenv, lib, fetchurl, bash, pkg-config, autoconf, cpio, file, which, unzip
 , zip, perl, cups, freetype, alsaLib, libjpeg, giflib, libpng, zlib, lcms2
 , libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama
-, libXcursor, libXrandr, fontconfig, openjdk14-bootstrap
+, libXcursor, libXrandr, fontconfig, openjdk15-bootstrap
 , setJavaClassPath
 , headless ? false
 , enableJavaFX ? openjfx.meta.available, openjfx
@@ -9,8 +9,8 @@
 }:
 
 let
-  major = "14";
-  update = ".0.2";
+  major = "15";
+  update = ".0.1";
   build = "-ga";
 
   openjdk = stdenv.mkDerivation rec {
@@ -18,15 +18,15 @@ let
     version = "${major}${update}${build}";
 
     src = fetchurl {
-      url = "http://hg.openjdk.java.net/jdk-updates/jdk${major}u/archive/jdk-${version}.tar.gz";
-      sha256 = "1s1pc6ihzf0awp4hbaqfxmbica0hnrg8nr7s0yd2hfn7nan8xmf3";
+      url = "https://hg.openjdk.java.net/jdk-updates/jdk${major}u/archive/jdk-${version}.tar.gz";
+      sha256 = "1h8n5figc9q0k9p8b0qggyhvqagvxanfih1lj5j492c74cd1mx1l";
     };
 
-    nativeBuildInputs = [ pkgconfig autoconf ];
+    nativeBuildInputs = [ pkg-config autoconf ];
     buildInputs = [
       cpio file which unzip zip perl zlib cups freetype alsaLib libjpeg giflib
       libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst
-      libXi libXinerama libXcursor libXrandr fontconfig openjdk14-bootstrap
+      libXi libXinerama libXcursor libXrandr fontconfig openjdk15-bootstrap
     ] ++ lib.optionals (!headless && enableGnome2) [
       gtk3 gnome_vfs GConf glib
     ];
@@ -54,7 +54,7 @@ let
     '';
 
     configureFlags = [
-      "--with-boot-jdk=${openjdk14-bootstrap.home}"
+      "--with-boot-jdk=${openjdk15-bootstrap.home}"
       "--enable-unlimited-crypto"
       "--with-native-debug-symbols=internal"
       "--with-libjpeg=system"
@@ -138,10 +138,10 @@ let
       done
     '';
 
-    disallowedReferences = [ openjdk14-bootstrap ];
+    disallowedReferences = [ openjdk15-bootstrap ];
 
     meta = with stdenv.lib; {
-      homepage = "http://openjdk.java.net/";
+      homepage = "https://openjdk.java.net/";
       license = licenses.gpl2;
       description = "The open-source Java Development Kit";
       maintainers = with maintainers; [ edwtjo ];
diff --git a/pkgs/development/compilers/openjdk/openjfx/14.nix b/pkgs/development/compilers/openjdk/openjfx/15.nix
index 51512c5afca..f406a3959fd 100644
--- a/pkgs/development/compilers/openjdk/openjfx/14.nix
+++ b/pkgs/development/compilers/openjdk/openjfx/15.nix
@@ -3,9 +3,9 @@
 , ffmpeg_3, python, ruby }:
 
 let
-  major = "14";
-  update = "";
-  build = "-ga";
+  major = "15";
+  update = ".0.1";
+  build = "+1";
   repover = "${major}${update}${build}";
   gradle_ = (gradleGen.override {
     java = openjdk11_headless;
@@ -18,7 +18,7 @@ let
       owner = "openjdk";
       repo = "jfx";
       rev = repover;
-      sha256 = "16aj15xksc266gv3y42m0g277pfvp71901lrngndcnpr7i2zshnr";
+      sha256 = "019glq8rhn6amy3n5jc17vi2wpf1pxpmmywvyz1ga8n09w7xscq1";
     };
 
     buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsaLib ffmpeg_3 ];
@@ -64,8 +64,10 @@ let
     outputHashMode = "recursive";
     # Downloaded AWT jars differ by platform.
     outputHash = {
-      x86_64-linux = "077zss95iq6iskx7ghz1c57ymydpzj0wm7r1pkznw99l9xwvdmqi";
-      i686-linux = "03gglr2sh77cyg16qw9g45ji33dg7i93s5s30hz3mh420g112qa0";
+      x86_64-linux = "0hmyr5nnjgwyw3fcwqf0crqg9lny27jfirycg3xmkzbcrwqd6qkw";
+      # The build-time dependencies don't currently build for i686, so no
+      # reason to fetch this one correctly either...
+      i686-linux = "0000000000000000000000000000000000000000000000000000";
     }.${stdenv.system} or (throw "Unsupported platform");
   };
 
diff --git a/pkgs/development/compilers/reason/default.nix b/pkgs/development/compilers/reason/default.nix
index 4c0e9c29851..435813ee5e7 100644
--- a/pkgs/development/compilers/reason/default.nix
+++ b/pkgs/development/compilers/reason/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, makeWrapper, fetchFromGitHub, ocaml, findlib, dune
+{ stdenv, makeWrapper, fetchFromGitHub, ocaml, findlib, dune_2
 , fix, menhir, merlin-extend, ppx_tools_versioned, utop, cppo
 }:
 
@@ -17,13 +17,12 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ menhir merlin-extend ppx_tools_versioned ];
 
-  buildInputs = [ ocaml findlib dune cppo fix utop menhir ];
+  buildInputs = [ ocaml findlib dune_2 cppo fix utop menhir ];
 
   buildFlags = [ "build" ]; # do not "make tests" before reason lib is installed
 
-  inherit (dune) installPhase;
-
-  postInstall = ''
+  installPhase = ''
+    dune install --prefix=$out --libdir=$OCAMLFIND_DESTDIR
     wrapProgram $out/bin/rtop \
       --prefix PATH : "${utop}/bin" \
       --prefix CAML_LD_LIBRARY_PATH : "$CAML_LD_LIBRARY_PATH" \
diff --git a/pkgs/development/compilers/rust/1_45.nix b/pkgs/development/compilers/rust/1_45.nix
index 2b3de4dd38c..b4d887f2e96 100644
--- a/pkgs/development/compilers/rust/1_45.nix
+++ b/pkgs/development/compilers/rust/1_45.nix
@@ -11,15 +11,24 @@
 , buildPackages
 , newScope, callPackage
 , CoreFoundation, Security
-, llvmPackages
-, pkgsBuildTarget, pkgsBuildBuild
+, pkgsBuildTarget, pkgsBuildBuild, pkgsBuildHost
 , makeRustPlatform
+, llvmPackages_5, llvm_10
 } @ args:
 
 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; };
+
+  llvmBootstrapForDarwin = llvmPackages_5;
+
+  # For use at runtime
+  llvmShared = llvm_10.override { enableSharedLibraries = true; };
+
   # Note: the version MUST be one version prior to the version we're
   # building
   bootstrapVersion = "1.44.1";
@@ -41,4 +50,4 @@ import ./default.nix {
   ];
 }
 
-(builtins.removeAttrs args [ "fetchpatch" ])
+(builtins.removeAttrs args [ "fetchpatch" "pkgsBuildHost" "llvmPackages_5" "llvm_10" ])
diff --git a/pkgs/development/compilers/rust/1_48.nix b/pkgs/development/compilers/rust/1_48.nix
index b3a512e58bd..6b4b10f12d3 100644
--- a/pkgs/development/compilers/rust/1_48.nix
+++ b/pkgs/development/compilers/rust/1_48.nix
@@ -13,15 +13,24 @@
 , buildPackages
 , newScope, callPackage
 , CoreFoundation, Security
-, llvmPackages
-, pkgsBuildTarget, pkgsBuildBuild
+, pkgsBuildTarget, pkgsBuildBuild, pkgsBuildHost
 , makeRustPlatform
+, llvmPackages_5, llvm_11
 } @ args:
 
 import ./default.nix {
   rustcVersion = "1.48.0";
   rustcSha256 = "0fz4gbb5hp5qalrl9lcl8yw4kk7ai7wx511jb28nypbxninkwxhf";
 
+  llvmSharedForBuild = pkgsBuildBuild.llvm_11.override { enableSharedLibraries = true; };
+  llvmSharedForHost = pkgsBuildHost.llvm_11.override { enableSharedLibraries = true; };
+  llvmSharedForTarget = pkgsBuildTarget.llvm_11.override { enableSharedLibraries = true; };
+
+  llvmBootstrapForDarwin = llvmPackages_5;
+
+  # 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.47.0";
@@ -43,4 +52,4 @@ import ./default.nix {
   ];
 }
 
-(builtins.removeAttrs args [ "fetchpatch" ])
+(builtins.removeAttrs args [ "fetchpatch" "pkgsBuildHost" "llvmPackages_5" "llvm_11"])
diff --git a/pkgs/development/compilers/rust/default.nix b/pkgs/development/compilers/rust/default.nix
index 25876cc6380..6203eaf47ba 100644
--- a/pkgs/development/compilers/rust/default.nix
+++ b/pkgs/development/compilers/rust/default.nix
@@ -5,12 +5,16 @@
 , bootstrapHashes
 , selectRustPackage
 , rustcPatches ? []
+, llvmBootstrapForDarwin
+, llvmShared
+, llvmSharedForBuild
+, llvmSharedForHost
+, llvmSharedForTarget
 }:
 { stdenv, lib
 , buildPackages
 , newScope, callPackage
 , CoreFoundation, Security
-, llvmPackages
 , pkgsBuildTarget, pkgsBuildBuild
 , makeRustPlatform
 }: rec {
@@ -76,16 +80,17 @@
         version = rustcVersion;
         sha256 = rustcSha256;
         inherit enableRustcDev;
+        inherit llvmShared llvmSharedForBuild llvmSharedForHost llvmSharedForTarget;
 
         patches = rustcPatches;
 
         # Use boot package set to break cycle
         rustPlatform = bootRustPlatform;
       } // lib.optionalAttrs (stdenv.cc.isClang && stdenv.hostPlatform == stdenv.buildPlatform) {
-        stdenv = llvmPackages.stdenv;
-        pkgsBuildBuild = pkgsBuildBuild // { targetPackages.stdenv = llvmPackages.stdenv; };
-        pkgsBuildHost = pkgsBuildBuild // { targetPackages.stdenv = llvmPackages.stdenv; };
-        pkgsBuildTarget = pkgsBuildTarget // { targetPackages.stdenv = llvmPackages.stdenv; };
+        stdenv = llvmBootstrapForDarwin.stdenv;
+        pkgsBuildBuild = pkgsBuildBuild // { targetPackages.stdenv = llvmBootstrapForDarwin.stdenv; };
+        pkgsBuildHost = pkgsBuildBuild // { targetPackages.stdenv = llvmBootstrapForDarwin.stdenv; };
+        pkgsBuildTarget = pkgsBuildTarget // { targetPackages.stdenv = llvmBootstrapForDarwin.stdenv; };
       });
       rustfmt = self.callPackage ./rustfmt.nix { inherit Security; };
       cargo = self.callPackage ./cargo.nix {
diff --git a/pkgs/development/compilers/rust/rustc.nix b/pkgs/development/compilers/rust/rustc.nix
index a290eb11755..570cd8b796f 100644
--- a/pkgs/development/compilers/rust/rustc.nix
+++ b/pkgs/development/compilers/rust/rustc.nix
@@ -1,6 +1,7 @@
 { stdenv, removeReferencesTo, pkgsBuildBuild, pkgsBuildHost, pkgsBuildTarget
+, llvmShared, llvmSharedForBuild, llvmSharedForHost, llvmSharedForTarget
 , fetchurl, file, python3
-, llvm_10, darwin, cmake, rust, rustPlatform
+, darwin, cmake, rust, rustPlatform
 , pkgconfig, openssl
 , which, libffi
 , withBundledLLVM ? false
@@ -13,13 +14,6 @@
 let
   inherit (stdenv.lib) optionals optional optionalString concatStringsSep;
   inherit (darwin.apple_sdk.frameworks) Security;
-
-  llvmSharedForBuild = pkgsBuildBuild.llvm_10.override { enableSharedLibraries = true; };
-  llvmSharedForHost = pkgsBuildHost.llvm_10.override { enableSharedLibraries = true; };
-  llvmSharedForTarget = pkgsBuildTarget.llvm_10.override { enableSharedLibraries = true; };
-
-  # For use at runtime
-  llvmShared = llvm_10.override { enableSharedLibraries = true; };
 in stdenv.mkDerivation rec {
   pname = "rustc";
   inherit version;
@@ -154,6 +148,11 @@ in stdenv.mkDerivation rec {
     python x.py dist rustc-dev
     tar xf build/dist/rustc-dev*tar.gz
     cp -r rustc-dev*/rustc-dev*/lib/* $out/lib/
+    rm $out/lib/rustlib/install.log
+    for m in $out/lib/rustlib/manifest-rust*
+    do
+      sort --output=$m < $m
+    done
 
   '' + ''
     # remove references to llvm-config in lib/rustlib/x86_64-unknown-linux-gnu/codegen-backends/librustc_codegen_llvm-llvm.so
diff --git a/pkgs/development/compilers/tinygo/default.nix b/pkgs/development/compilers/tinygo/default.nix
index 060b95cf877..0aee1ca1f39 100644
--- a/pkgs/development/compilers/tinygo/default.nix
+++ b/pkgs/development/compilers/tinygo/default.nix
@@ -6,13 +6,14 @@ let main = ./main.go;
 in
 buildGoModule rec {
   pname = "tinygo";
-  version = "0.13.1";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "tinygo-org";
     repo = "tinygo";
     rev = "v${version}";
-    sha256 = "0das5z5y2x1970yi9c4yssxvwrrjhdmsj495q0r5mb02amvc954v";
+    sha256 = "063aszbsnr0myq56kms1slmrfs7m4nmg0zgh2p66lxdsifrfly7j";
+    fetchSubmodules = true;
   };
 
   overrideModAttrs = (_: {
@@ -21,15 +22,23 @@ buildGoModule rec {
       rm -rf *
       cp ${main} main.go
       cp ${gomod} go.mod
+      chmod +w go.mod
       '';
   });
 
   preBuild = "cp ${gomod} go.mod";
 
-  vendorSha256 = "19194dlzpl6zzw2gqybma5pwip71rw8z937f104k6c158qzzgy62";
+  postBuild = "make gen-device";
+
+  vendorSha256 = "12k2gin0v7aqz5543m12yhifc0xsz26qyqra5l4c68xizvzcvkxb";
 
   doCheck = false;
 
+  prePatch = ''
+    sed -i s/', "-nostdlibinc"'// builder/builtins.go
+    sed -i s/'"-nostdlibinc", '// compileopts/config.go builder/picolibc.go
+  '';
+
   subPackages = [ "." ];
   buildInputs = [ llvm clang-unwrapped makeWrapper ];
   propagatedBuildInputs = [ lld avrgcc avrdude openocd gcc-arm-embedded ];
@@ -37,7 +46,11 @@ buildGoModule rec {
   postInstall = ''
     mkdir -p $out/share/tinygo
     cp -a lib src targets $out/share/tinygo
-    wrapProgram $out/bin/tinygo --prefix "TINYGOROOT" : "$out/share/tinygo"
+    wrapProgram $out/bin/tinygo --prefix "TINYGOROOT" : "$out/share/tinygo" \
+      --prefix "PATH" : "$out/libexec/tinygo"
+    mkdir -p $out/libexec/tinygo
+    ln -s ${clang-unwrapped}/bin/clang $out/libexec/tinygo/clang-10
+    ln -s ${lld}/bin/lld $out/libexec/tinygo/ld.lld-10
     ln -sf $out/bin $out/share/tinygo
   '';
 
diff --git a/pkgs/development/compilers/tinygo/go.mod b/pkgs/development/compilers/tinygo/go.mod
index f01b38d3e51..bab259ae48d 100644
--- a/pkgs/development/compilers/tinygo/go.mod
+++ b/pkgs/development/compilers/tinygo/go.mod
@@ -1,13 +1,14 @@
 module github.com/tinygo-org/tinygo
 
-go 1.14
+go 1.11
 
 require (
 	github.com/blakesmith/ar v0.0.0-20150311145944-8bd4349a67f2
+	github.com/chromedp/cdproto v0.0.0-20200709115526-d1f6fc58448b
+	github.com/chromedp/chromedp v0.5.4-0.20200303084119-2bb39134ab9e
 	github.com/google/shlex v0.0.0-20181106134648-c34317bd91bf
-	github.com/marcinbor85/gohex v0.0.0-20180128172054-7a43cd876e46
+	github.com/marcinbor85/gohex v0.0.0-20200531091804-343a4b548892
 	go.bug.st/serial v1.0.0
-	golang.org/x/tools v0.0.0-20200512001501-aaeff5de670a
-	google.golang.org/appengine v1.4.0
-	tinygo.org/x/go-llvm v0.0.0-20200401165421-8d120882fc7a
+	golang.org/x/tools v0.0.0-20200216192241-b320d3a0f5a2
+	tinygo.org/x/go-llvm v0.0.0-20201104183921-570e7a6841d9
 )
diff --git a/pkgs/development/compilers/yosys/default.nix b/pkgs/development/compilers/yosys/default.nix
index b16d76304e4..51f0b7ed45a 100644
--- a/pkgs/development/compilers/yosys/default.nix
+++ b/pkgs/development/compilers/yosys/default.nix
@@ -33,13 +33,13 @@
 
 stdenv.mkDerivation rec {
   pname   = "yosys";
-  version = "0.9+3715";
+  version = "0.9+3830";
 
   src = fetchFromGitHub {
     owner  = "YosysHQ";
     repo   = "yosys";
-    rev    = "d021f4b4003bb7a374038134c65edd3f67473a92";
-    sha256 = "0dgdpigqg8mwkry4233p6z6myjnrb1rq32873yhdfwvwqq230x51";
+    rev    = "b72c29465392c8d260ddf55def169438f7fb64b2";
+    sha256 = "12h3pgj8bjb254q2qaafc3qxwhqdqrx0sxjhgjrfy8cmkdm92dvy";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/compilers/z88dk/default.nix b/pkgs/development/compilers/z88dk/default.nix
index 890924dddc1..0fb73d42b7e 100644
--- a/pkgs/development/compilers/z88dk/default.nix
+++ b/pkgs/development/compilers/z88dk/default.nix
@@ -1,14 +1,14 @@
 { fetchFromGitHub, stdenv, makeWrapper, unzip, libxml2, m4, uthash, which }:
 
 stdenv.mkDerivation rec {
-  pname = "z88dk-unstable";
-  version = "2020-01-27";
+  pname = "z88dk";
+  version = "2.0";
 
   src = fetchFromGitHub {
     owner = "z88dk";
-    repo  = "z88dk";
-    rev = "efdd07c2e2229cac7cfef97ec01f478004846e39";
-    sha256 = "0jcks5ygp256lmzmllffp4yb38cxjgdyqnnimkj4s65095cfasyb";
+    repo = "z88dk";
+    rev = "v${version}";
+    sha256 = "14r9bjw6lgz85a59a4ajspvg12swiqxi17zicl8r7p29pi9lsibp";
     fetchSubmodules = true;
   };
 
@@ -50,10 +50,10 @@ stdenv.mkDerivation rec {
   installTargets = [ "libs" "install" ];
 
   meta = with stdenv.lib; {
-    homepage    = "https://www.z88dk.org";
+    homepage = "https://www.z88dk.org";
     description = "z80 Development Kit";
-    license     = licenses.clArtistic;
-    maintainers = [ ];
-    platforms = platforms.linux;
+    license = licenses.clArtistic;
+    maintainers = [ maintainers.siraben ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/compilers/zig/default.nix b/pkgs/development/compilers/zig/default.nix
index aaed6d8892f..1a5cba37d47 100644
--- a/pkgs/development/compilers/zig/default.nix
+++ b/pkgs/development/compilers/zig/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, cmake, llvmPackages, libxml2, zlib, substituteAll }:
 
 llvmPackages.stdenv.mkDerivation rec {
-  version = "0.6.0";
+  version = "0.7.1";
   pname = "zig";
 
   src = fetchFromGitHub {
     owner = "ziglang";
     repo = pname;
     rev = version;
-    sha256 = "13dwm2zpscn4n0p5x8ggs9n7mwmq9cgip383i3qqphg7m3pkls8z";
+    sha256 = "1z6c4ym9jmga46cw2arn7zv2drcpmrf3vw139gscxp27n7q2z5md";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -26,7 +26,7 @@ llvmPackages.stdenv.mkDerivation rec {
 
   checkPhase = ''
     runHook preCheck
-    ./zig test $src/test/stage1/behavior.zig
+    ./zig test --cache-dir "$TMPDIR" -I $src/test $src/test/stage1/behavior.zig
     runHook postCheck
   '';
 
diff --git a/pkgs/development/go-modules/generic/default.nix b/pkgs/development/go-modules/generic/default.nix
index 3714a1f6f0f..130387a97b0 100644
--- a/pkgs/development/go-modules/generic/default.nix
+++ b/pkgs/development/go-modules/generic/default.nix
@@ -36,6 +36,9 @@
 
 , meta ? {}
 
+# Not needed with buildGoModule
+, goPackagePath ? null
+
 , ... }@args':
 
 with builtins;
@@ -43,7 +46,7 @@ with builtins;
 let
   args = removeAttrs args' [ "overrideModAttrs" "vendorSha256" "disabled" ];
 
-  go-modules = if vendorSha256 != null then go.stdenv.mkDerivation (let modArgs = {
+  go-modules = if vendorSha256 != null then stdenv.mkDerivation (let modArgs = {
 
     name = "${name}-go-modules";
 
@@ -116,7 +119,7 @@ let
       }
   ) // overrideModAttrs modArgs) else "";
 
-  package = go.stdenv.mkDerivation (args // {
+  package = stdenv.mkDerivation (args // {
     nativeBuildInputs = [ go ] ++ nativeBuildInputs;
 
     inherit (go) GOOS GOARCH;
@@ -242,5 +245,7 @@ let
   });
 in if disabled then
   throw "${package.name} not supported for go ${go.meta.branch}"
+else if (goPackagePath != null) then
+  throw "`goPackagePath` not needed with `buildGoModule`"
 else
   package
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index aa8212f167b..05740979b8a 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/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 = "1l2syrslba4mrxjzj0iblflz72siw3ibqri6p5hf59fk7rmm30a8";
+      sha256 = "0w71kbz127fcli24sxsvd48l5xamwamjwhr18x9alam5cldqkkz1";
     };
   }).override {
     dbus = if pkgs.stdenv.isLinux then self.dbus else null;
@@ -130,7 +130,8 @@ self: super: {
   ABList = dontCheck super.ABList;
 
   # sse2 flag due to https://github.com/haskell/vector/issues/47.
-  vector = if pkgs.stdenv.isi686 then appendConfigureFlag super.vector "--ghc-options=-msse2" else super.vector;
+  # 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; })
@@ -176,9 +177,6 @@ self: super: {
   # https://github.com/jputcu/serialport/issues/25
   serialport = dontCheck super.serialport;
 
-  # Test suite build depends on ancient tasty 0.11.x.
-  cryptohash-sha512 = dontCheck super.cryptohash-sha512;
-
   # Test suite depends on source code being available
   simple-affine-space = dontCheck super.simple-affine-space;
 
@@ -219,11 +217,7 @@ self: super: {
   # building of the executable has been disabled for ghc < 8.10 in hnix.
   # Generating the completions should be activated again, once we default to
   # ghc 8.10.
-  hnix = dontCheck (super.hnix.override {
-    # 2020-09-18: Those packages are all needed by hnix at versions newer than on stackage
-    prettyprinter = self.prettyprinter_1_7_0; # at least 1.7
-
-  });
+  hnix = dontCheck super.hnix;
 
   # Fails for non-obvious reasons while attempting to use doctest.
   search = dontCheck super.search;
@@ -366,9 +360,6 @@ self: super: {
   punycode = dontCheck super.punycode;
   pwstore-cli = dontCheck super.pwstore-cli;
   quantities = dontCheck super.quantities;
-  QuickCheck_2_14_2 = super.QuickCheck_2_14_2.override( {
-    splitmix = self.splitmix_0_1_0_3;
-  });
   redis-io = dontCheck super.redis-io;
   rethinkdb = dontCheck super.rethinkdb;
   Rlang-QQ = dontCheck super.Rlang-QQ;
@@ -402,7 +393,6 @@ self: super: {
   xsd = dontCheck super.xsd;
   zip-archive = dontCheck super.zip-archive;  # https://github.com/jgm/zip-archive/issues/57
 
-  random_1_2_0 = super.random_1_2_0.override ({ splitmix = self.splitmix_0_1_0_3; });
   # These test suites run for ages, even on a fast machine. This is nuts.
   Random123 = dontCheck super.Random123;
   systemd = dontCheck super.systemd;
@@ -815,6 +805,12 @@ self: super: {
   # Needs QuickCheck <2.10, HUnit <1.6 and base <4.10
   pointfree = doJailbreak super.pointfree;
 
+  # Depends on base <4.12
+  # See https://github.com/haskell-hvr/cryptohash-sha512/pull/3
+  # , https://github.com/haskell-hvr/cryptohash-sha512/issues/4
+  # and https://github.com/haskell-hvr/cryptohash-sha512/pull/5
+  cryptohash-sha512 = doJailbreak super.cryptohash-sha512;
+
   # Depends on tasty < 1.x, which we don't have.
   cryptohash-sha256 = doJailbreak super.cryptohash-sha256;
 
@@ -859,6 +855,9 @@ self: super: {
   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; };
+
   # Copy hledger man pages from data directory into the proper place. This code
   # should be moved into the cabal2nix generator.
   hledger = overrideCabal super.hledger (drv: {
@@ -889,6 +888,7 @@ self: super: {
     '';
   });
   hledger-web = overrideCabal super.hledger-web (drv: {
+    preCheck = "export HOME=$TMPDIR";
     postInstall = ''
       for i in $(seq 1 9); do
         for j in *.$i; do
@@ -948,6 +948,8 @@ self: super: {
 
   # Generate shell completion.
   cabal2nix = generateOptparseApplicativeCompletion "cabal2nix" super.cabal2nix;
+  niv = generateOptparseApplicativeCompletion "niv" super.niv;
+  ormolu = generateOptparseApplicativeCompletion "ormolu" super.ormolu;
   stack = generateOptparseApplicativeCompletion "stack" super.stack;
 
   # musl fixes
@@ -1154,8 +1156,10 @@ self: super: {
   # $HOME, which we don't have in our build sandbox.
   cabal-install-parsers = dontCheck super.cabal-install-parsers;
 
-  # gitit is unbroken in the latest release
-  gitit = markUnbroken super.gitit;
+  # version constraints break the build, so we jailbreak
+  # can be removed at a new release which also fixes
+  # https://github.com/jgm/gitit/issues/665
+  gitit = doJailbreak super.gitit;
 
   # Test suite requires database
   persistent-mysql = dontCheck super.persistent-mysql;
@@ -1397,24 +1401,17 @@ self: super: {
   # https://github.com/haskell/haskell-language-server/issues/611
   haskell-language-server = dontCheck (super.haskell-language-server.override {
     lsp-test = dontCheck self.lsp-test_0_11_0_7;
+    fourmolu = self.fourmolu_0_3_0_0;
   });
 
   fourmolu = dontCheck super.fourmolu;
-  ghcide = dontCheck (appendPatch super.ghcide (pkgs.fetchpatch {
-    # 2020-11-13: Bumping bounds via an already upstream merged change
-    # https://github.com/haskell/ghcide/pull/905
-    url = https://github.com/haskell/ghcide/commit/9b8aaf9b06846571cc0b5d46680e686e4f9153a3.patch;
-    sha256 = "0j8980dmvwjcs72ahq2zc14hwkyd5ybgzyy1az3zq5flp383fai6";
-    includes = [ "ghcide.cabal" ];
-  }));
+  # 1. test requires internet
+  # 2. dependency shake-bench hasn't been published yet so we also need unmarkBroken and doDistribute
+  ghcide = doDistribute (unmarkBroken (dontCheck
+    (super.ghcide.override { lsp-test = dontCheck self.lsp-test_0_11_0_7; })
+  ));
   refinery = doDistribute super.refinery_0_3_0_0;
   data-tree-print = doJailbreak super.data-tree-print;
-  # the hls brittany is objectively better, because there hasn‘t been a
-  # brittany release in a while and this version works with 8.10.
-  # And we need to build it anyways.
-  # 2020-11-15: jailbreaking because we have strict 0.4 which is to new
-  brittany = self.hls-brittany;
-  hls-brittany = dontCheck (doJailbreak super.hls-brittany);
 
   # 2020-11-15: aeson 1.5.4.1 needs to new quickcheck-instances for testing
   aeson = dontCheck super.aeson;
@@ -1495,13 +1492,13 @@ self: super: {
     extraPrefix = "";
     includes = [ "src/Cachix/Types/Session.hs" "src/Cachix/API/Signing.hs" ];
   });
-  cachix = appendPatch super.cachix (pkgs.fetchpatch {
+  cachix = generateOptparseApplicativeCompletion "cachix" (appendPatch super.cachix (pkgs.fetchpatch {
     url = https://github.com/cachix/cachix/commit/bfeec151a03afad72401815fe8bbb1b0d5d63b0d.patch;
     sha256 = "06jmpz8l5vh9cch5aqdbrln7bm3fghxsicwy1m93avli320kp8pp";
     stripLen = 2;
     extraPrefix = "";
     excludes = [ "stack.yaml" "sources.json" "src/Cachix/Types/Session.hs" "src/Cachix/API/Signing.hs" "cachix-api.cabal" "workflows/test.yml" ];
-  });
+  }));
 
   # 2020-11-23: Jailbreaking until: https://github.com/michaelt/text-pipes/pull/29
   pipes-text = doJailbreak super.pipes-text;
@@ -1512,7 +1509,6 @@ self: super: {
   # 2020-11-23: https://github.com/cdornan/fmt/issues/30
   fmt = dontCheck super.fmt;
 
-
   # 2020-11-27: Tests broken
   # Upstream issue: https://github.com/haskell-servant/servant-swagger/issues/129
   servant-swagger = dontCheck super.servant-swagger;
@@ -1520,4 +1516,40 @@ self: super: {
   # 2020-11-27: cxx-options is broken in Cabal 3.2.0.0
   hercules-ci-agent = addSetupDepend super.hercules-ci-agent self.Cabal_3_2_1_0;
 
+  # 2020-12-05: http-client is fixed on too old version
+  essence-of-live-coding-warp = super.essence-of-live-coding-warp.override {
+    http-client = self.http-client_0_7_3;
+  };
+
+  # 2020-12-06: Restrictive upper bounds w.r.t. pandoc-types (https://github.com/owickstrom/pandoc-include-code/issues/27)
+  pandoc-include-code = doJailbreak super.pandoc-include-code;
+
+  # 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
+  cassava = doJailbreak super.cassava;
+  filepath-bytestring = doJailbreak super.filepath-bytestring;
+  ghc-source-gen = doJailbreak super.ghc-source-gen;
+  haddock-library = doJailbreak super.haddock-library;
+  HsYAML = doJailbreak super.HsYAML;
+  http-api-data = doJailbreak super.http-api-data;
+  lzma = doJailbreak super.lzma;
+  psqueues = doJailbreak super.psqueues;
+
+  # Break out of overspecified constraint on QuickCheck.
+  # https://github.com/Gabriel439/Haskell-Nix-Derivation-Library/pull/10
+  nix-derivation = doJailbreak super.nix-derivation;
+
+  # Break out of overspecified constraint on QuickCheck.
+  # Fixed by https://github.com/haskell-servant/servant/commit/08579ca0039410e04d6c36c975ddc20165819db6
+  servant-client      = doJailbreak super.servant-client;
+  servant-client-core = doJailbreak super.servant-client-core;
+
 } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
index 60d3f423246..c162740b8d7 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
@@ -92,4 +92,11 @@ self: super: {
 
   # Break out of "Cabal < 3.2" constraint.
   stylish-haskell = doJailbreak super.stylish-haskell;
+
+  # Agda 2.6.1.2 only declares a transformers dependency for ghc < 8.10.3.
+  # https://github.com/agda/agda/issues/5109
+  Agda = appendPatch super.Agda (pkgs.fetchpatch {
+    url = "https://github.com/agda/agda/commit/76278c23d447b49f59fac581ca4ac605792aabbc.patch";
+    sha256 = "1g34g8a09j73h89pk4cdmri0nb0qg664hkff45amcr9kyz14a9f3";
+  });
 }
diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
index 0471ca1b760..d9efb1ab9c3 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
@@ -59,6 +59,7 @@ self: super: {
   # Jailbreaks & Version Updates
   async = doJailbreak super.async;
   ChasingBottoms = markBrokenVersion "1.3.1.9" super.ChasingBottoms;
+  data-fix = doJailbreak super.data-fix;
   dec = doJailbreak super.dec;
   ed25519 = doJailbreak super.ed25519;
   hashable = overrideCabal (doJailbreak (dontCheck super.hashable)) (drv: { postPatch = "sed -i -e 's,integer-gmp .*<1.1,integer-gmp < 2,' hashable.cabal"; });
@@ -66,14 +67,16 @@ self: super: {
   integer-logarithms = overrideCabal (doJailbreak super.integer-logarithms) (drv: { postPatch = "sed -i -e 's,integer-gmp <1.1,integer-gmp < 2,' integer-logarithms.cabal"; });
   lukko = doJailbreak super.lukko;
   parallel = doJailbreak super.parallel;
+  primitive = doJailbreak (dontCheck super.primitive);
   regex-posix = doJailbreak super.regex-posix;
   resolv = doJailbreak super.resolv;
   singleton-bool = doJailbreak super.singleton-bool;
   split = doJailbreak super.split;
-  splitmix = self.splitmix_0_1_0_3;
   tar = doJailbreak super.tar;
   time-compat = doJailbreak super.time-compat;
   vector = doJailbreak (dontCheck super.vector);
+  vector-binary-instances = doJailbreak super.vector-binary-instances;
+  vector-th-unbox = doJailbreak super.vector-th-unbox;
   zlib = doJailbreak super.zlib;
 
   # Apply patches from head.hackage.
@@ -93,7 +96,6 @@ self: super: {
     url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/master/patches/language-haskell-extract-0.2.4.patch";
     sha256 = "0rgzrq0513nlc1vw7nw4km4bcwn4ivxcgi33jly4a7n3c1r32v1f";
   });
-  QuickCheck = super.QuickCheck_2_14_2;
   regex-base = appendPatch (doJailbreak super.regex-base) (pkgs.fetchpatch {
     url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/master/patches/regex-base-0.94.0.0.patch";
     sha256 = "0k5fglbl7nnhn8400c4cpnflxcbj9p3xi5prl9jfmszr31jwdy5d";
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
index 64855e27099..c23c4d54acb 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
@@ -1,29 +1,29 @@
 # pkgs/development/haskell-modules/configuration-hackage2nix.yaml
 
-compiler: ghc-8.10.2
+compiler: ghc-8.10.3
 
 core-packages:
   - array-0.5.4.0
   - base-4.14.1.0
   - binary-0.8.8.0
-  - bytestring-0.10.10.0
-  - Cabal-3.2.0.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.2
-  - ghc-boot-8.10.2
-  - ghc-boot-th-8.10.2
+  - ghc-8.10.3
+  - ghc-boot-8.10.3
+  - ghc-boot-th-8.10.3
   - ghc-compact-0.1.0.0
-  - ghc-heap-8.10.2
+  - ghc-heap-8.10.3
   - ghc-prim-0.6.1
-  - ghci-8.10.2
+  - ghci-8.10.3
   - haskeline-0.8.0.1
   - hpc-0.6.1.0
   - integer-gmp-1.0.3.0
-  - libiserv-8.10.2
+  - libiserv-8.10.3
   - mtl-2.2.2
   - parsec-3.1.14.0
   - pretty-1.1.3.6
@@ -32,7 +32,7 @@ core-packages:
   - stm-2.5.0.0
   - template-haskell-2.16.0.0
   - terminfo-0.4.1.4
-  - text-1.2.3.2
+  - text-1.2.4.1
   - time-1.9.3
   - transformers-0.5.6.2
   - unix-2.7.2.2
@@ -76,7 +76,7 @@ default-package-overrides:
   # haskell-language-server 0.5.0.0 doesn't accept newer versions
   - fourmolu ==0.2.*
   - refinery ==0.2.*
-  # Stackage Nightly 2020-12-04
+  # Stackage Nightly 2021-01-01
   - abstract-deque ==0.3
   - abstract-par ==0.3.3
   - AC-Angle ==1.0
@@ -109,7 +109,7 @@ default-package-overrides:
   - al ==0.1.4.2
   - alarmclock ==0.7.0.5
   - alerts ==0.1.2.0
-  - alex ==3.2.5
+  - alex ==3.2.6
   - alg ==0.2.13.1
   - algebraic-graphs ==0.5
   - Allure ==0.9.5.0
@@ -215,18 +215,19 @@ default-package-overrides:
   - ansi-terminal ==0.10.3
   - ansi-wl-pprint ==0.6.9
   - ANum ==0.2.0.2
+  - ap-normalize ==0.1.0.0
   - apecs ==0.9.2
   - apecs-gloss ==0.2.4
-  - apecs-physics ==0.4.4
+  - apecs-physics ==0.4.5
   - api-field-json-th ==0.1.0.2
-  - ap-normalize ==0.1.0.0
+  - api-maker ==0.1.0.0
+  - app-settings ==0.2.0.12
   - appar ==0.1.8
   - appendmap ==0.1.5
   - apply-refact ==0.8.2.1
   - apportionment ==0.0.0.3
   - approximate ==0.3.2
   - approximate-equality ==1.1.0.2
-  - app-settings ==0.2.0.12
   - arbor-lru-cache ==0.1.1.1
   - arbor-postgres ==0.0.5
   - arithmoi ==0.11.0.1
@@ -235,12 +236,12 @@ default-package-overrides:
   - ascii ==1.0.0.2
   - ascii-case ==1.0.0.2
   - ascii-char ==1.0.0.2
-  - asciidiagram ==1.3.3.3
   - ascii-group ==1.0.0.2
   - ascii-predicates ==1.0.0.2
   - ascii-progress ==0.3.3.0
   - ascii-superset ==1.0.0.2
   - ascii-th ==1.0.0.2
+  - asciidiagram ==1.3.3.3
   - asif ==6.0.4
   - asn1-encoding ==0.9.6
   - asn1-parse ==0.9.5
@@ -268,14 +269,20 @@ default-package-overrides:
   - authenticate ==1.3.5
   - authenticate-oauth ==1.6.0.1
   - auto ==0.4.3.1
-  - autoexporter ==1.1.19
   - auto-update ==0.1.6
+  - autoexporter ==1.1.19
   - 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
+  - base-compat ==0.11.2
+  - base-compat-batteries ==0.11.2
+  - base-orphans ==0.8.4
+  - base-prelude ==1.4
+  - base-unicode-symbols ==0.2.4.2
   - base16 ==0.3.0.1
   - base16-bytestring ==0.1.1.7
   - base16-lens ==0.1.3.0
@@ -289,12 +296,7 @@ default-package-overrides:
   - base64-bytestring-type ==1.0.1
   - base64-lens ==0.3.0
   - base64-string ==0.2
-  - base-compat ==0.11.2
-  - base-compat-batteries ==0.11.2
   - basement ==0.0.11
-  - base-orphans ==0.8.3
-  - base-prelude ==1.4
-  - base-unicode-symbols ==0.2.4.2
   - basic-prelude ==0.7.0
   - bazel-runfiles ==0.12
   - bbdb ==0.8
@@ -305,16 +307,15 @@ default-package-overrides:
   - benchpress ==0.2.2.15
   - between ==0.11.0.0
   - bibtex ==0.1.0.6
-  - bifunctors ==5.5.8
+  - bifunctors ==5.5.9
   - bimap ==0.4.0
-  - bimaps ==0.1.0.2
   - bimap-server ==0.1.0.1
+  - bimaps ==0.1.0.2
   - bin ==0.1
   - binary-conduit ==1.3.1
-  - binaryen ==0.0.5.0
   - binary-ext ==2.0.4
   - binary-ieee754 ==0.1.0.0
-  - binary-instances ==1.0.0.1
+  - binary-instances ==1.0.1
   - binary-list ==1.1.1.2
   - binary-orphans ==1.0.1
   - binary-parser ==0.5.6
@@ -322,6 +323,7 @@ default-package-overrides:
   - binary-search ==1.0.0.3
   - binary-shared ==0.8.3
   - binary-tagged ==0.3
+  - binaryen ==0.0.5.0
   - bindings-DSL ==1.0.25
   - bindings-GLFW ==3.3.2.0
   - bindings-libzip ==1.0.1
@@ -329,9 +331,10 @@ default-package-overrides:
   - bins ==0.1.2.0
   - bitarray ==0.0.1.1
   - bits ==0.5.2
-  - bitset-word8 ==0.1.1.2
   - bits-extra ==0.0.2.0
+  - bitset-word8 ==0.1.1.2
   - bitvec ==1.0.3.0
+  - bitwise-enum ==1.0.0.2
   - blake2 ==0.3.0
   - blanks ==0.5.0
   - blas-carray ==0.1.0.1
@@ -344,7 +347,7 @@ default-package-overrides:
   - blaze-svg ==0.3.6.1
   - blaze-textual ==0.2.1.0
   - bmp ==1.2.6.3
-  - BNFC ==2.8.4
+  - BNFC ==2.9.0
   - board-games ==0.3
   - boltzmann-samplers ==0.1.1.0
   - Boolean ==0.2.4
@@ -355,28 +358,29 @@ default-package-overrides:
   - boring ==0.1.3
   - both ==0.1.1.1
   - bound ==2.0.2
-  - BoundedChan ==1.0.3.0
   - bounded-queue ==1.0.0
+  - BoundedChan ==1.0.3.0
   - boundingboxes ==0.2.3
   - bower-json ==1.0.0.1
   - boxes ==0.1.5
-  - brick ==0.57.1
+  - brick ==0.58.1
   - 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.0
   - burrito ==1.2.0.0
   - butcher ==1.3.3.2
   - 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
+  - byteable ==0.1.1
+  - bytedump ==1.0
   - byteorder ==1.0.4
   - bytes ==0.17
   - byteset ==0.1.1.0
@@ -391,8 +395,8 @@ default-package-overrides:
   - bzlib ==0.5.1.0
   - bzlib-conduit ==0.3.0.2
   - c14n ==0.1.0.1
-  - c2hs ==0.28.6
-  - cabal-debian ==5.1
+  - c2hs ==0.28.7
+  - ca-province-codes ==1.0.0.0
   - cabal-doctest ==1.0.8
   - cabal-file ==0.1.1
   - cabal-flatpak ==0.1.0.2
@@ -403,13 +407,12 @@ default-package-overrides:
   - calendar-recycling ==0.0.0.1
   - call-stack ==0.2.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.1
-  - cased ==0.1.0.0
   - case-insensitive ==1.2.1.0
+  - cased ==0.1.0.0
   - cases ==0.1.4
   - casing ==0.1.4.1
   - cassava ==0.5.2.0
@@ -440,7 +443,7 @@ default-package-overrides:
   - checkers ==0.5.6
   - checksum ==0.0
   - chimera ==0.3.1.0
-  - chiphunk ==0.1.2.1
+  - chiphunk ==0.1.4.0
   - choice ==0.2.2
   - chronologique ==0.3.1.3
   - chronos ==1.1.1
@@ -451,6 +454,7 @@ default-package-overrides:
   - cipher-des ==0.0.6
   - cipher-rc4 ==0.1.4
   - circle-packing ==0.1.0.6
+  - circular ==0.3.1.1
   - clash-ghc ==1.2.5
   - clash-lib ==1.2.5
   - clash-prelude ==1.2.5
@@ -462,18 +466,19 @@ default-package-overrides:
   - 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.20
-  - codec-beam ==0.2.0
-  - codec-rpm ==0.2.2
-  - code-page ==0.2
   - co-log ==0.4.0.1
   - co-log-concurrent ==0.5.0.0
   - co-log-core ==0.2.1.1
+  - code-page ==0.2
+  - codec-beam ==0.2.0
+  - codec-rpm ==0.2.2
   - Color ==0.3.0
   - colorful-monoids ==0.2.1.3
   - colorize-haskell ==1.0.1
@@ -483,7 +488,7 @@ default-package-overrides:
   - comfort-array ==0.4
   - comfort-graph ==0.0.3.1
   - commutative ==0.0.2
-  - comonad ==5.0.6
+  - comonad ==5.0.8
   - comonad-extras ==4.0.1
   - compactmap ==0.1.4.2.1
   - compensated ==0.8.1
@@ -519,8 +524,8 @@ default-package-overrides:
   - conferer-hspec ==0.4.0.1
   - conferer-source-json ==0.4.0.1
   - conferer-warp ==0.4.0.1
-  - ConfigFile ==1.1.4
   - config-ini ==0.2.4.0
+  - ConfigFile ==1.1.4
   - configurator ==0.3.0.0
   - configurator-export ==0.1.0.1
   - configurator-pg ==0.2.5
@@ -528,10 +533,10 @@ default-package-overrides:
   - connection-pool ==0.2.2
   - console-style ==0.0.2.1
   - constraint ==0.1.4.0
-  - constraints ==0.12
   - constraint-tuples ==0.1.2
+  - constraints ==0.12
   - construct ==0.3
-  - contravariant ==1.5.2
+  - contravariant ==1.5.3
   - contravariant-extras ==0.3.5.2
   - control-bool ==0.2.1
   - control-monad-free ==0.6.2
@@ -556,8 +561,13 @@ default-package-overrides:
   - 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
+  - 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
+  - cryptocompare ==0.1.2
   - cryptohash ==0.11.9
   - cryptohash-cryptoapi ==0.1.4
   - cryptohash-md5 ==0.11.100.1
@@ -566,11 +576,6 @@ default-package-overrides:
   - cryptonite ==0.27
   - 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
@@ -607,7 +612,6 @@ default-package-overrides:
   - 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.0
@@ -626,12 +630,12 @@ default-package-overrides:
   - data-reify ==0.6.3
   - data-serializer ==0.3.4.1
   - data-textual ==0.3.0.3
+  - datadog ==0.2.5.0
   - dataurl ==0.1.0.0
   - DAV ==1.3.4
   - DBFunctor ==0.1.1.1
-  - dbus ==1.2.16
+  - 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.3
@@ -640,52 +644,52 @@ default-package-overrides:
   - deepseq-generics ==0.2.0.0
   - deepseq-instances ==0.1.0.1
   - deferred-folds ==0.9.15
-  - dejafu ==2.4.0.0
+  - dejafu ==2.4.0.1
   - dense-linear-algebra ==0.1.0.0
   - depq ==0.4.1.0
   - deque ==0.4.3
-  - deriveJsonNoPrefix ==0.1.0.1
   - derive-topdown ==0.0.2.2
+  - deriveJsonNoPrefix ==0.1.0.1
   - deriving-aeson ==0.2.6
   - deriving-compat ==0.5.10
   - derulo ==1.0.9
-  - dhall ==1.36.0
-  - dhall-bash ==1.0.34
-  - dhall-json ==1.7.3
-  - dhall-lsp-server ==1.0.11
-  - dhall-yaml ==1.2.3
+  - dhall ==1.37.1
+  - dhall-bash ==1.0.35
+  - dhall-json ==1.7.4
+  - dhall-lsp-server ==1.0.12
+  - dhall-yaml ==1.2.4
+  - di-core ==1.0.4
+  - di-monad ==1.3.1
   - diagrams-solve ==0.1.2
   - 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.0
+  - directory-tree ==0.12.1
+  - 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
+  - distributive ==0.6.2.1
   - dl-fedora ==0.7.5
   - dlist ==0.8.0.8
   - dlist-instances ==0.1.1.1
   - dlist-nonempty ==0.1.1
   - dns ==4.0.1
+  - do-list ==1.0.1
+  - do-notation ==0.1.0.2
   - dockerfile ==0.2.0
   - doclayout ==0.3
-  - doctemplates ==0.8.3
+  - doctemplates ==0.9
   - doctest ==0.16.3
   - doctest-discover ==0.2.0.0
   - doctest-exitcode-stdio ==0.0
   - doctest-lib ==0.1
   - doldol ==0.4.1.2
-  - do-list ==1.0.1
-  - do-notation ==0.1.0.2
   - dotenv ==0.8.0.7
   - dotgen ==0.4.3
   - dotnet-timespan ==0.0.1.0
@@ -702,7 +706,6 @@ default-package-overrides:
   - 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.3
@@ -724,25 +727,26 @@ default-package-overrides:
   - 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
-  - elynx-markov ==0.5.0
-  - elynx-nexus ==0.5.0
-  - elynx-seq ==0.5.0
-  - elynx-tools ==0.5.0
-  - elynx-tree ==0.5.0
+  - elm2nix ==0.2.1
+  - elynx ==0.5.0.1
+  - elynx-markov ==0.5.0.1
+  - elynx-nexus ==0.5.0.1
+  - elynx-seq ==0.5.0.1
+  - elynx-tools ==0.5.0.1
+  - elynx-tree ==0.5.0.1
   - email-validate ==2.3.2.13
   - emojis ==0.1
   - enclosed-exceptions ==1.0.3
   - ENIG ==0.0.1.0
   - entropy ==0.4.1.6
+  - enum-subset-generate ==0.1.0.0
   - 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
@@ -750,6 +754,8 @@ default-package-overrides:
   - equational-reasoning ==0.6.0.3
   - 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.8
@@ -760,29 +766,30 @@ default-package-overrides:
   - essence-of-live-coding-quickcheck ==0.2.4
   - etc ==0.4.1.0
   - eve ==0.1.9.0
+  - event-list ==0.1.2
   - 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
+  - exceptions ==0.10.4
   - executable-path ==0.0.3.1
   - exit-codes ==1.0.0
   - exomizer ==1.0.0
+  - exp-pairs ==0.2.1.0
+  - experimenter ==0.1.0.4
   - expiring-cache-map ==0.0.6.1
   - explicit-exception ==0.1.10
-  - exp-pairs ==0.2.1.0
   - express ==0.1.3
   - extended-reals ==0.2.4.0
   - extensible-effects ==5.0.0.1
   - extensible-exceptions ==0.1.1.4
-  - extra ==1.7.8
+  - extra ==1.7.9
   - extractable-singleton ==0.0.1
   - extrapolate ==0.4.2
   - fail ==4.9.0.0
@@ -804,10 +811,10 @@ default-package-overrides:
   - 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
   - file-path-th ==0.1.0.0
+  - filelock ==0.1.1.5
+  - filemanip ==0.3.6.3
   - filepattern ==0.1.2
   - fileplow ==0.1.0.0
   - filtrable ==0.1.4.0
@@ -835,10 +842,10 @@ default-package-overrides:
   - fmlist ==0.9.4
   - fmt ==0.6.1.2
   - fn ==0.3.0.2
-  - focus ==1.0.1.4
+  - focus ==1.0.2
   - focuslist ==0.1.0.2
-  - foldable1 ==0.1.0.0
   - fold-debounce ==0.2.0.9
+  - foldable1 ==0.1.0.0
   - foldl ==1.4.10
   - folds ==0.7.5
   - follow-file ==0.0.3
@@ -850,12 +857,12 @@ default-package-overrides:
   - format-numbers ==0.1.0.1
   - formatting ==6.3.7
   - foundation ==0.0.25
-  - free ==5.1.4
+  - free ==5.1.5
   - free-categories ==0.2.0.2
+  - free-vl ==0.1.4
   - 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
@@ -871,8 +878,8 @@ default-package-overrides:
   - 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
+  - fuzzyset ==0.2.0
   - gauge ==0.2.5
   - gd ==3000.7.3
   - gdp ==0.0.3.0
@@ -887,8 +894,8 @@ default-package-overrides:
   - generic-lens-core ==2.0.0.0
   - generic-monoid ==0.1.0.1
   - generic-optics ==2.0.0.0
-  - GenericPretty ==1.2.2
   - generic-random ==1.3.0.1
+  - GenericPretty ==1.2.2
   - generics-sop ==0.5.1.0
   - generics-sop-lens ==0.2.0.1
   - geniplate-mirror ==0.7.7
@@ -920,14 +927,11 @@ default-package-overrides:
   - ghc-byteorder ==4.11.0.0.10
   - ghc-check ==0.5.0.3
   - ghc-core ==0.5.6
-  - ghc-events ==0.14.0
+  - ghc-events ==0.15.1
   - ghc-exactprint ==0.6.3.3
-  - ghcid ==0.8.7
-  - ghci-hexcalc ==0.1.1.0
-  - ghcjs-codemirror ==0.0.0.2
-  - ghc-lib ==8.10.2.20200916
-  - ghc-lib-parser ==8.10.2.20200916
-  - ghc-lib-parser-ex ==8.10.0.16
+  - ghc-lib ==8.10.3.20201220
+  - ghc-lib-parser ==8.10.3.20201220
+  - ghc-lib-parser-ex ==8.10.0.17
   - ghc-parser ==0.2.2.0
   - ghc-paths ==0.1.0.12
   - ghc-prof ==1.4.1.7
@@ -939,6 +943,9 @@ default-package-overrides:
   - ghc-typelits-knownnat ==0.7.3
   - ghc-typelits-natnormalise ==0.7.2
   - ghc-typelits-presburger ==0.3.0.1
+  - ghci-hexcalc ==0.1.1.0
+  - ghcid ==0.8.7
+  - ghcjs-codemirror ==0.0.0.2
   - ghost-buster ==0.1.1.0
   - gi-atk ==2.0.22
   - gi-cairo ==1.0.24
@@ -956,18 +963,18 @@ default-package-overrides:
   - gi-gtk ==3.0.36
   - gi-gtk-hs ==0.3.9
   - gi-harfbuzz ==0.0.3
+  - gi-pango ==1.0.23
+  - gi-xlib ==2.0.9
   - ginger ==0.10.1.0
   - gingersnap ==0.3.1.0
-  - gi-pango ==1.0.23
   - githash ==0.1.5.0
   - github ==0.26
   - github-release ==1.3.5
   - github-rest ==1.0.3
   - github-types ==0.2.1
   - github-webhooks ==0.15.0
-  - gitlab-haskell ==0.2.3
+  - gitlab-haskell ==0.2.4
   - gitrev ==1.3.1
-  - gi-xlib ==2.0.9
   - gl ==0.9
   - glabrous ==2.0.2
   - GLFW-b ==3.3.0.0
@@ -982,21 +989,23 @@ default-package-overrides:
   - gothic ==0.1.5
   - gpolyline ==0.1.0.1
   - graph-core ==0.3.0.0
+  - graph-wrapper ==0.2.6.0
   - graphite ==0.10.0.1
   - graphql-client ==1.1.0
   - graphs ==0.7.1
   - graphviz ==2999.20.1.0
-  - graph-wrapper ==0.2.6.0
   - gravatar ==0.8.0
   - groom ==0.1.2.1
   - group-by-date ==0.1.0.3
-  - groups ==0.5
+  - 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
+  - hadolint ==1.19.0
   - hadoop-streaming ==0.2.0.3
   - hakyll-convert ==0.3.0.3
   - half ==0.3
@@ -1044,13 +1053,13 @@ default-package-overrides:
   - heap ==1.0.4
   - heaps ==0.3.6.1
   - hebrew-time ==0.1.2
-  - hedgehog ==1.0.3
+  - hedgehog ==1.0.4
   - hedgehog-classes ==0.2.5.1
   - hedgehog-corpus ==0.2.0
   - hedgehog-fakedata ==0.0.1.3
   - hedgehog-fn ==1.0
   - hedgehog-quickcheck ==0.1.1
-  - hedis ==0.13.1
+  - hedis ==0.14.0
   - hedn ==0.3.0.2
   - here ==1.2.13
   - heredoc ==0.2.0.0
@@ -1064,9 +1073,9 @@ default-package-overrides:
   - hgeometry ==0.11.0.0
   - hgeometry-combinatorial ==0.11.0.0
   - hgrev ==0.2.6
-  - hidapi ==0.1.5
-  - hie-bios ==0.7.1
   - hi-file-parser ==0.1.0.0
+  - hidapi ==0.1.5
+  - hie-bios ==0.7.2
   - higher-leveldb ==0.6.0.0
   - highlighting-kate ==0.6.4
   - hinfo ==0.0.3.0
@@ -1079,6 +1088,7 @@ default-package-overrides:
   - hlibgit2 ==0.18.0.16
   - hlibsass ==0.1.10.1
   - hmatrix ==0.20.1
+  - 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
@@ -1098,21 +1108,22 @@ default-package-overrides:
   - hourglass ==0.2.12
   - hourglass-orphans ==0.1.0.0
   - hp2pretty ==0.9
-  - hpack ==0.34.2
+  - hpack ==0.34.3
   - hpack-dhall ==0.5.2
   - hpc-codecov ==0.2.0.0
   - hpc-lcov ==1.0.1
   - hprotoc ==2.4.17
   - hruby ==0.3.8
-  - hsass ==0.8.0
   - hs-bibutils ==6.10.0.0
+  - hs-functors ==0.1.7.1
+  - hs-GeoIP ==0.3
+  - hs-php-session ==0.0.9.3
+  - hsass ==0.8.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
@@ -1145,7 +1156,6 @@ default-package-overrides:
   - hspec-tables ==0.0.1
   - hspec-wai ==0.10.1
   - hspec-wai-json ==0.10.1
-  - hs-php-session ==0.0.9.3
   - hsshellscript ==3.4.5
   - HStringTemplate ==0.8.7
   - HSvm ==0.1.1.3.22
@@ -1158,7 +1168,6 @@ default-package-overrides:
   - html-entities ==1.1.4.3
   - html-entity-map ==0.1.0.0
   - htoml ==1.0.0.3
-  - http2 ==2.0.5
   - HTTP ==4000.3.15
   - http-api-data ==0.4.1.1
   - http-client ==0.6.4.1
@@ -1166,17 +1175,18 @@ default-package-overrides:
   - http-client-overrides ==0.1.1.0
   - http-client-tls ==0.3.5.3
   - http-common ==0.8.2.1
-  - http-conduit ==2.3.7.3
+  - http-conduit ==2.3.7.4
   - http-date ==0.0.10
   - http-directory ==0.1.8
   - http-download ==0.2.0.0
-  - httpd-shed ==0.4.1.1
   - http-link-header ==1.0.3.1
   - http-media ==0.8.0.0
   - http-query ==0.1.0
   - http-reverse-proxy ==0.6.0
   - http-streams ==0.8.7.2
   - http-types ==0.12.3
+  - http2 ==2.0.5
+  - httpd-shed ==0.4.1.1
   - human-readable-duration ==0.2.1.4
   - HUnit ==1.6.1.0
   - HUnit-approx ==1.1.1.1
@@ -1189,7 +1199,6 @@ default-package-overrides:
   - 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
@@ -1214,6 +1223,7 @@ default-package-overrides:
   - hw-string-parse ==0.0.0.4
   - hw-succinct ==0.1.0.1
   - hw-xml ==0.5.1.0
+  - hweblib ==0.6.3
   - hxt ==9.3.1.18
   - hxt-charproperties ==9.4.0.0
   - hxt-css ==0.1.0.3
@@ -1239,13 +1249,15 @@ default-package-overrides:
   - 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
+  - incremental-parser ==0.5.0.1
   - 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
+  - indexed-traversable ==0.1.1
   - infer-license ==0.2.0
   - inflections ==0.4.0.6
   - influxdb ==1.9.0
@@ -1253,6 +1265,7 @@ default-package-overrides:
   - inj ==1.0
   - inline-c ==0.9.1.3
   - inline-c-cpp ==0.4.0.2
+  - inline-r ==0.10.4
   - inliterate ==0.1.0
   - input-parsers ==0.1.0.1
   - insert-ordered-containers ==0.2.3.1
@@ -1294,13 +1307,13 @@ default-package-overrides:
   - iso3166-country-codes ==0.20140203.8
   - iso639 ==0.1.0.3
   - iso8601-time ==0.1.5
-  - iterable ==3.0
   - it-has ==0.2.0.0
+  - iterable ==3.0
+  - ix-shapable ==0.1.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.1.4
   - jalaali ==1.0.0.0
   - jira-wiki-markup ==1.3.2
@@ -1311,9 +1324,9 @@ default-package-overrides:
   - js-flot ==0.8.3
   - js-jquery ==3.3.1
   - json-feed ==1.0.11
-  - jsonpath ==0.2.0.0
   - json-rpc ==1.0.3
   - json-rpc-generic ==0.2.1.5
+  - jsonpath ==0.2.0.0
   - JuicyPixels ==3.3.5
   - JuicyPixels-blurhash ==0.1.0.3
   - JuicyPixels-extra ==0.4.1
@@ -1324,11 +1337,13 @@ default-package-overrides:
   - kan-extensions ==5.2.1
   - 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
   - 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.1
@@ -1389,9 +1404,9 @@ default-package-overrides:
   - libyaml ==0.1.2
   - LibZip ==1.0.1
   - life-sync ==1.1.1.0
+  - lift-generics ==0.2
   - lifted-async ==0.10.1.2
   - lifted-base ==0.2.3.12
-  - lift-generics ==0.2
   - line ==4.0.1
   - linear ==1.21.3
   - linear-circuit ==0.1.0.2
@@ -1400,11 +1415,10 @@ default-package-overrides:
   - linux-namespaces ==0.1.3.0
   - liquid-fixpoint ==0.8.10.2
   - List ==0.6.2
-  - ListLike ==4.7.2
   - list-predicate ==0.1.0.1
-  - listsafe ==0.1.0.1
   - list-singleton ==1.0.0.4
   - list-t ==1.0.4
+  - listsafe ==0.1.0.1
   - ListTree ==0.2.3
   - little-logger ==0.3.1
   - little-rio ==0.2.2
@@ -1422,6 +1436,7 @@ default-package-overrides:
   - logging-facade ==0.3.0
   - logging-facade-syslog ==1
   - logict ==0.7.0.3
+  - logstash ==0.1.0.1
   - loop ==0.3.0
   - lrucache ==1.2.0.1
   - lrucaching ==0.3.3
@@ -1436,20 +1451,20 @@ default-package-overrides:
   - machines ==0.7.1
   - magic ==1.1
   - magico ==0.0.2.1
-  - mainland-pretty ==0.7.0.1
   - main-tester ==0.2.0.1
+  - mainland-pretty ==0.7.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.0
+  - markdown-unlit ==0.5.1
   - markov-chain ==0.0.3.4
-  - massiv ==0.5.7.0
+  - massiv ==0.5.9.0
   - massiv-io ==0.4.0.0
-  - massiv-test ==0.1.5
-  - mathexpr ==0.3.0.0
+  - massiv-test ==0.1.6
   - math-extras ==0.1.1.0
   - math-functions ==0.3.4.1
+  - mathexpr ==0.3.0.0
   - matplotlib ==0.7.5
   - matrices ==0.5.0
   - matrix ==0.3.6.1
@@ -1459,11 +1474,11 @@ default-package-overrides:
   - maximal-cliques ==0.1.1
   - mbox ==0.3.4
   - mbox-utility ==0.0.3.1
-  - mcmc ==0.3.0
+  - mcmc ==0.4.0.0
   - mcmc-types ==1.0.3
+  - med-module ==0.1.2.1
   - 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
@@ -1485,19 +1500,19 @@ default-package-overrides:
   - microlens-process ==0.2.0.2
   - microlens-th ==0.4.3.8
   - microspec ==0.2.1.3
-  - microstache ==1.0.1.1
+  - microstache ==1.0.1.2
   - midair ==0.2.0.1
   - midi ==0.2.2.2
   - mighty-metropolis ==2.0.0
   - mime-mail ==0.5.0
   - mime-mail-ses ==0.4.3
   - mime-types ==0.1.0.9
+  - min-max-pqueue ==0.1.0.2
   - 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
@@ -1509,8 +1524,9 @@ default-package-overrides:
   - mmark-ext ==0.2.1.2
   - mmorph ==1.1.3
   - mnist-idx ==0.1.2.8
+  - mock-time ==0.1.0
   - mockery ==0.3.5
-  - mod ==0.1.2.0
+  - mod ==0.1.2.1
   - model ==0.5
   - modern-uri ==0.3.3.0
   - modular ==0.1.0.8
@@ -1519,36 +1535,37 @@ default-package-overrides:
   - monad-control-aligned ==0.0.1.1
   - monad-coroutine ==0.9.0.4
   - 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-prefix ==0.1.11
+  - 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.1.4
+  - monad-metrics ==0.2.2.0
   - monad-par ==0.3.5
-  - monad-parallel ==0.7.2.3
   - monad-par-extras ==0.3.3
+  - monad-parallel ==0.7.2.3
   - monad-peel ==0.2.1.2
   - monad-primitive ==0.1
   - monad-products ==4.0.1
-  - MonadPrompt ==1.0.0.5
-  - MonadRandom ==0.5.2
   - 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
+  - monadic-arrays ==0.2.2
+  - monadlist ==0.0.2
+  - MonadPrompt ==1.0.0.5
+  - MonadRandom ==0.5.2
+  - monads-tf ==0.1.0.3
   - 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
+  - monoid-subclasses ==1.0.1
+  - monoid-transformer ==0.0.4
   - more-containers ==0.2.2.0
   - morpheus-graphql ==0.16.0
   - morpheus-graphql-client ==0.16.0
@@ -1561,14 +1578,14 @@ default-package-overrides:
   - 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
+  - multiarg ==0.30.0.10
   - 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
+  - murmur3 ==1.0.4
   - MusicBrainz ==0.4.1
   - mustache ==2.3.1
   - mutable-containers ==0.3.4
@@ -1616,20 +1633,20 @@ default-package-overrides:
   - nicify-lib ==1.0.1
   - NineP ==0.0.2.1
   - nix-paths ==1.0.1
+  - no-value ==1.0.0.0
+  - non-empty ==0.3.2
+  - non-empty-sequence ==0.2.0.4
+  - non-negative ==0.1.2
   - nonce ==1.0.7
   - nondeterminism ==1.4
-  - non-empty ==0.3.2
   - nonempty-containers ==0.3.4.1
-  - nonemptymap ==0.0.6.0
-  - non-empty-sequence ==0.2.0.4
   - nonempty-vector ==0.2.1.0
-  - non-negative ==0.1.2
+  - nonemptymap ==0.0.6.0
   - 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.2
-  - nri-prelude ==0.2.0.0
+  - nri-env-parser ==0.1.0.3
+  - nri-prelude ==0.3.0.0
   - nsis ==0.3.3
   - numbers ==3000.2.0.2
   - numeric-extras ==0.1
@@ -1641,9 +1658,9 @@ default-package-overrides:
   - nvim-hs ==2.1.0.4
   - nvim-hs-contrib ==2.0.0.0
   - nvim-hs-ghcid ==2.0.0.0
+  - o-clock ==1.2.0
   - oauthenticated ==0.2.1.0
   - ObjectName ==1.1.0.1
-  - o-clock ==1.2.0
   - odbc ==0.2.2
   - oeis2 ==1.0.4
   - ofx ==0.4.4.0
@@ -1656,9 +1673,9 @@ default-package-overrides:
   - Only ==0.1
   - oo-prototypes ==0.1.0.0
   - opaleye ==0.7.1.0
-  - OpenAL ==1.7.0.5
-  - openapi3 ==3.0.0.1
   - open-browser ==0.2.1.0
+  - OpenAL ==1.7.0.5
+  - openapi3 ==3.0.1.0
   - openexr-write ==0.1.0.2
   - OpenGL ==3.0.3.0
   - OpenGLRaw ==3.3.4.0
@@ -1707,7 +1724,7 @@ default-package-overrides:
   - partial-handler ==1.0.3
   - partial-isomorphisms ==0.2.2.1
   - partial-semigroup ==0.5.1.8
-  - password ==2.0.1.1
+  - password ==2.1.0.0
   - password-instances ==2.0.0.1
   - path ==0.7.0
   - path-binary-instance ==0.1.0.1
@@ -1720,12 +1737,12 @@ default-package-overrides:
   - pathtype ==0.8.1.1
   - pathwalk ==0.3.1.2
   - pattern-arrows ==0.0.2
-  - pava ==0.1.0.0
+  - pava ==0.1.1.0
   - pcg-random ==0.1.3.7
   - pcre-heavy ==1.0.0.2
   - pcre-light ==0.4.1.0
   - pcre-utils ==0.1.8.1.1
-  - pdfinfo ==1.5.4
+  - pcre2 ==1.1.3.1
   - peano ==0.1.0.1
   - pem ==0.2.4
   - percent-format ==0.0.1
@@ -1734,20 +1751,23 @@ default-package-overrides:
   - persist ==0.1.1.5
   - persistable-record ==0.6.0.5
   - persistable-types-HDBC-pg ==0.0.3.5
-  - persistent ==2.10.5.3
+  - persistent ==2.11.0.2
   - persistent-documentation ==0.1.0.2
-  - persistent-mysql ==2.10.2.3
+  - persistent-mtl ==0.2.0.0
+  - persistent-mysql ==2.10.3.1
   - persistent-pagination ==0.1.1.2
-  - persistent-postgresql ==2.10.1.2
+  - persistent-postgresql ==2.11.0.1
   - persistent-qq ==2.9.2.1
-  - persistent-sqlite ==2.10.6.2
-  - persistent-template ==2.8.2.3
-  - persistent-typed-db ==0.1.0.1
+  - persistent-sqlite ==2.11.0.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
+  - pgp-wordlist ==0.1.0.3
   - phantom-state ==0.2.1.2
   - pid1 ==0.1.2.0
+  - pinboard ==0.10.2.0
   - pipes ==4.3.14
   - pipes-aeson ==0.4.1.8
   - pipes-attoparsec ==0.5.1.5
@@ -1783,6 +1803,7 @@ default-package-overrides:
   - port-utils ==0.2.1.0
   - posix-paths ==0.2.1.6
   - possibly ==1.0.0.0
+  - post-mess-age ==0.2.1.0
   - postgres-options ==0.2.0.0
   - postgresql-binary ==0.12.3.3
   - postgresql-libpq ==0.9.4.3
@@ -1791,28 +1812,27 @@ default-package-overrides:
   - postgresql-simple ==0.6.3
   - postgresql-typed ==0.6.1.2
   - 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.2.0.3
   - pretty-hex ==1.1
-  - prettyprinter ==1.6.2
-  - prettyprinter-ansi-terminal ==1.1.2
-  - prettyprinter-compat-annotated-wl-pprint ==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 ==3.3.0.0
+  - pretty-simple ==4.0.0.0
   - pretty-sop ==0.2.0.3
   - pretty-terminal ==0.1.0.0
+  - prettyclass ==1.0.0.0
+  - 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
   - primes ==0.2.1.0
   - primitive ==0.7.1.0
   - primitive-addr ==0.1.0.2
@@ -1821,19 +1841,24 @@ default-package-overrides:
   - 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.1
   - profiterole ==0.1
   - profunctors ==5.5.2
-  - projectroot ==0.2.0.1
   - project-template ==0.2.1.0
+  - projectroot ==0.2.0.1
   - 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
+  - proto-lens ==0.7.0.0
+  - proto-lens-optparse ==0.1.1.7
+  - 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
   - proto3-wire ==1.1.0
   - protobuf ==0.2.1.3
   - protobuf-simple ==0.1.1.0
@@ -1841,13 +1866,6 @@ default-package-overrides:
   - 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-arbitrary ==0.1.2.9
-  - proto-lens-optparse ==0.1.1.7
-  - 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
@@ -1865,13 +1883,13 @@ default-package-overrides:
   - qrcode-juicypixels ==0.8.2
   - quadratic-irrational ==0.1.1
   - QuasiText ==0.1.2.6
-  - QuickCheck ==2.13.2
+  - QuickCheck ==2.14.2
   - quickcheck-arbitrary-adt ==0.3.1.0
   - quickcheck-assertions ==0.3.0
   - quickcheck-classes ==0.6.4.0
   - quickcheck-classes-base ==0.6.1.0
   - quickcheck-higherorder ==0.1.0.0
-  - quickcheck-instances ==0.3.23
+  - quickcheck-instances ==0.3.25.1
   - quickcheck-io ==0.2.0
   - quickcheck-simple ==0.1.1.1
   - quickcheck-special ==0.1.0.6
@@ -1879,6 +1897,7 @@ default-package-overrides:
   - quickcheck-transformer ==0.3.1.1
   - quickcheck-unicode ==1.0.1.0
   - quiet ==0.2
+  - quote-quot ==0.1.0.0
   - radius ==0.7.1.0
   - rainbow ==0.34.2.2
   - rainbox ==0.26.0.0
@@ -1893,37 +1912,38 @@ default-package-overrides:
   - random-source ==0.3.0.8
   - random-tree ==0.6.0.5
   - range ==0.3.0.2
-  - Ranged-sets ==0.4.0
   - range-set-list ==0.1.3.1
+  - Ranged-sets ==0.4.0
   - rank1dynamic ==0.4.1
   - rank2classes ==1.4.1
   - Rasterific ==0.7.5.3
   - rasterific-svg ==0.3.3.2
-  - ratel ==1.0.12
   - rate-limit ==1.4.2
+  - ratel ==1.0.12
   - ratel-wai ==1.1.3
   - rattle ==0.2
+  - raw-strings-qq ==1.1
   - rawfilepath ==0.2.4
   - rawstring-qm ==0.2.3.0
-  - raw-strings-qq ==1.1
   - rcu ==0.2.4
   - rdf ==0.1.0.4
   - 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
+  - readable ==0.3.1
   - reanimate ==1.1.2.1
   - reanimate-svg ==0.13.0.0
   - rebase ==1.6.1
   - record-dot-preprocessor ==0.2.7
   - record-hasfield ==1.0
-  - records-sop ==0.1.0.3
   - record-wrangler ==0.1.1.0
+  - records-sop ==0.1.0.3
   - recursion-schemes ==5.2.1
   - reducers ==3.12.3
-  - refact ==0.3.0.2
   - ref-fd ==0.4.0.2
+  - ref-tf ==0.4.0.2
+  - refact ==0.3.0.2
   - refined ==0.6.1
   - reflection ==2.1.6
   - reform ==0.2.7.4
@@ -1931,7 +1951,6 @@ default-package-overrides:
   - 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
@@ -1954,7 +1973,7 @@ default-package-overrides:
   - relude ==0.7.0.0
   - renderable ==0.2.0.1
   - replace-attoparsec ==1.4.2.0
-  - replace-megaparsec ==1.4.3.0
+  - replace-megaparsec ==1.4.4.0
   - repline ==0.4.0.0
   - req ==3.8.0
   - req-conduit ==1.0.0
@@ -1989,15 +2008,15 @@ default-package-overrides:
   - runmemo ==1.0.0.1
   - rvar ==0.2.0.6
   - safe ==0.3.19
-  - safecopy ==0.10.3
   - 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
+  - safe-json ==1.1.1.1
   - safe-money ==0.9
-  - SafeSemaphore ==0.10.1
   - safe-tensor ==0.2.1.0
+  - safecopy ==0.10.3
+  - safeio ==0.0.5.0
+  - SafeSemaphore ==0.10.1
   - salak ==0.3.6
   - salak-yaml ==0.3.5.3
   - saltine ==0.1.1.0
@@ -2033,10 +2052,10 @@ default-package-overrides:
   - semialign-indexed ==1.1
   - semialign-optics ==1.1
   - semigroupoid-extras ==5
-  - semigroupoids ==5.3.4
+  - semigroupoids ==5.3.5
   - semigroups ==0.19.1
-  - semirings ==0.5.4
   - semiring-simple ==1.0.0.1
+  - semirings ==0.5.4
   - semver ==0.4.0.1
   - sendfile ==0.7.11.1
   - seqalign ==0.2.0.4
@@ -2067,7 +2086,7 @@ default-package-overrides:
   - 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.4
+  - serverless-haskell ==0.12.5
   - serversession ==1.0.1
   - serversession-frontend-wai ==1.0
   - ses-html ==0.4.0.0
@@ -2082,9 +2101,9 @@ default-package-overrides:
   - shared-memory ==0.2.0.0
   - shell-conduit ==5.0.0
   - shell-escape ==0.2.0
+  - shell-utility ==0.1
   - shellmet ==0.0.3.1
   - shelltestrunner ==1.9
-  - shell-utility ==0.1
   - shelly ==1.9.0
   - shikensu ==0.3.11
   - should-not-typecheck ==2.1.0
@@ -2094,7 +2113,7 @@ default-package-overrides:
   - silently ==1.2.5.1
   - simple-affine-space ==0.1.1
   - simple-cabal ==0.1.3
-  - simple-cmd ==0.2.2
+  - simple-cmd ==0.2.3
   - simple-cmd-args ==0.1.6
   - simple-log ==0.9.12
   - simple-reflect ==0.3.3
@@ -2113,12 +2132,12 @@ default-package-overrides:
   - skein ==1.0.9.4
   - skews ==0.1.0.3
   - skip-var ==0.1.1.0
-  - skylighting ==0.10.1
-  - skylighting-core ==0.10.1
+  - skylighting ==0.10.2
+  - skylighting-core ==0.10.2
   - slack-api ==0.12
   - slack-progressbar ==0.1.0.1
   - slist ==0.1.1.0
-  - slynx ==0.5.0
+  - slynx ==0.5.0.1
   - smallcheck ==1.2.0
   - smash ==0.1.1.0
   - smash-aeson ==0.1.0.0
@@ -2151,21 +2170,21 @@ default-package-overrides:
   - splice ==0.6.1.1
   - splint ==1.0.1.2
   - split ==0.2.3.4
-  - splitmix ==0.0.5
+  - splitmix ==0.1.0.3
   - spoon ==0.3.1
   - spreadsheet ==0.1.3.8
+  - sql-words ==0.1.6.4
   - 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.4.0.0
+  - squeather ==0.6.0.0
   - srcloc ==0.5.1.2
   - stache ==2.2.0
-  - stackcollapse-ghc ==0.0.1.3
   - stack-templatizer ==0.1.0.2
+  - stackcollapse-ghc ==0.0.1.3
   - stateref ==0.3
-  - StateVar ==1.2
+  - StateVar ==1.2.1
   - static-text ==0.2.0.6
   - statistics ==0.15.2.0
   - status-notifier-item ==0.3.0.5
@@ -2178,15 +2197,15 @@ default-package-overrides:
   - stm-extras ==0.1.0.3
   - stm-hamt ==1.2.0.4
   - stm-lifted ==2.5.0.0
-  - STMonadTrans ==0.4.4
   - stm-split ==0.0.2.1
+  - STMonadTrans ==0.4.5
   - 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.8
+  - store ==0.7.9
   - store-core ==0.4.4.4
   - store-streaming ==0.2.0.3
   - stratosphere ==0.59.1
@@ -2195,12 +2214,11 @@ default-package-overrides:
   - streaming-bytestring ==0.2.0
   - streaming-commons ==0.2.2.1
   - streams ==3.3
-  - strict ==0.4
+  - 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
@@ -2208,8 +2226,9 @@ default-package-overrides:
   - string-interpolate ==0.3.0.2
   - string-qq ==0.0.4
   - string-random ==0.1.3.0
-  - stringsearch ==0.3.6.6
   - string-transform ==1.1.1
+  - stringbuilder ==0.5.1
+  - stringsearch ==0.3.6.6
   - stripe-concepts ==1.0.2.4
   - stripe-core ==2.6.2
   - stripe-haskell ==2.6.2
@@ -2234,13 +2253,14 @@ default-package-overrides:
   - 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.1
+  - systemd ==2.3.0
   - tabular ==0.2.2.8
+  - taffybar ==3.2.3
   - tagchup ==0.4.1.1
-  - tagged ==0.8.6
+  - tagged ==0.8.6.1
   - tagged-binary ==0.2.0.1
   - tagged-identity ==0.1.3
   - tagged-transformer ==0.8.1
@@ -2253,22 +2273,22 @@ default-package-overrides:
   - tardis ==0.4.1.0
   - tasty ==1.2.3
   - tasty-ant-xml ==1.1.7
-  - tasty-dejafu ==2.0.0.6
+  - tasty-dejafu ==2.0.0.7
   - tasty-discover ==4.2.2
   - tasty-expected-failure ==0.11.1.2
+  - tasty-focus ==1.0.1
   - tasty-golden ==2.3.3.2
   - tasty-hedgehog ==1.0.0.2
   - tasty-hspec ==1.1.6
-  - tasty-hunit ==0.10.0.2
-  - tasty-hunit-compat ==0.2
+  - 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.1
   - tasty-program ==1.0.5
-  - tasty-quickcheck ==0.10.1.1
+  - tasty-quickcheck ==0.10.1.2
   - tasty-rerun ==1.1.18
-  - tasty-silver ==3.1.15
-  - tasty-smallcheck ==0.8.1
+  - tasty-smallcheck ==0.8.2
   - tasty-test-reporter ==0.1.1.4
   - tasty-th ==0.1.7
   - tasty-wai ==0.1.1.1
@@ -2292,8 +2312,8 @@ default-package-overrides:
   - test-framework-smallcheck ==0.2
   - test-fun ==0.1.0.0
   - testing-type-modifiers ==0.1.0.1
-  - texmath ==0.12.0.3
-  - text-ansi ==0.1.0.1
+  - texmath ==0.12.1
+  - text-ansi ==0.1.0.2
   - text-binary ==0.2.1.1
   - text-builder ==0.6.6.1
   - text-conversions ==0.3.1
@@ -2301,7 +2321,6 @@ default-package-overrides:
   - 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.2.0.1
   - text-metrics ==0.3.0
   - text-postgresql ==0.0.3.1
@@ -2312,19 +2331,16 @@ default-package-overrides:
   - text-show ==3.9
   - text-show-instances ==3.8.4
   - text-zipper ==0.10.1
-  - tfp ==1.0.1.1
+  - textlocal ==0.1.0.5
   - tf-random ==0.5
-  - th-abstraction ==0.4.0.0
+  - tfp ==1.0.1.1
+  - th-abstraction ==0.4.2.0
   - th-bang-compat ==0.0.1.0
   - th-compat ==0.1
   - 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.1
-  - these-optics ==1.0.1.1
-  - these-skinny ==0.7.4
   - th-expand-syns ==0.4.6.0
   - th-extras ==0.0.0.4
   - th-lift ==0.8.2
@@ -2332,33 +2348,37 @@ default-package-overrides:
   - th-nowq ==0.1.0.5
   - th-orphans ==0.13.11
   - th-printf ==0.7
+  - th-reify-compat ==0.0.1.5
+  - th-reify-many ==0.1.9
+  - th-strict-compat ==0.1.0.1
+  - th-test-utils ==1.1.0
+  - th-utilities ==0.2.4.1
+  - these ==1.1.1.1
+  - these-lens ==1.0.1.1
+  - these-optics ==1.0.1.1
+  - these-skinny ==0.7.4
   - thread-hierarchy ==0.3.0.2
   - thread-local-storage ==0.2
-  - threads ==0.5.1.6
   - thread-supervisor ==0.2.0.0
+  - threads ==0.5.1.6
   - 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.1
   - thyme ==0.3.5.5
   - tidal ==1.6.1
   - tile ==0.3.0.0
-  - time-compat ==1.9.4
-  - timeit ==2.0
-  - timelens ==0.2.0.2
+  - time-compat ==1.9.5
   - 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
+  - timeit ==2.0
+  - timelens ==0.2.0.2
+  - timer-wheel ==0.3.0
+  - timerep ==2.0.1.0
   - timezone-olson ==0.2.0
   - timezone-series ==0.1.9
   - tinylog ==0.15.0
@@ -2367,7 +2387,7 @@ default-package-overrides:
   - tls ==1.5.4
   - tls-debug ==0.4.8
   - tls-session-manager ==0.0.4
-  - tlynx ==0.5.0
+  - tlynx ==0.5.0.1
   - tmapchan ==0.0.3
   - tmapmvar ==0.0.4
   - tmp-postgres ==1.34.1.0
@@ -2393,13 +2413,10 @@ default-package-overrides:
   - 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
+  - tuples-homogenous-h98 ==0.1.1.0
   - turtle ==1.5.20
-  - 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
@@ -2413,8 +2430,11 @@ default-package-overrides:
   - type-of-html ==1.6.1.2
   - 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
+  - TypeCompose ==0.9.14
+  - typed-process ==0.2.6.0
+  - typed-uuid ==0.0.0.2
+  - typerep-map ==0.3.3.0
   - tzdata ==0.2.20201021.0
   - ua-parser ==0.7.5.1
   - uglymemo ==0.1.0.1
@@ -2448,7 +2468,7 @@ default-package-overrides:
   - universe-instances-trans ==1.1
   - universe-reverse-instances ==1.1
   - universe-some ==1.2
-  - universum ==1.7.1
+  - universum ==1.5.0
   - unix-bytestring ==0.3.7.3
   - unix-compat ==0.5.2
   - unix-time ==0.4.7
@@ -2459,7 +2479,7 @@ default-package-overrides:
   - unordered-containers ==0.2.13.0
   - unsafe ==0.0
   - urbit-hob ==0.3.3
-  - uri-bytestring ==0.3.2.2
+  - uri-bytestring ==0.3.3.0
   - uri-bytestring-aeson ==0.1.0.8
   - uri-encode ==1.5.0.7
   - url ==2.1.3
@@ -2489,7 +2509,7 @@ default-package-overrides:
   - vault ==0.3.1.4
   - vec ==0.3
   - vector ==0.12.1.2
-  - vector-algorithms ==0.8.0.3
+  - vector-algorithms ==0.8.0.4
   - vector-binary-instances ==0.2.5.1
   - vector-buffer ==0.4.1
   - vector-builder ==0.3.8
@@ -2497,7 +2517,7 @@ default-package-overrides:
   - vector-instances ==3.4
   - vector-mmap ==0.0.3
   - vector-rotcev ==0.1.0.0
-  - vector-sized ==1.4.2
+  - vector-sized ==1.4.3.1
   - vector-space ==0.16
   - vector-split ==1.0.0.2
   - vector-th-unbox ==0.2.1.7
@@ -2516,7 +2536,7 @@ default-package-overrides:
   - wai-cors ==0.2.7
   - wai-enforce-https ==0.0.2.1
   - wai-eventsource ==3.0.0
-  - wai-extra ==3.1.3
+  - wai-extra ==3.1.4.1
   - wai-feature-flags ==0.1.0.1
   - wai-handler-launch ==3.0.3.1
   - wai-logger ==2.3.6
@@ -2543,27 +2563,27 @@ default-package-overrides:
   - webex-teams-pipes ==0.2.0.1
   - webgear-server ==0.2.0
   - webrtc-vad ==0.1.0.3
-  - websockets ==0.12.7.1
+  - websockets ==0.12.7.2
   - websockets-snap ==0.10.3.1
   - weigh ==0.0.16
-  - wide-word ==0.1.1.1
+  - wide-word ==0.1.1.2
   - wikicfp-scraper ==0.1.0.11
   - Win32 ==2.6.1.0
   - Win32-notify ==0.3.0.3
   - windns ==0.1.0.1
-  - witch ==0.0.0.3
-  - witherable-class ==0
-  - within ==0.2.0.1
+  - witch ==0.0.0.4
   - with-location ==0.1.0
   - with-utf8 ==1.0.2.1
+  - witherable-class ==0
+  - within ==0.2.0.1
   - 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
+  - word24 ==2.0.1
+  - word8 ==0.1.3
   - world-peace ==1.0.2.0
   - wrap ==0.0.0
   - wreq ==0.5.3.2
@@ -2584,22 +2604,22 @@ default-package-overrides:
   - xdg-desktop-entry ==0.1.1.1
   - xdg-userdirs ==0.1.0.2
   - xeno ==0.4.2
-  - xls ==0.1.3
   - xlsx ==0.8.2
   - xlsx-tabular ==0.2.2.1
   - xml ==1.3.14
   - xml-basic ==0.1.3.1
   - xml-conduit ==1.9.0.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.2
   - xml-picklers ==0.3.6
   - xml-to-json ==2.0.1
   - xml-to-json-fast ==2.0.0
   - xml-types ==0.3.8
+  - xmlgen ==0.6.2.2
   - xmonad ==0.15
   - xmonad-contrib ==0.16
   - xmonad-extras ==0.15.2
@@ -2607,21 +2627,24 @@ default-package-overrides:
   - xxhash-ffi ==0.2.0.0
   - yaml ==0.11.5.0
   - yamlparse-applicative ==0.1.0.2
+  - yes-precure5-command ==5.5.3
   - yesod ==1.6.1.0
   - yesod-auth ==1.6.10.1
   - yesod-auth-hashdb ==1.7.1.5
+  - yesod-auth-oauth2 ==0.6.1.7
   - yesod-bin ==1.6.0.6
-  - yesod-core ==1.6.18.7
+  - yesod-core ==1.6.18.8
   - yesod-fb ==0.6.1
   - yesod-form ==1.6.7
   - yesod-gitrev ==0.2.1
   - yesod-newsfeed ==1.7.0.0
+  - yesod-page-cursor ==2.0.0.0
+  - yesod-paginator ==1.1.1.0
   - yesod-persistent ==1.6.0.5
   - yesod-sitemap ==1.6.0
   - yesod-static ==1.6.1.0
-  - yesod-test ==1.6.11
+  - yesod-test ==1.6.12
   - yesod-websockets ==0.3.0.2
-  - yes-precure5-command ==5.5.3
   - yi-rope ==0.11
   - yjsvg ==0.2.0.1
   - yjtools ==0.9.18
@@ -2636,9 +2659,9 @@ default-package-overrides:
   - zio ==0.1.0.2
   - zip ==1.6.0
   - zip-archive ==0.4.1
+  - zip-stream ==0.2.0.1
   - zipper-extra ==0.1.3.2
   - zippers ==0.3
-  - zip-stream ==0.2.0.1
   - zlib ==0.6.2.2
   - zlib-bindings ==0.1.1.5
   - zlib-lens ==0.1.2.1
@@ -3137,9 +3160,6 @@ broken-packages:
   - aos-signature
   - aosd
   - apart
-  - apecs-gloss
-  - apecs-physics
-  - apecs-physics-gloss
   - apecs-stm
   - apelsin
   - api-builder
@@ -3392,6 +3412,7 @@ broken-packages:
   - bbi
   - BCMtools
   - bcp47
+  - bcp47-orphans
   - bdcs
   - bdcs-api
   - bdd
@@ -3642,9 +3663,7 @@ broken-packages:
   - broker-haskell
   - bronyradiogermany-common
   - bronyradiogermany-streaming
-  - brotli
   - brotli-conduit
-  - brotli-streams
   - browscap
   - bsd-sysctl
   - bson
@@ -4223,6 +4242,7 @@ broken-packages:
   - cookies
   - coordinate
   - copilot
+  - copilot-c99
   - copilot-cbmc
   - copilot-language
   - copilot-libraries
@@ -4312,7 +4332,6 @@ broken-packages:
   - cryptocipher
   - cryptocompare
   - cryptoconditions
-  - cryptohash-sha512
   - cryptoids
   - cryptoids-class
   - cryptoids-types
@@ -4343,6 +4362,7 @@ broken-packages:
   - currency-convert
   - curry-frontend
   - CurryDB
+  - curryer-rpc
   - cursedcsv
   - cursor-fuzzy-time-gen
   - curves
@@ -4927,7 +4947,6 @@ broken-packages:
   - EsounD
   - espial
   - ess
-  - essence-of-live-coding-warp
   - estimators
   - EstProgress
   - estreps
@@ -5080,7 +5099,9 @@ broken-packages:
   - fei-base
   - fei-cocoapi
   - fei-dataiter
+  - fei-datasets
   - fei-examples
+  - fei-modelzoo
   - fei-nn
   - feldspar-compiler
   - feldspar-language
@@ -5167,7 +5188,6 @@ broken-packages:
   - flamethrower
   - flamingra
   - flashblast
-  - flat
   - flat-maybe
   - flatbuffers
   - flay
@@ -5241,6 +5261,7 @@ broken-packages:
   - foscam-filename
   - foscam-sort
   - Foster
+  - fp-ieee
   - fpco-api
   - fplll
   - fpnla-examples
@@ -5434,7 +5455,6 @@ broken-packages:
   - geolite-csv
   - geom2d
   - GeomPredicates-SSE
-  - geos
   - Get
   - getemx
   - getflag
@@ -5530,7 +5550,6 @@ broken-packages:
   - github-webhook-handler-snap
   - githud
   - gitignore
-  - gitit
   - gitlab-api
   - gitlib
   - gitlib-cmdline
@@ -5689,7 +5708,6 @@ broken-packages:
   - gray-code
   - greencard
   - greencard-lib
-  - greenclip
   - greg-client
   - gremlin-haskell
   - Grempa
@@ -6390,7 +6408,6 @@ broken-packages:
   - hlrdb
   - hlrdb-core
   - hls
-  - hls-brittany
   - hlwm
   - hly
   - hmark
@@ -6440,7 +6457,6 @@ broken-packages:
   - hogre
   - hogre-examples
   - hois
-  - hoist-error
   - hol
   - hold-em
   - hole
@@ -6579,6 +6595,7 @@ broken-packages:
   - Hs2lib
   - hs2ps
   - hsaml2
+  - hsautogui
   - hsay
   - hsbackup
   - hsbc
@@ -7703,6 +7720,7 @@ broken-packages:
   - mahoro
   - maid
   - mail-pool
+  - mail-reports
   - mailchimp
   - mailchimp-subscribe
   - MailchimpSimple
@@ -7889,6 +7907,7 @@ broken-packages:
   - minst-idx
   - mios
   - MIP
+  - MIP-glpk
   - mirror-tweet
   - miso
   - miso-action-logger
@@ -8508,7 +8527,6 @@ broken-packages:
   - pandoc-filter-graphviz
   - pandoc-filter-indent
   - pandoc-include
-  - pandoc-include-code
   - pandoc-japanese-filters
   - pandoc-lens
   - pandoc-markdown-ghci-filter
@@ -8858,6 +8876,7 @@ broken-packages:
   - postgresql-syntax
   - postgresql-tx-query
   - postgresql-tx-squeal
+  - postgresql-tx-squeal-compat-simple
   - postgresql-typed-lifted
   - postgrest
   - postgrest-ws
@@ -9465,6 +9484,7 @@ broken-packages:
   - rosso
   - rotating-log
   - rounded
+  - rounded-hw
   - rounding
   - roundtrip-aeson
   - roundtrip-xml
@@ -10385,7 +10405,6 @@ broken-packages:
   - Tablify
   - tabloid
   - tabs
-  - taffybar
   - tag-bits
   - tag-stream
   - tagged-exception-core
@@ -10446,6 +10465,7 @@ broken-packages:
   - tds
   - TeaHS
   - teams
+  - techlab
   - teeth
   - telegram
   - telegram-api
@@ -11506,6 +11526,7 @@ broken-packages:
   - yxdb-utils
   - Z-Data
   - Z-IO
+  - Z-YAML
   - z3-encoding
   - z85
   - zabt
diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix
index 530e2707a2a..9cc04812517 100644
--- a/pkgs/development/haskell-modules/configuration-nix.nix
+++ b/pkgs/development/haskell-modules/configuration-nix.nix
@@ -550,7 +550,6 @@ self: super: builtins.intersectAttrs super {
 
   # Break infinite recursion cycle between QuickCheck and splitmix.
   splitmix = dontCheck super.splitmix;
-  splitmix_0_1_0_3 = dontCheck super.splitmix_0_1_0_3;
 
   # Break infinite recursion cycle between tasty and clock.
   clock = dontCheck super.clock;
@@ -662,33 +661,9 @@ self: super: builtins.intersectAttrs super {
 
   spago =
     let
-      # Spago needs a small patch to work with the latest versions of rio.
-      # https://github.com/purescript/spago/pull/647
-      spagoWithPatches = overrideCabal (appendPatch super.spago (
-        # Spago-0.17 needs a small patch to work with the latest version of dhall.
-        # This can probably be removed with Spago-0.18.
-        # https://github.com/purescript/spago/pull/695
-        pkgs.fetchpatch {
-          url = "https://github.com/purescript/spago/commit/6258ac601480e776c215c989cc5faae46d5ca9f7.patch";
-          sha256 = "02zy4jf24qlqz9fkcs2rqg64ijd8smncmra8s5yp2mln4dmmii1k";
-        }
-      )) (old: {
-        # The above patch contains a completely new spago.cabal file, but our
-        # source tree from Hackage already contains a cabal file.  Delete the
-        # local cabal file and just take the one from the patch.
-        #
-        # WARNING: The empty line above the `rm` needs to be kept.
-        prePatch = old.prePatch or "" + ''
-
-          rm spago.cabal
-        '';
-        # The above patch also adds a dependency on the stringsearch package.
-        libraryHaskellDepends = old.libraryHaskellDepends or [] ++ [ self.stringsearch ];
-      });
-
       # spago requires an older version of megaparsec, but it appears to work
       # fine with newer versions.
-      spagoWithOverrides = doJailbreak spagoWithPatches;
+      spagoWithOverrides = doJailbreak super.spago;
 
       # This defines the version of the purescript-docs-search release we are using.
       # This is defined in the src/Spago/Prelude.hs file in the spago source.
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index 85711a041b5..73090f7737b 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -800,7 +800,7 @@ self: {
      , filepath, geniplate-mirror, ghc-compact, gitrev, happy, hashable
      , hashtables, haskeline, ieee754, mtl, murmur-hash, pretty, process
      , regex-tdfa, split, stm, strict, template-haskell, text, time
-     , transformers, unordered-containers, uri-encode, zlib
+     , unordered-containers, uri-encode, zlib
      }:
      mkDerivation {
        pname = "Agda";
@@ -815,7 +815,7 @@ self: {
          containers data-hash deepseq directory edit-distance equivalence
          exceptions filepath geniplate-mirror ghc-compact gitrev hashable
          hashtables haskeline ieee754 mtl murmur-hash pretty process
-         regex-tdfa split stm strict template-haskell text time transformers
+         regex-tdfa split stm strict template-haskell text time
          unordered-containers uri-encode zlib
        ];
        libraryToolDepends = [ alex happy ];
@@ -1278,28 +1278,31 @@ self: {
      }) {};
 
   "BNFC" = callPackage
-    ({ mkDerivation, alex, array, base, containers, deepseq, directory
-     , doctest, filepath, happy, hspec, HUnit, mtl, pretty, process
-     , QuickCheck, semigroups, temporary, time
+    ({ mkDerivation, alex, array, base, Cabal, cabal-doctest
+     , containers, deepseq, directory, doctest, filepath, happy, hspec
+     , hspec-discover, HUnit, mtl, pretty, process, QuickCheck
+     , string-qq, temporary, time
      }:
      mkDerivation {
        pname = "BNFC";
-       version = "2.8.4";
-       sha256 = "0z84qfpfm402fl0fpxcggr4jz2sn8cqgjy50r6xfx310g7xwdgnd";
+       version = "2.9.0";
+       sha256 = "1h5365978q43r4sik1kmbrxnxa6lxnb54lhp7bi9599rnav8nw0z";
        isLibrary = true;
        isExecutable = true;
-       libraryHaskellDepends = [ array base ];
-       executableHaskellDepends = [
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
          array base containers deepseq directory filepath mtl pretty process
-         semigroups time
+         string-qq time
        ];
-       executableToolDepends = [ alex happy ];
+       libraryToolDepends = [ alex happy ];
+       executableHaskellDepends = [ base ];
        testHaskellDepends = [
          array base containers deepseq directory doctest filepath hspec
-         HUnit mtl pretty process QuickCheck semigroups temporary time
+         HUnit mtl pretty process QuickCheck string-qq temporary time
        ];
+       testToolDepends = [ alex happy hspec-discover ];
        description = "A compiler front-end generator";
-       license = stdenv.lib.licenses.gpl2;
+       license = stdenv.lib.licenses.bsd3;
      }) {};
 
   "BNFC-meta" = callPackage
@@ -9248,17 +9251,18 @@ self: {
      }) {};
 
   "HSmarty" = callPackage
-    ({ mkDerivation, aeson, attoparsec, attoparsec-expr, base, HTF
-     , HTTP, mtl, scientific, text, unordered-containers, vector
+    ({ mkDerivation, aeson, attoparsec, attoparsec-expr, base
+     , bytestring, filepath, Glob, HTF, HTTP, mtl, scientific, text
+     , unordered-containers, vector
      }:
      mkDerivation {
        pname = "HSmarty";
-       version = "0.2.0.3";
-       sha256 = "07m7xpwv565cf78qyqkd6babpl2b7jnq88psv55jclzdqlsvv0rq";
+       version = "0.4.1";
+       sha256 = "1rfpghc9wl1b4zs5q2k4ndkvxhf6bc5qkm6vfvlfy64c79q96mq3";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         aeson attoparsec attoparsec-expr base HTTP mtl scientific text
-         unordered-containers vector
+         aeson attoparsec attoparsec-expr base bytestring filepath Glob HTTP
+         mtl scientific text unordered-containers vector
        ];
        testHaskellDepends = [ aeson attoparsec base HTF text ];
        description = "Small template engine";
@@ -9395,8 +9399,8 @@ self: {
        pname = "HTTP";
        version = "4000.3.15";
        sha256 = "150m5v125s4jrxzl85jhnh69kp4mjyzhkqp0c1k087008f73csqd";
-       revision = "1";
-       editedCabalFile = "1nqwz6ns014z23n96567bf6a27if9ss5bj53grcdlmry6lrjad1v";
+       revision = "2";
+       editedCabalFile = "1rkazrbxfpx7bhp6fhgx97j58i4ccyp8bxjgdhr33cpv1b2cza9b";
        libraryHaskellDepends = [
          array base bytestring mtl network network-uri parsec time
        ];
@@ -10082,18 +10086,16 @@ self: {
      }) {};
 
   "HaskellNet" = callPackage
-    ({ mkDerivation, array, base, base64-string, bytestring, cryptohash
-     , mime-mail, mtl, network, old-time, pretty, text
+    ({ mkDerivation, array, base, base64, bytestring, cryptohash-md5
+     , mime-mail, mtl, network, network-bsd, old-time, pretty, text
      }:
      mkDerivation {
        pname = "HaskellNet";
-       version = "0.5.1";
-       sha256 = "0f581izyh6bdk85i0g07xdp3fdzdfdfjiqpnl89r17vgswdd6i9j";
-       revision = "1";
-       editedCabalFile = "12p3v58jhr54yzsmqgza3rbrp19w2iq5m43g568hcx20n7zwzwjk";
+       version = "0.6";
+       sha256 = "0jsnq5sqflw9qjbhcvgxsb0mlac6yl1427xp7nm6fbaa2mmv8jd2";
        libraryHaskellDepends = [
-         array base base64-string bytestring cryptohash mime-mail mtl
-         network old-time pretty text
+         array base base64 bytestring cryptohash-md5 mime-mail mtl network
+         network-bsd old-time pretty text
        ];
        description = "Client support for POP3, SMTP, and IMAP";
        license = stdenv.lib.licenses.bsd3;
@@ -11711,8 +11713,8 @@ self: {
        pname = "JuicyPixels-blurhash";
        version = "0.1.0.3";
        sha256 = "0kgl2j7990p8q5yrkn0wgaszc9fzva1pc3277j11k1lbjsymz360";
-       revision = "2";
-       editedCabalFile = "0phffs6r83sny6zr4zsrppzqy1lgybm6lqgfmbfgwhyvmd544qx6";
+       revision = "3";
+       editedCabalFile = "1mspqkmvn5j6xs3cb882szbnrzaxf0p2nyyxkfqfnbma204cs2fi";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -12695,8 +12697,8 @@ self: {
      }:
      mkDerivation {
        pname = "ListLike";
-       version = "4.7.2";
-       sha256 = "15c1q4rl4kwpgpsdf4x7k17m2fgzimm9915k71cpjiv0sq9b2rn2";
+       version = "4.7.3";
+       sha256 = "1vk5mbpxzwzcnc4cgw3hvqn0g0pcq97hw4f3i2ki3hn3svap535a";
        libraryHaskellDepends = [
          array base bytestring containers deepseq dlist fmlist text
          utf8-string vector
@@ -13082,10 +13084,10 @@ self: {
      }:
      mkDerivation {
        pname = "MIP";
-       version = "0.1.0.0";
-       sha256 = "0790jcwqjd33i8sqhzxarda8ihhv5iapj0apjmlqjppbipwa6awa";
+       version = "0.1.1.0";
+       sha256 = "03gzwg0hzgij9hpxxfsrdxx2cknfy9fr9h1w1na04bmzpai1sl40";
        revision = "1";
-       editedCabalFile = "16nxbkmkyb9n0jbyrmpazg40gf6aadnm1rk4sqwxkcx7qa99wrnd";
+       editedCabalFile = "0jm2g7g4js366i6i21d13f2gng7py4gkb3m64f76rdxbpqfcgfq1";
        libraryHaskellDepends = [
          base bytestring bytestring-encoding case-insensitive containers
          data-default-class extended-reals filepath intern lattices
@@ -13102,6 +13104,32 @@ self: {
        broken = true;
      }) {};
 
+  "MIP-glpk" = callPackage
+    ({ mkDerivation, async, base, bytestring, bytestring-encoding
+     , containers, extended-reals, glpk, glpk-headers, intern, MIP
+     , scientific, tasty, tasty-hunit, tasty-quickcheck, tasty-th, text
+     }:
+     mkDerivation {
+       pname = "MIP-glpk";
+       version = "0.1.1.0";
+       sha256 = "19wd6i8jsszhpl6fh9cm32284byz4rfjv0rkh3v4xacypfg5g1aj";
+       revision = "1";
+       editedCabalFile = "0ijc4875vvmiv1a14rm45yrcv7n7gvdw1v131si77qhl2qnyj3dr";
+       libraryHaskellDepends = [
+         base bytestring bytestring-encoding containers extended-reals
+         glpk-headers intern MIP scientific text
+       ];
+       librarySystemDepends = [ glpk ];
+       testHaskellDepends = [
+         async base containers extended-reals glpk-headers MIP scientific
+         tasty tasty-hunit tasty-quickcheck tasty-th
+       ];
+       description = "A GLPK backend to the MIP library";
+       license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) glpk;};
+
   "MSQueue" = callPackage
     ({ mkDerivation, base, ghc-prim, monad-loops, ref-mtl, stm }:
      mkDerivation {
@@ -16390,25 +16418,6 @@ self: {
      }:
      mkDerivation {
        pname = "QuickCheck";
-       version = "2.13.2";
-       sha256 = "0426j43af8v3qmdjjqxivazsvr3a2brac8yw09vpgpjkb2m0nmkv";
-       revision = "1";
-       editedCabalFile = "0ynhx1n135b0zg539c9m7gp75dykm93pqqlp5xz2w4kmpxjp4vk3";
-       libraryHaskellDepends = [
-         base containers deepseq random splitmix template-haskell
-         transformers
-       ];
-       testHaskellDepends = [ base deepseq process ];
-       description = "Automatic testing of Haskell programs";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "QuickCheck_2_14_2" = callPackage
-    ({ mkDerivation, base, containers, deepseq, process, random
-     , splitmix, template-haskell, transformers
-     }:
-     mkDerivation {
-       pname = "QuickCheck";
        version = "2.14.2";
        sha256 = "1wrnrm9sq4s0bly0q58y80g4153q45iglqa34xsi2q3bd62nqyyq";
        libraryHaskellDepends = [
@@ -16418,7 +16427,6 @@ self: {
        testHaskellDepends = [ base deepseq process ];
        description = "Automatic testing of Haskell programs";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "QuickCheck-GenT" = callPackage
@@ -17579,6 +17587,29 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "SJW" = callPackage
+    ({ mkDerivation, attoparsec, base, Cabal, containers, directory
+     , filepath, mtl, optparse-applicative, random, text, time, unix
+     }:
+     mkDerivation {
+       pname = "SJW";
+       version = "0.1.2.2";
+       sha256 = "0ffwlsm8ynmi1nyx1a8j65p9llk7s68g3srkgk1i47rvddn70h6q";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         attoparsec base containers directory filepath mtl random text time
+         unix
+       ];
+       executableHaskellDepends = [
+         attoparsec base optparse-applicative text
+       ];
+       testHaskellDepends = [ base Cabal directory filepath random ];
+       benchmarkHaskellDepends = [ base directory filepath random time ];
+       description = "The Simple Javascript Wrench";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "SMTPClient" = callPackage
     ({ mkDerivation, base, containers, extensible-exceptions, hsemail
      , network, old-locale, old-time
@@ -17712,11 +17743,11 @@ self: {
      }:
      mkDerivation {
        pname = "STMonadTrans";
-       version = "0.4.4";
-       sha256 = "00vih8xi5jf4jc4h6i9jwxb29w40gx8lakcg3fc1900b0r02ms0s";
+       version = "0.4.5";
+       sha256 = "0kly2zjizk8m84jzmkd93h6qpqgb03i4cjhm9q7rzr284qn5x09m";
        libraryHaskellDepends = [ array base mtl ];
        testHaskellDepends = [
-         base tasty tasty-hunit tasty-quickcheck transformers
+         array base tasty tasty-hunit tasty-quickcheck transformers
        ];
        description = "A monad transformer version of the ST monad";
        license = stdenv.lib.licenses.bsd3;
@@ -18891,10 +18922,8 @@ self: {
      }:
      mkDerivation {
        pname = "Spock";
-       version = "0.13.0.0";
-       sha256 = "1l0sff6xq99hvcmr2fnsr2x6lbzcpynyjl7n21ycv0l9xgfs6wwa";
-       revision = "1";
-       editedCabalFile = "1glpfh1w9zahfwi4nc7kbxd429ni9xwvx3cd880mi3zdixlz4ghn";
+       version = "0.14.0.0";
+       sha256 = "19zqang5ixnfhqrdy70myqn8p1ijd24qfhnmj4w1f9hdr38kmz11";
        libraryHaskellDepends = [
          base base64-bytestring bytestring containers cryptonite focus
          hashable http-types hvect list-t monad-control mtl reroute
@@ -18915,8 +18944,8 @@ self: {
     ({ mkDerivation, aeson, base, deepseq, hvect, reroute }:
      mkDerivation {
        pname = "Spock-api";
-       version = "0.12.0.1";
-       sha256 = "0mg5r6rdcgy1yc1lx739bwhlndwyfb9hx0dcwqii7a5sy20qy960";
+       version = "0.14.0.0";
+       sha256 = "1wqbq8vgq5sifybw32prkmcjwm2dqz4z3sv8ci4s603a2sril7h7";
        libraryHaskellDepends = [ aeson base deepseq hvect reroute ];
        description = "Another Haskell web framework for rapid development";
        license = stdenv.lib.licenses.bsd3;
@@ -18928,8 +18957,8 @@ self: {
      }:
      mkDerivation {
        pname = "Spock-api-ghcjs";
-       version = "0.12.0.1";
-       sha256 = "1n03ax4iwz58b4myh8jwkixiclpiyvx55h247248xfh6a0xr96l0";
+       version = "0.14.0.0";
+       sha256 = "1ks2a8z2zav84qi9fkpp7pdl6bjbpn9j8h8mcfg5xb2h0p8000fc";
        libraryHaskellDepends = [
          aeson base bytestring ghcjs-base hvect Spock-api text
        ];
@@ -18943,8 +18972,8 @@ self: {
     ({ mkDerivation, base, hvect, mtl, Spock-api, Spock-core }:
      mkDerivation {
        pname = "Spock-api-server";
-       version = "0.12.0.1";
-       sha256 = "14si03c1xcjfhmjpv717x4ipbd5x7h2sqrld7nnh0pgajzfx8m08";
+       version = "0.14.0.0";
+       sha256 = "0ra8y036vilsb75jb0lsfbdraygz6jm7b5l9002n7ixypbp2adya";
        libraryHaskellDepends = [ base hvect mtl Spock-api Spock-core ];
        description = "Another Haskell web framework for rapid development";
        license = stdenv.lib.licenses.bsd3;
@@ -18965,21 +18994,21 @@ self: {
 
   "Spock-core" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, bytestring
-     , case-insensitive, containers, cookie, directory, hashable, hspec
-     , hspec-wai, http-api-data, http-types, hvect, monad-control, mtl
+     , case-insensitive, containers, cookie, hashable, hspec, hspec-wai
+     , http-api-data, http-types, hvect, mmorph, monad-control, mtl
      , old-locale, reroute, resourcet, stm, superbuffer, text, time
      , transformers, transformers-base, unordered-containers, vault, wai
      , wai-extra, warp
      }:
      mkDerivation {
        pname = "Spock-core";
-       version = "0.13.0.0";
-       sha256 = "0qjiv0jqs3bsgx6mpflsykr2rpvw5cch5v7r6z5306ccli1bvjjy";
+       version = "0.14.0.0";
+       sha256 = "0bcxngy33wap9py3y4f6kjysl31yjz3qmkp6z5z6pka80x9w3sf7";
        libraryHaskellDepends = [
          aeson base base64-bytestring bytestring case-insensitive containers
-         cookie directory hashable http-api-data http-types hvect
-         monad-control mtl old-locale reroute resourcet stm superbuffer text
-         time transformers transformers-base unordered-containers vault wai
+         cookie hashable http-api-data http-types hvect mmorph monad-control
+         mtl old-locale reroute resourcet stm superbuffer text time
+         transformers transformers-base unordered-containers vault wai
          wai-extra warp
        ];
        testHaskellDepends = [
@@ -19096,8 +19125,8 @@ self: {
     ({ mkDerivation, base, stm, transformers }:
      mkDerivation {
        pname = "StateVar";
-       version = "1.2";
-       sha256 = "12sz6zkc9j5z3lwrjvljrkfxa5vhwnir5wsarigz2f6d3w13dh5g";
+       version = "1.2.1";
+       sha256 = "12qg01aksbnc7cdh01y4z4jwrrhhwcakc9gh6ywxhq1bj591a9pf";
        libraryHaskellDepends = [ base stm transformers ];
        description = "State variables";
        license = stdenv.lib.licenses.bsd3;
@@ -21808,25 +21837,26 @@ self: {
      }) {inherit (pkgs) readline;};
 
   "Z-Data" = callPackage
-    ({ mkDerivation, base, case-insensitive, deepseq, ghc-prim
+    ({ mkDerivation, base, Cabal, case-insensitive, deepseq, ghc-prim
      , hashable, hspec, hspec-discover, HUnit, integer-gmp, primitive
      , QuickCheck, quickcheck-instances, scientific, tagged
-     , template-haskell, unordered-containers, word8
+     , template-haskell, time, unordered-containers
      }:
      mkDerivation {
        pname = "Z-Data";
-       version = "0.1.9.1";
-       sha256 = "0fwbgcsfay83lp24m9afdvn43xlzxi3y74fsxxw2xbfaz6zmxivi";
+       version = "0.3.0.0";
+       sha256 = "09pai7qhw6pjzrs05ac51f3v1ms0gdhkyp01jqkxzr9sllsbrgaq";
+       setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [
          base case-insensitive deepseq ghc-prim hashable integer-gmp
-         primitive QuickCheck scientific tagged template-haskell
+         primitive QuickCheck scientific tagged template-haskell time
          unordered-containers
        ];
-       libraryToolDepends = [ hspec-discover ];
        testHaskellDepends = [
          base hashable hspec HUnit integer-gmp primitive QuickCheck
-         quickcheck-instances scientific word8
+         quickcheck-instances scientific time
        ];
+       testToolDepends = [ hspec-discover ];
        description = "Array, vector and text";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -21841,8 +21871,8 @@ self: {
      }:
      mkDerivation {
        pname = "Z-IO";
-       version = "0.1.9.0";
-       sha256 = "1f9774065arknwm8f1avq7v769cfa610dy45winva3ys4345xcyy";
+       version = "0.3.0.0";
+       sha256 = "0nsjqs9xyj8rw2wqml48la5mv7haf5117r4cqi02g35b57f7dq40";
        libraryHaskellDepends = [
          base containers exceptions primitive stm time unix-time
          unordered-containers Z-Data
@@ -21859,6 +21889,24 @@ self: {
        broken = true;
      }) {};
 
+  "Z-YAML" = callPackage
+    ({ mkDerivation, base, primitive, scientific, transformers
+     , unordered-containers, Z-Data, Z-IO
+     }:
+     mkDerivation {
+       pname = "Z-YAML";
+       version = "0.2.0.0";
+       sha256 = "0q0hyqvkirmlfbs6j1b892p1m3nf7n44nj7mbv0c9b5y2cjr44zi";
+       libraryHaskellDepends = [
+         base primitive scientific transformers unordered-containers Z-Data
+         Z-IO
+       ];
+       description = "YAML tools";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "ZEBEDDE" = callPackage
     ({ mkDerivation, base, vect }:
      mkDerivation {
@@ -24062,8 +24110,8 @@ self: {
      }:
      mkDerivation {
        pname = "advent-of-code-api";
-       version = "0.2.7.1";
-       sha256 = "1amm7gvr04ndfw6b0jxy8wsa35lqbfb85wp9bn9kycd8qp6vq9cs";
+       version = "0.2.8.0";
+       sha256 = "1g1wybpir0053pjav8czccnva38jr35gnii1as0lbyinc1k7vlhq";
        libraryHaskellDepends = [
          aeson base bytestring containers deepseq directory filepath
          finite-typelits http-api-data http-client http-client-tls
@@ -24084,8 +24132,8 @@ self: {
      }:
      mkDerivation {
        pname = "advent-of-code-ocr";
-       version = "0.1.1.0";
-       sha256 = "0kzmm901yz262dblwv1wxf86h1jm8m2x1ky1gqvj03lck598fqz7";
+       version = "0.1.2.0";
+       sha256 = "0ppa386cbcdwx2k12ya19fsjlrgqgljdryv4mb3a0lrk44804k5c";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -24591,6 +24639,8 @@ self: {
        pname = "aeson-injector";
        version = "1.1.5.0";
        sha256 = "0hg853hhbvmqa6yj0xg8naxdrbs2n3lzld0jrbmfmccjqcfzarx4";
+       revision = "1";
+       editedCabalFile = "0l1628z78sxi1wjh1x3hymaid2f7g4r4sbs28phg127fzwn4i7ma";
        libraryHaskellDepends = [
          aeson base bifunctors deepseq hashable lens servant-docs swagger2
          text unordered-containers
@@ -25856,8 +25906,8 @@ self: {
      }:
      mkDerivation {
        pname = "alex";
-       version = "3.2.5";
-       sha256 = "1qz0ar9dl0zx42y1gbpd2yx09nbwxs8nw6mjmpi68z3nf098lz5p";
+       version = "3.2.6";
+       sha256 = "042lrkn0dbpjn5ivj6j26jzb1fwrj8c1aj18ykxja89isg0hiali";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -26148,6 +26198,32 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "algebraic-graphs-io" = callPackage
+    ({ mkDerivation, algebraic-graphs, attoparsec, base, binary
+     , binary-conduit, bytestring, conduit, conduit-extra, containers
+     , csv-conduit, directory, dot, exceptions, filepath, hspec
+     , http-conduit, matrix-market-attoparsec, megaparsec, mtl
+     , parser-combinators, primitive, QuickCheck, tar-conduit, text
+     , transformers, vector
+     }:
+     mkDerivation {
+       pname = "algebraic-graphs-io";
+       version = "0.4";
+       sha256 = "03a31y4kxswn9h32vs7nh83cvwjmx714rckj8pvqxl4l7i01y6wf";
+       revision = "1";
+       editedCabalFile = "060m82d4qirv7anyp3n6wh5rsycipr5cimhl1y8p9mcm5573r2pl";
+       libraryHaskellDepends = [
+         algebraic-graphs attoparsec base binary binary-conduit bytestring
+         conduit conduit-extra containers csv-conduit directory dot
+         exceptions filepath http-conduit matrix-market-attoparsec
+         megaparsec mtl parser-combinators primitive tar-conduit text
+         transformers vector
+       ];
+       testHaskellDepends = [ base hspec QuickCheck ];
+       description = "I/O utilities and datasets for algebraic-graphs";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "algebraic-prelude" = callPackage
     ({ mkDerivation, algebra, base, basic-prelude, lens, semigroups }:
      mkDerivation {
@@ -29404,6 +29480,28 @@ self: {
        license = "GPL";
      }) {};
 
+  "anagrep" = callPackage
+    ({ mkDerivation, base, bytestring, case-insensitive, containers
+     , criterion, deepseq, ghc-prim, hspec, integer-gmp, QuickCheck
+     , regex-tdfa, vector
+     }:
+     mkDerivation {
+       pname = "anagrep";
+       version = "0.1.0.0";
+       sha256 = "1pqp3q8pr2j0v1ra83glfbbclq6yd6vns0q9q8i9r4kd7lrd2vrm";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base case-insensitive containers deepseq ghc-prim integer-gmp
+         regex-tdfa vector
+       ];
+       executableHaskellDepends = [ base bytestring case-insensitive ];
+       testHaskellDepends = [ base case-insensitive hspec QuickCheck ];
+       benchmarkHaskellDepends = [ base bytestring criterion ];
+       description = "Find strings with permutations (anagrams) that match a regular expression";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "analyze" = callPackage
     ({ mkDerivation, aeson, base, binary, bytestring, cassava
      , exceptions, foldl, free, hashable, lucid, QuickCheck, tasty
@@ -30671,8 +30769,6 @@ self: {
        ];
        description = "Simple gloss renderer for apecs";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "apecs-physics" = callPackage
@@ -30681,16 +30777,14 @@ self: {
      }:
      mkDerivation {
        pname = "apecs-physics";
-       version = "0.4.4";
-       sha256 = "01kdp31zyz95i912qk57avmzr4596xjj8m8lw7r2yszg0il0mndf";
+       version = "0.4.5";
+       sha256 = "1ksxx5x998csgi3lr2yl18mk5sjccin20b15swyx1g9k7fsm7nx5";
        setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [
          apecs base containers inline-c linear template-haskell vector
        ];
        description = "2D physics for apecs";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "apecs-physics-gloss" = callPackage
@@ -30702,8 +30796,6 @@ self: {
        libraryHaskellDepends = [ apecs apecs-physics base gloss ];
        description = "Gloss rendering for apecs-physics";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "apecs-stm" = callPackage
@@ -30786,6 +30878,29 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "api-maker" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, http-client
+     , http-client-tls, http-types, lens, monad-control, mtl, req, text
+     , transformers, transformers-base
+     }:
+     mkDerivation {
+       pname = "api-maker";
+       version = "0.1.0.0";
+       sha256 = "02rkmyq1zrjklklfqpj1413j3fb0c61y28pwj06z24i71d5nmy6r";
+       libraryHaskellDepends = [
+         aeson base bytestring containers http-client http-client-tls
+         http-types lens monad-control mtl req text transformers
+         transformers-base
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers http-client http-client-tls
+         http-types lens monad-control mtl req text transformers
+         transformers-base
+       ];
+       description = "Package to make APIs";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "api-monobank" = callPackage
     ({ mkDerivation, aeson, base, bytestring, hs-coindesk-api
      , http-client, http-client-tls, http-conduit, servant
@@ -31872,8 +31987,8 @@ self: {
        pname = "arbtt";
        version = "0.10.2";
        sha256 = "02izfga7nv2saq4d1xwigq41hhbc02830sjppqsqw6vcb8082vs1";
-       revision = "1";
-       editedCabalFile = "10b6ax854a4ig33iwcg21vad4gpgibfpb6xqkxd80hvkrj4gqd62";
+       revision = "2";
+       editedCabalFile = "138lacpwzf5xc1cbxric90k1yn0g91hz0vm2v50pbbr7jr2147km";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -31924,30 +32039,31 @@ self: {
 
   "arch-hs" = callPackage
     ({ mkDerivation, aeson, algebraic-graphs, base, bytestring, Cabal
-     , colourista, conduit, conduit-extra, containers, deepseq
-     , directory, filepath, hackage-db, megaparsec, microlens
-     , microlens-th, neat-interpolation, optparse-applicative, polysemy
-     , req, split, tar-conduit, template-haskell, text
+     , conduit, conduit-extra, containers, deepseq, Diff, directory
+     , filepath, hackage-db, megaparsec, microlens, microlens-th
+     , neat-interpolation, optparse-applicative, polysemy, prettyprinter
+     , prettyprinter-ansi-terminal, req, split, tar-conduit
+     , template-haskell, text
      }:
      mkDerivation {
        pname = "arch-hs";
-       version = "0.5.0.0";
-       sha256 = "04w0b8ivwrm1g0qg0pym7qap4ggzv6ng9x6jy5k2nnbmpck07597";
+       version = "0.6.2.0";
+       sha256 = "10v2n1m5608g2lqgn16bwwhlafbj2hhnsnvm22pfff4ahnvj7880";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson algebraic-graphs base bytestring Cabal colourista conduit
-         conduit-extra containers deepseq directory filepath hackage-db
-         megaparsec microlens microlens-th neat-interpolation
-         optparse-applicative polysemy req split tar-conduit
-         template-haskell text
+         aeson algebraic-graphs base bytestring Cabal conduit conduit-extra
+         containers deepseq Diff directory filepath hackage-db megaparsec
+         microlens microlens-th neat-interpolation optparse-applicative
+         polysemy prettyprinter prettyprinter-ansi-terminal req split
+         tar-conduit template-haskell text
        ];
        executableHaskellDepends = [
-         aeson algebraic-graphs base bytestring Cabal colourista conduit
-         conduit-extra containers deepseq directory filepath hackage-db
-         megaparsec microlens microlens-th neat-interpolation
-         optparse-applicative polysemy req split tar-conduit
-         template-haskell text
+         aeson algebraic-graphs base bytestring Cabal conduit conduit-extra
+         containers deepseq Diff directory filepath hackage-db megaparsec
+         microlens microlens-th neat-interpolation optparse-applicative
+         polysemy prettyprinter prettyprinter-ansi-terminal req split
+         tar-conduit template-haskell text
        ];
        description = "Distribute hackage packages to archlinux";
        license = stdenv.lib.licenses.mit;
@@ -32345,8 +32461,8 @@ self: {
      }:
      mkDerivation {
        pname = "arion-compose";
-       version = "0.1.1.1";
-       sha256 = "0qi9mj67j3kq02psm3qa855rk0hpz2pvfa7ggx4jhzqnf60xd9ph";
+       version = "0.1.2.0";
+       sha256 = "1vginzc90xl8fs1pr9qvw7fjj207vjb1k3rxa341hq7q5pri2y3d";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -32376,6 +32492,8 @@ self: {
        pname = "arith-encode";
        version = "1.0.2";
        sha256 = "0nfrjfm6c37bsvqcqsgnxk6pal8hc7p85nhmab9pc2ha5jrcwhj0";
+       revision = "1";
+       editedCabalFile = "0gsfmn6afzcpvhbwi30fksl34wcbamkc2lgdjl3z58jhpm8824wi";
        libraryHaskellDepends = [
          array base binary containers hashable integer-logarithms
          integer-roots unordered-containers
@@ -32917,8 +33035,8 @@ self: {
     ({ mkDerivation, base, parsec, split, tagsoup }:
      mkDerivation {
        pname = "arxiv";
-       version = "0.0.2";
-       sha256 = "0lzmw35fry16zv8fbnqw3k5wv4d6vh9f0fz2yv9kph7zgs5sqgwh";
+       version = "0.0.3";
+       sha256 = "1rvzxbknmjcgx1209v265d4zar75y9637zi6alk1y3dg5lhbgm89";
        libraryHaskellDepends = [ base parsec split tagsoup ];
        description = "A client for the Arxiv API";
        license = "LGPL";
@@ -33633,8 +33751,8 @@ self: {
        pname = "ast-monad";
        version = "0.1.0.0";
        sha256 = "038cvblhhlcsv9id2rcb26q4lwvals3xj45j9jy6fb69jm5mzh0i";
-       revision = "4";
-       editedCabalFile = "131ynmpy5y0c4maj0cp0n3sbbs4k40j7dybgcsad5kv58i63kw23";
+       revision = "5";
+       editedCabalFile = "1llhzaacz47f1cmjr3q4zsq5i0fi8q0vbqxgsb8vqfrnvddx0bz6";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
        description = "A library for constructing AST by using do-notation";
@@ -33649,8 +33767,8 @@ self: {
        pname = "ast-monad-json";
        version = "0.1.0.1";
        sha256 = "0a0pzcma574rrx6klfgk16y6ng22glwj1l5c3rz5w32a22ildfz6";
-       revision = "2";
-       editedCabalFile = "0cbayikyr96vcn10253gkwgk0mvx6inymrldv0bhzp8qiv94sm3n";
+       revision = "3";
+       editedCabalFile = "01gvbidiiy20vdxgdbv3938zgvmwx8gz3nc54cgq57b36h2dl0ik";
        libraryHaskellDepends = [ ast-monad base text ];
        testHaskellDepends = [ ast-monad base hspec text ];
        description = "A library for writing JSON";
@@ -34174,27 +34292,27 @@ self: {
      }) {};
 
   "atom-conduit" = callPackage
-    ({ mkDerivation, base-noprelude, blaze-builder, conduit
-     , data-default, filepath, generic-random, microlens, microlens-th
-     , parsers, pretty-simple, prettyprinter, QuickCheck
-     , quickcheck-instances, refined, relude, resourcet, safe-exceptions
-     , tasty, tasty-golden, tasty-hunit, tasty-quickcheck, text, time
-     , timerep, uri-bytestring, xml-conduit, xml-types
+    ({ mkDerivation, base, blaze-builder, conduit, data-default
+     , filepath, generic-random, microlens, microlens-th, parsers
+     , pretty-simple, prettyprinter, QuickCheck, quickcheck-instances
+     , refined, relude, resourcet, safe-exceptions, tasty, tasty-golden
+     , tasty-hunit, tasty-quickcheck, text, time, timerep
+     , uri-bytestring, xml-conduit, xml-types
      }:
      mkDerivation {
        pname = "atom-conduit";
-       version = "0.9.0.0";
-       sha256 = "0kjdw3x5jsa5hjb36zq93xyp3ac1s4j5vpb52969hckcghmyrabm";
+       version = "0.9.0.1";
+       sha256 = "1fbvs522x9ldpmp1qr57vsanbdhqfi4m4cs2gk3pm5vmnnqqpqb4";
        libraryHaskellDepends = [
-         base-noprelude blaze-builder conduit microlens microlens-th parsers
+         base blaze-builder conduit microlens microlens-th parsers
          prettyprinter refined relude safe-exceptions text time timerep
          uri-bytestring xml-conduit xml-types
        ];
        testHaskellDepends = [
-         base-noprelude conduit data-default filepath generic-random
-         microlens pretty-simple QuickCheck quickcheck-instances refined
-         relude resourcet tasty tasty-golden tasty-hunit tasty-quickcheck
-         text time uri-bytestring xml-conduit xml-types
+         base conduit data-default filepath generic-random microlens
+         pretty-simple QuickCheck quickcheck-instances refined relude
+         resourcet tasty tasty-golden tasty-hunit tasty-quickcheck text time
+         uri-bytestring xml-conduit xml-types
        ];
        description = "Streaming parser/renderer for the Atom 1.0 standard (RFC 4287).";
        license = stdenv.lib.licenses.cc0;
@@ -34966,6 +35084,8 @@ self: {
        pname = "aur";
        version = "7.0.5";
        sha256 = "16c4q0w6qpn4gg6xlggkcs92fcvm58a3qmykfm1dgcfsjhwwhxkx";
+       revision = "1";
+       editedCabalFile = "10p4qyfv2ha3s8dli6v9yzzx4pj5r1cfxcy0gcf0rgbxsszi2315";
        libraryHaskellDepends = [
          aeson base bytestring hashable http-client http-types text
        ];
@@ -35008,8 +35128,8 @@ self: {
        pname = "aura";
        version = "3.2.2";
        sha256 = "07ska8w2k3sl084aadjclw8v0ykrp8hiwhim5zd6wd7q95njyk2f";
-       revision = "1";
-       editedCabalFile = "033ycqm18zqq69yam189whpcbnajanj2yp8na8ad344ghcn1gs5l";
+       revision = "2";
+       editedCabalFile = "1m138p8rllm42gpqj10z3jvdlcz9f0v4is4ygdxi7yxn9xmy15x9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -37369,12 +37489,12 @@ self: {
        broken = true;
      }) {};
 
-  "base_4_14_0_0" = callPackage
+  "base_4_14_1_0" = callPackage
     ({ mkDerivation, ghc-prim, invalid-cabal-flag-settings, rts }:
      mkDerivation {
        pname = "base";
-       version = "4.14.0.0";
-       sha256 = "108bg791pplf1mlc6x95jza6hq28yc5s8a8vv8fxvn33vwm058an";
+       version = "4.14.1.0";
+       sha256 = "15n0ya681yvfvccswcxxk855qv7wz886rmnabj0y6ah7mbf8aijs";
        libraryHaskellDepends = [
          ghc-prim invalid-cabal-flag-settings rts
        ];
@@ -37498,8 +37618,8 @@ self: {
      }:
      mkDerivation {
        pname = "base-orphans";
-       version = "0.8.3";
-       sha256 = "1d9yrxrl270wjpq9iwy1a1faicc650njpr3d3ffn76kqgnn33alv";
+       version = "0.8.4";
+       sha256 = "1cxvjcyy0vsg21n85gxal03gfprw75vjd1h9sni00d60as9vbcip";
        libraryHaskellDepends = [ base ghc-prim ];
        testHaskellDepends = [ base hspec QuickCheck ];
        testToolDepends = [ hspec-discover ];
@@ -37752,19 +37872,16 @@ self: {
      }) {};
 
   "base62" = callPackage
-    ({ mkDerivation, base, byteslice, doctest, natural-arithmetic
-     , primitive, small-bytearray-builder, tasty, tasty-hunit
+    ({ mkDerivation, base, bytebuild, byteslice, doctest
+     , natural-arithmetic, primitive, tasty, tasty-hunit
      , tasty-quickcheck, wide-word
      }:
      mkDerivation {
        pname = "base62";
-       version = "0.1.0.0";
-       sha256 = "1ns8hr9xjmrlq5lgi47630gpn8xdglk33ncqw4kjvdrb1x90iz0p";
-       revision = "2";
-       editedCabalFile = "0i1ipcawbnjf0mjdva4q8s2kw4hd4lfnygmvc81sjxd9crlwy4vm";
+       version = "0.1.0.1";
+       sha256 = "0jfxbg9il8wiaaxdxjkp5kk6jph2b12qi9aiilb1y23h67lxmh2h";
        libraryHaskellDepends = [
-         base byteslice natural-arithmetic primitive small-bytearray-builder
-         wide-word
+         base bytebuild byteslice natural-arithmetic primitive wide-word
        ];
        testHaskellDepends = [
          base byteslice doctest primitive tasty tasty-hunit tasty-quickcheck
@@ -38427,8 +38544,8 @@ self: {
      }:
      mkDerivation {
        pname = "bcp47";
-       version = "0.1.0.0";
-       sha256 = "1cy2wdp97mvyg1fvkmi6vzd8vd9v8645nd5cfzgp4whhy0v5y7rj";
+       version = "0.2.0.0";
+       sha256 = "0dbbpxjhsm17xhqp2a4vvwb0rq3v33wmb84rqdcjr6j8d54wnq5f";
        libraryHaskellDepends = [
          aeson base containers country generic-arbitrary iso639 megaparsec
          QuickCheck text
@@ -38442,6 +38559,27 @@ self: {
        broken = true;
      }) {};
 
+  "bcp47-orphans" = callPackage
+    ({ mkDerivation, base, bcp47, cassava, errors, esqueleto, hashable
+     , hspec, http-api-data, path-pieces, persistent, QuickCheck, text
+     }:
+     mkDerivation {
+       pname = "bcp47-orphans";
+       version = "0.1.0.1";
+       sha256 = "0phw6hsrhya93w7zlrl7866zgpa62pscicjdb5lllpdqfcwl4jl2";
+       libraryHaskellDepends = [
+         base bcp47 cassava errors esqueleto hashable http-api-data
+         path-pieces persistent text
+       ];
+       testHaskellDepends = [
+         base bcp47 cassava hspec path-pieces persistent QuickCheck
+       ];
+       description = "BCP47 orphan instances";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "bcrypt" = callPackage
     ({ mkDerivation, base, bytestring, data-default, entropy, memory }:
      mkDerivation {
@@ -38618,8 +38756,8 @@ self: {
      }:
      mkDerivation {
        pname = "beam-automigrate";
-       version = "0.1.1.0";
-       sha256 = "14h8zbxyrkhajjbhjmdib9s99xv0bmar4s6gb4mpqkvhakj7a76n";
+       version = "0.1.2.0";
+       sha256 = "1y7i553zwm46k39k72l400rh2g8k6k2crjj2wdmkn9nndv1x7545";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -39379,15 +39517,16 @@ self: {
      }:
      mkDerivation {
        pname = "bglib";
-       version = "2.0.0.0";
-       sha256 = "1h9ql3xz5yciwk2hd1mljql0avrqv66fswdl8bll0xpga7jnpvr8";
+       version = "3.0.0.0";
+       sha256 = "1v82kj5ccznky4v4pffnjqzvai54wn2lcfkb2gnzxrn6gzn261a9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base binary bytestring monad-loops mtl serialport stm
        ];
        executableHaskellDepends = [
-         async base bytestring mtl optparse-applicative serialport stm
+         async base binary bytestring monad-loops mtl optparse-applicative
+         serialport stm
        ];
        description = "Implementation of the BGAPI serial protocol";
        license = stdenv.lib.licenses.mit;
@@ -39564,8 +39703,8 @@ self: {
      }:
      mkDerivation {
        pname = "bifunctors";
-       version = "5.5.8";
-       sha256 = "0gffvmxmpxljivg4j7p5l46kxiv29ml0h23361dh23gsy5m4jz41";
+       version = "5.5.9";
+       sha256 = "0c0zm9n085a6zna91yq9c14xwpwi72wn9xlsgzpza9r9bmy5jv05";
        libraryHaskellDepends = [
          base base-orphans comonad containers tagged template-haskell
          th-abstraction transformers
@@ -39983,33 +40122,6 @@ self: {
      }:
      mkDerivation {
        pname = "binary-instances";
-       version = "1.0.0.1";
-       sha256 = "0f8ilzpwj7gbyvlswlkd48dzpj9m13ipinw55lvjag0ir52idk9a";
-       revision = "1";
-       editedCabalFile = "19xmaj5vlabsifkdk1kpxp4nadfml7a51w316sd4fxd69ncvwd72";
-       libraryHaskellDepends = [
-         aeson base binary binary-orphans case-insensitive hashable
-         scientific tagged text text-binary time-compat unordered-containers
-         vector vector-binary-instances
-       ];
-       testHaskellDepends = [
-         aeson base binary case-insensitive hashable QuickCheck
-         quickcheck-instances scientific tagged tasty tasty-quickcheck text
-         time-compat unordered-containers vector
-       ];
-       description = "Orphan instances for binary";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "binary-instances_1_0_1" = callPackage
-    ({ mkDerivation, aeson, base, binary, binary-orphans
-     , case-insensitive, hashable, QuickCheck, quickcheck-instances
-     , scientific, tagged, tasty, tasty-quickcheck, text, text-binary
-     , time-compat, unordered-containers, vector
-     , vector-binary-instances
-     }:
-     mkDerivation {
-       pname = "binary-instances";
        version = "1.0.1";
        sha256 = "0whqjziwqrqslf6byliry84pg47z7vc6yjligpzb8gb5db2gw1h0";
        libraryHaskellDepends = [
@@ -40024,7 +40136,6 @@ self: {
        ];
        description = "Orphan instances for binary";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "binary-io" = callPackage
@@ -40033,8 +40144,8 @@ self: {
      }:
      mkDerivation {
        pname = "binary-io";
-       version = "0.4.0";
-       sha256 = "0yqxrzkria4bycc23ywc6cz12n15cr3lmmcphamwr0ngdgn1lf9i";
+       version = "0.5.0";
+       sha256 = "15v5iqrxdlynllwb2p6v161cwvadri5jdpgknlcw1vpsgf1dnhy7";
        libraryHaskellDepends = [
          base binary bytestring concurrency deque exceptions process
          transformers
@@ -40873,6 +40984,17 @@ self: {
        broken = true;
      }) {g15 = null;};
 
+  "bindings-libpci" = callPackage
+    ({ mkDerivation, base, bindings-DSL }:
+     mkDerivation {
+       pname = "bindings-libpci";
+       version = "0.4.0.0";
+       sha256 = "18vjsgvndmxbxvyapxkgkx36qgh2yrdg8dfaqpcd9zr3yl84kxnq";
+       libraryHaskellDepends = [ base bindings-DSL ];
+       description = "Low level bindings to libpci";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "bindings-librrd" = callPackage
     ({ mkDerivation, base, bindings-DSL, librrd }:
      mkDerivation {
@@ -41711,8 +41833,8 @@ self: {
      }:
      mkDerivation {
        pname = "bishbosh";
-       version = "0.0.0.6";
-       sha256 = "0gax0q1i86m0zb3gwfwmy59z8jnpri96dd9y73xbjyy4cjnwc32m";
+       version = "0.0.0.7";
+       sha256 = "1ihnq7smjk0d18gmkgl70qzqwljmb5nr9hhzwfmkakh3p2x24g3i";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -42591,8 +42713,8 @@ self: {
      }:
      mkDerivation {
        pname = "bitwise-enum";
-       version = "1.0.0.1";
-       sha256 = "0y7x2yyvbdvwg5g5rrl9dbh2syvl1y74pwlccq2w2v5rhr8ql2cb";
+       version = "1.0.0.2";
+       sha256 = "1y63qpxkh8k019vj2b1qz1jnssld5lik5cjhf6dzj2bal4013lii";
        libraryHaskellDepends = [
          aeson array base deepseq mono-traversable vector
        ];
@@ -43322,6 +43444,21 @@ self: {
        broken = true;
      }) {};
 
+  "blindpass" = callPackage
+    ({ mkDerivation, base, hspec }:
+     mkDerivation {
+       pname = "blindpass";
+       version = "0.1.0";
+       sha256 = "0pi0k02xq25n9mjphyq357mna0d5jn67xhzjyafaa4q09g4vy1ay";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [ base hspec ];
+       description = "Password entry tool";
+       license = stdenv.lib.licenses.gpl3;
+     }) {};
+
   "blink1" = callPackage
     ({ mkDerivation, base, bytestring, text, unix, usb, vector }:
      mkDerivation {
@@ -44840,6 +44977,23 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "bpath" = callPackage
+    ({ mkDerivation, base, bytestring, containers, megaparsec
+     , template-haskell, th-lift-instances
+     }:
+     mkDerivation {
+       pname = "bpath";
+       version = "0.1.0";
+       sha256 = "1xm188plwa6wxnvv4g1qmli9qiifagvpzn3mhjprk72k0q9jlci9";
+       libraryHaskellDepends = [
+         base bytestring containers megaparsec template-haskell
+         th-lift-instances
+       ];
+       testHaskellDepends = [ base ];
+       description = "A minimal typed unix path library";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "braid" = callPackage
     ({ mkDerivation, base, containers, diagrams-contrib, diagrams-core
      , diagrams-lib, diagrams-svg, split
@@ -45012,10 +45166,8 @@ self: {
      }:
      mkDerivation {
        pname = "brick";
-       version = "0.57.1";
-       sha256 = "0amqh0xjgylndz0wp23r5m7w8m7j280dyf1j1mybmmb93s8yz269";
-       revision = "1";
-       editedCabalFile = "00jg403q7aaah9hr37n8wa11lljf2909hpmxz7qf4c9ck79pcaj0";
+       version = "0.58.1";
+       sha256 = "0qsmj4469avxmbh7210msjwvz7fa98axxvf7198x0hb2y7vdpcz5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -45247,8 +45399,8 @@ self: {
      }:
      mkDerivation {
        pname = "brittany";
-       version = "0.12.2.0";
-       sha256 = "03v7lhy6i7fk3sskimzb3hs9qi1g9b9w7zfvmc9m4606673ysdzl";
+       version = "0.13.1.0";
+       sha256 = "0dw4s4lcb34fkv4i0rylna6zrr55rgkqs1s75lhn8zskwl7j89bs";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -45447,9 +45599,8 @@ self: {
      }) {};
 
   "brotli" = callPackage
-    ({ mkDerivation, base, bytestring, HUnit, libbrotlidec
-     , libbrotlienc, QuickCheck, tasty, tasty-hunit, tasty-quickcheck
-     , transformers
+    ({ mkDerivation, base, brotli, bytestring, HUnit, QuickCheck, tasty
+     , tasty-hunit, tasty-quickcheck, transformers
      }:
      mkDerivation {
        pname = "brotli";
@@ -45458,15 +45609,13 @@ self: {
        revision = "2";
        editedCabalFile = "0iny0gbb5b3a8n8rpriz7620fnhw70c0pgl615s4b1rhrnj87wrb";
        libraryHaskellDepends = [ base bytestring transformers ];
-       libraryPkgconfigDepends = [ libbrotlidec libbrotlienc ];
+       libraryPkgconfigDepends = [ brotli ];
        testHaskellDepends = [
          base bytestring HUnit QuickCheck tasty tasty-hunit tasty-quickcheck
        ];
        description = "Brotli (RFC7932) compression and decompression";
        license = stdenv.lib.licenses.gpl3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
-     }) {libbrotlidec = null; libbrotlienc = null;};
+     }) {inherit (pkgs) brotli;};
 
   "brotli-conduit" = callPackage
     ({ mkDerivation, base, brotli, bytestring, conduit, HUnit
@@ -45508,8 +45657,6 @@ self: {
        ];
        description = "IO-Streams interface for Brotli (RFC7932) compression";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "browscap" = callPackage
@@ -45948,8 +46095,8 @@ self: {
      }:
      mkDerivation {
        pname = "bugsnag-haskell";
-       version = "0.0.4.0";
-       sha256 = "1vmbyyya221f6nkk6j1wxscwcxmh10f0hwsy9ib460d59vf607ym";
+       version = "0.0.4.1";
+       sha256 = "0msr61bh2h9ncbar4kwsdpncvaasy3qa3n3vjgqvnsymvs257vaf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -47340,8 +47487,8 @@ self: {
     ({ mkDerivation, base, Cabal, HUnit, QuickCheck, safe }:
      mkDerivation {
        pname = "byteunits";
-       version = "0.4.0.2";
-       sha256 = "1mdkpmqwszllz2yyhssic02k5g7m8hwnd5wghi4vf970g6m6skpp";
+       version = "0.4.0.3";
+       sha256 = "1p28wax0i49c1zka7ijirr75a4y2hg7fpvm7hvvwn7y3npxddd18";
        libraryHaskellDepends = [ base safe ];
        testHaskellDepends = [ base Cabal HUnit QuickCheck ];
        description = "Human friendly conversion between byte units (KB, MB, GB...)";
@@ -47579,8 +47726,8 @@ self: {
      }:
      mkDerivation {
        pname = "c2hs";
-       version = "0.28.6";
-       sha256 = "1nplgxfin139x12sb656f5870rpdclrhzi8mq8pry035qld15pci";
+       version = "0.28.7";
+       sha256 = "0ib7ayfn37krsnm710x4gxd2i88xv3djnqa737gbw93b0206l571";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -48226,8 +48373,8 @@ self: {
        ];
        doCheck = false;
        postInstall = ''
-         mkdir $out/etc
-         mv bash-completion $out/etc/bash_completion.d
+         mkdir -p $out/share/bash-completion
+         mv bash-completion $out/share/bash-completion/completions
        '';
        description = "The command-line interface for Cabal and Hackage";
        license = stdenv.lib.licenses.bsd3;
@@ -48788,8 +48935,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal2nix";
-       version = "2.15.5";
-       sha256 = "1afqk9svs3zy69w3xa1gvsacn25vpxf2rffw2rvhs3wvsasxpb6c";
+       version = "2.15.6";
+       sha256 = "0jkdy36qpi7b7a14dg0iqgn4k3cia8wj1yi8pg82v430rspnkfdb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -49473,8 +49620,8 @@ self: {
      }:
      mkDerivation {
        pname = "calamity";
-       version = "0.1.22.1";
-       sha256 = "0mwpggxkag3l4ql75yhp5a0mpmwah44a9rqpsln0ds405jydjw92";
+       version = "0.1.23.1";
+       sha256 = "162vjlzd2w98c5w8smjy6y7sywa7dfmv780g6ij4spzn1611l2z5";
        libraryHaskellDepends = [
          aeson async base bytestring colour concurrent-extra containers
          data-default-class data-flags deepseq deque df1 di-core di-polysemy
@@ -49636,8 +49783,8 @@ self: {
      }:
      mkDerivation {
        pname = "call-alloy";
-       version = "0.2.1.0";
-       sha256 = "0k75fcrn2r4yk59i8r7qwirg0b9vwga9gmibmj4lznqg44yy2bhi";
+       version = "0.2.1.1";
+       sha256 = "0vgn4rrpnhmjcn7wh01nr4q0mlmr4ja2dd1b9vysxfrmslfxnxda";
        libraryHaskellDepends = [
          base bytestring containers directory file-embed filepath hashable
          lens mtl process split trifecta unix
@@ -50083,34 +50230,34 @@ self: {
      , deepseq, directory, exceptions, filepath, focus, hashable
      , heredoc, hspec, list-t, monad-stm, mtl, network, network-simple
      , pretty-show, primitive, process, process-extras, QuickCheck
-     , quickcheck-instances, quickcheck-io, reinterpret-cast, resourcet
-     , safe-exceptions, stm, stm-containers, supervisors, text
+     , quickcheck-instances, quickcheck-io, resourcet, safe-exceptions
+     , stm, stm-containers, supervisors, template-haskell, text
      , transformers, vector, wl-pprint-text
      }:
      mkDerivation {
        pname = "capnp";
-       version = "0.8.0.0";
-       sha256 = "0jqq1yal41rnc8z66b24kiycyxdzwpqykx1p8v1rc3qbn4i3n255";
+       version = "0.10.0.0";
+       sha256 = "054cy2rr2hg0brrbxff4my3q2fzr1qk7ik2xyip65dq54958ibqk";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          async base bytes bytestring containers cpu data-default
          data-default-instances-vector exceptions focus hashable list-t
          monad-stm mtl network network-simple pretty-show primitive
-         reinterpret-cast safe-exceptions stm stm-containers supervisors
+         safe-exceptions stm stm-containers supervisors template-haskell
          text transformers vector
        ];
        executableHaskellDepends = [
          base bifunctors bytes bytestring containers data-default directory
-         exceptions filepath monad-stm mtl primitive reinterpret-cast
-         safe-exceptions text transformers vector wl-pprint-text
+         exceptions filepath monad-stm mtl primitive safe-exceptions text
+         transformers vector wl-pprint-text
        ];
        testHaskellDepends = [
          async base bytes bytestring containers data-default deepseq
          directory exceptions heredoc hspec monad-stm mtl network
          network-simple pretty-show primitive process process-extras
-         QuickCheck quickcheck-instances quickcheck-io reinterpret-cast
-         resourcet safe-exceptions stm supervisors text transformers vector
+         QuickCheck quickcheck-instances quickcheck-io resourcet
+         safe-exceptions stm supervisors text transformers vector
        ];
        description = "Cap'n Proto for Haskell";
        license = stdenv.lib.licenses.mit;
@@ -52726,6 +52873,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "chassis" = callPackage
+    ({ mkDerivation, base, bytestring, comonad, composite-base
+     , containers, contravariant, distributive, either, exceptions
+     , extra, first-class-families, path, profunctors, rio, text, time
+     , vinyl
+     }:
+     mkDerivation {
+       pname = "chassis";
+       version = "0.0.4.0";
+       sha256 = "1mvi7h6pp1j3x4yccqy962f8d3gbm4sj5fvnfwxygnxqqhmy1dvk";
+       libraryHaskellDepends = [
+         base bytestring comonad composite-base containers contravariant
+         distributive either exceptions extra first-class-families path
+         profunctors rio text time vinyl
+       ];
+       description = "Prelude with algebraic constructs and polykinds on";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "chatter" = callPackage
     ({ mkDerivation, array, base, bytestring, cereal, cereal-text
      , containers, deepseq, directory, filepath, fullstop, hashable
@@ -53064,16 +53230,46 @@ self: {
        broken = true;
      }) {};
 
+  "cherry-core-alpha" = callPackage
+    ({ mkDerivation, async, base, base64-bytestring, binary, bytestring
+     , case-insensitive, cherry-core, containers, directory, ghc-prim
+     , hspec, hspec-discover, http-client, http-client-tls, http-types
+     , mtl, network, safe-exceptions, scientific, stm, text-utf8, time
+     , unix, utf8-string, vector, wai, wai-extra, wai-middleware-static
+     , warp
+     }:
+     mkDerivation {
+       pname = "cherry-core-alpha";
+       version = "0.3.0.0";
+       sha256 = "03plsrwzji653psjwsxmafsl24cyx6260x15cfpmb7fka5rdfs5i";
+       libraryHaskellDepends = [
+         async base base64-bytestring binary bytestring case-insensitive
+         containers directory ghc-prim http-client http-client-tls
+         http-types mtl network safe-exceptions scientific stm text-utf8
+         time unix utf8-string vector wai wai-extra wai-middleware-static
+         warp
+       ];
+       testHaskellDepends = [
+         base cherry-core containers hspec text-utf8
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "The core library for Cherry Haskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {cherry-core = null;};
+
   "chessIO" = callPackage
-    ({ mkDerivation, attoparsec, base, binary, bytestring, containers
-     , directory, extra, file-embed, haskeline, megaparsec, MonadRandom
-     , mtl, o-clock, optparse-applicative, parallel, prettyprinter
-     , process, random, stm, text, time, unordered-containers, vector
+    ({ mkDerivation, attoparsec, base, binary, brick, bytestring
+     , containers, directory, extra, file-embed, filepath, haskeline
+     , megaparsec, microlens, microlens-th, MonadRandom, mtl, o-clock
+     , optparse-applicative, parallel, prettyprinter, process, random
+     , rosezipper, stm, text, time, unordered-containers, vector, vty
      }:
      mkDerivation {
        pname = "chessIO";
-       version = "0.5.0.0";
-       sha256 = "14di8x8r7q2sjwipx8crgr0bcy3qhr58knf6paqkfqsxc3iynr0h";
+       version = "0.6.0.0";
+       sha256 = "0lc0bif9bp4h0131cy9rss90qv026mlknr16ayxlvfn3ynyarqv8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -53082,10 +53278,10 @@ self: {
          text unordered-containers vector
        ];
        executableHaskellDepends = [
-         attoparsec base binary bytestring containers extra file-embed
-         haskeline megaparsec MonadRandom mtl o-clock optparse-applicative
-         prettyprinter process random stm text time unordered-containers
-         vector
+         attoparsec base binary brick bytestring containers extra file-embed
+         filepath haskeline megaparsec microlens microlens-th MonadRandom
+         mtl o-clock optparse-applicative prettyprinter process random
+         rosezipper stm text time unordered-containers vector vty
        ];
        testHaskellDepends = [
          attoparsec base binary bytestring containers directory extra
@@ -53183,8 +53379,10 @@ self: {
      }:
      mkDerivation {
        pname = "chiphunk";
-       version = "0.1.2.1";
-       sha256 = "03mjx286kbxnnsalqii7fbq3zgdbdsb2mr6x334jffif801sjmbq";
+       version = "0.1.4.0";
+       sha256 = "096pcfszccx9hdzqknrmdzj2lb38059cfqndvyildx2x83dhq5dx";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [
          base hashable safe-exceptions StateVar vector-space
        ];
@@ -54093,22 +54291,18 @@ self: {
      }) {};
 
   "circular" = callPackage
-    ({ mkDerivation, aeson, base, criterion, hspec, hspec-discover
-     , primitive, QuickCheck, quickcheck-instances, vector
+    ({ mkDerivation, aeson, base, criterion, hspec, primitive
+     , QuickCheck, quickcheck-instances, vector
      }:
      mkDerivation {
        pname = "circular";
-       version = "0.3.1";
-       sha256 = "14fyhqyqv08yml0bsxpjqv3x1alnwdsp9yx5f035vwp9p1mh7rll";
+       version = "0.3.1.1";
+       sha256 = "0m3hw2w9hrxz7qi4vcqfbvqck6k7rzwv49r3il0i69xkxzr1dcgk";
        libraryHaskellDepends = [ aeson base primitive vector ];
        testHaskellDepends = [
-         aeson base hspec hspec-discover primitive QuickCheck
-         quickcheck-instances vector
-       ];
-       testToolDepends = [ hspec-discover ];
-       benchmarkHaskellDepends = [
-         aeson base criterion primitive vector
+         aeson base hspec primitive QuickCheck quickcheck-instances vector
        ];
+       benchmarkHaskellDepends = [ base criterion vector ];
        description = "Circular fixed-sized mutable vectors";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -54186,8 +54380,8 @@ self: {
      }:
      mkDerivation {
        pname = "citeproc";
-       version = "0.2";
-       sha256 = "1jibg9yzcdafijy5c8khgavirbxq44plsw81gkxya24yc9ag5bi6";
+       version = "0.3.0.3";
+       sha256 = "0ck7hw1md1bwfl0qzkj0vg8ippmymcmvw84srr15rhaqgiqx9v4n";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -55456,8 +55650,8 @@ self: {
      }:
      mkDerivation {
        pname = "clickhouse-haskell";
-       version = "0.1.2.0";
-       sha256 = "0mys7l7sncrdwd673p0s4ls3ir5i26kcjl7x0hpd9a4ms8y04fxx";
+       version = "0.1.2.3";
+       sha256 = "1sa9jbiw8j04plk26p7n25plq0ymzsw7vqln0y6kbn3k30panyqg";
        libraryHaskellDepends = [
          aeson array async attoparsec base binary bytestring
          bytestring-to-vector call-stack containers data-default-class
@@ -56724,8 +56918,8 @@ self: {
      }:
      mkDerivation {
        pname = "co-log-polysemy-formatting";
-       version = "0.1.0.0";
-       sha256 = "17dajk3d23xa1fj8qs896szs00vvwpdgcgjibvkw9mm160yvrlxi";
+       version = "0.1.1.0";
+       sha256 = "0bq16kf0xg1nlif5jk899jawbbgg1lkh0jy6gx46prvqghd05y4s";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -56733,8 +56927,8 @@ self: {
          polysemy text time
        ];
        executableHaskellDepends = [
-         ansi-terminal base co-log co-log-core co-log-polysemy formatting
-         polysemy polysemy-plugin text time
+         base co-log co-log-core co-log-polysemy formatting polysemy
+         polysemy-plugin
        ];
        description = "A Polysemy logging effect for high quality (unstructured) logs";
        license = stdenv.lib.licenses.bsd3;
@@ -58392,21 +58586,17 @@ self: {
      }) {};
 
   "comonad" = callPackage
-    ({ mkDerivation, base, Cabal, cabal-doctest, containers
-     , distributive, doctest, tagged, transformers, transformers-compat
+    ({ mkDerivation, base, containers, distributive
+     , indexed-traversable, tagged, transformers, transformers-compat
      }:
      mkDerivation {
        pname = "comonad";
-       version = "5.0.6";
-       sha256 = "1blgp2nm9cvnsdi2bmkmly5m0gz91npjvf1i5j4pnx6imhbb1kvp";
-       revision = "1";
-       editedCabalFile = "19744zfb5nd90a3xnhl7fx9aik39nwwx9sf7k9aahrcplwlvbwgx";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       version = "5.0.8";
+       sha256 = "04rxycp2pbkrvhjgpgx08jmsipjz4cdmhv59dbp47k4jq8ndyv7g";
        libraryHaskellDepends = [
-         base containers distributive tagged transformers
-         transformers-compat
+         base containers distributive indexed-traversable tagged
+         transformers transformers-compat
        ];
-       testHaskellDepends = [ base doctest ];
        description = "Comonads";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -60698,12 +60888,72 @@ self: {
        license = stdenv.lib.licenses.mpl20;
      }) {};
 
+  "conferer_1_0_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, containers, deepseq, directory
+     , filepath, hspec, QuickCheck, text
+     }:
+     mkDerivation {
+       pname = "conferer";
+       version = "1.0.0.0";
+       sha256 = "0hxlr45yfzv1lxw9lz7mk5risshdhmznxz0xqx5bsdyl7nbd79pv";
+       libraryHaskellDepends = [
+         base bytestring containers directory filepath text
+       ];
+       testHaskellDepends = [
+         base bytestring containers deepseq directory filepath hspec
+         QuickCheck text
+       ];
+       description = "Configuration management library";
+       license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "conferer-aeson" = callPackage
+    ({ mkDerivation, aeson, aeson-qq, base, bytestring, conferer
+     , directory, hspec, text, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "conferer-aeson";
+       version = "1.0.0.0";
+       sha256 = "0adqblmpbyqfqybgmjnnwsnaxw8qiqvw5c2bj4avsikz7fhcp0nl";
+       libraryHaskellDepends = [
+         aeson base bytestring conferer directory text unordered-containers
+         vector
+       ];
+       testHaskellDepends = [
+         aeson aeson-qq base bytestring conferer directory hspec text
+         unordered-containers vector
+       ];
+       description = "conferer's source for reading json files";
+       license = stdenv.lib.licenses.mpl20;
+     }) {};
+
+  "conferer-dhall" = callPackage
+    ({ mkDerivation, base, bytestring, conferer, conferer-aeson, dhall
+     , dhall-json, directory, hspec, text
+     }:
+     mkDerivation {
+       pname = "conferer-dhall";
+       version = "1.0.0.0";
+       sha256 = "0xw2c1cmjw93x4ala85bxs0lfwlqwdl26lj1n7yc9lk67ln54912";
+       libraryHaskellDepends = [
+         base bytestring conferer conferer-aeson dhall dhall-json directory
+         text
+       ];
+       testHaskellDepends = [
+         base bytestring conferer conferer-aeson dhall dhall-json directory
+         hspec text
+       ];
+       description = "Configuration for reading dhall files";
+       license = stdenv.lib.licenses.mpl20;
+     }) {};
+
   "conferer-hedis" = callPackage
     ({ mkDerivation, base, conferer, hedis, hspec, text }:
      mkDerivation {
        pname = "conferer-hedis";
-       version = "0.4.0.1";
-       sha256 = "0drsyagkdzlkrrq0x43j72804x1i3p4b9pjyqff5jdrr8h9jrv37";
+       version = "1.0.0.0";
+       sha256 = "0x150z08x1grzr80fdpkbxprldn08908fgz2mpg3qg219nx4r5n2";
        libraryHaskellDepends = [ base conferer hedis text ];
        testHaskellDepends = [ base conferer hedis hspec text ];
        description = "conferer's FromConfig instances for hedis settings";
@@ -60722,6 +60972,19 @@ self: {
        license = stdenv.lib.licenses.mpl20;
      }) {};
 
+  "conferer-hspec_1_0_0_0" = callPackage
+    ({ mkDerivation, base, conferer, hspec, hspec-core, text }:
+     mkDerivation {
+       pname = "conferer-hspec";
+       version = "1.0.0.0";
+       sha256 = "02c4z2999pa04r78n8xzx7idvgg028wlb2fgyk0878wb1gahzsxp";
+       libraryHaskellDepends = [ base conferer hspec-core text ];
+       testHaskellDepends = [ base conferer hspec hspec-core text ];
+       description = "conferer's FromConfig instances for hspec Config";
+       license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "conferer-provider-dhall" = callPackage
     ({ mkDerivation, base, bytestring, conferer, conferer-provider-json
      , dhall, dhall-json, directory, hspec, text
@@ -60792,8 +61055,8 @@ self: {
      }:
      mkDerivation {
        pname = "conferer-snap";
-       version = "0.4.0.1";
-       sha256 = "1z5p8zchykp8fc7lag3mi32z4wzb0bxcw5p4j3ya57bqs2xhhsdd";
+       version = "1.0.0.0";
+       sha256 = "15gz77b5jf35hmcnd6kza1wgzpbgk3pcvhi7mp7yk64ybksld98r";
        libraryHaskellDepends = [
          base conferer snap-core snap-server text
        ];
@@ -60876,6 +61139,34 @@ self: {
        license = stdenv.lib.licenses.mpl20;
      }) {};
 
+  "conferer-warp_1_0_0_0" = callPackage
+    ({ mkDerivation, base, conferer, hspec, http-types, text, wai, warp
+     }:
+     mkDerivation {
+       pname = "conferer-warp";
+       version = "1.0.0.0";
+       sha256 = "14wrd50dfgc2m6lyfvsx4w605r8krf6ha96j3685vgy6fylff1bd";
+       libraryHaskellDepends = [ base conferer http-types text wai warp ];
+       testHaskellDepends = [
+         base conferer hspec http-types text wai warp
+       ];
+       description = "conferer's FromConfig instances for warp settings";
+       license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "conferer-yaml" = callPackage
+    ({ mkDerivation, base, conferer, conferer-aeson, hspec, yaml }:
+     mkDerivation {
+       pname = "conferer-yaml";
+       version = "1.0.0.0";
+       sha256 = "091pkbkjpppkc2ygm8jq22xslr4afbp3kk5377gpx3vh4a0lvswg";
+       libraryHaskellDepends = [ base conferer conferer-aeson yaml ];
+       testHaskellDepends = [ base conferer conferer-aeson hspec yaml ];
+       description = "Configuration for reading yaml files";
+       license = stdenv.lib.licenses.mpl20;
+     }) {};
+
   "confetti" = callPackage
     ({ mkDerivation, base, cmdargs, directory, filepath, MissingH
      , tasty, tasty-hunit, tasty-smallcheck, text, time, unix, yaml
@@ -62274,8 +62565,8 @@ self: {
     ({ mkDerivation, base, StateVar, transformers }:
      mkDerivation {
        pname = "contravariant";
-       version = "1.5.2";
-       sha256 = "0366gl62wwwdbl9i6kqy60asf60876k55v91la6bmhnwwcj2q9n4";
+       version = "1.5.3";
+       sha256 = "1haxsq7jl95gzmbjdr2pgza9b7j0j3f26wwkf494gphz6c76yls4";
        libraryHaskellDepends = [ base StateVar transformers ];
        description = "Contravariant functors";
        license = stdenv.lib.licenses.bsd3;
@@ -62826,8 +63117,8 @@ self: {
      }:
      mkDerivation {
        pname = "copilot";
-       version = "3.1";
-       sha256 = "1dw7bkmadwsncd39pkngaxglfsnrnc9km7y8ld0l9bkiiw136x2w";
+       version = "3.2";
+       sha256 = "1d1b70kal17aiflhvzz59ahc6iyyln3d70xvhjjjh7j7la03xm8h";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -62842,20 +63133,27 @@ self: {
      }) {};
 
   "copilot-c99" = callPackage
-    ({ mkDerivation, base, containers, copilot-core, directory
-     , filepath, language-c99, language-c99-simple, language-c99-util
-     , mtl, pretty
+    ({ mkDerivation, base, containers, copilot-core, copilot-language
+     , csv, directory, filepath, hspec, language-c99
+     , language-c99-simple, language-c99-util, mtl, pretty, process
+     , QuickCheck
      }:
      mkDerivation {
        pname = "copilot-c99";
-       version = "3.1.2";
-       sha256 = "1mxkn9mvcxlycrrha023nppn8005n26mqhklcw2hf8l3aq2ij7mf";
+       version = "3.2";
+       sha256 = "0q0v8xwmcbvi2yvz0nn1kc3ms0i3g74f2k66gwhnznnvldr99qh2";
        libraryHaskellDepends = [
          base containers copilot-core directory filepath language-c99
          language-c99-simple language-c99-util mtl pretty
        ];
+       testHaskellDepends = [
+         base copilot-core copilot-language csv hspec language-c99
+         language-c99-simple pretty process QuickCheck
+       ];
        description = "A compiler for Copilot targeting C99";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "copilot-cbmc" = callPackage
@@ -62877,12 +63175,12 @@ self: {
      }) {};
 
   "copilot-core" = callPackage
-    ({ mkDerivation, base, containers, dlist, mtl, pretty }:
+    ({ mkDerivation, base, dlist, mtl, pretty }:
      mkDerivation {
        pname = "copilot-core";
-       version = "3.1";
-       sha256 = "08xz5s0b2fd5igja5wiaq93ignx6bsf942rg4hy42fmh4c03hylp";
-       libraryHaskellDepends = [ base containers dlist mtl pretty ];
+       version = "3.2";
+       sha256 = "0l13zqycini9fkiy90i0dzi831lqv8lwpdk0dzrk9r0c545iy2ga";
+       libraryHaskellDepends = [ base dlist mtl pretty ];
        description = "An intermediate representation for Copilot";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -62893,8 +63191,8 @@ self: {
      }:
      mkDerivation {
        pname = "copilot-language";
-       version = "3.1";
-       sha256 = "0hdk8418l30vz9lv7c4bzh8m5gn8knpvg296b14n66si9g36qglp";
+       version = "3.2";
+       sha256 = "1vx2i20ndphcb7gl252wnk2bim2dcg3552yfa0rpkh8axkiwmnpa";
        libraryHaskellDepends = [
          array base containers copilot-core copilot-theorem data-reify
          ghc-prim mtl
@@ -62911,8 +63209,8 @@ self: {
      }:
      mkDerivation {
        pname = "copilot-libraries";
-       version = "3.1";
-       sha256 = "094hjzg22b55n4kv89ccr7pbgqpbd0z8f5myn93nyw6yqpmpp30v";
+       version = "3.2";
+       sha256 = "0sjl6bk2fzba2zj0m41si0i2jr8pcwf96zc1vscwmhfg48hqxjg1";
        libraryHaskellDepends = [
          array base containers copilot-language data-reify mtl parsec
        ];
@@ -62946,8 +63244,8 @@ self: {
      }:
      mkDerivation {
        pname = "copilot-theorem";
-       version = "3.1";
-       sha256 = "15vnl5lg9s6h9s98f1nvva3ab0gdn3a5314mxdfxxa53ywmiq2a0";
+       version = "3.2";
+       sha256 = "1l0vmxlrygvxq23nvjss8x53qlfhbshp5vlh3cs6mviv1hmpbg7v";
        libraryHaskellDepends = [
          ansi-terminal base bimap containers copilot-core data-default
          directory mtl parsec pretty process random transformers xml
@@ -62979,6 +63277,32 @@ self: {
        broken = true;
      }) {};
 
+  "coquina" = callPackage
+    ({ mkDerivation, async, base, bytestring, containers, deepseq
+     , directory, exceptions, filepath, hspec, lens, markdown-unlit
+     , monad-logger, mtl, process, stm, temporary, text, transformers
+     , which
+     }:
+     mkDerivation {
+       pname = "coquina";
+       version = "0.1.0.0";
+       sha256 = "1ag3r4p9v5vbkwh808swsz1f6ii6jk0rri8m9li7qdiixlnhykj1";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         async base bytestring containers deepseq directory exceptions
+         filepath monad-logger mtl process stm temporary text transformers
+       ];
+       executableHaskellDepends = [ base process text ];
+       executableToolDepends = [ markdown-unlit ];
+       testHaskellDepends = [
+         async base exceptions hspec lens mtl process stm temporary text
+         which
+       ];
+       description = "Yet another shell monad";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "core" = callPackage
     ({ mkDerivation, base, bytestring, parsec, pretty }:
      mkDerivation {
@@ -63351,8 +63675,8 @@ self: {
      }:
      mkDerivation {
        pname = "countable-inflections";
-       version = "0.2.0";
-       sha256 = "0va96lgcm6brgv063jvlxq12f4z89y2yw4y0v99z3fy2wgn2ps8y";
+       version = "0.3.0";
+       sha256 = "1imi7csng0q6qmwz2ii4j33nwcmiyzi072nvgh36a3lgi0ja6q9x";
        libraryHaskellDepends = [
          base bytestring exceptions pcre-utils regex-pcre-builtin text
        ];
@@ -63729,19 +64053,21 @@ self: {
      }) {};
 
   "cpython" = callPackage
-    ({ mkDerivation, base, bytestring, c2hs, python34, text }:
+    ({ mkDerivation, base, bytestring, c2hs, python3, text }:
      mkDerivation {
        pname = "cpython";
-       version = "3.4.0";
-       sha256 = "1j67w1zpbdcqpdb51msp96bhvi3fxscc49gbjlnilr6ah9nllhkm";
+       version = "3.5.0";
+       sha256 = "0ivvz6f824d2g4pk3qglz8fhzahp0kfjyv2wy6qpwfwcf1gvw7lg";
        libraryHaskellDepends = [ base bytestring text ];
-       libraryPkgconfigDepends = [ python34 ];
+       libraryPkgconfigDepends = [ python3 ];
        libraryToolDepends = [ c2hs ];
+       testHaskellDepends = [ base text ];
+       testPkgconfigDepends = [ python3 ];
        description = "Bindings for libpython";
        license = stdenv.lib.licenses.gpl3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
-     }) {python34 = null;};
+     }) {inherit (pkgs) python3;};
 
   "cql" = callPackage
     ({ mkDerivation, base, bytestring, cereal, containers, Decimal
@@ -64224,8 +64550,8 @@ self: {
      }:
      mkDerivation {
        pname = "crdt";
-       version = "10.5";
-       sha256 = "06ndalfz2j722ifblzz3pamb0fdyhs9pa0286kmx2dcrvw7kq1vy";
+       version = "10.6";
+       sha256 = "0c86gf70iv59dwmm0yv8isyyd6zy497vqgf6ml9s6rz4hhg1rwl0";
        libraryHaskellDepends = [
          base binary bytestring containers Diff hashable mtl network-info
          safe stm time vector
@@ -64237,16 +64563,17 @@ self: {
      }) {};
 
   "crdt-event-fold" = callPackage
-    ({ mkDerivation, base, binary, containers, data-default-class
-     , data-dword, hspec, mtl, transformers
+    ({ mkDerivation, aeson, base, binary, containers
+     , data-default-class, data-dword, hspec, monad-logger, mtl
+     , transformers
      }:
      mkDerivation {
        pname = "crdt-event-fold";
-       version = "1.2.1.1";
-       sha256 = "0qwc72j2v3kdvh3iq6vn0anwicpqpx59in6q9yvc5jbk4f24zpl2";
+       version = "1.3.0.0";
+       sha256 = "0zpbn7rx9zywrfhpaj7lji0is0sb61al7q8fddrxy8vvirvhbb85";
        libraryHaskellDepends = [
-         base binary containers data-default-class data-dword mtl
-         transformers
+         aeson base binary containers data-default-class data-dword
+         monad-logger mtl transformers
        ];
        testHaskellDepends = [ base hspec ];
        description = "Garbage collected event folding CRDT";
@@ -65376,8 +65703,6 @@ self: {
        benchmarkHaskellDepends = [ base bytestring criterion ];
        description = "Fast, pure and practical SHA-512 implementation";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "cryptoids" = callPackage
@@ -65569,6 +65894,8 @@ self: {
        pname = "cryptsy-api";
        version = "0.2.1";
        sha256 = "1knnzh77y4rr7ka2nfwr99z61v2pvx2p1mzji06ac0mjk2n80ybs";
+       revision = "1";
+       editedCabalFile = "0j7ak0dypmr8g9zxrkr9pv5rn2hkj0m2lny2r1j2gwzkw61xifiz";
        libraryHaskellDepends = [
          aeson base bytestring deepseq either http-client http-client-tls
          old-locale pipes-attoparsec pipes-http text time transformers
@@ -66533,6 +66860,38 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "curryer-rpc" = callPackage
+    ({ mkDerivation, async, base, binary, bytestring, containers
+     , criterion, exceptions, fast-builder, hashable, network
+     , network-byte-order, optparse-generic, stm, stm-containers
+     , streamly, tasty, tasty-hunit, time, uuid, winery
+     }:
+     mkDerivation {
+       pname = "curryer-rpc";
+       version = "0.1";
+       sha256 = "13xgmhdgnn3nw2knlr60ah51hbf34fiiiz7z6230976n78aa6vkh";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         async base binary bytestring containers exceptions fast-builder
+         hashable network network-byte-order stm stm-containers streamly
+         time uuid winery
+       ];
+       executableHaskellDepends = [
+         base optparse-generic stm stm-containers winery
+       ];
+       testHaskellDepends = [
+         async base network stm tasty tasty-hunit winery
+       ];
+       benchmarkHaskellDepends = [
+         async base bytestring criterion network winery
+       ];
+       description = "Fast, Haskell RPC";
+       license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "curryrs" = callPackage
     ({ mkDerivation, base, mtl, tasty, tasty-hunit }:
      mkDerivation {
@@ -67156,8 +67515,8 @@ self: {
        ];
        doCheck = false;
        postInstall = ''
-         mkdir -p $out/etc/bash_completion.d
-         mv contrib/darcs_completion $out/etc/bash_completion.d/darcs
+         mkdir -p $out/share/bash-completion/completions
+         mv contrib/darcs_completion $out/share/bash-completion/completions/darcs
        '';
        description = "a distributed, interactive, smart revision control system";
        license = stdenv.lib.licenses.gpl2Plus;
@@ -69283,13 +69642,12 @@ self: {
      }:
      mkDerivation {
        pname = "data-validation";
-       version = "0.1.2.0";
-       sha256 = "1qka2f0gl48yi2hfiqphk94srh5lq7i14vx0qmj09fgv8xn65n15";
-       libraryHaskellDepends = [
-         base containers regex-tdfa template-haskell
+       version = "0.1.2.4";
+       sha256 = "1ck7grirqv0hbi973fgbgwzflsmz8diwi1rmjmfxz1f3915vi1yz";
+       libraryHaskellDepends = [ base containers template-haskell ];
+       testHaskellDepends = [
+         base containers hspec regex-tdfa template-haskell
        ];
-       testHaskellDepends = [ base containers hspec template-haskell ];
-       doHaddock = false;
        description = "A library for creating type safe validations";
        license = stdenv.lib.licenses.asl20;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -69309,6 +69667,22 @@ self: {
        broken = true;
      }) {};
 
+  "data-vector-growable" = callPackage
+    ({ mkDerivation, async, atomic-primops, base, exceptions, primitive
+     , vector
+     }:
+     mkDerivation {
+       pname = "data-vector-growable";
+       version = "0.0.1";
+       sha256 = "0mix8k8b4ry9szfigw8jm0x2cxw1xykknccp3zqrznslrp5wn7n6";
+       libraryHaskellDepends = [
+         atomic-primops base exceptions primitive vector
+       ];
+       testHaskellDepends = [ async base vector ];
+       description = "Dynamic growable resizable mutable generic vector";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "database-id-class" = callPackage
     ({ mkDerivation, aeson, base }:
      mkDerivation {
@@ -69946,8 +70320,8 @@ self: {
      }:
      mkDerivation {
        pname = "dbus";
-       version = "1.2.16";
-       sha256 = "103zxllh7nwbbckjblidr45xa13lrpqh9bwhvirrx24g7hsj1y9c";
+       version = "1.2.17";
+       sha256 = "0iyfnkxcnm1vl379ry88fqxgn2y8q6ilsvpic6ciassnyv5pcbrv";
        libraryHaskellDepends = [
          base bytestring cereal conduit containers deepseq exceptions
          filepath lens network parsec random split template-haskell text
@@ -71231,8 +71605,8 @@ self: {
      }:
      mkDerivation {
        pname = "dejafu";
-       version = "2.4.0.0";
-       sha256 = "1kj4ygdbbkr54bqknxk3jqif74jxgpid7cz9vzcm2m15h8q2z9k2";
+       version = "2.4.0.1";
+       sha256 = "0zysf0hjfdd5iypllbiyih312kl2hsfwiqf6030i7q432yc3f8vd";
        libraryHaskellDepends = [
          base concurrency containers contravariant deepseq exceptions
          leancheck profunctors random transformers
@@ -71958,8 +72332,8 @@ self: {
      }:
      mkDerivation {
        pname = "derive-storable-plugin";
-       version = "0.2.3.1";
-       sha256 = "1g2i2l97jldw9yv10dbcbaq54lz1k1aajhxr28m7fgjwf2mry3gi";
+       version = "0.2.3.3";
+       sha256 = "1p15iia1zg9hm462wbhbcrk70zaphpsbkdbksfxizyfcw9c0v9qf";
        libraryHaskellDepends = [ base derive-storable ghc ghci ];
        testHaskellDepends = [
          base derive-storable ghc ghci hspec QuickCheck
@@ -72579,10 +72953,10 @@ self: {
      }:
      mkDerivation {
        pname = "dhall";
-       version = "1.36.0";
-       sha256 = "014bdxmrcxzc2yrk838fxbz521714fk3a7c6idb9065wrfzch1wj";
+       version = "1.37.1";
+       sha256 = "16qpasw41wcgbi9ljrs43dn2ajw25yipm8kxri6v5fwj3gyzj24d";
        revision = "1";
-       editedCabalFile = "1561i0rv0qx4mizwg1k04qynwdz6gsx4fifps9415rwdfki6dyxw";
+       editedCabalFile = "11sjra0k7sdy0xcbhlxvjjpd4h7ki9dcrndcpaq71qlgdql32w24";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -72622,8 +72996,8 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-bash";
-       version = "1.0.34";
-       sha256 = "1p1zylrjk80lh8rxpw2z3wyvk9x7q65lwyfwfacx8rrbgzx54riy";
+       version = "1.0.35";
+       sha256 = "0v7br83m3zhz4pa98yrzbikkvldgrprjq0z5amimjsk8lcdmpq8k";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -72665,8 +73039,10 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-docs";
-       version = "1.0.2";
-       sha256 = "17l8vwj02lbkqy8p4j7rhmwidrxx1ln375cv8lgwwx4n0fgvmgfc";
+       version = "1.0.3";
+       sha256 = "0cinkgcihn15zws18nff42lcpmzv4cg7k8wxmcwa93k7qvw01i2p";
+       revision = "1";
+       editedCabalFile = "1wzwfgv6bpgjq0day372gyxg9vrcmkf5sbzvm0lv4p39z0qcgpna";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -72728,8 +73104,10 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-json";
-       version = "1.7.3";
-       sha256 = "0as1n4qy0rynmj1y7h39l1lazqarwgizbzsn0g7apixzzdfm53kx";
+       version = "1.7.4";
+       sha256 = "1qzlv7wvap1ivgv7fi9ikqa9nm9z9kbbca5zvddh3njcdk6i73n9";
+       revision = "1";
+       editedCabalFile = "0njh1c7c4dcm5ya4w79mf11m5v9gnacyd7lrz7j4ipk4wdgwinvi";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -72777,8 +73155,10 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-lsp-server";
-       version = "1.0.11";
-       sha256 = "0xp4mbk26p22xs5f2bz493yi9ijbiiz1jwmc462yk1bxxz5lbx5n";
+       version = "1.0.12";
+       sha256 = "0gp9pa3pdm49ya6awdi1qjbycxdihz2z11mzmfnr5m2gf0vrjzpp";
+       revision = "1";
+       editedCabalFile = "1yiazwsvbz2yzc8jdvr6nq7p882pkcr2hfyxsn73j288cwdyl02r";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -72802,8 +73182,8 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-nix";
-       version = "1.1.18";
-       sha256 = "0d947iz98mkmz7chxcp2402kid711na7xwwx8xzh8jg5lh41sm7w";
+       version = "1.1.19";
+       sha256 = "0w3vxqn1h39f17mg246ydxni02civ3fm85s0wi4ks6iy1ng4dw0a";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -72827,8 +73207,8 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-nixpkgs";
-       version = "1.0.2";
-       sha256 = "1r76zbqk2pc5pryrbdj425j6bb86x28pqfkav3kw9kr4703afhni";
+       version = "1.0.3";
+       sha256 = "03apykbil3x3j7ndapfgmf39p7l62d1lrn2ad1m6k5xqnd8nqlxf";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -72899,8 +73279,10 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-yaml";
-       version = "1.2.3";
-       sha256 = "1n42brr1yifb4pyl26960rsm8b1wzw0hvv6mmq8m5ml5av61ymf3";
+       version = "1.2.4";
+       sha256 = "0xm1dsim5x83k6kp5g9yv08ixf6l4p2mm666m4vsylx98y5nwmag";
+       revision = "1";
+       editedCabalFile = "1mmsymbj57r49kj520f9hrw9bk80y29p3av68b1hmrcaiixqs87a";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -74560,8 +74942,8 @@ self: {
      }:
      mkDerivation {
        pname = "diohsc";
-       version = "0.1.2";
-       sha256 = "0ksawn7wspw1f3yaaqyz4sgbl0p9fnidn1jjfwmjs9zrna1cb084";
+       version = "0.1.3.1";
+       sha256 = "1k44bi5ri63qsps0vh24qc32bclp3nqp2qbs6ylxm9k0q76758iw";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -74800,6 +75182,25 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "directory-contents" = callPackage
+    ({ mkDerivation, base, containers, directory, filepath, text
+     , transformers, witherable
+     }:
+     mkDerivation {
+       pname = "directory-contents";
+       version = "0.2.0.0";
+       sha256 = "15irmkg3ll6s3dqwl4hn7mmr5kygcl11slba3mzkdhlyg567is6x";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base containers directory filepath text transformers witherable
+       ];
+       executableHaskellDepends = [ base filepath text ];
+       testHaskellDepends = [ base filepath ];
+       description = "Recursively build, navigate, and operate on a tree of directory contents";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "directory-layout" = callPackage
     ({ mkDerivation, base, bytestring, command-qq, containers
      , directory, doctest, filepath, free, hspec, lens, semigroups
@@ -74883,21 +75284,18 @@ self: {
      }) {};
 
   "dirichlet" = callPackage
-    ({ mkDerivation, base, hspec, hspec-discover, log-domain
-     , math-functions, mwc-random, primitive, vector
+    ({ mkDerivation, base, hspec, log-domain, math-functions
+     , mwc-random, primitive, vector
      }:
      mkDerivation {
        pname = "dirichlet";
-       version = "0.1.0.0";
-       sha256 = "173mw8706fjrqdjwrjfcb8g140hp4xdjbpvhvq71f8lj8527b9ia";
+       version = "0.1.0.2";
+       sha256 = "1xppfdz3s31md41848awahfipv5g6yhglkw2l5l3q0jc5wsc1vvw";
        libraryHaskellDepends = [
          base log-domain math-functions mwc-random primitive vector
        ];
-       testHaskellDepends = [
-         base hspec hspec-discover log-domain mwc-random vector
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Multivariate dirichlet distribution";
+       testHaskellDepends = [ base hspec log-domain mwc-random vector ];
+       description = "Multivariate Dirichlet distribution";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -76070,18 +76468,15 @@ self: {
      }) {};
 
   "distributive" = callPackage
-    ({ mkDerivation, base, base-orphans, Cabal, cabal-doctest, doctest
-     , generic-deriving, hspec, hspec-discover, tagged, transformers
+    ({ mkDerivation, base, base-orphans, generic-deriving, hspec
+     , hspec-discover, tagged, transformers
      }:
      mkDerivation {
        pname = "distributive";
-       version = "0.6.2";
-       sha256 = "1j93zkfffm6s16kgr0j0z87y5ds28rw0r2gyc5ncwcylvrqy4kl2";
-       revision = "2";
-       editedCabalFile = "11y4qanr09880d7sxkhrzrh3cpmqbx001hiqhsr2s75xrnmrpkia";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       version = "0.6.2.1";
+       sha256 = "14bb66qyfn43bj688igfvnfjw7iycjf4n2k38sm8rxbqw2916dfp";
        libraryHaskellDepends = [ base base-orphans tagged transformers ];
-       testHaskellDepends = [ base doctest generic-deriving hspec ];
+       testHaskellDepends = [ base generic-deriving hspec ];
        testToolDepends = [ hspec-discover ];
        description = "Distributive functors -- Dual to Traversable";
        license = stdenv.lib.licenses.bsd3;
@@ -76985,8 +77380,8 @@ self: {
      }:
      mkDerivation {
        pname = "doctemplates";
-       version = "0.8.3";
-       sha256 = "0pzzcy2f1ysnqzkv14h7x9dp9ywf5rn5k8cvwwwvlg6sjizgvfpd";
+       version = "0.9";
+       sha256 = "048h8ka849h1f0xxwkasjbrrwq03rfz2m7aqg5xc5286kp02w9ns";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base containers doclayout filepath HsYAML mtl parsec safe
@@ -77729,8 +78124,8 @@ self: {
      }:
      mkDerivation {
        pname = "dovin";
-       version = "0.2";
-       sha256 = "0iy2hfmf3riwmj880if7ar30vrwnfpmyv8dhkx42hlzjb8mg538q";
+       version = "3.0";
+       sha256 = "1avyls9yzvnxcs0lz05kh8bv7vdgfrziy0nvn378r7s12ynpwy7w";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal directory filepath ];
@@ -80510,8 +80905,8 @@ self: {
      }:
      mkDerivation {
        pname = "effet";
-       version = "0.3.0.2";
-       sha256 = "1yy8hpq74bp4ffz7b5h7j9ja6akizl7d3b9n7n42c0iwlzr1hi4s";
+       version = "0.4.0.0";
+       sha256 = "0k3m3dmm5ddvick5qm2cvz3vmzyn2jg4r7sskr13l73dnh5is5f0";
        libraryHaskellDepends = [
          base containers monad-control template-haskell transformers
          transformers-base
@@ -80862,8 +81257,8 @@ self: {
      }:
      mkDerivation {
        pname = "ejdb2-binding";
-       version = "0.3.0.0";
-       sha256 = "06zqdnycpzpaymfnimz87v1rc5a8xlnr8mcd49a90ivza967vmmr";
+       version = "0.3.0.1";
+       sha256 = "0rwqwjdcx3rb8v4riqawbjblmhmi6d2h9gzsyhdaafpm9z9z2ymz";
        libraryHaskellDepends = [
          aeson base bytestring mtl unordered-containers
        ];
@@ -81818,8 +82213,8 @@ self: {
      }:
      mkDerivation {
        pname = "elynx";
-       version = "0.5.0";
-       sha256 = "0paxrh39ags55jg7pxb29dwb6cn7sakxdpkdf1fffrqsr3inpr9n";
+       version = "0.5.0.1";
+       sha256 = "1rglf080hx4c8nai07ghh2wf6j79x9hfx2mjzbqc588y0rpj7kmj";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -81837,8 +82232,8 @@ self: {
      }:
      mkDerivation {
        pname = "elynx-markov";
-       version = "0.5.0";
-       sha256 = "0l66zaf4mj117pz16apdr4fi47xv9slay459lzjpdawmm6ppwlgc";
+       version = "0.5.0.1";
+       sha256 = "0m24kzayvhc2mhhk2glpw82kmdbgk38vl2d0xdkkdnnbqag8mbqa";
        libraryHaskellDepends = [
          async attoparsec base bytestring containers elynx-seq hmatrix
          integration math-functions mwc-random parallel primitive statistics
@@ -81855,8 +82250,8 @@ self: {
     ({ mkDerivation, attoparsec, base, bytestring, hspec }:
      mkDerivation {
        pname = "elynx-nexus";
-       version = "0.5.0";
-       sha256 = "03rhhbyhd1z95kl0ds204z4zywgy9anvhashpw2p311dq1g4axrs";
+       version = "0.5.0.1";
+       sha256 = "0jh5j4f8awallrjbgrgdjl6jdzk2lswr28xjryqdapwf4licfkk2";
        libraryHaskellDepends = [ attoparsec base bytestring ];
        testHaskellDepends = [ base hspec ];
        description = "Import and export Nexus files";
@@ -81870,8 +82265,8 @@ self: {
      }:
      mkDerivation {
        pname = "elynx-seq";
-       version = "0.5.0";
-       sha256 = "0bqlv3i7qhnkal8yiwvkp7175jdb9bcg7szkx0b352zfr4qhhmpa";
+       version = "0.5.0.1";
+       sha256 = "0b5jih0jgcf0rbcbwj18l269wbgf31i9125gx3rz6w7ydapmr7wr";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring containers matrices mwc-random
          parallel primitive vector vector-th-unbox word8
@@ -81892,8 +82287,8 @@ self: {
      }:
      mkDerivation {
        pname = "elynx-tools";
-       version = "0.5.0";
-       sha256 = "0lhkgi6wa90wniszkhmnnzmxa3cx1bvzbsy7cwrslmg8iqcxyin0";
+       version = "0.5.0.1";
+       sha256 = "0lq5jv9dwyi0plkx1n270dan8nfxac9q7rhcdq95mzhgar8daink";
        libraryHaskellDepends = [
          aeson attoparsec base base16-bytestring bytestring
          cryptohash-sha256 deepseq directory fast-logger hmatrix
@@ -81913,8 +82308,8 @@ self: {
      }:
      mkDerivation {
        pname = "elynx-tree";
-       version = "0.5.0";
-       sha256 = "0b3dmz6hlbawwpnn84qx0w1g5jymgs7b05jxvx83q365vw8pw6aj";
+       version = "0.5.0.1";
+       sha256 = "1pzam7qg7qihim50iyxw2fsy58xakzjvzskaa4vhzg9cghmjjva8";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring comonad containers deepseq
          double-conversion elynx-nexus math-functions mwc-random parallel
@@ -81924,8 +82319,7 @@ self: {
          attoparsec base bytestring containers elynx-tools hspec QuickCheck
        ];
        benchmarkHaskellDepends = [
-         base bytestring criterion deepseq elynx-tools microlens mwc-random
-         parallel
+         base criterion elynx-tools microlens mwc-random parallel
        ];
        description = "Handle phylogenetic trees";
        license = stdenv.lib.licenses.gpl3Plus;
@@ -82450,10 +82844,8 @@ self: {
      }:
      mkDerivation {
        pname = "engine-io";
-       version = "1.2.22";
-       sha256 = "19hmd804r9k20270zlsfbsyvww5syi5h3nl74klvgmni39ahcxcl";
-       revision = "1";
-       editedCabalFile = "098nkv1zrc4b80137pxdz87by83bla9cbsv6920cpbspkic8x9xz";
+       version = "1.2.23";
+       sha256 = "0q03njv1fdc0g3i0l5bz43xj734wams5qs790y2vvxnjm3ajnjxb";
        libraryHaskellDepends = [
          aeson async attoparsec base base64-bytestring bytestring errors
          free monad-loops mwc-random stm stm-delay text transformers
@@ -83583,8 +83975,8 @@ self: {
     ({ mkDerivation, base, containers, text }:
      mkDerivation {
        pname = "error-or";
-       version = "0.1.1.0";
-       sha256 = "0xh47kyzdyycvi6dxlw736zsa4pxplh9ariw7p2mcr64rx2r77cl";
+       version = "0.1.2.0";
+       sha256 = "0ry06vhz7mrl7i587vw3pv2ralh8aw7km6jfhagww0hmckwdjqmm";
        libraryHaskellDepends = [ base containers text ];
        description = "Composable, hierarchical errors";
        license = stdenv.lib.licenses.bsd3;
@@ -84074,8 +84466,6 @@ self: {
        testHaskellDepends = [ base essence-of-live-coding http-client ];
        description = "General purpose live coding framework";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "estimator" = callPackage
@@ -84868,19 +85258,20 @@ self: {
   "eventlog2html" = callPackage
     ({ mkDerivation, aeson, array, attoparsec, base, blaze-html
      , bytestring, containers, file-embed, filepath, ghc-events
-     , hashable, hashtables, hvega, mtl, optparse-applicative
-     , semigroups, text, time, trie-simple, vector
+     , ghc-heap, hashable, hashtables, hvega, mtl, optparse-applicative
+     , semigroups, statistics-linreg, text, time, trie-simple, vector
      }:
      mkDerivation {
        pname = "eventlog2html";
-       version = "0.7.0";
-       sha256 = "045ihz620xv6qhic3vy257g59l1ly2sld6dcnq28xblsf461krv1";
+       version = "0.8.3";
+       sha256 = "0xk9s8f20xx1xpbc2kbyfv3hhnrj8arim99lrr6wbv8y33qz0pkr";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson array attoparsec base blaze-html bytestring containers
-         file-embed filepath ghc-events hashable hashtables hvega mtl
-         optparse-applicative semigroups text time trie-simple vector
+         file-embed filepath ghc-events ghc-heap hashable hashtables hvega
+         mtl optparse-applicative semigroups statistics-linreg text time
+         trie-simple vector
        ];
        executableHaskellDepends = [ aeson base filepath text ];
        description = "Visualise an eventlog";
@@ -85964,6 +86355,38 @@ self: {
        broken = true;
      }) {};
 
+  "experimenter" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, cereal, cereal-vector
+     , conduit, containers, deepseq, directory, esqueleto, filepath
+     , foundation, HaTeX, hostname, hspec, lens, matrix, monad-logger
+     , mtl, mwc-random, parallel, persistent, persistent-postgresql
+     , persistent-template, process, QuickCheck, resource-pool
+     , resourcet, stm, text, time, transformers, unix, unliftio-core
+     , vector
+     }:
+     mkDerivation {
+       pname = "experimenter";
+       version = "0.1.0.4";
+       sha256 = "0pzlmq2rb485x0df4ivw5i9sv8n14svy1vhgjqc69vm1p0md57ms";
+       libraryHaskellDepends = [
+         aeson base bytestring cereal cereal-vector conduit containers
+         deepseq directory esqueleto filepath HaTeX hostname lens matrix
+         monad-logger mtl mwc-random parallel persistent
+         persistent-postgresql persistent-template process resource-pool
+         resourcet stm text time transformers unix unliftio-core vector
+       ];
+       testHaskellDepends = [
+         aeson base bytestring cereal cereal-vector conduit containers
+         deepseq directory esqueleto filepath foundation HaTeX hostname
+         hspec lens matrix monad-logger mtl mwc-random parallel persistent
+         persistent-postgresql persistent-template process QuickCheck
+         resource-pool resourcet stm text time transformers unix
+         unliftio-core vector
+       ];
+       description = "Perform scientific experiments stored in a DB, and generate reports";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "expiring-cache-map" = callPackage
     ({ mkDerivation, base, bytestring, containers, hashable, time
      , unordered-containers
@@ -86436,33 +86859,35 @@ self: {
      }) {};
 
   "extensible-effects-concurrent" = callPackage
-    ({ mkDerivation, async, base, containers, data-default, deepseq
-     , directory, exceptions, extensible-effects, filepath, hashable
-     , hostname, HUnit, lens, monad-control, mtl, network, pretty-types
+    ({ mkDerivation, async, base, containers, criterion, data-default
+     , deepseq, directory, exceptions, extensible-effects, filepath
+     , hashable, hostname, HUnit, lens, monad-control, mtl, network
      , QuickCheck, safe-exceptions, stm, tasty, tasty-discover
-     , tasty-hunit, text, time, transformers-base
+     , tasty-hunit, text, time, transformers-base, unliftio
      }:
      mkDerivation {
        pname = "extensible-effects-concurrent";
-       version = "0.32.0";
-       sha256 = "1zipam9jac1bj4fkzihgh0hasiwgpycidhvxb0b2b0q7ic18487a";
+       version = "2.0.0";
+       sha256 = "1yzn3lhrwn4r4v1qxv9ask8qg6i5p4rkak5hlvai3nv3f3jnnz6c";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          async base containers data-default deepseq directory exceptions
          extensible-effects filepath hashable hostname lens monad-control
-         mtl network pretty-types safe-exceptions stm text time
-         transformers-base
+         mtl network safe-exceptions stm text time transformers-base
        ];
        executableHaskellDepends = [
-         base data-default deepseq extensible-effects lens pretty-types text
+         base data-default deepseq extensible-effects lens text
        ];
        testHaskellDepends = [
          async base containers data-default deepseq extensible-effects
-         filepath hostname HUnit lens monad-control pretty-types QuickCheck
-         stm tasty tasty-discover tasty-hunit text time
+         filepath hostname HUnit lens monad-control QuickCheck stm tasty
+         tasty-discover tasty-hunit text time
        ];
        testToolDepends = [ tasty-discover ];
+       benchmarkHaskellDepends = [
+         base criterion deepseq extensible-effects text unliftio
+       ];
        description = "Message passing concurrency as extensible-effect";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -86559,8 +86984,8 @@ self: {
      }:
      mkDerivation {
        pname = "extra";
-       version = "1.7.8";
-       sha256 = "1sgd08h9p7ywmv08yd1h6z1bpf6pqpj1qn4v7vv7w4la86jmh2yg";
+       version = "1.7.9";
+       sha256 = "17fzmxwrv0w7inhq7kia36prc2nsx845r9v56sihqvr17fk2cvpn";
        libraryHaskellDepends = [
          base clock directory filepath process time unix
        ];
@@ -86741,17 +87166,25 @@ self: {
      }) {};
 
   "factor" = callPackage
-    ({ mkDerivation, arithmetic, base, opentheory-primitive, random }:
+    ({ mkDerivation, base, containers, parsec, pretty, QuickCheck
+     , random, time
+     }:
      mkDerivation {
        pname = "factor";
-       version = "1.0";
-       sha256 = "02fy4lnajdj0dqkz3bfpj6qzk34kjmjz6c0vidwc7kqqivhxldvh";
-       isLibrary = false;
+       version = "1.4";
+       sha256 = "013f1h796ngp21pm3kd318vw4ah42bv6sbhjl18szk3sik88vd6z";
+       isLibrary = true;
        isExecutable = true;
+       libraryHaskellDepends = [
+         base containers parsec pretty random time
+       ];
        executableHaskellDepends = [
-         arithmetic base opentheory-primitive random
+         base containers parsec pretty random time
+       ];
+       testHaskellDepends = [
+         base containers parsec pretty QuickCheck random time
        ];
-       description = "Factoring integers";
+       description = "Factoring integers and polynomials";
        license = stdenv.lib.licenses.mit;
      }) {};
 
@@ -86828,22 +87261,20 @@ self: {
      }) {};
 
   "fadno" = callPackage
-    ({ mkDerivation, base, comonad, containers, data-default, Decimal
-     , deepseq, event-list, fadno-braids, fadno-xml, hspec
-     , hspec-contrib, HUnit, lens, midi, mtl, process, safe, split, text
-     , unordered-containers, vector, xml
+    ({ mkDerivation, base, containers, data-default, Decimal
+     , event-list, fadno-xml, hspec, hspec-contrib, HUnit, lens, midi
+     , mtl, process, safe, text, unordered-containers, vector, xml
      }:
      mkDerivation {
        pname = "fadno";
-       version = "1.1.3";
-       sha256 = "0yd4dc6imcp9lf7m0q4ah5z6c47m83302wagps821n8285qvr6zc";
+       version = "1.1.8";
+       sha256 = "0f8lx1lg43665s56fwb3mawxjz8g1mrr33hz3rm47jcbb45k25jj";
        libraryHaskellDepends = [
-         base comonad containers data-default Decimal deepseq event-list
-         fadno-braids fadno-xml HUnit lens midi mtl process safe split text
-         unordered-containers vector xml
+         base containers data-default Decimal event-list fadno-xml HUnit
+         lens midi mtl process safe text unordered-containers vector xml
        ];
        testHaskellDepends = [
-         base containers hspec hspec-contrib HUnit lens
+         base containers fadno-xml hspec hspec-contrib HUnit lens
        ];
        description = "Minimal library for music generation and notation";
        license = stdenv.lib.licenses.bsd3;
@@ -86857,8 +87288,8 @@ self: {
      }:
      mkDerivation {
        pname = "fadno-braids";
-       version = "0.1.3";
-       sha256 = "021rm7kdpcgdch57pm9jr6hc220zn9d644wlsbv54z9ll5jj3mlg";
+       version = "0.1.5";
+       sha256 = "1lyxxnzc2y4iz1ydyqzm69rd1yjh3grcq8ji1rn9wqbwjbjimf9p";
        libraryHaskellDepends = [
          base containers data-default diagrams diagrams-lib
          diagrams-rasterific lens random
@@ -86874,8 +87305,8 @@ self: {
      }:
      mkDerivation {
        pname = "fadno-xml";
-       version = "1.1.3";
-       sha256 = "1kydl4nj4j0q4s3sq6r0l42f4ikxq7cdmzkcsavla0fcm0jvj359";
+       version = "1.2";
+       sha256 = "0s7d7ida5xj2118j0zwbrd19pxn8aqqqaxz62kyvybckmhz05h1g";
        libraryHaskellDepends = [
          base containers Decimal lens mtl parsec xml
        ];
@@ -87228,16 +87659,18 @@ self: {
      }) {};
 
   "fast-arithmetic" = callPackage
-    ({ mkDerivation, arithmoi, base, combinat, criterion, hgmp, hspec
-     , QuickCheck
+    ({ mkDerivation, arithmoi, base, combinat, criterion
+     , exact-combinatorics, hgmp, hspec, QuickCheck
      }:
      mkDerivation {
        pname = "fast-arithmetic";
-       version = "0.6.5.0";
-       sha256 = "02ccvk09fqp235bl3r8k234xnl6fmis7hkl34v4wmrwpb3f96hmh";
-       libraryHaskellDepends = [ base combinat hgmp ];
+       version = "0.6.5.1";
+       sha256 = "0yijbcp5918hnl32xvvpks652byad9zph901ab5bml3iy3a0n2pp";
+       libraryHaskellDepends = [ arithmoi base combinat hgmp ];
        testHaskellDepends = [ arithmoi base combinat hspec QuickCheck ];
-       benchmarkHaskellDepends = [ arithmoi base combinat criterion ];
+       benchmarkHaskellDepends = [
+         arithmoi base combinat criterion exact-combinatorics
+       ];
        doHaddock = false;
        description = "Fast functions on integers";
        license = stdenv.lib.licenses.bsd3;
@@ -88435,26 +88868,28 @@ self: {
      }) {};
 
   "fei-base" = callPackage
-    ({ mkDerivation, base, c2hs, c2hs-extra, constraints, directory
-     , filepath, haskell-src-exts, hslogger, mtl, mxnet
-     , optparse-applicative, repa, text, tuple-ops, vector
+    ({ mkDerivation, attoparsec, base, c2hs, constraints, deepseq
+     , haskell-src-exts, hslogger, lens, mxnet, optparse-applicative
+     , repa, rio, store, tuple-ops, vector
      }:
      mkDerivation {
        pname = "fei-base";
-       version = "0.2.0.0";
-       sha256 = "0blgzr1iy7d2cp370rankkldakkryysikh1rd039s7anq5l21rsg";
+       version = "1.0.0";
+       sha256 = "0lpf217v6sddg7w4lsqnpmyqih3sjsyqmdskxdds39dhylvhax71";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base c2hs-extra constraints repa tuple-ops vector
+         attoparsec base constraints deepseq lens repa rio store tuple-ops
+         vector
        ];
        librarySystemDepends = [ mxnet ];
        libraryToolDepends = [ c2hs ];
        executableHaskellDepends = [
-         base directory filepath haskell-src-exts hslogger mtl
-         optparse-applicative text
+         base deepseq haskell-src-exts hslogger lens optparse-applicative
+         rio tuple-ops
        ];
        executableSystemDepends = [ mxnet ];
+       executableToolDepends = [ c2hs ];
        description = "FFI to MXNet";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -88462,28 +88897,27 @@ self: {
      }) {inherit (pkgs) mxnet;};
 
   "fei-cocoapi" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, bytestring, c2hs, conduit
-     , containers, criterion, directory, exceptions, fei-base
-     , fei-dataiter, filepath, JuicyPixels, JuicyPixels-extra
-     , JuicyPixels-repa, lens, mtl, random-fu, repa, storable-tuple
-     , store, time, transformers-base, vector
+    ({ mkDerivation, aeson, attoparsec, base, c2hs, colour, conduit
+     , conduit-concurrent-map, FontyFruity, formatting, hip, JuicyPixels
+     , lens, optparse-applicative, palette, random-fu, Rasterific, repa
+     , resourcet, rio, storable-tuple, store, time, transformers-base
+     , unliftio-core, vector
      }:
      mkDerivation {
        pname = "fei-cocoapi";
-       version = "0.2.0";
-       sha256 = "0sk3h94vlykq6x4nk25scb7jwhgi9rlk66xhy09wbz1a1n398j5z";
+       version = "1.0.0";
+       sha256 = "1zn9dz0k3py0k85nhbp3hj3nzyggygxpqa5wcf1b7jgm0hagw8kc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson attoparsec base bytestring conduit containers directory
-         exceptions fei-base fei-dataiter filepath JuicyPixels
-         JuicyPixels-extra JuicyPixels-repa lens mtl random-fu repa
-         storable-tuple store time transformers-base vector
+         aeson attoparsec base conduit conduit-concurrent-map hip lens
+         random-fu repa resourcet rio storable-tuple store time
+         transformers-base unliftio-core vector
        ];
        libraryToolDepends = [ c2hs ];
        executableHaskellDepends = [
-         aeson base bytestring containers criterion JuicyPixels
-         JuicyPixels-repa lens repa store vector
+         aeson base colour FontyFruity formatting hip JuicyPixels lens
+         optparse-applicative palette Rasterific repa rio store
        ];
        description = "Cocodataset with cocoapi";
        license = stdenv.lib.licenses.bsd3;
@@ -88519,22 +88953,52 @@ self: {
        broken = true;
      }) {inherit (pkgs) mxnet;};
 
+  "fei-datasets" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, conduit
+     , conduit-concurrent-map, criterion, fei-base, fei-cocoapi, fei-nn
+     , FontyFruity, hexpat, hip, JuicyPixels, JuicyPixels-extra
+     , JuicyPixels-repa, lens, optparse-applicative, random-fu
+     , random-source, Rasterific, repa, resourcet, rio, stm-conduit
+     , storable-tuple, store, transformers-base, vector
+     }:
+     mkDerivation {
+       pname = "fei-datasets";
+       version = "1.0.0";
+       sha256 = "177ny2z5psj4f61v4k7ijaxbawxs6ba18ax05f8fllfiyyx440wf";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson attoparsec base conduit conduit-concurrent-map fei-base
+         fei-cocoapi fei-nn hexpat hip lens random-fu random-source repa
+         resourcet rio storable-tuple store transformers-base vector
+       ];
+       executableHaskellDepends = [
+         attoparsec base conduit criterion fei-base fei-nn FontyFruity hip
+         JuicyPixels JuicyPixels-extra JuicyPixels-repa lens
+         optparse-applicative random-source Rasterific repa resourcet rio
+         stm-conduit vector
+       ];
+       description = "Some datasets";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "fei-examples" = callPackage
-    ({ mkDerivation, attoparsec, base, conduit, directory, fei-base
-     , fei-cocoapi, fei-dataiter, fei-nn, lens, mtl
-     , optparse-applicative, random-fu, repa, text, unordered-containers
-     , vector
+    ({ mkDerivation, attoparsec, base, conduit, fei-base, fei-cocoapi
+     , fei-datasets, fei-modelzoo, fei-nn, formatting, JuicyPixels, lens
+     , optparse-applicative, random-source, repa, resourcet, rio, store
      }:
      mkDerivation {
        pname = "fei-examples";
-       version = "0.3.0";
-       sha256 = "1yplcfls0c22h1808ky64ifdxswq60dq5l0qw0kmg452517xb2yx";
+       version = "1.0.0";
+       sha256 = "0jgv67rx8vdqri4zsl8z0y62g1xh02l4rq29v1h6jj2xpw9b87a6";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         attoparsec base conduit directory fei-base fei-cocoapi fei-dataiter
-         fei-nn lens mtl optparse-applicative random-fu repa text
-         unordered-containers vector
+         attoparsec base conduit fei-base fei-cocoapi fei-datasets
+         fei-modelzoo fei-nn formatting JuicyPixels lens
+         optparse-applicative random-source repa resourcet rio store
        ];
        description = "fei examples";
        license = stdenv.lib.licenses.bsd3;
@@ -88542,26 +89006,40 @@ self: {
        broken = true;
      }) {};
 
+  "fei-modelzoo" = callPackage
+    ({ mkDerivation, attoparsec, base, fei-base, fei-nn, formatting
+     , lens, random-fu, repa, rio, text, transformers-base, vector
+     }:
+     mkDerivation {
+       pname = "fei-modelzoo";
+       version = "1.0.0";
+       sha256 = "0ly8lc7dpjs6i5idyi16ghkva1nhm6d1lp2zgyl3mwsapz2mn1ga";
+       libraryHaskellDepends = [
+         attoparsec base fei-base fei-nn formatting lens random-fu repa rio
+         text transformers-base vector
+       ];
+       description = "A collection of standard models";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "fei-nn" = callPackage
-    ({ mkDerivation, aeson, attoparsec, attoparsec-binary, base
-     , bytestring, containers, exceptions, fei-base, ghc-prim, graphviz
-     , lens, mmorph, mtl, resourcet, template-haskell, text, time
-     , transformers-base, unordered-containers, vector
+    ({ mkDerivation, aeson, base, conduit, conduit-combinators
+     , containers, fei-base, FontyFruity, formatting, graphviz
+     , JuicyPixels, lens, Rasterific, repa, resourcet, rio, stm-conduit
+     , streaming, template-haskell, time, transformers-base
+     , type-combinators, uuid, wl-pprint-text
      }:
      mkDerivation {
        pname = "fei-nn";
-       version = "0.2.0";
-       sha256 = "08zdp0h87cddrwb7wrbk341k7v8hhriqp1jhgf6nmkjgqlwspk0m";
-       isLibrary = true;
-       isExecutable = true;
+       version = "1.0.0";
+       sha256 = "03j9j270qcbdylkxh6z7jkyzdm3mjh8p33a63igqcgvcm5r27ipl";
        libraryHaskellDepends = [
-         aeson base bytestring containers exceptions fei-base graphviz lens
-         mtl resourcet template-haskell text time transformers-base
-         unordered-containers vector
-       ];
-       executableHaskellDepends = [
-         attoparsec attoparsec-binary base bytestring exceptions fei-base
-         ghc-prim mmorph mtl resourcet unordered-containers vector
+         aeson base conduit conduit-combinators containers fei-base
+         FontyFruity formatting graphviz JuicyPixels lens Rasterific repa
+         resourcet rio stm-conduit streaming template-haskell time
+         transformers-base type-combinators uuid wl-pprint-text
        ];
        description = "Train a neural network with MXNet in Haskell";
        license = stdenv.lib.licenses.bsd3;
@@ -89582,6 +90060,17 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "filters-basic" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "filters-basic";
+       version = "0.1.1.0";
+       sha256 = "09q6fb8cv7di67wb8zhky8qpbwivzax59xik1zbcjf3sp465a337";
+       libraryHaskellDepends = [ base ];
+       description = "Allows to change the structure of the function output";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "filtrable" = callPackage
     ({ mkDerivation, base, transformers }:
      mkDerivation {
@@ -90809,8 +91298,6 @@ self: {
        ];
        description = "Principled and efficient bit-oriented binary serialization";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "flat-maybe" = callPackage
@@ -91872,8 +92359,8 @@ self: {
      }:
      mkDerivation {
        pname = "focus";
-       version = "1.0.1.4";
-       sha256 = "1knaiwnxcl2hrx4b3k954rd5v995gxa48db1z9mp58s646ymlmfl";
+       version = "1.0.2";
+       sha256 = "09d85g6knv3wcn8ib5mpbpjn9xw1pbl3a6qlfy1lrzypv9lrv0ld";
        libraryHaskellDepends = [ base transformers ];
        testHaskellDepends = [
          QuickCheck quickcheck-instances rerebase tasty tasty-hunit
@@ -93014,6 +93501,25 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "fp-ieee" = callPackage
+    ({ mkDerivation, base, decimal-arithmetic, doctest, gauge, hspec
+     , hspec-core, integer-gmp, integer-logarithms, QuickCheck, random
+     }:
+     mkDerivation {
+       pname = "fp-ieee";
+       version = "0.1.0";
+       sha256 = "11av4rm7hwgm8xzflmcm7nmq2ynwfbb3dcyfx6hd75wwm2l1iz98";
+       libraryHaskellDepends = [ base integer-gmp integer-logarithms ];
+       testHaskellDepends = [
+         base decimal-arithmetic doctest hspec hspec-core integer-logarithms
+         QuickCheck random
+       ];
+       benchmarkHaskellDepends = [ base gauge ];
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "fpco-api" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, base64-bytestring
      , blaze-html, bytestring, cereal, containers, data-default, deepseq
@@ -93356,20 +93862,41 @@ self: {
 
   "free" = callPackage
     ({ mkDerivation, base, comonad, containers, distributive
-     , exceptions, mtl, profunctors, semigroupoids, template-haskell
-     , th-abstraction, transformers, transformers-base
+     , exceptions, indexed-traversable, mtl, profunctors, semigroupoids
+     , template-haskell, th-abstraction, transformers, transformers-base
      }:
      mkDerivation {
        pname = "free";
-       version = "5.1.4";
-       sha256 = "0nid1vpf4c4pwxa5x7wyb2h378q0jf57zh14gkkhrj7bzc5qnprc";
+       version = "5.1.5";
+       sha256 = "0rpnimi3iyr6n9q2ny365mp1l5rjjys15aggcikgnrfn0d656nw6";
+       revision = "1";
+       editedCabalFile = "1ac4f5n3spmxy9ajlikn9ffswg9l59s7kzwpgcpz8vkc2qf959g1";
        libraryHaskellDepends = [
-         base comonad containers distributive exceptions mtl profunctors
-         semigroupoids template-haskell th-abstraction transformers
-         transformers-base
+         base comonad containers distributive exceptions indexed-traversable
+         mtl profunctors semigroupoids template-haskell th-abstraction
+         transformers transformers-base
+       ];
+       description = "Monads for free";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "free_5_1_6" = 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";
+       libraryHaskellDepends = [
+         base comonad containers distributive exceptions indexed-traversable
+         mtl profunctors semigroupoids template-haskell th-abstraction
+         transformers transformers-base
        ];
        description = "Monads for free";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "free-algebras" = callPackage
@@ -95375,8 +95902,8 @@ self: {
      }:
      mkDerivation {
        pname = "fused-effects";
-       version = "1.1.0.0";
-       sha256 = "0ns1h03skgywfm3i5748q9hxvla5769p7hb72zw8yhdfpgwh9rlx";
+       version = "1.1.1.0";
+       sha256 = "0z83iw3bysfk13pda44lasgyg3nlnrxv6bz1f9mpdyymq3vnb9d7";
        libraryHaskellDepends = [ base transformers ];
        testHaskellDepends = [
          base containers hedgehog hedgehog-fn inspection-testing tasty
@@ -95584,8 +96111,8 @@ self: {
      }:
      mkDerivation {
        pname = "futhark";
-       version = "0.18.3";
-       sha256 = "15x528wskfl158909y0qapq72084kq4rjbpp2yd96gh2ycgawz7b";
+       version = "0.18.5";
+       sha256 = "1v81b2snf5famnm8fx3kbqcsrqb80kb29yk98lvljiflnq5bkmb4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -97261,6 +97788,17 @@ self: {
        broken = true;
      }) {};
 
+  "generic-enumeration" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "generic-enumeration";
+       version = "0.1.0.0";
+       sha256 = "1wwhbn3hpanr5ya1dc8spaf1r38sc1hglpz3d6mqizlna0p9a68l";
+       libraryHaskellDepends = [ base ];
+       description = "Generically derived enumerations";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "generic-env" = callPackage
     ({ mkDerivation, base, containers, text }:
      mkDerivation {
@@ -98593,7 +99131,7 @@ self: {
      }) {};
 
   "geos" = callPackage
-    ({ mkDerivation, base, bytestring, cassava, geos_c, hspec, mtl
+    ({ mkDerivation, base, bytestring, cassava, geos, hspec, mtl
      , transformers, vector
      }:
      mkDerivation {
@@ -98603,16 +99141,14 @@ self: {
        libraryHaskellDepends = [
          base bytestring mtl transformers vector
        ];
-       librarySystemDepends = [ geos_c ];
+       librarySystemDepends = [ geos ];
        testHaskellDepends = [
          base bytestring cassava hspec mtl transformers vector
        ];
-       testSystemDepends = [ geos_c ];
+       testSystemDepends = [ geos ];
        description = "Bindings for GEOS";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
-     }) {geos_c = null;};
+     }) {inherit (pkgs) geos;};
 
   "getemx" = callPackage
     ({ mkDerivation, base, curl, directory, filepath, haskell98, hxt
@@ -98766,7 +99302,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "ghc_8_10_1" = callPackage
+  "ghc_8_10_2" = callPackage
     ({ mkDerivation, array, base, binary, bytestring, containers
      , deepseq, directory, filepath, ghc-boot, ghc-boot-th, ghc-heap
      , ghci, hpc, process, template-haskell, terminfo, time
@@ -98774,8 +99310,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc";
-       version = "8.10.1";
-       sha256 = "0j5cmb0bqndmrgr92zysa6yiccammdr2pgm9swwkipm5jz4g6d5s";
+       version = "8.10.2";
+       sha256 = "0xh6ll9x8iv74cv5l6q9q3qwm0qw0qkfxzh7dj3b6yzh10b63g8z";
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq directory filepath
          ghc-boot ghc-boot-th ghc-heap ghci hpc process template-haskell
@@ -98816,12 +99352,12 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "ghc-boot-th_8_10_1" = callPackage
+  "ghc-boot-th_8_10_2" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "ghc-boot-th";
-       version = "8.10.1";
-       sha256 = "0vhhmsd32p7zn9vhpv4d0k0b55n2dyhzy42xblndrma617kz8gli";
+       version = "8.10.2";
+       sha256 = "1jic3l319b02f8b4r87c48645xhn5784vhgz2mp7d0zi2srrsfcz";
        libraryHaskellDepends = [ base ];
        description = "Shared functionality between GHC and the `template-haskell` library";
        license = stdenv.lib.licenses.bsd3;
@@ -99051,8 +99587,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-events";
-       version = "0.14.0";
-       sha256 = "1k7ky564x8s596axh0x006y4avr4dcb1h6nsvh8pbzj1ffi68sk1";
+       version = "0.15.1";
+       sha256 = "16kh64z60353m6bj9lmv9yzlvydgmi66hm8gc4b22bs69xyh2pxz";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -99276,8 +99812,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-lib";
-       version = "8.10.2.20200916";
-       sha256 = "0yarxqbl7njqhfycrdz4lr6m04wqhrlsgb9vcq6gbmlizswwxr6g";
+       version = "8.10.3.20201220";
+       sha256 = "04df1j997m48vjxkfcp07d9vsxgpqi315zvfri1y1qxdg5g4vlmb";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq directory filepath
@@ -99295,8 +99831,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-lib-parser";
-       version = "8.10.2.20200916";
-       sha256 = "0azfy14w268by4ydaarjdw7awbd44pgqg03zykzfg7iabyzr2dfk";
+       version = "8.10.3.20201220";
+       sha256 = "0k68w2v5x68sxqcd7xm94khmr4gqxbj4jdsaac3m1wcy66bjriir";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq directory filepath
@@ -99314,14 +99850,14 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-lib-parser-ex";
-       version = "8.10.0.16";
-       sha256 = "1kqff62ml38hxwfnfq7ni0z65b3d3l7xqa5c5lxf3kzm9h7bdwb8";
+       version = "8.10.0.17";
+       sha256 = "16qbyvczncdb25g7mjdvxsn7m3j98649jy1pnv90vmyrn8l4m897";
        libraryHaskellDepends = [
          base bytestring containers ghc ghc-boot ghc-boot-th uniplate
        ];
        testHaskellDepends = [
          base directory extra filepath ghc ghc-boot ghc-boot-th tasty
-         tasty-hunit
+         tasty-hunit uniplate
        ];
        description = "Algorithms on GHC parse trees";
        license = stdenv.lib.licenses.bsd3;
@@ -99837,6 +100373,18 @@ self: {
        license = stdenv.lib.licenses.bsd2;
      }) {};
 
+  "ghc-tcplugins-extra_0_4_1" = callPackage
+    ({ mkDerivation, base, ghc }:
+     mkDerivation {
+       pname = "ghc-tcplugins-extra";
+       version = "0.4.1";
+       sha256 = "0v9y444gydfyk56y7adpabd633yv1d8jmddvgg272n8jpdpagw67";
+       libraryHaskellDepends = [ base ghc ];
+       description = "Utilities for writing GHC type-checker plugins";
+       license = stdenv.lib.licenses.bsd2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "ghc-time-alloc-prof" = callPackage
     ({ mkDerivation, attoparsec, base, containers, directory, filepath
      , process, tasty, tasty-hunit, temporary, text, time
@@ -99904,6 +100452,30 @@ self: {
        license = stdenv.lib.licenses.bsd2;
      }) {};
 
+  "ghc-typelits-extra_0_4_2" = callPackage
+    ({ mkDerivation, base, containers, ghc, ghc-prim
+     , ghc-tcplugins-extra, ghc-typelits-knownnat
+     , ghc-typelits-natnormalise, integer-gmp, tasty, tasty-hunit
+     , transformers
+     }:
+     mkDerivation {
+       pname = "ghc-typelits-extra";
+       version = "0.4.2";
+       sha256 = "0xpy52rib25iz5h89nqlj27isjk57pjbhlvlfam5q0g3x92572h4";
+       libraryHaskellDepends = [
+         base containers ghc ghc-prim ghc-tcplugins-extra
+         ghc-typelits-knownnat ghc-typelits-natnormalise integer-gmp
+         transformers
+       ];
+       testHaskellDepends = [
+         base ghc-typelits-knownnat ghc-typelits-natnormalise tasty
+         tasty-hunit
+       ];
+       description = "Additional type-level operations on GHC.TypeLits.Nat";
+       license = stdenv.lib.licenses.bsd2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "ghc-typelits-knownnat" = callPackage
     ({ mkDerivation, base, ghc, ghc-prim, ghc-tcplugins-extra
      , ghc-typelits-natnormalise, tasty, tasty-hunit, tasty-quickcheck
@@ -99924,6 +100496,27 @@ self: {
        license = stdenv.lib.licenses.bsd2;
      }) {};
 
+  "ghc-typelits-knownnat_0_7_4" = callPackage
+    ({ mkDerivation, base, ghc, ghc-prim, ghc-tcplugins-extra
+     , ghc-typelits-natnormalise, tasty, tasty-hunit, tasty-quickcheck
+     , template-haskell, transformers
+     }:
+     mkDerivation {
+       pname = "ghc-typelits-knownnat";
+       version = "0.7.4";
+       sha256 = "1i3kwq8i3p4i2jmmq8irycs0z3g69qy4i5smh14kbcz3pl35x71l";
+       libraryHaskellDepends = [
+         base ghc ghc-prim ghc-tcplugins-extra ghc-typelits-natnormalise
+         template-haskell transformers
+       ];
+       testHaskellDepends = [
+         base ghc-typelits-natnormalise tasty tasty-hunit tasty-quickcheck
+       ];
+       description = "Derive KnownNat constraints from other KnownNat constraints";
+       license = stdenv.lib.licenses.bsd2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "ghc-typelits-natnormalise" = callPackage
     ({ mkDerivation, base, containers, ghc, ghc-tcplugins-extra
      , integer-gmp, syb, tasty, tasty-hunit, template-haskell
@@ -99942,6 +100535,23 @@ self: {
        license = stdenv.lib.licenses.bsd2;
      }) {};
 
+  "ghc-typelits-natnormalise_0_7_3" = callPackage
+    ({ mkDerivation, base, containers, ghc, ghc-tcplugins-extra
+     , integer-gmp, tasty, tasty-hunit, template-haskell, transformers
+     }:
+     mkDerivation {
+       pname = "ghc-typelits-natnormalise";
+       version = "0.7.3";
+       sha256 = "14lynjsmiml19wma9fk2bbhfz43wzbbyvrxp8xpch2lkh5zkfkny";
+       libraryHaskellDepends = [
+         base containers ghc ghc-tcplugins-extra integer-gmp transformers
+       ];
+       testHaskellDepends = [ base tasty tasty-hunit template-haskell ];
+       description = "GHC typechecker plugin for types of kind GHC.TypeLits.Nat";
+       license = stdenv.lib.licenses.bsd2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "ghc-typelits-presburger" = callPackage
     ({ mkDerivation, base, containers, ghc, ghc-tcplugins-extra, mtl
      , pretty, reflection, syb, transformers
@@ -100007,15 +100617,15 @@ self: {
        license = stdenv.lib.licenses.bsd2;
      }) {};
 
-  "ghci_8_10_1" = callPackage
+  "ghci_8_10_2" = callPackage
     ({ mkDerivation, array, base, binary, bytestring, containers
      , deepseq, filepath, ghc-boot, ghc-boot-th, ghc-heap
      , template-haskell, transformers, unix
      }:
      mkDerivation {
        pname = "ghci";
-       version = "8.10.1";
-       sha256 = "14r7h3nj61mhap15r3cq6824b6fib9krj6b6qa77bl7jqdqpfxsq";
+       version = "8.10.2";
+       sha256 = "1pn6d400mlxgfsskzmcgjxkka9wrma95v0vpgc44gaha5cdsrhh7";
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq filepath ghc-boot
          ghc-boot-th ghc-heap template-haskell transformers unix
@@ -100204,42 +100814,42 @@ self: {
 
   "ghcide" = callPackage
     ({ mkDerivation, aeson, array, async, base, base16-bytestring
-     , binary, bytestring, Chart, Chart-diagrams, containers
-     , cryptohash-sha1, data-default, deepseq, diagrams, diagrams-svg
-     , directory, extra, filepath, fingertree, fuzzy, ghc, ghc-boot
-     , ghc-boot-th, ghc-check, ghc-paths, ghc-typelits-knownnat, gitrev
-     , Glob, haddock-library, hashable, haskell-lsp, haskell-lsp-types
-     , hie-bios, hie-compat, hslogger, implicit-hie-cradle, lens
-     , lsp-test, mtl, network-uri, optparse-applicative, prettyprinter
+     , binary, bytestring, case-insensitive, containers, cryptohash-sha1
+     , data-default, deepseq, directory, extra, filepath, fingertree
+     , fuzzy, ghc, ghc-boot, ghc-boot-th, ghc-check, ghc-paths
+     , ghc-typelits-knownnat, gitrev, Glob, haddock-library, hashable
+     , haskell-lsp, haskell-lsp-types, heapsize, hie-bios, hie-compat
+     , hslogger, implicit-hie-cradle, lens, lsp-test, mtl, network-uri
+     , opentelemetry, optparse-applicative, parallel, prettyprinter
      , prettyprinter-ansi-terminal, process, QuickCheck
      , quickcheck-instances, record-dot-preprocessor, record-hasfield
      , regex-tdfa, rope-utf16-splay, safe, safe-exceptions, shake
-     , sorted-list, stm, syb, tasty, tasty-expected-failure, tasty-hunit
-     , tasty-quickcheck, tasty-rerun, text, time, transformers, unix
-     , unordered-containers, utf8-string, yaml
+     , shake-bench, sorted-list, stm, syb, tasty, tasty-expected-failure
+     , tasty-hunit, tasty-quickcheck, tasty-rerun, text, time
+     , transformers, unix, unordered-containers, utf8-string, yaml
      }:
      mkDerivation {
        pname = "ghcide";
-       version = "0.5.0";
-       sha256 = "1l3h12jksxh1ds68zkslwmssfsdspxvyp0gqr5n8hgkymr4p896a";
+       version = "0.6.0.2";
+       sha256 = "0dd1vzz9vlvg790nkmgm5zbn0sc7msgmvfma7zkarf4zgqx1hmlg";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson array async base base16-bytestring binary bytestring
-         containers cryptohash-sha1 data-default deepseq directory extra
-         filepath fingertree fuzzy ghc ghc-boot ghc-boot-th ghc-check
-         ghc-paths Glob haddock-library hashable haskell-lsp
-         haskell-lsp-types hie-bios hie-compat hslogger implicit-hie-cradle
-         mtl network-uri prettyprinter prettyprinter-ansi-terminal
-         regex-tdfa rope-utf16-splay safe safe-exceptions shake sorted-list
-         stm syb text time transformers unix unordered-containers
-         utf8-string
+         case-insensitive containers cryptohash-sha1 data-default deepseq
+         directory extra filepath fingertree fuzzy ghc ghc-boot ghc-boot-th
+         ghc-check ghc-paths Glob haddock-library hashable haskell-lsp
+         haskell-lsp-types heapsize hie-bios hie-compat hslogger
+         implicit-hie-cradle mtl network-uri opentelemetry parallel
+         prettyprinter prettyprinter-ansi-terminal regex-tdfa
+         rope-utf16-splay safe safe-exceptions shake sorted-list stm syb
+         text time transformers unix unordered-containers utf8-string
        ];
        executableHaskellDepends = [
          aeson base bytestring containers data-default directory extra
-         filepath gitrev hashable haskell-lsp haskell-lsp-types hie-bios
-         lens lsp-test optparse-applicative process safe-exceptions shake
-         text unordered-containers
+         filepath gitrev hashable haskell-lsp haskell-lsp-types heapsize
+         hie-bios lens lsp-test optparse-applicative process safe-exceptions
+         shake text unordered-containers
        ];
        testHaskellDepends = [
          aeson base binary bytestring containers directory extra filepath
@@ -100251,13 +100861,14 @@ self: {
          text
        ];
        benchmarkHaskellDepends = [
-         aeson base Chart Chart-diagrams diagrams diagrams-svg directory
-         extra filepath shake text yaml
+         aeson base directory filepath shake shake-bench text yaml
        ];
        description = "The core of an IDE";
        license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
        maintainers = with stdenv.lib.maintainers; [ maralorn ];
-     }) {};
+       broken = true;
+     }) {shake-bench = null;};
 
   "ghcjs-ajax" = callPackage
     ({ mkDerivation, aeson, base, http-types, text }:
@@ -101506,7 +102117,7 @@ self: {
   "gi-poppler" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-cairo
      , gi-gio, gi-glib, gi-gobject, haskell-gi, haskell-gi-base
-     , haskell-gi-overloading, poppler, text, transformers
+     , haskell-gi-overloading, poppler_gi, text, transformers
      }:
      mkDerivation {
        pname = "gi-poppler";
@@ -101519,12 +102130,12 @@ self: {
          base bytestring containers gi-cairo gi-gio gi-glib gi-gobject
          haskell-gi haskell-gi-base haskell-gi-overloading text transformers
        ];
-       libraryPkgconfigDepends = [ poppler ];
+       libraryPkgconfigDepends = [ poppler_gi ];
        description = "Poppler bindings";
        license = stdenv.lib.licenses.lgpl21;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
-     }) {inherit (pkgs) poppler;};
+     }) {inherit (pkgs) poppler_gi;};
 
   "gi-secret" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-gio
@@ -101977,8 +102588,8 @@ self: {
      }:
      mkDerivation {
        pname = "git-annex";
-       version = "8.20201127";
-       sha256 = "0n9m5ffgbzms0nh9dskrc7vjgwwwi9f9gxyh498wnspf96729zz7";
+       version = "8.20201129";
+       sha256 = "10fxl5215x0hqhmwd387xpzgvz4w190lylwr0rihxhy5mwdvf943";
        configureFlags = [
          "-fassistant" "-f-benchmark" "-fdbus" "-f-debuglocks" "-fmagicmime"
          "-fnetworkbsd" "-fpairing" "-fproduction" "-fs3" "-ftorrentparser"
@@ -102837,8 +103448,6 @@ self: {
        ];
        description = "Wiki using happstack, git or darcs, and pandoc";
        license = "GPL";
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "gitlab-api" = callPackage
@@ -102861,17 +103470,17 @@ self: {
 
   "gitlab-haskell" = callPackage
     ({ mkDerivation, aeson, base, bytestring, connection, http-conduit
-     , http-types, tasty, tasty-hunit, text, time, transformers
-     , unliftio, unliftio-core
+     , http-types, tasty, tasty-hunit, temporary, text, time
+     , transformers, unix, unliftio, unliftio-core
      }:
      mkDerivation {
        pname = "gitlab-haskell";
-       version = "0.2.3";
-       sha256 = "0nsb7rkqflss6bhdvbjbgg2akwavz777icfkpfy97ix9ahq0i1r8";
+       version = "0.2.4";
+       sha256 = "1p2sgxnr5xgh0wz3q5vf6xqy827nrplfbcpfwa6kgqxiqgsfsdv2";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         aeson base bytestring connection http-conduit http-types text time
-         transformers unliftio unliftio-core
+         aeson base bytestring connection http-conduit http-types temporary
+         text time transformers unix unliftio unliftio-core
        ];
        testHaskellDepends = [ aeson base bytestring tasty tasty-hunit ];
        description = "A Haskell library for the GitLab web API";
@@ -103770,8 +104379,8 @@ self: {
      }:
      mkDerivation {
        pname = "gloss-export";
-       version = "0.1.0.2";
-       sha256 = "0i2x1bbygacrgvi9rvmpq0ddi24vh8dza6hisvif708a8yh6plpr";
+       version = "0.1.0.3";
+       sha256 = "1m1fxv516kfqx4y684xcd1x0vvzirgv1acawiam5nm26hqvxcf85";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -108453,8 +109062,8 @@ self: {
      }:
      mkDerivation {
        pname = "graphula";
-       version = "2.0.0.1";
-       sha256 = "1sd89mkbqflyzvsszmiddcssnkjn27dgh5dpp082xqla4b7grhml";
+       version = "2.0.0.2";
+       sha256 = "1fqrjfr9pl9619fhrkl3khpb2lg3svzp644hvzn0bpcnxqj5p41z";
        libraryHaskellDepends = [
          base containers directory generics-eot HUnit mtl persistent
          QuickCheck random semigroups temporary text transformers unliftio
@@ -108463,8 +109072,8 @@ self: {
        testHaskellDepends = [
          aeson base bytestring containers hspec http-api-data markdown-unlit
          monad-logger path-pieces persistent persistent-sqlite
-         persistent-template QuickCheck resourcet semigroups text
-         transformers unliftio-core uuid
+         persistent-template QuickCheck resourcet text transformers
+         unliftio-core uuid
        ];
        testToolDepends = [ markdown-unlit ];
        description = "A declarative library for describing dependencies between data";
@@ -108678,8 +109287,8 @@ self: {
      }:
      mkDerivation {
        pname = "greenclip";
-       version = "3.3.0";
-       sha256 = "02w84wmkih9j9iil9ilwb77qkbvfa6nhllavrcj6rgb7zp264w84";
+       version = "3.4.0";
+       sha256 = "0763nnh7k4blkamlswnapwxyqfn1l0g6ibpz7k1w2w2asj7a3q98";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -108689,8 +109298,6 @@ self: {
        executablePkgconfigDepends = [ libXau xcb xdmcp xlibsWrapper ];
        description = "Simple clipboard manager to be integrated with rofi";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs.xorg) libXau; xcb = null; xdmcp = null; 
          inherit (pkgs) xlibsWrapper;};
 
@@ -108785,8 +109392,8 @@ self: {
      }:
      mkDerivation {
        pname = "greskell";
-       version = "1.1.0.3";
-       sha256 = "1q3m4m994vmfk80szphfd74vzfq6zp678bdla6v4siwqjskagyn3";
+       version = "1.2.0.0";
+       sha256 = "0rljpnq690jxqlkbp7ksx5i91r2hrmqvppp5s6sgp373sw9kzkwb";
        libraryHaskellDepends = [
          aeson base exceptions greskell-core hashable semigroups text
          transformers unordered-containers vector
@@ -108827,8 +109434,8 @@ self: {
      }:
      mkDerivation {
        pname = "greskell-websocket";
-       version = "0.1.2.4";
-       sha256 = "1w5867pdb07jlms3gddx8n3ds94qp4yq1yxcy880vcww2gyb4jda";
+       version = "0.1.2.5";
+       sha256 = "0ybrfr4jj2bm8bdi1yr1j1nvfws64yi54gji4mrw46vrpqnsbbn0";
        libraryHaskellDepends = [
          aeson async base base64-bytestring bytestring greskell-core
          hashtables safe-exceptions stm text unordered-containers uuid
@@ -109220,6 +109827,21 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "group-theory" = callPackage
+    ({ mkDerivation, base, Cabal, cabal-doctest, containers, doctest
+     , groups
+     }:
+     mkDerivation {
+       pname = "group-theory";
+       version = "0.2.0.0";
+       sha256 = "0giwyvki83ndxn9vyfzi5fkz23c95zv5x09ya1in4i8318f8d7az";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [ base containers groups ];
+       testHaskellDepends = [ base doctest ];
+       description = "The theory of groups";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "group-with" = callPackage
     ({ mkDerivation, base, Cabal, containers, hspec, hspec-expectations
      , QuickCheck
@@ -109299,8 +109921,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "groups";
-       version = "0.5";
-       sha256 = "1ivz03k5bk6d72bibn8jyq4wkivkyakbmvbrp270b33282a4lkpc";
+       version = "0.5.2";
+       sha256 = "0ghabk9r3pqccwfshy80p460awv0niyfi3nirg5bqnxm923c4njn";
        libraryHaskellDepends = [ base ];
        description = "Groups";
        license = stdenv.lib.licenses.bsd3;
@@ -109319,6 +109941,25 @@ self: {
        broken = true;
      }) {};
 
+  "grow-vector" = callPackage
+    ({ mkDerivation, base, primitive, quickcheck-instances, tasty
+     , tasty-discover, tasty-hspec, tasty-quickcheck, vector
+     }:
+     mkDerivation {
+       pname = "grow-vector";
+       version = "0.1.3.0";
+       sha256 = "13b75yghy6nksga98wn8gc9b2198g4pqrm52hrldryyf4v83zadg";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [ base primitive vector ];
+       testHaskellDepends = [
+         base primitive quickcheck-instances tasty tasty-discover
+         tasty-hspec tasty-quickcheck
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "Mutable vector with efficient appends";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "growler" = callPackage
     ({ mkDerivation, aeson, base, blaze-builder, bytestring
      , case-insensitive, either, http-types, lens, monad-control, mtl
@@ -111820,31 +112461,33 @@ self: {
      , cryptohash-sha256, deepseq, directory, doctest, ed25519
      , extensible-exceptions, filepath, ghc-prim, hashable, hspec
      , hspec-discover, HTTP, lukko, mtl, network, network-uri
-     , old-locale, parsec, pretty, process, QuickCheck, random, split
-     , stm, tar, template-haskell, text, time, transformers, unix, xml
-     , zlib
+     , old-locale, parallel, parsec, pretty, process, QuickCheck, random
+     , split, stm, tar, template-haskell, text, time, transformers, unix
+     , xml, zlib
      }:
      mkDerivation {
        pname = "hackport";
-       version = "0.6.6";
-       sha256 = "0cdwcrk8cqfbfi2kg074zmiq3j5fv3790inwc4hxwhrhv34hz437";
+       version = "0.6.7";
+       sha256 = "1n7njjw7mc7c460zy3gfdk5x5xbmvna5f6ivc3qakabsh7n1l5d1";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
          array async base base16-bytestring base64-bytestring binary
          bytestring containers cryptohash-sha256 deepseq directory ed25519
          extensible-exceptions filepath ghc-prim hashable HTTP lukko mtl
-         network network-uri old-locale parsec pretty process random split
-         stm tar template-haskell text time transformers unix xml zlib
+         network network-uri old-locale parallel parsec pretty process
+         random split stm tar template-haskell text time transformers unix
+         xml zlib
        ];
        testHaskellDepends = [
          array base binary bytestring containers deepseq directory doctest
-         extensible-exceptions filepath hspec mtl parsec pretty process
-         QuickCheck split template-haskell text time transformers unix xml
+         extensible-exceptions filepath hspec mtl network-uri parsec pretty
+         process QuickCheck split template-haskell text time transformers
+         unix xml
        ];
        testToolDepends = [ hspec-discover ];
        description = "Hackage and Portage integration tool";
-       license = stdenv.lib.licenses.gpl3;
+       license = "GPL";
      }) {};
 
   "hactor" = callPackage
@@ -112817,6 +113460,8 @@ self: {
        pname = "hakyll-convert";
        version = "0.3.0.3";
        sha256 = "0i5g4xs0az8znisl8vm60r3m2y3s9dhh8cdb0bl8c5ikqcrlscjf";
+       revision = "1";
+       editedCabalFile = "1qp2lr6pq6xiw5g7srr2bkg4nj7zrywgrdhly2alk91ix0vxqrmp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -112926,8 +113571,8 @@ self: {
      }:
      mkDerivation {
        pname = "hakyll-images";
-       version = "1.0.0";
-       sha256 = "0433jha6rnw4c80igx6hka9a943b9qimscyda93mgn7v7pakw6l2";
+       version = "1.0.1";
+       sha256 = "1fbwg37899m82y0gskk9wsif8bc9c3j4iznyqj7v54m5y0hxlhc0";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base binary bytestring hakyll JuicyPixels JuicyPixels-extra
@@ -113083,8 +113728,10 @@ self: {
      }:
      mkDerivation {
        pname = "hal";
-       version = "0.4.4";
-       sha256 = "0nqxlvbk8lb9c6hh15gn8nd9h2p0rcrllkqjli0ixqil3qpynl76";
+       version = "0.4.5";
+       sha256 = "01qs6bw9fg86vs122nyamfq29g9l3hr8m1bmrmsn0iinrhzisasp";
+       revision = "1";
+       editedCabalFile = "1i2fqq0bwmsibfyk7v5nd2myb0sxlkv3xy93ypsfdx6nrsnbb4vq";
        libraryHaskellDepends = [
          aeson base bytestring conduit conduit-extra containers envy
          exceptions http-client http-conduit http-types mtl text time
@@ -115038,8 +115685,8 @@ self: {
      }:
      mkDerivation {
        pname = "hasbolt-extras";
-       version = "0.0.1.4";
-       sha256 = "1zamnp80sncy6fw8j1nsnzcima2f99n1jpcs2vrqyfg1z6n04qhc";
+       version = "0.0.1.6";
+       sha256 = "0il6752lvq0li29aipc66syc7kd9h57439akshlpqpd25b536zd9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -115297,8 +115944,8 @@ self: {
        pname = "hashable";
        version = "1.3.0.0";
        sha256 = "1d4sn4xjf0swrfg8pl93ipavbj12ch3a9aykhkl6mjnczc9m8bl2";
-       revision = "1";
-       editedCabalFile = "1c8z7vxlh4whpm1ag4xp6wknnaal28cl4dqdan9rw1c1g10g2w2c";
+       revision = "2";
+       editedCabalFile = "16va8hx4ynw0n5s2warhs13ilj7hrs5fcdn140h1fiix480as36n";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -118683,8 +119330,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskoin-core";
-       version = "0.17.5";
-       sha256 = "1isfxzn5gz7py469mh9m6jd430w9alp0x8b75rymd3sp2ihwc3mz";
+       version = "0.18.0";
+       sha256 = "13j8hsyj7x30s6rl8pigvkcwn9ahrwd85y4i8z6728rsjj2ygih3";
        libraryHaskellDepends = [
          aeson array base base16-bytestring bytestring cereal conduit
          containers cryptonite deepseq entropy hashable hspec memory mtl
@@ -118821,8 +119468,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskoin-store";
-       version = "0.38.4";
-       sha256 = "1kiqib85rblq9y8mz5fsiqv4w9i5bzqj6h62yxd7riigc82h10g3";
+       version = "0.39.0";
+       sha256 = "1a1bhsjxb1nj49b5xjv78h89xsc5ffrf9qq1n12ak54ckvw0rgmv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -121326,6 +121973,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "hcount" = callPackage
+    ({ mkDerivation, attoparsec, base, containers, ghc, lens, numhask
+     , optparse-applicative, stan, text
+     }:
+     mkDerivation {
+       pname = "hcount";
+       version = "0.0.1";
+       sha256 = "0lz400p757kcnfkdwr3qrv07hlshv5rlsm3zfrf6zfhg4nayb93p";
+       revision = "1";
+       editedCabalFile = "0gvwrrhd1hhk242h686chlsww3cmxh5vy7296k5g6p6sb03ir4p5";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         attoparsec base containers ghc lens numhask optparse-applicative
+         stan text
+       ];
+       description = "Haskell name counts";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "hcron" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory, mtl
      , old-locale, pretty, process, random, stm, time
@@ -121981,8 +122648,8 @@ self: {
      }:
      mkDerivation {
        pname = "heapsize";
-       version = "0.3.0";
-       sha256 = "14i4yfk8qfpkcajb9h500dx4s5mqnpvfnyh1v3rp8pxcb93ffgc1";
+       version = "0.3.0.1";
+       sha256 = "0v38czcdnrlpcszbz7janb2qw4bqldhmql0riqq6a9bylv3zfs0y";
        libraryHaskellDepends = [
          base deepseq exceptions ghc-heap hashable hashtables primitive
          transformers unordered-containers
@@ -122275,24 +122942,22 @@ self: {
   "hedgehog" = callPackage
     ({ mkDerivation, ansi-terminal, async, base, bytestring
      , concurrent-output, containers, deepseq, directory, erf
-     , exceptions, fail, lifted-async, mmorph, monad-control, mtl
-     , pretty-show, primitive, random, resourcet, semigroups, stm
-     , template-haskell, text, time, transformers, transformers-base
-     , wl-pprint-annotated
+     , exceptions, lifted-async, mmorph, monad-control, mtl, pretty-show
+     , primitive, random, resourcet, stm, template-haskell, text, time
+     , transformers, transformers-base, wl-pprint-annotated
      }:
      mkDerivation {
        pname = "hedgehog";
-       version = "1.0.3";
-       sha256 = "10lv574491zldqzin433z0vqkq43f0v3shjf78j395y0g1jyky9m";
+       version = "1.0.4";
+       sha256 = "16j60k0xg74861b5a5n9brx1pgwa2yg76v8q8drmhlx46ga5fwdz";
        libraryHaskellDepends = [
          ansi-terminal async base bytestring concurrent-output containers
-         deepseq directory erf exceptions fail lifted-async mmorph
-         monad-control mtl pretty-show primitive random resourcet semigroups
-         stm template-haskell text time transformers transformers-base
-         wl-pprint-annotated
+         deepseq directory erf exceptions lifted-async mmorph monad-control
+         mtl pretty-show primitive random resourcet stm template-haskell
+         text time transformers transformers-base wl-pprint-annotated
        ];
        testHaskellDepends = [
-         base containers mmorph mtl pretty-show semigroups text transformers
+         base containers mmorph mtl pretty-show text transformers
        ];
        description = "Release with confidence";
        license = stdenv.lib.licenses.bsd3;
@@ -122463,6 +123128,8 @@ self: {
        pname = "hedgehog-quickcheck";
        version = "0.1.1";
        sha256 = "1z2ja63wqz83qhwzh0zs98k502v8fjdpnsnhqk3srypx2nw5vdlp";
+       revision = "1";
+       editedCabalFile = "0ddmwz3ngamij2k4paf7508dnzqn4qjpgwypbpr8d6s2y95jbvfh";
        libraryHaskellDepends = [ base hedgehog QuickCheck transformers ];
        description = "Use QuickCheck generators in Hedgehog and vice versa";
        license = stdenv.lib.licenses.bsd3;
@@ -122495,19 +123162,19 @@ self: {
 
   "hedis" = callPackage
     ({ mkDerivation, async, base, bytestring, bytestring-lexing
-     , deepseq, doctest, errors, exceptions, HTTP, HUnit, mtl, network
-     , network-uri, resource-pool, scanner, stm, test-framework
-     , test-framework-hunit, text, time, tls, unordered-containers
-     , vector
+     , containers, deepseq, doctest, errors, exceptions, HTTP, HUnit
+     , mtl, network, network-uri, resource-pool, scanner, stm
+     , test-framework, test-framework-hunit, text, time, tls
+     , unordered-containers, vector
      }:
      mkDerivation {
        pname = "hedis";
-       version = "0.13.1";
-       sha256 = "1x1hm0cw0ccx3zcwirs5m3fkbvqc2mcyn5pvsx5fczzpnwzj4d2g";
+       version = "0.14.0";
+       sha256 = "114k87mi7manyqa90vjjjlfbdwpg3g3dxiwc16v2zyrw56n28mfv";
        libraryHaskellDepends = [
-         async base bytestring bytestring-lexing deepseq errors exceptions
-         HTTP mtl network network-uri resource-pool scanner stm text time
-         tls unordered-containers vector
+         async base bytestring bytestring-lexing containers deepseq errors
+         exceptions HTTP mtl network network-uri resource-pool scanner stm
+         text time tls unordered-containers vector
        ];
        testHaskellDepends = [
          async base bytestring doctest HUnit mtl stm test-framework
@@ -122662,6 +123329,8 @@ self: {
        pname = "hedn-functor";
        version = "0.1.0.0";
        sha256 = "1s90az6akimfq6jwiyicns7v34ryp8riymj0ski1sl4ljjm4r4fi";
+       revision = "1";
+       editedCabalFile = "08laj7hmykpq83f525agra0qw9xwwpba26fskhm70zhmiz417fqr";
        libraryHaskellDepends = [
          base containers hedn recursion-schemes text vector
        ];
@@ -122689,15 +123358,15 @@ self: {
      }) {};
 
   "heidi" = callPackage
-    ({ mkDerivation, base, boxes, containers, criterion, doctest
-     , exceptions, generic-trie, generics-sop, hashable, microlens
-     , microlens-th, scientific, tasty, tasty-hspec, text
-     , unordered-containers, vector, weigh
+    ({ mkDerivation, base, boxes, containers, criterion, exceptions
+     , generic-trie, generics-sop, hashable, microlens, microlens-th
+     , scientific, tasty, tasty-hspec, text, unordered-containers
+     , vector, weigh
      }:
      mkDerivation {
        pname = "heidi";
-       version = "0.0.0";
-       sha256 = "1cli324lyn107037mc9yg161arqkd7jbqvhgfihimpyik150az0g";
+       version = "0.1.0";
+       sha256 = "1l4am8pqk3xrmjmjv48jia60d2vydpj2wy0iyxqiidnc7b8p5j8m";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -122707,7 +123376,7 @@ self: {
        executableHaskellDepends = [
          base exceptions hashable text unordered-containers
        ];
-       testHaskellDepends = [ base doctest tasty tasty-hspec ];
+       testHaskellDepends = [ base tasty tasty-hspec ];
        benchmarkHaskellDepends = [ base criterion weigh ];
        description = "Tidy data in Haskell";
        license = stdenv.lib.licenses.mit;
@@ -122749,8 +123418,8 @@ self: {
        pname = "heist";
        version = "1.1.0.1";
        sha256 = "1j4h9fwny4hl2m5lgsd257lvm9057fb0hmnaqjw8a9k4hyx7hmqq";
-       revision = "3";
-       editedCabalFile = "0a456cq72fgdy3wvk6db6yqk3mpib85h7kmwrvdjl7p637dvpxzh";
+       revision = "4";
+       editedCabalFile = "1jwdn5l0iwcrbramfs6h60w0i6hgp2ixii89db8b0xvcbyb8h4hj";
        libraryHaskellDepends = [
          aeson attoparsec base blaze-builder blaze-html bytestring
          containers directory directory-tree dlist filepath hashable
@@ -124661,20 +125330,20 @@ self: {
      }) {};
 
   "hgeos" = callPackage
-    ({ mkDerivation, base, geos_c, MissingH }:
+    ({ mkDerivation, base, geos, MissingH }:
      mkDerivation {
        pname = "hgeos";
        version = "0.1.8.0";
        sha256 = "14fqqabxnfky6x17508xr92dvd3jk6b53zqmy8h7f1dd4r7pm4z7";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base ];
-       librarySystemDepends = [ geos_c ];
+       librarySystemDepends = [ geos ];
        testHaskellDepends = [ base MissingH ];
        description = "Simple Haskell bindings to GEOS C API";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
-     }) {geos_c = null;};
+     }) {inherit (pkgs) geos;};
 
   "hgettext" = callPackage
     ({ mkDerivation, base, Cabal, containers, deepseq, directory
@@ -125122,10 +125791,8 @@ self: {
      }:
      mkDerivation {
        pname = "hie-bios";
-       version = "0.7.1";
-       sha256 = "00gkr4dbbs70vnd6y90iirss88j8ax714l9jmwdfkmslwd4m2ml8";
-       revision = "3";
-       editedCabalFile = "104cp386qbk6k72s2ld1cl0fny3f53x98zy3w10mlhqyaipqrf17";
+       version = "0.7.2";
+       sha256 = "0cff9kf4qnfkfzvxhxi0hh54x013g5sg0xcw0vpsarc3a91p7da8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -125198,6 +125865,31 @@ self: {
        broken = true;
      }) {};
 
+  "hiedb" = callPackage
+    ({ mkDerivation, algebraic-graphs, array, base, bytestring
+     , containers, directory, filepath, ghc, ghc-paths, hie-compat
+     , hspec, lucid, mtl, optparse-applicative, process, sqlite-simple
+     , terminal-size, text, time
+     }:
+     mkDerivation {
+       pname = "hiedb";
+       version = "0.1.0.0";
+       sha256 = "0bzhg7dambm97qk3r9p2k0kd4qbllghfxiannjiqnwmar7c4zaxw";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         algebraic-graphs array base bytestring containers directory
+         filepath ghc hie-compat lucid mtl optparse-applicative
+         sqlite-simple terminal-size text time
+       ];
+       executableHaskellDepends = [ base ghc-paths ];
+       testHaskellDepends = [
+         base directory filepath ghc ghc-paths hspec process
+       ];
+       description = "Generates a references DB from .hie files";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "hieraclus" = callPackage
     ({ mkDerivation, base, containers, HUnit, mtl, multiset }:
      mkDerivation {
@@ -125828,6 +126520,36 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "hinit" = callPackage
+    ({ mkDerivation, base, Cabal, containers, directory, exceptions
+     , fused-effects, generic-lens, Glob, haskeline, lens, megaparsec
+     , mustache, optparse-applicative, parser-combinators, path, path-io
+     , prettyprinter, prettyprinter-ansi-terminal, process
+     , quickcheck-text, spdx-license, string-interpolate, text, time
+     , tomland
+     }:
+     mkDerivation {
+       pname = "hinit";
+       version = "0.2.0";
+       sha256 = "1iklwj1kzv7nbb4bnrj0idfb0k26jjpw51mkbib73j4jpciah01v";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base Cabal containers directory exceptions fused-effects
+         generic-lens Glob haskeline lens megaparsec mustache
+         optparse-applicative parser-combinators path path-io prettyprinter
+         prettyprinter-ansi-terminal process spdx-license string-interpolate
+         text time tomland
+       ];
+       executableHaskellDepends = [ base fused-effects path-io ];
+       testHaskellDepends = [
+         base fused-effects path-io quickcheck-text
+       ];
+       description = "Generic project initialization tool";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "hinotify_0_3_9" = callPackage
     ({ mkDerivation, async, base, containers, directory, unix }:
      mkDerivation {
@@ -126840,41 +127562,40 @@ self: {
     ({ mkDerivation, aeson, ansi-terminal, base, base-compat-batteries
      , bytestring, cmdargs, containers, data-default, Decimal, Diff
      , directory, extra, filepath, hashable, haskeline, hledger-lib
-     , lucid, math-functions, megaparsec, mtl, old-time, parsec
-     , pretty-show, process, regex-tdfa, safe, shakespeare, split
-     , tabular, tasty, temporary, terminfo, text, time, timeit
-     , transformers, unordered-containers, utf8-string, utility-ht
-     , wizards
+     , lucid, math-functions, megaparsec, mtl, old-time, process
+     , regex-tdfa, safe, shakespeare, split, tabular, tasty, temporary
+     , terminfo, text, time, timeit, transformers, unordered-containers
+     , utf8-string, utility-ht, wizards
      }:
      mkDerivation {
        pname = "hledger";
-       version = "1.19.1";
-       sha256 = "0wfsyf2q1kf90mj3lxs0m5ghj153axmpkc8xfy12vkz5imnyphfm";
+       version = "1.20.2";
+       sha256 = "1mk7d6ajwh5i9c8klgzk9j06yc8l24gi2nf6blyan14d9s7l85br";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson ansi-terminal base base-compat-batteries bytestring cmdargs
          containers data-default Decimal Diff directory extra filepath
          hashable haskeline hledger-lib lucid math-functions megaparsec mtl
-         old-time parsec pretty-show process regex-tdfa safe shakespeare
-         split tabular tasty temporary terminfo text time timeit
-         transformers unordered-containers utf8-string utility-ht wizards
+         old-time process regex-tdfa safe shakespeare split tabular tasty
+         temporary terminfo text time timeit transformers
+         unordered-containers utf8-string utility-ht wizards
        ];
        executableHaskellDepends = [
          aeson ansi-terminal base base-compat-batteries bytestring cmdargs
          containers data-default Decimal directory extra filepath haskeline
-         hledger-lib math-functions megaparsec mtl old-time parsec
-         pretty-show process regex-tdfa safe shakespeare split tabular tasty
-         temporary terminfo text time timeit transformers
-         unordered-containers utf8-string utility-ht wizards
+         hledger-lib math-functions megaparsec mtl old-time process
+         regex-tdfa safe shakespeare split tabular tasty temporary terminfo
+         text time timeit transformers unordered-containers utf8-string
+         utility-ht wizards
        ];
        testHaskellDepends = [
          aeson ansi-terminal base base-compat-batteries bytestring cmdargs
          containers data-default Decimal directory extra filepath haskeline
-         hledger-lib math-functions megaparsec mtl old-time parsec
-         pretty-show process regex-tdfa safe shakespeare split tabular tasty
-         temporary terminfo text time timeit transformers
-         unordered-containers utf8-string utility-ht wizards
+         hledger-lib math-functions megaparsec mtl old-time process
+         regex-tdfa safe shakespeare split tabular tasty temporary terminfo
+         text time timeit transformers unordered-containers utf8-string
+         utility-ht wizards
        ];
        description = "Command-line interface for the hledger accounting system";
        license = stdenv.lib.licenses.gpl3;
@@ -126974,8 +127695,8 @@ self: {
        pname = "hledger-iadd";
        version = "1.3.12";
        sha256 = "0klrqss2ch4yi50m1rybznzsjg4ahbx7rg9n8w5svpf34fdlp048";
-       revision = "1";
-       editedCabalFile = "0amfrcwklqzpjkgr714d0as57m5ndaywi04d44ygvq2p5jd0h129";
+       revision = "2";
+       editedCabalFile = "1n43j7fh3d9f8jn1y40vhkfh7yfwb4sixm3wyrfj20mkr7yyr732";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -127005,6 +127726,8 @@ self: {
        pname = "hledger-interest";
        version = "1.6.0";
        sha256 = "0s0pmdm1vk4ib5ncs9mxyzr3dx5m6ji9778kddzqwxc9y9gvq5sq";
+       revision = "1";
+       editedCabalFile = "10v3fwyzbaqzrldaswvn031hncxy2sra302n10k4zkxg41bz7f73";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -127039,33 +127762,33 @@ self: {
     ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, array, base
      , base-compat-batteries, blaze-markup, bytestring, call-stack
      , cassava, cassava-megaparsec, cmdargs, containers, data-default
-     , Decimal, directory, doctest, extra, fgl, file-embed, filepath
-     , Glob, hashtables, megaparsec, mtl, old-time, parsec
-     , parser-combinators, pretty-show, regex-tdfa, safe, split, tabular
-     , tasty, tasty-hunit, template-haskell, text, time, timeit
-     , transformers, uglymemo, unordered-containers, utf8-string
+     , Decimal, directory, doctest, extra, file-embed, filepath, Glob
+     , hashtables, megaparsec, mtl, old-time, parser-combinators
+     , pretty-simple, regex-tdfa, safe, split, tabular, tasty
+     , tasty-hunit, template-haskell, text, time, timeit, transformers
+     , uglymemo, unordered-containers, utf8-string
      }:
      mkDerivation {
        pname = "hledger-lib";
-       version = "1.19.1";
-       sha256 = "0py11011r358nmnvwwkc8mlx6mpy36jm8sqlr4i8ihx3x0zjdgya";
+       version = "1.20.2";
+       sha256 = "10iz6jjkighsj00shw8hj22p14zp4dd9r7l4hmpbwql1hfz53g1b";
        libraryHaskellDepends = [
          aeson aeson-pretty ansi-terminal array base base-compat-batteries
          blaze-markup bytestring call-stack cassava cassava-megaparsec
-         cmdargs containers data-default Decimal directory extra fgl
-         file-embed filepath Glob hashtables megaparsec mtl old-time parsec
-         parser-combinators pretty-show regex-tdfa safe split tabular tasty
-         tasty-hunit template-haskell text time timeit transformers uglymemo
+         cmdargs containers data-default Decimal directory extra file-embed
+         filepath Glob hashtables megaparsec mtl old-time parser-combinators
+         pretty-simple regex-tdfa safe split tabular tasty tasty-hunit
+         template-haskell text time timeit transformers uglymemo
          unordered-containers utf8-string
        ];
        testHaskellDepends = [
          aeson aeson-pretty ansi-terminal array base base-compat-batteries
          blaze-markup bytestring call-stack cassava cassava-megaparsec
-         cmdargs containers data-default Decimal directory doctest extra fgl
-         file-embed filepath Glob hashtables megaparsec mtl old-time parsec
-         parser-combinators pretty-show regex-tdfa safe split tabular tasty
-         tasty-hunit template-haskell text time timeit transformers uglymemo
-         unordered-containers utf8-string
+         cmdargs containers data-default Decimal directory doctest extra
+         file-embed filepath Glob hashtables megaparsec mtl old-time
+         parser-combinators pretty-simple regex-tdfa safe split tabular
+         tasty tasty-hunit template-haskell text time timeit transformers
+         uglymemo unordered-containers utf8-string
        ];
        description = "A reusable library providing the core functionality of hledger";
        license = stdenv.lib.licenses.gpl3;
@@ -127119,21 +127842,20 @@ self: {
     ({ mkDerivation, ansi-terminal, async, base, base-compat-batteries
      , brick, cmdargs, containers, data-default, directory, extra
      , filepath, fsnotify, hledger, hledger-lib, megaparsec, microlens
-     , microlens-platform, pretty-show, process, safe, split, text
-     , text-zipper, time, transformers, unix, vector, vty
+     , microlens-platform, process, safe, split, text, text-zipper, time
+     , transformers, unix, vector, vty
      }:
      mkDerivation {
        pname = "hledger-ui";
-       version = "1.19.1";
-       sha256 = "17iz82jr89qxfd7j6q16w2jjr38mb7d94p3rbp0ks01bf4rlq5fl";
+       version = "1.20.2";
+       sha256 = "1ns1zjmpbxn3rg5ldplh57h0yfmas6bqa9z6nmk52bw9qf0b05zw";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
          ansi-terminal async base base-compat-batteries brick cmdargs
          containers data-default directory extra filepath fsnotify hledger
-         hledger-lib megaparsec microlens microlens-platform pretty-show
-         process safe split text text-zipper time transformers unix vector
-         vty
+         hledger-lib megaparsec microlens microlens-platform process safe
+         split text text-zipper time transformers unix vector vty
        ];
        description = "Curses-style terminal interface for the hledger accounting system";
        license = stdenv.lib.licenses.gpl3;
@@ -127163,30 +127885,33 @@ self: {
     ({ mkDerivation, aeson, base, blaze-html, blaze-markup, bytestring
      , case-insensitive, clientsession, cmdargs, conduit, conduit-extra
      , containers, data-default, Decimal, directory, extra, filepath
-     , hjsmin, hledger, hledger-lib, http-client, http-conduit
+     , hjsmin, hledger, hledger-lib, hspec, http-client, http-conduit
      , http-types, megaparsec, mtl, network, shakespeare
      , template-haskell, text, time, transformers, unix-compat
      , unordered-containers, utf8-string, wai, wai-cors, wai-extra
      , wai-handler-launch, warp, yaml, yesod, yesod-core, yesod-form
-     , yesod-static
+     , yesod-static, yesod-test
      }:
      mkDerivation {
        pname = "hledger-web";
-       version = "1.19.1";
-       sha256 = "03wak0dgxhf7y2mc2az4xcypgz1z1lf65vn6kj98z063pmlwp1b0";
+       version = "1.20.2";
+       sha256 = "0898nsd4y4fzk8ri4wxykcyvrb9165mkak392ir1b5nz19nys1xf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson base blaze-html blaze-markup bytestring case-insensitive
          clientsession cmdargs conduit conduit-extra containers data-default
-         Decimal directory extra filepath hjsmin hledger hledger-lib
+         Decimal directory extra filepath hjsmin hledger hledger-lib hspec
          http-client http-conduit http-types megaparsec mtl network
          shakespeare template-haskell text time transformers unix-compat
          unordered-containers utf8-string wai wai-cors wai-extra
          wai-handler-launch warp yaml yesod yesod-core yesod-form
-         yesod-static
+         yesod-static yesod-test
        ];
        executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base hledger hledger-lib hspec text yesod yesod-test
+       ];
        description = "Web-based user interface for the hledger accounting system";
        license = stdenv.lib.licenses.gpl3;
        maintainers = with stdenv.lib.maintainers; [ peti ];
@@ -127289,8 +128014,8 @@ self: {
      }:
      mkDerivation {
        pname = "hlint";
-       version = "3.2.3";
-       sha256 = "1y6drmvcz90cpih446k1kjbyhin652wi9b9x7xjylxxp8jksd8x0";
+       version = "3.2.6";
+       sha256 = "1i1qqqi6qdfa3py48cns6c41xn6qr8rsfg7rn4i22qr86zp8ikp5";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -127388,17 +128113,15 @@ self: {
   "hlrdb" = callPackage
     ({ mkDerivation, base, base64-bytestring, bytestring, cryptonite
      , hashable, hedis, hlrdb-core, memory, random, store, time
-     , unordered-containers
+     , unordered-containers, zstd
      }:
      mkDerivation {
        pname = "hlrdb";
-       version = "0.3.1.0";
-       sha256 = "19sxpyv331sjldanf40gw598gcj98n9xwc985cz9k2m38ck3vwhr";
-       revision = "2";
-       editedCabalFile = "11f2vv95kmk4k07yzvzma7714p148sfyn9k3zx94h5y0zihgn49g";
+       version = "0.3.2.0";
+       sha256 = "1k4dsd4h3fv1ag753gwxvirfrj53ra4ik948pyacq31c16mz1l2p";
        libraryHaskellDepends = [
          base base64-bytestring bytestring cryptonite hashable hedis
-         hlrdb-core memory random store time unordered-containers
+         hlrdb-core memory random store time unordered-containers zstd
        ];
        description = "High-level Redis Database";
        license = stdenv.lib.licenses.mit;
@@ -127447,8 +128170,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-plugin-api";
-       version = "0.5.0.0";
-       sha256 = "18bahpndgic8g259v4blckybc5mlp7snaqh1gmnd7kh39p8kf1v4";
+       version = "0.5.0.1";
+       sha256 = "0sv892m18ic9m8d5b8wm7385v80rc02fjy0wxvq9mzhgazz20cp2";
        libraryHaskellDepends = [
          aeson base containers data-default Diff ghc ghc-boot-th ghcide
          hashable haskell-lsp hslogger lens process regex-tdfa shake text
@@ -127954,8 +128677,8 @@ self: {
     ({ mkDerivation, base, stm }:
      mkDerivation {
        pname = "hmidi";
-       version = "0.2.2.1";
-       sha256 = "15sf5jxr8nzbmn78bx971jic0ia51s8mrzdik2iqbgznairr30ay";
+       version = "0.2.3.1";
+       sha256 = "0q2b2hk6s0fnyw67yfrbmiv7m2cwdcz1q86zzcna4ci5gyv0j07d";
        libraryHaskellDepends = [ base stm ];
        description = "Binding to the OS level MIDI services";
        license = stdenv.lib.licenses.bsd3;
@@ -128205,8 +128928,8 @@ self: {
      }:
      mkDerivation {
        pname = "hnix";
-       version = "0.11.0";
-       sha256 = "01m23sn3r2pr6ldblk4m41y082jc0lrgpfzbx63sx168ldhwxar3";
+       version = "0.11.1";
+       sha256 = "0rdl1ky8l2zm5arkdq77qrg0xnqfavba0bnr9bd0zhjj3k2gb4v7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -128271,7 +128994,7 @@ self: {
        license = stdenv.lib.licenses.asl20;
      }) {};
 
-  "hnix-store-core_0_3_0_1" = callPackage
+  "hnix-store-core_0_4_0_0" = callPackage
     ({ mkDerivation, algebraic-graphs, attoparsec, base
      , base16-bytestring, base64-bytestring, binary, bytestring, cereal
      , containers, cryptohash-md5, cryptohash-sha1, cryptohash-sha256
@@ -128283,8 +129006,8 @@ self: {
      }:
      mkDerivation {
        pname = "hnix-store-core";
-       version = "0.3.0.1";
-       sha256 = "186r0z8csvj7ly9ag9lpvc6nm4x3hzx18rdc1jxzavaavcpdpn00";
+       version = "0.4.0.0";
+       sha256 = "05fwh5y82qy4qzi32xgk8dmndd8r074rvfl2nxyg3f3ydqpcmmr2";
        libraryHaskellDepends = [
          algebraic-graphs attoparsec base base16-bytestring
          base64-bytestring binary bytestring cereal containers
@@ -128311,8 +129034,8 @@ self: {
      }:
      mkDerivation {
        pname = "hnix-store-remote";
-       version = "0.3.0.0";
-       sha256 = "0spvbix7m70v95fvkcs0vxas8nmwpjh4lfaglyvw1ijkf71xn9gl";
+       version = "0.4.0.0";
+       sha256 = "0l9gb5b415im1bjrbx6k0ah92763hgm1ns6kxfl5mxwij52kzc32";
        libraryHaskellDepends = [
          attoparsec base binary bytestring containers filepath
          hnix-store-core mtl network nix-derivation text time unix
@@ -128795,8 +129518,6 @@ self: {
        libraryHaskellDepends = [ base either mtl ];
        description = "Some convenience facilities for hoisting errors into a monad";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "hol" = callPackage
@@ -129350,8 +130071,8 @@ self: {
      }:
      mkDerivation {
        pname = "hoogle";
-       version = "5.0.18";
-       sha256 = "16vbjivwwjn687cidg0v9bkdyk9mkv4gn6fmaxcfj8m94vrqdbdx";
+       version = "5.0.18.1";
+       sha256 = "15ia0l96yjdnam5vljcsslcavsjwfq0kxldwdcr3zq9c0w6q6i3w";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -129559,6 +130280,38 @@ self: {
        license = stdenv.lib.licenses.agpl3Plus;
      }) {};
 
+  "hopenpgp-tools_0_23_4" = callPackage
+    ({ mkDerivation, aeson, alex, array, base, base16-bytestring
+     , binary, binary-conduit, bytestring, conduit, conduit-extra
+     , containers, cryptonite, directory, errors, fgl, graphviz, happy
+     , hOpenPGP, http-client, http-client-tls, http-types, ixset-typed
+     , lens, memory, monad-loops, mtl, openpgp-asciiarmor
+     , optparse-applicative, prettyprinter, prettyprinter-ansi-terminal
+     , prettyprinter-convert-ansi-wl-pprint, resourcet, text, time
+     , time-locale-compat, transformers, unordered-containers, vector
+     , yaml
+     }:
+     mkDerivation {
+       pname = "hopenpgp-tools";
+       version = "0.23.4";
+       sha256 = "1l9aznav4a0cwbd0mw6vlqi85vb3wc7w4fik4m8znmg5xa7dzvsl";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         aeson array base base16-bytestring binary binary-conduit bytestring
+         conduit conduit-extra containers cryptonite directory errors fgl
+         graphviz hOpenPGP http-client http-client-tls http-types
+         ixset-typed lens memory monad-loops mtl openpgp-asciiarmor
+         optparse-applicative prettyprinter prettyprinter-ansi-terminal
+         prettyprinter-convert-ansi-wl-pprint resourcet text time
+         time-locale-compat transformers unordered-containers vector yaml
+       ];
+       executableToolDepends = [ alex happy ];
+       description = "hOpenPGP-based command-line tools";
+       license = stdenv.lib.licenses.agpl3Plus;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hopenssl" = callPackage
     ({ mkDerivation, base, bytestring, HUnit, openssl }:
      mkDerivation {
@@ -130162,8 +130915,8 @@ self: {
      }:
      mkDerivation {
        pname = "hpack";
-       version = "0.34.2";
-       sha256 = "0sn99v1bndbn1if36i4xj1xqcxpihh6yj8ssixypnpwi5vm7hvyf";
+       version = "0.34.3";
+       sha256 = "0gwqmv3p3g9551n405bxrwm7a5ysx3q72q04k5qmicb3mxwwxnff";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -131331,8 +132084,7 @@ self: {
 
   "hs-brotli" = callPackage
     ({ mkDerivation, base, brotli, brotlidec, brotlienc, bytestring
-     , ghc-prim, libbrotlidec, libbrotlienc, QuickCheck
-     , quickcheck-instances, tasty-quickcheck
+     , ghc-prim, QuickCheck, quickcheck-instances, tasty-quickcheck
      }:
      mkDerivation {
        pname = "hs-brotli";
@@ -131340,7 +132092,6 @@ self: {
        sha256 = "083l7bbjlxh629a9m88mfp087f09gwsmzs9vmpxrqffw23zrnclf";
        libraryHaskellDepends = [ base bytestring ghc-prim ];
        librarySystemDepends = [ brotlidec brotlienc ];
-       libraryPkgconfigDepends = [ libbrotlidec libbrotlienc ];
        testHaskellDepends = [
          base brotli bytestring QuickCheck quickcheck-instances
          tasty-quickcheck
@@ -131349,8 +132100,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
-     }) {brotlidec = null; brotlienc = null; libbrotlidec = null; 
-         libbrotlienc = null;};
+     }) {brotlidec = null; brotlienc = null;};
 
   "hs-captcha" = callPackage
     ({ mkDerivation, base, bytestring, gd, random }:
@@ -131754,6 +132504,20 @@ self: {
        broken = true;
      }) {};
 
+  "hs-openmoji-data" = callPackage
+    ({ mkDerivation, base, containers, emojis, text }:
+     mkDerivation {
+       pname = "hs-openmoji-data";
+       version = "13.0.0";
+       sha256 = "1jgs4iv0zv2dr5izd6d95mflyk4fnagmrdxw70m17jvknl5x1fa5";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base text ];
+       executableHaskellDepends = [ base containers emojis text ];
+       description = "The OpenMoji emoji dataset";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "hs-pattrans" = callPackage
     ({ mkDerivation, async, base, bytestring, cassava, Chart
      , Chart-cairo, colour, containers, contravariant, directory
@@ -131989,8 +132753,8 @@ self: {
      }:
      mkDerivation {
        pname = "hs-speedscope";
-       version = "0.2";
-       sha256 = "119s4da40zjf42s7fyjm4b78vciiv5r2f67l8ki9gqr933ir6mpb";
+       version = "0.2.1";
+       sha256 = "1qzmcn718mbg5pckvbcw2n36srmbixkyp45hrkdcdnqcsvf5agln";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -132347,6 +133111,28 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "hsautogui" = callPackage
+    ({ mkDerivation, base, containers, cpython, mtl, python3
+     , template-haskell, text
+     }:
+     mkDerivation {
+       pname = "hsautogui";
+       version = "0.1.0";
+       sha256 = "0ds1r620825z7dq8rahbi7jymkn5n7y47i7m92qw4dl2cdl0s4g0";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base containers cpython mtl template-haskell text
+       ];
+       librarySystemDepends = [ python3 ];
+       executableHaskellDepends = [ base ];
+       executableSystemDepends = [ python3 ];
+       description = "Haskell bindings for PyAutoGUI, a library for automating user interaction";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) python3;};
+
   "hsay" = callPackage
     ({ mkDerivation, base, Hclip, HTTP, process, unix }:
      mkDerivation {
@@ -134475,8 +135261,8 @@ self: {
      }:
      mkDerivation {
        pname = "hspec-expectations-json";
-       version = "1.0.0.0";
-       sha256 = "1i6w3qsy25y0aymkcnkycpgrx0dkbsv5a60004hx3fpl5rkbq1aj";
+       version = "1.0.0.2";
+       sha256 = "1jv0mi0hdbxx75yygd3184kqpi50ysjp82vyr1di7dcz0ffyxhmb";
        libraryHaskellDepends = [
          aeson aeson-pretty base Diff HUnit scientific text
          unordered-containers vector
@@ -135042,15 +135828,15 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "hspec-wai_0_11_0" = callPackage
+  "hspec-wai_0_11_1" = callPackage
     ({ mkDerivation, base, base-compat, bytestring, case-insensitive
      , hspec, hspec-core, hspec-expectations, http-types, QuickCheck
      , text, transformers, wai, wai-extra
      }:
      mkDerivation {
        pname = "hspec-wai";
-       version = "0.11.0";
-       sha256 = "0fk23vrs5apjy11z47mply2kay3n193gnyrbb9fkpwvmxyhxlp0x";
+       version = "0.11.1";
+       sha256 = "03wiksic5y9a2g6a86nsxrnajdgdvpv17w02h5qla0zp9zs6pa1j";
        libraryHaskellDepends = [
          base base-compat bytestring case-insensitive hspec-core
          hspec-expectations http-types QuickCheck text transformers wai
@@ -137091,36 +137877,6 @@ self: {
      , case-insensitive, conduit, conduit-extra, connection, cookie
      , data-default-class, hspec, http-client, http-client-tls
      , http-types, HUnit, mtl, network, resourcet, streaming-commons
-     , temporary, text, time, transformers, unliftio, unliftio-core
-     , utf8-string, wai, wai-conduit, warp, warp-tls
-     }:
-     mkDerivation {
-       pname = "http-conduit";
-       version = "2.3.7.3";
-       sha256 = "00rshi1y0h8y4rvsnnad0bppxgpvp40sk7lw1kxmdwy8pi8xrvbs";
-       revision = "1";
-       editedCabalFile = "0d9mkg8wm943avghjwvq986m667fx63pvvgn2y8gvr6nla8740an";
-       libraryHaskellDepends = [
-         aeson attoparsec base bytestring conduit conduit-extra http-client
-         http-client-tls http-types mtl resourcet transformers unliftio-core
-       ];
-       testHaskellDepends = [
-         aeson base blaze-builder bytestring case-insensitive conduit
-         conduit-extra connection cookie data-default-class hspec
-         http-client http-types HUnit network resourcet streaming-commons
-         temporary text time transformers unliftio utf8-string wai
-         wai-conduit warp warp-tls
-       ];
-       doCheck = false;
-       description = "HTTP client package with conduit interface and HTTPS support";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "http-conduit_2_3_7_4" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, blaze-builder, bytestring
-     , case-insensitive, conduit, conduit-extra, connection, cookie
-     , data-default-class, hspec, http-client, http-client-tls
-     , http-types, HUnit, mtl, network, resourcet, streaming-commons
      , temporary, text, time, tls, transformers, unliftio, unliftio-core
      , utf8-string, wai, wai-conduit, warp, warp-tls
      }:
@@ -137142,7 +137898,6 @@ self: {
        doCheck = false;
        description = "HTTP client package with conduit interface and HTTPS support";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "http-conduit-browser" = callPackage
@@ -137708,19 +138463,19 @@ self: {
 
   "http-rfc7807" = callPackage
     ({ mkDerivation, aeson, base, call-stack, hspec-expectations-json
-     , http-media, http-types, servant, servant-server, tasty
+     , http-media, http-types, HUnit, servant, servant-server, tasty
      , tasty-hunit, text
      }:
      mkDerivation {
        pname = "http-rfc7807";
-       version = "0.1.0.0";
-       sha256 = "1wysqi3rfyg1fb7p9plb6ihcqzvyb2cqhsfx46ciwgym9nxg8lr4";
+       version = "0.2.0.0";
+       sha256 = "0nhdz37sjy2qam2a8zvsx7xpnqykc4z0zhg7a8ii6nmxvfmsbywv";
        libraryHaskellDepends = [
          aeson base http-media http-types servant servant-server text
        ];
        testHaskellDepends = [
-         aeson base call-stack hspec-expectations-json tasty tasty-hunit
-         text
+         aeson base call-stack hspec-expectations-json http-types HUnit
+         servant servant-server tasty tasty-hunit text
        ];
        description = "RFC7807 style response messages";
        license = stdenv.lib.licenses.bsd3;
@@ -138300,6 +139055,36 @@ self: {
        broken = true;
      }) {};
 
+  "hum" = callPackage
+    ({ mkDerivation, base, brick, bytestring, containers, directory
+     , filepath, lens, libmpd, mtl, relude, template-haskell, text
+     , text-zipper, time, transformers, vector, vty, witherable-class
+     }:
+     mkDerivation {
+       pname = "hum";
+       version = "0.1.0.0";
+       sha256 = "06zyjg2i0kk4wnzrcax7rff710rpafqwz4rv75wq09vr65wvvj1y";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base brick bytestring containers directory filepath lens libmpd mtl
+         relude template-haskell text text-zipper time transformers vector
+         vty witherable-class
+       ];
+       executableHaskellDepends = [
+         base brick bytestring containers directory filepath lens libmpd mtl
+         relude template-haskell text text-zipper time transformers vector
+         vty witherable-class
+       ];
+       testHaskellDepends = [
+         base brick bytestring containers directory filepath lens libmpd mtl
+         relude template-haskell text text-zipper time transformers vector
+         vty witherable-class
+       ];
+       description = "A TUI MPD client, inspired by ncmpcpp";
+       license = stdenv.lib.licenses.gpl2Plus;
+     }) {};
+
   "human-parse" = callPackage
     ({ mkDerivation, base, text }:
      mkDerivation {
@@ -138630,8 +139415,8 @@ self: {
      }:
      mkDerivation {
        pname = "hurl";
-       version = "1.4.2.1";
-       sha256 = "158p0fnlvz03vj29q4b5lzv4070d3l64wa1zsg9v2xlcrr6lrp87";
+       version = "1.5.0.0";
+       sha256 = "1fzy2zzwn5x420xz91fj64h6g0vzlam4058pymb2pdmg4x801j42";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -141428,8 +142213,8 @@ self: {
      }:
      mkDerivation {
        pname = "icepeak";
-       version = "0.7.3.0";
-       sha256 = "0in02r708s5j8n22900jvnf4iiw87bvs1q5mjmr1yc4vn8vrf4vv";
+       version = "0.7.4.0";
+       sha256 = "1jjcjl0i9brdzflfz4b7fba420rwgmv74b1qz7ii6m4bd7i4jkzp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -142809,35 +143594,34 @@ self: {
      }) {};
 
   "imm" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, async, atom-conduit
-     , base-noprelude, beam-core, beam-sqlite, blaze-html, blaze-markup
-     , bytestring, chronos, co-log, conduit, containers, dhall
-     , directory, filepath, http-client, http-types, microlens
-     , mime-mail, monad-time, optparse-applicative, parsec, parsers
-     , pipes, pipes-bytestring, pipes-http, prettyprinter
-     , prettyprinter-ansi-terminal, refined, relude, rss-conduit, safe
-     , safe-exceptions, sqlite-simple, stm, stm-chans, streamly, text
-     , time, timerep, typed-process, typerep-map, uri-bytestring
-     , xml-conduit, xml-types
+    ({ mkDerivation, aeson, aeson-pretty, async, atom-conduit, base
+     , beam-core, beam-sqlite, blaze-html, blaze-markup, bytestring
+     , chronos, co-log, conduit, containers, dhall, directory, filepath
+     , http-client, http-types, microlens, mime-mail, monad-time
+     , optparse-applicative, parsec, parsers, pipes, pipes-bytestring
+     , pipes-http, prettyprinter, prettyprinter-ansi-terminal, refined
+     , relude, rss-conduit, safe, safe-exceptions, sqlite-simple, stm
+     , stm-chans, streamly, text, time, timerep, typed-process
+     , typerep-map, uri-bytestring, xml-conduit, xml-types
      }:
      mkDerivation {
        pname = "imm";
-       version = "2.0.0.0";
-       sha256 = "1qkq80iiv1yql59a8vly1nv36isnh2wkdzxgawjh22xqn9xn0csd";
+       version = "2.1.0.0";
+       sha256 = "01jpwxqp2c5ih9cw38w4j7x1dff0z7z1d43yx1rri83w8shpjbl3";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         aeson aeson-pretty atom-conduit base-noprelude conduit containers
-         dhall directory filepath http-client microlens parsec parsers pipes
+         aeson aeson-pretty atom-conduit base conduit containers dhall
+         directory filepath http-client microlens parsec parsers pipes
          pipes-bytestring prettyprinter prettyprinter-ansi-terminal refined
          relude rss-conduit safe safe-exceptions text time timerep
          typed-process uri-bytestring xml-conduit xml-types
        ];
        executableHaskellDepends = [
-         aeson async base-noprelude beam-core beam-sqlite blaze-html
-         blaze-markup bytestring chronos co-log conduit containers dhall
-         directory filepath http-types microlens mime-mail monad-time
+         aeson async base beam-core beam-sqlite blaze-html blaze-markup
+         bytestring chronos co-log conduit containers dhall directory
+         filepath http-types microlens mime-mail monad-time
          optparse-applicative pipes pipes-bytestring pipes-http
          prettyprinter prettyprinter-ansi-terminal refined relude safe
          safe-exceptions sqlite-simple stm stm-chans streamly text time
@@ -143423,8 +144207,8 @@ self: {
      }:
      mkDerivation {
        pname = "incremental-parser";
-       version = "0.5";
-       sha256 = "1r3lmk8y0rg7fb7633ngp68izd2939yv2123vrcmwrvdha99w0g6";
+       version = "0.5.0.1";
+       sha256 = "1j0x52rwp44wdjdyxw3jh6m61vhwa2bf80dfxhqi6iniyc8qzm68";
        libraryHaskellDepends = [
          base input-parsers monoid-subclasses parsers rank2classes
          transformers
@@ -143696,6 +144480,41 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "indexed-traversable" = callPackage
+    ({ mkDerivation, array, base, containers, transformers }:
+     mkDerivation {
+       pname = "indexed-traversable";
+       version = "0.1.1";
+       sha256 = "0fc18vdm1894yjbjkj9wjm27bf37ac3gvkzak677mgiw2pinmhvs";
+       libraryHaskellDepends = [ array base containers transformers ];
+       description = "FunctorWithIndex, FoldableWithIndex, TraversableWithIndex";
+       license = stdenv.lib.licenses.bsd2;
+     }) {};
+
+  "indexed-traversable-instances" = callPackage
+    ({ mkDerivation, base, containers, criterion, indexed-traversable
+     , QuickCheck, quickcheck-instances, tagged, tasty, tasty-quickcheck
+     , transformers, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "indexed-traversable-instances";
+       version = "0.1";
+       sha256 = "1p38mssyajhwgc7ljnr31q6g18dxbv8r88z1r188xd82g6049v7s";
+       libraryHaskellDepends = [
+         base indexed-traversable tagged unordered-containers vector
+       ];
+       testHaskellDepends = [
+         base containers indexed-traversable QuickCheck quickcheck-instances
+         tasty tasty-quickcheck transformers unordered-containers vector
+       ];
+       benchmarkHaskellDepends = [
+         base containers criterion indexed-traversable unordered-containers
+         vector
+       ];
+       description = "More instances of FunctorWithIndex, FoldableWithIndex, TraversableWithIndex";
+       license = stdenv.lib.licenses.bsd2;
+     }) {};
+
   "indextype" = callPackage
     ({ mkDerivation, base, hspec }:
      mkDerivation {
@@ -143766,22 +144585,24 @@ self: {
      }) {};
 
   "indigo" = callPackage
-    ({ mkDerivation, base, cleveland, constraints, containers
+    ({ mkDerivation, base, casing, cleveland, constraints, containers
      , directory, fmt, hedgehog, hspec-expectations, HUnit, lorentz
-     , megaparsec, morley, morley-prelude, optparse-applicative, process
-     , reflection, shelly, singletons, string-interpolate, summoner
-     , tasty, tasty-discover, tasty-hedgehog, tasty-hunit-compat, text
-     , vinyl, with-utf8
+     , megaparsec, microlens-th, morley, morley-prelude
+     , optparse-applicative, process, reflection, shelly, singletons
+     , string-interpolate, summoner, tasty, tasty-discover
+     , tasty-hedgehog, tasty-hunit-compat, template-haskell, text, vinyl
+     , with-utf8
      }:
      mkDerivation {
        pname = "indigo";
-       version = "0.3.1";
-       sha256 = "1xc2gk7bihgpv78cl1c15x1izwsazmdpdsagan4d6yd0zw30xci4";
+       version = "0.4";
+       sha256 = "1qa6xbzyfl1f1c6kw71b0zi538zxql07kidkmsjz91sy9nrc93ml";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base constraints containers lorentz morley morley-prelude
-         reflection singletons vinyl with-utf8
+         base casing constraints containers fmt lorentz microlens-th morley
+         morley-prelude reflection singletons template-haskell vinyl
+         with-utf8
        ];
        executableHaskellDepends = [
          base directory megaparsec morley morley-prelude
@@ -144270,8 +145091,8 @@ self: {
      }:
      mkDerivation {
        pname = "inline-r";
-       version = "0.10.3";
-       sha256 = "15wkf1lxc7syp6kcf7d10lxn013q5mnvdl113sbhnchq92q7npgj";
+       version = "0.10.4";
+       sha256 = "0jvfi2izhxn0n5xzz6rhhfs3fxlx7p1mhd9pjrazqckib14jw8ml";
        libraryHaskellDepends = [
          aeson base bytestring containers data-default-class deepseq
          exceptions inline-c mtl pretty primitive process reflection setenv
@@ -144749,6 +145570,8 @@ self: {
        pname = "integer-roots";
        version = "1.0";
        sha256 = "12570cr39jj5lk30ls5nnc0w6881l0kflzhmwpk35qc7m39pjgy1";
+       revision = "1";
+       editedCabalFile = "0h130qddg27234mhi5spkwcgcxpnmq07bppwig5vq8z70fh5f1qx";
        libraryHaskellDepends = [ base integer-gmp ];
        testHaskellDepends = [
          base smallcheck tasty tasty-hunit tasty-quickcheck tasty-smallcheck
@@ -145325,22 +146148,21 @@ self: {
 
   "intricacy" = callPackage
     ({ mkDerivation, array, base, binary, bytestring, containers
-     , crypto-api, crypto-pubkey-types, cryptohash, directory, filepath
-     , hscurses, mtl, ncurses, network-fancy, random, RSA, safe, SDL
-     , SDL-gfx, SDL-mixer, SDL-ttf, stm, time, transformers, vector
+     , cryptonite, directory, exceptions, filepath, hscurses, memory
+     , mtl, ncurses, network-fancy, random, safe, SDL, SDL-gfx
+     , SDL-mixer, SDL-ttf, stm, time, transformers, vector
      }:
      mkDerivation {
        pname = "intricacy";
-       version = "0.7.2.3";
-       sha256 = "1651ivbk4iiwhy5hwwhc8s2dgfxdm9f4hswfxkdb06yp7i6y2pyj";
+       version = "0.8.0.1";
+       sha256 = "0kyhswgg8iyxvicgpf0f5rn3gk4k620crk02xd4bn797xws5bzzs";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
        executableHaskellDepends = [
-         array base binary bytestring containers crypto-api
-         crypto-pubkey-types cryptohash directory filepath hscurses mtl
-         network-fancy random RSA safe SDL SDL-gfx SDL-mixer SDL-ttf stm
-         time transformers vector
+         array base binary bytestring containers cryptonite directory
+         exceptions filepath hscurses memory mtl network-fancy random safe
+         SDL SDL-gfx SDL-mixer SDL-ttf stm time transformers vector
        ];
        executablePkgconfigDepends = [ ncurses ];
        description = "A game of competitive puzzle-design";
@@ -146130,6 +146952,8 @@ self: {
        pname = "iproute";
        version = "1.7.10";
        sha256 = "0libq5v22cm6bj1lga1rrkgww50bhnpns7rz7da90yycqv2k7d5m";
+       revision = "1";
+       editedCabalFile = "02nh8r0c1p8gzq2y82q8n210y3bs146kjv2v7mr8z0m3k0sh5qqs";
        libraryHaskellDepends = [
          appar base byteorder bytestring containers network
        ];
@@ -148597,8 +149421,8 @@ self: {
      }:
      mkDerivation {
        pname = "joint";
-       version = "0.1.8";
-       sha256 = "174i51nlck81h9pc9jgmd0yj3d6xpvza0i4a8y4f1fpnz1zrqxg5";
+       version = "0.1.9";
+       sha256 = "053yynpajazfr1f6ff8zw8ygyv01ahmrkcb7110g5a0mz7vwllsd";
        libraryHaskellDepends = [
          adjunctions base comonad distributive transformers
        ];
@@ -151120,6 +151944,22 @@ self: {
        broken = true;
      }) {};
 
+  "katip-logstash" = callPackage
+    ({ mkDerivation, aeson, base, katip, logstash, retry, stm
+     , stm-chans, text, transformers, unliftio
+     }:
+     mkDerivation {
+       pname = "katip-logstash";
+       version = "0.1.0.0";
+       sha256 = "16rw2bxbi5kklz6pz8zj7dq7as58v4yfjq7npnlyyx658nvhia6l";
+       libraryHaskellDepends = [
+         aeson base katip logstash retry stm stm-chans text transformers
+         unliftio
+       ];
+       description = "Logstash backend for katip";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "katip-logzio" = callPackage
     ({ mkDerivation, aeson, async, base, bytestring, errors, hedgehog
      , hostname, http-client, http-client-tls, http-types, katip, retry
@@ -151146,6 +151986,22 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "katip-raven" = callPackage
+    ({ mkDerivation, aeson, base, katip, raven-haskell, string-conv
+     , text, unordered-containers
+     }:
+     mkDerivation {
+       pname = "katip-raven";
+       version = "0.1.0.0";
+       sha256 = "107hb8rn6si77ms9hp72494ah4ismfivkf8xgldy1jk2ifqgxc0d";
+       libraryHaskellDepends = [
+         aeson base katip raven-haskell string-conv text
+         unordered-containers
+       ];
+       description = "Katip scribe for raven (https://sentry.io)";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "katip-rollbar" = callPackage
     ({ mkDerivation, aeson, async, base, hostname, http-client, katip
      , rollbar-hs, stm-chans, text, time
@@ -151916,8 +152772,8 @@ self: {
      }:
      mkDerivation {
        pname = "kempe";
-       version = "0.1.0.1";
-       sha256 = "0wnjljwnwy9qq575v493y2dsbimks3plbsripfrjph0ldpianrdm";
+       version = "0.1.1.1";
+       sha256 = "0mianbsn02vzbb0fr6pgxsij0jrpnhmbah9n2fcl3fj9xzcb6ac7";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -151927,10 +152783,12 @@ self: {
          transformers
        ];
        libraryToolDepends = [ alex happy ];
-       executableHaskellDepends = [ base optparse-applicative ];
+       executableHaskellDepends = [
+         base bytestring optparse-applicative prettyprinter
+       ];
        testHaskellDepends = [
-         base bytestring deepseq filepath prettyprinter process tasty
-         tasty-golden tasty-hunit temporary
+         base bytestring composition-prelude deepseq filepath prettyprinter
+         process tasty tasty-golden tasty-hunit temporary text
        ];
        benchmarkHaskellDepends = [
          base bytestring criterion prettyprinter text
@@ -152132,6 +152990,17 @@ self: {
        broken = true;
      }) {};
 
+  "keylayouts" = callPackage
+    ({ mkDerivation, base, bytestring, containers, text, xeno }:
+     mkDerivation {
+       pname = "keylayouts";
+       version = "0.1.0.2";
+       sha256 = "0hf7lmx8bgl5lh1i71x56nfbgnp8xrqfza3s5acq9i16g21ri292";
+       libraryHaskellDepends = [ base bytestring containers text xeno ];
+       description = "Tools for macOS .keylayout files";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "keyring" = callPackage
     ({ mkDerivation, base, udbus }:
      mkDerivation {
@@ -152206,8 +153075,8 @@ self: {
      }:
      mkDerivation {
        pname = "keystore";
-       version = "0.8.1.1";
-       sha256 = "013cvfp8cfj90lj4n41g8wwrv6xj3iql4m3zzawmpxzkqwmflsqy";
+       version = "0.8.2.0";
+       sha256 = "1y91mdy9gpzwxcf2h9s4afs9lzyxrffq4qhrip0ygvyd8qr8x95m";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -152292,16 +153161,14 @@ self: {
      }) {};
 
   "ki" = callPackage
-    ({ mkDerivation, base, concurrency, containers, dejafu, stm }:
+    ({ mkDerivation, base, containers, stm }:
      mkDerivation {
        pname = "ki";
-       version = "0.1.0.1";
-       sha256 = "16hw0y7r76gqhn3qnr8ac49yr1xq33g6rcfh8zxgkg59zf5bl35a";
-       revision = "1";
-       editedCabalFile = "03j64ya9n2ck6ddqk3dsvghnnqq6pfc6l9q4xj9ir8ry5cgxhrqp";
+       version = "0.2.0.1";
+       sha256 = "1nxmgv4kxh2whdsmj659iypf8gfjrqzyxzyzghapg1fmpffjpcyr";
        libraryHaskellDepends = [ base containers stm ];
-       testHaskellDepends = [ base concurrency dejafu stm ];
-       description = "A lightweight, structured concurrency library";
+       testHaskellDepends = [ base stm ];
+       description = "A lightweight, structured-concurrency library";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -154435,17 +155302,17 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "language-c_0_9" = callPackage
+  "language-c_0_9_0_1" = callPackage
     ({ mkDerivation, alex, array, base, bytestring, containers, deepseq
-     , directory, filepath, happy, mtl, pretty, process, syb
+     , directory, filepath, happy, mtl, pretty, process
      }:
      mkDerivation {
        pname = "language-c";
-       version = "0.9";
-       sha256 = "0a2z97ajdbql583jcganadi9frqj09cidqb1hlh0gl6w6aj82kii";
+       version = "0.9.0.1";
+       sha256 = "01yj353n85qcv9zvaf19f1260rip26h6gxqahplkx9fy7ybbnk6l";
        libraryHaskellDepends = [
          array base bytestring containers deepseq directory filepath mtl
-         pretty process syb
+         pretty process
        ];
        libraryToolDepends = [ alex happy ];
        testHaskellDepends = [ base directory filepath process ];
@@ -155559,15 +156426,15 @@ self: {
      }:
      mkDerivation {
        pname = "language-thrift";
-       version = "0.11.0.0";
-       sha256 = "0gxhpaspb8iyfhl8gxxn9an17blrh5vnkn3y9ywzslxkvj31nds5";
+       version = "0.12.0.0";
+       sha256 = "1a7v0337zvfc3x6665grzngs9m9ya3jk27h3blcz9p33m8rladhl";
        libraryHaskellDepends = [
          ansi-wl-pprint base containers megaparsec scientific semigroups
          text transformers
        ];
        testHaskellDepends = [
-         ansi-wl-pprint base containers hspec hspec-discover megaparsec
-         QuickCheck scientific semigroups text transformers
+         ansi-wl-pprint base containers hspec megaparsec QuickCheck
+         scientific semigroups text transformers
        ];
        testToolDepends = [ hspec-discover ];
        description = "Parser and pretty printer for the Thrift IDL format";
@@ -157204,8 +158071,8 @@ self: {
        pname = "lens-aeson";
        version = "1.1";
        sha256 = "03n9dkdyqkkf15h8k4c4bjwgjcbbs2an2cf6z8x54nvkjmprrg7p";
-       revision = "2";
-       editedCabalFile = "1ivxsj7igrrrzkwhw7ipcxnnr721797is6yfsrh3mha9dl8985sf";
+       revision = "3";
+       editedCabalFile = "10zm8r29c3hb5saxv3ryr67nsg8rf4dk67yjwysasd3jpkxghj5p";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          aeson attoparsec base bytestring lens scientific text
@@ -157743,8 +158610,8 @@ self: {
      }:
      mkDerivation {
        pname = "less-arbitrary";
-       version = "0.1.0.2";
-       sha256 = "0xqhlk4qqykb173pm6akd7jvygm5ya3qqw3xc649aiq053ralvif";
+       version = "0.1.4.0";
+       sha256 = "1rd21mnvr3wwzbl09070jmzbg7zl05kviaggpycyxybj4sq8lxm3";
        libraryHaskellDepends = [
          base containers email-validate generic-arbitrary genvalidity
          genvalidity-hspec genvalidity-property hashable hspec mtl
@@ -158105,8 +158972,8 @@ self: {
      }:
      mkDerivation {
        pname = "libarchive";
-       version = "3.0.1.1";
-       sha256 = "1i5801prr06vachxrpcc31bsxhsb6f8ik91mx7a9hmqkwhpr986b";
+       version = "3.0.2.1";
+       sha256 = "16h5pw49g9nc4aq7g8hwj1bq1raf1jas09xcsk99sylssvf2yf43";
        setupHaskellDepends = [ base Cabal chs-cabal ];
        libraryHaskellDepends = [
          base bytestring composition-prelude deepseq dlist filepath mtl
@@ -158966,6 +159833,18 @@ self: {
        license = stdenv.lib.licenses.gpl3Plus;
      }) {inherit (pkgs) libtelnet;};
 
+  "libversion" = callPackage
+    ({ mkDerivation, base, bytestring, libversion }:
+     mkDerivation {
+       pname = "libversion";
+       version = "0.1.0";
+       sha256 = "0w5maaklglbxp7k0ah699w1mhjsjrpgw9n7axld319dpfdwhl94j";
+       libraryHaskellDepends = [ base bytestring ];
+       libraryPkgconfigDepends = [ libversion ];
+       description = "Haskell binding to libversion";
+       license = stdenv.lib.licenses.bsd3;
+     }) {inherit (pkgs) libversion;};
+
   "libvirt-hs" = callPackage
     ({ mkDerivation, base, c2hs, libvirt, syb, unix }:
      mkDerivation {
@@ -162700,8 +163579,8 @@ self: {
      }:
      mkDerivation {
        pname = "logging-effect";
-       version = "1.3.11";
-       sha256 = "1r5qfip5xl22hq2v27b1lkcknixmc40wm7iya7vs3mrnwyavpmdb";
+       version = "1.3.12";
+       sha256 = "1bbh7aq3sbyya0w4p0qkkrryy7mpxw4s4cj2s6zvdsqq9fg2fpda";
        libraryHaskellDepends = [
          async base exceptions free monad-control mtl prettyprinter
          semigroups stm stm-delay text time transformers transformers-base
@@ -162828,6 +163707,8 @@ self: {
        pname = "logic-TPTP";
        version = "0.5.0.0";
        sha256 = "0sqzf332c7zdwkdi1346dxljrdammiz1vc332j85487nb0ypnxwi";
+       revision = "1";
+       editedCabalFile = "108fql6laqwvxvnk7h4jjl9652bhz7ja2z2296svjhhjz5pvar8g";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -162942,6 +163823,24 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "logstash" = callPackage
+    ({ mkDerivation, aeson, async, base, bytestring, data-default-class
+     , exceptions, monad-control, mtl, network, resource-pool, resourcet
+     , retry, stm, stm-chans, time, tls, unbounded-delays, unliftio
+     }:
+     mkDerivation {
+       pname = "logstash";
+       version = "0.1.0.1";
+       sha256 = "1hi77m4iijrkyg3v2g6m0yqh1vga35sbh9nq22g9mdflsv353ffi";
+       libraryHaskellDepends = [
+         aeson async base bytestring data-default-class exceptions
+         monad-control mtl network resource-pool resourcet retry stm
+         stm-chans time tls unbounded-delays unliftio
+       ];
+       description = "Logstash client library for Haskell";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "lojban" = callPackage
     ({ mkDerivation, base, containers, curl, directory, haskell98, HTTP
      , markov-chain, mtl, parsec, process, random, regex-compat, strict
@@ -163473,8 +164372,8 @@ self: {
      }:
      mkDerivation {
        pname = "lorentz";
-       version = "0.8.0";
-       sha256 = "1mzpi5vx18vi06bd5jkpixws01in69jqvg6hkzc7mxn75cw8gb34";
+       version = "0.9.0";
+       sha256 = "195z7kx7jv0118pbashbc441sf69xag5q43jwkdyf53cmvnxqcwq";
        libraryHaskellDepends = [
          aeson-pretty base bimap bytestring constraints containers
          data-default first-class-families fmt interpolate lens morley
@@ -164257,8 +165156,8 @@ self: {
      }:
      mkDerivation {
        pname = "lumberjack";
-       version = "0.1.0.3";
-       sha256 = "03y9v9ajh89ffacmnq0zfb83dyk6gd72msln7kksb69kkgcizd96";
+       version = "1.0.0.0";
+       sha256 = "1avv2qsncq10dfx3kqvd7q9dzwk1wmf39a61zw2cr8a8jpg89mfi";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -165459,6 +166358,25 @@ self: {
        broken = true;
      }) {};
 
+  "mail-reports" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, mtl, resourcet, streaming
+     , streaming-bytestring, streaming-utils, text, time, xml
+     , zip-archive
+     }:
+     mkDerivation {
+       pname = "mail-reports";
+       version = "0.2.0.0";
+       sha256 = "1g3jazpcyhsmiz9i9vx0n784n2n9nqzrbbnjhjlzji2si9gnkg9z";
+       libraryHaskellDepends = [
+         aeson base bytestring mtl resourcet streaming streaming-bytestring
+         streaming-utils text time xml zip-archive
+       ];
+       description = "A parser library for DMARC and SMTP TLS reports";
+       license = stdenv.lib.licenses.agpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "mailbox-count" = callPackage
     ({ mkDerivation, base, cmdargs, configurator, containers, directory
      , doctest, filemanip, filepath, HDBC, HDBC-postgresql, HDBC-sqlite3
@@ -166534,13 +167452,13 @@ self: {
      }) {};
 
   "markdown-unlit" = callPackage
-    ({ mkDerivation, base, base-compat, directory, hspec, QuickCheck
-     , silently, stringbuilder, temporary
+    ({ mkDerivation, base, base-compat, directory, hspec
+     , hspec-discover, QuickCheck, silently, stringbuilder, temporary
      }:
      mkDerivation {
        pname = "markdown-unlit";
-       version = "0.5.0";
-       sha256 = "1gy79vr85vcp13rdjh0hz7zv6daqqffww4j0cqn2lpjjh9xhsbg7";
+       version = "0.5.1";
+       sha256 = "0njzn56m8z6lm70xyixbylbnpjz1gk7x8vdsdvi3qld9m66gc3n7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base base-compat ];
@@ -166549,6 +167467,7 @@ self: {
          base base-compat directory hspec QuickCheck silently stringbuilder
          temporary
        ];
+       testToolDepends = [ hspec-discover ];
        description = "Literate Haskell support for Markdown";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -166920,8 +167839,8 @@ self: {
      }:
      mkDerivation {
        pname = "massiv";
-       version = "0.5.7.0";
-       sha256 = "04vv16h048gkfgqsdf3a42qrg62cik9j30p4s13rykq0shzcaf62";
+       version = "0.5.9.0";
+       sha256 = "11i527mnyznpyqwr61cr3jhx4xs3y8m7948mqp6rwkis6lnvl2ms";
        libraryHaskellDepends = [
          base bytestring data-default-class deepseq exceptions primitive
          scheduler unliftio-core vector
@@ -166984,10 +167903,8 @@ self: {
      }:
      mkDerivation {
        pname = "massiv-test";
-       version = "0.1.5";
-       sha256 = "0n9fcdz9v7j1r2iln9h0wkjr7jkghi3r3a3lm0713p6hwy6cpgff";
-       revision = "1";
-       editedCabalFile = "0v6vnjsqklb8yaf63zhx9ni0ak83zyjq2l3mb8zazp54inyyfjr0";
+       version = "0.1.6";
+       sha256 = "1cg41rkk19jyvkkx3nkd10lq738cg5kv29nrzwxqcm5v308av38i";
        libraryHaskellDepends = [
          base bytestring data-default-class deepseq exceptions hspec massiv
          primitive QuickCheck scheduler unliftio vector
@@ -167984,28 +168901,27 @@ self: {
      }) {};
 
   "mcmc" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, containers, criterion
-     , data-default, directory, dirichlet, double-conversion, hspec
-     , hspec-discover, log-domain, math-functions, microlens, mwc-random
-     , primitive, QuickCheck, statistics, time, transformers, vector
-     , zlib
+    ({ mkDerivation, aeson, base, bytestring, circular, containers
+     , criterion, data-default, deepseq, directory, dirichlet
+     , double-conversion, hspec, log-domain, microlens, monad-parallel
+     , mwc-random, pretty-show, primitive, statistics, time
+     , transformers, vector, zlib
      }:
      mkDerivation {
        pname = "mcmc";
-       version = "0.3.0";
-       sha256 = "1xkg16gmhqh60z69gz6d51c9yb7q9j2w8aylhpxgh18yz35mw4j1";
+       version = "0.4.0.0";
+       sha256 = "1wfp73qis73xmzxwbxx3r9z55x6ydk5c6j0daf81zyllkv4mw9v4";
        libraryHaskellDepends = [
-         aeson base bytestring containers data-default directory dirichlet
-         double-conversion log-domain math-functions microlens mwc-random
-         primitive statistics time transformers vector zlib
+         aeson base bytestring circular containers data-default deepseq
+         directory dirichlet double-conversion log-domain microlens
+         monad-parallel mwc-random pretty-show primitive statistics time
+         transformers vector zlib
        ];
        testHaskellDepends = [
-         base directory hspec hspec-discover log-domain mwc-random
-         QuickCheck statistics vector
+         base hspec log-domain mwc-random statistics
        ];
-       testToolDepends = [ hspec-discover ];
        benchmarkHaskellDepends = [
-         base criterion log-domain microlens mwc-random statistics vector
+         base criterion log-domain microlens mwc-random
        ];
        description = "Sample from a posterior using Markov chain Monte Carlo";
        license = stdenv.lib.licenses.gpl3Plus;
@@ -168534,6 +169450,8 @@ self: {
        pname = "megaparsec";
        version = "9.0.1";
        sha256 = "00953zvxfyjibw8c1ssmixxh0cwn59pz24zbh6s34rk3v14vqa3j";
+       revision = "1";
+       editedCabalFile = "00vjc5b1x6yd0jqsbcahvghlkwai65dl1ib6744a0lhsa9vsni12";
        libraryHaskellDepends = [
          base bytestring case-insensitive containers deepseq mtl
          parser-combinators scientific text transformers
@@ -168555,6 +169473,8 @@ self: {
        pname = "megaparsec-tests";
        version = "9.0.1";
        sha256 = "0synm14x1k9r5q7xmv21z0y95b42g7lvwn78mcnc3cx62x6393ng";
+       revision = "1";
+       editedCabalFile = "1iz18gmhqvxwiw6r35nd6p2m3zjpzsy0bzhwgbfxpjbvvcgy8736";
        libraryHaskellDepends = [
          base bytestring containers hspec hspec-expectations
          hspec-megaparsec megaparsec mtl QuickCheck text transformers
@@ -170171,13 +171091,11 @@ self: {
      }:
      mkDerivation {
        pname = "microstache";
-       version = "1.0.1.1";
-       sha256 = "0851sqr1ppdj6m822635pa3j6qzdf25gyrhkjs25zdry6518bsax";
-       revision = "7";
-       editedCabalFile = "05ia18kywpmk01sqnywflfq0ck3yivh8rc178f575py1zrdpn3l7";
+       version = "1.0.1.2";
+       sha256 = "1xdca11z5cy7vfy2dszhr6qvlrxw6pn0d9iri7mg56lvi02javik";
        libraryHaskellDepends = [
-         aeson base bytestring containers deepseq directory filepath parsec
-         text transformers unordered-containers vector
+         aeson base containers deepseq directory filepath parsec text
+         transformers unordered-containers vector
        ];
        testHaskellDepends = [
          aeson base bytestring containers hspec parsec text
@@ -171631,8 +172549,8 @@ self: {
      }:
      mkDerivation {
        pname = "mixpanel-client";
-       version = "0.2.1";
-       sha256 = "1gangs1ivbg0hyc804flmxq7fgai3qlf2fnsw1r9dyjb5d91smp1";
+       version = "0.3.0";
+       sha256 = "1yk4p1cyw0gz9q9j7sw4mnfp2597a0k84l8ygpp2f0fndj6jmw4m";
        libraryHaskellDepends = [
          aeson base base64-bytestring bytestring http-client http-client-tls
          servant servant-client string-conv text time
@@ -171861,6 +172779,17 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "mmsyn2-array" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "mmsyn2-array";
+       version = "0.1.1.0";
+       sha256 = "0dcvs5s11s840fvl17h5qrz5x6fmzvvjkfxmbk8r0p13n4k2a0ny";
+       libraryHaskellDepends = [ base ];
+       description = "A library with less dependencies that can be used for multiple Ord a => a -> b transformations";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "mmsyn3" = callPackage
     ({ mkDerivation, base, directory }:
      mkDerivation {
@@ -171873,20 +172802,15 @@ self: {
      }) {};
 
   "mmsyn4" = callPackage
-    ({ mkDerivation, base, directory, mmsyn2, mmsyn3, process, vector
-     }:
+    ({ mkDerivation, base, directory, mmsyn3, process }:
      mkDerivation {
        pname = "mmsyn4";
-       version = "0.5.0.0";
-       sha256 = "05r33lx2cxsf7a14809dgs7lhfqlglshpv22jfzrl2xy0rl3x4qz";
+       version = "0.6.3.0";
+       sha256 = "06lp72rbkna5hrw8zbwz7wqijchcbc9y1nl5d1gp4z3gq1324za5";
        isLibrary = true;
        isExecutable = true;
-       libraryHaskellDepends = [
-         base directory mmsyn2 mmsyn3 process vector
-       ];
-       executableHaskellDepends = [
-         base directory mmsyn2 mmsyn3 process vector
-       ];
+       libraryHaskellDepends = [ base directory mmsyn3 process ];
+       executableHaskellDepends = [ base directory mmsyn3 process ];
        description = "The \"glue\" between electronic tables and GraphViz";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -171925,6 +172849,29 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "mmsyn6ukr-array" = callPackage
+    ({ mkDerivation, base, bytestring, directory, mmsyn2-array, mmsyn3
+     , mmsyn5, process, ukrainian-phonetics-basic-array
+     }:
+     mkDerivation {
+       pname = "mmsyn6ukr-array";
+       version = "0.2.1.0";
+       sha256 = "0hjpygn10k6d554nkkrmdxv6p8m2aalgs0m33j2gn7myfnzj39fl";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base bytestring directory mmsyn2-array mmsyn3 mmsyn5 process
+         ukrainian-phonetics-basic-array
+       ];
+       executableHaskellDepends = [
+         base bytestring directory mmsyn2-array mmsyn3 mmsyn5 process
+         ukrainian-phonetics-basic-array
+       ];
+       description = "A musical instrument synthesizer or a tool for Ukrainian language listening";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "mmsyn7h" = callPackage
     ({ mkDerivation, base, bytestring, directory, mmsyn2, mmsyn3
      , mmsyn6ukr, mmsyn7s, mmsyn7ukr, process, vector
@@ -172170,8 +173117,8 @@ self: {
      }:
      mkDerivation {
        pname = "mod";
-       version = "0.1.2.0";
-       sha256 = "116dm3cid2hh4gii4k806670xz7syxajxmbxka61d43f3719z65y";
+       version = "0.1.2.1";
+       sha256 = "0fjcjk9jxwc2d1fm3kzamh9gi3lwnl2g6kz3z2hd43dszkay1mn1";
        libraryHaskellDepends = [
          base deepseq integer-gmp primitive semirings vector
        ];
@@ -173142,20 +174089,35 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "monad-logger-logstash" = callPackage
+    ({ mkDerivation, aeson, base, logstash, monad-logger, retry, stm
+     , stm-chans, text, transformers, unliftio
+     }:
+     mkDerivation {
+       pname = "monad-logger-logstash";
+       version = "0.1.0.0";
+       sha256 = "1k8k5dymnjz2k4iabvwdvy8wzs8gpgqhppsr01z9r32bsslcd5ch";
+       libraryHaskellDepends = [
+         aeson base logstash monad-logger retry stm stm-chans text
+         transformers unliftio
+       ];
+       description = "Logstash backend for monad-logger";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "monad-logger-prefix" = callPackage
-    ({ mkDerivation, base, criterion, doctest, exceptions, Glob, hspec
-     , monad-control, monad-logger, mtl, QuickCheck, resourcet, text
-     , transformers, transformers-base
+    ({ mkDerivation, base, criterion, exceptions, monad-control
+     , monad-logger, mtl, resourcet, text, transformers
+     , transformers-base, unliftio-core
      }:
      mkDerivation {
        pname = "monad-logger-prefix";
-       version = "0.1.11";
-       sha256 = "0zw591nqgyqy37vj0vmyyd2m7v6cyx8bgwfm1xhf1ppbxhjx38nv";
+       version = "0.1.12";
+       sha256 = "00gsp7mhvqvfbdh75lgr73j5adw3hd4cp969h241gaw892z3qvws";
        libraryHaskellDepends = [
          base exceptions monad-control monad-logger mtl resourcet text
-         transformers transformers-base
+         transformers transformers-base unliftio-core
        ];
-       testHaskellDepends = [ base doctest Glob hspec QuickCheck ];
        benchmarkHaskellDepends = [ base criterion monad-logger ];
        description = "Add prefixes to your monad-logger output";
        license = stdenv.lib.licenses.asl20;
@@ -173281,8 +174243,8 @@ self: {
      }:
      mkDerivation {
        pname = "monad-metrics";
-       version = "0.2.1.4";
-       sha256 = "0h83kh1qc3wf9i0l8k998zib6fvf8fpwzn3qiz0d6z7az0i947cf";
+       version = "0.2.2.0";
+       sha256 = "13wsz9c02jsh5sh2kka1v7kna1aij51794n7g52ib27qmxgg9qvq";
        libraryHaskellDepends = [
          base clock ekg-core exceptions hashable microlens mtl text
          transformers unordered-containers
@@ -174835,8 +175797,8 @@ self: {
      }:
      mkDerivation {
        pname = "morley";
-       version = "1.10.0";
-       sha256 = "08mj8jzrbqqzn3vr5hlpbzhgik3i3544xn5inm28j40vhlahvmzk";
+       version = "1.11.0";
+       sha256 = "06l83vida9kyyh9xc4rhjp7q36iq2knn4p2mrl9j7nvsinrqprcn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -179296,8 +180258,8 @@ self: {
      }:
      mkDerivation {
        pname = "nanovg-simple";
-       version = "0.4.0.0";
-       sha256 = "0k9sykyipj6gndkgk9j2l4r7a4kac851g077279a2j1k45dilcjn";
+       version = "0.5.0.0";
+       sha256 = "0z4gif0n56799llcm0l1p1d2qzxvfyrxvgzny58d8ymsgizldp6d";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -179915,6 +180877,39 @@ self: {
        broken = true;
      }) {};
 
+  "neptune-backend" = callPackage
+    ({ mkDerivation, aeson, base, base64-bytestring, bytestring
+     , case-insensitive, concurrent-extra, containers, deepseq, envy
+     , exceptions, hspec, http-api-data, http-client, http-client-tls
+     , http-media, http-types, iso8601-time, jwt, katip, lens
+     , lens-aeson, microlens, modern-uri, mtl, network, QuickCheck
+     , random, req, retry, rio, safe-exceptions, semigroups, text, time
+     , transformers, unix, unordered-containers, uuid, vector
+     , websockets, wuss
+     }:
+     mkDerivation {
+       pname = "neptune-backend";
+       version = "0.2.1";
+       sha256 = "0i6dw3g1sdhnf33g88rp251irzfmvvl77fz3ihvwzmy44qavdhrp";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base base64-bytestring bytestring case-insensitive
+         concurrent-extra containers deepseq envy exceptions http-api-data
+         http-client http-client-tls http-media http-types iso8601-time jwt
+         katip lens lens-aeson microlens modern-uri mtl network random req
+         retry rio safe-exceptions text time transformers unix
+         unordered-containers uuid vector websockets wuss
+       ];
+       executableHaskellDepends = [ base mtl rio ];
+       testHaskellDepends = [
+         aeson base bytestring containers hspec iso8601-time mtl QuickCheck
+         semigroups text time transformers unordered-containers vector
+       ];
+       description = "Neptune Client";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "nerf" = callPackage
     ({ mkDerivation, base, binary, bytestring, cmdargs, containers
      , crf-chain1, data-named, dawg, directory, filepath, IntervalMap
@@ -180185,8 +181180,8 @@ self: {
      }:
      mkDerivation {
        pname = "net-spider";
-       version = "0.4.3.4";
-       sha256 = "1whn8hkwbqx76vn1550j9fjkjhj7fxp295dcsv5jl25cvxpj5rml";
+       version = "0.4.3.5";
+       sha256 = "0y5jkkixrbm25z1vyhk5qmql1962jhhl6ifz8ba7fiwdv8qi1ndk";
        libraryHaskellDepends = [
          aeson base containers data-interval extended-reals greskell
          greskell-websocket hashable monad-logger regex-applicative
@@ -180207,8 +181202,8 @@ self: {
      }:
      mkDerivation {
        pname = "net-spider-cli";
-       version = "0.2.0.4";
-       sha256 = "0g9p1l3pyd8c43fj1h4c29n44257n4awlsqb4g821a62s4mjypwf";
+       version = "0.2.0.5";
+       sha256 = "011s533mv5flvmq58vsr2fnydk954lkyfif6d9fs87555dwiskyd";
        libraryHaskellDepends = [
          aeson base greskell-core hashable net-spider optparse-applicative
          text
@@ -180226,8 +181221,8 @@ self: {
      }:
      mkDerivation {
        pname = "net-spider-pangraph";
-       version = "0.2.0.2";
-       sha256 = "1i7prpj85mbmwqdhfi8q2lxk89a2vv3n4r886sq2nygka0pw0azc";
+       version = "0.2.0.3";
+       sha256 = "0mjp5mvfp4hq8kna5f0pwmyc7s43ghhw91hc94n6xf6y4dnx0c2c";
        libraryHaskellDepends = [
          base bytestring greskell net-spider pangraph text time
        ];
@@ -180247,8 +181242,8 @@ self: {
      }:
      mkDerivation {
        pname = "net-spider-rpl";
-       version = "0.4.1.3";
-       sha256 = "0sflq9sg4xnfgfbx2iikvkzrs44kb11s6v23h3q3zwy1kdxakhr8";
+       version = "0.4.1.4";
+       sha256 = "0pmmxvfg8y8xymkkxka2c7jk83as5b6d5wmi0x9cml8hsnvlcifx";
        libraryHaskellDepends = [
          aeson base conduit conduit-parse greskell hashable ip monad-logger
          mtl net-spider regex-applicative safe-exceptions text time
@@ -180271,8 +181266,8 @@ self: {
      }:
      mkDerivation {
        pname = "net-spider-rpl-cli";
-       version = "0.1.3.2";
-       sha256 = "1nqhrfbii58rhh19nxhr9zaqm3pd0yvlshwdwl50xrw7hr0jjxfc";
+       version = "0.1.3.3";
+       sha256 = "1cxp61nkl0vbks9ny7gpyjjiqg3cvzbz934iia66g2iwkbnfx250";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -181023,8 +182018,8 @@ self: {
     ({ mkDerivation, base, bytestring, network, text, time, vector }:
      mkDerivation {
        pname = "network-carbon";
-       version = "1.0.14";
-       sha256 = "1jrmda71gkcpppzv8s44kms4vz4zj7yb67wyr882s2b4hcf4il5b";
+       version = "1.0.15";
+       sha256 = "1w6a267h6svgx4wvbjy134wl2cvjdgicb0hcyrmb3z1d6bgy09dv";
        libraryHaskellDepends = [
          base bytestring network text time vector
        ];
@@ -182416,8 +183411,8 @@ self: {
      }:
      mkDerivation {
        pname = "ngx-export-tools";
-       version = "0.4.9.0";
-       sha256 = "0z1b3vzq11ifx3n8pmwary138ccqsfafzpl1nf27094rvr1ijjyn";
+       version = "0.4.9.1";
+       sha256 = "0ib0xzs815q29a2v1m550g7cm5cr7l6lkslmi0lpcxpfgpi08ccv";
        libraryHaskellDepends = [
          aeson base binary bytestring ngx-export safe template-haskell
        ];
@@ -182434,8 +183429,8 @@ self: {
      }:
      mkDerivation {
        pname = "ngx-export-tools-extra";
-       version = "0.6.0.1";
-       sha256 = "0xgnjriq9c3r9vpnkm0ldjqghss9ahjzk8ckrwq59bmdhns3fvx9";
+       version = "0.6.1.1";
+       sha256 = "1gqns0ifrmjd1013jfa9c03xwdmqicdvazjc9kkxyzw4mpjgjils";
        libraryHaskellDepends = [
          aeson array base base64 binary bytestring case-insensitive
          containers ede enclosed-exceptions http-client http-types network
@@ -182929,8 +183924,8 @@ self: {
      }:
      mkDerivation {
        pname = "nix-tree";
-       version = "0.1.2.0";
-       sha256 = "0indbvsjsl0m325f0vhzhllrhkq27agnbrmhzz7k0klprssf1hsn";
+       version = "0.1.3.0";
+       sha256 = "03ih8gz26rpkipd46zbrkpr9lp23q0nnq8ks6j80d32096n7q59i";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -184152,8 +185147,8 @@ self: {
      }:
      mkDerivation {
        pname = "nri-env-parser";
-       version = "0.1.0.2";
-       sha256 = "0cl9f6p83k0r7ha6hzgmrv0abi9rw5p0wr838jyhazk179g37rrn";
+       version = "0.1.0.3";
+       sha256 = "0335bpjqvkazfjx2k0dm460hzdwcwz1rn82x0nvf441njjqz6846";
        libraryHaskellDepends = [
          base modern-uri network-uri nri-prelude text
        ];
@@ -184163,26 +185158,23 @@ self: {
 
   "nri-prelude" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, async, auto-update, base
-     , bytestring, concurrent-output, containers, directory, exceptions
-     , filepath, hedgehog, junit-xml, pretty-diff, pretty-show
-     , resourcet, safe-exceptions, tasty, tasty-test-reporter
+     , bytestring, containers, directory, exceptions, filepath, hedgehog
+     , junit-xml, pretty-diff, pretty-show, safe-exceptions
      , terminal-size, text, time, vector
      }:
      mkDerivation {
        pname = "nri-prelude";
-       version = "0.2.0.0";
-       sha256 = "061klliw29a8kkbwgqkhqbil7jq85pxgmqn21xwszi0g16jb8ayx";
+       version = "0.3.0.0";
+       sha256 = "1dijid038rvviz063ncviq1mw20hsk02gidcf68vzy99d16kn5c9";
        libraryHaskellDepends = [
-         aeson ansi-terminal async auto-update base bytestring
-         concurrent-output containers directory exceptions filepath hedgehog
-         junit-xml pretty-diff pretty-show resourcet safe-exceptions tasty
-         tasty-test-reporter terminal-size text time vector
+         aeson ansi-terminal async auto-update base bytestring containers
+         directory exceptions filepath hedgehog junit-xml pretty-diff
+         pretty-show safe-exceptions terminal-size text time vector
        ];
        testHaskellDepends = [
-         aeson ansi-terminal async auto-update base bytestring
-         concurrent-output containers directory exceptions filepath hedgehog
-         junit-xml pretty-diff pretty-show resourcet safe-exceptions tasty
-         tasty-test-reporter terminal-size text time vector
+         aeson ansi-terminal async auto-update base bytestring containers
+         directory exceptions filepath hedgehog junit-xml pretty-diff
+         pretty-show safe-exceptions terminal-size text time vector
        ];
        description = "A Prelude inspired by the Elm programming language";
        license = stdenv.lib.licenses.bsd3;
@@ -184701,16 +185693,14 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "numhask_0_7_0_0" = callPackage
+  "numhask_0_7_1_0" = callPackage
     ({ mkDerivation, base, bifunctors, doctest, mmorph, protolude
      , QuickCheck, random, text, transformers
      }:
      mkDerivation {
        pname = "numhask";
-       version = "0.7.0.0";
-       sha256 = "03rf8yk30kqbmq4jdvm3jnqdfx09nmki0kd7y9g2v7g07j2y1qx9";
-       revision = "1";
-       editedCabalFile = "1n1kilds4c98swbjrybl18d7z82bq4m56nlv03an7b9002wv8xn4";
+       version = "0.7.1.0";
+       sha256 = "1qkrmbz72zmmpn5mpqvz0k46b5yvkhwbiwkx8z06291xyz3qn9cx";
        libraryHaskellDepends = [
          base bifunctors mmorph protolude random text transformers
        ];
@@ -184830,15 +185820,16 @@ self: {
 
   "numhask-space" = callPackage
     ({ mkDerivation, adjunctions, base, containers, distributive
-     , doctest, numhask, semigroupoids, tdigest, text, time
+     , doctest, numhask, random, semigroupoids, tdigest, text, time
+     , vector
      }:
      mkDerivation {
        pname = "numhask-space";
-       version = "0.7.0.0";
-       sha256 = "1vvm6px9wlqm07sc2p2df100x1pg2rgy363c59v1c910120lpdjd";
+       version = "0.7.1.0";
+       sha256 = "1wn4fi2778dxmqfimwx9favwd6v507vzpwms04w2bk5gn1fxgcdg";
        libraryHaskellDepends = [
-         adjunctions base containers distributive numhask semigroupoids
-         tdigest text time
+         adjunctions base containers distributive numhask random
+         semigroupoids tdigest text time vector
        ];
        testHaskellDepends = [ base doctest numhask ];
        description = "Numerical spaces";
@@ -186743,8 +187734,8 @@ self: {
      }:
      mkDerivation {
        pname = "openapi3";
-       version = "3.0.0.1";
-       sha256 = "12sa72v9iljq40r05ikcf336724v5cc3qznc30ba8b8bm4b29r8m";
+       version = "3.0.1.0";
+       sha256 = "03icxn4zbk6yasj6wca7qdg5cac5fadr4qcxyn4gblkffmqkb5lc";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cabal-doctest ];
@@ -188453,14 +189444,16 @@ self: {
 
   "ordinal" = callPackage
     ({ mkDerivation, base, containers, data-default, hspec
-     , hspec-discover, QuickCheck, regex, template-haskell, text, vector
+     , hspec-discover, QuickCheck, regex, template-haskell, text, time
+     , vector
      }:
      mkDerivation {
        pname = "ordinal";
-       version = "0.3.1.0";
-       sha256 = "16y8a4xrrna6cwzy8lvvykdb9jgk5qswrwd8dn7iqgmhqck271x8";
+       version = "0.4.0.0";
+       sha256 = "1k0hpp5p546zlvwsy1d8hypryfwqvqdifmk3cqifw3xsdrqv3d8y";
        libraryHaskellDepends = [
-         base containers data-default regex template-haskell text vector
+         base containers data-default regex template-haskell text time
+         vector
        ];
        testHaskellDepends = [ base hspec QuickCheck text ];
        testToolDepends = [ hspec-discover ];
@@ -189400,6 +190393,24 @@ self: {
        broken = true;
      }) {};
 
+  "paddle" = callPackage
+    ({ mkDerivation, aeson, base, base64-bytestring, bytestring
+     , containers, HsOpenSSL, http-api-data, http-client, protolude
+     , scientific, servant, servant-client, servant-client-core, time
+     }:
+     mkDerivation {
+       pname = "paddle";
+       version = "0.1.0.0";
+       sha256 = "0j08q2a2hgh5wga114fmbcl5jn44cs6a6ajh1924l5akd0dvairc";
+       libraryHaskellDepends = [
+         aeson base base64-bytestring bytestring containers HsOpenSSL
+         http-api-data http-client protolude scientific servant
+         servant-client servant-client-core time
+       ];
+       description = "API to the Paddle payment processor";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "pads-haskell" = callPackage
     ({ mkDerivation, base, byteorder, bytestring, containers, ghc-prim
      , haskell-src-meta, HUnit, mainland-pretty, mtl, mwc-random, parsec
@@ -189694,8 +190705,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc";
-       version = "2.11.2";
-       sha256 = "10p2vmdjwgbzrbzrpsplbs67pycwz91aww4iz1rclw382xag42nb";
+       version = "2.11.3.2";
+       sha256 = "1p4l6h9wpsfqxvziwx4vvsq02jdwwwqq92gvrdxi4ad2q7nlgivr";
        configureFlags = [ "-fhttps" "-f-trypandoc" ];
        isLibrary = true;
        isExecutable = true;
@@ -189793,10 +190804,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-crossref";
-       version = "0.3.8.4";
-       sha256 = "098xp2n6rmg2vhaip8yyvrr534cllb1s6kj9p6r4iqqv4w3nc2sb";
-       revision = "1";
-       editedCabalFile = "1p1gkq4sgyxnfnna1avjmbw4ifrsmw920qhnaa4nkmbpgmccdca2";
+       version = "0.3.9.0";
+       sha256 = "18hxvzrl4b9y3343nissbcxrl4g8x82yrinyir9ifgmpz5ikg248";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -189820,8 +190829,6 @@ self: {
        ];
        description = "Pandoc filter for cross-references";
        license = stdenv.lib.licenses.gpl2;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "pandoc-csv2table" = callPackage
@@ -189987,8 +190994,6 @@ self: {
        ];
        description = "A Pandoc filter for including code from source files";
        license = stdenv.lib.licenses.mpl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "pandoc-japanese-filters" = callPackage
@@ -190025,6 +191030,19 @@ self: {
        broken = true;
      }) {};
 
+  "pandoc-link-context" = callPackage
+    ({ mkDerivation, base, containers, pandoc-types, relude, text }:
+     mkDerivation {
+       pname = "pandoc-link-context";
+       version = "1.0.0.0";
+       sha256 = "0pl232p0cdn810jyp3xjdhf3zfj6ryjmb1f462l4jivawffyjfd4";
+       libraryHaskellDepends = [
+         base containers pandoc-types relude text
+       ];
+       description = "Extract \"contextual links\" from Pandoc";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "pandoc-markdown-ghci-filter" = callPackage
     ({ mkDerivation, aeson, base, containers, ghcid, pandoc
      , pandoc-types, QuickCheck, tasty, tasty-hunit, tasty-quickcheck
@@ -190110,14 +191128,14 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-plot";
-       version = "1.0.0.0";
-       sha256 = "1vls3xvj8zijl6sd698f8jljqslm4jnk07v8vzlm0s2gab2lcgmj";
+       version = "1.0.1.0";
+       sha256 = "0p7sfsi70vbwkxwknl5k31qsvnkwvhdjr8c2q7y0pjz3xz9zdrjq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base bytestring containers data-default directory filepath hashable
          lifted-async lifted-base mtl pandoc pandoc-types shakespeare
-         tagsoup text typed-process yaml
+         tagsoup template-haskell text typed-process yaml
        ];
        executableHaskellDepends = [
          base containers directory filepath githash optparse-applicative
@@ -190289,8 +191307,8 @@ self: {
     ({ mkDerivation }:
      mkDerivation {
        pname = "pandora";
-       version = "0.3.2";
-       sha256 = "1dj07dnljy1b7m9sq5dlxvvl8rbla8cf129s2wcw24x31j3ga96b";
+       version = "0.3.3";
+       sha256 = "16jaq5q0b2q230iwhfhs2p1fmmqb38zssr7zbgjmry2045ya2dhh";
        description = "A box of patterns and paradigms";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -191324,6 +192342,29 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "parochial" = callPackage
+    ({ mkDerivation, base, blaze-html, blaze-markup, Cabal, directory
+     , filepath, filepattern, hackage-db, hoogle, optparse-generic
+     , posix-paths, protolude, text, unix-compat
+     }:
+     mkDerivation {
+       pname = "parochial";
+       version = "0.1.0.0";
+       sha256 = "14sjpm97cl3i4ndnl8dmqd08an6y7n11yarhfw5wr7k5l3lrw64c";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base blaze-html blaze-markup Cabal directory filepath filepattern
+         hackage-db hoogle optparse-generic posix-paths protolude text
+         unix-compat
+       ];
+       executableHaskellDepends = [
+         base Cabal optparse-generic protolude
+       ];
+       description = "Help Manage project specific documentation";
+       license = stdenv.lib.licenses.agpl3;
+     }) {};
+
   "parport" = callPackage
     ({ mkDerivation, array, base }:
      mkDerivation {
@@ -191436,8 +192477,8 @@ self: {
        pname = "parsec";
        version = "3.1.14.0";
        sha256 = "132waj2cpn892midbhpkfmb74qq83v0zv29v885frlp1gvh94b67";
-       revision = "1";
-       editedCabalFile = "0dhg5xwqnig83hbkpawqi1k2prrps7jhkj4gb3ccram2drfmb933";
+       revision = "2";
+       editedCabalFile = "1xyjd06nns0k65k4ig2azrijy43gnbvpcfwb3jpd8vmn2fnk0yib";
        libraryHaskellDepends = [ base bytestring mtl text ];
        testHaskellDepends = [
          base HUnit mtl test-framework test-framework-hunit
@@ -192146,23 +193187,21 @@ self: {
   "password" = callPackage
     ({ mkDerivation, base, base-compat, base64, bytestring, Cabal
      , cabal-doctest, cryptonite, doctest, memory, QuickCheck
-     , quickcheck-instances, scrypt, tasty, tasty-quickcheck
-     , template-haskell, text
+     , quickcheck-instances, scrypt, tasty, tasty-hunit
+     , tasty-quickcheck, template-haskell, text
      }:
      mkDerivation {
        pname = "password";
-       version = "2.0.1.1";
-       sha256 = "1fi39w79p7jaw85i5r8f4flw7s1n2ljxj5ci9gda6a556015w1p8";
-       revision = "1";
-       editedCabalFile = "1r27scxmkmvw8nbcg4x3k10ibq4qhrmpwgnqbnz32g1fvw7mlxg3";
+       version = "2.1.0.0";
+       sha256 = "1v8hbjy0r6l0c6r0l4832z9whadx195fzxpn9l19zjb5ylz1zmqc";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
-         base base64 bytestring cryptonite memory text
+         base base64 bytestring cryptonite memory template-haskell text
        ];
        testHaskellDepends = [
          base base-compat bytestring cryptonite doctest memory QuickCheck
-         quickcheck-instances scrypt tasty tasty-quickcheck template-haskell
-         text
+         quickcheck-instances scrypt tasty tasty-hunit tasty-quickcheck
+         template-haskell text
        ];
        description = "Hashing and checking of passwords";
        license = stdenv.lib.licenses.bsd3;
@@ -192708,16 +193747,13 @@ self: {
      }) {};
 
   "pava" = callPackage
-    ({ mkDerivation, base, criterion, hspec, hspec-discover, mwc-random
-     , vector
-     }:
+    ({ mkDerivation, base, criterion, hspec, mwc-random, vector }:
      mkDerivation {
        pname = "pava";
-       version = "0.1.0.0";
-       sha256 = "0pi8pgfha113064fxl9vmd72drxxlj6zld4fqrf3y2qwhyikka5v";
+       version = "0.1.1.0";
+       sha256 = "0zb5zp90ld4g2zlm11ns603q7jymx23n110vrm74f842xdxffkfs";
        libraryHaskellDepends = [ base vector ];
-       testHaskellDepends = [ base hspec hspec-discover vector ];
-       testToolDepends = [ hspec-discover ];
+       testHaskellDepends = [ base hspec vector ];
        benchmarkHaskellDepends = [ base criterion mwc-random vector ];
        description = "Greatest convex majorants and least concave minorants";
        license = stdenv.lib.licenses.gpl3Plus;
@@ -193119,6 +194155,29 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "pcre2" = callPackage
+    ({ mkDerivation, base, containers, criterion, hspec
+     , microlens-platform, mtl, pcre-light, regex-pcre-builtin
+     , template-haskell, text
+     }:
+     mkDerivation {
+       pname = "pcre2";
+       version = "1.1.3.1";
+       sha256 = "1gm9dd2b2vsx24i3am66ml5xx951994h06p20b7fi22g8xh66hh2";
+       libraryHaskellDepends = [
+         base containers mtl template-haskell text
+       ];
+       testHaskellDepends = [
+         base containers hspec microlens-platform mtl template-haskell text
+       ];
+       benchmarkHaskellDepends = [
+         base containers criterion microlens-platform mtl pcre-light
+         regex-pcre-builtin template-haskell text
+       ];
+       description = "Regular expressions via the PCRE2 C library (included)";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "pdf-slave" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, bytestring
      , containers, directory, exceptions, haskintex, HaTeX
@@ -194331,42 +195390,14 @@ self: {
     ({ 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, silently, template-haskell, text, time
+     , resourcet, scientific, shakespeare, silently, text, time
      , transformers, unliftio, unliftio-core, unordered-containers
      , vector
      }:
      mkDerivation {
        pname = "persistent";
-       version = "2.10.5.3";
-       sha256 = "18d9x12v4zldyzjm35gxzlcljqrmgpr1501zwdayy1h6iy7lbfb8";
-       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
-         template-haskell 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 text time
-         transformers unordered-containers vector
-       ];
-       description = "Type-safe, multi-backend data serialization";
-       license = stdenv.lib.licenses.mit;
-       maintainers = with stdenv.lib.maintainers; [ psibi ];
-     }) {};
-
-  "persistent_2_11_0_1" = 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, silently, text, time, transformers
-     , unliftio, unliftio-core, unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "persistent";
-       version = "2.11.0.1";
-       sha256 = "0nmgjk5jpsh7dxwyghvmnislxj8m77sdp9hg6anh7ba94xs7wcjv";
+       version = "2.11.0.2";
+       sha256 = "09dvwh9hdc50zr6yvbzp8a9n70yjqwa2kzvjm80l9m34p29v8kkc";
        libraryHaskellDepends = [
          aeson attoparsec base base64-bytestring blaze-html bytestring
          conduit containers fast-logger http-api-data monad-logger mtl
@@ -194375,12 +195406,11 @@ self: {
        ];
        testHaskellDepends = [
          aeson attoparsec base base64-bytestring blaze-html bytestring
-         containers hspec http-api-data path-pieces scientific text time
-         transformers unordered-containers vector
+         containers hspec http-api-data path-pieces scientific shakespeare
+         text time transformers unordered-containers vector
        ];
        description = "Type-safe, multi-backend data serialization";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
        maintainers = with stdenv.lib.maintainers; [ psibi ];
      }) {};
 
@@ -194611,33 +195641,32 @@ self: {
        broken = true;
      }) {};
 
-  "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
+  "persistent-mtl" = callPackage
+    ({ mkDerivation, base, bytestring, conduit, containers
+     , monad-logger, mtl, persistent, persistent-postgresql
+     , persistent-sqlite, persistent-template, resource-pool, resourcet
+     , resourcet-pool, tasty, tasty-golden, tasty-hunit, text
+     , transformers, unliftio, unliftio-core
      }:
      mkDerivation {
-       pname = "persistent-mysql";
-       version = "2.10.2.3";
-       sha256 = "0ymh1gmcslwd8fp2wq71fswjgbmjdxl2mx4xf30j71h0744r2jbf";
+       pname = "persistent-mtl";
+       version = "0.2.0.0";
+       sha256 = "0c22frczi2km3z108iz211gl023m69cjc284dwbknabsrl3yg4l5";
        libraryHaskellDepends = [
-         aeson base blaze-builder bytestring conduit containers monad-logger
-         mysql mysql-simple persistent resource-pool resourcet text
-         transformers unliftio-core
+         base conduit containers mtl persistent resource-pool resourcet
+         resourcet-pool text transformers unliftio 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
+         base bytestring conduit containers monad-logger persistent
+         persistent-postgresql persistent-sqlite persistent-template
+         resource-pool resourcet tasty tasty-golden tasty-hunit text
+         unliftio
        ];
-       description = "Backend for the persistent library using MySQL database server";
-       license = stdenv.lib.licenses.mit;
+       description = "Monad transformer for the persistent API";
+       license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "persistent-mysql_2_10_3" = callPackage
+  "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
@@ -194646,8 +195675,8 @@ self: {
      }:
      mkDerivation {
        pname = "persistent-mysql";
-       version = "2.10.3";
-       sha256 = "1da2vbkz55lngpi5ggndnnxv8gm9ckcv3gd3y8z47yh129b04csk";
+       version = "2.10.3.1";
+       sha256 = "00gs2ym5vw2cqahv48cx8fhi3kx06rn0s1pafm8pdlr98snvwif7";
        libraryHaskellDepends = [
          aeson base blaze-builder bytestring conduit containers monad-logger
          mysql mysql-simple persistent resource-pool resourcet text
@@ -194661,7 +195690,6 @@ self: {
        ];
        description = "Backend for the persistent library using MySQL database server";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "persistent-mysql-haskell" = callPackage
@@ -194752,36 +195780,6 @@ self: {
      }) {};
 
   "persistent-postgresql" = callPackage
-    ({ mkDerivation, aeson, base, blaze-builder, bytestring, conduit
-     , containers, fast-logger, hspec, hspec-expectations, HUnit
-     , monad-logger, persistent, persistent-qq, persistent-template
-     , persistent-test, postgresql-libpq, postgresql-simple, QuickCheck
-     , quickcheck-instances, resource-pool, resourcet, text, time
-     , transformers, unliftio-core, unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "persistent-postgresql";
-       version = "2.10.1.2";
-       sha256 = "1q7n0h16argvpw2y3f8mxzmvy24q6if46ab9nvybviki283zbvlb";
-       revision = "1";
-       editedCabalFile = "0vzm2d9smg9zvskaz3dv7c90d14pb0as7qpnsnvswhh8vn0862g3";
-       libraryHaskellDepends = [
-         aeson base blaze-builder bytestring conduit containers monad-logger
-         persistent postgresql-libpq postgresql-simple resource-pool
-         resourcet text time transformers unliftio-core
-       ];
-       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
-       ];
-       description = "Backend for the persistent library using postgresql";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "persistent-postgresql_2_11_0_0" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, blaze-builder, bytestring
      , conduit, containers, fast-logger, hspec, hspec-expectations
      , HUnit, monad-logger, mtl, persistent, persistent-qq
@@ -194792,8 +195790,8 @@ self: {
      }:
      mkDerivation {
        pname = "persistent-postgresql";
-       version = "2.11.0.0";
-       sha256 = "12h72dj6zmk8m45m62syc3inwvqgb03whymi7wds0aklzn4j83b4";
+       version = "2.11.0.1";
+       sha256 = "08bmf52fqjwzyw4dnvh2ql4q3ai05fzzicgd5z6bim13b9s4ggmk";
        libraryHaskellDepends = [
          aeson attoparsec base blaze-builder bytestring conduit containers
          monad-logger mtl persistent postgresql-libpq postgresql-simple
@@ -194809,7 +195807,6 @@ self: {
        ];
        description = "Backend for the persistent library using postgresql";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "persistent-protobuf" = callPackage
@@ -194956,40 +195953,6 @@ self: {
      }:
      mkDerivation {
        pname = "persistent-sqlite";
-       version = "2.10.6.2";
-       sha256 = "0l6287ni2ksi8l8kv6gbsyjxhjpcqn6a1gw577ii7fixbyvbpbnf";
-       revision = "1";
-       editedCabalFile = "1kg5cikbw7mpdzwc1f1kfxwjq7q2raqdxsdq5rb65rk87wl3fih5";
-       configureFlags = [ "-fsystemlib" ];
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson base bytestring conduit containers microlens-th monad-logger
-         persistent resource-pool resourcet text time transformers
-         unliftio-core unordered-containers
-       ];
-       librarySystemDepends = [ sqlite ];
-       testHaskellDepends = [
-         base bytestring containers exceptions fast-logger hspec HUnit
-         monad-logger 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 = stdenv.lib.licenses.mit;
-       maintainers = with stdenv.lib.maintainers; [ psibi ];
-     }) {inherit (pkgs) sqlite;};
-
-  "persistent-sqlite_2_11_0_0" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, conduit, containers
-     , exceptions, fast-logger, hspec, HUnit, microlens-th, monad-logger
-     , 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.0.0";
        sha256 = "1kfijsn00brqm42ypaa66bmwq41r9n6h66r6jmgldhzpcbv46sfv";
        configureFlags = [ "-fsystemlib" ];
@@ -195009,7 +195972,6 @@ self: {
        ];
        description = "Backend for the persistent library using sqlite3";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
        maintainers = with stdenv.lib.maintainers; [ psibi ];
      }) {inherit (pkgs) sqlite;};
 
@@ -195022,36 +195984,6 @@ self: {
      }:
      mkDerivation {
        pname = "persistent-template";
-       version = "2.8.2.3";
-       sha256 = "1y96aj5i3c1j2ls6980l8lfjj9b3vfmp3766xk5af1870vj1s1lf";
-       revision = "2";
-       editedCabalFile = "0n0zr4fxzrgdbgl26mikfl9hyn0269isblrr9rj3i045p96a0y5s";
-       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 = stdenv.lib.licenses.mit;
-       maintainers = with stdenv.lib.maintainers; [ psibi ];
-     }) {};
-
-  "persistent-template_2_9_1_0" = 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";
        libraryHaskellDepends = [
@@ -195068,7 +196000,6 @@ self: {
        ];
        description = "Type-safe, non-relational, multi-backend persistence";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
        maintainers = with stdenv.lib.maintainers; [ psibi ];
      }) {};
 
@@ -195127,32 +196058,6 @@ self: {
      }:
      mkDerivation {
        pname = "persistent-typed-db";
-       version = "0.1.0.1";
-       sha256 = "07yjzxg5yfxv1zbp5pkrvj8nrsxyhy4n11zgmd0q9g186q6283qn";
-       revision = "1";
-       editedCabalFile = "15qqrxjg00xvn9ffdj0yk3zxw5snn91379zzhzzv3kd9w1b25zg0";
-       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 = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "persistent-typed-db_0_1_0_2" = 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 = [
@@ -195167,7 +196072,6 @@ self: {
        ];
        description = "Type safe access to multiple database schemata";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "persistent-vector" = callPackage
@@ -195822,6 +196726,17 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "phonetic-languages-constraints-array" = callPackage
+    ({ mkDerivation, base, subG }:
+     mkDerivation {
+       pname = "phonetic-languages-constraints-array";
+       version = "0.1.0.0";
+       sha256 = "0mxn7xvggiii4cmpqmxx5mkk660z9q8s3n09kaqbmwszf5l86ynd";
+       libraryHaskellDepends = [ base subG ];
+       description = "Constraints to filter the needed permutations";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "phonetic-languages-examples" = callPackage
     ({ mkDerivation, base, mmsyn2, parallel, phonetic-languages-common
      , phonetic-languages-constraints, phonetic-languages-general
@@ -195855,6 +196770,17 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "phonetic-languages-filters-array" = callPackage
+    ({ mkDerivation, base, filters-basic, mmsyn2-array }:
+     mkDerivation {
+       pname = "phonetic-languages-filters-array";
+       version = "0.1.0.0";
+       sha256 = "0gi2hbdzb62s0hvx9j8w936bwiypv6xvh5xndmx4w1kf8r2lkagy";
+       libraryHaskellDepends = [ base filters-basic mmsyn2-array ];
+       description = "Allows to change the structure of the function output";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "phonetic-languages-general" = callPackage
     ({ mkDerivation, base, phonetic-languages-common
      , phonetic-languages-plus, print-info, subG, vector
@@ -195882,14 +196808,25 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "phonetic-languages-permutations-array" = callPackage
+    ({ mkDerivation, base, subG }:
+     mkDerivation {
+       pname = "phonetic-languages-permutations-array";
+       version = "0.1.0.0";
+       sha256 = "1r8fwdphn3h9zpbrdbbgmqjwv6gwcl205ahr3kqwz6sfg78bflj4";
+       libraryHaskellDepends = [ base subG ];
+       description = "Permutations and universal set related functions for the phonetic-languages series";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "phonetic-languages-plus" = callPackage
     ({ mkDerivation, base, bytestring, lists-flines, parallel
      , uniqueness-periods-vector-stats
      }:
      mkDerivation {
        pname = "phonetic-languages-plus";
-       version = "0.1.0.0";
-       sha256 = "1yzqrqkikkx6ii1n7zs5vf1k5m26v8bj8m0h43zmxb1j30klh2ir";
+       version = "0.2.0.0";
+       sha256 = "05xzmkzx3lc070ln6q2ynbqfh6rb70rx1n845gy0i59h6zpsl9ai";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base lists-flines ];
@@ -195929,14 +196866,28 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "phonetic-languages-simplified-base" = callPackage
+    ({ mkDerivation, base, phonetic-languages-permutations-array, subG
+     }:
+     mkDerivation {
+       pname = "phonetic-languages-simplified-base";
+       version = "0.1.0.0";
+       sha256 = "0fd2pslmgm5bvv0yiza87vp61601pl1c69xa5snbgrnb2mlp6f98";
+       libraryHaskellDepends = [
+         base phonetic-languages-permutations-array subG
+       ];
+       description = "A simplified version of the phonetic-languages functionality common for some different realizations";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "phonetic-languages-simplified-common" = callPackage
     ({ mkDerivation, base, phonetic-languages-permutations, subG
      , subG-instances, vector
      }:
      mkDerivation {
        pname = "phonetic-languages-simplified-common";
-       version = "0.3.4.0";
-       sha256 = "1cf2k35jljcbyzyfz85nsxjzh5wdiipm9sa558gky26yz1h3n54x";
+       version = "0.4.0.0";
+       sha256 = "02fc9cd1ad5m8qsi73zxzhz80g24q0brlhnxswzmmsxsmp4y2542";
        libraryHaskellDepends = [
          base phonetic-languages-permutations subG subG-instances vector
        ];
@@ -195949,27 +196900,27 @@ self: {
      , phonetic-languages-constraints, phonetic-languages-permutations
      , phonetic-languages-plus, phonetic-languages-rhythmicity
      , phonetic-languages-simplified-common
-     , phonetic-languages-simplified-properties-lists
+     , phonetic-languages-simplified-properties-lists-double
      , phonetic-languages-ukrainian, print-info, subG
      , ukrainian-phonetics-basic, uniqueness-periods-vector-filters
      , uniqueness-periods-vector-stats, vector
      }:
      mkDerivation {
        pname = "phonetic-languages-simplified-lists-examples";
-       version = "0.4.0.0";
-       sha256 = "18n45cz6x8lh8pphnipp24xjjf8j5h6kskmkr6x4l5y5qi13ld4x";
+       version = "0.6.0.0";
+       sha256 = "0y843gymz9wf7hmp8asxmd90rdlgxz2b1pgi27mpglr7xmhpfr34";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base heaps mmsyn2 phonetic-languages-constraints
          phonetic-languages-simplified-common
-         phonetic-languages-simplified-properties-lists vector
+         phonetic-languages-simplified-properties-lists-double vector
        ];
        executableHaskellDepends = [
          base heaps mmsyn2 parallel phonetic-languages-constraints
          phonetic-languages-permutations phonetic-languages-plus
          phonetic-languages-rhythmicity phonetic-languages-simplified-common
-         phonetic-languages-simplified-properties-lists
+         phonetic-languages-simplified-properties-lists-double
          phonetic-languages-ukrainian print-info subG
          ukrainian-phonetics-basic uniqueness-periods-vector-filters
          uniqueness-periods-vector-stats vector
@@ -195978,6 +196929,23 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "phonetic-languages-simplified-properties-array" = callPackage
+    ({ mkDerivation, base, phonetic-languages-rhythmicity
+     , phonetic-languages-simplified-base
+     , ukrainian-phonetics-basic-array
+     }:
+     mkDerivation {
+       pname = "phonetic-languages-simplified-properties-array";
+       version = "0.1.0.0";
+       sha256 = "0p072ydixsfi5ps45qi147gd5lsahpykw27ar8n5zb6sihsvklzp";
+       libraryHaskellDepends = [
+         base phonetic-languages-rhythmicity
+         phonetic-languages-simplified-base ukrainian-phonetics-basic-array
+       ];
+       description = "A generalization of the uniqueness-periods-vector-properties package";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "phonetic-languages-simplified-properties-lists" = callPackage
     ({ mkDerivation, base, phonetic-languages-rhythmicity
      , phonetic-languages-simplified-common, ukrainian-phonetics-basic
@@ -195996,6 +196964,24 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "phonetic-languages-simplified-properties-lists-double" = callPackage
+    ({ mkDerivation, base, phonetic-languages-rhythmicity
+     , phonetic-languages-simplified-common, ukrainian-phonetics-basic
+     , vector
+     }:
+     mkDerivation {
+       pname = "phonetic-languages-simplified-properties-lists-double";
+       version = "0.1.0.0";
+       sha256 = "1mx282gq9b2m718zrjjqxk1a17qdw5mdipmb818jr5ccrb81yhsl";
+       libraryHaskellDepends = [
+         base phonetic-languages-rhythmicity
+         phonetic-languages-simplified-common ukrainian-phonetics-basic
+         vector
+       ];
+       description = "A generalization of the uniqueness-periods-vector-properties package";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "phonetic-languages-ukrainian" = callPackage
     ({ mkDerivation, base, mmsyn2, mmsyn5, vector }:
      mkDerivation {
@@ -196007,6 +196993,17 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "phonetic-languages-ukrainian-array" = callPackage
+    ({ mkDerivation, base, mmsyn2-array, mmsyn5 }:
+     mkDerivation {
+       pname = "phonetic-languages-ukrainian-array";
+       version = "0.1.0.0";
+       sha256 = "0h88qcdkckgn5cjyjiwvdxci8p04h12xr6jj5pjp4wzqyp6a5wcf";
+       libraryHaskellDepends = [ base mmsyn2-array mmsyn5 ];
+       description = "Prepares Ukrainian text to be used as a phonetic language text";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "phonetic-languages-vector" = callPackage
     ({ mkDerivation, base, vector }:
      mkDerivation {
@@ -196499,8 +197496,8 @@ self: {
      }:
      mkDerivation {
        pname = "pinboard";
-       version = "0.10.1.4";
-       sha256 = "1kmkxcvkfqwp2p46s22gdnvk12g7bx9dqr8cs04wjw1rbj0mli49";
+       version = "0.10.2.0";
+       sha256 = "12hwfgqkn7sym9hig0b0afnzf0an6wcwdw9bc166y3539r3v13ck";
        libraryHaskellDepends = [
          aeson base bytestring containers http-client http-client-tls
          http-types monad-logger mtl network profunctors random text time
@@ -197771,8 +198768,8 @@ self: {
      }:
      mkDerivation {
        pname = "pipes-text";
-       version = "0.0.2.5";
-       sha256 = "0ahgkism9q5qda1iq45h9sc36vqyna017pf4kw28gzgbm01fx2a4";
+       version = "1.0.0";
+       sha256 = "0q01amm5813qpbkj9098mkd6h1a65vc864qjk2vgd4h80vx2a6mi";
        libraryHaskellDepends = [
          base bytestring pipes pipes-bytestring pipes-group pipes-parse
          pipes-safe streaming-commons text transformers
@@ -199086,8 +200083,8 @@ self: {
      }:
      mkDerivation {
        pname = "pointfree";
-       version = "1.1.1.6";
-       sha256 = "1rsr9vgqq10ydwan2qvghgfvff5m75ivl8md8r8yxffbw0spiwsv";
+       version = "1.1.1.7";
+       sha256 = "19yvkh4akcsiy0blmrwy7ayirg729s3vs4w0qkb2w171aas34090";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -199774,8 +200771,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-methodology";
-       version = "0.1.7.0";
-       sha256 = "1qb2rj2fc7vaf9i0lm9gqzkfy5a8zmsq9ibvhmc4457yd3k7cfcg";
+       version = "0.1.8.0";
+       sha256 = "0p4h6vjrq6g6pd27mqpzp33jg84gfi3wpymjkbxfrwz7ky74jag5";
        libraryHaskellDepends = [
          base co-log-polysemy polysemy polysemy-plugin polysemy-zoo
        ];
@@ -200382,7 +201379,7 @@ self: {
   "poppler" = callPackage
     ({ mkDerivation, array, base, bytestring, Cabal, cairo, containers
      , gdk-pixbuf, glib, gtk, gtk2, gtk2hs-buildtools, mtl, pango
-     , poppler
+     , poppler_gi
      }:
      mkDerivation {
        pname = "poppler";
@@ -200393,14 +201390,14 @@ self: {
        libraryHaskellDepends = [
          array base bytestring cairo containers glib gtk mtl
        ];
-       libraryPkgconfigDepends = [ gdk-pixbuf gtk2 pango poppler ];
+       libraryPkgconfigDepends = [ gdk-pixbuf gtk2 pango poppler_gi ];
        libraryToolDepends = [ gtk2hs-buildtools ];
        description = "Binding to the Poppler";
        license = stdenv.lib.licenses.gpl2;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) gdk-pixbuf; inherit (pkgs) gtk2; 
-         inherit (pkgs) pango; inherit (pkgs) poppler;};
+         inherit (pkgs) pango; inherit (pkgs) poppler_gi;};
 
   "populate-setup-exe-cache" = callPackage
     ({ mkDerivation, base }:
@@ -201643,8 +202640,8 @@ self: {
     ({ mkDerivation, base, transformers }:
      mkDerivation {
        pname = "postgresql-tx";
-       version = "0.1.0.0";
-       sha256 = "1jvrdyllmgd0v9w2wxqr1g70f6gza1wyb13j38ww2r2nvqzhp330";
+       version = "0.3.0.0";
+       sha256 = "1q8yh16wxgfdvr3090i395ba20lzv2iyq5sswrzm9slcbnan353d";
        libraryHaskellDepends = [ base transformers ];
        description = "A safe transaction monad for use with various PostgreSQL Haskell libraries";
        license = stdenv.lib.licenses.bsd3;
@@ -201654,25 +202651,27 @@ self: {
     ({ mkDerivation, base, monad-logger, postgresql-tx }:
      mkDerivation {
        pname = "postgresql-tx-monad-logger";
-       version = "0.1.0.0";
-       sha256 = "0y1x2d2r61ayhln0l2c5i3ivv97zpwyiaw1hymghpv4vwnlihv1y";
+       version = "0.3.0.0";
+       sha256 = "00gyhjfq13rknh4hpizmfizqv84b8l8ziik36gjyq1vsmfg5da43";
        libraryHaskellDepends = [ base monad-logger postgresql-tx ];
        description = "postgresql-tx interfacing for use with monad-logger";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
   "postgresql-tx-query" = callPackage
-    ({ mkDerivation, base, monad-logger, mtl, postgresql-query
-     , postgresql-simple, postgresql-tx, postgresql-tx-monad-logger
-     , transformers
+    ({ mkDerivation, base, exceptions, monad-control, monad-logger, mtl
+     , postgresql-query, postgresql-simple, postgresql-tx
+     , postgresql-tx-monad-logger, postgresql-tx-simple, transformers
+     , transformers-base
      }:
      mkDerivation {
        pname = "postgresql-tx-query";
-       version = "0.1.0.0";
-       sha256 = "0a7khw9ncc8k5cpi63kw598hvg3ycm1lchz46aw06pndcdzr54sv";
+       version = "0.3.0.0";
+       sha256 = "0d2i0djylqbmr4xd1hmxvcqv26xvlkkm0aflxzcz6b4vcb43b6lc";
        libraryHaskellDepends = [
-         base monad-logger mtl postgresql-query postgresql-simple
-         postgresql-tx postgresql-tx-monad-logger transformers
+         base exceptions monad-control monad-logger mtl postgresql-query
+         postgresql-simple postgresql-tx postgresql-tx-monad-logger
+         postgresql-tx-simple transformers transformers-base
        ];
        description = "postgresql-tx interfacing for use with postgresql-query";
        license = stdenv.lib.licenses.bsd3;
@@ -201681,15 +202680,15 @@ self: {
      }) {};
 
   "postgresql-tx-simple" = callPackage
-    ({ mkDerivation, base, postgresql-simple, postgresql-tx
+    ({ mkDerivation, base, bytestring, postgresql-simple, postgresql-tx
      , transformers
      }:
      mkDerivation {
        pname = "postgresql-tx-simple";
-       version = "0.1.0.0";
-       sha256 = "1k03wqqzsvmmd7wh9gnlg9h12v2xnzd1vc9396sl1krg29l8373p";
+       version = "0.3.0.0";
+       sha256 = "1n11n20yx60kkxccg59mmr1mz75p80r4q72kc2gmbkw26dn3al1z";
        libraryHaskellDepends = [
-         base postgresql-simple postgresql-tx transformers
+         base bytestring postgresql-simple postgresql-tx transformers
        ];
        description = "postgresql-tx interfacing for use with postgresql-simple";
        license = stdenv.lib.licenses.bsd3;
@@ -201697,15 +202696,15 @@ self: {
 
   "postgresql-tx-squeal" = callPackage
     ({ mkDerivation, base, bytestring, generics-sop, postgresql-libpq
-     , postgresql-tx, records-sop, squeal-postgresql
+     , postgresql-tx, records-sop, squeal-postgresql, unliftio
      }:
      mkDerivation {
        pname = "postgresql-tx-squeal";
-       version = "0.1.0.0";
-       sha256 = "08wfdy6hlpwkv3njh33igskv489kk8zbsd1nk24fvql1w215gsa4";
+       version = "0.3.0.0";
+       sha256 = "1l0xjyjcwq0ndrc49alrp7ixs2dl1z4krdaclws8nf5pcpd03ap8";
        libraryHaskellDepends = [
          base bytestring generics-sop postgresql-libpq postgresql-tx
-         records-sop squeal-postgresql
+         records-sop squeal-postgresql unliftio
        ];
        description = "postgresql-tx interfacing for use with squeal-postgresql";
        license = stdenv.lib.licenses.bsd3;
@@ -201713,6 +202712,21 @@ self: {
        broken = true;
      }) {};
 
+  "postgresql-tx-squeal-compat-simple" = callPackage
+    ({ mkDerivation, base, postgresql-simple, postgresql-tx-squeal }:
+     mkDerivation {
+       pname = "postgresql-tx-squeal-compat-simple";
+       version = "0.2.0.0";
+       sha256 = "1n167zsslba4c8m91s26ir7gibb09gjx82q1r8l5ilxx10856a89";
+       libraryHaskellDepends = [
+         base postgresql-simple postgresql-tx-squeal
+       ];
+       description = "Connection interop from postgresql-simple connections to postgresql-libpq connections";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "postgresql-typed" = callPackage
     ({ mkDerivation, aeson, array, attoparsec, base, binary, bytestring
      , containers, convertible, criterion, cryptonite, data-default
@@ -203166,30 +204180,6 @@ self: {
      }) {};
 
   "pretty-simple" = callPackage
-    ({ mkDerivation, ansi-terminal, base, Cabal, cabal-doctest
-     , containers, criterion, doctest, Glob, mtl, QuickCheck
-     , template-haskell, text, transformers
-     }:
-     mkDerivation {
-       pname = "pretty-simple";
-       version = "3.3.0.0";
-       sha256 = "0g83958npqscqqz2lh5m0m666qp8ldwps4l5gvfip4b1zgy3f5nh";
-       isLibrary = true;
-       isExecutable = true;
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
-       libraryHaskellDepends = [
-         ansi-terminal base containers mtl text transformers
-       ];
-       testHaskellDepends = [
-         base doctest Glob QuickCheck template-haskell
-       ];
-       benchmarkHaskellDepends = [ base criterion text ];
-       description = "pretty printer for data types with a 'Show' instance";
-       license = stdenv.lib.licenses.bsd3;
-       maintainers = with stdenv.lib.maintainers; [ cdepillabout ];
-     }) {};
-
-  "pretty-simple_4_0_0_0" = callPackage
     ({ mkDerivation, base, Cabal, cabal-doctest, containers, criterion
      , doctest, Glob, mtl, prettyprinter, prettyprinter-ansi-terminal
      , QuickCheck, template-haskell, text, transformers
@@ -203211,7 +204201,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion text ];
        description = "pretty printer for data types with a 'Show' instance";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
        maintainers = with stdenv.lib.maintainers; [ cdepillabout ];
      }) {};
 
@@ -203301,31 +204290,6 @@ self: {
      }:
      mkDerivation {
        pname = "prettyprinter";
-       version = "1.6.2";
-       sha256 = "023hfz75xgvyymbipyph7xmaaki2d5qa6fh4lx9adl1h4s8g34yi";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [ base text ];
-       testHaskellDepends = [
-         base bytestring doctest pgp-wordlist QuickCheck
-         quickcheck-instances tasty tasty-hunit tasty-quickcheck text
-       ];
-       benchmarkHaskellDepends = [
-         ansi-wl-pprint base base-compat containers deepseq gauge mtl
-         QuickCheck random text transformers
-       ];
-       description = "A modern, easy to use, well-documented, extensible pretty-printer";
-       license = stdenv.lib.licenses.bsd2;
-     }) {};
-
-  "prettyprinter_1_7_0" = callPackage
-    ({ mkDerivation, ansi-wl-pprint, base, base-compat, bytestring
-     , containers, deepseq, doctest, gauge, mtl, pgp-wordlist
-     , QuickCheck, quickcheck-instances, random, tasty, tasty-hunit
-     , tasty-quickcheck, text, transformers
-     }:
-     mkDerivation {
-       pname = "prettyprinter";
        version = "1.7.0";
        sha256 = "19z04sn0kqxgwcyfn5igjmbxw13xsb3mdhdidkb3kzswib78f6sr";
        isLibrary = true;
@@ -203341,7 +204305,6 @@ self: {
        ];
        description = "A modern, easy to use, well-documented, extensible pretty-printer";
        license = stdenv.lib.licenses.bsd2;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "prettyprinter-ansi-terminal" = callPackage
@@ -203366,12 +204329,10 @@ self: {
     ({ mkDerivation, base, prettyprinter, text }:
      mkDerivation {
        pname = "prettyprinter-compat-annotated-wl-pprint";
-       version = "1";
-       sha256 = "0zpmpbpnyxqswfb7gdj0kwz7hw606fj1iwkpl1qv0xcxk6n9n99c";
-       revision = "3";
-       editedCabalFile = "0vzi7id60pfj35xp61akzvfx9x6py45r5b8343i48ljpir91rvgw";
+       version = "1.1";
+       sha256 = "0plkzvwbqilmh711fbbki9r37i01n00kmzr6cxjgjw0ak1m2djbn";
        libraryHaskellDepends = [ base prettyprinter text ];
-       description = "Prettyprinter compatibility module for previous users of the annotated-wl-pprint package";
+       description = "Drop-in compatibility package to migrate from »annotated-wl-pprint« to »prettyprinter«";
        license = stdenv.lib.licenses.bsd2;
      }) {};
 
@@ -203644,6 +204605,8 @@ self: {
        pname = "primitive";
        version = "0.7.1.0";
        sha256 = "1w53i4mk248g58xrffmksznr4nmn2bbbycajzpcqfxx5ybyyrsvb";
+       revision = "1";
+       editedCabalFile = "0nllkqvfrplhslfgbqgpn0r5k4mj5wlfixjxrpjz6vb73xwi5977";
        libraryHaskellDepends = [ base deepseq transformers ];
        testHaskellDepends = [
          base base-orphans ghc-prim QuickCheck quickcheck-classes-base
@@ -204777,14 +205740,14 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "profunctors_5_6" = callPackage
+  "profunctors_5_6_1" = callPackage
     ({ mkDerivation, base, base-orphans, bifunctors, comonad
      , contravariant, distributive, tagged, transformers
      }:
      mkDerivation {
        pname = "profunctors";
-       version = "5.6";
-       sha256 = "1qwc56d7rjawg472j1kq7lsqzr55cqgmsbkvxy7x65vwyr4aa1nb";
+       version = "5.6.1";
+       sha256 = "1b2fgnhl3j790rra615q6y9xx97lip0smfg1c13ad1brvyjygps6";
        libraryHaskellDepends = [
          base base-orphans bifunctors comonad contravariant distributive
          tagged transformers
@@ -204903,74 +205866,73 @@ self: {
      }) {inherit (pkgs) proj;};
 
   "project-m36" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, base64-bytestring, binary
-     , blaze-html, bytestring, Cabal, cassava, conduit, containers
-     , criterion, cryptohash-sha256, data-interval, deepseq
-     , deepseq-generics, deferred-folds, directory, distributed-process
-     , distributed-process-async, distributed-process-client-server
-     , distributed-process-extras, either, exceptions, extended-reals
-     , filepath, foldl, ghc, ghc-boot, ghc-paths, ghci, Glob, gnuplot
-     , hashable, hashable-time, haskeline, http-api-data, http-types
-     , HUnit, list-t, megaparsec, monad-parallel, MonadRandom, mtl
-     , network, network-transport, network-transport-tcp, old-locale
-     , optparse-applicative, parallel, parser-combinators, path-pieces
-     , QuickCheck, quickcheck-instances, random, random-shuffle
-     , resourcet, rset, scotty, semigroups, stm, stm-containers
-     , template-haskell, temporary, text, text-manipulate, time
-     , transformers, unix, unordered-containers, uuid, vector
-     , vector-binary-instances, websockets, zlib
+    ({ mkDerivation, aeson, async, attoparsec, base, base64-bytestring
+     , binary, blaze-html, bytestring, Cabal, cassava, conduit
+     , containers, criterion, cryptohash-sha256, curryer-rpc
+     , data-interval, deepseq, deepseq-generics, deferred-folds
+     , directory, either, exceptions, extended-reals, filepath, foldl
+     , ghc, ghc-boot, ghc-paths, ghci, Glob, gnuplot, hashable
+     , hashable-time, haskeline, http-api-data, http-types, HUnit
+     , list-t, megaparsec, monad-parallel, MonadRandom, mtl, network
+     , old-locale, optparse-applicative, parallel, parser-combinators
+     , path-pieces, prettyprinter, QuickCheck, quickcheck-instances
+     , random, random-shuffle, resourcet, rset, scotty, semigroups, stm
+     , stm-containers, template-haskell, temporary, text
+     , text-manipulate, time, transformers, unix, unordered-containers
+     , uuid, vector, vector-binary-instances, vector-instances
+     , websockets, winery, zlib
      }:
      mkDerivation {
        pname = "project-m36";
-       version = "0.8.1";
-       sha256 = "10by97f23pbl7hdwgc0609qxfyl7fak28n0nvvzb51q282w7f22h";
+       version = "0.9.0";
+       sha256 = "0ijh0ywz32ywryqrpdadry50lf2cfdglahkiqwwi1f6vvd55rb6p";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson attoparsec base base64-bytestring binary bytestring cassava
-         conduit containers cryptohash-sha256 data-interval deepseq
-         deepseq-generics deferred-folds directory distributed-process
-         distributed-process-async distributed-process-client-server
-         distributed-process-extras either exceptions extended-reals
-         filepath foldl ghc ghc-boot ghc-paths ghci Glob gnuplot hashable
-         hashable-time haskeline http-api-data list-t monad-parallel
-         MonadRandom mtl network-transport network-transport-tcp old-locale
+         aeson async attoparsec base base64-bytestring bytestring cassava
+         conduit containers cryptohash-sha256 curryer-rpc data-interval
+         deepseq deepseq-generics deferred-folds directory either exceptions
+         extended-reals filepath foldl ghc ghc-boot ghc-paths ghci Glob
+         gnuplot hashable hashable-time haskeline http-api-data list-t
+         monad-parallel MonadRandom mtl network old-locale
          optparse-applicative parallel path-pieces QuickCheck
          quickcheck-instances random-shuffle resourcet rset semigroups stm
          stm-containers temporary text text-manipulate time transformers
-         unix unordered-containers uuid vector vector-binary-instances zlib
+         unix unordered-containers uuid vector vector-instances winery zlib
        ];
        executableHaskellDepends = [
-         aeson attoparsec base base64-bytestring binary blaze-html
-         bytestring Cabal cassava conduit containers data-interval deepseq
+         aeson attoparsec base base64-bytestring blaze-html bytestring Cabal
+         cassava conduit containers curryer-rpc data-interval deepseq
          deepseq-generics directory either filepath ghc ghc-paths gnuplot
          hashable hashable-time haskeline http-api-data http-types HUnit
-         list-t megaparsec MonadRandom mtl network-transport-tcp
-         optparse-applicative parallel parser-combinators path-pieces random
-         scotty semigroups stm stm-containers template-haskell temporary
-         text time transformers unordered-containers uuid vector
-         vector-binary-instances websockets
+         list-t megaparsec MonadRandom mtl network optparse-applicative
+         parallel parser-combinators path-pieces prettyprinter random scotty
+         semigroups stm stm-containers template-haskell temporary text time
+         transformers unordered-containers uuid vector
+         vector-binary-instances websockets winery
        ];
        testHaskellDepends = [
          aeson attoparsec base base64-bytestring binary bytestring Cabal
-         cassava conduit containers data-interval deepseq deepseq-generics
-         directory either filepath gnuplot hashable hashable-time haskeline
-         http-api-data HUnit list-t megaparsec MonadRandom mtl network
-         network-transport network-transport-tcp optparse-applicative
-         parallel parser-combinators path-pieces random semigroups stm
-         stm-containers template-haskell temporary text time transformers
-         unordered-containers uuid vector vector-binary-instances websockets
+         cassava containers curryer-rpc data-interval deepseq
+         deepseq-generics directory filepath gnuplot hashable hashable-time
+         haskeline HUnit list-t megaparsec MonadRandom mtl network
+         optparse-applicative parallel parser-combinators prettyprinter
+         random semigroups stm stm-containers temporary text time
+         transformers unordered-containers uuid vector
+         vector-binary-instances websockets winery
        ];
        benchmarkHaskellDepends = [
-         attoparsec base base64-bytestring binary bytestring Cabal cassava
-         containers criterion data-interval deepseq deepseq-generics
-         directory filepath gnuplot hashable hashable-time haskeline HUnit
-         megaparsec mtl parallel stm stm-containers temporary text time
+         aeson attoparsec base base64-bytestring bytestring Cabal cassava
+         containers criterion curryer-rpc data-interval deepseq
+         deepseq-generics directory filepath gnuplot hashable hashable-time
+         haskeline HUnit list-t megaparsec MonadRandom mtl network
+         optparse-applicative parallel parser-combinators prettyprinter
+         random semigroups stm stm-containers temporary text time
          transformers unordered-containers uuid vector
-         vector-binary-instances
+         vector-binary-instances websockets winery
        ];
        description = "Relational Algebra Engine";
-       license = stdenv.lib.licenses.publicDomain;
+       license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -205135,18 +206097,19 @@ self: {
 
   "prolude" = callPackage
     ({ mkDerivation, aeson, base, bytestring, cassava, containers
-     , generic-random, mongoDB, mtl, persistent, persistent-mongoDB
-     , QuickCheck, quickcheck-instances, safe-exceptions, scientific
-     , swagger2, text, time, uuid, vector
+     , generic-random, lens, mongoDB, mtl, network-uri, persistent
+     , persistent-mongoDB, QuickCheck, quickcheck-instances
+     , safe-exceptions, scientific, swagger2, text, time, uuid, vector
      }:
      mkDerivation {
        pname = "prolude";
-       version = "0.0.0.12";
-       sha256 = "09z9716pjyxzpqn3qc0zsi9mz03vf1qnb1q5bcf66bvb1kfj0phw";
+       version = "0.0.0.14";
+       sha256 = "1lsr85ibkrdcmwg66iiazr3wksk66153l2wdlk583q71w2r5h6is";
        libraryHaskellDepends = [
-         aeson base bytestring cassava containers generic-random mongoDB mtl
-         persistent persistent-mongoDB QuickCheck quickcheck-instances
-         safe-exceptions scientific swagger2 text time uuid vector
+         aeson base bytestring cassava containers generic-random lens
+         mongoDB mtl network-uri persistent persistent-mongoDB QuickCheck
+         quickcheck-instances safe-exceptions scientific swagger2 text time
+         uuid vector
        ];
        description = "ITProTV's custom prelude";
        license = stdenv.lib.licenses.mit;
@@ -208221,6 +209184,8 @@ self: {
        pname = "quantification";
        version = "0.5.1";
        sha256 = "1abr0rb3q13klrz6199gpl4d07s5y8j56i8gvpy8nqgyi7awznx9";
+       revision = "1";
+       editedCabalFile = "1q18l6wv57d0386p75ykkcpc18cdnzpbxdxbr5bdx02wj5v4vq8f";
        libraryHaskellDepends = [
          aeson base binary containers ghc-prim hashable path-pieces text
          unordered-containers vector
@@ -208714,33 +209679,6 @@ self: {
      }) {};
 
   "quickcheck-instances" = callPackage
-    ({ mkDerivation, array, base, base-compat, bytestring
-     , case-insensitive, containers, hashable, old-time, QuickCheck
-     , scientific, splitmix, tagged, text, these, time, time-compat
-     , transformers, transformers-compat, unordered-containers
-     , uuid-types, vector
-     }:
-     mkDerivation {
-       pname = "quickcheck-instances";
-       version = "0.3.23";
-       sha256 = "1gig5dwgsahpgdz0cm06wf9lbjnh0qmr5qrlk9bc3v72pa8knc0i";
-       revision = "2";
-       editedCabalFile = "195l3a41gw34kviqbsa4pg8h92y3gmhvq4x7znrm1h7zlqw2jbb0";
-       libraryHaskellDepends = [
-         array base base-compat bytestring case-insensitive containers
-         hashable old-time QuickCheck scientific splitmix tagged text these
-         time time-compat transformers transformers-compat
-         unordered-containers uuid-types vector
-       ];
-       testHaskellDepends = [
-         base containers QuickCheck tagged uuid-types
-       ];
-       benchmarkHaskellDepends = [ base bytestring QuickCheck ];
-       description = "Common quickcheck instances";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "quickcheck-instances_0_3_25_1" = callPackage
     ({ mkDerivation, array, base, bytestring, case-insensitive
      , containers, data-fix, hashable, integer-logarithms, old-time
      , QuickCheck, scientific, splitmix, strict, tagged, text, these
@@ -208763,7 +209701,6 @@ self: {
        benchmarkHaskellDepends = [ base bytestring QuickCheck ];
        description = "Common quickcheck instances";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "quickcheck-io" = callPackage
@@ -209691,6 +210628,21 @@ self: {
        broken = true;
      }) {};
 
+  "quote-quot" = callPackage
+    ({ mkDerivation, base, tasty, tasty-quickcheck, template-haskell }:
+     mkDerivation {
+       pname = "quote-quot";
+       version = "0.1.0.0";
+       sha256 = "124rgim8bb4x9rqsvc05dcbz739anj2xg8q9v9s0fpjkv6qwl79b";
+       libraryHaskellDepends = [ base template-haskell ];
+       testHaskellDepends = [
+         base tasty tasty-quickcheck template-haskell
+       ];
+       benchmarkHaskellDepends = [ base template-haskell ];
+       description = "Divide without division";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "qux" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory, filepath
      , language-qux, llvm-general, mtl, optparse-applicative, pretty
@@ -209759,13 +210711,13 @@ self: {
 
   "raaz" = callPackage
     ({ mkDerivation, base, blaze-builder, bytestring, criterion
-     , deepseq, hspec, hspec-discover, HUnit, optparse-applicative
-     , pretty, QuickCheck, transformers, vector
+     , criterion-measurement, deepseq, hspec, hspec-discover, HUnit
+     , optparse-applicative, pretty, QuickCheck, transformers, vector
      }:
      mkDerivation {
        pname = "raaz";
-       version = "0.2.1";
-       sha256 = "17wbnagrikmhkn4pgbwsj9n3k37xnq1a3j58280xikph2iy4mrcq";
+       version = "0.2.2";
+       sha256 = "1v7zyk61vk4d6xniqq4fglwccgpx9clx7hxp1xr531spshadq99p";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base bytestring deepseq vector ];
@@ -209776,7 +210728,8 @@ self: {
        ];
        testToolDepends = [ hspec-discover ];
        benchmarkHaskellDepends = [
-         base blaze-builder bytestring criterion pretty
+         base blaze-builder bytestring criterion criterion-measurement
+         pretty
        ];
        description = "The raaz cryptographic library";
        license = stdenv.lib.licenses.bsd3;
@@ -211225,6 +212178,24 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "ratelimiter" = callPackage
+    ({ mkDerivation, base, containers, extra, mtl, time, timespan
+     , vector
+     }:
+     mkDerivation {
+       pname = "ratelimiter";
+       version = "0.1.0";
+       sha256 = "00nx1zpyyhfviakhdvyys1m32jq45ryxyxisbyzp81mk1ddhq9qf";
+       libraryHaskellDepends = [
+         base containers extra mtl time timespan vector
+       ];
+       testHaskellDepends = [
+         base containers extra mtl time timespan vector
+       ];
+       description = "In-memory rate limiter";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "rating-chgk-info" = callPackage
     ({ mkDerivation, aeson, base-noprelude, bytestring, cassava
      , containers, directory, gauge, http-client, http-client-tls, iconv
@@ -211331,32 +212302,24 @@ self: {
      }) {};
 
   "rattletrap" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, base, binary, binary-bits
-     , bytestring, containers, filepath, http-client, http-client-tls
+    ({ mkDerivation, aeson, aeson-pretty, base, binary, bytestring
+     , caerbannog, containers, filepath, http-client, http-client-tls
      , HUnit, scientific, template-haskell, temporary, text
      , transformers
      }:
      mkDerivation {
        pname = "rattletrap";
-       version = "9.2.0";
-       sha256 = "0dyp5fmrrj4fv172hw1prdigpiaib0k3wn7lrngl1ql0gahvvzkr";
+       version = "9.3.2";
+       sha256 = "06mb7z1w56hvwl9gbkmbbib01760ix93x03bdl0ybpb6hhffq7r3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson aeson-pretty base binary binary-bits bytestring containers
-         filepath http-client http-client-tls scientific template-haskell
-         text transformers
-       ];
-       executableHaskellDepends = [
-         aeson aeson-pretty base binary binary-bits bytestring containers
+         aeson aeson-pretty base binary bytestring caerbannog containers
          filepath http-client http-client-tls scientific template-haskell
          text transformers
        ];
-       testHaskellDepends = [
-         aeson aeson-pretty base binary binary-bits bytestring containers
-         filepath http-client http-client-tls HUnit scientific
-         template-haskell temporary text transformers
-       ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [ base bytestring filepath HUnit temporary ];
        description = "Parse and generate Rocket League replays";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -216043,8 +217006,8 @@ self: {
        pname = "repa";
        version = "3.4.1.4";
        sha256 = "17m3wl4hvf04fxwm4fflhnv41yl9bm263hnbpxc8x6xqwifplq23";
-       revision = "6";
-       editedCabalFile = "09b2b98pqbjxp4xign29b67yn6za8lfxxqlv1j52sbvh5bbmbd7s";
+       revision = "7";
+       editedCabalFile = "0j0nqp6xvwis83h1hwm9910xjfxh13nddy61dlli0wdzzddpb8ah";
        libraryHaskellDepends = [
          base bytestring ghc-prim QuickCheck template-haskell vector
        ];
@@ -216392,22 +217355,6 @@ self: {
      }:
      mkDerivation {
        pname = "replace-megaparsec";
-       version = "1.4.3.0";
-       sha256 = "0lngw78rzb5q4n2d55kap8czyjwylpayi3ywy4zkcacc6x9dril7";
-       libraryHaskellDepends = [
-         base bytestring megaparsec parser-combinators text
-       ];
-       testHaskellDepends = [ base bytestring Cabal megaparsec text ];
-       description = "Find, replace, and split string patterns with Megaparsec parsers (instead of regex)";
-       license = stdenv.lib.licenses.bsd2;
-     }) {};
-
-  "replace-megaparsec_1_4_4_0" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, megaparsec
-     , parser-combinators, text
-     }:
-     mkDerivation {
-       pname = "replace-megaparsec";
        version = "1.4.4.0";
        sha256 = "1nlbs01ghm6gllkc7chv06hdrwlb94cipcwcx84wzasdqdzvcdl1";
        libraryHaskellDepends = [
@@ -216416,7 +217363,6 @@ self: {
        testHaskellDepends = [ base bytestring Cabal megaparsec text ];
        description = "Find, replace, and split string patterns with Megaparsec parsers (instead of regex)";
        license = stdenv.lib.licenses.bsd2;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "replica" = callPackage
@@ -216853,10 +217799,8 @@ self: {
      }:
      mkDerivation {
        pname = "reroute";
-       version = "0.5.0.0";
-       sha256 = "1wl7g4z37rwghckwpi34qgg5b3rdy9h1zyf8dcgrm6hdfaabp65r";
-       revision = "2";
-       editedCabalFile = "1lyrm0ca4a9312b26a5gsi1s9vr6b6vlizwblc49h33hviy78q1k";
+       version = "0.6.0.0";
+       sha256 = "1jvh5ngpf1w4y9b1ipx1c65q8gmwsajp8k5ha0sjn89hbc8cp48y";
        libraryHaskellDepends = [
          base deepseq hashable http-api-data hvect mtl text
          unordered-containers
@@ -218095,8 +219039,8 @@ self: {
      }:
      mkDerivation {
        pname = "rhbzquery";
-       version = "0.1.1";
-       sha256 = "0nlh81cmkfsjgsmrrrcbf51vzmni1ddrhb8dzzxk9a8s76ybmcks";
+       version = "0.4.1";
+       sha256 = "0zfn9bzgm3wb2apnnnakh0lmys0nf9a2ch797m1sfsrbx2mjqvmh";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -218105,7 +219049,7 @@ self: {
        ];
        testHaskellDepends = [ base simple-cmd ];
        description = "Bugzilla query tool";
-       license = stdenv.lib.licenses.bsd3;
+       license = stdenv.lib.licenses.gpl2;
      }) {};
 
   "rhine" = callPackage
@@ -219006,8 +219950,8 @@ self: {
      }:
      mkDerivation {
        pname = "rob";
-       version = "0.0.4";
-       sha256 = "0ds0psp28fb5y21ycsxva1jqrbcvia94g3rk1b5p356php7zahsm";
+       version = "0.0.5";
+       sha256 = "0f3c4mv6h2cw51r2bw6xlg6aqkbpf2z8wi06pxvzc5ghn0s2k4n7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -219925,28 +220869,29 @@ self: {
      }) {inherit (pkgs) gmp; inherit (pkgs) mpfr;};
 
   "rounded-hw" = callPackage
-    ({ mkDerivation, array, base, Cabal, deepseq, doctest, gauge, hspec
-     , integer-logarithms, long-double, primitive, QuickCheck, random
-     , tagged, vector
+    ({ mkDerivation, array, base, Cabal, deepseq, doctest, fp-ieee
+     , gauge, hspec, long-double, primitive, QuickCheck, random, tagged
+     , vector
      }:
      mkDerivation {
        pname = "rounded-hw";
-       version = "0.1.0.0";
-       sha256 = "0kmbp7x7avadsn09zfcjd54x5b6vvc527ybmmmnaklvfdzf8r88x";
+       version = "0.2.0";
+       sha256 = "01393ps7i83ncxlj9yi6jhngr26py6sdafq67mbhigrclyax6ysi";
        setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [
-         array base deepseq integer-logarithms long-double primitive tagged
-         vector
+         array base deepseq fp-ieee long-double primitive tagged vector
        ];
        testHaskellDepends = [
-         array base deepseq doctest hspec integer-logarithms long-double
-         primitive QuickCheck random vector
+         array base deepseq doctest fp-ieee hspec long-double primitive
+         QuickCheck random vector
        ];
        benchmarkHaskellDepends = [
-         array base deepseq gauge integer-logarithms primitive vector
+         array base deepseq fp-ieee gauge primitive vector
        ];
        description = "Directed rounding for built-in floating types";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "rounding" = callPackage
@@ -221115,8 +222060,8 @@ self: {
      }:
      mkDerivation {
        pname = "safe-json";
-       version = "1.1.1";
-       sha256 = "1307fm7kmls0sd2gb5zcl75rcxxy550ksaf145s54c06qjcihhjg";
+       version = "1.1.1.1";
+       sha256 = "0wp955ak673jjcjwqmliwv3dk723kf0nl4rwvzqmlgfg9c57n2j3";
        libraryHaskellDepends = [
          aeson base bytestring containers dlist hashable scientific tasty
          tasty-hunit tasty-quickcheck text time unordered-containers
@@ -223719,34 +224664,51 @@ self: {
      }) {};
 
   "scrapbook" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, base, data-default, drinkery
-     , extensible, feed, gitrev, req, rio, tasty, tasty-hunit
-     , xml-conduit, xml-types, yaml
+    ({ mkDerivation, base, drinkery, extensible, githash, rio
+     , scrapbook-core, tasty, tasty-hunit, yaml
      }:
      mkDerivation {
        pname = "scrapbook";
-       version = "0.3.3";
-       sha256 = "17xc7ljfxxwg4l2jiqf8ffwgwq3hq7lynf6p478jp0sxf54irjr1";
+       version = "0.5.0";
+       sha256 = "1jn3zhczi1m644c7b5flxph4sh4cdmix37xwj8zs0rghhmwnkhww";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson aeson-pretty base data-default extensible feed req rio
-         xml-conduit xml-types yaml
+         base extensible rio scrapbook-core yaml
        ];
        executableHaskellDepends = [
-         aeson aeson-pretty base data-default drinkery extensible feed
-         gitrev req rio xml-conduit xml-types yaml
+         base drinkery extensible githash rio scrapbook-core yaml
        ];
        testHaskellDepends = [
-         aeson aeson-pretty base data-default extensible feed req rio tasty
-         tasty-hunit xml-conduit xml-types yaml
+         base extensible rio scrapbook-core tasty tasty-hunit yaml
        ];
-       description = "Automatically derive Kotlin class to query servant webservices";
+       description = "collect posts of site that is wrote in config yaml using feed or scraping";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
 
+  "scrapbook-core" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, base, extensible, feed
+     , modern-uri, req, rio, tasty, tasty-hunit, xml-conduit, xml-types
+     , yaml
+     }:
+     mkDerivation {
+       pname = "scrapbook-core";
+       version = "0.5.0";
+       sha256 = "0j1andyk438babrnvxdhilk2l7f1y5qfk8s6r197xyf9893r5vv1";
+       libraryHaskellDepends = [
+         aeson aeson-pretty base extensible feed modern-uri req rio
+         xml-conduit xml-types yaml
+       ];
+       testHaskellDepends = [
+         aeson aeson-pretty base extensible feed modern-uri req rio tasty
+         tasty-hunit xml-conduit xml-types yaml
+       ];
+       description = "Core Package for scrapbook";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "scrape-changes" = callPackage
     ({ mkDerivation, async, attoparsec, base, bytestring, cron
      , directory, email-validate, filepath, hashable, hslogger
@@ -225035,24 +225997,20 @@ self: {
      }) {};
 
   "semigroupoids" = callPackage
-    ({ mkDerivation, base, base-orphans, bifunctors, Cabal
-     , cabal-doctest, comonad, containers, contravariant, distributive
-     , doctest, hashable, tagged, template-haskell, transformers
-     , transformers-compat, unordered-containers
+    ({ mkDerivation, base, base-orphans, bifunctors, comonad
+     , containers, contravariant, distributive, hashable, tagged
+     , template-haskell, transformers, transformers-compat
+     , unordered-containers
      }:
      mkDerivation {
        pname = "semigroupoids";
-       version = "5.3.4";
-       sha256 = "0r49qpbi803jk3v4i09jr1a98l6hcgnjhrv1a9fhmay3ff4y9lh0";
-       revision = "2";
-       editedCabalFile = "1fij6yynvwssklr5bklrmd3w6j6nj1p36rn78lkwjkh8m3gp620j";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       version = "5.3.5";
+       sha256 = "1c66sc9w9724xhlly9wfjhghmnnw99z9al69264i2izk7vhihbsm";
        libraryHaskellDepends = [
          base base-orphans bifunctors comonad containers contravariant
          distributive hashable tagged template-haskell transformers
          transformers-compat unordered-containers
        ];
-       testHaskellDepends = [ base doctest ];
        description = "Semigroupoids: Category sans id";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -225818,8 +226776,8 @@ self: {
     ({ mkDerivation, base, bytestring, HUnit, unix }:
      mkDerivation {
        pname = "serialport";
-       version = "0.4.7";
-       sha256 = "1z2drw7ighyws72wqms015n5hy0zxbrphdca7ldn34pz28122z07";
+       version = "0.5.0";
+       sha256 = "1w547rrfsa1cbjcdpqrlzwnnyrzd4lmbj52mnh98zz9aiv7rbqxv";
        libraryHaskellDepends = [ base bytestring unix ];
        testHaskellDepends = [ base bytestring HUnit ];
        description = "Cross platform serial port library";
@@ -227530,8 +228488,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-polysemy";
-       version = "0.1.0";
-       sha256 = "1isk401bi31s8ldb14cw0bchr3lwjmm2aslrrl3hg21dsr0qfk4y";
+       version = "0.1.1";
+       sha256 = "074c1x51am3ffl9lzhq090h8a6xd9gjf154mhp51glb4m4f6kr15";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -228586,8 +229544,8 @@ self: {
      }:
      mkDerivation {
        pname = "serverless-haskell";
-       version = "0.12.4";
-       sha256 = "19ypfhzyqx23chxch847pkz11ida2a82n9rc0s7zfql83afssksi";
+       version = "0.12.5";
+       sha256 = "1p15nzwjbwbjxnqgs6dzz7sb2cp5y3l69hr3n10zmwmgrq4x2nfa";
        libraryHaskellDepends = [
          aeson aeson-casing amazonka-core amazonka-kinesis amazonka-s3 base
          bytestring case-insensitive http-client http-types iproute lens
@@ -231594,8 +232552,8 @@ self: {
     ({ mkDerivation, base, directory, extra, filepath, process, unix }:
      mkDerivation {
        pname = "simple-cmd";
-       version = "0.2.2";
-       sha256 = "0pf9nfh8xcz0y9l9w7hj305r8gqdaz6hmrjkd7h3yb7ql7j6538w";
+       version = "0.2.3";
+       sha256 = "1r8rnv8zzp8jfvgrjls3zjdx235s9gh2kr3sv4w08dndq1rakxjv";
        libraryHaskellDepends = [
          base directory extra filepath process unix
        ];
@@ -231877,12 +232835,12 @@ self: {
      }) {};
 
   "simple-logger" = callPackage
-    ({ mkDerivation, base, fast-logger, mtl, text }:
+    ({ mkDerivation, base, fast-logger, monad-logger, mtl, text }:
      mkDerivation {
        pname = "simple-logger";
-       version = "0.1.0";
-       sha256 = "04qha59ymvxfigb0mpzi9ay297kfjv1i0jnsxxla6rk5imin2i58";
-       libraryHaskellDepends = [ base fast-logger mtl text ];
+       version = "0.1.1";
+       sha256 = "16ap76da3pvigl9gwpzb6miy13z5ypgh318cnqfyij0l5hrg4qg4";
+       libraryHaskellDepends = [ base fast-logger monad-logger mtl text ];
        description = "A very simple but efficient logging framework";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -233321,8 +234279,8 @@ self: {
      }:
      mkDerivation {
        pname = "skylighting";
-       version = "0.10.1";
-       sha256 = "0zpf6p3c0byp3pv9bgg77ndq89n3fhcazyln44pq8lxnmjy0x15v";
+       version = "0.10.2";
+       sha256 = "1f60fnr8d8a28fr785hjzaaakss1ncn0998sz740xb76wp6q7pqd";
        configureFlags = [ "-fexecutable" ];
        isLibrary = true;
        isExecutable = true;
@@ -233347,8 +234305,8 @@ self: {
      }:
      mkDerivation {
        pname = "skylighting-core";
-       version = "0.10.1";
-       sha256 = "10da31x6zj1b3kydr63g36zmmqpqmgcbwdalhxvbmxliw1m5kfvx";
+       version = "0.10.2";
+       sha256 = "1igqskmcbhk7b3fv1a1fxvfc4s3mc2sf96q90bf5iipy0h3f2zbg";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -233888,8 +234846,8 @@ self: {
      }:
      mkDerivation {
        pname = "slynx";
-       version = "0.5.0";
-       sha256 = "0n1d90bmqbiw3w5abncqlk39vca59hd5zkk02q5ickf97zfqik00";
+       version = "0.5.0.1";
+       sha256 = "013ck07xgna42a5vlk6a323z3x1jrggbjw7jr2ww8mpgvpw2wp8r";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -236490,8 +237448,8 @@ self: {
      }:
      mkDerivation {
        pname = "socket-io";
-       version = "1.3.11";
-       sha256 = "078zbbhrpfb5a15vr2vjfxdyi1yabd07rg41ajvpcfqcwq4svw95";
+       version = "1.3.12";
+       sha256 = "01aqvbg498pdwi4wv14qsc6spd7nyaidmdz22azq746599f7xnrm";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring engine-io mtl stm text
          transformers unordered-containers vector
@@ -237632,6 +238590,22 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "spdx-license" = callPackage
+    ({ mkDerivation, base, containers, directory, hspec, megaparsec
+     , regex-tdfa, string-interpolate, text
+     }:
+     mkDerivation {
+       pname = "spdx-license";
+       version = "0.1.0";
+       sha256 = "17ksd29w4qv4vpk6wcah4xr15sjx1fcz7mcwqb6r7kqqmw7jqp7y";
+       libraryHaskellDepends = [
+         base containers megaparsec regex-tdfa string-interpolate text
+       ];
+       testHaskellDepends = [ base directory hspec megaparsec text ];
+       description = "SPDX license templates";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "spe" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -238214,29 +239188,6 @@ self: {
     ({ mkDerivation, async, base, base-compat, base-compat-batteries
      , bytestring, clock, containers, criterion, deepseq, HUnit
      , math-functions, process, random, test-framework
-     , test-framework-hunit, tf-random, time, vector
-     }:
-     mkDerivation {
-       pname = "splitmix";
-       version = "0.0.5";
-       sha256 = "0lndnirkxc87c7hwlrjbnk5m4clcb0wncxvicdjkbj87lxxriwhr";
-       libraryHaskellDepends = [ base deepseq random time ];
-       testHaskellDepends = [
-         async base base-compat base-compat-batteries bytestring containers
-         deepseq HUnit math-functions process random test-framework
-         test-framework-hunit tf-random vector
-       ];
-       benchmarkHaskellDepends = [
-         base clock containers criterion random tf-random
-       ];
-       description = "Fast Splittable PRNG";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "splitmix_0_1_0_3" = callPackage
-    ({ mkDerivation, async, base, base-compat, base-compat-batteries
-     , bytestring, clock, containers, criterion, deepseq, HUnit
-     , math-functions, process, random, test-framework
      , test-framework-hunit, tf-random, vector
      }:
      mkDerivation {
@@ -238254,7 +239205,6 @@ self: {
        ];
        description = "Fast Splittable PRNG";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "splitter" = callPackage
@@ -238869,12 +239819,18 @@ self: {
      }) {};
 
   "squeather" = callPackage
-    ({ mkDerivation, base, bytestring, text }:
+    ({ mkDerivation, base, bytestring, directory, filepath, hedgehog
+     , lifted-base, temporary, text
+     }:
      mkDerivation {
        pname = "squeather";
-       version = "0.4.0.0";
-       sha256 = "1i7qjvayi71b5rqrcxhl2c5idpf1gdbcxx7h082l0rwpf0qlg4f4";
+       version = "0.6.0.0";
+       sha256 = "05cs67xcvfq0497kddmvzrccf7ihav87mv4hmi8kgl2jp8hqmk7p";
        libraryHaskellDepends = [ base bytestring text ];
+       testHaskellDepends = [
+         base bytestring directory filepath hedgehog lifted-base temporary
+         text
+       ];
        description = "Use databases with the version 3 series of the SQLite C library";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -239360,10 +240316,8 @@ self: {
      }:
      mkDerivation {
        pname = "stack";
-       version = "2.5.1";
-       sha256 = "1ffbgs5wgdcvvwbg3pkpgih5dqcbw8mpjj2p49fd8f79cfxmjq20";
-       revision = "1";
-       editedCabalFile = "0k5hapiyq2qv8sn2l2j5sh6w9b8493apwwsbrhpym5m1llxrv29p";
+       version = "2.5.1.1";
+       sha256 = "0fdm4wc8hxawfab7dv2ayr853mna93gznb7g162gw4h4zxnyzwyc";
        configureFlags = [
          "-fdisable-git-info" "-fhide-dependency-versions"
          "-fsupported-build"
@@ -239483,8 +240437,8 @@ self: {
      }:
      mkDerivation {
        pname = "stack-clean-old";
-       version = "0.2.1";
-       sha256 = "0wal5jhm78di54gwwmbmbpp76n7fkna82kg2p3ldzi0r2q53m44h";
+       version = "0.2.2";
+       sha256 = "0d755pndi990l1g0nkzhylz8ki4zz8vs40axnrl7wqcc430vwa24";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -241733,8 +242687,8 @@ self: {
      }:
      mkDerivation {
        pname = "stomp-conduit";
-       version = "0.1.0";
-       sha256 = "1qzr5fkffs96clxkvm7lf7kfafijv8fsri6k0j85wrarx3qdgapa";
+       version = "0.5.0";
+       sha256 = "1mxfidkqqxswnbj2i4hjcbwppfpvl4a3x3jaki1swmw1qxhcqsk9";
        libraryHaskellDepends = [
          base conduit mime mtl resourcet stomp-queue stompl
        ];
@@ -241748,8 +242702,8 @@ self: {
      }:
      mkDerivation {
        pname = "stomp-patterns";
-       version = "0.1.0";
-       sha256 = "0rdk9h7blj7j5kiwy7zq2kb4wxxs19xk3lg73c0srrvbclb0qgbw";
+       version = "0.5.0";
+       sha256 = "118r2v66nl3l5rh4sgb1kp886l63a266yiq4dr3m1c0wy4c2si97";
        libraryHaskellDepends = [
          base bytestring containers mime mtl split stomp-queue stompl time
        ];
@@ -241759,16 +242713,16 @@ self: {
 
   "stomp-queue" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, conduit
-     , conduit-extra, mime, mtl, network-conduit-tls, split, stompl
-     , time, utf8-string
+     , conduit-extra, mime, mtl, network-conduit-tls, resourcet, split
+     , stompl, time, utf8-string
      }:
      mkDerivation {
        pname = "stomp-queue";
-       version = "0.3.1";
-       sha256 = "1fr01drv00fyxvgc3kh1hj5cjrnnkj4gydzscvpali155wrpzpa7";
+       version = "0.5.1";
+       sha256 = "1hg9y90zw6blr54dq78cb111lxga6pfsy4llsn6hqqyyzsd5358l";
        libraryHaskellDepends = [
          attoparsec base bytestring conduit conduit-extra mime mtl
-         network-conduit-tls split stompl time utf8-string
+         network-conduit-tls resourcet split stompl time utf8-string
        ];
        description = "Stompl Client Library";
        license = "LGPL";
@@ -241780,8 +242734,8 @@ self: {
      }:
      mkDerivation {
        pname = "stompl";
-       version = "0.5.0";
-       sha256 = "0n2ikasyj91099wmcszq0wadvria3ib1h9dah4yzd89z1hcqqlxh";
+       version = "0.6.0";
+       sha256 = "07h5y6gw5zrypmm6s1p7yy3k309hph8jy3yf7mr4zb9dwzgcrl71";
        libraryHaskellDepends = [
          attoparsec base bytestring mime split text utf8-string word8
        ];
@@ -241947,21 +242901,21 @@ self: {
      , clock, containers, contravariant, criterion, cryptohash, deepseq
      , directory, filepath, free, ghc-prim, hashable, hspec
      , hspec-smallcheck, integer-gmp, lifted-base, monad-control
-     , mono-traversable, network, primitive, resourcet, safe, smallcheck
-     , store-core, syb, template-haskell, text, th-lift
+     , 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.8";
-       sha256 = "0z312r0gwz0mzkpqal5vbcz5drdfwrnjnxfwfc594q2x7s8idiz3";
+       version = "0.7.9";
+       sha256 = "189ygrm1ycyyklh77a9vhdvw86gbhjba0kl8kj7z1b79sw8q4v4g";
        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 network primitive
+         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
@@ -241970,7 +242924,7 @@ self: {
          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 network
+         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
@@ -241980,7 +242934,7 @@ self: {
          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 network primitive resourcet safe smallcheck
+         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
@@ -243080,8 +244034,8 @@ self: {
      }:
      mkDerivation {
        pname = "strict";
-       version = "0.4";
-       sha256 = "0gs5fqsrwsc3y5w6fp91p9frgh7h42kd9smyg04cw284d5wfx7r7";
+       version = "0.4.0.1";
+       sha256 = "0hb24a09c3agsq7sdv8r2b2jc2f4g1blg2xvj4cfadynib0apxnz";
        libraryHaskellDepends = [
          assoc base binary bytestring deepseq ghc-prim hashable text these
          transformers
@@ -243740,6 +244694,31 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "stripe-hs" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, casing, containers, cpphs
+     , cryptonite, hspec, http-client, http-client-tls, http-types
+     , memory, safe, servant, servant-client, servant-client-core
+     , stripe-servant, text, time, timespan, vector
+     }:
+     mkDerivation {
+       pname = "stripe-hs";
+       version = "0.2.1.0";
+       sha256 = "1f8snldj183yz20f50kkwg6kqcr5zigp3n9k32hxa6dah8xvvnh1";
+       libraryHaskellDepends = [
+         aeson base bytestring casing cpphs cryptonite http-client
+         http-types memory safe servant servant-client stripe-servant text
+         time
+       ];
+       testHaskellDepends = [
+         aeson base bytestring casing containers cpphs cryptonite hspec
+         http-client http-client-tls http-types memory safe servant
+         servant-client servant-client-core stripe-servant text time
+         timespan vector
+       ];
+       description = "Unofficial Stripe client";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "stripe-http-client" = callPackage
     ({ mkDerivation, aeson, base, bytestring, free, hspec, http-client
      , http-client-tls, http-types, stripe-core, stripe-tests, text
@@ -243799,6 +244778,22 @@ self: {
        broken = true;
      }) {};
 
+  "stripe-servant" = callPackage
+    ({ mkDerivation, aeson, base, casing, http-api-data, servant, text
+     , time, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "stripe-servant";
+       version = "0.2.1.0";
+       sha256 = "0vvzf4wh2d9bv5af2al2hdgvy5ds7v7p8w14l018cn3f3iynwh3f";
+       libraryHaskellDepends = [
+         aeson base casing http-api-data servant text time
+         unordered-containers vector
+       ];
+       description = "Unofficial Stripe servant types";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "stripe-signature" = callPackage
     ({ mkDerivation, base, base16-bytestring, bytestring, cryptonite
      , memory, stripe-concepts, text
@@ -244044,6 +245039,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "structured-cli_2_7_0_1" = callPackage
+    ({ mkDerivation, base, data-default, exceptions, haskeline, mtl
+     , split, transformers
+     }:
+     mkDerivation {
+       pname = "structured-cli";
+       version = "2.7.0.1";
+       sha256 = "18l4jy328djmrwhmcmli73592qlld85fwbwby95mghwdbdy2i68g";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base data-default exceptions haskeline mtl split transformers
+       ];
+       executableHaskellDepends = [ base data-default mtl split ];
+       description = "Application library for building interactive console CLIs";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "structured-haskell-mode" = callPackage
     ({ mkDerivation, base, descriptive, ghc-prim, haskell-src-exts
      , text
@@ -244271,19 +245285,20 @@ self: {
 
   "stylist" = callPackage
     ({ mkDerivation, async, base, css-syntax, hashable, hspec
-     , network-uri, QuickCheck, scientific, text, unordered-containers
+     , network-uri, QuickCheck, regex-tdfa, scientific, text
+     , unordered-containers
      }:
      mkDerivation {
        pname = "stylist";
-       version = "2.3.0.0";
-       sha256 = "04nxhsv4v6qlr19fw29jf925b7qhp5777mn0q55sm0jhn7r4v6lv";
+       version = "2.4.0.0";
+       sha256 = "0nkz6jnfx7si473lz0b907lq6zjpw2apbcph61s2aw44j5zgdg96";
        libraryHaskellDepends = [
-         async base css-syntax hashable network-uri text
+         async base css-syntax hashable network-uri regex-tdfa text
          unordered-containers
        ];
        testHaskellDepends = [
          async base css-syntax hashable hspec network-uri QuickCheck
-         scientific text unordered-containers
+         regex-tdfa scientific text unordered-containers
        ];
        description = "Apply CSS styles to a document tree";
        license = stdenv.lib.licenses.mit;
@@ -245838,6 +246853,32 @@ self: {
        broken = true;
      }) {};
 
+  "sydtest" = callPackage
+    ({ mkDerivation, async, base, bytestring, containers, Diff, dlist
+     , envparse, MonadRandom, mtl, optparse-applicative, path, path-io
+     , pretty-show, QuickCheck, quickcheck-io, rainbow, random-shuffle
+     , safe, split, stm, sydtest-discover, text, yaml
+     , yamlparse-applicative
+     }:
+     mkDerivation {
+       pname = "sydtest";
+       version = "0.0.0.0";
+       sha256 = "0ii5fmhksfhl7a6a8bkqih4y20q8964879x3fb5nzv6dah5qq7x5";
+       libraryHaskellDepends = [
+         async base bytestring containers Diff dlist envparse MonadRandom
+         mtl optparse-applicative path path-io pretty-show QuickCheck
+         quickcheck-io rainbow random-shuffle safe split text yaml
+         yamlparse-applicative
+       ];
+       testHaskellDepends = [
+         base bytestring path path-io QuickCheck rainbow stm text
+       ];
+       testToolDepends = [ sydtest-discover ];
+       description = "An advanced modern testing framework for Haskell with good defaults and advanced testing features";
+       license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {sydtest-discover = null;};
+
   "syfco" = callPackage
     ({ mkDerivation, array, base, containers, convertible, directory
      , mtl, parsec, transformers
@@ -246178,6 +247219,29 @@ self: {
        broken = true;
      }) {};
 
+  "symantic-parser" = callPackage
+    ({ mkDerivation, array, base, bytestring, containers, deepseq
+     , directory, filepath, ghc-prim, hashable, process, strict, tasty
+     , tasty-golden, template-haskell, text, transformers, unix
+     , unordered-containers
+     }:
+     mkDerivation {
+       pname = "symantic-parser";
+       version = "0.0.0.20210101";
+       sha256 = "04lc4wyg4gi0781nd2wzi5s96r0x7kd3yknhhdfx9m0w83qqwwj2";
+       libraryHaskellDepends = [
+         array base bytestring containers ghc-prim hashable template-haskell
+         text transformers unordered-containers
+       ];
+       testHaskellDepends = [
+         base bytestring containers deepseq directory filepath hashable
+         process strict tasty tasty-golden template-haskell text
+         transformers unix unordered-containers
+       ];
+       description = "Parser combinators statically optimized and staged via typed meta-programming";
+       license = stdenv.lib.licenses.gpl3Plus;
+     }) {};
+
   "symantic-xml" = callPackage
     ({ mkDerivation, base, bytestring, containers, deepseq, hashable
      , hxt-charproperties, megaparsec, symantic-base, tasty
@@ -247398,8 +248462,8 @@ self: {
      }:
      mkDerivation {
        pname = "table-layout";
-       version = "0.9.0.1";
-       sha256 = "09lj27z5jnnzj0piyr9g3g76j4i0wcmvz65zk839ssaqymmnl9cg";
+       version = "0.9.1.0";
+       sha256 = "0jg6hr835r8m7vn92a01y754ssby3qkkai8sr42bwjvqn7zy7xl8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -247602,8 +248666,6 @@ self: {
        executablePkgconfigDepends = [ gtk3 ];
        description = "A desktop bar similar to xmobar, but with more GUI";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) gtk3;};
 
   "tag-bits" = callPackage
@@ -247665,10 +248727,8 @@ self: {
     ({ mkDerivation, base, deepseq, template-haskell, transformers }:
      mkDerivation {
        pname = "tagged";
-       version = "0.8.6";
-       sha256 = "1pciqzxf9ncv954v4r527xkxkn7r5hcr13mfw5dg1xjci3qdw5md";
-       revision = "3";
-       editedCabalFile = "1wv9ngbj3pvs6v52dj0bli9h5vanyw3akpsmfmwsvnnian9hpkkw";
+       version = "0.8.6.1";
+       sha256 = "00kcc6lmj7v3xm2r3wzw5jja27m4alcw1wi8yiismd0bbzwzrq7m";
        libraryHaskellDepends = [
          base deepseq template-haskell transformers
        ];
@@ -248649,18 +249709,18 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "tasty_1_4" = callPackage
-    ({ mkDerivation, ansi-terminal, async, base, clock, containers, mtl
+  "tasty_1_4_0_1" = callPackage
+    ({ mkDerivation, ansi-terminal, base, clock, containers, mtl
      , optparse-applicative, stm, tagged, unbounded-delays, unix
      , wcwidth
      }:
      mkDerivation {
        pname = "tasty";
-       version = "1.4";
-       sha256 = "0jkia4zg01936gm2klpn3c4grlmdgiq0qnqq1cz7xg4baza14q3b";
+       version = "1.4.0.1";
+       sha256 = "1ffq2gpasdqm2drhd2aglcq33yrpb1h3grfyqyc34amz65bfczqq";
        libraryHaskellDepends = [
-         ansi-terminal async base clock containers mtl optparse-applicative
-         stm tagged unbounded-delays unix wcwidth
+         ansi-terminal base clock containers mtl optparse-applicative stm
+         tagged unbounded-delays unix wcwidth
        ];
        description = "Modern and extensible testing framework";
        license = stdenv.lib.licenses.mit;
@@ -248737,8 +249797,8 @@ self: {
     ({ mkDerivation, base, dejafu, random, tagged, tasty }:
      mkDerivation {
        pname = "tasty-dejafu";
-       version = "2.0.0.6";
-       sha256 = "0iw7yqb52cxw3fgp9did73wk41c1jxvdxx4vg0rna32bc0d7rwyh";
+       version = "2.0.0.7";
+       sha256 = "0jzaqra7gsrvy33j1g6bnrwg7x5pyg5p50l5mgvpz71kd946725l";
        libraryHaskellDepends = [ base dejafu random tagged tasty ];
        description = "Deja Fu support for the Tasty test framework";
        license = stdenv.lib.licenses.mit;
@@ -248783,14 +249843,14 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "tasty-expected-failure_0_12_1" = callPackage
+  "tasty-expected-failure_0_12_2" = callPackage
     ({ mkDerivation, base, hedgehog, tagged, tasty, tasty-golden
      , tasty-hedgehog, tasty-hunit, unbounded-delays
      }:
      mkDerivation {
        pname = "tasty-expected-failure";
-       version = "0.12.1";
-       sha256 = "1r4xljml8w55q6qpjj94ig2yic398624fld3dwjfcbaldgbacpmm";
+       version = "0.12.2";
+       sha256 = "0i97y723vi2f5z94ripli8jfzqk540w80cfab3prylbm9j3s7rb7";
        libraryHaskellDepends = [ base tagged tasty unbounded-delays ];
        testHaskellDepends = [
          base hedgehog tasty tasty-golden tasty-hedgehog tasty-hunit
@@ -248818,6 +249878,22 @@ self: {
        broken = true;
      }) {};
 
+  "tasty-focus" = callPackage
+    ({ mkDerivation, base, tagged, tasty, tasty-expected-failure
+     , tasty-hunit
+     }:
+     mkDerivation {
+       pname = "tasty-focus";
+       version = "1.0.1";
+       sha256 = "0i6syd1mb1mrf2ys0f4nx3j9xvkb73rwv627b8hr5xkipwp4pjm2";
+       libraryHaskellDepends = [ base tagged tasty ];
+       testHaskellDepends = [
+         base tasty tasty-expected-failure tasty-hunit
+       ];
+       description = "Simple focus mechanism for tasty";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "tasty-golden" = callPackage
     ({ mkDerivation, async, base, bytestring, containers, deepseq
      , directory, filepath, mtl, optparse-applicative, process, tagged
@@ -248892,8 +249968,8 @@ self: {
        pname = "tasty-hedgehog";
        version = "1.0.0.2";
        sha256 = "1vsv3m6brhshpqm8qixz97m7h0nx67cj6ira4cngbk7mf5rqylv5";
-       revision = "4";
-       editedCabalFile = "0z47ssv9030px81sxivhw5jp7yfpr6r6anlf03slks31jkzvx4gl";
+       revision = "6";
+       editedCabalFile = "12s7jgz14j32h62mgs4qbypqlpwjly1bk2hgrwqi9w3cjsskqk88";
        libraryHaskellDepends = [ base hedgehog tagged tasty ];
        testHaskellDepends = [
          base hedgehog tasty tasty-expected-failure
@@ -248964,8 +250040,8 @@ self: {
     ({ mkDerivation, base, call-stack, tasty }:
      mkDerivation {
        pname = "tasty-hunit";
-       version = "0.10.0.2";
-       sha256 = "1xvf5xs0r8xqkcg354klz4wyzwyzvinalyl6f4fnxwqmzrgch8s8";
+       version = "0.10.0.3";
+       sha256 = "0gz6zz3w7s44pymw33xcxnawryl27zk33766sab96nz2xh91kvxp";
        libraryHaskellDepends = [ base call-stack tasty ];
        description = "HUnit support for the Tasty test framework";
        license = stdenv.lib.licenses.mit;
@@ -248986,10 +250062,10 @@ self: {
     ({ mkDerivation, base, HUnit, tasty, tasty-hunit }:
      mkDerivation {
        pname = "tasty-hunit-compat";
-       version = "0.2";
-       sha256 = "0ds1j1qra45n7d6frrf5zw5ps3haa1610d99ha09nhc9l8wm4ivp";
+       version = "0.2.0.1";
+       sha256 = "0kfxga9j1iy7f00gj3dsh45ywyi7qzdlrmp16gr4ir3b08rwhj2m";
        libraryHaskellDepends = [ base HUnit tasty tasty-hunit ];
-       description = "Tasty integration with the existing HUnit package";
+       description = "Integration of `HUnit` with `tasty`";
        license = stdenv.lib.licenses.mpl20;
      }) {};
 
@@ -249191,8 +250267,8 @@ self: {
      }:
      mkDerivation {
        pname = "tasty-quickcheck";
-       version = "0.10.1.1";
-       sha256 = "098zyfl5958zikaqfyam75hv5l46pks5bnp3r7533bbmr4a60cpq";
+       version = "0.10.1.2";
+       sha256 = "0i1i78587znqzwps49milyr5n2k388ld2kr9ysz1vw8gcw51qq49";
        libraryHaskellDepends = [
          base optparse-applicative QuickCheck random tagged tasty
        ];
@@ -249224,6 +250300,8 @@ self: {
        pname = "tasty-rerun";
        version = "1.1.18";
        sha256 = "0sccp5zx9v2rx741nbmgd8mzjhy5m4v74hk26d23xz93ph8aqx7s";
+       revision = "1";
+       editedCabalFile = "17w6kxdd9zw87lh1bmh24c7dp59df8dshygx88j2i5nhbn7lfn50";
        libraryHaskellDepends = [
          base containers mtl optparse-applicative split stm tagged tasty
          transformers
@@ -249235,17 +250313,17 @@ self: {
   "tasty-silver" = callPackage
     ({ mkDerivation, ansi-terminal, async, base, bytestring, containers
      , deepseq, directory, filepath, mtl, optparse-applicative, process
-     , process-extras, regex-tdfa, semigroups, stm, tagged, tasty
-     , tasty-hunit, temporary, text, transformers
+     , process-extras, regex-tdfa, stm, tagged, tasty, tasty-hunit
+     , temporary, text, transformers
      }:
      mkDerivation {
        pname = "tasty-silver";
-       version = "3.1.15";
-       sha256 = "07iiaw5q5jb6bxm5ys1s6bliw0qxsqp100awzxwkwfia03i1iz8z";
+       version = "3.2.1";
+       sha256 = "1i39xks5rjpnid2y1n16fyb01wj7hpdw0n5ci1rnsps5f16nkcxr";
        libraryHaskellDepends = [
          ansi-terminal async base bytestring containers deepseq directory
          filepath mtl optparse-applicative process process-extras regex-tdfa
-         semigroups stm tagged tasty temporary text
+         stm tagged tasty temporary text
        ];
        testHaskellDepends = [
          base directory filepath process tasty tasty-hunit temporary
@@ -249256,12 +250334,16 @@ self: {
      }) {};
 
   "tasty-smallcheck" = callPackage
-    ({ mkDerivation, async, base, smallcheck, tagged, tasty }:
+    ({ mkDerivation, base, optparse-applicative, smallcheck, tagged
+     , tasty
+     }:
      mkDerivation {
        pname = "tasty-smallcheck";
-       version = "0.8.1";
-       sha256 = "1n66ngzllf3xrlqykwszlkwsi96n5nkm7xbpfq7774vpvfnafjri";
-       libraryHaskellDepends = [ async base smallcheck tagged tasty ];
+       version = "0.8.2";
+       sha256 = "0csgwn3vch0jnpqyyfnrfjq4z0dpl67imh5a7byll3hhlyidgjym";
+       libraryHaskellDepends = [
+         base optparse-applicative smallcheck tagged tasty
+       ];
        description = "SmallCheck support for the Tasty test framework";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -249645,6 +250727,28 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "tdigest_0_2_1_1" = callPackage
+    ({ mkDerivation, base, base-compat, binary, deepseq, reducers
+     , semigroupoids, semigroups, tasty, tasty-quickcheck, transformers
+     , vector, vector-algorithms
+     }:
+     mkDerivation {
+       pname = "tdigest";
+       version = "0.2.1.1";
+       sha256 = "1dvkf7cs8dcr13wza5iyq2qgvz75r33mzgfmhdihw62xzxsqb6d3";
+       libraryHaskellDepends = [
+         base base-compat binary deepseq reducers semigroupoids transformers
+         vector vector-algorithms
+       ];
+       testHaskellDepends = [
+         base base-compat binary deepseq semigroups tasty tasty-quickcheck
+         vector vector-algorithms
+       ];
+       description = "On-line accumulation of rank-based statistics";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "tdigest-Chart" = callPackage
     ({ mkDerivation, base, base-compat, Chart, Chart-diagrams, colour
      , lens, mwc-random, semigroupoids, statistics, tdigest, vector
@@ -249821,6 +250925,29 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "techlab" = callPackage
+    ({ mkDerivation, base, chassis, co-log-polysemy, composite-base
+     , containers, dhall, formatting, optics, path-dhall-instance
+     , polysemy, polysemy-extra, polysemy-fs, polysemy-methodology
+     , polysemy-methodology-composite, polysemy-plugin, polysemy-vinyl
+     , polysemy-zoo
+     }:
+     mkDerivation {
+       pname = "techlab";
+       version = "0.1.1.0";
+       sha256 = "1139slr5pd03zr7w6m3mw625wkfd9jw8slqddgmbawpbi2z20p80";
+       libraryHaskellDepends = [
+         base chassis co-log-polysemy composite-base containers dhall
+         formatting optics path-dhall-instance polysemy polysemy-extra
+         polysemy-fs polysemy-methodology polysemy-methodology-composite
+         polysemy-plugin polysemy-vinyl polysemy-zoo
+       ];
+       description = "Bleeding edge prelude";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "technique" = callPackage
     ({ mkDerivation, async, base, containers, core-data, core-program
      , core-text, dlist, free, hashable, hspec, ivar-simple, megaparsec
@@ -250996,17 +252123,17 @@ self: {
   "termonad" = callPackage
     ({ mkDerivation, adjunctions, base, Cabal, cabal-doctest
      , classy-prelude, colour, constraints, containers, data-default
-     , directory, distributive, doctest, dyre, file-embed, filepath
-     , focuslist, genvalidity-containers, genvalidity-hspec, gi-gdk
-     , gi-gio, gi-glib, gi-gtk, gi-pango, gi-vte, gtk3, haskell-gi-base
+     , directory, distributive, dyre, file-embed, filepath, focuslist
+     , genvalidity-containers, genvalidity-hspec, gi-gdk, gi-gio
+     , gi-glib, gi-gtk, gi-pango, gi-vte, gtk3, haskell-gi-base
      , hedgehog, inline-c, lens, mono-traversable, pcre2, pretty-simple
-     , QuickCheck, tasty, tasty-hedgehog, tasty-hspec, template-haskell
-     , text, transformers, vte_291, xml-conduit, xml-html-qq, yaml
+     , QuickCheck, tasty, tasty-hedgehog, tasty-hspec, text
+     , transformers, vte_291, xml-conduit, xml-html-qq, yaml
      }:
      mkDerivation {
        pname = "termonad";
-       version = "4.0.1.1";
-       sha256 = "1vjxq903jws85n6aihmgif1s168afg2v9ixdxri98mzjkww10sgl";
+       version = "4.0.1.2";
+       sha256 = "0gf1p3bjc42jmw5jb7ysm0vnyk5zah8y6fv23k8b6r2zdr8p9v6w";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -251021,8 +252148,8 @@ self: {
        libraryPkgconfigDepends = [ gtk3 pcre2 vte_291 ];
        executableHaskellDepends = [ base ];
        testHaskellDepends = [
-         base doctest genvalidity-containers genvalidity-hspec hedgehog lens
-         QuickCheck tasty tasty-hedgehog tasty-hspec template-haskell
+         base genvalidity-containers genvalidity-hspec hedgehog lens
+         QuickCheck tasty tasty-hedgehog tasty-hspec
        ];
        description = "Terminal emulator configurable in Haskell";
        license = stdenv.lib.licenses.bsd3;
@@ -251683,8 +252810,8 @@ self: {
      }:
      mkDerivation {
        pname = "testcontainers";
-       version = "0.2.0.0";
-       sha256 = "0drdi2qqgiw499lwvkdc5yn8x7mys6l4p47jcz0af62fczpa5dnh";
+       version = "0.3.0.0";
+       sha256 = "0iibmfb5ps7i9d35pwj22a8dxn6b31hmdzswcdmbhdbkq06534hj";
        libraryHaskellDepends = [
          aeson aeson-optics base bytestring exceptions mtl network
          optics-core process resourcet tasty text unliftio-core
@@ -251876,8 +253003,8 @@ self: {
      }:
      mkDerivation {
        pname = "texmath";
-       version = "0.12.0.3";
-       sha256 = "06293ng7s9mn05vf5wlw2691gjzh6nmg717rxmbzr96zjv3731ri";
+       version = "0.12.1";
+       sha256 = "1pp52g4jwyf0w0xpja7gamd39g3acfclc3q29ldpzpfbhnl23n27";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -251978,8 +253105,8 @@ self: {
     ({ mkDerivation, base, text }:
      mkDerivation {
        pname = "text-ansi";
-       version = "0.1.0.1";
-       sha256 = "1qy5qqwm41xcxc5bs0aicdm40vnz1rm8mgmxzfxvjnwc9p28pyb3";
+       version = "0.1.0.2";
+       sha256 = "139whkn4yr72bxd4jq3zp0cccylynb8p2lgk5dkhrhddhcj5605g";
        libraryHaskellDepends = [ base text ];
        description = "Text styling for ANSI terminals";
        license = stdenv.lib.licenses.bsd3;
@@ -253000,8 +254127,8 @@ self: {
     ({ mkDerivation, base, containers, ghc-prim, template-haskell }:
      mkDerivation {
        pname = "th-abstraction";
-       version = "0.4.0.0";
-       sha256 = "09r09va7ihhk2nbz73y0cp4hijbf4zpr4hiss0xqa9pqkkazz62h";
+       version = "0.4.2.0";
+       sha256 = "0h0wl442a82llpjsxv45i7grgyanlzjj7k28mhnvbi2zlb6v41pa";
        libraryHaskellDepends = [
          base containers ghc-prim template-haskell
        ];
@@ -254690,14 +255817,14 @@ self: {
        broken = true;
      }) {};
 
-  "time_1_11_1" = callPackage
+  "time_1_11_1_1" = callPackage
     ({ mkDerivation, base, criterion, deepseq, QuickCheck, random
      , tasty, tasty-hunit, tasty-quickcheck, unix
      }:
      mkDerivation {
        pname = "time";
-       version = "1.11.1";
-       sha256 = "0l0nqqg38xz2q78pi4i4jsbrb1jkn9ch0xlq17kn7824dh0j21vw";
+       version = "1.11.1.1";
+       sha256 = "0xrs9j4fskxz98zgwhgh7w4d9a6im3ipahg6ahp0689qhs61cx9p";
        libraryHaskellDepends = [ base deepseq ];
        testHaskellDepends = [
          base deepseq QuickCheck random tasty tasty-hunit tasty-quickcheck
@@ -254730,23 +255857,6 @@ self: {
      }:
      mkDerivation {
        pname = "time-compat";
-       version = "1.9.4";
-       sha256 = "0fpk2bpxfyzwd24lk06k3cpra713hrpva5ylnwa28zq34azy1snz";
-       libraryHaskellDepends = [ base base-orphans deepseq time ];
-       testHaskellDepends = [
-         base base-compat deepseq HUnit QuickCheck tagged tasty tasty-hunit
-         tasty-quickcheck time
-       ];
-       description = "Compatibility package for time";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "time-compat_1_9_5" = callPackage
-    ({ mkDerivation, base, base-compat, base-orphans, deepseq, HUnit
-     , QuickCheck, tagged, tasty, tasty-hunit, tasty-quickcheck, time
-     }:
-     mkDerivation {
-       pname = "time-compat";
        version = "1.9.5";
        sha256 = "19p3056i6kh8lgcdsnwsh8pj80xyi23kmw9n7hmdacczs5kv49ii";
        libraryHaskellDepends = [ base base-orphans deepseq time ];
@@ -254756,7 +255866,6 @@ self: {
        ];
        description = "Compatibility package for time";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "time-extras" = callPackage
@@ -256049,8 +257158,8 @@ self: {
      }:
      mkDerivation {
        pname = "tlynx";
-       version = "0.5.0";
-       sha256 = "1q7mca9gg9fshj5d2yhbvv3ll33z7h7ga3lbli3fax6dk2ncw6pm";
+       version = "0.5.0.1";
+       sha256 = "0prqnbq75jrixx845z3hbqajfc63vgsdfdgrsxw0g29rx0x4hw2i";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -257170,8 +258279,8 @@ self: {
        pname = "toysolver";
        version = "0.6.0";
        sha256 = "0hd3rwbv8k62qnw9spwx6gl0j4syivvrigjcdgc53llbqzdjr0v1";
-       revision = "1";
-       editedCabalFile = "0grqs68qr3jpy2hibl5vlnz981hk0hnd5wacglnxxswqikdbpn06";
+       revision = "3";
+       editedCabalFile = "02dmyy2agp6x59dcagqmbwk46bn8q1y4ragk5yggajsw4gbm5gvn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -261477,8 +262586,8 @@ self: {
      }:
      mkDerivation {
        pname = "typed-encoding";
-       version = "0.5.1.0";
-       sha256 = "0bycjpq11p1byg5kncj3zykf2k5j18mgz3c9jsmcwji4wslagacp";
+       version = "0.5.2.1";
+       sha256 = "1n71rxj42ssv7g4yqsycg5wg1afja2y1jxfb5khv323v581gf4wn";
        libraryHaskellDepends = [
          base base64-bytestring bytestring symbols text
        ];
@@ -261879,8 +262988,8 @@ self: {
      }:
      mkDerivation {
        pname = "typesafe-precure";
-       version = "0.7.10.1";
-       sha256 = "0zq0bl4j1hwf2q0ipl0vp0q19lhs0bnwmrh7qh1qn53g078aj5ga";
+       version = "0.7.11.1";
+       sha256 = "1kbxj35dr41rg1s38f9dv2bg2d0rrwj1g2154ggfpx6kwy758jg6";
        libraryHaskellDepends = [
          aeson aeson-pretty autoexporter base bytestring dlist
          monad-skeleton template-haskell text th-data-compat
@@ -262553,13 +263662,24 @@ self: {
     ({ mkDerivation, base, bytestring, mmsyn2, mmsyn5, vector }:
      mkDerivation {
        pname = "ukrainian-phonetics-basic";
-       version = "0.3.2.0";
-       sha256 = "16w4dggl61jh93rqq0czb3lpbq9cf4kxih5c0i5mbrjcxn50cdqg";
+       version = "0.4.1.0";
+       sha256 = "1sgch686yq6yqm6yz63v4hcprslfzn82an1ndxbgy0m7d7ipdavx";
        libraryHaskellDepends = [ base bytestring mmsyn2 mmsyn5 vector ];
        description = "A library to work with the basic Ukrainian phonetics and syllable segmentation";
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "ukrainian-phonetics-basic-array" = callPackage
+    ({ mkDerivation, base, bytestring, mmsyn2-array, mmsyn5 }:
+     mkDerivation {
+       pname = "ukrainian-phonetics-basic-array";
+       version = "0.1.1.0";
+       sha256 = "1v5nzcnyrkhz5r2igxdp07ac506p0nnmjiskxxil5rzhab9zf8kn";
+       libraryHaskellDepends = [ base bytestring mmsyn2-array mmsyn5 ];
+       description = "A library to work with the basic Ukrainian phonetics and syllable segmentation";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "ulid" = callPackage
     ({ mkDerivation, base, binary, bytestring, crypto-api, deepseq
      , format-numbers, hashable, hspec, random, text, time
@@ -263671,8 +264791,8 @@ self: {
     ({ mkDerivation, base, ghc-prim }:
      mkDerivation {
        pname = "uniqueness-periods-vector-stats";
-       version = "0.1.2.0";
-       sha256 = "1k98rdjq4i38lrnradfpdzk25b312h65m4mzbyjjzn7hzfra86gn";
+       version = "0.2.1.0";
+       sha256 = "1vw12a6q1h2in2llyy49n54s20sh8i4ry9vr2rwy8q0xfvfq9v25";
        libraryHaskellDepends = [ base ghc-prim ];
        description = "A very basic descriptive statistics";
        license = stdenv.lib.licenses.mit;
@@ -264029,6 +265149,32 @@ self: {
      }:
      mkDerivation {
        pname = "universum";
+       version = "1.5.0";
+       sha256 = "17rzi17k2wj3p6dzd0dggzgyhh0c2mma4znkci1hqcihwr6rrljk";
+       libraryHaskellDepends = [
+         base bytestring containers deepseq ghc-prim hashable microlens
+         microlens-mtl mtl safe-exceptions stm text transformers
+         unordered-containers utf8-string vector
+       ];
+       testHaskellDepends = [
+         base bytestring doctest Glob hedgehog tasty tasty-hedgehog text
+         utf8-string
+       ];
+       benchmarkHaskellDepends = [
+         base containers gauge unordered-containers
+       ];
+       description = "Custom prelude used in Serokell";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "universum_1_7_1" = callPackage
+    ({ mkDerivation, base, bytestring, containers, deepseq, doctest
+     , gauge, ghc-prim, Glob, hashable, hedgehog, microlens
+     , microlens-mtl, mtl, safe-exceptions, stm, tasty, tasty-hedgehog
+     , text, transformers, unordered-containers, utf8-string, vector
+     }:
+     mkDerivation {
+       pname = "universum";
        version = "1.7.1";
        sha256 = "0jsdzhy0h5d6znnrdgzr29b6qkriidck5s6yp52pci30rfv1d29z";
        libraryHaskellDepends = [
@@ -264044,6 +265190,7 @@ self: {
        ];
        description = "Custom prelude used in Serokell";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "unix_2_7_2_2" = callPackage
@@ -265026,8 +266173,8 @@ self: {
      }:
      mkDerivation {
        pname = "uri-bytestring";
-       version = "0.3.2.2";
-       sha256 = "0spzv3mwlpxiamd7347sxwcy2xri16ak1y7p1v4fisnvq4jprm67";
+       version = "0.3.3.0";
+       sha256 = "1zpynqz2q29cfk77n0d6lrnzmrqqi5nijvqd2pkz2fax3s6qhysz";
        libraryHaskellDepends = [
          attoparsec base blaze-builder bytestring containers
          template-haskell th-lift-instances
@@ -267389,8 +268536,8 @@ self: {
      }:
      mkDerivation {
        pname = "vector-algorithms";
-       version = "0.8.0.3";
-       sha256 = "11vks2h9f5gk0irsx5j9xwlicbzkv3k80sx76j5k3zb38q0izi0s";
+       version = "0.8.0.4";
+       sha256 = "0fxg6w0vh5g2vzw4alajj9ywdijfn9nyx28hbckhmwwbfxb6l5vn";
        libraryHaskellDepends = [ base bytestring primitive vector ];
        testHaskellDepends = [
          base bytestring containers QuickCheck vector
@@ -267492,16 +268639,17 @@ self: {
      }) {};
 
   "vector-circular" = callPackage
-    ({ mkDerivation, base, hedgehog, hedgehog-classes, nonempty-vector
-     , primitive, semigroupoids, template-haskell, vector
+    ({ mkDerivation, base, deepseq, hedgehog, hedgehog-classes
+     , nonempty-vector, primitive, semigroupoids, template-haskell
+     , vector
      }:
      mkDerivation {
        pname = "vector-circular";
-       version = "0.1";
-       sha256 = "1ha5hdl2g7shjssjhqx4s5sqp34y301l0f0dg8yshrw5srg1k90x";
+       version = "0.1.1";
+       sha256 = "08ydvvhzgkci615dnh3r5avzvx0xzibh9l2lys93sbxa139j446c";
        libraryHaskellDepends = [
-         base nonempty-vector primitive semigroupoids template-haskell
-         vector
+         base deepseq nonempty-vector primitive semigroupoids
+         template-haskell vector
        ];
        testHaskellDepends = [ base hedgehog hedgehog-classes ];
        description = "circular vectors";
@@ -267592,6 +268740,17 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "vector-fft" = callPackage
+    ({ mkDerivation, base, primitive, vector }:
+     mkDerivation {
+       pname = "vector-fft";
+       version = "0.1.0.2";
+       sha256 = "1aygafvsx3wybbp6hqg5ddkawl8m5m6s6dg5hbrlyibz2whrp1fs";
+       libraryHaskellDepends = [ base primitive vector ];
+       description = "Native FFT and IFFT for vector";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "vector-fftw" = callPackage
     ({ mkDerivation, base, fftw, primitive, QuickCheck
      , storable-complex, test-framework, test-framework-quickcheck2
@@ -267741,8 +268900,8 @@ self: {
      }:
      mkDerivation {
        pname = "vector-sized";
-       version = "1.4.2";
-       sha256 = "02a7jzik6a6w1xb6bwpvl6hmii6jgi9wr0q7p48bfbq0mlqjv42h";
+       version = "1.4.3.1";
+       sha256 = "0vm6wvbn3g4r028p46yh24rz7pr429w03jshpwyj2z2c6b058klr";
        libraryHaskellDepends = [
          adjunctions base binary comonad deepseq distributive
          finite-typelits hashable indexed-list-literals primitive vector
@@ -268598,6 +269757,17 @@ self: {
        broken = true;
      }) {};
 
+  "vinyl-loeb" = callPackage
+    ({ mkDerivation, base, vinyl }:
+     mkDerivation {
+       pname = "vinyl-loeb";
+       version = "0.0.1.0";
+       sha256 = "1vxw57c17lajq6qb2kcblymbg42y7ddh85kiik5kwmbxgfmqyrrv";
+       libraryHaskellDepends = [ base vinyl ];
+       description = "Loeb's theorem for extensible records";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "vinyl-named-sugar" = callPackage
     ({ mkDerivation, base, vinyl }:
      mkDerivation {
@@ -268822,19 +269992,20 @@ self: {
      }) {};
 
   "vivid" = callPackage
-    ({ mkDerivation, base, binary, bytestring, containers, directory
-     , filepath, hashable, MonadRandom, mtl, network, process, random
-     , random-shuffle, split, stm, time, transformers, utf8-string
-     , vivid-osc, vivid-supercollider
+    ({ mkDerivation, base, binary, bytestring, cereal, containers
+     , directory, filepath, hashable, MonadRandom, mtl, network, process
+     , random, random-shuffle, split, stm, time, transformers
+     , utf8-string, vivid-osc, vivid-supercollider
      }:
      mkDerivation {
        pname = "vivid";
-       version = "0.4.2.4";
-       sha256 = "11admh79xx88i0yv8x7b38cchgarjbrxmzcbyd2aqa5v7hvk22k6";
+       version = "0.5.1.0";
+       sha256 = "06skwy5k4sgmh7m20m5v3g82kvm6sxq2sxmg039s45pvkbfp1c32";
        libraryHaskellDepends = [
-         base binary bytestring containers directory filepath hashable
-         MonadRandom mtl network process random random-shuffle split stm
-         time transformers utf8-string vivid-osc vivid-supercollider
+         base binary bytestring cereal containers directory filepath
+         hashable MonadRandom mtl network process random random-shuffle
+         split stm time transformers utf8-string vivid-osc
+         vivid-supercollider
        ];
        description = "Sound synthesis with SuperCollider";
        license = "GPL";
@@ -269208,8 +270379,8 @@ self: {
     ({ mkDerivation, base, bytestring, transformers, vector, vulkan }:
      mkDerivation {
        pname = "vulkan";
-       version = "3.8";
-       sha256 = "08d48q6wml8bh28s39zk12hi6760xmn92qdb9zk7y3h896i8v15s";
+       version = "3.8.2";
+       sha256 = "1wq3hd99zqzasfj4w86yypcd0yrdp8q3xrzx3g2v6vyi99qwzdrr";
        libraryHaskellDepends = [ base bytestring transformers vector ];
        librarySystemDepends = [ vulkan ];
        description = "Bindings to the Vulkan graphics API";
@@ -269640,8 +270811,8 @@ self: {
      }:
      mkDerivation {
        pname = "wai-extra";
-       version = "3.1.3";
-       sha256 = "17s8cf0fdbkg9z2pvpsbhxg2cy5yy3c94513gkgf81lfl38zdrn7";
+       version = "3.1.4.1";
+       sha256 = "0q95vz3x0avznpv0mcb71vlmamyws8sm50asrhcph5qwfwh9x13a";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -272722,6 +273893,24 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {inherit (pkgs) webkitgtk24x-gtk3;};
 
+  "webp" = callPackage
+    ({ mkDerivation, base, bytestring, c2hs, JuicyPixels, libwebp
+     , tasty, tasty-hunit, vector
+     }:
+     mkDerivation {
+       pname = "webp";
+       version = "0.1.0.0";
+       sha256 = "153icv3911drnjkii2b0csdq3ksavmxpz26zm9xcp24kfbsr6gvk";
+       libraryHaskellDepends = [ base bytestring JuicyPixels vector ];
+       libraryPkgconfigDepends = [ libwebp ];
+       libraryToolDepends = [ c2hs ];
+       testHaskellDepends = [
+         base bytestring JuicyPixels tasty tasty-hunit
+       ];
+       description = "JuicyPixels support for WebP format";
+       license = stdenv.lib.licenses.gpl3;
+     }) {inherit (pkgs) libwebp;};
+
   "webpage" = callPackage
     ({ mkDerivation, base, blaze-html, data-default, lucid, text }:
      mkDerivation {
@@ -272809,8 +273998,8 @@ self: {
      }:
      mkDerivation {
        pname = "websockets";
-       version = "0.12.7.1";
-       sha256 = "1jqlvgw1ffw0236y4g7li188m9ac37a2yp07vkvcmbz63rmhfmnk";
+       version = "0.12.7.2";
+       sha256 = "1b92a41l2var1ccg350mh2bjmb2plb6d79yzvmlwkd41nifmmi44";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -272974,8 +274163,8 @@ self: {
      }:
      mkDerivation {
        pname = "weeder";
-       version = "2.1.2";
-       sha256 = "0jhdpv4032334ag46jm6d6nc3pdkccq74fkfzijslz798zh9sqmj";
+       version = "2.1.3";
+       sha256 = "0yph2dzg4xrfs7439jmxn3jc7h42id0c2f987wl6lccrbn39vzd7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -273369,10 +274558,8 @@ self: {
      }:
      mkDerivation {
        pname = "wide-word";
-       version = "0.1.1.1";
-       sha256 = "19mxi6mfri4q96lqh3zllmacaln2wdp0ipzmhk7v9xqbphpfjrfj";
-       revision = "1";
-       editedCabalFile = "0dyq104qxbsvab6x5jxg0ssqbjzgkmd4z5366byf7fvc0c4m2ink";
+       version = "0.1.1.2";
+       sha256 = "10sj7nca2sba74bkiicnp95xrfq2j1al93ggw3z24982nm9x3j8r";
        libraryHaskellDepends = [ base deepseq primitive ];
        testHaskellDepends = [
          base bytestring ghc-prim hedgehog primitive QuickCheck
@@ -273469,16 +274656,17 @@ self: {
      }) {};
 
   "wild-bind-indicator" = callPackage
-    ({ mkDerivation, base, containers, gtk, text, transformers
-     , wild-bind
+    ({ mkDerivation, async, base, containers, gi-gdk, gi-glib, gi-gtk
+     , text, transformers, wild-bind
      }:
      mkDerivation {
        pname = "wild-bind-indicator";
-       version = "0.2.0.0";
-       sha256 = "09p7x77ksh9qp4ir5cy470y978m4ln0sp44pffm0mld1apdam27x";
+       version = "1.0.0.0";
+       sha256 = "1irb8njd076vwz2676v0fa56agsszcs9ra5pbzlyxbb69kg2fgq3";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         base containers gtk text transformers wild-bind
+         async base containers gi-gdk gi-glib gi-gtk text transformers
+         wild-bind
        ];
        description = "Graphical indicator for WildBind";
        license = stdenv.lib.licenses.bsd3;
@@ -273492,8 +274680,8 @@ self: {
      }:
      mkDerivation {
        pname = "wild-bind-task-x11";
-       version = "0.2.0.1";
-       sha256 = "0n8sg0qg0ambh0744c19zwxxky2b0vwpmn464i3mp587dkfpm0p2";
+       version = "0.2.0.2";
+       sha256 = "1hxsykbzw3z3vhzpi2z4b6gxvbr91s0jkxq9jc47xzx6ar0x7jq0";
        libraryHaskellDepends = [
          base text transformers wild-bind wild-bind-indicator wild-bind-x11
        ];
@@ -273510,8 +274698,8 @@ self: {
      }:
      mkDerivation {
        pname = "wild-bind-x11";
-       version = "0.2.0.10";
-       sha256 = "0wq6jhaq2mh476mwjqc6ianqvvrywlvrkcwh7acdxznz2djkgjm5";
+       version = "0.2.0.11";
+       sha256 = "05i0jrvap7vwzx3m97wfihplank8mjlap4q1bwvr9fb97farll0b";
        libraryHaskellDepends = [
          base containers fold-debounce mtl semigroups stm text transformers
          wild-bind X11
@@ -273735,8 +274923,8 @@ self: {
      }:
      mkDerivation {
        pname = "witch";
-       version = "0.0.0.3";
-       sha256 = "0ghajh4f4xfhn79bmyhamxjgl63lwg37kp39nn1q6qxggzzmzkyx";
+       version = "0.0.0.4";
+       sha256 = "1mph0zaz2dnhpchyiyspqsjghd8kn8sbqnhbyjmag51l2wr418vb";
        libraryHaskellDepends = [ base bytestring containers text ];
        testHaskellDepends = [
          base bytestring containers hspec QuickCheck text
@@ -276611,10 +277799,8 @@ self: {
      }:
      mkDerivation {
        pname = "xml-conduit-stylist";
-       version = "2.2.0.0";
-       sha256 = "0zd7irwy8fl9zkpzj85lg9xv4m01cr4dzvlxyz8nh6l1rwvhqang";
-       revision = "2";
-       editedCabalFile = "0h20v462sfq4cli5b9d574qjhxs1vgzh5yb2spgj6w9pmf7ydf61";
+       version = "2.3.0.0";
+       sha256 = "15iznb6xpas8044p03w3vll4vv7zwpcbbrh59ywwjr8m45659p4w";
        libraryHaskellDepends = [
          base containers css-syntax network-uri stylist text
          unordered-containers xml-conduit
@@ -279805,8 +280991,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-auth-oauth2";
-       version = "0.6.1.5";
-       sha256 = "1awd16wli7g746sf5aqkzb0nglcbji3pl5yyximhb2ab2gjl2ank";
+       version = "0.6.1.7";
+       sha256 = "11z4zgzj9j15agnqj9dpfavmi2ns9d6aa4inazk1kig1wai2inp1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -280017,8 +281203,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-core";
-       version = "1.6.18.7";
-       sha256 = "0rf30h5akdjyja0xld2cg0zldvbzcqcrmg2kp4gajh1qjzzcf69g";
+       version = "1.6.18.8";
+       sha256 = "1phqb74z5nqnx1xnbhnpimcdcrzm5dd474svzc5hp0ji3kp2xkri";
        libraryHaskellDepends = [
          aeson auto-update base blaze-html blaze-markup bytestring
          case-insensitive cereal clientsession conduit conduit-extra
@@ -280386,8 +281572,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-form-multi";
-       version = "1.6.0";
-       sha256 = "162pyvyv5kv5bicl8ikvffnsyjqc8z0n758ycgnvwly0bvskrl37";
+       version = "1.7.0";
+       sha256 = "02xba6x59sx8c72vazbl5jhjkxgni6h3bkvidr4hvqrx2bscmk45";
        libraryHaskellDepends = [
          base containers network-uri shakespeare text transformers
          yesod-core yesod-form
@@ -280519,6 +281705,23 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "yesod-katip" = callPackage
+    ({ mkDerivation, aeson, base, case-insensitive, data-default
+     , http-types, iproute, katip, monad-logger, network, text, wai
+     , wai-extra, yesod-core, ytl
+     }:
+     mkDerivation {
+       pname = "yesod-katip";
+       version = "0.1.0.0";
+       sha256 = "0cga4agqv5vc56cavvrbddwqg5bvamy49y82d6f4xqmicfnpdlxm";
+       libraryHaskellDepends = [
+         aeson base case-insensitive data-default http-types iproute katip
+         monad-logger network text wai wai-extra yesod-core ytl
+       ];
+       description = "Logging bridge between Yesod and Katip";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "yesod-links" = callPackage
     ({ mkDerivation, base, text, yesod-core }:
      mkDerivation {
@@ -281245,19 +282448,19 @@ self: {
   "yesod-test" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, blaze-builder, blaze-html
      , bytestring, case-insensitive, conduit, containers, cookie, hspec
-     , hspec-core, html-conduit, http-types, HUnit, memory, network
+     , hspec-core, html-conduit, http-types, HUnit, memory, mtl, network
      , pretty-show, text, time, transformers, unliftio, unliftio-core
      , wai, wai-extra, xml-conduit, xml-types, yesod-core, yesod-form
      }:
      mkDerivation {
        pname = "yesod-test";
-       version = "1.6.11";
-       sha256 = "1h3bggs5z5ixriy8agj9f2ms5vfcbp7a3bwr3rpfkfrckwypj6hp";
+       version = "1.6.12";
+       sha256 = "1xgy7dzhqjgllqcpyyxs0spdg6vlz2c1sjvni7w7qnsf0ckyw2l8";
        libraryHaskellDepends = [
          aeson attoparsec base blaze-builder blaze-html bytestring
          case-insensitive conduit containers cookie hspec-core html-conduit
-         http-types HUnit memory network pretty-show text time transformers
-         wai wai-extra xml-conduit xml-types yesod-core
+         http-types HUnit memory mtl network pretty-show text time
+         transformers wai wai-extra xml-conduit xml-types yesod-core
        ];
        testHaskellDepends = [
          base bytestring containers cookie hspec html-conduit http-types
@@ -282217,6 +283420,20 @@ self: {
        broken = true;
      }) {};
 
+  "ytl" = callPackage
+    ({ mkDerivation, base, mtl, pointed, template-haskell, yesod-core
+     }:
+     mkDerivation {
+       pname = "ytl";
+       version = "0.1.0.0";
+       sha256 = "0dbvhq5cqlql5waym40hjvz0807wqhys60m72r36fh1mndwzpsqk";
+       libraryHaskellDepends = [
+         base mtl pointed template-haskell yesod-core
+       ];
+       description = "mtl-style transformations for Yesod sites";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "yu-auth" = callPackage
     ({ mkDerivation, base, cryptonite, memory, MonadRandom, random
      , yu-utils
@@ -282660,20 +283877,19 @@ self: {
 
   "zeolite-lang" = callPackage
     ({ mkDerivation, base, containers, directory, filepath, hashable
-     , mtl, parsec, regex-tdfa, time, transformers, unix
+     , megaparsec, mtl, parser-combinators, regex-tdfa, time
+     , transformers, unix
      }:
      mkDerivation {
        pname = "zeolite-lang";
-       version = "0.9.0.0";
-       sha256 = "0gcjjxavsc763a218rswzk7zrx917qg5sid7gpy81yw054kfp6ws";
-       revision = "1";
-       editedCabalFile = "0c76xxaxqwsh0ybvf5r6wza9gq7y7hiqm75pazmrhkzvm48q1dl8";
+       version = "0.12.0.0";
+       sha256 = "056brd93d1559wdz7s4wcvjglqg5p1bafhhgbqcqnd0q8msnilrv";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         base containers directory filepath hashable mtl parsec regex-tdfa
-         time transformers unix
+         base containers directory filepath hashable megaparsec mtl
+         parser-combinators regex-tdfa time transformers unix
        ];
        executableHaskellDepends = [
          base containers directory filepath unix
diff --git a/pkgs/development/haskell-modules/lib.nix b/pkgs/development/haskell-modules/lib.nix
index 6bcc563164e..964c179fb65 100644
--- a/pkgs/development/haskell-modules/lib.nix
+++ b/pkgs/development/haskell-modules/lib.nix
@@ -414,13 +414,13 @@ rec {
   */
   generateOptparseApplicativeCompletion = exeName: pkg: overrideCabal pkg (drv: {
     postInstall = (drv.postInstall or "") + ''
-      bashCompDir="$out/share/bash-completion/completions"
-      zshCompDir="$out/share/zsh/vendor-completions"
-      fishCompDir="$out/share/fish/vendor_completions.d"
+      bashCompDir="''${!outputBin}/share/bash-completion/completions"
+      zshCompDir="''${!outputBin}/share/zsh/vendor-completions"
+      fishCompDir="''${!outputBin}/share/fish/vendor_completions.d"
       mkdir -p "$bashCompDir" "$zshCompDir" "$fishCompDir"
-      "$out/bin/${exeName}" --bash-completion-script "$out/bin/${exeName}" >"$bashCompDir/${exeName}"
-      "$out/bin/${exeName}" --zsh-completion-script "$out/bin/${exeName}" >"$zshCompDir/_${exeName}"
-      "$out/bin/${exeName}" --fish-completion-script "$out/bin/${exeName}" >"$fishCompDir/${exeName}.fish"
+      "''${!outputBin}/bin/${exeName}" --bash-completion-script "''${!outputBin}/bin/${exeName}" >"$bashCompDir/${exeName}"
+      "''${!outputBin}/bin/${exeName}" --zsh-completion-script "''${!outputBin}/bin/${exeName}" >"$zshCompDir/_${exeName}"
+      "''${!outputBin}/bin/${exeName}" --fish-completion-script "''${!outputBin}/bin/${exeName}" >"$fishCompDir/${exeName}.fish"
 
       # Sanity check
       grep -F ${exeName} <$bashCompDir/${exeName} >/dev/null || {
diff --git a/pkgs/development/haskell-modules/non-hackage-packages.nix b/pkgs/development/haskell-modules/non-hackage-packages.nix
index 30f00cc6ea2..b31f6c6289d 100644
--- a/pkgs/development/haskell-modules/non-hackage-packages.nix
+++ b/pkgs/development/haskell-modules/non-hackage-packages.nix
@@ -9,6 +9,8 @@ self: super: {
 
   dconf2nix = self.callPackage ../tools/haskell/dconf2nix/dconf2nix.nix { };
 
+  ldgallery-compiler = self.callPackage ../../tools/graphics/ldgallery/compiler { };
+
   # https://github.com/channable/vaultenv/issues/1
   vaultenv = self.callPackage ../tools/haskell/vaultenv { };
 
@@ -19,9 +21,10 @@ self: super: {
   # HLS and its fork of ghcide that it uses
   # both are auto-generated by pkgs/development/tools/haskell/haskell-language-server/update.sh
   haskell-language-server = self.callPackage ../tools/haskell/haskell-language-server { };
-  hls-brittany = self.callPackage ../tools/haskell/haskell-language-server/hls-brittany.nix { };
   hls-hlint-plugin = self.callPackage ../tools/haskell/haskell-language-server/hls-hlint-plugin.nix { };
   hls-tactics-plugin = self.callPackage ../tools/haskell/haskell-language-server/hls-tactics-plugin.nix { };
+  hls-explicit-imports-plugin = self.callPackage ../tools/haskell/haskell-language-server/hls-explicit-imports-plugin.nix { };
+  hls-retrie-plugin = self.callPackage ../tools/haskell/haskell-language-server/hls-retrie-plugin.nix { };
 
   nix-output-monitor = self.callPackage ../../tools/nix/nix-output-monitor { };
 
diff --git a/pkgs/development/interpreters/cling/default.nix b/pkgs/development/interpreters/cling/default.nix
index 68819fa7ab0..c22ad3f4cb0 100644
--- a/pkgs/development/interpreters/cling/default.nix
+++ b/pkgs/development/interpreters/cling/default.nix
@@ -73,7 +73,7 @@ let
   flags = [
     "-nostdinc"
     "-nostdinc++"
-    "-isystem" "${glibc.dev}/include"
+    "-isystem" "${stdenv.lib.getDev stdenv.cc.libc}/include"
     "-I" "${unwrapped}/include"
     "-I" "${unwrapped}/lib/clang/5.0.2/include"
   ];
diff --git a/pkgs/development/interpreters/clojure/default.nix b/pkgs/development/interpreters/clojure/default.nix
index f12645ec2b6..06e18c96ac3 100644
--- a/pkgs/development/interpreters/clojure/default.nix
+++ b/pkgs/development/interpreters/clojure/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "clojure";
-  version = "1.10.1.727";
+  version = "1.10.1.763";
 
   src = fetchurl {
     url = "https://download.clojure.org/install/clojure-tools-${version}.tar.gz";
-    sha256 = "1mnxvy4n7g72vcwhvrgr0xqri3p9d9w76c8a78kphhmd8lq0m92q";
+    sha256 = "042d5bk59wv145fvjrk72g4hvaq7j2p4a2d1pg13b433qfkchgia";
   };
 
   nativeBuildInputs = [
@@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
       offers a software transactional memory system and reactive Agent
       system that ensure clean, correct, multithreaded designs.
     '';
-    maintainers = with maintainers; [ jlesquembre ];
+    maintainers = with maintainers; [ jlesquembre thiagokokada ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/interpreters/erlang/generic-builder.nix b/pkgs/development/interpreters/erlang/generic-builder.nix
index 18b658ae37c..91ea2fe57ab 100644
--- a/pkgs/development/interpreters/erlang/generic-builder.nix
+++ b/pkgs/development/interpreters/erlang/generic-builder.nix
@@ -5,7 +5,7 @@
 , unixODBC ? null # odbcSupport
 , libGL ? null, libGLU ? null, wxGTK ? null, wxmac ? null, xorg ? null # wxSupport
 , parallelBuild ? false
-, withSystemd ? stdenv.isLinux, systemd # systemd support in epmd
+, systemd
 }:
 
 { baseName ? "erlang"
@@ -20,6 +20,7 @@
 , enableKernelPoll ? true
 , javacSupport ? false, javacPackages ? [ openjdk8 ]
 , odbcSupport ? false, odbcPackages ? [ unixODBC ]
+, withSystemd ? stdenv.isLinux # systemd support in epmd
 , wxSupport ? true, wxPackages ? [ libGL libGLU wxGTK xorg.libX11 ]
 , preUnpack ? "", postUnpack ? ""
 , patches ? [], patchPhase ? "", prePatch ? "", postPatch ? ""
diff --git a/pkgs/development/interpreters/evcxr/default.nix b/pkgs/development/interpreters/evcxr/default.nix
index a97f132b3b2..59abf36f7ac 100644
--- a/pkgs/development/interpreters/evcxr/default.nix
+++ b/pkgs/development/interpreters/evcxr/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "evcxr";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "evcxr";
     rev = "v${version}";
-    sha256 = "sha256-QpUhUE65/IuT/VenziPX6z+CbJswbPPIv/ZnTthZpEU=";
+    sha256 = "sha256-33XeepqwYmTMcObroPTuxykYuM9qYI1+LV5lZIFSomg=";
   };
 
-  cargoSha256 = "sha256-iUzVd4XtD+41yTV/BmqWLenzAUNPfS7vIHm1KfuPe9A=";
+  cargoSha256 = "sha256-tjCID3YeGkxcq/LqJDMHGNpv1MCXKtcLlDnNkFwx1zU=";
 
   RUST_SRC_PATH = "${rustPlatform.rustLibSrc}";
 
diff --git a/pkgs/development/interpreters/lua-5/CVE-2019-6706.patch b/pkgs/development/interpreters/lua-5/CVE-2019-6706.patch
deleted file mode 100644
index 89e81b7eb68..00000000000
--- a/pkgs/development/interpreters/lua-5/CVE-2019-6706.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/src/lapi.c
-+++ b/src/lapi.c
-@@ -1285,14 +1285,14 @@ LUA_API void *lua_upvalueid (lua_State *
- 
- LUA_API void lua_upvaluejoin (lua_State *L, int fidx1, int n1,
-                                             int fidx2, int n2) {
--  LClosure *f1;
--  UpVal **up1 = getupvalref(L, fidx1, n1, &f1);
-+  UpVal **up1 = getupvalref(L, fidx1, n1, NULL); /* the last parameter not needed */
-   UpVal **up2 = getupvalref(L, fidx2, n2, NULL);
-+  if (*up1 == *up2) return; /* Already joined */
-+  (*up2)->refcount++;
-+  if (upisopen(*up2)) (*up2)->u.open.touched = 1;
-+  luaC_upvalbarrier(L, *up2);
-   luaC_upvdeccount(L, *up1);
-   *up1 = *up2;
--  (*up1)->refcount++;
--  if (upisopen(*up1)) (*up1)->u.open.touched = 1;
--  luaC_upvalbarrier(L, *up1);
- }
- 
- 
diff --git a/pkgs/development/interpreters/lua-5/default.nix b/pkgs/development/interpreters/lua-5/default.nix
index 7e79ff8f117..d78d5ba0c2d 100644
--- a/pkgs/development/interpreters/lua-5/default.nix
+++ b/pkgs/development/interpreters/lua-5/default.nix
@@ -14,14 +14,27 @@ let
   };
 
 in 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
+    ];
+  };
+
+  lua5_4_compat = lua5_4.override({
+    compat = true;
+  });
 
   lua5_3 = callPackage ./interpreter.nix {
-    sourceVersion = { major = "5"; minor = "3"; patch = "5"; };
-    hash = "0c2eed3f960446e1a3e4b9a1ca2f3ff893b6ce41942cf54d5dd59ab4b3b058ac";
+    sourceVersion = { major = "5"; minor = "3"; patch = "6"; };
+    hash = "0q3d8qhd7p0b7a4mh9g7fxqksqfs6mr1nav74vq26qvkp2dxcpzw";
+
     patches =
-      lib.optionals stdenv.isDarwin [ ./5.2.darwin.patch ] ++ [
-        ./CVE-2019-6706.patch
-      ];
+      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
diff --git a/pkgs/development/interpreters/lua-5/liblua.so.patch b/pkgs/development/interpreters/lua-5/liblua.so.patch
new file mode 100644
index 00000000000..197832116c1
--- /dev/null
+++ b/pkgs/development/interpreters/lua-5/liblua.so.patch
@@ -0,0 +1,60 @@
+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/pkgs/development/interpreters/luajit/2.0.nix b/pkgs/development/interpreters/luajit/2.0.nix
index 22ad9aa05f4..ffc406a2a7a 100644
--- a/pkgs/development/interpreters/luajit/2.0.nix
+++ b/pkgs/development/interpreters/luajit/2.0.nix
@@ -1,10 +1,10 @@
 { self, callPackage, lib }:
 callPackage ./default.nix {
   inherit self;
-  version = "2.0.5-2020-09-27";
-  rev = "e8ec6fe";
+  version = "2.0.5-2020-12-28";
+  rev = "56c04accf975bff2519c34721dccbbdb7b8e6963";
   isStable = true;
-  sha256 = "0v7g216j0zrjp32nfjqqxzgxgvgbdx89h3x0djbqg3avsgxjwnbk";
+  sha256 = "0mmx7dy843iqdpyxxdfks860np0311gg58gi4zczx10h62y6jacm";
   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/pkgs/development/interpreters/luajit/2.1.nix b/pkgs/development/interpreters/luajit/2.1.nix
index 18b4d32574a..7335ecd656a 100644
--- a/pkgs/development/interpreters/luajit/2.1.nix
+++ b/pkgs/development/interpreters/luajit/2.1.nix
@@ -1,8 +1,8 @@
 { self, callPackage }:
 callPackage ./default.nix {
   inherit self;
-  version = "2.1.0-2020-09-30";
-  rev = "e9af1ab";
+  version = "2.1.0-2020-12-28";
+  rev = "65378759f38bb946e40f31799992434effd01bba";
   isStable = false;
-  sha256 = "081vrr4snr1c38cscbq1a8barv7abc9czqqlm4qlbdksa8g32bbj";
+  sha256 = "1h78gydlrmvkdrql4ra5a3xr78iiq12bfmny6kiq65v1jbk8f19g";
 }
diff --git a/pkgs/development/interpreters/octave/default.nix b/pkgs/development/interpreters/octave/default.nix
index 841f89b97fb..67fca52dad5 100644
--- a/pkgs/development/interpreters/octave/default.nix
+++ b/pkgs/development/interpreters/octave/default.nix
@@ -23,15 +23,17 @@
 , fftwSinglePrec
 , zlib
 , curl
-, qrupdate
 , blas, lapack
-, arpack
+# These two should use the same lapack and blas as the above
+, qrupdate, arpack, suitesparse ? null
+# If set to true, the above 5 deps are overriden to use the blas and lapack
+# with 64 bit indexes support. If all are not compatible, the build will fail.
+, use64BitIdx ? false
 , libwebp
 , gl2ps
 , ghostscript ? null
 , hdf5 ? null
 , glpk ? null
-, suitesparse ? null
 , gnuplot ? null
 # - Include support for GNU readline:
 , enableReadline ? true
@@ -41,7 +43,7 @@
 , jdk ? null
 , python ? null
 , overridePlatforms ? null
-, sundials_2 ? null
+, sundials ? null
 # - Build Octave Qt GUI:
 , enableQt ? false
 , qtbase ? null
@@ -56,9 +58,42 @@
 , darwin
 }:
 
-assert (!blas.isILP64) && (!lapack.isILP64);
-
-mkDerivation rec {
+let
+  # Not always evaluated
+  blas' = if use64BitIdx then
+    blas.override {
+      isILP64 = true;
+    }
+  else
+    blas
+  ;
+  lapack' = if use64BitIdx then
+    lapack.override {
+      isILP64 = true;
+    }
+  else
+    lapack
+  ;
+  qrupdate' = qrupdate.override {
+    # If use64BitIdx is false, this override doesn't evaluate to a new
+    # derivation, as blas and lapack are not overriden.
+    blas = blas';
+    lapack = lapack';
+  };
+  arpack' = arpack.override {
+    blas = blas';
+    lapack = lapack';
+  };
+  # Not always suitesparse is required at all
+  suitesparse' = if suitesparse != null then
+    suitesparse.override {
+      blas = blas';
+      lapack = lapack';
+    }
+  else
+    null
+  ;
+in mkDerivation rec {
   version = "6.1.0";
   pname = "octave";
 
@@ -78,34 +113,36 @@ mkDerivation rec {
     fltk
     zlib
     curl
-    blas
-    lapack
+    blas'
+    lapack'
     libsndfile
     fftw
     fftwSinglePrec
     portaudio
-    qrupdate
-    arpack
+    qrupdate'
+    arpack'
     libwebp
     gl2ps
   ]
-  ++ (stdenv.lib.optionals enableQt [
+  ++ stdenv.lib.optionals enableQt [
     qtbase
     qtsvg
     qscintilla
-  ])
-  ++ (stdenv.lib.optional (ghostscript != null) ghostscript)
-  ++ (stdenv.lib.optional (hdf5 != null) hdf5)
-  ++ (stdenv.lib.optional (glpk != null) glpk)
-  ++ (stdenv.lib.optional (suitesparse != null) suitesparse)
-  ++ (stdenv.lib.optional (enableJava) jdk)
-  ++ (stdenv.lib.optional (sundials_2 != null) sundials_2)
-  ++ (stdenv.lib.optional (gnuplot != null) gnuplot)
-  ++ (stdenv.lib.optional (python != null) python)
-  ++ (stdenv.lib.optionals (!stdenv.isDarwin) [ libGL libGLU libX11 ])
-  ++ (stdenv.lib.optionals (stdenv.isDarwin) [ libiconv
-                                               darwin.apple_sdk.frameworks.Accelerate
-                                               darwin.apple_sdk.frameworks.Cocoa ])
+  ]
+  ++ stdenv.lib.optionals (ghostscript != null) [ ghostscript ]
+  ++ stdenv.lib.optionals (hdf5 != null) [ hdf5 ]
+  ++ stdenv.lib.optionals (glpk != null) [ glpk ]
+  ++ stdenv.lib.optionals (suitesparse != null) [ suitesparse' ]
+  ++ stdenv.lib.optionals (enableJava) [ jdk ]
+  ++ stdenv.lib.optionals (sundials != null) [ sundials ]
+  ++ stdenv.lib.optionals (gnuplot != null) [ gnuplot ]
+  ++ stdenv.lib.optionals (python != null) [ python ]
+  ++ stdenv.lib.optionals (!stdenv.isDarwin) [ libGL libGLU libX11 ]
+  ++ stdenv.lib.optionals stdenv.isDarwin [
+    libiconv
+    darwin.apple_sdk.frameworks.Accelerate
+    darwin.apple_sdk.frameworks.Cocoa
+  ]
   ;
   nativeBuildInputs = [
     pkgconfig
@@ -115,12 +152,12 @@ mkDerivation rec {
     fftwSinglePrec
     texinfo
   ]
-  ++ (stdenv.lib.optional (sundials_2 != null) sundials_2)
-  ++ (stdenv.lib.optional enableJIT llvm)
-  ++ (stdenv.lib.optionals enableQt [
+  ++ stdenv.lib.optionals (sundials != null) [ sundials ]
+  ++ stdenv.lib.optionals enableJIT [ llvm ]
+  ++ stdenv.lib.optionals enableQt [
     qtscript
     qttools
-  ])
+  ]
   ;
 
   doCheck = !stdenv.isDarwin;
@@ -128,14 +165,14 @@ mkDerivation rec {
   enableParallelBuilding = true;
 
   # See https://savannah.gnu.org/bugs/?50339
-  F77_INTEGER_8_FLAG = if blas.isILP64 then "-fdefault-integer-8" else "";
+  F77_INTEGER_8_FLAG = if use64BitIdx then "-fdefault-integer-8" else "";
 
   configureFlags = [
     "--with-blas=blas"
     "--with-lapack=lapack"
-    (if blas.isILP64 then "--enable-64" else "--disable-64")
+    (if use64BitIdx then "--enable-64" else "--disable-64")
   ]
-    ++ (if stdenv.isDarwin then [ "--enable-link-all-dependencies" ] else [ ])
+    ++ stdenv.lib.optionals stdenv.isDarwin [ "--enable-link-all-dependencies" ]
     ++ stdenv.lib.optionals enableReadline [ "--enable-readline" ]
     ++ stdenv.lib.optionals stdenv.isDarwin [ "--with-x=no" ]
     ++ stdenv.lib.optionals enableQt [ "--with-qt=5" ]
@@ -149,14 +186,20 @@ mkDerivation rec {
   '';
 
   passthru = {
-    inherit version;
     sitePath = "share/octave/${version}/site";
+    blas = blas';
+    lapack = lapack';
+    qrupdate = qrupdate';
+    arpack = arpack';
+    suitesparse = suitesparse';
+    inherit python;
+    inherit enableQt enableJIT enableReadline enableJava;
   };
 
   meta = {
     homepage = "https://www.gnu.org/software/octave/";
     license = stdenv.lib.licenses.gpl3Plus;
-    maintainers = with stdenv.lib.maintainers; [raskin];
+    maintainers = with stdenv.lib.maintainers; [ raskin doronbehar ];
     description = "Scientific Pragramming Language";
     # https://savannah.gnu.org/bugs/?func=detailitem&item_id=56425 is the best attempt to fix JIT
     broken = enableJIT;
diff --git a/pkgs/development/interpreters/perl/default.nix b/pkgs/development/interpreters/perl/default.nix
index ac41a63cef7..6b7d1d4d99c 100644
--- a/pkgs/development/interpreters/perl/default.nix
+++ b/pkgs/development/interpreters/perl/default.nix
@@ -174,11 +174,11 @@ 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 = "6c115604fcbf01ceb3c6d7c13206a7590abf6c21"; # Nov 22, 2020
+    crossVersion = "b4447944a0aeff9590dc023d64f8ddf3de7669fb"; # Dec 22, 2020
 
     perl-cross-src = fetchurl {
       url = "https://github.com/arsv/perl-cross/archive/${crossVersion}.tar.gz";
-      sha256 = "1xb3krm7m3f7lhq774pf48czyfa8378jahg1q0kkcz8alrl270w1";
+      sha256 = "1cignplkb29kcvkfwshakyij71w8srlfqbnb9pla98vya6r82rnb";
     };
 
     depsBuildBuild = [ buildPackages.stdenv.cc makeWrapper ];
@@ -214,7 +214,7 @@ in {
   perldevel = common {
     perl = pkgs.perldevel;
     buildPerl = buildPackages.perldevel;
-    version = "5.33.4";
-    sha256 = "02r8d0wrwaj0vgqbbqidhqgck2xp5k9g49aslj9faqcmgpsj5kcz";
+    version = "5.33.5";
+    sha256 = "04iprc8qz6vpbgzqgwja5rc3csvmgq1rnnnl382l39hy69fsdqpr";
   };
 }
diff --git a/pkgs/development/interpreters/php/generic.nix b/pkgs/development/interpreters/php/generic.nix
index 4a96abcf9b6..82134e14406 100644
--- a/pkgs/development/interpreters/php/generic.nix
+++ b/pkgs/development/interpreters/php/generic.nix
@@ -13,6 +13,7 @@ let
     , version
     , sha256
     , extraPatches ? []
+    , packageOverrides ? (final: prev: {})
 
     # Sapi flags
     , cgiSupport ? true
@@ -49,8 +50,8 @@ let
               php = generic filteredArgs;
 
               php-packages = (callPackage ../../../top-level/php-packages.nix {
-                php = phpWithExtensions;
-              });
+                phpPackage = phpWithExtensions;
+              }).overrideScope' packageOverrides;
 
               allExtensionFunctions = prevExtensionFunctions ++ [ extensions ];
               enabledExtensions =
@@ -112,7 +113,8 @@ let
                   phpIni = "${phpWithExtensions}/lib/php.ini";
                   unwrapped = php;
                   tests = nixosTests.php;
-                  inherit (php-packages) packages extensions buildPecl;
+                  inherit (php-packages) extensions buildPecl;
+                  packages = php-packages.tools;
                   meta = php.meta // {
                     outputsToInstall = [ "out" ];
                   };
diff --git a/pkgs/development/interpreters/python/cpython/3.7/find_library.patch b/pkgs/development/interpreters/python/cpython/3.7/find_library.patch
new file mode 100644
index 00000000000..97fb66662d0
--- /dev/null
+++ b/pkgs/development/interpreters/python/cpython/3.7/find_library.patch
@@ -0,0 +1,105 @@
+From 9b5a023a5dc3127da15253f7acad71019395ebe1 Mon Sep 17 00:00:00 2001
+From: Pablo Galindo <Pablogsal@gmail.com>
+Date: Thu, 8 Oct 2020 19:50:37 +0100
+Subject: [PATCH] [3.7] bpo-41976: Fix the fallback to gcc of
+ ctypes.util.find_library when using gcc>9 (GH-22598). (GH-22601)
+
+(cherry picked from commit 27ac19cca2c639caaf6fedf3632fe6beb265f24f)
+
+Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
+---
+ Lib/ctypes/test/test_find.py                  | 12 ++++++-
+ Lib/ctypes/util.py                            | 32 +++++++++++++++----
+ .../2020-10-08-18-22-28.bpo-41976.Svm0wb.rst  |  3 ++
+ 3 files changed, 39 insertions(+), 8 deletions(-)
+ create mode 100644 Misc/NEWS.d/next/Library/2020-10-08-18-22-28.bpo-41976.Svm0wb.rst
+
+diff --git a/Lib/ctypes/test/test_find.py b/Lib/ctypes/test/test_find.py
+index b99fdcba7b28f..92ac1840ad7d4 100644
+--- a/Lib/ctypes/test/test_find.py
++++ b/Lib/ctypes/test/test_find.py
+@@ -1,4 +1,5 @@
+ import unittest
++import unittest.mock
+ import os.path
+ import sys
+ import test.support
+@@ -72,7 +73,7 @@ def test_shell_injection(self):
+ 
+ @unittest.skipUnless(sys.platform.startswith('linux'),
+                      'Test only valid for Linux')
+-class LibPathFindTest(unittest.TestCase):
++class FindLibraryLinux(unittest.TestCase):
+     def test_find_on_libpath(self):
+         import subprocess
+         import tempfile
+@@ -111,6 +112,15 @@ def test_find_on_libpath(self):
+                 # LD_LIBRARY_PATH)
+                 self.assertEqual(find_library(libname), 'lib%s.so' % libname)
+ 
++    def test_find_library_with_gcc(self):
++        with unittest.mock.patch("ctypes.util._findSoname_ldconfig", lambda *args: None):
++            self.assertNotEqual(find_library('c'), None)
++
++    def test_find_library_with_ld(self):
++        with unittest.mock.patch("ctypes.util._findSoname_ldconfig", lambda *args: None), \
++             unittest.mock.patch("ctypes.util._findLib_gcc", lambda *args: None):
++            self.assertNotEqual(find_library('c'), None)
++
+ 
+ if __name__ == "__main__":
+     unittest.main()
+diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py
+index 97973bce001d9..0c2510e1619c8 100644
+--- a/Lib/ctypes/util.py
++++ b/Lib/ctypes/util.py
+@@ -93,6 +93,12 @@ def find_library(name):
+     # Andreas Degert's find functions, using gcc, /sbin/ldconfig, objdump
+     import re, tempfile
+ 
++    def _is_elf(filename):
++        "Return True if the given file is an ELF file"
++        elf_header = b'\x7fELF'
++        with open(filename, 'br') as thefile:
++            return thefile.read(4) == elf_header
++
+     def _findLib_gcc(name):
+         # Run GCC's linker with the -t (aka --trace) option and examine the
+         # library name it prints out. The GCC command will fail because we
+@@ -299,17 +312,22 @@ def _findLib_ld(name):
+                                      stderr=subprocess.PIPE,
+                                      universal_newlines=True)
+                 out, _ = p.communicate()
+-                res = re.search(expr, os.fsdecode(out))
+-                if res:
+-                    result = res.group(0)
+-            except Exception as e:
++                res = re.findall(expr, os.fsdecode(out))
++                for file in res:
++                    # Check if the given file is an elf file: gcc can report
++                    # some files that are linker scripts and not actual
++                    # shared objects. See bpo-41976 for more details
++                    if not _is_elf(file):
++                        continue
++                    return os.fsdecode(file)
++            except Exception:
+                 pass  # result will be None
+             return result
+ 
+         def find_library(name):
+             # See issue #9998
+             return _findSoname_ldconfig(name) or \
+-                   _get_soname(_findLib_gcc(name) or _findLib_ld(name))
++                   _get_soname(_findLib_gcc(name)) or _get_soname(_findLib_ld(name))
+ 
+ ################################################################
+ # test code
+diff --git a/Misc/NEWS.d/next/Library/2020-10-08-18-22-28.bpo-41976.Svm0wb.rst b/Misc/NEWS.d/next/Library/2020-10-08-18-22-28.bpo-41976.Svm0wb.rst
+new file mode 100644
+index 0000000000000..c8b3fc771845e
+--- /dev/null
++++ b/Misc/NEWS.d/next/Library/2020-10-08-18-22-28.bpo-41976.Svm0wb.rst
+@@ -0,0 +1,3 @@
++Fixed a bug that was causing :func:`ctypes.util.find_library` to return
++``None`` when triying to locate a library in an environment when gcc>=9 is
++available and ``ldconfig`` is not. Patch by Pablo Galindo
diff --git a/pkgs/development/interpreters/python/cpython/3.9/no-ldconfig.patch b/pkgs/development/interpreters/python/cpython/3.9/no-ldconfig.patch
index a1f9d68eb16..41d3ab52345 100644
--- a/pkgs/development/interpreters/python/cpython/3.9/no-ldconfig.patch
+++ b/pkgs/development/interpreters/python/cpython/3.9/no-ldconfig.patch
@@ -1,19 +1,19 @@
-From 597e73f2a4b2f0b508127931b36d5540d6941823 Mon Sep 17 00:00:00 2001
-From: Frederik Rietdijk <fridh@fridh.nl>
-Date: Mon, 28 Aug 2017 09:24:06 +0200
+From 66f492d2eda94bd64db833839a325caf6ba0fed5 Mon Sep 17 00:00:00 2001
+From: Greg Roodt <greg@canva.com>
+Date: Wed, 9 Dec 2020 17:59:24 +1100
 Subject: [PATCH] Don't use ldconfig
 
 ---
- Lib/ctypes/util.py | 70 ++----------------------------------------------------
- 1 file changed, 2 insertions(+), 68 deletions(-)
+ Lib/ctypes/util.py | 77 ++--------------------------------------------
+ 1 file changed, 2 insertions(+), 75 deletions(-)
 
 diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py
-index 5e8b31a854..7b45ce6c15 100644
+index 0c2510e161..7fb98af308 100644
 --- a/Lib/ctypes/util.py
 +++ b/Lib/ctypes/util.py
-@@ -94,46 +94,7 @@ elif os.name == "posix":
-     import re, tempfile
- 
+@@ -100,53 +100,7 @@ elif os.name == "posix":
+             return thefile.read(4) == elf_header
+
      def _findLib_gcc(name):
 -        # Run GCC's linker with the -t (aka --trace) option and examine the
 -        # library name it prints out. The GCC command will fail because we
@@ -51,17 +51,24 @@ index 5e8b31a854..7b45ce6c15 100644
 -                # Raised if the file was already removed, which is the normal
 -                # behaviour of GCC if linking fails
 -                pass
--        res = re.search(expr, trace)
+-        res = re.findall(expr, trace)
 -        if not res:
 -            return None
--        return os.fsdecode(res.group(0))
+-
+-        for file in res:
+-            # Check if the given file is an elf file: gcc can report
+-            # some files that are linker scripts and not actual
+-            # shared objects. See bpo-41976 for more details
+-            if not _is_elf(file):
+-                continue
+-            return os.fsdecode(file)
 +        return None
- 
- 
+
+
      if sys.platform == "sunos5":
-@@ -255,34 +216,7 @@ elif os.name == "posix":
+@@ -268,34 +222,7 @@ elif os.name == "posix":
      else:
- 
+
          def _findSoname_ldconfig(name):
 -            import struct
 -            if struct.calcsize('l') == 4:
@@ -92,9 +99,8 @@ index 5e8b31a854..7b45ce6c15 100644
 -            except OSError:
 -                pass
 +            return None
- 
+
          def _findLib_ld(name):
              # See issue #9998 for why this is needed
--- 
-2.15.0
-
+--
+2.24.3 (Apple Git-128)
diff --git a/pkgs/development/interpreters/python/cpython/default.nix b/pkgs/development/interpreters/python/cpython/default.nix
index cd06c2b6367..b9f1820df3e 100644
--- a/pkgs/development/interpreters/python/cpython/default.nix
+++ b/pkgs/development/interpreters/python/cpython/default.nix
@@ -35,7 +35,7 @@
 , rebuildBytecode ? true
 , stripBytecode ? false
 , includeSiteCustomize ? true
-, static ? false
+, static ? stdenv.hostPlatform.isStatic
 # Not using optimizations on Darwin
 # configure: error: llvm-profdata is required for a --enable-optimizations build but could not be found.
 , enableOptimizations ? (!stdenv.isDarwin)
@@ -165,6 +165,9 @@ in with passthru; stdenv.mkDerivation {
   ] ++ [
     # LDSHARED now uses $CC instead of gcc. Fixes cross-compilation of extension modules.
     ./3.8/0001-On-all-posix-systems-not-just-Darwin-set-LDSHARED-if.patch
+  ] ++ optionals (isPy37 || isPy38) [
+    # Backport a fix for ctypes.util.find_library.
+    ./3.7/find_library.patch
   ];
 
   postPatch = ''
diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix
index 7c3f94dcd16..a217f62986d 100644
--- a/pkgs/development/interpreters/python/default.nix
+++ b/pkgs/development/interpreters/python/default.nix
@@ -167,10 +167,10 @@ in {
     sourceVersion = {
       major = "3";
       minor = "9";
-      patch = "0";
+      patch = "1";
       suffix = "";
     };
-    sha256 = "0m18z05nlmqm1zjw9s0ifgrn1jvjn3jwjg0bpswhjmw5k4yfcwww";
+    sha256 = "1zq3k4ymify5ig739zyvx9s2ainvchxb1zpy139z74krr653y74r";
     inherit (darwin) configd;
     inherit passthruFun;
   };
@@ -181,9 +181,9 @@ in {
       major = "3";
       minor = "10";
       patch = "0";
-      suffix = "a2";
+      suffix = "a3";
     };
-    sha256 = "0zl5h61s8n2w2v1n40af0mwaw7lqh5fl1ys7kyjgcph60vb9wzjr";
+    sha256 = "sha256-sJjJdAdxOUfX7W7VioSGdxlgp2lyMOPZjg42MCd/JYY=";
     inherit (darwin) configd;
     inherit passthruFun;
   };
diff --git a/pkgs/development/interpreters/rakudo/default.nix b/pkgs/development/interpreters/rakudo/default.nix
index 0d770700041..c645fae0d84 100644
--- a/pkgs/development/interpreters/rakudo/default.nix
+++ b/pkgs/development/interpreters/rakudo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "rakudo";
-  version = "2020.11";
+  version = "2020.12";
 
   src = fetchurl {
     url    = "https://www.rakudo.org/dl/rakudo/rakudo-${version}.tar.gz";
-    sha256 = "107sskgf0p6npm3vjpv5wrqgfa007af6bxxiv1wgiyzx7maqdw5n";
+    sha256 = "1g3ciwhlac85d6l2kqslw8pm4bjjd1z79m1c5ll0fxmr6awgpk67";
   };
 
   buildInputs = [ icu zlib gmp perl ];
diff --git a/pkgs/development/interpreters/rakudo/moarvm.nix b/pkgs/development/interpreters/rakudo/moarvm.nix
index 5cd0b50e695..54b487c2595 100644
--- a/pkgs/development/interpreters/rakudo/moarvm.nix
+++ b/pkgs/development/interpreters/rakudo/moarvm.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "moarvm";
-  version = "2020.11";
+  version = "2020.12";
 
   src = fetchurl {
     url = "https://www.moarvm.org/releases/MoarVM-${version}.tar.gz";
-    sha256 = "1163zv1fglgwbk6pppzbjwcgzpp13ilg5cz7fawsfnzdnrrq40kd";
+    sha256 = "18iys1bdb92asggrsz7sg1hh76j7kq63c3fgg33fnla18qf4z488";
    };
 
   buildInputs = [ perl ] ++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices ApplicationServices ];
diff --git a/pkgs/development/interpreters/rakudo/nqp.nix b/pkgs/development/interpreters/rakudo/nqp.nix
index ad17808281f..04b628bc9da 100644
--- a/pkgs/development/interpreters/rakudo/nqp.nix
+++ b/pkgs/development/interpreters/rakudo/nqp.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "nqp";
-  version = "2020.11";
+  version = "2020.12";
 
   src = fetchurl {
     url    = "https://github.com/raku/nqp/releases/download/${version}/nqp-${version}.tar.gz";
-    sha256 = "03whmlc6bmwmwrddwd5vqmir0gzwnmf0apvl2q1na09qqj3zb1br";
+    sha256 = "13h64d41fwggc3lg4bpllg4jrp64clm7nmnw4g2jyjl47cy5ni7x";
   };
 
   buildInputs = [ perl ];
diff --git a/pkgs/development/interpreters/self/default.nix b/pkgs/development/interpreters/self/default.nix
index cf62399adc6..0d5cc061f59 100644
--- a/pkgs/development/interpreters/self/default.nix
+++ b/pkgs/development/interpreters/self/default.nix
@@ -1,6 +1,6 @@
-{ fetchgit, stdenv, xorg, makeWrapper, ncurses, cmake }:
+{ stdenv, fetchFromGitHub, libX11, libXext, makeWrapper, ncurses, cmake }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   # The Self wrapper stores source in $XDG_DATA_HOME/self or ~/.local/share/self
   # so that it can be written to when using the Self transposer. Running 'Self'
   # after installation runs without an image. You can then build a Self image with:
@@ -11,16 +11,18 @@ stdenv.mkDerivation {
   # This image can later be started with:
   #   $ Self -s myimage.snap
   #
-  version = "4.5.0";
   pname = "self";
+  version = "2017.1";
 
-  src = fetchgit {
-    url    = "https://github.com/russellallen/self";
-    rev    = "d16bcaad3c5092dae81ad0b16d503f2a53b8ef86";
-    sha256 = "1dhs6209407j0ll9w9id31vbawdrm9nz1cjak8g8hixrw1nid4i5";
+  src = fetchFromGitHub {
+    owner = "russellallen";
+    repo = pname;
+    rev = version;
+    sha256 = "C/1Q6yFmoXx2F97xuvkm8DxFmmvuBS7uYZOxq/CRNog=";
   };
 
-  buildInputs = [ ncurses xorg.libX11 xorg.libXext makeWrapper cmake ];
+  nativeBuildInputs = [ cmake makeWrapper ];
+  buildInputs = [ ncurses libX11 libXext ];
 
   selfWrapper = ./self;
 
@@ -33,12 +35,11 @@ stdenv.mkDerivation {
       --set SELF_ROOT "$out"
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A prototype-based dynamic object-oriented programming language, environment, and virtual machine";
     homepage = "https://selflanguage.org/";
-    license = stdenv.lib.licenses.bsd3;
-    maintainers = [ stdenv.lib.maintainers.doublec ];
-    platforms = with stdenv.lib.platforms; linux;
-    broken = true; # segfaults on gcc > 4.4
+    license = licenses.bsd3;
+    maintainers = [ maintainers.doublec ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/CGAL/default.nix b/pkgs/development/libraries/CGAL/default.nix
index 1979bdf5df1..ca350348986 100644
--- a/pkgs/development/libraries/CGAL/default.nix
+++ b/pkgs/development/libraries/CGAL/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cgal";
-  version = "5.1.1";
+  version = "5.2";
 
   src = fetchFromGitHub {
     owner = "CGAL";
     repo = "releases";
     rev = "CGAL-${version}";
-    sha256 = "1h4kj37zh60zap1gvpkvcl1b1lbdvav959gd59pq2c33i0ziagf6";
+    sha256 = "1+ov1fu79MXoW0D8odInMZPFMYg69st//PoMW42oXpA=";
   };
 
   # note: optional component libCGAL_ImageIO would need zlib and opengl;
diff --git a/pkgs/development/libraries/a52dec/default.nix b/pkgs/development/libraries/a52dec/default.nix
index 8ed47b91e5d..7cbb3699401 100644
--- a/pkgs/development/libraries/a52dec/default.nix
+++ b/pkgs/development/libraries/a52dec/default.nix
@@ -1,11 +1,12 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  name = "a52dec-0.7.4p4";
+  pname = "a52dec";
+  version = "0.7.4";
 
   src = fetchurl {
-    url = "${meta.homepage}/files/a52dec-0.7.4.tar.gz";
-    sha256 = "0czccp4fcpf2ykp16xcrzdfmnircz1ynhls334q374xknd5747d2";
+    url = "${meta.homepage}/files/${pname}-${version}.tar.gz";
+    sha256 = "oh1ySrOzkzMwGUNTaH34LEdbXfuZdRPu9MJd5shl7DM=";
   };
 
   configureFlags = [
@@ -18,10 +19,10 @@ stdenv.mkDerivation rec {
   # but it's better to disable tests than loose ASLR on i686
   doCheck = !stdenv.isi686;
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "ATSC A/52 stream decoder";
-    homepage = "http://liba52.sourceforge.net/";
-    platforms = stdenv.lib.platforms.unix;
-    license = stdenv.lib.licenses.gpl2;
+    homepage = "https://liba52.sourceforge.net/";
+    platforms = platforms.unix;
+    license = licenses.gpl2Plus;
   };
 }
diff --git a/pkgs/development/libraries/accounts-qt/default.nix b/pkgs/development/libraries/accounts-qt/default.nix
index b60d8d07385..4e2e33b852e 100644
--- a/pkgs/development/libraries/accounts-qt/default.nix
+++ b/pkgs/development/libraries/accounts-qt/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitLab, doxygen, glib, libaccounts-glib, pkgconfig, qtbase, qmake }:
+{ mkDerivation, lib, fetchFromGitLab, doxygen, glib, libaccounts-glib, pkgconfig, qmake }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "accounts-qt";
   version = "1.16";
 
@@ -11,17 +11,13 @@ stdenv.mkDerivation rec {
     owner = "accounts-sso";
   };
 
-  buildInputs = [ glib libaccounts-glib qtbase ];
+  propagatedBuildInputs = [ glib libaccounts-glib ];
   nativeBuildInputs = [ doxygen pkgconfig qmake ];
 
-  preConfigure = ''
-    qmakeFlags="$qmakeFlags LIBDIR=$out/lib CMAKE_CONFIG_PATH=$out/lib/cmake"
-  '';
-
   # Hack to avoid TMPDIR in RPATHs.
   preFixup = ''rm -rf "$(pwd)" '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Qt library for accessing the online accounts database";
     homepage = "https://gitlab.com/accounts-sso";
     license = licenses.lgpl21;
diff --git a/pkgs/development/libraries/aml/default.nix b/pkgs/development/libraries/aml/default.nix
index 37d8859ba50..8b4eccb9fff 100644
--- a/pkgs/development/libraries/aml/default.nix
+++ b/pkgs/development/libraries/aml/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aml";
-  version = "0.1.0";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner = "any1";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1pmiflkd9idnf6p0rnmccqqlj87k8crz9ixpx6rix671vnpk0xzi";
+    sha256 = "0mxmzlhiv88hm4sf8kyawyrml8qy1xis019hdyb5skl9g95z9yyf";
   };
 
   nativeBuildInputs = [ meson pkg-config ninja ];
diff --git a/pkgs/development/libraries/arrow-cpp/default.nix b/pkgs/development/libraries/arrow-cpp/default.nix
index 1d9a528b4c6..a9e738f7e9a 100644
--- a/pkgs/development/libraries/arrow-cpp/default.nix
+++ b/pkgs/development/libraries/arrow-cpp/default.nix
@@ -1,7 +1,8 @@
 { stdenv, lib, fetchurl, fetchFromGitHub, fetchpatch, fixDarwinDylibNames
 , autoconf, boost, brotli, cmake, flatbuffers, gflags, glog, gtest, lz4
 , perl, python3, rapidjson, snappy, thrift, utf8proc, which, zlib, zstd
-, enableShared ? true }:
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
 
 let
   arrow-testing = fetchFromGitHub {
diff --git a/pkgs/development/libraries/audiofile/default.nix b/pkgs/development/libraries/audiofile/default.nix
index 9f945b15dec..86531a6ad25 100644
--- a/pkgs/development/libraries/audiofile/default.nix
+++ b/pkgs/development/libraries/audiofile/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   #
   # There might be a more sensible way to do this with autotools, but I am not
   # smart enough to discover it.
-  preBuild = lib.optionalString stdenv.targetPlatform.isStatic ''
+  preBuild = lib.optionalString stdenv.hostPlatform.isStatic ''
     make -C libaudiofile $makeFlags
     sed -i "s/dependency_libs=.*/dependency_libs=' -lstdc++'/" libaudiofile/libaudiofile.la
   '';
diff --git a/pkgs/development/libraries/aws-c-cal/default.nix b/pkgs/development/libraries/aws-c-cal/default.nix
new file mode 100644
index 00000000000..057aad447d5
--- /dev/null
+++ b/pkgs/development/libraries/aws-c-cal/default.nix
@@ -0,0 +1,30 @@
+{ lib, stdenv, fetchFromGitHub, cmake, aws-c-common, openssl, Security }:
+
+stdenv.mkDerivation rec {
+  pname = "aws-c-cal";
+  version = "0.4.5";
+
+  src = fetchFromGitHub {
+    owner = "awslabs";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "04acra1mnzw9q7jycs5966akfbgnx96hkrq90nq0dhw8pvarlyv6";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ aws-c-common openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
+
+  cmakeFlags = [
+    "-DBUILD_SHARED_LIBS=ON"
+    "-DCMAKE_MODULE_PATH=${aws-c-common}/lib/cmake"
+  ];
+
+  meta = with lib; {
+    description = "AWS Crypto Abstraction Layer ";
+    homepage = "https://github.com/awslabs/aws-c-cal";
+    license = licenses.asl20;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ orivej ];
+  };
+}
diff --git a/pkgs/development/libraries/aws-c-common/default.nix b/pkgs/development/libraries/aws-c-common/default.nix
index 6470566d5c7..5473867a6ad 100644
--- a/pkgs/development/libraries/aws-c-common/default.nix
+++ b/pkgs/development/libraries/aws-c-common/default.nix
@@ -1,25 +1,20 @@
-{ lib, stdenv, fetchFromGitHub, cmake, fetchpatch }:
+{ lib, stdenv, fetchFromGitHub, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "aws-c-common";
-  version = "0.3.11";
+  version = "0.4.63";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0a7hi4crnc3j1j39qcnd44zqdfwzw1xghcf80marx5vdf1qdzy6p";
+    sha256 = "16bc6fn1gq3nqcrzgpi2kjphq7xkkr73aljakrg89ysm6hyzyim9";
   };
 
   nativeBuildInputs = [ cmake ];
 
-  # can be removed once https://github.com/awslabs/aws-c-common/pull/735 gets merged, and version bumped
-  patches = [
-    (fetchpatch {
-      name = "fix-re-export-of-target.patch";
-      url = "https://github.com/awslabs/aws-c-common/pull/735/commits/3fca5c629ce0c4d66f50f7152685f3fe73941cb4.patch";
-      sha256 = "056f9kyg1c4lwjq8n0r28w1n3zbwrwpi1wbqabk99gaayg46x35a";
-    })
+  cmakeFlags = [
+    "-DBUILD_SHARED_LIBS=ON"
   ];
 
   NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin
diff --git a/pkgs/development/libraries/aws-c-event-stream/default.nix b/pkgs/development/libraries/aws-c-event-stream/default.nix
index ca3203e3a6a..4cfabc77bb2 100644
--- a/pkgs/development/libraries/aws-c-event-stream/default.nix
+++ b/pkgs/development/libraries/aws-c-event-stream/default.nix
@@ -1,19 +1,20 @@
-{ lib, stdenv, fetchFromGitHub, cmake, aws-c-common, aws-checksums, libexecinfo }:
+{ lib, stdenv, fetchFromGitHub, cmake, aws-c-cal, aws-c-common, aws-c-io, aws-checksums, s2n, libexecinfo }:
 
 stdenv.mkDerivation rec {
   pname = "aws-c-event-stream";
-  version = "0.1.1";
+  version = "0.2.6";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0anjynfghk3inysy21wqvhxha33xsswh3lm8pr7nx7cpj6cmr37m";
+    sha256 = "1hbri4dv924ph3cxkmwkl4kdca4dvhc9qda60rdzs6355l76k23n";
   };
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = [ aws-c-common aws-checksums ] ++ lib.optional stdenv.hostPlatform.isMusl libexecinfo;
+  buildInputs = [ aws-c-cal aws-c-common aws-c-io aws-checksums s2n ]
+    ++ lib.optional stdenv.hostPlatform.isMusl libexecinfo;
 
   cmakeFlags = [
     "-DBUILD_SHARED_LIBS:BOOL=ON"
diff --git a/pkgs/development/libraries/aws-c-io/default.nix b/pkgs/development/libraries/aws-c-io/default.nix
new file mode 100644
index 00000000000..eda87ba2c53
--- /dev/null
+++ b/pkgs/development/libraries/aws-c-io/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenv, fetchFromGitHub, cmake, aws-c-cal, aws-c-common, s2n }:
+
+stdenv.mkDerivation rec {
+  pname = "aws-c-io";
+  version = "0.7.0";
+
+  src = fetchFromGitHub {
+    owner = "awslabs";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0wagc1205r57llqd39wqjasq3bgc8h1mfdqk4r5lcrnn4jbpcill";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ aws-c-cal aws-c-common s2n ];
+
+  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";
+    license = licenses.asl20;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ orivej ];
+  };
+}
diff --git a/pkgs/development/libraries/aws-checksums/default.nix b/pkgs/development/libraries/aws-checksums/default.nix
index ea3633d2e4d..bf50401a213 100644
--- a/pkgs/development/libraries/aws-checksums/default.nix
+++ b/pkgs/development/libraries/aws-checksums/default.nix
@@ -1,27 +1,24 @@
-{ lib, stdenv, fetchFromGitHub, cmake, fetchpatch }:
+{ lib, stdenv, fetchFromGitHub, cmake, aws-c-common }:
 
 stdenv.mkDerivation rec {
   pname = "aws-checksums";
-  version = "0.1.7";
+  version = "0.1.10";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0am1hfzqir44zcx6y6c7jw74qvbsav8ppr9dahpdh3ac95cjf38a";
+    sha256 = "1f9scl5734pgjlsixspwljrrlndzhllwlfygdcr1gx5p0za08zjb";
   };
 
   nativeBuildInputs = [ cmake ];
 
-  # can be removed once https://github.com/awslabs/aws-checksums/pull/40 gets merged, and version bumped
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/awslabs/aws-checksums/pull/40/commits/fb5a57b3c072bd88e45de76fbb76bdc89c67b193.patch";
-      sha256 = "056f9kyg1c4lwjq8n0r28w1n3zbwrwpi1wbqabk99gaayg46x35a";
-    })
-  ];
+  buildInputs = [ aws-c-common ];
 
-  cmakeFlags = [ "-DBUILD_SHARED_LIBS:BOOL=ON" ];
+  cmakeFlags = [
+    "-DBUILD_SHARED_LIBS=ON"
+    "-DCMAKE_MODULE_PATH=${aws-c-common}/lib/cmake"
+  ];
 
   meta = with lib; {
     description = "HW accelerated CRC32c and CRC32";
diff --git a/pkgs/development/libraries/aws-sdk-cpp/cmake-dirs.patch b/pkgs/development/libraries/aws-sdk-cpp/cmake-dirs.patch
index 6e4cad9e73c..b2f12e77025 100644
--- a/pkgs/development/libraries/aws-sdk-cpp/cmake-dirs.patch
+++ b/pkgs/development/libraries/aws-sdk-cpp/cmake-dirs.patch
@@ -1,15 +1,5 @@
-diff --git a/cmake/AWSSDKConfig.cmake b/cmake/AWSSDKConfig.cmake
-index e87252123e..5457bd5910 100644
 --- a/cmake/AWSSDKConfig.cmake
 +++ b/cmake/AWSSDKConfig.cmake
-@@ -82,6 +82,7 @@ if (AWSSDK_ROOT_DIR)
-             )
- else()
-     find_file(AWSSDK_CORE_HEADER_FILE Aws.h
-+        "/${AWSSDK_INSTALL_INCLUDEDIR}/aws/core"
-         "/usr/${AWSSDK_INSTALL_INCLUDEDIR}/aws/core"
-         "/usr/local/${AWSSDK_INSTALL_INCLUDEDIR}/aws/core"
-         "C:/Progra~1/AWSSDK/${AWSSDK_INSTALL_INCLUDEDIR}/aws/core"
 @@ -97,14 +98,18 @@ if (NOT AWSSDK_CORE_HEADER_FILE)
      message(FATAL_ERROR "AWS SDK for C++ is missing, please install it first")
  endif()
diff --git a/pkgs/development/libraries/aws-sdk-cpp/default.nix b/pkgs/development/libraries/aws-sdk-cpp/default.nix
index 94827743bf3..fc3f7896dbe 100644
--- a/pkgs/development/libraries/aws-sdk-cpp/default.nix
+++ b/pkgs/development/libraries/aws-sdk-cpp/default.nix
@@ -1,5 +1,5 @@
-{ lib, stdenv, fetchFromGitHub, cmake, curl, openssl, zlib, fetchpatch
-, aws-c-common, aws-c-event-stream, aws-checksums
+{ lib, stdenv, fetchFromGitHub, cmake, curl, openssl, s2n, zlib
+, aws-c-cal, aws-c-common, aws-c-event-stream, aws-c-io, aws-checksums
 , CoreAudio, AudioToolbox
 , # Allow building a limited set of APIs, e.g. ["s3" "ec2"].
   apis ? ["*"]
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aws-sdk-cpp";
-  version = "1.7.90";
+  version = "1.8.113";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "aws-sdk-cpp";
     rev = version;
-    sha256 = "0zpqi612qmm0n53crxiisv0vdif43ymg13kafy6vv43j2wmh66ga";
+    sha256 = "0y784cjrxgrin3ck5f2lk0riyy9kv928kcb9y0gzka65imgma48c";
   };
 
   # FIXME: might be nice to put different APIs in different outputs
@@ -25,8 +25,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake curl ];
 
   buildInputs = [
-    curl openssl zlib
-    aws-c-common aws-c-event-stream aws-checksums
+    curl openssl s2n zlib
+    aws-c-cal aws-c-common aws-c-event-stream aws-c-io aws-checksums
   ] ++ lib.optionals (stdenv.isDarwin &&
                         ((builtins.elem "text-to-speech" apis) ||
                          (builtins.elem "*" apis)))
@@ -59,10 +59,6 @@ stdenv.mkDerivation rec {
   __darwinAllowLocalNetworking = true;
 
   patches = [
-    (fetchpatch {
-      url = "https://github.com/aws/aws-sdk-cpp/commit/42991ab549087c81cb630e5d3d2413e8a9cf8a97.patch";
-      sha256 = "0myq5cm3lvl5r56hg0sc0zyn1clbkd9ys0wr95ghw6bhwpvfv8gr";
-    })
     ./cmake-dirs.patch
   ];
 
diff --git a/pkgs/development/libraries/bcg729/default.nix b/pkgs/development/libraries/bcg729/default.nix
index 4363948e830..f178c192de5 100644
--- a/pkgs/development/libraries/bcg729/default.nix
+++ b/pkgs/development/libraries/bcg729/default.nix
@@ -1,42 +1,28 @@
 { stdenv
-, fetchFromGitHub
-, fetchpatch
+, fetchFromGitLab
 , cmake
 }:
 
 stdenv.mkDerivation rec {
   pname = "bcg729";
-  version = "1.0.4";
+  version = "1.1.1";
 
-  src = fetchFromGitHub {
-    owner = "BelledonneCommunications";
+  src = fetchFromGitLab {
+    domain = "gitlab.linphone.org";
+    owner = "public";
+    group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "05s0c5ps3a763y0v34wg5zghj0cdjnq4ch7g81848xxry7q90fwa";
+    sha256 = "1hal6b3w6f8y5r1wa0xzj8sj2jjndypaxyw62q50p63garp2h739";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/BelledonneCommunications/bcg729/commit/a5907daf1b111e4ad7aab4f558f57e2af1e37e55.patch";
-      sha256 = "0445syfwj4w4chh8ak80rq77iqcr27924n1ld5snshk3d21nxd64";
-    })
-    (fetchpatch {
-      url = "https://github.com/BelledonneCommunications/bcg729/commit/697bf6653a8c7421f0e821ee8d42471246e6850f.patch";
-      sha256 = "1h3gf5sj2sg5cs5iv1lcav3lkqmd5jf4agvjzz83l89wd5f5hp5l";
-    })
-    (fetchpatch {
-      url = "https://github.com/BelledonneCommunications/bcg729/commit/d63ce04a93711820d9a6985b1d11d8d91ed8e6b6.patch";
-      sha256 = "1piwf63ci2gma6jd6b4adkvxirysvazf0vklb5pc6vx1g93nkgxs";
-    })
-  ];
-
   nativeBuildInputs = [ cmake ];
 
   meta = with stdenv.lib; {
     description = "Opensource implementation of both encoder and decoder of the ITU G729 Annex A/B speech codec";
     homepage = "https://linphone.org/technical-corner/bcg729";
     changelog = "https://gitlab.linphone.org/BC/public/bcg729/raw/${version}/NEWS";
-    license = licenses.gpl2Plus;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ c0bw3b ];
     platforms = platforms.all;
   };
diff --git a/pkgs/development/libraries/bctoolbox/default.nix b/pkgs/development/libraries/bctoolbox/default.nix
index 0f99484f5a0..655d3a5808a 100644
--- a/pkgs/development/libraries/bctoolbox/default.nix
+++ b/pkgs/development/libraries/bctoolbox/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "bctoolbox";
-  version = "4.4.13";
+  version = "4.4.21";
 
   nativeBuildInputs = [ cmake bcunit ];
   buildInputs = [ mbedtls ];
@@ -30,9 +30,7 @@ stdenv.mkDerivation rec {
     inherit version;
     description = "Utilities library for Linphone";
     homepage = "https://gitlab.linphone.org/BC/public/bctoolbox";
-    # Still using GPLv2 but as the rest of the Linphone projects have switched
-    # to GPLv3, this might too, so check this when bumping the version number.
-    license = licenses.gpl3Only;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ raskin jluttine ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/development/libraries/belcard/default.nix b/pkgs/development/libraries/belcard/default.nix
index ae9b1e6e43c..35de9fb9347 100644
--- a/pkgs/development/libraries/belcard/default.nix
+++ b/pkgs/development/libraries/belcard/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "C++ library to manipulate VCard standard format";
     homepage = "https://gitlab.linphone.org/BC/public/belcard";
-    license = licenses.lgpl21;
+    license = licenses.gpl3Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ jluttine ];
   };
diff --git a/pkgs/development/libraries/belle-sip/default.nix b/pkgs/development/libraries/belle-sip/default.nix
index 788e656301b..8a028b5e0a0 100644
--- a/pkgs/development/libraries/belle-sip/default.nix
+++ b/pkgs/development/libraries/belle-sip/default.nix
@@ -10,7 +10,7 @@
 
 stdenv.mkDerivation rec {
   pname = "belle-sip";
-  version = "4.4.13";
+  version = "4.4.21";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -18,10 +18,10 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "1ad7sqc5y4f3gc8glwmb3rvfzapnvhg981g13x90cg4nzikjvka0";
+    sha256 = "0ylv1jsqnfhw23i6p3lfqqzw48lwii8zwkq3y34q0hhnngn26iiw";
   };
 
-  nativeBuildInputs = [ cmake antlr3_4 ];
+  nativeBuildInputs = [ antlr3_4 cmake ];
 
   buildInputs = [ zlib ];
 
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     homepage = "https://linphone.org/technical-corner/belle-sip";
     description = "Modern library implementing SIP (RFC 3261) transport, transaction and dialog layers";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ jluttine ];
   };
diff --git a/pkgs/development/libraries/belr/default.nix b/pkgs/development/libraries/belr/default.nix
index 546949d9f21..ab3df9bae7e 100644
--- a/pkgs/development/libraries/belr/default.nix
+++ b/pkgs/development/libraries/belr/default.nix
@@ -6,17 +6,15 @@
 
 stdenv.mkDerivation rec {
   pname = "belr";
-  # Using master branch for linphone-desktop caused a chain reaction that many
-  # of its dependencies needed to use master branch too.
-  version = "unstable-2020-03-09";
+  version = "4.3.2";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
     owner = "public";
     group = "BC";
     repo = pname;
-    rev = "326d030ca9db12525c2a6d2a65f386f36f3c2ed5";
-    sha256 = "1cdblb9smncq3al0crqp5651b02k1g6whlw1ib769p61gad0rs3v";
+    rev = version;
+    sha256 = "1lda0f89vas38xgmc4yvnrigmrbril3dyqxgb5jh1zfx1xczfh1q";
   };
 
   buildInputs = [ bctoolbox ];
@@ -28,7 +26,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "Belledonne Communications' language recognition library";
     homepage = "https://gitlab.linphone.org/BC/public/belr";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ jluttine ];
   };
diff --git a/pkgs/development/libraries/boost/1.75.nix b/pkgs/development/libraries/boost/1.75.nix
new file mode 100644
index 00000000000..9912032c777
--- /dev/null
+++ b/pkgs/development/libraries/boost/1.75.nix
@@ -0,0 +1,15 @@
+{ stdenv, callPackage, fetchurl, fetchpatch, ... } @ args:
+
+callPackage ./generic.nix (args // rec {
+  version = "1.75.0";
+
+  src = fetchurl {
+    urls = [
+      "mirror://sourceforge/boost/boost_1_75_0.tar.bz2"
+      "https://dl.bintray.com/boostorg/release/1.75.0/source/boost_1_75_0.tar.bz2"
+    ];
+    # SHA256 from http://www.boost.org/users/history/version_1_75_0.html
+    sha256 = "953db31e016db7bb207f11432bef7df100516eeb746843fa0486a222e3fd49cb";
+  };
+})
+
diff --git a/pkgs/development/libraries/boost/generic.nix b/pkgs/development/libraries/boost/generic.nix
index a195a2c7bb9..ec3a28e2b1a 100644
--- a/pkgs/development/libraries/boost/generic.nix
+++ b/pkgs/development/libraries/boost/generic.nix
@@ -1,4 +1,5 @@
 { stdenv, icu, expat, zlib, bzip2, python, fixDarwinDylibNames, libiconv
+, fetchpatch
 , which
 , buildPackages
 , toolset ? /**/ if stdenv.cc.isClang  then "clang"
@@ -7,7 +8,7 @@
 , enableDebug ? false
 , enableSingleThreaded ? false
 , enableMultiThreaded ? true
-, enableShared ? !(stdenv.hostPlatform.libc == "msvcrt") # problems for now
+, enableShared ? !(with stdenv.hostPlatform; isStatic || libc == "msvcrt") # problems for now
 , enableStatic ? !enableShared
 , enablePython ? false
 , enableNumpy ? false
@@ -113,6 +114,14 @@ stdenv.mkDerivation {
     if version == "1.55.0"
     then ./darwin-1.55-no-system-python.patch
     else ./darwin-no-system-python.patch)
+  # Fix boost-context segmentation faults on ppc64 due to ABI violation
+  ++ optional (versionAtLeast version "1.61" &&
+               versionOlder version "1.71") (fetchpatch {
+    url = "https://github.com/boostorg/context/commit/2354eca9b776a6739112833f64754108cc0d1dc5.patch";
+    sha256 = "067m4bjpmcanqvg28djax9a10avmdwhlpfx6gn73kbqqq70dnz29";
+    stripLen = 1;
+    extraPrefix = "libs/context/";
+  })
   ++ optional (and (versionAtLeast version "1.70") (!versionAtLeast version "1.73")) ./cmake-paths.patch
   ++ optional (versionAtLeast version "1.73") ./cmake-paths-173.patch;
 
diff --git a/pkgs/development/libraries/botan/2.0.nix b/pkgs/development/libraries/botan/2.0.nix
index 22ddb76b29b..2346153e2a1 100644
--- a/pkgs/development/libraries/botan/2.0.nix
+++ b/pkgs/development/libraries/botan/2.0.nix
@@ -1,9 +1,9 @@
 { callPackage, ... } @ args:
 
 callPackage ./generic.nix (args // {
-  baseVersion = "2.9";
-  revision = "0";
-  sha256 = "06fiyalvc68p11qqh953azx2vrbav5vr00yvcfp67p9l4csn8m9h";
+  baseVersion = "2.17";
+  revision = "2";
+  sha256 = "0v0yiq0qxcrsn5b34j6bz8i6pds8dih2ds90ylmy1msm5gz7vqpb";
   postPatch = ''
     sed -e 's@lang_flags "@&--std=c++11 @' -i src/build-data/cc/{gcc,clang}.txt
   '';
diff --git a/pkgs/development/libraries/botan/default.nix b/pkgs/development/libraries/botan/default.nix
index 04652aa013a..8bcc6aaa8ef 100644
--- a/pkgs/development/libraries/botan/default.nix
+++ b/pkgs/development/libraries/botan/default.nix
@@ -4,6 +4,7 @@ callPackage ./generic.nix (args // {
   baseVersion = "1.10";
   revision = "17";
   sha256 = "04rnha712dd3sdb2q7k2yw45sf405jyigk7yrjfr6bwd9fvgyiv8";
+  sourceExtension = "tgz";
   extraConfigureFlags = "--with-gnump";
   postPatch = ''
     sed -e 's@lang_flags "@&--std=c++11 @' -i src/build-data/cc/{gcc,clang}.txt
diff --git a/pkgs/development/libraries/botan/generic.nix b/pkgs/development/libraries/botan/generic.nix
index 18b1b47f6d3..4d2cf7515c0 100644
--- a/pkgs/development/libraries/botan/generic.nix
+++ b/pkgs/development/libraries/botan/generic.nix
@@ -1,6 +1,7 @@
 { stdenv, fetchurl, python, bzip2, zlib, gmp, openssl, boost
 # Passed by version specific builders
 , baseVersion, revision, sha256
+, sourceExtension ? "tar.xz"
 , extraConfigureFlags ? ""
 , postPatch ? null
 , darwin
@@ -12,10 +13,10 @@ stdenv.mkDerivation rec {
   version = "${baseVersion}.${revision}";
 
   src = fetchurl {
-    name = "Botan-${version}.tgz";
+    name = "Botan-${version}.${sourceExtension}";
     urls = [
-       "http://files.randombit.net/botan/v${baseVersion}/Botan-${version}.tgz"
-       "http://botan.randombit.net/releases/Botan-${version}.tgz"
+       "http://files.randombit.net/botan/v${baseVersion}/Botan-${version}.${sourceExtension}"
+       "http://botan.randombit.net/releases/Botan-${version}.${sourceExtension}"
     ];
     inherit sha256;
   };
diff --git a/pkgs/development/libraries/bzrtp/default.nix b/pkgs/development/libraries/bzrtp/default.nix
index 4fe53a5d629..3eb99549246 100644
--- a/pkgs/development/libraries/bzrtp/default.nix
+++ b/pkgs/development/libraries/bzrtp/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "bzrtp";
-  version = "4.4.0";
+  version = "4.4.9";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -29,9 +29,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "An opensource implementation of ZRTP keys exchange protocol";
     homepage = "https://gitlab.linphone.org/BC/public/bzrtp";
-    # They have switched to GPLv3 on git HEAD so probably the next release will
-    # be GPL3.
-    license = licenses.lgpl21;
+    license = licenses.gpl3Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ jluttine ];
   };
diff --git a/pkgs/development/libraries/cdo/default.nix b/pkgs/development/libraries/cdo/default.nix
index f582be81e86..10e145b34ea 100644
--- a/pkgs/development/libraries/cdo/default.nix
+++ b/pkgs/development/libraries/cdo/default.nix
@@ -1,7 +1,10 @@
 { stdenv, fetchurl, curl, hdf5, netcdf
-, enable_cdi_lib ? false    # build, install and link to a CDI library [default=no]
-, enable_all_static ? false # build a completely statically linked CDO binary  [default=no]
-, enable_cxx ? false        # Use CXX as default compiler [default=no]
+, # build, install and link to a CDI library [default=no]
+  enable_cdi_lib ? false
+, # build a completely statically linked CDO binary
+  enable_all_static ? stdenv.hostPlatform.isStatic
+, # Use CXX as default compiler [default=no]
+  enable_cxx ? false
 }:
 
 stdenv.mkDerivation rec {
diff --git a/pkgs/development/libraries/ceres-solver/default.nix b/pkgs/development/libraries/ceres-solver/default.nix
index 26a943791e9..18f029c4585 100644
--- a/pkgs/development/libraries/ceres-solver/default.nix
+++ b/pkgs/development/libraries/ceres-solver/default.nix
@@ -12,11 +12,11 @@ assert runTests -> gflags != null;
 
 stdenv.mkDerivation rec {
   pname = "ceres-solver";
-  version = "1.14.0";
+  version = "2.0.0";
 
   src = fetchurl {
     url = "http://ceres-solver.org/ceres-solver-${version}.tar.gz";
-    sha256 = "13lfxy8x58w8vprr0nkbzziaijlh0vvqshgahvcgw0mrqdgh0i27";
+    sha256 = "00vng9vnmdb1qga01m0why90m0041w7bn6kxa2h4m26aflfqla8h";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/codec2/default.nix b/pkgs/development/libraries/codec2/default.nix
index 1f387f711e7..4a648b1f32a 100644
--- a/pkgs/development/libraries/codec2/default.nix
+++ b/pkgs/development/libraries/codec2/default.nix
@@ -1,11 +1,8 @@
-{ stdenv, fetchFromGitHub, cmake } :
+{ stdenv, fetchFromGitHub, cmake }:
 
-let
-  version = "0.9.2";
-
-in stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "codec2";
-  inherit version;
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "drowe67";
@@ -14,15 +11,13 @@ in stdenv.mkDerivation {
     sha256 = "1jpvr7bra8srz8jvnlbmhf8andbaavq5v01qjnp2f61za93rzwba";
   };
 
-  enableParallelBuilding = true;
-
   nativeBuildInputs = [ cmake ];
 
   meta = with stdenv.lib; {
     description = "Speech codec designed for communications quality speech at low data rates";
     homepage = "http://www.rowetel.com/blog/?page_id=452";
     license = licenses.lgpl21;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ markuskowa ];
   };
 }
diff --git a/pkgs/development/libraries/crc32c/default.nix b/pkgs/development/libraries/crc32c/default.nix
index b9c12b1889c..c10d218ea42 100644
--- a/pkgs/development/libraries/crc32c/default.nix
+++ b/pkgs/development/libraries/crc32c/default.nix
@@ -1,5 +1,6 @@
 { stdenv, lib, fetchFromGitHub, cmake, gflags
-, staticOnly ? false }:
+, staticOnly ? stdenv.hostPlatform.isStatic
+}:
 
 stdenv.mkDerivation rec {
   pname = "crc32c";
diff --git a/pkgs/development/libraries/entt/default.nix b/pkgs/development/libraries/entt/default.nix
new file mode 100644
index 00000000000..35e12eb00c7
--- /dev/null
+++ b/pkgs/development/libraries/entt/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchFromGitHub, cmake }:
+stdenv.mkDerivation rec {
+  pname = "entt";
+  version = "3.5.2";
+
+  src = fetchFromGitHub {
+    owner = "skypjack";
+    repo = "entt";
+    rev = "v${version}";
+    sha256 = "1p09p1wn8cbj17z83iyyy2498wy1gzyi2mmqi5i2cxglslbm6hy0";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/skypjack/entt";
+    description = "A header-only, tiny and easy to use library for game programming and much more written in modern C++";
+    maintainers = with maintainers; [ twey ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/libraries/ffmpegthumbnailer/default.nix b/pkgs/development/libraries/ffmpegthumbnailer/default.nix
index 4e3c10e8829..6c8e689840e 100644
--- a/pkgs/development/libraries/ffmpegthumbnailer/default.nix
+++ b/pkgs/development/libraries/ffmpegthumbnailer/default.nix
@@ -1,4 +1,4 @@
-{ fetchFromGitHub, stdenv, ffmpeg_3, cmake, libpng, pkgconfig, libjpeg
+{ fetchFromGitHub, stdenv, ffmpeg_3, cmake, libpng, pkg-config, libjpeg
 }:
 
 stdenv.mkDerivation rec {
@@ -12,13 +12,14 @@ stdenv.mkDerivation rec {
     sha256 = "1bakbr714j7yxdal1f5iq0gcl4cxggbbgj227ihdh5kvygqlwich";
   };
 
-  nativeBuildInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [ ffmpeg_3 libpng libjpeg ];
+  cmakeFlags = [ "-DENABLE_THUMBNAILER=ON" ];
 
   meta = with stdenv.lib;  {
     homepage = "https://github.com/dirkvdb/ffmpegthumbnailer";
     description = "A lightweight video thumbnailer";
-    longDescription = "FFmpegthumbnailer is a lightweight video 
+    longDescription = "FFmpegthumbnailer is a lightweight video
         thumbnailer that can be used by file managers to create thumbnails
         for your video files. The thumbnailer uses ffmpeg o decode frames
         from the video files, so supported videoformats depend on the
@@ -27,7 +28,7 @@ stdenv.mkDerivation rec {
         The only dependencies are ffmpeg and libpng.
     ";
     platforms = platforms.linux;
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = [ maintainers.jagajaga ];
   };
 
diff --git a/pkgs/development/libraries/flatbuffers/default.nix b/pkgs/development/libraries/flatbuffers/default.nix
index 424aeb8637d..922eba4335c 100644
--- a/pkgs/development/libraries/flatbuffers/default.nix
+++ b/pkgs/development/libraries/flatbuffers/default.nix
@@ -10,6 +10,21 @@ stdenv.mkDerivation rec {
     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 = stdenv.lib.optional stdenv.buildPlatform.isDarwin ''
     rm BUILD
diff --git a/pkgs/development/libraries/flite/default.nix b/pkgs/development/libraries/flite/default.nix
index f9e4720f643..1db8a9fbe2f 100644
--- a/pkgs/development/libraries/flite/default.nix
+++ b/pkgs/development/libraries/flite/default.nix
@@ -1,28 +1,28 @@
 { stdenv, fetchFromGitHub, alsaLib }:
 
-stdenv.mkDerivation {
-  name = "flite-2.1.0";
+stdenv.mkDerivation rec {
+  pname = "flite";
+  version = "2.2";
 
   src = fetchFromGitHub {
-    owner  = "festvox";
-    repo   = "flite";
-    rev    = "d673f65b2c4a8cd3da7447079309a6dc4bcf1a5e";
-    sha256 = "1kx43jvdln370590gfjhxxz3chxfi6kq18504wmdpljib2l0grjq";
+    owner = "festvox";
+    repo = "flite";
+    rev = "v${version}";
+    sha256 = "1n0p81jzndzc1rzgm66kw9ls189ricy5v1ps11y0p2fk1p56kbjf";
   };
 
-  buildInputs = [ alsaLib ];
+  buildInputs = stdenv.lib.optionals stdenv.isLinux [ alsaLib ];
 
   configureFlags = [
     "--enable-shared"
-    "--with-audio=alsa"
-  ];
+  ] ++ stdenv.lib.optionals stdenv.isLinux [ "--with-audio=alsa" ];
 
   enableParallelBuilding = true;
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A small, fast run-time speech synthesis engine";
     homepage = "http://www.festvox.org/flite/";
-    license = stdenv.lib.licenses.free;
-    platforms = stdenv.lib.platforms.linux;
+    license = licenses.bsdOriginal;
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/fmt/default.nix b/pkgs/development/libraries/fmt/default.nix
index 8eac88df796..2f490891433 100644
--- a/pkgs/development/libraries/fmt/default.nix
+++ b/pkgs/development/libraries/fmt/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchFromGitHub, fetchpatch, cmake, enableShared ? true }:
+{ stdenv, fetchFromGitHub, fetchpatch, cmake
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
 
 let
   generic = { version, sha256, patches ? [ ] }:
diff --git a/pkgs/development/libraries/folly/default.nix b/pkgs/development/libraries/folly/default.nix
index be648cf5a84..62f73a36191 100644
--- a/pkgs/development/libraries/folly/default.nix
+++ b/pkgs/development/libraries/folly/default.nix
@@ -1,18 +1,37 @@
-{ stdenv, fetchFromGitHub, cmake, boost, libevent, double-conversion, glog
-, gflags, libiberty, openssl }:
+{ stdenv
+, fetchFromGitHub
+, cmake
+, boost
+, libevent
+, double-conversion
+, glog
+, gflags
+, libiberty
+, lz4
+, lzma
+, zlib
+, jemalloc
+, openssl
+, pkg-config
+, libunwind
+, fmt
+}:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (rec {
   pname = "folly";
-  version = "2019.11.11.00";
+  version = "2020.09.28.00";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "folly";
     rev = "v${version}";
-    sha256 = "1sgv7sdalbs7zhz3zcc95gn2h8j2xjf7hkw2c618zc3pdn6aa58w";
+    sha256 = "1ry2nqfavcbz0jvsqw71105gbxm5hpmdi2k1w155m957jrv3n5vg";
   };
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
 
   # See CMake/folly-deps.cmake in the Folly source tree.
   buildInputs = [
@@ -23,9 +42,15 @@ stdenv.mkDerivation rec {
     libevent
     libiberty
     openssl
+    lz4
+    lzma
+    zlib
+    jemalloc
+    libunwind
+    fmt
   ];
 
-  enableParallelBuilding = true;
+  cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ];
 
   meta = with stdenv.lib; {
     description = "An open-source C++ library developed and used at Facebook";
@@ -35,4 +60,6 @@ stdenv.mkDerivation rec {
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
     maintainers = with maintainers; [ abbradar pierreis ];
   };
-}
+} // stdenv.lib.optionalAttrs stdenv.isDarwin {
+  LDFLAGS = "-ljemalloc";
+})
diff --git a/pkgs/development/libraries/gaia/default.nix b/pkgs/development/libraries/gaia/default.nix
index b154f80c1dd..46ed3626d2a 100644
--- a/pkgs/development/libraries/gaia/default.nix
+++ b/pkgs/development/libraries/gaia/default.nix
@@ -5,6 +5,7 @@
 , swig
 , eigen
 , pkgconfig
+, python2
 , wafHook
 , makeWrapper
 , qt4
@@ -38,9 +39,10 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [
-    wafHook
     pkgconfig
+    python2 # For wafHook
     swig
+    wafHook
   ]
     # The gaiafusion binary inside $out/bin needs a shebangs patch, and
     # wrapping with the appropriate $PYTHONPATH
diff --git a/pkgs/development/libraries/gdk-pixbuf/default.nix b/pkgs/development/libraries/gdk-pixbuf/default.nix
index 2d6fae915f8..ad92bf13c4c 100644
--- a/pkgs/development/libraries/gdk-pixbuf/default.nix
+++ b/pkgs/development/libraries/gdk-pixbuf/default.nix
@@ -25,13 +25,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gdk-pixbuf";
-  version = "2.42.0";
+  version = "2.42.2";
 
   outputs = [ "out" "dev" "man" "devdoc" "installedTests" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1ixfmmamgv67is7snzighfr7c9y2maq3q4a075xdq0d9s4w16i3k";
+    sha256 = "05ggmzwvrxq9w4zcvmrnnd6qplsmb4n95lj4q607c7arzlf6mil3";
   };
 
   patches = [
@@ -109,6 +109,8 @@ stdenv.mkDerivation rec {
 
   setupHook = ./setup-hook.sh;
 
+  separateDebugInfo = stdenv.isLinux;
+
   passthru = {
     updateScript = gnome3.updateScript {
       packageName = pname;
diff --git a/pkgs/development/libraries/gflags/default.nix b/pkgs/development/libraries/gflags/default.nix
index 733a572ac61..51c13f97433 100644
--- a/pkgs/development/libraries/gflags/default.nix
+++ b/pkgs/development/libraries/gflags/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchFromGitHub, cmake, enableShared ? true}:
+{ stdenv, fetchFromGitHub, cmake
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
 
 stdenv.mkDerivation rec {
   pname = "gflags";
diff --git a/pkgs/development/libraries/glew/1.10.nix b/pkgs/development/libraries/glew/1.10.nix
index 02737143e0d..139b93c039e 100644
--- a/pkgs/development/libraries/glew/1.10.nix
+++ b/pkgs/development/libraries/glew/1.10.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, libGLU, xlibsWrapper, libXmu, libXi
-, AGL ? null
+, AGL, OpenGL
 }:
 
 with stdenv.lib;
@@ -12,9 +12,8 @@ stdenv.mkDerivation rec {
     sha256 = "01zki46dr5khzlyywr3cg615bcal32dazfazkf360s1znqh17i4r";
   };
 
-  buildInputs = [ xlibsWrapper libXmu libXi ]
-              ++ optionals stdenv.isDarwin [ AGL ];
-  propagatedBuildInputs = [ libGLU ]; # GL/glew.h includes GL/glu.h
+  buildInputs = if stdenv.isDarwin then [ AGL ] else [ xlibsWrapper libXmu libXi ];
+  propagatedBuildInputs = if stdenv.isDarwin then [ OpenGL ] else [ libGLU ]; # GL/glew.h includes GL/glu.h
 
   patchPhase = ''
     sed -i 's|lib64|lib|' config/Makefile.linux
diff --git a/pkgs/development/libraries/glew/default.nix b/pkgs/development/libraries/glew/default.nix
index 80a7759c574..3b067e6d0f3 100644
--- a/pkgs/development/libraries/glew/default.nix
+++ b/pkgs/development/libraries/glew/default.nix
@@ -1,4 +1,5 @@
 { stdenv, fetchurl, libGLU, xlibsWrapper, libXmu, libXi
+, OpenGL
 }:
 
 with stdenv.lib;
@@ -13,8 +14,8 @@ stdenv.mkDerivation rec {
 
   outputs = [ "bin" "out" "dev" "doc" ];
 
-  buildInputs = [ xlibsWrapper libXmu libXi ];
-  propagatedBuildInputs = [ libGLU ]; # GL/glew.h includes GL/glu.h
+  buildInputs = optionals (!stdenv.isDarwin) [ xlibsWrapper libXmu libXi ];
+  propagatedBuildInputs = if stdenv.isDarwin then [ OpenGL ] else [ libGLU ]; # GL/glew.h includes GL/glu.h
 
   patchPhase = ''
     sed -i 's|lib64|lib|' config/Makefile.linux
diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix
index 3382af17c35..57f05d410fb 100644
--- a/pkgs/development/libraries/glib/default.nix
+++ b/pkgs/development/libraries/glib/default.nix
@@ -45,11 +45,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "glib";
-  version = "2.66.3";
+  version = "2.66.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/glib/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1cdmyyycw2mf5s0f5sfd59q91223s4smcqi8n2fwrccwm5ji7wvr";
+    sha256 = "l9+GcOMvn9T3OSsJgOZh3WJQEgFdWDUNoeWOND9K+YQ=";
   };
 
   patches = optionals stdenv.isDarwin [
diff --git a/pkgs/development/libraries/glibc/common.nix b/pkgs/development/libraries/glibc/common.nix
index dd76745e1fe..74f8329788a 100644
--- a/pkgs/development/libraries/glibc/common.nix
+++ b/pkgs/development/libraries/glibc/common.nix
@@ -214,7 +214,7 @@ stdenv.mkDerivation ({
     configureScript="`pwd`/../$sourceRoot/configure"
 
     ${lib.optionalString (stdenv.cc.libc != null)
-      ''makeFlags="$makeFlags BUILD_LDFLAGS=-Wl,-rpath,${stdenv.cc.libc}/lib"''
+      ''makeFlags="$makeFlags BUILD_LDFLAGS=-Wl,-rpath,${stdenv.cc.libc}/lib OBJDUMP=${stdenv.cc.bintools.bintools}/bin/objdump"''
     }
 
 
diff --git a/pkgs/development/libraries/glibc/darwin-cross-build.patch b/pkgs/development/libraries/glibc/darwin-cross-build.patch
index 7b224924104..b746e6369a0 100644
--- a/pkgs/development/libraries/glibc/darwin-cross-build.patch
+++ b/pkgs/development/libraries/glibc/darwin-cross-build.patch
@@ -3,10 +3,8 @@ enable cross-compilation of glibc on Darwin (build=Darwin, host=Linux)
 * use host version of ar, which is given by environment variable
 * build system uses stamp.os and stamp.oS files, which only differ in case;
   this fails on macOS, so replace .oS with .o_S
-* libintl.h does not exist (and is not needed) on macOS
-
---- glibc-2.27/Makefile.in	2018-02-01 17:17:18.000000000 +0100
-+++ glibc-2.27/Makefile.in	2019-02-15 17:38:27.022965553 +0100
+--- glibc-2.32/Makefile.in	2018-02-01 17:17:18.000000000 +0100
++++ glibc-2.32/Makefile.in	2020-12-27 18:21:30.000000000 +0100
 @@ -6,9 +6,11 @@
  .PHONY: all install bench
  
@@ -20,9 +18,9 @@ enable cross-compilation of glibc on Darwin (build=Darwin, host=Linux)
  	LC_ALL=C; export LC_ALL; \
  	$(MAKE) -r PARALLELMFLAGS="$(PARALLELMFLAGS)" -C $(srcdir) objdir=`pwd` $@
  
---- glibc-2.27/Makerules	2018-02-01 17:17:18.000000000 +0100
-+++ glibc-2.27/Makerules	2019-02-15 17:43:11.196039000 +0100
-@@ -915,8 +915,8 @@
+--- glibc-2.32/Makerules	2018-02-01 17:17:18.000000000 +0100
++++ glibc-2.32/Makerules	2020-12-27 18:21:30.000000000 +0100
+@@ -847,8 +847,8 @@
  ifndef objects
  
  # Create the stamp$o files to keep the parent makefile happy.
@@ -33,7 +31,7 @@ enable cross-compilation of glibc on Darwin (build=Darwin, host=Linux)
  	$(make-target-directory)
  	rm -f $@; > $@
  else
-@@ -927,7 +927,7 @@
+@@ -859,7 +859,7 @@
  # The parent will then actually add them all to the archive in the
  # archive rule, below.
  define o-iterator-doit
@@ -42,7 +40,7 @@ enable cross-compilation of glibc on Darwin (build=Darwin, host=Linux)
  endef
  define do-stamp
  $(make-target-directory)
-@@ -943,14 +943,14 @@
+@@ -875,14 +875,14 @@
  # on the stamp files built above.
  define o-iterator-doit
  $(common-objpfx)$(patsubst %,$(libtype$o),c): \
@@ -59,7 +57,7 @@ enable cross-compilation of glibc on Darwin (build=Darwin, host=Linux)
  ifndef subdir
  $(subdirs-stamps): subdir_lib;
  endif
-@@ -961,7 +961,7 @@
+@@ -893,7 +893,7 @@
  # This makes all the object files.
  .PHONY: objects objs libobjs extra-objs
  objects objs: libobjs extra-objs
@@ -68,7 +66,7 @@ enable cross-compilation of glibc on Darwin (build=Darwin, host=Linux)
  extra-objs: $(addprefix $(objpfx),$(extra-objs))
  
  # Canned sequence for building an extra library archive.
-@@ -1615,7 +1615,7 @@
+@@ -1499,7 +1499,7 @@
  	$(rmobjs)
  define rmobjs
  $(foreach o,$(object-suffixes-for-libc),
@@ -77,27 +75,3 @@ enable cross-compilation of glibc on Darwin (build=Darwin, host=Linux)
  endef
  
  # Also remove the dependencies and generated source files.
---- glibc-2.27/sunrpc/rpc_main.c	2019-02-15 17:32:43.710244513 +0100
-+++ glibc-2.27/sunrpc/rpc_main.c	2019-02-15 17:23:57.139617796 +0100
-@@ -38,7 +38,9 @@
- #include <stdio.h>
- #include <string.h>
- #include <unistd.h>
-+#ifndef __APPLE__
- #include <libintl.h>
-+#endif
- #include <locale.h>
- #include <ctype.h>
- #include <sys/types.h>
---- glibc-2.27/sunrpc/rpc_scan.c	2019-02-15 17:32:54.845490606 +0100
-+++ glibc-2.27/sunrpc/rpc_scan.c	2019-02-15 17:24:54.288066644 +0100
-@@ -37,7 +37,9 @@
- #include <stdio.h>
- #include <ctype.h>
- #include <string.h>
-+#ifndef __APPLE__
- #include <libintl.h>
-+#endif
- #include "rpc_scan.h"
- #include "rpc_parse.h"
- #include "rpc_util.h"
diff --git a/pkgs/development/libraries/gmp/5.1.x.nix b/pkgs/development/libraries/gmp/5.1.x.nix
index a027d58de39..a514934e964 100644
--- a/pkgs/development/libraries/gmp/5.1.x.nix
+++ b/pkgs/development/libraries/gmp/5.1.x.nix
@@ -1,4 +1,7 @@
-{ stdenv, fetchurl, m4, cxx ? true, withStatic ? true }:
+{ stdenv, fetchurl, m4
+, cxx ? true
+, withStatic ? stdenv.hostPlatform.isStatic
+}:
 
 let inherit (stdenv.lib) optional; in
 
diff --git a/pkgs/development/libraries/gmp/6.x.nix b/pkgs/development/libraries/gmp/6.x.nix
index 10e63f733a2..522976d3ab2 100644
--- a/pkgs/development/libraries/gmp/6.x.nix
+++ b/pkgs/development/libraries/gmp/6.x.nix
@@ -1,7 +1,8 @@
 { stdenv, fetchurl, m4
 , cxx ? !stdenv.hostPlatform.useAndroidPrebuilt && !stdenv.hostPlatform.isWasm
 , buildPackages
-, withStatic ? false }:
+, withStatic ? stdenv.hostPlatform.isStatic
+}:
 
 # Note: this package is used for bootstrapping fetchurl, and thus
 # cannot use fetchpatch! All mutable patches (generated by GitHub or
diff --git a/pkgs/development/libraries/gsm/default.nix b/pkgs/development/libraries/gsm/default.nix
index 30cffa89938..7214aa6f6b9 100644
--- a/pkgs/development/libraries/gsm/default.nix
+++ b/pkgs/development/libraries/gsm/default.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchurl
-, staticSupport ? false # Compile statically (support for packages that look for the static object)
+, # Compile statically (support for packages that look for the static object)
+  staticSupport ? stdenv.hostPlatform.isStatic
 }:
 
 let
diff --git a/pkgs/development/libraries/gstreamer/bad/default.nix b/pkgs/development/libraries/gstreamer/bad/default.nix
index c5edeb2021f..49343e79c87 100644
--- a/pkgs/development/libraries/gstreamer/bad/default.nix
+++ b/pkgs/development/libraries/gstreamer/bad/default.nix
@@ -89,13 +89,13 @@ let
   inherit (stdenv.lib) optional optionals;
 in stdenv.mkDerivation rec {
   pname = "gst-plugins-bad";
-  version = "1.18.1";
+  version = "1.18.2";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "1cn18cbqyysrxnrk5bpxdzd5xcws9g2kmm5rbv00cx6rhn69g5f1";
+    sha256 = "06ildd4rl6cynirv3p00d2ddf5is9svj4i7mkahldzhq24pq5mca";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/gstreamer/base/default.nix b/pkgs/development/libraries/gstreamer/base/default.nix
index da3434a77cd..4728e49c516 100644
--- a/pkgs/development/libraries/gstreamer/base/default.nix
+++ b/pkgs/development/libraries/gstreamer/base/default.nix
@@ -40,13 +40,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-plugins-base";
-  version = "1.18.1";
+  version = "1.18.2";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0hf66sh8d4x2ksfnvaq2rqrrfq0vi0pv6wbh9i5jixrhvvbm99hv";
+    sha256 = "1b05kg46azrxxvq42c71071lfsnc34pw4vynnkczdqi6g0gzn16x";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/gstreamer/core/default.nix b/pkgs/development/libraries/gstreamer/core/default.nix
index 3ea0bd8903a..0d33d28196c 100644
--- a/pkgs/development/libraries/gstreamer/core/default.nix
+++ b/pkgs/development/libraries/gstreamer/core/default.nix
@@ -21,7 +21,7 @@
 
 stdenv.mkDerivation rec {
   pname = "gstreamer";
-  version = "1.18.1";
+  version = "1.18.2";
 
   outputs = [
     "out"
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "1fpcpsw740svvdxvvwn0hly5i72miizm4s0mbid10ji83zi8vpvr";
+    sha256 = "0ijlmvr660m8zn09xlmnq1ajrziqsivp2hig5a9mabhcjx7ypkb6";
   };
 
   patches = [
@@ -94,7 +94,7 @@ stdenv.mkDerivation rec {
   postInstall = ''
     for prog in "$dev/bin/"*; do
         # We can't use --suffix here due to quoting so we craft the export command by hand
-        wrapProgram "$prog" --run 'export GST_PLUGIN_SYSTEM_PATH=$GST_PLUGIN_SYSTEM_PATH''${GST_PLUGIN_SYSTEM_PATH:+:}$(unset _tmp; for profile in $NIX_PROFILES; do _tmp="$profile/lib/gstreamer-1.0''${_tmp:+:}$_tmp"; done; printf '%s' "$_tmp")'
+        wrapProgram "$prog" --run 'export GST_PLUGIN_SYSTEM_PATH_1_0=$GST_PLUGIN_SYSTEM_PATH_1_0''${GST_PLUGIN_SYSTEM_PATH_1_0:+:}$(unset _tmp; for profile in $NIX_PROFILES; do _tmp="$profile/lib/gstreamer-1.0''${_tmp:+:}$_tmp"; done; printf '%s' "$_tmp")'
     done
   '';
 
diff --git a/pkgs/development/libraries/gstreamer/devtools/default.nix b/pkgs/development/libraries/gstreamer/devtools/default.nix
index fe4c7005f60..6743a5ecd67 100644
--- a/pkgs/development/libraries/gstreamer/devtools/default.nix
+++ b/pkgs/development/libraries/gstreamer/devtools/default.nix
@@ -12,11 +12,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-devtools";
-  version = "1.18.1";
+  version = "1.18.2";
 
   src = fetchurl {
     url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "1pxhg8n5nl34baq6mb07i27b33gaw47zrv5yalyj6f12pnx148ki";
+    sha256 = "0mhascwvgirgh7b5dykpnk06f7f5g62gh3sl30i6kygiidqkv9vf";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/gstreamer/ges/default.nix b/pkgs/development/libraries/gstreamer/ges/default.nix
index 075b2059dbf..75e065e6d2b 100644
--- a/pkgs/development/libraries/gstreamer/ges/default.nix
+++ b/pkgs/development/libraries/gstreamer/ges/default.nix
@@ -16,7 +16,7 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-editing-services";
-  version = "1.18.1";
+  version = "1.18.2";
 
   outputs = [
     "out"
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "09rr5a198p1r9wcbsjl01xg6idkfkgj5h9x7xxywarb5i7qv6g79";
+    sha256 = "0pv2k8zlpn3vv2sdlspi3m63ixcwzi90pjly2ypbkg59ab97rb15";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/gstreamer/good/default.nix b/pkgs/development/libraries/gstreamer/good/default.nix
index 99b00e6ca9d..d4c3b99c7ca 100644
--- a/pkgs/development/libraries/gstreamer/good/default.nix
+++ b/pkgs/development/libraries/gstreamer/good/default.nix
@@ -51,13 +51,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "gst-plugins-good";
-  version = "1.18.1";
+  version = "1.18.2";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0v329xi4qhlfh9aksfyviryqk9lclm4wj1lxrjnbdv4haldfj472";
+    sha256 = "1929nhjsvbl4bw37nfagnfsnxz737cm2x3ayz9ayrn9lwkfm45zp";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/gstreamer/libav/default.nix b/pkgs/development/libraries/gstreamer/libav/default.nix
index 27635247391..c75d439cd53 100644
--- a/pkgs/development/libraries/gstreamer/libav/default.nix
+++ b/pkgs/development/libraries/gstreamer/libav/default.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-libav";
-  version = "1.18.1";
+  version = "1.18.2";
 
   src = fetchurl {
     url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "1n1fkkbxxsndblnbm0c2ziqp967hrz5gag6z36xbpvqk4sy1g9rr";
+    sha256 = "0jbzams9ggk3sq9ywv4gsl9rghyn203l2582m6l5c1sz9ka9m5in";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/gstreamer/rtsp-server/default.nix b/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
index 87aca8a7cf9..4167b172776 100644
--- a/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
+++ b/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
@@ -12,11 +12,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-rtsp-server";
-  version = "1.18.1";
+  version = "1.18.2";
 
   src = fetchurl {
     url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0m7p7sarvi6n9pz0rrl9k3gp3l5s42qs8z0165kyd6fiqdjjia0h";
+    sha256 = "1qjlp7az0hkzxvq53hwnp55sp6xhbybfwzaj66hp45jslsmj4fcp";
   };
 
   outputs = [
diff --git a/pkgs/development/libraries/gstreamer/ugly/default.nix b/pkgs/development/libraries/gstreamer/ugly/default.nix
index ab922f98808..1cdc0a51930 100644
--- a/pkgs/development/libraries/gstreamer/ugly/default.nix
+++ b/pkgs/development/libraries/gstreamer/ugly/default.nix
@@ -21,13 +21,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-plugins-ugly";
-  version = "1.18.1";
+  version = "1.18.2";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "09gpbykjchw3lb51ipxj53fy238gr9mg9jybcg5135pb56w6rk8q";
+    sha256 = "1nwbcv5yaib3d8icvyja3zf6lyjf5zf1hndbijrhj8j7xlia0dx3";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/gstreamer/vaapi/default.nix b/pkgs/development/libraries/gstreamer/vaapi/default.nix
index a1a6223798f..52a6cb27894 100644
--- a/pkgs/development/libraries/gstreamer/vaapi/default.nix
+++ b/pkgs/development/libraries/gstreamer/vaapi/default.nix
@@ -21,11 +21,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gstreamer-vaapi";
-  version = "1.18.1";
+  version = "1.18.2";
 
   src = fetchurl {
     url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "1sm6x2qa7ng78w0w8q4mjs7pbpbbk8qkfgzhdmbb8l0bh513q3a0";
+    sha256 = "1h67n7wk1297rzynknbyv44gdacblvkcvb37x8yxi5d0zms2qywc";
   };
 
   outputs = [
diff --git a/pkgs/development/libraries/gtk/3.x.nix b/pkgs/development/libraries/gtk/3.x.nix
index aee846ccfcd..59685ca07cc 100644
--- a/pkgs/development/libraries/gtk/3.x.nix
+++ b/pkgs/development/libraries/gtk/3.x.nix
@@ -43,6 +43,7 @@
 , cups ? null
 , AppKit
 , Cocoa
+, broadwaySupport ? true
 }:
 
 assert cupsSupport -> cups != null;
@@ -51,7 +52,7 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "gtk+3";
-  version = "3.24.23";
+  version = "3.24.24";
 
   outputs = [ "out" "dev" ] ++ optional withGtkDoc "devdoc";
   outputBin = "dev";
@@ -63,7 +64,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/gtk+/${stdenv.lib.versions.majorMinor version}/gtk+-${version}.tar.xz";
-    sha256 = "1cg2vbwbcp7bc84ky0b69ipgdr9djhspnf5k8lajb8jphcj4v1jx";
+    sha256 = "12ipk1d376bai9v820qzhxba93kkh5abi6mhyqr4hwjvqmkl77fc";
   };
 
   patches = [
@@ -73,13 +74,6 @@ stdenv.mkDerivation rec {
       url = "https://bug757142.bugzilla-attachments.gnome.org/attachment.cgi?id=344123";
       sha256 = "0g6fhqcv8spfy3mfmxpyji93k8d4p4q4fz1v9a1c1cgcwkz41d7p";
     })
-
-    # Fix path handling in pkg-config. MR for the gtk-3-24 branch:
-    # https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/2605
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gtk/commit/6d9db8610eff8c12d594d53b7813d9eea1247801.patch";
-      sha256 = "0rd1kjh0m4mrj2hkcqlsq1j0d6ahn5c237fd211r158gd1jiwys0";
-    })
   ] ++ optionals stdenv.isDarwin [
     # X11 module requires <gio/gdesktopappinfo.h> which is not installed on Darwin
     # let’s drop that dependency in similar way to how other parts of the library do it
@@ -94,6 +88,7 @@ stdenv.mkDerivation rec {
     "-Dgtk_doc=${boolToString withGtkDoc}"
     "-Dtests=false"
     "-Dtracker3=${boolToString trackerSupport}"
+    "-Dbroadway_backend=${boolToString broadwaySupport}"
   ];
 
   # These are the defines that'd you'd get with --enable-debug=minimum (default).
diff --git a/pkgs/development/libraries/inih/default.nix b/pkgs/development/libraries/inih/default.nix
new file mode 100644
index 00000000000..62de607f7d4
--- /dev/null
+++ b/pkgs/development/libraries/inih/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, meson, ninja }:
+
+stdenv.mkDerivation rec {
+  pname = "inih";
+  version = "r52";
+
+  src = fetchFromGitHub {
+    owner = "benhoyt";
+    repo = pname;
+    rev = version;
+    sha256 = "0lsvm34zabvi1xlximybzvgc58zb90mm3b9babwxlqs05jy871m4";
+  };
+
+  nativeBuildInputs = [ meson ninja ];
+
+  mesonFlags = [
+    "-Ddefault_library=shared"
+    "-Ddistro_install=true"
+    "-Dwith_INIReader=true"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Simple .INI file parser in C, good for embedded systems";
+    homepage = "https://github.com/benhoyt/inih";
+    changelog = "https://github.com/benhoyt/inih/releases/tag/${version}";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ TredwellGit ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/intel-media-driver/default.nix b/pkgs/development/libraries/intel-media-driver/default.nix
index ada25e10d50..153e41a777c 100644
--- a/pkgs/development/libraries/intel-media-driver/default.nix
+++ b/pkgs/development/libraries/intel-media-driver/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "intel-media-driver";
-  version = "20.4.3";
+  version = "20.4.5";
 
   src = fetchFromGitHub {
     owner  = "intel";
     repo   = "media-driver";
     rev    = "intel-media-${version}";
-    sha256 = "04a0hcw9f8fr96xpc1inc19mncssqzxmjba9cdvvh71n8j7n3yyw";
+    sha256 = "149xkhhp8q06c1jzxjs24lnbfrlvf19m0hcwld593vv4arfpbpmf";
   };
 
   cmakeFlags = [
diff --git a/pkgs/development/libraries/itk/default.nix b/pkgs/development/libraries/itk/default.nix
index 65e41a58a47..c0416b23dc2 100644
--- a/pkgs/development/libraries/itk/default.nix
+++ b/pkgs/development/libraries/itk/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "itk";
-  version = "5.1.1";
+  version = "5.1.2";
 
   src = fetchFromGitHub {
     owner = "InsightSoftwareConsortium";
     repo = "ITK";
     rev = "v${version}";
-    sha256 = "1z7rmqrhgl7hfb3d0077kvp8vpi05r2zk3qyqzmv7bzbal5sqqhv";
+    sha256 = "0db91pm1zy40h4qr5zsdfl94znk16w9ysddz5cxbl198iyyqii8f";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/java/lombok/default.nix b/pkgs/development/libraries/java/lombok/default.nix
index 5a121003605..6d09bead53e 100644
--- a/pkgs/development/libraries/java/lombok/default.nix
+++ b/pkgs/development/libraries/java/lombok/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, makeWrapper, jdk }:
 
 stdenv.mkDerivation rec {
   name = "lombok-1.18.16";
@@ -8,9 +8,17 @@ stdenv.mkDerivation rec {
     sha256 = "1msys7xkaj0d7fi112fmb2z50mk46db58agzrrdyimggsszwn1kj";
   };
 
+  buildInputs = [ makeWrapper ];
+
+  outputs = [ "out" "bin" ];
+
   buildCommand = ''
     mkdir -p $out/share/java
     cp $src $out/share/java/lombok.jar
+
+    makeWrapper ${jdk}/bin/java $bin/bin/lombok \
+      --add-flags "-cp ${jdk}/lib/openjdk/lib/tools.jar:$out/share/java/lombok.jar" \
+      --add-flags lombok.launch.Main
   '';
 
   meta = {
diff --git a/pkgs/development/libraries/kde-frameworks/fetch.sh b/pkgs/development/libraries/kde-frameworks/fetch.sh
index 839b2eb466d..5c6ea732b69 100644
--- a/pkgs/development/libraries/kde-frameworks/fetch.sh
+++ b/pkgs/development/libraries/kde-frameworks/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=(https://download.kde.org/stable/frameworks/5.73/)
+WGET_ARGS=( https://download.kde.org/stable/frameworks/5.76/ -A '*.tar.xz' )
diff --git a/pkgs/development/libraries/kde-frameworks/kded.nix b/pkgs/development/libraries/kde-frameworks/kded.nix
index 65377789582..1b326e51de9 100644
--- a/pkgs/development/libraries/kde-frameworks/kded.nix
+++ b/pkgs/development/libraries/kde-frameworks/kded.nix
@@ -1,16 +1,22 @@
 {
-  mkDerivation, lib, propagate,
+  mkDerivation, lib, propagate, wrapGAppsHook,
   extra-cmake-modules, kdoctools,
-  kconfig, kcoreaddons, kcrash, kdbusaddons, kinit, kservice, qtbase,
+  gsettings-desktop-schemas, kconfig, kcoreaddons, kcrash, kdbusaddons, kinit,
+  kservice, qtbase,
 }:
 
 mkDerivation {
   name = "kded";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
-  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
   buildInputs = [
-    kconfig kcoreaddons kcrash kdbusaddons kinit kservice qtbase
+    gsettings-desktop-schemas kconfig kcoreaddons kcrash kdbusaddons kinit
+    kservice qtbase
   ];
   outputs = [ "out" "dev" ];
   setupHook = propagate "out";
+  dontWrapGApps = true;
+  preFixup = ''
+    qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kglobalaccel.nix b/pkgs/development/libraries/kde-frameworks/kglobalaccel.nix
index ca015151e0f..483ab16dcc3 100644
--- a/pkgs/development/libraries/kde-frameworks/kglobalaccel.nix
+++ b/pkgs/development/libraries/kde-frameworks/kglobalaccel.nix
@@ -1,16 +1,18 @@
 {
-  mkDerivation,
+  mkDerivation, lib,
   extra-cmake-modules,
   kconfig, kcoreaddons, kcrash, kdbusaddons, kservice, kwindowsystem,
-  qtbase, qttools, qtx11extras,
+  qtbase, qttools, qtx11extras, libXdmcp,
 }:
 
 mkDerivation {
   name = "kglobalaccel";
+  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     kconfig kcoreaddons kcrash kdbusaddons kservice kwindowsystem qttools
-    qtx11extras
+    qtx11extras libXdmcp
   ];
+  outputs = [ "out" "dev" ];
   propagatedBuildInputs = [ qtbase ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/kinit/0004-start_kdeinit-environ-hard-limit.patch b/pkgs/development/libraries/kde-frameworks/kinit/0004-start_kdeinit-environ-hard-limit.patch
index 34d4726150c..2996342dead 100644
--- a/pkgs/development/libraries/kde-frameworks/kinit/0004-start_kdeinit-environ-hard-limit.patch
+++ b/pkgs/development/libraries/kde-frameworks/kinit/0004-start_kdeinit-environ-hard-limit.patch
@@ -17,7 +17,7 @@ index f2db3e9..4ff2602 100644
                      if (read(0, &len, sizeof(unsigned)) == sizeof(unsigned)
 -                            && len && len < (1 << 12)) {
 +                            && len) {
-+                        if (len >= (1 << 14)) {
++                        if (len >= (1 << 20)) {
 +                            fprintf(stderr, "%s: exceeded environment length limit", argv[0]);
 +                            return 1;
 +                        }
diff --git a/pkgs/development/libraries/kde-frameworks/kwindowsystem/0001-platform-plugins-path.patch b/pkgs/development/libraries/kde-frameworks/kwindowsystem/0001-platform-plugins-path.patch
new file mode 100644
index 00000000000..609376e33e4
--- /dev/null
+++ b/pkgs/development/libraries/kde-frameworks/kwindowsystem/0001-platform-plugins-path.patch
@@ -0,0 +1,50 @@
+From 291f691400d4e85c57b57ec75482d2c6078ce26e Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Wed, 9 Dec 2020 10:01:59 -0600
+Subject: [PATCH] platform plugins path
+
+---
+ src/pluginwrapper.cpp | 27 +++++++++++++--------------
+ 1 file changed, 13 insertions(+), 14 deletions(-)
+
+diff --git a/src/pluginwrapper.cpp b/src/pluginwrapper.cpp
+index a255d83..9699b08 100644
+--- a/src/pluginwrapper.cpp
++++ b/src/pluginwrapper.cpp
+@@ -25,20 +25,19 @@ static QStringList pluginCandidates()
+ {
+     QStringList ret;
+     const auto paths = QCoreApplication::libraryPaths();
+-    for (const QString &path : paths) {
+-        static const QStringList searchFolders {
+-            QStringLiteral("/kf5/org.kde.kwindowsystem.platforms"),
+-            QStringLiteral("/kf5/kwindowsystem"),
+-        };
+-        for (const QString &searchFolder : searchFolders) {
+-            QDir pluginDir(path + searchFolder);
+-            if (!pluginDir.exists()) {
+-                continue;
+-            }
+-            const auto entries = pluginDir.entryList(QDir::Files | QDir::NoDotAndDotDot);
+-            for (const QString &entry : entries) {
+-                ret << pluginDir.absoluteFilePath(entry);
+-            }
++    const QString path = QStringLiteral(NIXPKGS_QT_PLUGIN_PATH);
++    static const QStringList searchFolders {
++        QStringLiteral("/kf5/org.kde.kwindowsystem.platforms"),
++        QStringLiteral("/kf5/kwindowsystem"),
++    };
++    for (const QString &searchFolder : searchFolders) {
++        QDir pluginDir(path + searchFolder);
++        if (!pluginDir.exists()) {
++            continue;
++        }
++        const auto entries = pluginDir.entryList(QDir::Files | QDir::NoDotAndDotDot);
++        for (const QString &entry : entries) {
++            ret << pluginDir.absoluteFilePath(entry);
+         }
+     }
+     return ret;
+-- 
+2.28.0
+
diff --git a/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix b/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix
index 1e77b63f7c9..ab93966c0ac 100644
--- a/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix
@@ -9,13 +9,13 @@ mkDerivation {
   name = "kwindowsystem";
   meta = {
     maintainers = [ lib.maintainers.ttuegel ];
-    broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
+    broken = lib.versionOlder qtbase.version "5.7.0";
   };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ libpthreadstubs libXdmcp qttools qtx11extras ];
   propagatedBuildInputs = [ qtbase ];
   patches = [
-    ./platform-plugins-path.patch
+    ./0001-platform-plugins-path.patch
   ];
   preConfigure = ''
     NIX_CFLAGS_COMPILE+=" -DNIXPKGS_QT_PLUGIN_PATH=\"''${!outputBin}/$qtPluginPrefix\""
diff --git a/pkgs/development/libraries/kde-frameworks/kwindowsystem/platform-plugins-path.patch b/pkgs/development/libraries/kde-frameworks/kwindowsystem/platform-plugins-path.patch
deleted file mode 100644
index 27501732210..00000000000
--- a/pkgs/development/libraries/kde-frameworks/kwindowsystem/platform-plugins-path.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Index: kwindowsystem-5.64.0/src/pluginwrapper.cpp
-===================================================================
---- kwindowsystem-5.64.0.orig/src/pluginwrapper.cpp
-+++ kwindowsystem-5.64.0/src/pluginwrapper.cpp
-@@ -37,16 +37,10 @@ Q_GLOBAL_STATIC(KWindowSystemPluginWrapp
- static QStringList pluginCandidates()
- {
-     QStringList ret;
--    const auto paths = QCoreApplication::libraryPaths();
--    for (const QString &path : paths) {
--        QDir pluginDir(path + QLatin1String("/kf5/org.kde.kwindowsystem.platforms"));
--        if (!pluginDir.exists()) {
--            continue;
--        }
--        const auto entries = pluginDir.entryList(QDir::Files | QDir::NoDotAndDotDot);
--        for (const QString &entry : entries) {
--            ret << pluginDir.absoluteFilePath(entry);
--        }
-+    QDir pluginDir(QLatin1String(NIXPKGS_QT_PLUGIN_PATH) + QLatin1Literal("/kf5/org.kde.kwindowsystem.platforms"));
-+    const auto entries = pluginDir.entryList(QDir::Files | QDir::NoDotAndDotDot);
-+    for (const QString &entry : entries) {
-+        ret << pluginDir.absoluteFilePath(entry);
-     }
-     return ret;
- }
diff --git a/pkgs/development/libraries/kde-frameworks/purpose.nix b/pkgs/development/libraries/kde-frameworks/purpose.nix
index 1484b2d0489..6f1527da778 100644
--- a/pkgs/development/libraries/kde-frameworks/purpose.nix
+++ b/pkgs/development/libraries/kde-frameworks/purpose.nix
@@ -1,6 +1,7 @@
 {
   mkDerivation, lib, extra-cmake-modules, qtbase
 , qtdeclarative, kconfig, kcoreaddons, ki18n, kio, kirigami2
+, fetchpatch
 }:
 
 mkDerivation {
@@ -8,7 +9,7 @@ mkDerivation {
   meta = { maintainers = [ lib.maintainers.bkchr ]; };
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
-    qtbase qtdeclarative kconfig kcoreaddons 
+    qtbase qtdeclarative kconfig kcoreaddons
     ki18n kio kirigami2
   ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/sonnet.nix b/pkgs/development/libraries/kde-frameworks/sonnet.nix
index cccd9251358..5659aaf6960 100644
--- a/pkgs/development/libraries/kde-frameworks/sonnet.nix
+++ b/pkgs/development/libraries/kde-frameworks/sonnet.nix
@@ -1,6 +1,6 @@
 { mkDerivation, lib
 , extra-cmake-modules
-, hunspell, qtbase, qttools
+, aspell, qtbase, qttools
 }:
 
 mkDerivation {
@@ -10,6 +10,6 @@ mkDerivation {
     broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ hunspell qttools ];
+  buildInputs = [ aspell qttools ];
   propagatedBuildInputs = [ qtbase ];
 }
diff --git a/pkgs/development/libraries/kde-frameworks/srcs.nix b/pkgs/development/libraries/kde-frameworks/srcs.nix
index 070b11f6bfb..dbc74b83112 100644
--- a/pkgs/development/libraries/kde-frameworks/srcs.nix
+++ b/pkgs/development/libraries/kde-frameworks/srcs.nix
@@ -1,670 +1,670 @@
 # DO NOT EDIT! This file is generated automatically.
-# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/kde-frameworks
+# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/kde-frameworks/
 { fetchurl, mirror }:
 
 {
   attica = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/attica-5.73.0.tar.xz";
-      sha256 = "011240a6ff59e2b39bcf6d4ba6128e6e60c6318c185e7316a71cfec28e69c69a";
-      name = "attica-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/attica-5.76.0.tar.xz";
+      sha256 = "64b262f61935653b91a83f4d1c659e7dcaf575b12aa955fe16d8392adb256e22";
+      name = "attica-5.76.0.tar.xz";
     };
   };
   baloo = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/baloo-5.73.0.tar.xz";
-      sha256 = "887077ae3e090d673d2ffe7eb869a0ab6f5d14e9dae2dccd619e4689699a2dfe";
-      name = "baloo-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/baloo-5.76.0.tar.xz";
+      sha256 = "8ae9e6dd51c84150f7fc581ebf04617f3ee9e1f96e08df79d6f15ee29f5f95f9";
+      name = "baloo-5.76.0.tar.xz";
     };
   };
   bluez-qt = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/bluez-qt-5.73.0.tar.xz";
-      sha256 = "70264edb82b2627c0ec3740374b90b8402e0f432fe4a10650fa3d22191d8cfd4";
-      name = "bluez-qt-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/bluez-qt-5.76.0.tar.xz";
+      sha256 = "a3f99a10e5f018bac91b4bd88be23a6ea9399aa1ab29d16840d5ee2c20537835";
+      name = "bluez-qt-5.76.0.tar.xz";
     };
   };
   breeze-icons = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/breeze-icons-5.73.0.tar.xz";
-      sha256 = "b6caff26f69008a3e0d53ae5fcfcf070b70ad1b17d407daecbbabeb6a606a08b";
-      name = "breeze-icons-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/breeze-icons-5.76.0.tar.xz";
+      sha256 = "d0211f0e6fa9137dbb42bcad1ac352bbfe793b6a3e6483adc2051b5c24a7851b";
+      name = "breeze-icons-5.76.0.tar.xz";
     };
   };
   extra-cmake-modules = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/extra-cmake-modules-5.73.0.tar.xz";
-      sha256 = "c5e3ef0253f7d5ab3adf9185950e34fd620a3d5baaf3bcc15892f971fc3274c4";
-      name = "extra-cmake-modules-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/extra-cmake-modules-5.76.0.tar.xz";
+      sha256 = "4845e9e0a43ba15158c0cfdc7ab594e7d02692fab9083201715270a096704a32";
+      name = "extra-cmake-modules-5.76.0.tar.xz";
     };
   };
   frameworkintegration = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/frameworkintegration-5.73.0.tar.xz";
-      sha256 = "21ef7f1a6d48f9fb14ccac9bc37e803c92cf83c9e235a5ca8bd7eb08fd0a6fb3";
-      name = "frameworkintegration-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/frameworkintegration-5.76.0.tar.xz";
+      sha256 = "7ac6c070190ab4c0c2ac15a921886ed7f3b70d6a0b7c41766d21a913e9f086fb";
+      name = "frameworkintegration-5.76.0.tar.xz";
     };
   };
   kactivities = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kactivities-5.73.0.tar.xz";
-      sha256 = "5098f2535175ac12da91568ca554e3f5d970ae05415da1a8ba17305cb8ac3a1a";
-      name = "kactivities-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kactivities-5.76.0.tar.xz";
+      sha256 = "efba13d0d720502bf8bee161b688ba21704f7c213c8b95da65b77b76c9cb3422";
+      name = "kactivities-5.76.0.tar.xz";
     };
   };
   kactivities-stats = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kactivities-stats-5.73.0.tar.xz";
-      sha256 = "df4b00c52e83608b2dd7345cd220143e07b65cb431cead5e9abb1e4ffd6ecd5a";
-      name = "kactivities-stats-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kactivities-stats-5.76.0.tar.xz";
+      sha256 = "85bb432a10a48af505a457c7ccacffad7914835f94042472083e878cabcd2c14";
+      name = "kactivities-stats-5.76.0.tar.xz";
     };
   };
   kapidox = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kapidox-5.73.0.tar.xz";
-      sha256 = "b49ff6673906817ed95a3de56535594de02a9f95bcb2726abe52d0c0e0161be5";
-      name = "kapidox-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kapidox-5.76.0.tar.xz";
+      sha256 = "8c6c9401059d34fa2d7f052e21387d803a1131a60fcd1305ddf5d5dfe22c6d97";
+      name = "kapidox-5.76.0.tar.xz";
     };
   };
   karchive = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/karchive-5.73.0.tar.xz";
-      sha256 = "25481ebbba8f58d9ab45bde804ab0d873c45550b482e27e7856b362cd9aa434f";
-      name = "karchive-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/karchive-5.76.0.tar.xz";
+      sha256 = "503d33b247ae24260c73aac2c48601eb4f8be3f10c9149549ea5dd2d22082a2a";
+      name = "karchive-5.76.0.tar.xz";
     };
   };
   kauth = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kauth-5.73.0.tar.xz";
-      sha256 = "e334705bfc3f81c5e2f66315d40badd26d88426128432788f790ebefce1694d9";
-      name = "kauth-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kauth-5.76.0.tar.xz";
+      sha256 = "c277a7ab750158a56381d8f74b8ebed5205b785eca2444c65cbf59d429958a89";
+      name = "kauth-5.76.0.tar.xz";
     };
   };
   kbookmarks = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kbookmarks-5.73.0.tar.xz";
-      sha256 = "b925ec1b8a1b4a2b7f2526fdbc7761de065b3c9573e41ac274773ed1b576aa51";
-      name = "kbookmarks-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kbookmarks-5.76.0.tar.xz";
+      sha256 = "ac5416f1ac21cb9e9fdf72a95de855a9891cea0ed7e1436a93c019b6c45af2af";
+      name = "kbookmarks-5.76.0.tar.xz";
     };
   };
   kcalendarcore = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kcalendarcore-5.73.0.tar.xz";
-      sha256 = "e3486b41b833c0ba72f839d8a61bdffaf9b3ece3da20f478c2981b3296e7b713";
-      name = "kcalendarcore-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kcalendarcore-5.76.0.tar.xz";
+      sha256 = "e6fd390b8ba2a899e7abda3de8d9ab7e5155fede6bbee9ca2b302b931a0232ae";
+      name = "kcalendarcore-5.76.0.tar.xz";
     };
   };
   kcmutils = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kcmutils-5.73.0.tar.xz";
-      sha256 = "b28bf672bbe21e8d1b4e6ea924c1bb318c81c43dcbb86bebb3f5775e18945ca9";
-      name = "kcmutils-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kcmutils-5.76.0.tar.xz";
+      sha256 = "0ea51ea9e46e6359c76fe099fd2cd03c20891a1cad26ea156ca921a9f0869009";
+      name = "kcmutils-5.76.0.tar.xz";
     };
   };
   kcodecs = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kcodecs-5.73.0.tar.xz";
-      sha256 = "3bcb22b4f3b2f164759ab912d117c3b4b50695ae38d524f2cfb79a29488cce67";
-      name = "kcodecs-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kcodecs-5.76.0.tar.xz";
+      sha256 = "b4e1fe3247fdaf80f4414716f6fbcd42e8de04f64c8dd50bd13e9e9a78abf6e1";
+      name = "kcodecs-5.76.0.tar.xz";
     };
   };
   kcompletion = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kcompletion-5.73.0.tar.xz";
-      sha256 = "72b0650e5ae9f30ad4ec30b55e660c826d93edfda0ef4f9436f226cbb8a9705a";
-      name = "kcompletion-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kcompletion-5.76.0.tar.xz";
+      sha256 = "014c56172040bf3aa27f81a6bb433914a5c22d2dfb1f8566be4cce678d09193a";
+      name = "kcompletion-5.76.0.tar.xz";
     };
   };
   kconfig = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kconfig-5.73.0.tar.xz";
-      sha256 = "6046bbb8da5f3261aac7f868bfa8a8ce1015a3a8257fe0b2d37dce9e2bc3952e";
-      name = "kconfig-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kconfig-5.76.0.tar.xz";
+      sha256 = "153d3ed114954594b0dcc00e1317483609649c064203e6eb8b110686dbaba686";
+      name = "kconfig-5.76.0.tar.xz";
     };
   };
   kconfigwidgets = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kconfigwidgets-5.73.0.tar.xz";
-      sha256 = "ed8a0a8158f895aebd46c4a725f77178d942cd9476a864a615a9df343da51f8e";
-      name = "kconfigwidgets-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kconfigwidgets-5.76.0.tar.xz";
+      sha256 = "f8eed399008a041df2da9cc3f2313df11376b94c85472900b39b9d6abcabe6d4";
+      name = "kconfigwidgets-5.76.0.tar.xz";
     };
   };
   kcontacts = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kcontacts-5.73.0.tar.xz";
-      sha256 = "4351bf80f5a5417ba7e99fe557a851d1c7173fd7511fc1426375c66692e748bb";
-      name = "kcontacts-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kcontacts-5.76.0.tar.xz";
+      sha256 = "4a9e3189b4ed1bc0231bf98cba134e78e5a692a14d202f0311f6e5c5190cfad5";
+      name = "kcontacts-5.76.0.tar.xz";
     };
   };
   kcoreaddons = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kcoreaddons-5.73.0.tar.xz";
-      sha256 = "24a7713eaef2f40e648a586e22b030192321f9fecdbae77013b00446fa0d6d51";
-      name = "kcoreaddons-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kcoreaddons-5.76.0.tar.xz";
+      sha256 = "fbab3e3e18f42922ecdc50138ed31f62007cafa902b959d89b1233b5557282d6";
+      name = "kcoreaddons-5.76.0.tar.xz";
     };
   };
   kcrash = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kcrash-5.73.0.tar.xz";
-      sha256 = "49b6f4d6109ddf3a6b93f833f59483e5a1a748e4b829c4739fdaaaef59c9b583";
-      name = "kcrash-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kcrash-5.76.0.tar.xz";
+      sha256 = "c4e32254b22f1f02db556be2ad40000cc52cac2e30a35682af3c75ac69710993";
+      name = "kcrash-5.76.0.tar.xz";
     };
   };
   kdav = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kdav-5.73.0.tar.xz";
-      sha256 = "03c8af96e7bb1b1d2d633e54c6362c7c2de078b8aba5654042b7a11d968efa31";
-      name = "kdav-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kdav-5.76.0.tar.xz";
+      sha256 = "c6b1d32d9c976585e278c2061091ee90ef2d7feb29642f236a3941cea5ffae72";
+      name = "kdav-5.76.0.tar.xz";
     };
   };
   kdbusaddons = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kdbusaddons-5.73.0.tar.xz";
-      sha256 = "f7f7e57b4d4650cf90a191b08b1fe874d0005c34163b9177dcc787415841e8ba";
-      name = "kdbusaddons-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kdbusaddons-5.76.0.tar.xz";
+      sha256 = "8e11b19e4a3d4ad8e4deda245eb51b7b77255cbacc07346e7074c8110b946e0a";
+      name = "kdbusaddons-5.76.0.tar.xz";
     };
   };
   kdeclarative = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kdeclarative-5.73.0.tar.xz";
-      sha256 = "713ae2ea41e1bac8f6d47cffa376d62c7805eb3e4cc41c3168c1f1b2ca70a598";
-      name = "kdeclarative-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kdeclarative-5.76.0.tar.xz";
+      sha256 = "3dfaa271a97be48e72d5fff0dd3c3c1995be3b9e7d0451b197b79418d76c4ce3";
+      name = "kdeclarative-5.76.0.tar.xz";
     };
   };
   kded = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kded-5.73.0.tar.xz";
-      sha256 = "f21647a5f35eebaa9bf12b5d5da25c24611c1971f94f27c510d22a48c79b0895";
-      name = "kded-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kded-5.76.0.tar.xz";
+      sha256 = "2e94a4737ffc359d3614a1dff15b9727d54cb5fe639828946e0efcdcdbff3516";
+      name = "kded-5.76.0.tar.xz";
     };
   };
   kdelibs4support = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/portingAids/kdelibs4support-5.73.0.tar.xz";
-      sha256 = "ca6f58c97b331d130a555b950c36cd7f625ca923fd185b0f73e20ac5b98c5d9b";
-      name = "kdelibs4support-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/portingAids/kdelibs4support-5.76.0.tar.xz";
+      sha256 = "b581273dfaebc5697eb7aa616d858119227dd6c5b781f216abdbff1d93076f0d";
+      name = "kdelibs4support-5.76.0.tar.xz";
     };
   };
   kdesignerplugin = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/portingAids/kdesignerplugin-5.73.0.tar.xz";
-      sha256 = "379db9fd0ec135706630dbd54e1b446e51dd3b64189754c281993d761c1d20b2";
-      name = "kdesignerplugin-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/portingAids/kdesignerplugin-5.76.0.tar.xz";
+      sha256 = "5f9190e00761330c031310b94e195766e639115675081765050ddc55069a1b71";
+      name = "kdesignerplugin-5.76.0.tar.xz";
     };
   };
   kdesu = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kdesu-5.73.0.tar.xz";
-      sha256 = "4dd07697decad6a544025178732bd279ef64766e1929a2135f6de58b1092944d";
-      name = "kdesu-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kdesu-5.76.0.tar.xz";
+      sha256 = "421ef43bd47c3eb6b05806af033276c19df20fd76a06b67fada529bb9c52e642";
+      name = "kdesu-5.76.0.tar.xz";
     };
   };
   kdewebkit = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/portingAids/kdewebkit-5.73.0.tar.xz";
-      sha256 = "d8208c4f7a98b6749c793649e2e5fbe3939e253289a9f6b74b559f6546b34b0b";
-      name = "kdewebkit-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/portingAids/kdewebkit-5.76.0.tar.xz";
+      sha256 = "cf7de765c5fcad0922a1bb9376b65cfb00eb3d29a0c4ed8ef43fc363abe906ba";
+      name = "kdewebkit-5.76.0.tar.xz";
     };
   };
   kdnssd = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kdnssd-5.73.0.tar.xz";
-      sha256 = "bee7f654f704d928b1219b75a289042474c1450e9f8acb02a905a4a177bc5b7d";
-      name = "kdnssd-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kdnssd-5.76.0.tar.xz";
+      sha256 = "9cc2979e56915b5c4d8f8e66053a41406bff46aefd65af1ab07d2b87d8f4a753";
+      name = "kdnssd-5.76.0.tar.xz";
     };
   };
   kdoctools = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kdoctools-5.73.0.tar.xz";
-      sha256 = "d8dd74776d47e009d4a204d69a78428603ca99317095d7b7edca49c3d93b1b5d";
-      name = "kdoctools-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kdoctools-5.76.0.tar.xz";
+      sha256 = "84ea7974d741e6261e8c269750367a00375c6111dbc542e917647d0267337ae4";
+      name = "kdoctools-5.76.0.tar.xz";
     };
   };
   kemoticons = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kemoticons-5.73.0.tar.xz";
-      sha256 = "0c0a26b029a8fd3d8db97bac931feb7834912aa2f7680660e98d91e868d10778";
-      name = "kemoticons-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kemoticons-5.76.0.tar.xz";
+      sha256 = "a50f69e62b342d6f058000ff1823569ab61d3310cb0020d848a78deaf20dff99";
+      name = "kemoticons-5.76.0.tar.xz";
     };
   };
   kfilemetadata = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kfilemetadata-5.73.0.tar.xz";
-      sha256 = "1ae217aab920741e445211e20b1b60dfcf80f4a6d1864aa63321dac7c3802894";
-      name = "kfilemetadata-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kfilemetadata-5.76.0.tar.xz";
+      sha256 = "fa24758c93ce3df9f8ced4310dc0bf58e129b08e50f254daafa025afc9213d68";
+      name = "kfilemetadata-5.76.0.tar.xz";
     };
   };
   kglobalaccel = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kglobalaccel-5.73.0.tar.xz";
-      sha256 = "0062db9adde4dab0be6b64430010c0a5653355d0d1680abc9ec8e71988ff871f";
-      name = "kglobalaccel-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kglobalaccel-5.76.0.tar.xz";
+      sha256 = "3a846f783ccb68da1f152fb5778612c4ed14cd79c6b5929ef729cf59e47462d4";
+      name = "kglobalaccel-5.76.0.tar.xz";
     };
   };
   kguiaddons = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kguiaddons-5.73.0.tar.xz";
-      sha256 = "45b4c5e0195abd79930635bbf20886b15b1b68b13fe4c56068579b91ef147350";
-      name = "kguiaddons-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kguiaddons-5.76.0.tar.xz";
+      sha256 = "bdaa2ed104bfa9c2ebd702f033935a83560e1d00c7302620a6ae52cb309c7125";
+      name = "kguiaddons-5.76.0.tar.xz";
     };
   };
   kholidays = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kholidays-5.73.0.tar.xz";
-      sha256 = "b0ae4b77aa7c183959bc18baa09a1a4f7208fcad2a238c1590377bf6cf8b68ab";
-      name = "kholidays-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kholidays-5.76.0.tar.xz";
+      sha256 = "2eeae5812b33b2527c27a137fee0d7ec66fe7164bd28afd0d2a8362f6114618b";
+      name = "kholidays-5.76.0.tar.xz";
     };
   };
   khtml = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/portingAids/khtml-5.73.0.tar.xz";
-      sha256 = "378a5aaa6c796d313a63b4cf1365cdd980f2bc21e9033354f2f1317d1db9c262";
-      name = "khtml-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/portingAids/khtml-5.76.0.tar.xz";
+      sha256 = "163139cf9ed9c43bba9532e64ae6376e8ced9b19ea8bb8235ff91c91c4c5a3f4";
+      name = "khtml-5.76.0.tar.xz";
     };
   };
   ki18n = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/ki18n-5.73.0.tar.xz";
-      sha256 = "97eef22d6cdd65c57edfe54fa9760a69005e15b7d8f4270f6185916c33e14689";
-      name = "ki18n-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/ki18n-5.76.0.tar.xz";
+      sha256 = "0e87bc1136e21f7860f15daa39e8d16e5a773995fce2b87b0cef0043c4ce0e7a";
+      name = "ki18n-5.76.0.tar.xz";
     };
   };
   kiconthemes = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kiconthemes-5.73.0.tar.xz";
-      sha256 = "4490109a0a42675e4cd3497433e10fd4be24ef644a283edf46b308314d130356";
-      name = "kiconthemes-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kiconthemes-5.76.0.tar.xz";
+      sha256 = "3b3c4ab8369061418677c840963cc868dcecc2a4e57f0c73448e16a46773c7d3";
+      name = "kiconthemes-5.76.0.tar.xz";
     };
   };
   kidletime = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kidletime-5.73.0.tar.xz";
-      sha256 = "52a8af3f061101c406a592ec277a2c84846e3910af1d3dbfc3e15beb9cfd24a2";
-      name = "kidletime-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kidletime-5.76.0.tar.xz";
+      sha256 = "0866fc98b5b045158742f03f5810909b24f1edf374a6014d476d67fe0466eb62";
+      name = "kidletime-5.76.0.tar.xz";
     };
   };
   kimageformats = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kimageformats-5.73.0.tar.xz";
-      sha256 = "473d0f67d5357bbf08aa4f4504ceaceabc720b1f5433b456ddc5f8ad0d7e3b8b";
-      name = "kimageformats-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kimageformats-5.76.0.tar.xz";
+      sha256 = "78ced2665f8918beb617b74962d188dcbb01a92a90ba49bfd173671bdb14e68d";
+      name = "kimageformats-5.76.0.tar.xz";
     };
   };
   kinit = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kinit-5.73.0.tar.xz";
-      sha256 = "0c61e90f3db83b4dc5f2438cf7880a02b600a5739cb05e5ee372aeff98b8b770";
-      name = "kinit-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kinit-5.76.0.tar.xz";
+      sha256 = "a5b63c10b4fc5efcbb5f92b7bce928b4a4880c0ad5d12ff12518106b09239546";
+      name = "kinit-5.76.0.tar.xz";
     };
   };
   kio = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kio-5.73.0.tar.xz";
-      sha256 = "05da159e6cf5ef9aa4dd7ede86ce28a5581624a1b3f0b4718c5b7e30c4aa2a66";
-      name = "kio-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kio-5.76.0.tar.xz";
+      sha256 = "9351fc85c4020f2f77012e077f4f9d04d8f233e9b67f9b7619c9bc064714145b";
+      name = "kio-5.76.0.tar.xz";
     };
   };
   kirigami2 = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kirigami2-5.73.0.tar.xz";
-      sha256 = "9b2a097071f77804f6f2f2a478e5db602c8b5fee00de34fc44842f31223401bb";
-      name = "kirigami2-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kirigami2-5.76.0.tar.xz";
+      sha256 = "90806125143807b74ee7f2fc74cd781d99b4e69ce5f15dcc28e1923f7a34a80a";
+      name = "kirigami2-5.76.0.tar.xz";
     };
   };
   kitemmodels = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kitemmodels-5.73.0.tar.xz";
-      sha256 = "6569e289ac9263d87ef6641fe2f3914b9ace6814832ac9c61825b1c6805ae371";
-      name = "kitemmodels-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kitemmodels-5.76.0.tar.xz";
+      sha256 = "53855ccdd1105aa792914f9c88f357039bf2394af8400beaaecd9729f70e9cb0";
+      name = "kitemmodels-5.76.0.tar.xz";
     };
   };
   kitemviews = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kitemviews-5.73.0.tar.xz";
-      sha256 = "ec29707d789bee58c47ee538319560a168642f69e96cacb78818825e47177727";
-      name = "kitemviews-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kitemviews-5.76.0.tar.xz";
+      sha256 = "b102cb67513d804fd7eed2ae20bb4ba679d38de4f236de6bc03709ff0c0bc001";
+      name = "kitemviews-5.76.0.tar.xz";
     };
   };
   kjobwidgets = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kjobwidgets-5.73.0.tar.xz";
-      sha256 = "61d105c8f17dcfb85ad6c1e3bd2423ebeb430b9c290d193229bc953ac174f2bf";
-      name = "kjobwidgets-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kjobwidgets-5.76.0.tar.xz";
+      sha256 = "850b6af6c027476e594e6ed77ea0e531abb69ff726fce41b91e541fbee3ecedf";
+      name = "kjobwidgets-5.76.0.tar.xz";
     };
   };
   kjs = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/portingAids/kjs-5.73.0.tar.xz";
-      sha256 = "97b52557212a33d59a4b3a8c34ea8a94cd5f840fb0798e770164d3cb1e755be5";
-      name = "kjs-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/portingAids/kjs-5.76.0.tar.xz";
+      sha256 = "829eb1308b9b07cdd07b34d80eb5e3fcf5225fa4816da19bce886add600bb62a";
+      name = "kjs-5.76.0.tar.xz";
     };
   };
   kjsembed = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/portingAids/kjsembed-5.73.0.tar.xz";
-      sha256 = "cc9896930c01a6bdbfaddada9516380c9a54e5d719836f1788d8e3a74108e1d3";
-      name = "kjsembed-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/portingAids/kjsembed-5.76.0.tar.xz";
+      sha256 = "d7fe11b69445afe372388c5ab310d38ab69e203f3995136a948c9bbf9b8b4a88";
+      name = "kjsembed-5.76.0.tar.xz";
     };
   };
   kmediaplayer = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/portingAids/kmediaplayer-5.73.0.tar.xz";
-      sha256 = "69aa3bbedfc8b9a0dd9f4ac260cded9d7b5894477bf4b5b09065d0aae8e44ab2";
-      name = "kmediaplayer-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/portingAids/kmediaplayer-5.76.0.tar.xz";
+      sha256 = "3185da877c2529c6e209cb382593bbb4778f80aee1b1a29b384b3f05ff99ed89";
+      name = "kmediaplayer-5.76.0.tar.xz";
     };
   };
   knewstuff = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/knewstuff-5.73.0.tar.xz";
-      sha256 = "7669e62973f7e228975a07f15bb1c7f716edd81ce82d5f578a80b1f501abda1e";
-      name = "knewstuff-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/knewstuff-5.76.0.tar.xz";
+      sha256 = "d6589b420204d1133997f33b598324c839ec6a0db96936e2e51b7b156cafbc6b";
+      name = "knewstuff-5.76.0.tar.xz";
     };
   };
   knotifications = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/knotifications-5.73.0.tar.xz";
-      sha256 = "c8e9f36716db33baca93a0386d3bb6426408eee3843eb5854bdd8ad7579f372c";
-      name = "knotifications-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/knotifications-5.76.0.tar.xz";
+      sha256 = "56a7daf4951b3564e244d8ba48d443e78c6d703d9d4ccc280c56d0c986de47a2";
+      name = "knotifications-5.76.0.tar.xz";
     };
   };
   knotifyconfig = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/knotifyconfig-5.73.0.tar.xz";
-      sha256 = "641a167a58856e99036d44b3e7472b44cdfbbf68e5d75b9af988d0b71dc10af4";
-      name = "knotifyconfig-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/knotifyconfig-5.76.0.tar.xz";
+      sha256 = "9f98834a9b8135a60a5d67e7ac45229a668a889d42a14c2ca5365885acd2370e";
+      name = "knotifyconfig-5.76.0.tar.xz";
     };
   };
   kpackage = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kpackage-5.73.0.tar.xz";
-      sha256 = "480b1e11733fe272d1a5680afea39bcc940f01bd3d1267be0981e3c92e098c4f";
-      name = "kpackage-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kpackage-5.76.0.tar.xz";
+      sha256 = "97791ef08ca18892d6aa6a50fa0a87ae72cad10de9f17e3fb503a370de829772";
+      name = "kpackage-5.76.0.tar.xz";
     };
   };
   kparts = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kparts-5.73.0.tar.xz";
-      sha256 = "5546d2a474c80a601ba013642775682b087d086bd26d0b0d025b68d680c98bf2";
-      name = "kparts-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kparts-5.76.0.tar.xz";
+      sha256 = "c516b5c1f2bca4a109dc2d186ef6729c1ad53a242877dfe942b84f131e93412d";
+      name = "kparts-5.76.0.tar.xz";
     };
   };
   kpeople = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kpeople-5.73.0.tar.xz";
-      sha256 = "9e0d3119c168f7843251c808cc149de15c1fd692062f431972023fdaa84d21c4";
-      name = "kpeople-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kpeople-5.76.0.tar.xz";
+      sha256 = "25c03e48a0951f2d17556912893f55750ffbc1333b07b9b42e2ff0bb571b6545";
+      name = "kpeople-5.76.0.tar.xz";
     };
   };
   kplotting = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kplotting-5.73.0.tar.xz";
-      sha256 = "b5055ed9a3149c059623d88875816e9fac8d6d25d29fdfd48e0d8a16dfe01b14";
-      name = "kplotting-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kplotting-5.76.0.tar.xz";
+      sha256 = "536e0eb7b35700ffe91fccce37386f9b97214cd9bd41bea7f2bb333a49d7ec9e";
+      name = "kplotting-5.76.0.tar.xz";
     };
   };
   kpty = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kpty-5.73.0.tar.xz";
-      sha256 = "d3bf99062589dbd1dbe302c8ed2528845f245e7f0f17ca865cdd100f7589ce9c";
-      name = "kpty-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kpty-5.76.0.tar.xz";
+      sha256 = "faa143bdceb02156ba2f989128376b97161c9799952a3517240816a42abe1ac7";
+      name = "kpty-5.76.0.tar.xz";
     };
   };
   kquickcharts = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kquickcharts-5.73.0.tar.xz";
-      sha256 = "e37e13a5d907d872679eab38ba8e983b2fb98a11e07a3c15d32cfaad09075cfe";
-      name = "kquickcharts-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kquickcharts-5.76.0.tar.xz";
+      sha256 = "65e79e0b4a8f1bca579931d0c0f8345c58f27319bf332e05a32ec930b8e519c2";
+      name = "kquickcharts-5.76.0.tar.xz";
     };
   };
   kross = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/portingAids/kross-5.73.0.tar.xz";
-      sha256 = "aa27b434da981f64c40985a61ee041417667844c6077c9fb52456635be67546e";
-      name = "kross-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/portingAids/kross-5.76.0.tar.xz";
+      sha256 = "15591f2a50f995bcaf17ef72662851c805d4644f13848387f056f686b77c5291";
+      name = "kross-5.76.0.tar.xz";
     };
   };
   krunner = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/krunner-5.73.0.tar.xz";
-      sha256 = "b4e8427083b6546327eeb36b05a7e438e58f922d4cc5ae0c24cd8241924e9e09";
-      name = "krunner-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/krunner-5.76.0.tar.xz";
+      sha256 = "08c8addcdd3dac87472e84bd14c6d02b99f98c5efbbda7802de92286105dcdda";
+      name = "krunner-5.76.0.tar.xz";
     };
   };
   kservice = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kservice-5.73.0.tar.xz";
-      sha256 = "a64bf7543870240f0d8f8c2bcf43759d98962ba94a4ed34bd23232df25bb408b";
-      name = "kservice-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kservice-5.76.0.tar.xz";
+      sha256 = "ef7715e5d3e0bf4fc2d28a7713913a1283fb9c658b3c3536a6db8da649d185bf";
+      name = "kservice-5.76.0.tar.xz";
     };
   };
   ktexteditor = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/ktexteditor-5.73.0.tar.xz";
-      sha256 = "032b3ac31aa099ed67471f78401d13cf318646b0b9b5e20bb94796ac3ed6cf18";
-      name = "ktexteditor-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/ktexteditor-5.76.0.tar.xz";
+      sha256 = "6f937b7af06562a238f091deef9c4332e94311a697af8466b7f091720eaab2b2";
+      name = "ktexteditor-5.76.0.tar.xz";
     };
   };
   ktextwidgets = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/ktextwidgets-5.73.0.tar.xz";
-      sha256 = "2a8b086fce8136b5b4af4a28b417343fb66148c1961e5d65bf40ccae2d4386e5";
-      name = "ktextwidgets-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/ktextwidgets-5.76.0.tar.xz";
+      sha256 = "a104e894cf21c245a6c22e6f2c38fdbbdb094cb7fde3d7ebff801bfd73af4c84";
+      name = "ktextwidgets-5.76.0.tar.xz";
     };
   };
   kunitconversion = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kunitconversion-5.73.0.tar.xz";
-      sha256 = "97d008e8bdb2d1f89d2093294a8be0b13b0e0160658fa7d3de6c99a5fd5e2935";
-      name = "kunitconversion-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kunitconversion-5.76.0.tar.xz";
+      sha256 = "31fa05b082ec3a42c831b840cbc086f97c5e49c05a71af29ab35b9727320990c";
+      name = "kunitconversion-5.76.0.tar.xz";
     };
   };
   kwallet = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kwallet-5.73.0.tar.xz";
-      sha256 = "4a9c8a538054fc51b30679d5180d09bb6d12a833f595a8d6875b6d4c29074de1";
-      name = "kwallet-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kwallet-5.76.0.tar.xz";
+      sha256 = "5addd560d3f650fbb43cd9c8c9e964c2d6893fa45ac53420b711f6bbb4e7a4fc";
+      name = "kwallet-5.76.0.tar.xz";
     };
   };
   kwayland = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kwayland-5.73.0.tar.xz";
-      sha256 = "ee34a490a7bbc5e83eb36a6ac70492a76cb054d3077d0a8db216fd8b07f27bfe";
-      name = "kwayland-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kwayland-5.76.0.tar.xz";
+      sha256 = "eee72a5f57a2f5c6ab5f1717aa3eb5a9089240794a5e40c6d85bdc37fa3027a7";
+      name = "kwayland-5.76.0.tar.xz";
     };
   };
   kwidgetsaddons = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kwidgetsaddons-5.73.0.tar.xz";
-      sha256 = "0722d853747b85ca7d46f278dc99c28b872185406b97b811523c1aa9b5e75eb6";
-      name = "kwidgetsaddons-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kwidgetsaddons-5.76.0.tar.xz";
+      sha256 = "ab7aa94bb1f63e5bea5cf461349c1add96fd608a73c5b7c9d374e6bf035fcac6";
+      name = "kwidgetsaddons-5.76.0.tar.xz";
     };
   };
   kwindowsystem = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kwindowsystem-5.73.0.tar.xz";
-      sha256 = "0e27ad2cd5e4699efdc02daec181b4ffb0b9e31ec4c96f0f67899804aebbcde8";
-      name = "kwindowsystem-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kwindowsystem-5.76.0.tar.xz";
+      sha256 = "8dced74012bed3f33c3c51874aa9c3a57093573c1c0e263b758cefa96c26f7b7";
+      name = "kwindowsystem-5.76.0.tar.xz";
     };
   };
   kxmlgui = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/kxmlgui-5.73.0.tar.xz";
-      sha256 = "093131f5f51497ec61e99bd3e19de9421643d3f6ddf0099a823a3d624596ebcb";
-      name = "kxmlgui-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/kxmlgui-5.76.0.tar.xz";
+      sha256 = "73ae838fb79f97243bea36d438e9bc45315183bbb6b08ab5173c822cfcb4dd82";
+      name = "kxmlgui-5.76.0.tar.xz";
     };
   };
   kxmlrpcclient = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/portingAids/kxmlrpcclient-5.73.0.tar.xz";
-      sha256 = "c0d089c389f59bb7cb6fba629f3e122e70fda19a69f419ff8bd1d9fcee95a047";
-      name = "kxmlrpcclient-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/portingAids/kxmlrpcclient-5.76.0.tar.xz";
+      sha256 = "66fe826a81cd266ee57ba814cb8c7adfa00aa9112cb55714db061a82895ee8de";
+      name = "kxmlrpcclient-5.76.0.tar.xz";
     };
   };
   modemmanager-qt = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/modemmanager-qt-5.73.0.tar.xz";
-      sha256 = "87f3864b2b53b4e309bca1feefa613455f60e4699969a569694f6813447e1fcd";
-      name = "modemmanager-qt-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/modemmanager-qt-5.76.0.tar.xz";
+      sha256 = "5782b71f60b825244dc017989a4de515eb9eb5cc4edfe494a14ea62d3ac40cd1";
+      name = "modemmanager-qt-5.76.0.tar.xz";
     };
   };
   networkmanager-qt = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/networkmanager-qt-5.73.0.tar.xz";
-      sha256 = "b909feafc0a9a18b59744e0f1973c5357f67bbd50b59afa82cf55955dae7d41f";
-      name = "networkmanager-qt-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/networkmanager-qt-5.76.0.tar.xz";
+      sha256 = "5920862a843898ed169cc61a8f27dd87cb64dd505ec300d95ab8967da89f2f90";
+      name = "networkmanager-qt-5.76.0.tar.xz";
     };
   };
   oxygen-icons5 = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/oxygen-icons5-5.73.0.tar.xz";
-      sha256 = "662cd9644e393c69dccb538cdd4280253be812f80704c992ada228c0c32c2bbc";
-      name = "oxygen-icons5-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/oxygen-icons5-5.76.0.tar.xz";
+      sha256 = "95ca95bada43281d09cce000c9cd645af67592205c971052b3e0c27aef9c95b1";
+      name = "oxygen-icons5-5.76.0.tar.xz";
     };
   };
   plasma-framework = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/plasma-framework-5.73.0.tar.xz";
-      sha256 = "e5415143f0a08cd75cf758b0692021d2a2febdcb1364e2aa1e5c8fbeee148c93";
-      name = "plasma-framework-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/plasma-framework-5.76.0.tar.xz";
+      sha256 = "5bea341bc7b22ffa6a78bf7475c25b138150314c96b3d5154d8bccc532be242a";
+      name = "plasma-framework-5.76.0.tar.xz";
     };
   };
   prison = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/prison-5.73.0.tar.xz";
-      sha256 = "a2b135ffdf1af240366f3fb077c02c02094fb1706c6e84fab5186802544a5b87";
-      name = "prison-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/prison-5.76.0.tar.xz";
+      sha256 = "6c369efc354f8f3a0e08b0de565fd523f1480d563bec0d19382e9ab01f3efb78";
+      name = "prison-5.76.0.tar.xz";
     };
   };
   purpose = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/purpose-5.73.0.tar.xz";
-      sha256 = "6f4d440cb708b636430e3206f879ca5c2e6cdfcf62f92ce173d43e291fbeed32";
-      name = "purpose-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/purpose-5.76.0.tar.xz";
+      sha256 = "fd0edb0e7ba8b5336436848fe2452ff98c1b5bf2c49ea7744a8c0038d4e8887d";
+      name = "purpose-5.76.0.tar.xz";
     };
   };
   qqc2-desktop-style = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/qqc2-desktop-style-5.73.0.tar.xz";
-      sha256 = "290b3637be0c3740e92cdbb1421aef8bf1a8df36218f9d7d120e8422d14c3fdd";
-      name = "qqc2-desktop-style-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/qqc2-desktop-style-5.76.0.tar.xz";
+      sha256 = "76d2f85f6f99157aec26e6797889f1b99035a337e8aa12029c222f3d48288ef3";
+      name = "qqc2-desktop-style-5.76.0.tar.xz";
     };
   };
   solid = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/solid-5.73.0.tar.xz";
-      sha256 = "7366b64438a1ca7a42126e67d352e371227b46418ce961321d358f2eb90c0933";
-      name = "solid-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/solid-5.76.0.tar.xz";
+      sha256 = "7958d047c8bd7622f91541acbe2d554c222218419ee18f395059a09fb90d264d";
+      name = "solid-5.76.0.tar.xz";
     };
   };
   sonnet = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/sonnet-5.73.0.tar.xz";
-      sha256 = "009f76fc4317e407d30c4e162a807d620a95217f5db271a14b1f9fc4339d232c";
-      name = "sonnet-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/sonnet-5.76.0.tar.xz";
+      sha256 = "cb6bacae27cfa3f8b3ce300b18efe16730783f143c4a7fccfa634f528262ef9b";
+      name = "sonnet-5.76.0.tar.xz";
     };
   };
   syndication = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/syndication-5.73.0.tar.xz";
-      sha256 = "2a65972ef5183edb0bd8b3804dae129ae8f4a4469287711e77fc636e90b8a954";
-      name = "syndication-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/syndication-5.76.0.tar.xz";
+      sha256 = "239ec30ff8f7ad2911ecc6b9b9c32f2b44c6cad634900105936ae56bf96d6292";
+      name = "syndication-5.76.0.tar.xz";
     };
   };
   syntax-highlighting = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/syntax-highlighting-5.73.0.tar.xz";
-      sha256 = "51ed4a68ba42d0dc88d91a0c11ac55ada199b7e93b0ff74b80b5e9304fe8901b";
-      name = "syntax-highlighting-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/syntax-highlighting-5.76.0.tar.xz";
+      sha256 = "3cb61a8c478b76f797db53ed9e8a16c6e70bb1c564f05938680db81c3062bab3";
+      name = "syntax-highlighting-5.76.0.tar.xz";
     };
   };
   threadweaver = {
-    version = "5.73.0";
+    version = "5.76.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.73/threadweaver-5.73.0.tar.xz";
-      sha256 = "7e1152a1cf73f841c3be5d73cb0d5e6e29ec700be859c94275c5c00e49488d38";
-      name = "threadweaver-5.73.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.76/threadweaver-5.76.0.tar.xz";
+      sha256 = "8bc0cc4507b4cd7398e18cce8519b4a65b0367e7d22c4faae034a57346297039";
+      name = "threadweaver-5.76.0.tar.xz";
     };
   };
 }
diff --git a/pkgs/development/libraries/kquickimageedit/default.nix b/pkgs/development/libraries/kquickimageedit/default.nix
new file mode 100644
index 00000000000..f7cac0c0372
--- /dev/null
+++ b/pkgs/development/libraries/kquickimageedit/default.nix
@@ -0,0 +1,19 @@
+{ mkDerivation
+, fetchFromGitLab
+, extra-cmake-modules
+}:
+
+mkDerivation rec {
+  pname = "kquickimageeditor";
+  version = "0.1.2";
+
+  src = fetchFromGitLab {
+    domain = "invent.kde.org";
+    owner = "libraries";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-4X3GO/NPzA3c9KiGIkznLHUjLfNNNnPXif7IFwY5dOM=";
+  };
+
+  nativeBuildInputs = [ extra-cmake-modules ];
+}
diff --git a/pkgs/development/libraries/lcms/default.nix b/pkgs/development/libraries/lcms/default.nix
index 01ec659a95b..8fe2484faca 100644
--- a/pkgs/development/libraries/lcms/default.nix
+++ b/pkgs/development/libraries/lcms/default.nix
@@ -1,10 +1,11 @@
 {stdenv, fetchurl}:
 
-stdenv.mkDerivation {
-  name = "lcms-1.19";
+stdenv.mkDerivation rec {
+  pname = "lcms";
+  version = "1.19";
 
   src = fetchurl {
-    url = "http://www.littlecms.com/lcms-1.19.tar.gz";
+    url = "mirror://sourceforge/lcms/${pname}-${version}.tar.gz";
     sha256 = "1abkf8iphwyfs3z305z3qczm3z1i9idc1lz4gvfg92jnkz5k5bl0";
   };
 
diff --git a/pkgs/development/libraries/lensfun/default.nix b/pkgs/development/libraries/lensfun/default.nix
index 830facc5672..addcb5b5a4f 100644
--- a/pkgs/development/libraries/lensfun/default.nix
+++ b/pkgs/development/libraries/lensfun/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     platforms = platforms.linux ++ platforms.darwin;
-    maintainers = with maintainers; [ enzime ];
+    maintainers = with maintainers; [ ];
     license = stdenv.lib.licenses.lgpl3;
     description = "An opensource database of photographic lenses and their characteristics";
     homepage = "http://lensfun.sourceforge.net/";
diff --git a/pkgs/development/libraries/libAfterImage/default.nix b/pkgs/development/libraries/libAfterImage/default.nix
new file mode 100644
index 00000000000..8936603d18b
--- /dev/null
+++ b/pkgs/development/libraries/libAfterImage/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, zlib }:
+
+stdenv.mkDerivation {
+  pname = "libAfterImage";
+  version = "1.20";
+
+  src = fetchurl {
+    name = "libAfterImage-1.20.tar.bz2";
+    urls = [
+      "https://sourceforge.net/projects/afterstep/files/libAfterImage/1.20/libAfterImage-1.20.tar.bz2/download"
+      "ftp://ftp.afterstep.org/stable/libAfterImage/libAfterImage-1.20.tar.bz2"
+    ];
+    sha256 = "0n74rxidwig3yhr6fzxsk7y19n1nq1f296lzrvgj5pfiyi9k48vf";
+  };
+
+  buildInputs = [ zlib ];
+
+  meta = with stdenv.lib; {
+    homepage = "http://www.afterstep.org/afterimage/";
+    description = "A generic image manipulation library";
+    platforms = platforms.unix;
+    maintainers = [ maintainers.veprbl ];
+    license = licenses.lgpl21;
+  };
+}
diff --git a/pkgs/development/libraries/libabigail/default.nix b/pkgs/development/libraries/libabigail/default.nix
index 168ce0c9e57..54dbb349eb6 100644
--- a/pkgs/development/libraries/libabigail/default.nix
+++ b/pkgs/development/libraries/libabigail/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libabigail";
-  version = "1.7";
+  version = "1.8";
 
   outputs = [ "bin" "out" "dev" ];
 
   src = fetchurl {
     url = "https://mirrors.kernel.org/sourceware/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "0bf8w01l6wm7mm4clfg5rqi30m1ws11qqa4bp2vxghfwgi9ai8i7";
+    sha256 = "0p363mkgypcklgf8iylxpbdnfgqc086a6fv7n9hzrjjci45jdgqw";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libbacktrace/default.nix b/pkgs/development/libraries/libbacktrace/default.nix
index 0032941f870..ea7f4eb9fa8 100644
--- a/pkgs/development/libraries/libbacktrace/default.nix
+++ b/pkgs/development/libraries/libbacktrace/default.nix
@@ -1,4 +1,7 @@
-{ stdenv, callPackage, fetchFromGitHub, enableStatic ? false, enableShared ? true }:
+{ stdenv, callPackage, fetchFromGitHub
+, enableStatic ? stdenv.hostPlatform.isStatic
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
 let
   yesno = b: if b then "yes" else "no";
 in stdenv.mkDerivation rec {
diff --git a/pkgs/development/libraries/libbfd/default.nix b/pkgs/development/libraries/libbfd/default.nix
index e622cc6be68..75db780b7bb 100644
--- a/pkgs/development/libraries/libbfd/default.nix
+++ b/pkgs/development/libraries/libbfd/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
   outputs = [ "out" "dev" ];
 
   patches = binutils-unwrapped.patches ++ [
-    (binutils-unwrapped.patchesDir + "/build-components-separately.patch")
+    ../../tools/misc/binutils/build-components-separately.patch
     (fetchpatch {
       url = "https://raw.githubusercontent.com/mxe/mxe/e1d4c144ee1994f70f86cf7fd8168fe69bd629c6/src/bfd-1-disable-subdir-doc.patch";
       sha256 = "0pzb3i74d1r7lhjan376h59a7kirw15j7swwm8pz3zy9lkdqkj6q";
diff --git a/pkgs/development/libraries/libcryptui/default.nix b/pkgs/development/libraries/libcryptui/default.nix
index 829d16e59d0..df1558a1e49 100644
--- a/pkgs/development/libraries/libcryptui/default.nix
+++ b/pkgs/development/libraries/libcryptui/default.nix
@@ -17,6 +17,8 @@ stdenv.mkDerivation rec {
   buildInputs = [ glib gtk3 gnupg22 gpgme dbus-glib libgnome-keyring ];
   propagatedBuildInputs = [ dbus-glib ];
 
+  enableParallelBuilding = true;
+
   passthru = {
     updateScript = gnome3.updateScript {
       packageName = pname;
diff --git a/pkgs/development/libraries/libctemplate/default.nix b/pkgs/development/libraries/libctemplate/default.nix
index 35707834c08..b571e816fc4 100644
--- a/pkgs/development/libraries/libctemplate/default.nix
+++ b/pkgs/development/libraries/libctemplate/default.nix
@@ -1,21 +1,26 @@
-{ stdenv, fetchurl, python2 }:
+{ stdenv, fetchFromGitHub, python3, autoconf, automake, libtool }:
 
 stdenv.mkDerivation rec {
   pname = "ctemplate";
+  version = "2.4";
 
-  version = "2.3";
-
-  src = fetchurl {
-    url = "https://github.com/OlafvdSpek/ctemplate/archive/ctemplate-${version}.tar.gz";
-    sha256 = "0mi5g2xlws10z1g4x0cj6kd1r673kkav35pgzyqxa1w47xnwprcr";
+  src = fetchFromGitHub {
+    owner = "OlafvdSpek";
+    repo = "ctemplate";
+    rev = "ctemplate-${version}";
+    sha256 = "1x0p5yym6vvcx70pm8ihnbxxrl2wnblfp72ih5vjyg8mzkc8cxrr";
   };
 
-  buildInputs = [ python2 ];
+  nativeBuildInputs = [ python3 autoconf automake libtool ];
 
   postPatch = ''
     patchShebangs .
   '';
 
+  preConfigure = ''
+    ./autogen.sh
+  '';
+
   meta = {
     description = "A simple but powerful template language for C++";
     longDescription = ''
diff --git a/pkgs/development/libraries/libdatrie/default.nix b/pkgs/development/libraries/libdatrie/default.nix
index 0d3faf69e3b..168773662f6 100644
--- a/pkgs/development/libraries/libdatrie/default.nix
+++ b/pkgs/development/libraries/libdatrie/default.nix
@@ -1,23 +1,40 @@
-{ stdenv, fetchurl, makeWrapper, installShellFiles, pkg-config, libiconv }:
+{ stdenv, fetchFromGitHub, makeWrapper
+, autoreconfHook, autoconf-archive
+, installShellFiles, libiconv }:
 
 stdenv.mkDerivation rec {
+
   pname = "libdatrie";
-  version = "0.2.12";
+  version = "2019-12-20";
 
-  src = fetchurl {
-    url = "https://github.com/tlwg/libdatrie/releases/download/v${version}/libdatrie-${version}.tar.xz";
-    sha256 = "0jdi01pcxv0b24zbjy7zahawsqqqw4mv94f2yy01zh4n796wqba5";
+  src = fetchFromGitHub {
+    owner = "tlwg";
+    repo = "libdatrie";
+    rev = "d1db08ac1c76f54ba23d63665437473788c999f3";
+    sha256 = "03dc363259iyiidrgadzc7i03mmfdj8h78j82vk6z53w6fxq5zxc";
   };
 
-  nativeBuildInputs = [ installShellFiles pkg-config ];
+  nativeBuildInputs = [
+    autoreconfHook
+    autoconf-archive
+    installShellFiles
+  ];
 
   buildInputs = stdenv.lib.optional stdenv.isDarwin libiconv;
 
+  preAutoreconf = let
+    reports = "https://github.com/tlwg/libdatrie/issues";
+  in
+  ''
+    sed -i -e "/AC_INIT/,+3d" configure.ac
+    sed -i "5iAC_INIT(${pname},${version},[${reports}])" configure.ac
+  '';
+
   postInstall = ''
     installManPage man/trietool.1
   '';
 
-  meta = with stdenv.lib;{
+  meta = with stdenv.lib; {
     homepage = "https://linux.thai.net/~thep/datrie/datrie.html";
     description = "This is an implementation of double-array structure for representing trie";
     license = licenses.lgpl21Plus;
diff --git a/pkgs/development/libraries/libev/default.nix b/pkgs/development/libraries/libev/default.nix
index 1ea0615dc23..9f950ebb09c 100644
--- a/pkgs/development/libraries/libev/default.nix
+++ b/pkgs/development/libraries/libev/default.nix
@@ -1,4 +1,7 @@
-{ stdenv, fetchurl, static ? false }:
+{ stdenv, fetchurl
+, # Note: -static hasn’t work on darwin
+  static ? with stdenv.hostPlatform; isStatic && !isDarwin
+}:
 
 # Note: this package is used for bootstrapping fetchurl, and thus
 # cannot use fetchpatch! All mutable patches (generated by GitHub or
diff --git a/pkgs/development/libraries/libexecinfo/default.nix b/pkgs/development/libraries/libexecinfo/default.nix
index 9c649c223c1..feee754590b 100644
--- a/pkgs/development/libraries/libexecinfo/default.nix
+++ b/pkgs/development/libraries/libexecinfo/default.nix
@@ -1,4 +1,7 @@
-{ stdenv, fetchurl, fetchpatch, enableStatic ? true, enableShared ? true }:
+{ stdenv, fetchurl, fetchpatch
+, enableStatic ? true
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
 
 stdenv.mkDerivation rec {
   pname = "libexecinfo";
diff --git a/pkgs/development/libraries/libfprint/default.nix b/pkgs/development/libraries/libfprint/default.nix
index 469633afb10..4984d95ffa4 100644
--- a/pkgs/development/libraries/libfprint/default.nix
+++ b/pkgs/development/libraries/libfprint/default.nix
@@ -16,7 +16,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libfprint";
-  version = "1.90.4";
+  version = "1.90.5";
   outputs = [ "out" "devdoc" ];
 
   src = fetchFromGitLab {
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     owner = "libfprint";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0grhck0h29i7hm7npvby7pn7wdc446kv0r4mkpbssp46lqbjb96b";
+    sha256 = "1wfwka2ik4hbb5wk5dp533040sqygwswg91c3v5fvpmmixh5qx9j";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libgcrypt/default.nix b/pkgs/development/libraries/libgcrypt/default.nix
index 2290d2fa07d..cd529cb06ee 100644
--- a/pkgs/development/libraries/libgcrypt/default.nix
+++ b/pkgs/development/libraries/libgcrypt/default.nix
@@ -34,6 +34,11 @@ stdenv.mkDerivation rec {
   # aarch64
   configurePlatforms = [ "host" "build" ];
 
+  postConfigure = ''
+    sed -i configure \
+        -e 's/NOEXECSTACK_FLAGS=$/NOEXECSTACK_FLAGS="-Wa,--noexecstack"/'
+  '';
+
   # Make sure libraries are correct for .pc and .la files
   # Also make sure includes are fixed for callers who don't use libgpgcrypt-config
   postFixup = ''
diff --git a/pkgs/development/libraries/libiberty/default.nix b/pkgs/development/libraries/libiberty/default.nix
index ff26c1029ef..c7babb3038d 100644
--- a/pkgs/development/libraries/libiberty/default.nix
+++ b/pkgs/development/libraries/libiberty/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, buildPackages, staticBuild ? false }:
+{ stdenv, buildPackages
+, staticBuild ? stdenv.hostPlatform.isStatic
+}:
 
 let inherit (buildPackages.buildPackages) gcc; in
 
diff --git a/pkgs/development/libraries/libiconv/default.nix b/pkgs/development/libraries/libiconv/default.nix
index 87969d6b2c7..35d01cd3e82 100644
--- a/pkgs/development/libraries/libiconv/default.nix
+++ b/pkgs/development/libraries/libiconv/default.nix
@@ -1,6 +1,6 @@
 { fetchurl, stdenv, lib
-, enableStatic ? stdenv.hostPlatform.useAndroidPrebuilt
-, enableShared ? !stdenv.hostPlatform.useAndroidPrebuilt
+, enableStatic ? stdenv.hostPlatform.isStatic
+, enableShared ? !stdenv.hostPlatform.isStatic
 }:
 
 # assert !stdenv.hostPlatform.isLinux || stdenv.hostPlatform != stdenv.buildPlatform; # TODO: improve on cross
diff --git a/pkgs/development/libraries/libinsane/default.nix b/pkgs/development/libraries/libinsane/default.nix
index 075d5761036..51ce6808f5d 100644
--- a/pkgs/development/libraries/libinsane/default.nix
+++ b/pkgs/development/libraries/libinsane/default.nix
@@ -17,7 +17,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libinsane";
-  version = "1.0.8";
+  version = "1.0.9";
 
   outputs = [ "out" "dev" "devdoc" ];
 
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     group = "World";
     owner = "OpenPaperwork";
     rev = version;
-    sha256 = "0mcvqpixilzs4d4afkbxa1nqm6ddmhpaz5j56pfvc5wpv6s99h44";
+    sha256 = "1a1lszhq3j11i1jybc5kmn7hhhji44xhjqsxsldsy9l3344rkzv4";
   };
 
   nativeBuildInputs = [ meson pkg-config ninja doxygen gtk-doc docbook_xsl gobject-introspection vala ];
diff --git a/pkgs/development/libraries/libjpeg-turbo/default.nix b/pkgs/development/libraries/libjpeg-turbo/default.nix
index 6aa4e049e4c..c4e81d034fc 100644
--- a/pkgs/development/libraries/libjpeg-turbo/default.nix
+++ b/pkgs/development/libraries/libjpeg-turbo/default.nix
@@ -1,4 +1,7 @@
-{ stdenv, fetchFromGitHub, cmake, nasm, enableStatic ? false, enableShared ? true }:
+{ stdenv, fetchFromGitHub, cmake, nasm
+, enableStatic ? stdenv.hostPlatform.isStatic
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
 
 stdenv.mkDerivation rec {
 
diff --git a/pkgs/development/libraries/liblangtag/default.nix b/pkgs/development/libraries/liblangtag/default.nix
index 1c5c39ac898..b724789188c 100644
--- a/pkgs/development/libraries/liblangtag/default.nix
+++ b/pkgs/development/libraries/liblangtag/default.nix
@@ -1,22 +1,22 @@
-{stdenv, fetchurl, fetchFromBitbucket, autoreconfHook, gtk-doc, gettext
+{ stdenv, fetchurl, fetchFromBitbucket, autoreconfHook, gtk-doc, gettext
 , pkgconfig, glib, libxml2, gobject-introspection, gnome-common, unzip
 }:
 
 stdenv.mkDerivation rec {
   pname = "liblangtag";
-  version = "0.6.1";
+  version = "0.6.3";
 
   src = fetchFromBitbucket {
     owner = "tagoh";
     repo = pname;
     rev = version;
-    sha256 = "19dk2qsg7f3ig9xz8d73jvikmf5kvrwi008wrz2psxinbdml442g";
+    sha256 = "10rycs8xrxzf9frzalv3qx8cs1jcildhrr4imzxdmr9f4l585z96";
   };
 
   core_zip = fetchurl {
     # please update if an update is available
-    url = "http://www.unicode.org/Public/cldr/33.1/core.zip";
-    sha256 = "0f195aald02ng3ch2q1wf59b5lwp2bi1cd8ia7572pbyy2w8w8cp";
+    url = "http://www.unicode.org/Public/cldr/37/core.zip";
+    sha256 = "0myswkvvaxvrz9zwq4zh65sygfd9n72cd5rk4pwacqba4nxgb4xs";
   };
 
   language_subtag_registry = fetchurl {
diff --git a/pkgs/development/libraries/liblinphone/default.nix b/pkgs/development/libraries/liblinphone/default.nix
index 21f9833a5d5..7d7f035f77f 100644
--- a/pkgs/development/libraries/liblinphone/default.nix
+++ b/pkgs/development/libraries/liblinphone/default.nix
@@ -126,7 +126,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     homepage = "https://www.linphone.org/technical-corner/liblinphone";
     description = "Library for SIP calls and instant messaging";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ jluttine ];
   };
diff --git a/pkgs/development/libraries/libmd/default.nix b/pkgs/development/libraries/libmd/default.nix
index a38e71bb540..e3dd0b206f1 100644
--- a/pkgs/development/libraries/libmd/default.nix
+++ b/pkgs/development/libraries/libmd/default.nix
@@ -2,23 +2,19 @@
 
 stdenv.mkDerivation rec {
   pname = "libmd";
-  version = "1.0.1";
+  version = "1.0.3";
 
   src = fetchurl {
     url = "https://archive.hadrons.org/software/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0waclg2d5qin3r26gy5jvy4584ik60njc8pqbzwk0lzq3j9ynkp1";
+    sha256 = "0jmga8y94h857ilra3qjaiax3wd5pd6mx1h120zhl9fcjmzhj0js";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
 
-  # Writing the version to a .dist-version file is required for the get-version
-  # shell script because fetchgit removes the .git directory.
-  prePatch = ''
-    echo '${version}' > .dist-version;
-  '';
-
   meta = with stdenv.lib; {
     homepage = "https://www.hadrons.org/software/${pname}/";
+    changelog = "https://archive.hadrons.org/software/libmd/libmd-${version}.announce";
+    # Git: https://git.hadrons.org/cgit/libmd.git
     description = "Message Digest functions from BSD systems";
     license = with licenses; [ bsd3 bsd2 isc beerware publicDomain ];
     maintainers = with maintainers; [ primeos ];
diff --git a/pkgs/development/libraries/libmesode/default.nix b/pkgs/development/libraries/libmesode/default.nix
index 90016b09c73..54ff0dccb90 100644
--- a/pkgs/development/libraries/libmesode/default.nix
+++ b/pkgs/development/libraries/libmesode/default.nix
@@ -1,32 +1,32 @@
-{ stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, libtool, openssl, expat, pkgconfig, check }:
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+, libtool
+, openssl
+, expat
+, pkg-config
+, check
+}:
 
 stdenv.mkDerivation rec {
   pname = "libmesode";
-  version = "0.9.3";
+  version = "0.10.1";
 
   src = fetchFromGitHub {
-    owner = "boothj5";
+    owner = "profanity-im";
     repo = "libmesode";
     rev = version;
-    sha256 = "0xzfg1xx88cn36352nnjlb1p7xyw32yqkhjzq10px88iaaqz1vv0";
+    sha256 = "1bxnkhrypgv41qyy1n545kcggmlw1hvxnhwihijhhcf2pxd2s654";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "fix-ssl-certificate-verification.diff";
-      url = "https://github.com/profanity-im/libmesode/commit/532ed1e9d3e71e5bea0752e03dbacd4139d750d1.diff";
-      sha256 = "140jp7xzskik0sb6aqjsw7z477a124cxl7dkm80m2nyzjng4pzg5";
-    })
-  ];
-
-  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
   buildInputs = [ openssl expat libtool check ];
 
   dontDisableStatic = true;
 
   doCheck = true;
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Fork of libstrophe (https://github.com/strophe/libstrophe) for use with Profanity XMPP Client";
     longDescription = ''
       Reasons for forking:
@@ -39,9 +39,10 @@ stdenv.mkDerivation rec {
       Whilst Profanity will run against libstrophe, libmesode provides extra
       TLS functionality such as manual SSL certificate verification.
     '';
-    homepage = "https://github.com/boothj5/libmesode/";
-    license = stdenv.lib.licenses.gpl3;
-    platforms = stdenv.lib.platforms.unix;
-    maintainers = [ stdenv.lib.maintainers.devhell ];
+    homepage = "https://github.com/profanity-im/libmesode/";
+    license = with licenses; [ gpl3Only mit];
+    platforms = platforms.unix;
+    broken = stdenv.isDarwin;
+    maintainers = with maintainers; [ devhell ];
   };
 }
diff --git a/pkgs/development/libraries/libmodulemd/default.nix b/pkgs/development/libraries/libmodulemd/default.nix
index f79bc104fc8..a0d32f5178a 100644
--- a/pkgs/development/libraries/libmodulemd/default.nix
+++ b/pkgs/development/libraries/libmodulemd/default.nix
@@ -83,6 +83,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/fedora-modularity/libmodulemd";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin ;
   };
 }
diff --git a/pkgs/development/libraries/libnice/default.nix b/pkgs/development/libraries/libnice/default.nix
index d2333ac0ca5..e7b01ca29cb 100644
--- a/pkgs/development/libraries/libnice/default.nix
+++ b/pkgs/development/libraries/libnice/default.nix
@@ -16,13 +16,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "libnice-0.1.16";
+  pname = "libnice";
+  version = "0.1.18";
 
   outputs = [ "bin" "out" "dev" "devdoc" ];
 
   src = fetchurl {
-    url = "https://nice.freedesktop.org/releases/${name}.tar.gz";
-    sha256 = "1pzgxq0qrqlrhd78qnvpfgp8bl5c4znqh599ljaybpcldw37idh6";
+    url = "https://libnice.freedesktop.org/releases/${pname}-${version}.tar.gz";
+    sha256 = "1x3kj9b3dy9m2h6j96wgywfamas1j8k2ca43k5v82kmml9dx5asy";
   };
 
   patches = [
@@ -77,7 +78,7 @@ stdenv.mkDerivation rec {
 
       It provides a GLib-based library, libnice and a Glib-free library,
       libstun as well as GStreamer elements.'';
-    homepage = "https://nice.freedesktop.org/wiki/";
+    homepage = "https://libnice.freedesktop.org/";
     platforms = platforms.linux;
     license = with licenses; [ lgpl21 mpl11 ];
   };
diff --git a/pkgs/development/libraries/libomxil-bellagio/default.nix b/pkgs/development/libraries/libomxil-bellagio/default.nix
index 5f583d53abf..854c2732c12 100644
--- a/pkgs/development/libraries/libomxil-bellagio/default.nix
+++ b/pkgs/development/libraries/libomxil-bellagio/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   # Fix for #40213, probably permanent, because upstream doesn't seem to be
   # developed anymore. Alternatively, gcc7Stdenv could be used.
-  NIX_CFLAGS_COMPILE = "-Wno-error=array-bounds";
+  NIX_CFLAGS_COMPILE = "-Wno-error=array-bounds -Wno-error=stringop-overflow=8";
 
   meta = with stdenv.lib; {
     homepage = "https://sourceforge.net/projects/omxil/";
diff --git a/pkgs/development/libraries/libopcodes/default.nix b/pkgs/development/libraries/libopcodes/default.nix
index f596ddfafc4..8db034683dc 100644
--- a/pkgs/development/libraries/libopcodes/default.nix
+++ b/pkgs/development/libraries/libopcodes/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
   outputs = [ "out" "dev" ];
 
   patches = binutils-unwrapped.patches ++ [
-    (binutils-unwrapped.patchesDir + "/build-components-separately.patch")
+    ../../tools/misc/binutils/build-components-separately.patch
   ];
 
   # We just want to build libopcodes
diff --git a/pkgs/development/libraries/libopus/default.nix b/pkgs/development/libraries/libopus/default.nix
index 9f4d6275ad6..e8d3682b8b3 100644
--- a/pkgs/development/libraries/libopus/default.nix
+++ b/pkgs/development/libraries/libopus/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
   configureFlags = stdenv.lib.optional fixedPoint "--enable-fixed-point"
                 ++ stdenv.lib.optional withCustomModes "--enable-custom-modes";
 
-  doCheck = true;
+  doCheck = !stdenv.isi686; # test_unit_LPC_inv_pred_gain fails
 
   meta = with stdenv.lib; {
     description = "Open, royalty-free, highly versatile audio codec";
diff --git a/pkgs/development/libraries/libow/default.nix b/pkgs/development/libraries/libow/default.nix
index 1f67e1fc791..d7e83e7a9e3 100644
--- a/pkgs/development/libraries/libow/default.nix
+++ b/pkgs/development/libraries/libow/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, autoconf, automake, pkgconfig, libtool }:
 
 stdenv.mkDerivation rec {
-  version = "3.2p3";
+  version = "3.2p4";
   pname = "libow";
 
   src = fetchFromGitHub {
     owner = "owfs";
     repo = "owfs";
     rev = "v${version}";
-    sha256 = "02l3r4ixhicph5iqxdjanck2gbqkfs9vnnac112bzlvlw3x9r03m";
+    sha256 = "0dln1ar7bxwhpi36sccmpwapy7iz4j097rbf02mgn42lw5vrcg3s";
   };
 
   nativeBuildInputs = [ autoconf automake pkgconfig ];
diff --git a/pkgs/development/libraries/libpfm/default.nix b/pkgs/development/libraries/libpfm/default.nix
index b29aeb2930a..63b826258ae 100644
--- a/pkgs/development/libraries/libpfm/default.nix
+++ b/pkgs/development/libraries/libpfm/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchurl, enableShared ? true }:
+{ stdenv, fetchurl
+, enableShared ? !stdenv.hostPlatform.isStatic
+}:
 
 stdenv.mkDerivation (rec {
   version = "4.11.0";
diff --git a/pkgs/development/libraries/libquotient/default.nix b/pkgs/development/libraries/libquotient/default.nix
index 4971e37a427..84d7c51fd59 100644
--- a/pkgs/development/libraries/libquotient/default.nix
+++ b/pkgs/development/libraries/libquotient/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "libquotient";
-  version = "0.6.2";
+  version = "0.6.3";
 
   src = fetchFromGitHub {
     owner = "quotient-im";
     repo = "libQuotient";
     rev = version;
-    sha256 = "1721cy6zaq086nrwh9x4d7k1jiaygg1wkvyx486i9bj9z53lc3wd";
+    sha256 = "sha256-RYEcFClRdAippG0kspNi9QZIzZAuU4++9LOQTZcqpVc=";
   };
 
   buildInputs = [ qtbase qtmultimedia ];
@@ -18,7 +18,7 @@ mkDerivation rec {
   meta = with lib; {
     description = "A Qt5 library to write cross-platfrom clients for Matrix";
     homepage = "https://matrix.org/docs/projects/sdk/quotient";
-    maintainers = with maintainers; [ colemickens ];
     license = licenses.lgpl21;
+    maintainers = with maintainers; [ colemickens ];
   };
 }
diff --git a/pkgs/development/libraries/libraspberrypi/default.nix b/pkgs/development/libraries/libraspberrypi/default.nix
index bbe0b614550..664b8d1a7e0 100644
--- a/pkgs/development/libraries/libraspberrypi/default.nix
+++ b/pkgs/development/libraries/libraspberrypi/default.nix
@@ -1,25 +1,40 @@
-{ stdenv, cmake, fetchFromGitHub }:
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, pkg-config
+}:
 
 stdenv.mkDerivation rec {
-  name = "libraspberrypi";
-  version = "2020-05-28";
+  pname = "libraspberrypi";
+  version = "unstable-2020-11-30";
+
   src = fetchFromGitHub {
     owner = "raspberrypi";
     repo = "userland";
-    rev = "f97b1af1b3e653f9da2c1a3643479bfd469e3b74";
-    sha256 = "1r7n05rv96hqjq0rn0qzchmfqs0j7vh3p8jalgh66s6l0vms5mwy";
+    rev = "093b30bbc2fd083d68cc3ee07e6e555c6e592d11";
+    sha256 = "0n2psqyxlsic9cc5s8h65g0blblw3xws4czhpbbgjm58px3822d7";
   };
 
-  cmakeFlags = if (stdenv.targetPlatform.system == "aarch64-linux")
-    then "-DARM64=ON"
-    else "-DARM64=OFF";
-  preConfigure = ''cmakeFlags="$cmakeFlags -DVMCS_INSTALL_PREFIX=$out"'';
-  nativeBuildInputs = [ cmake ];
+  patches = [
+    (fetchpatch {
+      # https://github.com/raspberrypi/userland/pull/670
+      url = "https://github.com/raspberrypi/userland/pull/670/commits/37cb44f314ab1209fe2a0a2449ef78893b1e5f62.patch";
+      sha256 = "1fbrbkpc4cc010ji8z4ll63g17n6jl67kdy62m74bhlxn72gg9rw";
+    })
+  ];
+
+  nativeBuildInputs = [ cmake pkg-config ];
+  cmakeFlags = [
+    (if (stdenv.hostPlatform.isAarch64) then "-DARM64=ON" else "-DARM64=OFF")
+    "-DVMCS_INSTALL_PREFIX=${placeholder "out"}"
+  ];
+
   meta = with stdenv.lib; {
-    description = "Userland libraries for interfacing with Raspberry Pi hardware";
+    description = "Userland tools & libraries for interfacing with Raspberry Pi hardware";
     homepage = "https://github.com/raspberrypi/userland";
     license = licenses.bsd3;
-    platforms = [ "armv6l-linux" "armv7l-linux" "aarch64-linux" ];
-    maintainers = with maintainers; [ tkerber ];
+    platforms = [ "armv6l-linux" "armv7l-linux" "aarch64-linux" "x86_64-linux" ];
+    maintainers = with maintainers; [ dezgeg tavyc tkerber ];
   };
 }
diff --git a/pkgs/development/libraries/librealsense/default.nix b/pkgs/development/libraries/librealsense/default.nix
index 2ceb2125dbc..9a2ea6d033e 100644
--- a/pkgs/development/libraries/librealsense/default.nix
+++ b/pkgs/development/libraries/librealsense/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, config, lib, fetchFromGitHub, cmake, libusb1, ninja, pkgconfig, gcc
+{ stdenv, config, lib, fetchFromGitHub, cmake, libusb1, ninja, pkg-config, gcc
 , cudaSupport ? config.cudaSupport or false, cudatoolkit
 , enablePython ? false, pythonPackages ? null }:
 
@@ -7,7 +7,7 @@ assert enablePython -> pythonPackages != null;
 
 stdenv.mkDerivation rec {
   pname = "librealsense";
-  version = "2.40.0";
+  version = "2.41.0";
 
   outputs = [ "out" "dev" ];
 
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     owner = "IntelRealSense";
     repo = pname;
     rev = "v${version}";
-    sha256 = "KZNriNDxRKR14KFJrAbzZLfSQ3iiZ8PKC80fVh0AQls=";
+    sha256 = "0ngv9fgja72vg7hq1aiwpa7x4dhniawhpd8mqm85pqkjxiph8s1k";
   };
 
   buildInputs = [
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     cmake
     ninja
-    pkgconfig
+    pkg-config
   ];
 
   cmakeFlags = [
diff --git a/pkgs/development/libraries/libressl/default.nix b/pkgs/development/libraries/libressl/default.nix
index 1f6313d8caa..ae0b63f5577 100644
--- a/pkgs/development/libraries/libressl/default.nix
+++ b/pkgs/development/libraries/libressl/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchurl, lib, cmake, cacert, fetchpatch, buildShared ? true }:
+{ stdenv, fetchurl, lib, cmake, cacert, fetchpatch
+, buildShared ? !stdenv.hostPlatform.isStatic
+}:
 
 let
 
diff --git a/pkgs/development/libraries/libseccomp/default.nix b/pkgs/development/libraries/libseccomp/default.nix
index ab1df8d2bc1..a0414f5ba55 100644
--- a/pkgs/development/libraries/libseccomp/default.nix
+++ b/pkgs/development/libraries/libseccomp/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   # src input for buildPythonPackage calls
   postInstall = ''
     cp -R ./src/python/ tmp-pythonsrc/
-    tar -zcf $pythonsrc --transform s/tmp-pythonsrc/python-foundationdb/ ./tmp-pythonsrc/
+    tar -zcf $pythonsrc --mtime="@$SOURCE_DATE_EPOCH" --sort=name --transform s/tmp-pythonsrc/python-foundationdb/ ./tmp-pythonsrc/
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/libsmartcols/default.nix b/pkgs/development/libraries/libsmartcols/default.nix
new file mode 100644
index 00000000000..bb3de08cf72
--- /dev/null
+++ b/pkgs/development/libraries/libsmartcols/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, python3 }:
+
+stdenv.mkDerivation rec {
+  name = "libsmartcols";
+  version = "v2.36.1";
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig python3 ];
+
+  src = fetchFromGitHub {
+    owner = "karelzak";
+    repo = "util-linux";
+    rev = version;
+    sha256 = "0z7nv054pqhlihqiw0vk3h40j0cxk1yxf8zzh0ddmvk6834cnyxs";
+  };
+
+  configureFlags = [ "--disable-all-programs" "--enable-libsmartcols" ];
+
+  buildPhase = ''
+    make libsmartcols.la
+  '';
+
+  installTargets = [ "install-am" "install-pkgconfigDATA" ];
+
+  meta = {
+    description = "smart column output alignment library";
+    homepage = https://github.com/karelzak/util-linux/tree/master/libsmartcols;
+    license = stdenv.lib.licenses.gpl2Plus;
+    platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
+    maintainers = with stdenv.lib.maintainers; [ rb2k ];
+  };
+}
+
diff --git a/pkgs/development/libraries/libsolv/default.nix b/pkgs/development/libraries/libsolv/default.nix
index 65ab87a0cf6..d75d9cc0780 100644
--- a/pkgs/development/libraries/libsolv/default.nix
+++ b/pkgs/development/libraries/libsolv/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     description = "A free package dependency solver";
     homepage    = "https://github.com/openSUSE/libsolv";
     license     = licenses.bsd3;
-    platforms   = platforms.linux;
+    platforms   = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ copumpkin ];
   };
 }
diff --git a/pkgs/development/libraries/libstrophe/default.nix b/pkgs/development/libraries/libstrophe/default.nix
index 428e23f33f5..0c7828c954f 100644
--- a/pkgs/development/libraries/libstrophe/default.nix
+++ b/pkgs/development/libraries/libstrophe/default.nix
@@ -1,17 +1,26 @@
-{ stdenv, fetchFromGitHub, automake, autoconf, libtool, openssl, expat, pkgconfig, check }:
+{ stdenv
+, fetchFromGitHub
+, pkg-config
+, automake
+, autoconf
+, libtool
+, openssl
+, expat
+, check
+}:
 
 stdenv.mkDerivation rec {
   pname = "libstrophe";
-  version = "0.10.0";
+  version = "0.10.1";
 
   src = fetchFromGitHub {
     owner = "strophe";
     repo = pname;
     rev = version;
-    sha256 = "1hizw695fw0cy88h1dpl9pvniapml2zw9yvxck8xvxbqfz54jwja";
+    sha256 = "sha256-6byg7hE0DN/cbf9NHpK/2DhXZyuelYAp+SA7vVUgo4U=";
   };
 
-  nativeBuildInputs = [ automake autoconf pkgconfig libtool check ];
+  nativeBuildInputs = [ automake autoconf pkg-config libtool check ];
   buildInputs = [ openssl expat ];
 
   dontDisableStatic = true;
@@ -20,7 +29,7 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A simple, lightweight C library for writing XMPP clients";
     longDescription = ''
       libstrophe is a lightweight XMPP client library written in C. It has
@@ -28,8 +37,8 @@ stdenv.mkDerivation rec {
       runs well on both Linux, Unix, and Windows based platforms.
     '';
     homepage = "https://strophe.im/libstrophe/";
-    license = with stdenv.lib.licenses; [ gpl3 mit ];
-    platforms = stdenv.lib.platforms.unix;
-    maintainers = with stdenv.lib.maintainers; [ devhell flosse ];
+    license = with licenses; [ gpl3 mit ];
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ devhell flosse ];
   };
 }
diff --git a/pkgs/development/libraries/libsurvive/default.nix b/pkgs/development/libraries/libsurvive/default.nix
new file mode 100644
index 00000000000..7f326112b2f
--- /dev/null
+++ b/pkgs/development/libraries/libsurvive/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, freeglut
+, liblapack
+, libusb1
+, openblas
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libsurvive";
+  version = "0.3";
+
+  src = fetchFromGitHub {
+    owner = "cntools";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0m21fnq8pfw2pcvqfgjws531zmalda423q9i65v4qzm8sdb54hl4";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  buildInputs = [
+    freeglut
+    liblapack
+    libusb1
+    openblas
+    zlib
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Open Source Lighthouse Tracking System";
+    homepage = "https://github.com/cntools/libsurvive";
+    license = licenses.mit;
+    maintainers = with maintainers; [ prusnak ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/libtorrent-rasterbar/1.1/default.nix b/pkgs/development/libraries/libtorrent-rasterbar/1.1.nix
index b2c958795f3..b2c958795f3 100644
--- a/pkgs/development/libraries/libtorrent-rasterbar/1.1/default.nix
+++ b/pkgs/development/libraries/libtorrent-rasterbar/1.1.nix
diff --git a/pkgs/development/libraries/libtorrent-rasterbar/1.2/default.nix b/pkgs/development/libraries/libtorrent-rasterbar/1.2.nix
index 1233dcb3933..9a165780b7e 100644
--- a/pkgs/development/libraries/libtorrent-rasterbar/1.2/default.nix
+++ b/pkgs/development/libraries/libtorrent-rasterbar/1.2.nix
@@ -3,8 +3,7 @@
 }:
 
 let
-  version = "1.2.6";
-  formattedVersion = stdenv.lib.replaceChars ["."] ["_"] version;
+  version = "1.2.11";
 
   # Make sure we override python, so the correct version is chosen
   # for the bindings, if overridden
@@ -17,8 +16,8 @@ in stdenv.mkDerivation {
   src = fetchFromGitHub {
     owner = "arvidn";
     repo = "libtorrent";
-    rev = "libtorrent-${formattedVersion}";
-    sha256 = "140gc9j6lymy5kr0gviqznpg4hl57rz2q6vpb9sjkkimr19lrvdr";
+    rev = "v${version}";
+    sha256 = "05qm8mcyxsnb6zb8nckln1gkk8ncwzfhsz7d7p3fhx6gdsc8j71b";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/libtorrent-rasterbar/default.nix b/pkgs/development/libraries/libtorrent-rasterbar/default.nix
new file mode 100644
index 00000000000..e9c59ed97e8
--- /dev/null
+++ b/pkgs/development/libraries/libtorrent-rasterbar/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub, cmake
+, zlib, boost, openssl, python, ncurses, SystemConfiguration
+}:
+
+let
+  version = "2.0.1";
+
+  # Make sure we override python, so the correct version is chosen
+  boostPython = boost.override { enablePython = true; inherit python; };
+
+in stdenv.mkDerivation {
+  pname = "libtorrent-rasterbar";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "arvidn";
+    repo = "libtorrent";
+    rev = "v${version}";
+    sha256 = "04ppw901babkfkis89pyb8kiyn39kb21k1s838xjq5ghbral1b1c";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ boostPython openssl zlib python ncurses ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ SystemConfiguration ];
+
+  postInstall = ''
+    moveToOutput "include" "$dev"
+    moveToOutput "lib/${python.libPrefix}" "$python"
+  '';
+
+  outputs = [ "out" "dev" "python" ];
+
+  cmakeFlags = [
+    "-Dpython-bindings=on"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://libtorrent.org/";
+    description = "A C++ BitTorrent implementation focusing on efficiency and scalability";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.phreedom ];
+    broken = stdenv.isDarwin;
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/libraries/libusb1/default.nix b/pkgs/development/libraries/libusb1/default.nix
index c91105d2bf8..10310e22da7 100644
--- a/pkgs/development/libraries/libusb1/default.nix
+++ b/pkgs/development/libraries/libusb1/default.nix
@@ -13,13 +13,13 @@ assert enableUdev -> udev != null;
 
 stdenv.mkDerivation rec {
   pname = "libusb";
-  version = "1.0.23";
+  version = "1.0.24";
 
   src = fetchFromGitHub {
     owner = "libusb";
     repo = "libusb";
     rev = "v${version}";
-    sha256 = "0mxbpg01kgbk5nh6524b0m4xk7ywkyzmc3yhi5asqcsd3rbhjj98";
+    sha256 = "18ri8ky422hw64zry7bpbarb1m0hiljyf64a0a9y093y7aad38i7";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/libuvc/default.nix b/pkgs/development/libraries/libuvc/default.nix
new file mode 100644
index 00000000000..e2956a99432
--- /dev/null
+++ b/pkgs/development/libraries/libuvc/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, libusb1
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libuvc";
+  version = "unstable-2020-11-29";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "5cddef71b17d41f7e98875a840c50d9704c3d2b2";
+    sha256 = "0kranb0x1k5qad8rwxnn1w9963sbfj2cfzdgpfmlivb04544m2j7";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  buildInputs = [ libusb1 ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://ken.tossell.net/libuvc/";
+    description = "Cross-platform library for USB video devices";
+    platforms = platforms.linux;
+    license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [ prusnak ];
+  };
+}
diff --git a/pkgs/development/libraries/libva/utils.nix b/pkgs/development/libraries/libva/utils.nix
index 66294848b19..f860c328fe7 100644
--- a/pkgs/development/libraries/libva/utils.nix
+++ b/pkgs/development/libraries/libva/utils.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libva-utils";
-  version = "2.9.1";
+  version = "2.10.0";
 
   src = fetchFromGitHub {
     owner  = "intel";
     repo   = "libva-utils";
     rev    = version;
-    sha256 = "1viqxq9r424hvbfgjlw4zb1idsq24fqr5cz6rk47j37rcnqclj2k";
+    sha256 = "14v4mw0asjgg4l0683hn87d8jai8lrmcpbfcm9z93p4mpn2sp7aw";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config ];
diff --git a/pkgs/development/libraries/libxml2/default.nix b/pkgs/development/libraries/libxml2/default.nix
index 59492887688..10ad110d24e 100644
--- a/pkgs/development/libraries/libxml2/default.nix
+++ b/pkgs/development/libraries/libxml2/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchurl, fetchpatch
 , zlib, xz, libintl, python, gettext, ncurses, findXMLCatalogs
-, pythonSupport ? stdenv.buildPlatform == stdenv.hostPlatform
+, pythonSupport ? enableShared && stdenv.buildPlatform == stdenv.hostPlatform
 , icuSupport ? false, icu ? null
 , enableShared ? stdenv.hostPlatform.libc != "msvcrt"
 , enableStatic ? !enableShared,
diff --git a/pkgs/development/libraries/libxsmm/default.nix b/pkgs/development/libraries/libxsmm/default.nix
index 30f060405f0..5e4a56a6d4d 100644
--- a/pkgs/development/libraries/libxsmm/default.nix
+++ b/pkgs/development/libraries/libxsmm/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, coreutils, gfortran, gnused
 , python3, util-linux, which
 
-, enableStatic ? false
+, enableStatic ? stdenv.hostPlatform.isStatic
 }:
 
 let
diff --git a/pkgs/development/libraries/libzra/default.nix b/pkgs/development/libraries/libzra/default.nix
new file mode 100644
index 00000000000..b5fe6e59356
--- /dev/null
+++ b/pkgs/development/libraries/libzra/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libzra";
+  version = "unstable-2020-08-10";
+
+  src = fetchFromGitHub {
+    owner = "zraorg";
+    repo = "zra";
+    rev = "e678980ae7e79efd716b4a6610fe9f148425fd6b";
+    sha256 = "132xyzhadahm01nas8gycjza5hs839fnpsh73im2a7wwfdw76z4h";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/zraorg/ZRA";
+    description = "Library for ZStandard random access";
+    platforms = platforms.all;
+    maintainers = [ maintainers.ivar ];
+    license = licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index 578763478f5..c96d1edfadf 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -31,7 +31,7 @@ with stdenv.lib;
 let
   # Release calendar: https://www.mesa3d.org/release-calendar.html
   # Release frequency: https://www.mesa3d.org/releasing.html#schedule
-  version = "20.2.4";
+  version = "20.3.1";
   branch  = versions.major version;
 in
 
@@ -46,7 +46,7 @@ stdenv.mkDerivation {
       "ftp://ftp.freedesktop.org/pub/mesa/${version}/mesa-${version}.tar.xz"
       "ftp://ftp.freedesktop.org/pub/mesa/older-versions/${branch}.x/${version}/mesa-${version}.tar.xz"
     ];
-    sha256 = "14m09bk7akj0k02lg8fhvvzbdsashlbdsgl2cw7wbqfj2mhdqwh5";
+    sha256 = "03vqm9kqrcpijg6bxldj0bg360z8d7c767n3b16jdc1apd4inxdg";
   };
 
   prePatch = "patchShebangs .";
@@ -58,34 +58,21 @@ stdenv.mkDerivation {
     ./missing-includes.patch # dev_t needs sys/stat.h, time_t needs time.h, etc.-- fixes build w/musl
     ./opencl-install-dir.patch
     ./disk_cache-include-dri-driver-path-in-cache-key.patch
-  ]
-    ++ lib.optionals stdenv.hostPlatform.isMusl [
-      # Fix `-Werror=int-conversion` pthread warnings on musl.
-      # TODO: Remove when https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6121 is merged and available
-      (fetchpatch {
-        name = "nine_debug-Make-tid-more-type-correct";
-        url = "https://gitlab.freedesktop.org/mesa/mesa/commit/aebbf819df6d1e.patch";
-        sha256 = "17248hyzg43d73c86p077m4lv1pkncaycr3l27hwv9k4ija9zl8q";
-      })
-    ]
-    # do not prefix user provided dri-drivers-path
-    ++ lib.optional (lib.versionOlder version "19.0.0") (fetchpatch {
-      url = "https://gitlab.freedesktop.org/mesa/mesa/commit/f6556ec7d126b31da37c08d7cb657250505e01a0.patch";
-      sha256 = "0z6phi8hbrbb32kkp1js7ggzviq7faz1ria36wi4jbc4in2392d9";
+    # Fix `-Werror=int-conversion` pthread warnings on musl.
+    # TODO: Remove when https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6121 is merged and available
+    (fetchpatch {
+      name = "nine_debug-Make-tid-more-type-correct";
+      url = "https://gitlab.freedesktop.org/mesa/mesa/commit/aebbf819df6d1e.patch";
+      sha256 = "17248hyzg43d73c86p077m4lv1pkncaycr3l27hwv9k4ija9zl8q";
     })
-    ++ lib.optionals (lib.versionOlder version "19.1.0") [
-      # do not prefix user provided d3d-drivers-path
-      (fetchpatch {
-        url = "https://gitlab.freedesktop.org/mesa/mesa/commit/dcc48664197c7e44684ccfb970a4ae083974d145.patch";
-        sha256 = "1nhs0xpx3hiy8zfb5gx1zd7j7xha6h0hr7yingm93130a5902lkb";
-      })
-
-      # don't build libGLES*.so with GLVND
-      (fetchpatch {
-        url = "https://gitlab.freedesktop.org/mesa/mesa/commit/b01524fff05eef66e8cd24f1c5aacefed4209f03.patch";
-        sha256 = "1pszr6acx2xw469zq89n156p3bf3xf84qpbjw5fr1sj642lbyh7c";
-      })
-    ];
+  ] ++ stdenv.lib.optionals stdenv.isDarwin [
+    # Fix for pre macOS SDK 10.13
+    # TODO(r-burns) can be applied unconditionally, at the cost of a mass linux rebuild
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/mesa/mesa/-/commit/f4403f70fe5bf2ec41af5546122f0d78caffa984.patch";
+      sha256 = "03j2aj255m7ms848nkb41vj3s3yb72zb5rz3w3fzp5l9wzzargw5";
+    })
+  ];
 
   postPatch = ''
     substituteInPlace meson.build --replace \
diff --git a/pkgs/development/libraries/mp4v2/default.nix b/pkgs/development/libraries/mp4v2/default.nix
index 9601ae1eea3..3b8efadcfd1 100644
--- a/pkgs/development/libraries/mp4v2/default.nix
+++ b/pkgs/development/libraries/mp4v2/default.nix
@@ -19,8 +19,13 @@ stdenv.mkDerivation rec {
       url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/libmp4v2-c++11.patch?id=203f5a72bc97ffe089b424c47b07dd9eaea35713";
       sha256 = "0sbn0il7lmk77yrjyb4f0a3z3h8gsmdkscvz5n9hmrrrhrwf672w";
     })
+  ] ++ stdenv.lib.optionals stdenv.cc.isClang [
+    # unbreak build with Clang≥6 (C++14 by default). Based on https://reviews.freebsd.org/rP458678
+    ./fix-build-clang.patch
   ];
 
+  NIX_CFLAGS_COMPILE = [ "-Wno-error=narrowing" ];
+
   # `faac' expects `mp4.h'.
   postInstall = "ln -s mp4v2/mp4v2.h $out/include/mp4.h";
 
diff --git a/pkgs/development/libraries/mp4v2/fix-build-clang.patch b/pkgs/development/libraries/mp4v2/fix-build-clang.patch
new file mode 100644
index 00000000000..5d99f1951f7
--- /dev/null
+++ b/pkgs/development/libraries/mp4v2/fix-build-clang.patch
@@ -0,0 +1,13 @@
+diff --git a/src/mp4.cpp b/src/mp4.cpp
+index c2a7238..9bb3e38 100644
+--- a/src/mp4.cpp
++++ b/src/mp4.cpp
+@@ -870,7 +870,7 @@ MP4FileHandle MP4ReadProvider( const char* fileName, const MP4FileProvider* file
+         }
+ 
+         catch (...) {
+-            return MP4_INVALID_TRACK_ID;
++            return NULL;
+         }
+     }
+ 
diff --git a/pkgs/development/libraries/ncurses/default.nix b/pkgs/development/libraries/ncurses/default.nix
index 0e75bfbd5b5..17a924e6e74 100644
--- a/pkgs/development/libraries/ncurses/default.nix
+++ b/pkgs/development/libraries/ncurses/default.nix
@@ -3,7 +3,7 @@
 , abiVersion ? "6"
 , mouseSupport ? false
 , unicode ? true
-, enableStatic ? stdenv.hostPlatform.useAndroidPrebuilt
+, enableStatic ? stdenv.hostPlatform.isStatic
 , enableShared ? !enableStatic
 , withCxx ? !stdenv.hostPlatform.useAndroidPrebuilt
 
diff --git a/pkgs/development/libraries/neon/default.nix b/pkgs/development/libraries/neon/default.nix
index c9a2621f440..e9ce6ee18b4 100644
--- a/pkgs/development/libraries/neon/default.nix
+++ b/pkgs/development/libraries/neon/default.nix
@@ -1,8 +1,8 @@
 { stdenv, fetchurl, libxml2, pkgconfig, perl
 , compressionSupport ? true, zlib ? null
 , sslSupport ? true, openssl ? null
-, static ? false
-, shared ? true
+, static ? stdenv.hostPlatform.isStatic
+, shared ? !stdenv.hostPlatform.isStatic
 }:
 
 assert compressionSupport -> zlib != null;
diff --git a/pkgs/development/libraries/nghttp2/default.nix b/pkgs/development/libraries/nghttp2/default.nix
index c9ccf63f889..7bcdf8feb30 100644
--- a/pkgs/development/libraries/nghttp2/default.nix
+++ b/pkgs/development/libraries/nghttp2/default.nix
@@ -8,7 +8,7 @@
 , enableAsioLib ? false, boost ? null
 , enableGetAssets ? false, libxml2 ? null
 , enableJemalloc ? false, jemalloc ? null
-, enableApp ? !stdenv.hostPlatform.isWindows
+, enableApp ? with stdenv.hostPlatform; !isWindows && !isStatic
 , enablePython ? false, python ? null, cython ? null, ncurses ? null, setuptools ? null
 }:
 
diff --git a/pkgs/development/libraries/ngt/default.nix b/pkgs/development/libraries/ngt/default.nix
index 977bdf9afe3..7d766eb5d87 100644
--- a/pkgs/development/libraries/ngt/default.nix
+++ b/pkgs/development/libraries/ngt/default.nix
@@ -1,8 +1,13 @@
-{ stdenv, fetchFromGitHub, cmake, llvmPackages, enableAVX ? false }:
+{ stdenv
+, fetchFromGitHub
+, cmake
+, llvmPackages
+, enableAVX ? stdenv.hostPlatform.avxSupport
+}:
+
 stdenv.mkDerivation rec {
   pname = "NGT";
   version = "v1.12.3-alpha";
-  nativeBuildInputs = [ cmake ];
 
   src = fetchFromGitHub {
     owner = "yahoojapan";
@@ -11,11 +16,11 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-nu0MJNpaenOB4+evoSVLKmPIuZXVj1Rm9x53+TfhezY=";
   };
 
+  nativeBuildInputs = [ cmake ];
   buildInputs = [ llvmPackages.openmp ];
-  NIX_ENFORCE_NO_NATIVE=! enableAVX;
-  __AVX2__ = if enableAVX then 1 else 0;
 
-  enableParallelBuilding = true;
+  NIX_ENFORCE_NO_NATIVE = ! enableAVX;
+  __AVX2__ = if enableAVX then 1 else 0;
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/yahoojapan/NGT";
diff --git a/pkgs/development/libraries/notcurses/default.nix b/pkgs/development/libraries/notcurses/default.nix
new file mode 100644
index 00000000000..189e36c1b44
--- /dev/null
+++ b/pkgs/development/libraries/notcurses/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, cmake, pkgconfig, pandoc, libunistring, ncurses, ffmpeg,
+  fetchFromGitHub, lib,
+  multimediaSupport ? true
+}:
+let
+  version = "2.1.0";
+in
+stdenv.mkDerivation {
+  pname = "notcurses";
+  inherit version;
+
+  outputs = [ "out" "dev" ];
+
+  nativeBuildInputs = [ cmake pkgconfig pandoc ];
+
+  buildInputs = [ libunistring ncurses ]
+    ++ lib.optional multimediaSupport ffmpeg;
+
+  cmakeFlags =
+    [ "-DUSE_QRCODEGEN=OFF" ]
+    ++ lib.optional (!multimediaSupport) "-DUSE_MULTIMEDIA=none";
+
+  src = fetchFromGitHub {
+    owner  = "dankamongmen";
+    repo   = "notcurses";
+    rev    = "v${version}";
+    sha256 = "0jvngg40c1sqf85kqy6ya0vflpxsj7j4g6cw609992rifaghxiny";
+  };
+
+  meta = {
+    description = "blingful TUIs and character graphics";
+
+    longDescription = ''
+      A library facilitating complex TUIs on modern terminal emulators,
+      supporting vivid colors, multimedia, and Unicode to the maximum degree
+      possible. Things can be done with Notcurses that simply can't be done
+      with NCURSES.
+
+      It is not a source-compatible X/Open Curses implementation, nor a
+      replacement for NCURSES on existing systems.
+    '';
+
+    homepage = "https://github.com/dankamongmen/notcurses";
+
+    license = lib.licenses.asl20;
+    platforms = lib.platforms.all;
+    maintainers = with lib.maintainers; [ jb55 ];
+  };
+}
diff --git a/pkgs/development/libraries/nss/default.nix b/pkgs/development/libraries/nss/default.nix
index ef1cef84df5..17dc93c9f1e 100644
--- a/pkgs/development/libraries/nss/default.nix
+++ b/pkgs/development/libraries/nss/default.nix
@@ -15,7 +15,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.59";
+  version = "3.60";
   underscoreVersion = builtins.replaceStrings ["."] ["_"] version;
 
 in stdenv.mkDerivation rec {
@@ -24,7 +24,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://mozilla/security/nss/releases/NSS_${underscoreVersion}_RTM/src/${pname}-${version}.tar.gz";
-    sha256 = "096fs3z21r171q24ca3rq53p1389xmvqz1f2rpm7nlm8r9s82ag6";
+    sha256 = "0ggyj3ax3kal65sl1vl4nfhx2s08blg4dg8iwlxcax5qb9bxbaw4";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
diff --git a/pkgs/development/libraries/ntdb/default.nix b/pkgs/development/libraries/ntdb/default.nix
index de0db887d4b..d0a9a2e5b49 100644
--- a/pkgs/development/libraries/ntdb/default.nix
+++ b/pkgs/development/libraries/ntdb/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchurl
+, python2
 , python3
 , pkg-config
 , readline
@@ -26,6 +27,7 @@ stdenv.mkDerivation rec {
     docbook-xsl-nons
     docbook_xml_dtd_42
     wafHook
+    python2 # For wafHook
   ];
 
   buildInputs = [
diff --git a/pkgs/development/libraries/ntirpc/default.nix b/pkgs/development/libraries/ntirpc/default.nix
index 6654cc563d1..48ef98dab49 100644
--- a/pkgs/development/libraries/ntirpc/default.nix
+++ b/pkgs/development/libraries/ntirpc/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ntirpc";
-  version = "3.3";
+  version = "3.4";
 
   src = fetchFromGitHub {
     owner = "nfs-ganesha";
     repo = "ntirpc";
     rev = "v${version}";
-    sha256 = "08vc2z9sl1p9mk1mx0zn4xv7dw12gamhciy41fbavm90iavf3vqm";
+    sha256 = "1xdwqyc9m4lbsgr7ll1g0f84c2h8jrfkg67cgvsp424i1a7r9mm1";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/nuspell/default.nix b/pkgs/development/libraries/nuspell/default.nix
index 3fac1421899..b0a9227b8c9 100644
--- a/pkgs/development/libraries/nuspell/default.nix
+++ b/pkgs/development/libraries/nuspell/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, fetchFromGitHub, cmake, pkgconfig, boost, icu, catch2, pandoc }:
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, icu, catch2, pandoc }:
 
 stdenv.mkDerivation rec {
   pname = "nuspell";
-  version = "4.0.1";
+  version = "4.2.0";
 
   src = fetchFromGitHub {
     owner = "nuspell";
     repo = "nuspell";
     rev = "v${version}";
-    sha256 = "1p90a3wv4b8m5fdpbnr9cyd1x3a504q9rc4cghq02xff63h5gclf";
+    sha256 = "sha256-sQ3Q2+FOf2bXCKcgd6XvEb+QZzzDccs/4+CpJbEd1PQ=";
   };
 
   nativeBuildInputs = [ cmake pkgconfig pandoc ];
-  buildInputs = [ boost icu ];
+  buildInputs = [ icu ];
 
   outputs = [ "out" "lib" "dev" "man" ];
 
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "Free and open source C++ spell checking library";
     homepage = "https://nuspell.github.io/";
+    platforms = platforms.all;
     maintainers = with maintainers; [ fpletz ];
     license = licenses.lgpl3Plus;
   };
diff --git a/pkgs/development/libraries/oatpp/default.nix b/pkgs/development/libraries/oatpp/default.nix
new file mode 100644
index 00000000000..38c02170761
--- /dev/null
+++ b/pkgs/development/libraries/oatpp/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+}:
+
+stdenv.mkDerivation rec {
+  pname = "oatpp";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "oatpp";
+    repo = "oatpp";
+    rev = version;
+    sha256 = "05rm0m5zf1b5ky8prf6yni2074bz6yjjbrc2qk96fb48fc1198gw";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  # Tests fail on darwin. See https://github.com/NixOS/nixpkgs/pull/105419#issuecomment-735826894
+  doCheck = !stdenv.isDarwin;
+
+  meta = with stdenv.lib; {
+    homepage = "https://oatpp.io/";
+    description = "Light and powerful C++ web framework for highly scalable and resource-efficient web applications";
+    license = licenses.asl20;
+    maintainers = [ maintainers.ivar ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/opencv/4.x.nix b/pkgs/development/libraries/opencv/4.x.nix
index a723ded6bb6..c6547f118d0 100644
--- a/pkgs/development/libraries/opencv/4.x.nix
+++ b/pkgs/development/libraries/opencv/4.x.nix
@@ -162,15 +162,11 @@ stdenv.mkDerivation {
 
   # This prevents cmake from using libraries in impure paths (which
   # causes build failure on non NixOS)
-  # Also, work around https://github.com/NixOS/nixpkgs/issues/26304 with
-  # what appears to be some stray headers in dnn/misc/tensorflow
-  # in contrib when generating the Python bindings:
   patches = [
     ./cmake-don-t-use-OpenCVFindOpenEXR.patch
   ] ++ lib.optional enableCuda ./cuda_opt_flow.patch;
   postPatch = ''
     sed -i '/Add these standard paths to the search paths for FIND_LIBRARY/,/^\s*$/{d}' CMakeLists.txt
-    sed -i -e 's|if len(decls) == 0:|if len(decls) == 0 or "opencv2/" not in hdr:|' ./modules/python/src2/gen2.py
   '';
 
   preConfigure =
diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix
index c4a9a4a0180..2570c7cdb25 100644
--- a/pkgs/development/libraries/openssl/default.nix
+++ b/pkgs/development/libraries/openssl/default.nix
@@ -2,7 +2,7 @@
 , withCryptodev ? false, cryptodev
 , enableSSL2 ? false
 , enableSSL3 ? false
-, static ? false
+, static ? stdenv.hostPlatform.isStatic
 }:
 
 # Note: this package is used for bootstrapping fetchurl, and thus
@@ -160,8 +160,8 @@ in {
   };
 
   openssl_1_1 = common {
-    version = "1.1.1h";
-    sha256 = "1ncmcnh5bmxkwrvm0m1q4kdcjjfpwvlyjspjhibkxc6p9dvsi72w";
+    version = "1.1.1i";
+    sha256 = "0hjj1phcwkz69lx1lrvr9grhpl4y529mwqycqc1hdla1zqsnmgp8";
     patches = [
       ./1.1/nix-ssl-cert-file.patch
 
diff --git a/pkgs/development/libraries/ortp/default.nix b/pkgs/development/libraries/ortp/default.nix
index f84f3ab1d83..ecd15498432 100644
--- a/pkgs/development/libraries/ortp/default.nix
+++ b/pkgs/development/libraries/ortp/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "A Real-Time Transport Protocol (RFC3550) stack";
     homepage = "https://linphone.org/technical-corner/ortp";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ jluttine ];
   };
diff --git a/pkgs/development/libraries/pcaudiolib/default.nix b/pkgs/development/libraries/pcaudiolib/default.nix
index 12def747361..e9c5301aac5 100644
--- a/pkgs/development/libraries/pcaudiolib/default.nix
+++ b/pkgs/development/libraries/pcaudiolib/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
   version = "1.1";
 
   src = fetchFromGitHub {
-    owner = "rhdunn";
+    owner = "espeak-ng";
     repo = "pcaudiolib";
     rev = version;
     sha256 = "0c55hlqqh0m7bcb3nlgv1s4a22s5bgczr1cakjh3767rjb10khi0";
@@ -16,15 +16,17 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoconf automake which libtool pkgconfig ];
 
-  buildInputs = [ portaudio alsaLib ] ++ lib.optional pulseaudioSupport libpulseaudio;
+  buildInputs = [ portaudio ]
+    ++ lib.optionals stdenv.isLinux [ alsaLib ]
+    ++ lib.optionals pulseaudioSupport [ libpulseaudio ];
 
   preConfigure = "./autogen.sh";
 
   meta = with stdenv.lib; {
     description = "Provides a C API to different audio devices";
-    homepage = "https://github.com/rhdunn/pcaudiolib";
+    homepage = "https://github.com/espeak-ng/pcaudiolib";
     license = licenses.gpl3;
     maintainers = with maintainers; [ aske ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/physfs/default.nix b/pkgs/development/libraries/physfs/default.nix
index 66f2d433ee3..160f2f64cf4 100644
--- a/pkgs/development/libraries/physfs/default.nix
+++ b/pkgs/development/libraries/physfs/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, doxygen
+{ stdenv, fetchurl, cmake, doxygen, darwin
 , zlib }:
 
 let
@@ -14,7 +14,8 @@ let
 
     nativeBuildInputs = [ cmake doxygen ];
 
-    buildInputs = [ zlib ];
+    buildInputs = [ zlib ]
+      ++ stdenv.lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Foundation ];
 
     enableParallelBuilding = true;
 
@@ -32,7 +33,7 @@ let
       homepage = "http://icculus.org/physfs/";
       description = "Library to provide abstract access to various archives";
       license = licenses.free;
-      platforms = platforms.linux;
+      platforms = platforms.unix;
     };
   };
 
diff --git a/pkgs/development/libraries/physics/yoda/default.nix b/pkgs/development/libraries/physics/yoda/default.nix
index 3a8fbbbdd52..39bffb65237 100644
--- a/pkgs/development/libraries/physics/yoda/default.nix
+++ b/pkgs/development/libraries/physics/yoda/default.nix
@@ -39,5 +39,7 @@ stdenv.mkDerivation rec {
     homepage    = "https://yoda.hepforge.org";
     platforms   = stdenv.lib.platforms.unix;
     maintainers = with stdenv.lib.maintainers; [ veprbl ];
+    # https://gitlab.com/hepcedar/yoda/-/issues/24
+    broken      = withRootSupport;
   };
 }
diff --git a/pkgs/development/libraries/pmix/default.nix b/pkgs/development/libraries/pmix/default.nix
index 60215c9531c..f68833bdac4 100644
--- a/pkgs/development/libraries/pmix/default.nix
+++ b/pkgs/development/libraries/pmix/default.nix
@@ -3,7 +3,7 @@
 } :
 
 let
-  version = "3.2.1";
+  version = "3.2.2";
 
 in stdenv.mkDerivation {
   pname = "pmix";
@@ -13,7 +13,7 @@ in stdenv.mkDerivation {
     repo = "openpmix";
     owner = "openpmix";
     rev = "v${version}";
-    sha256 = "0c9q9a18kdilj6ddqlsvalyv4js79qvslnccn79xl2gl3wm3lyzh";
+    sha256 = "1rf82z7h76366qknkmralmslsfmihv0r3ymhbgk1axq97ic3g4d7";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/polkit/default.nix b/pkgs/development/libraries/polkit/default.nix
index 6aea7053014..2ec49a2d3c0 100644
--- a/pkgs/development/libraries/polkit/default.nix
+++ b/pkgs/development/libraries/polkit/default.nix
@@ -2,7 +2,8 @@
 , intltool, spidermonkey_78, gobject-introspection, libxslt, docbook_xsl, dbus
 , docbook_xml_dtd_412, gtk-doc, coreutils
 , useSystemd ? (stdenv.isLinux && !stdenv.hostPlatform.isMusl), systemd, elogind
-, withIntrospection ? true
+# needed until gobject-introspection does cross-compile (https://github.com/NixOS/nixpkgs/pull/88222)
+, withIntrospection ? (stdenv.buildPlatform == stdenv.hostPlatform)
 # A few tests currently fail on musl (polkitunixusertest, polkitunixgrouptest, polkitidentitytest segfault).
 # Not yet investigated; it may be due to the "Make netgroup support optional"
 # patch not updating the tests correctly yet, or doing something wrong,
diff --git a/pkgs/development/libraries/poppler/default.nix b/pkgs/development/libraries/poppler/default.nix
index 074868251d0..e7b9a26f19f 100644
--- a/pkgs/development/libraries/poppler/default.nix
+++ b/pkgs/development/libraries/poppler/default.nix
@@ -12,11 +12,11 @@ let
 in
 stdenv.mkDerivation rec {
   name = "poppler-${suffix}-${version}";
-  version = "20.08.0"; # beware: updates often break cups-filters build, check texlive and scribusUnstable too!
+  version = "20.12.1"; # beware: updates often break cups-filters build, check texlive and scribusUnstable too!
 
   src = fetchurl {
     url = "${meta.homepage}/poppler-${version}.tar.xz";
-    sha256 = "19gchq6fpa00ic5rn1zmjzxx85cif4hbdrsjcfd2aqxz9gqgwrdf";
+    sha256 = "0dbv1y9i5ahg6namz6gw2d0njnmrigr4a80dbxvnqad4q232banh";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/ppl/default.nix b/pkgs/development/libraries/ppl/default.nix
index a51db09db86..f1c93e0fa7c 100644
--- a/pkgs/development/libraries/ppl/default.nix
+++ b/pkgs/development/libraries/ppl/default.nix
@@ -12,8 +12,8 @@ stdenv.mkDerivation {
   };
 
   patches = [(fetchpatch {
-    name = "ppl.patch";
-    url = "http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=patch;h=c39f6a07b51f89e365b05ba4147aa2aa448febd7";
+    name = "clang5-support.patch";
+    url = "https://git.sagemath.org/sage.git/plain/build/pkgs/ppl/patches/clang5-support.patch?h=9.2";
     sha256 = "1zj90hm25pkgvk4jlkfzh18ak9b98217gbidl3731fdccbw6hr87";
   })];
 
diff --git a/pkgs/development/libraries/properties-cpp/default.nix b/pkgs/development/libraries/properties-cpp/default.nix
index fb998169595..54fea18fd17 100644
--- a/pkgs/development/libraries/properties-cpp/default.nix
+++ b/pkgs/development/libraries/properties-cpp/default.nix
@@ -1,27 +1,35 @@
-{ stdenv, fetchurl, cmake, pkgconfig, gtest, doxygen
-, graphviz, lcov }:
+{ stdenv
+, fetchurl
+, cmake
+, pkg-config
+, gtest
+, doxygen
+, graphviz
+, lcov
+}:
 
 stdenv.mkDerivation rec {
   pname = "properties-cpp";
   version = "0.0.1";
 
-  src = let srcver = version+"+14.10.20140730"; in
-  fetchurl {
-    url = "https://launchpad.net/ubuntu/+archive/primary/+files/${pname}_${srcver}.orig.tar.gz";
-    sha256 = "08vjyv7ibn6jh2ikj5v48kjpr3n6hlkp9qlvdn8r0vpiwzah0m2w";
-  };
-
-  buildInputs = [ cmake gtest doxygen pkgconfig graphviz lcov ];
+  src = let srcver = "${version}+14.10.20140730"; in
+    fetchurl {
+      url = "https://launchpad.net/ubuntu/+archive/primary/+files/${pname}_${srcver}.orig.tar.gz";
+      sha256 = "08vjyv7ibn6jh2ikj5v48kjpr3n6hlkp9qlvdn8r0vpiwzah0m2w";
+    };
 
-  patchPhase = ''
+  postPatch = ''
     sed -i "/add_subdirectory(tests)/d" CMakeLists.txt
   '';
 
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  buildInputs = [ gtest doxygen graphviz lcov ];
+
   meta = with stdenv.lib; {
     homepage = "https://launchpad.net/properties-cpp";
     description = "A very simple convenience library for handling properties and signals in C++11";
-    license = licenses.lgpl3;
+    license = licenses.lgpl3Only;
     maintainers = with maintainers; [ edwtjo ];
   };
-
 }
diff --git a/pkgs/development/libraries/pslib/default.nix b/pkgs/development/libraries/pslib/default.nix
new file mode 100644
index 00000000000..08accd5d7df
--- /dev/null
+++ b/pkgs/development/libraries/pslib/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, cmake, pkgconfig, zlib, libpng, libjpeg, libungif, libtiff
+}:
+
+stdenv.mkDerivation rec {
+  pname = "pslib";
+  version = "0.4.6";
+
+  src = fetchurl {
+    name = "${pname}-snixource-${version}.tar.gz";
+    url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
+    sha256 = "0m191ckqj1kj2yvxiilqw26x4vrn7pnlc2vy636yphjxr02q8bk4";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+  buildInputs = [ zlib libpng libjpeg libungif libtiff ];
+
+  doCheck = true;
+
+  outputs = [ "out" "dev" "doc" ];
+
+  installPhase = ''
+    mkdir -p $out/lib
+    for path in *.so *.so.* *.o *.o.*; do
+      mv $path $out/lib/
+    done
+    mkdir -p $dev/include
+    mv ../include/libps $dev/include
+    if test -d nix-support; then
+      mv nix-support $dev
+    fi
+    mkdir -p $doc/share/doc/${pname}
+    cp -r ../doc/. $doc/share/doc/${pname}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A C-library for generating multi page PostScript documents";
+    homepage = "http://pslib.sourceforge.net/";
+    changelog =
+      "https://sourceforge.net/p/pslib/git/ci/master/tree/pslib/ChangeLog";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ ShamrockLee ];
+  };
+}
diff --git a/pkgs/development/libraries/qrcodegen/default.nix b/pkgs/development/libraries/qrcodegen/default.nix
new file mode 100644
index 00000000000..b5faaf90ef7
--- /dev/null
+++ b/pkgs/development/libraries/qrcodegen/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub }:
+stdenv.mkDerivation rec {
+  pname = "qrcodegen";
+  version = "1.6.0";
+
+  src = fetchFromGitHub {
+    owner = "nayuki";
+    repo = "QR-Code-generator";
+    rev = "v${version}";
+    sha256 = "0iq9sv9na0vg996aqrxrjn9rrbiyy7sc9vslw945p3ky22pw3lql";
+  };
+
+  preBuild = "cd c";
+  installPhase = ''
+    mkdir -p $out/lib $out/include/qrcodegen
+    cp libqrcodegen.a $out/lib
+    cp qrcodegen.h $out/include/qrcodegen/
+  '';
+
+  meta = with stdenv.lib;
+    {
+      description = "qrcode generator library in multiple languages";
+
+      longDescription = ''
+        This project aims to be the best, clearest library for generating QR Codes. My primary goals are flexible options and absolute correctness. Secondary goals are compact implementation size and good documentation comments.
+      '';
+
+      homepage = "https://github.com/nayuki/QR-Code-generator";
+
+      license = licenses.mit;
+      platforms = platforms.all;
+      maintainers = with maintainers; [ mcbeth ];
+    };
+}
diff --git a/pkgs/development/libraries/qrupdate/default.nix b/pkgs/development/libraries/qrupdate/default.nix
index 90d4cb45ce2..b941021cb68 100644
--- a/pkgs/development/libraries/qrupdate/default.nix
+++ b/pkgs/development/libraries/qrupdate/default.nix
@@ -25,10 +25,10 @@ stdenv.mkDerivation rec {
       "BLAS=-L${blas}/lib -lblas"
       "PREFIX=${placeholder "out"}"
       ${stdenv.lib.optionalString blas.isILP64
-      # Use their FFLAGS along with `-fdefault-integer-8`. If another
-      # application intends to use arpack, it should add this to it's FFLAGS as
-      # well. Otherwise (e.g): https://savannah.gnu.org/bugs/?50339
-      "FFLAGS=-fimplicit-none -O3 -funroll-loops -fdefault-integer-8"
+      # If another application intends to use qrupdate compiled with blas with
+      # 64 bit support, it should add this to it's FFLAGS as well. See (e.g):
+      # https://savannah.gnu.org/bugs/?50339
+      "FFLAGS=-fdefault-integer-8"
       }
     )
   '';
diff --git a/pkgs/development/libraries/qt-5/5.12/default.nix b/pkgs/development/libraries/qt-5/5.12/default.nix
index 04cb0ea9a11..87a88ddf9b0 100644
--- a/pkgs/development/libraries/qt-5/5.12/default.nix
+++ b/pkgs/development/libraries/qt-5/5.12/default.nix
@@ -8,7 +8,7 @@ top-level attribute to `top-level/all-packages.nix`.
 
 1. Update the URL in `pkgs/development/libraries/qt-5/$VERSION/fetch.sh`.
 2. From the top of the Nixpkgs tree, run
-   `./maintainers/scripts/fetch-kde-qt.sh > pkgs/development/libraries/qt-5/$VERSION/srcs.nix`.
+   `./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/qt-5/$VERSION`.
 3. Check that the new packages build correctly.
 4. Commit the changes and open a pull request.
 
@@ -51,7 +51,7 @@ let
 
   patches = {
     qtbase =
-      optionals stdenv.isDarwin [
+      [
         ./qtbase.patch.d/0001-qtbase-mkspecs-mac.patch
         ./qtbase.patch.d/0002-qtbase-mac.patch
         ./qtbase.patch.d/0013-define-kiosurfacesuccess.patch
@@ -59,8 +59,7 @@ let
         # Patch framework detection to support X.framework/X.tbd,
         # extending the current support for X.framework/X.
         ./qtbase.patch.d/0015-qtbase-tbd-frameworks.patch
-      ]
-      ++ [
+
         ./qtbase.patch.d/0003-qtbase-mkspecs.patch
         ./qtbase.patch.d/0004-qtbase-replace-libdir.patch
         ./qtbase.patch.d/0005-qtbase-cmake.patch
@@ -75,21 +74,9 @@ let
         # Ensure -I${includedir} is added to Cflags in pkg-config files.
         # See https://github.com/NixOS/nixpkgs/issues/52457
         ./qtbase.patch.d/0014-qtbase-pkg-config.patch
-
-        # https://bugreports.qt.io/browse/QTBUG-81715
-        # remove after updating to qt > 5.12.7
-        (fetchpatch {
-          name = "fix-qt5_make_output_file-cmake-macro.patch";
-          url = "https://code.qt.io/cgit/qt/qtbase.git/patch/?id=8a3fde00bf53d99e9e4853e8ab97b0e1bcf74915";
-          sha256 = "1gpcbdpyazdxnmldvhsf3pfwr2gjvi08x3j6rxf543rq01bp6cpx";
-        })
-        (fetchpatch {
-          name = "QTBUG-78937.patch";
-          url = "https://code.qt.io/cgit/qt/qtbase.git/patch/?id=67a9c600ad14ee44501a6df3509daa8234b97606";
-          sha256 = "1jiky1w9j8rka78r4q0yabb8w2l5j6csdjysynz7gs1ry4xjfdxd";
-        })
       ];
     qtdeclarative = [ ./qtdeclarative.patch ];
+    qtlocation = [ ./qtlocation-gcc-9.patch ];
     qtscript = [ ./qtscript.patch ];
     qtserialport = [ ./qtserialport.patch ];
     qtwebengine = [
@@ -110,7 +97,7 @@ let
         stripLen = 1;
         extraPrefix = "src/3rdparty/";
       })
-    ] ++ optionals stdenv.isDarwin [
+
       ./qtwebengine-darwin-no-platform-check.patch
       ./qtwebengine-darwin-fix-failed-static-assertion.patch
     ];
@@ -121,7 +108,7 @@ let
         sha256 = "0h8ymfnwgkjkwaankr3iifiscsvngqpwb91yygndx344qdiw9y0n";
       })
       ./qtwebkit.patch
-    ] ++ optionals stdenv.isDarwin [
+
       ./qtwebkit-darwin-no-readline.patch
       ./qtwebkit-darwin-no-qos-classes.patch
     ];
diff --git a/pkgs/development/libraries/qt-5/5.12/fetch.sh b/pkgs/development/libraries/qt-5/5.12/fetch.sh
index 016b4985ed1..e93c9acd3f0 100644
--- a/pkgs/development/libraries/qt-5/5.12/fetch.sh
+++ b/pkgs/development/libraries/qt-5/5.12/fetch.sh
@@ -1 +1,2 @@
-WGET_ARGS=( http://download.qt.io/official_releases/qt/5.12/5.12.7/submodules/ )
+WGET_ARGS=( http://download.qt.io/official_releases/qt/5.12/5.12.9/submodules/ \
+            -A '*.tar.xz' )
diff --git a/pkgs/development/libraries/qt-5/5.12/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch b/pkgs/development/libraries/qt-5/5.12/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch
index bb535b8a0c0..6646e1e0b2b 100644
--- a/pkgs/development/libraries/qt-5/5.12/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch
+++ b/pkgs/development/libraries/qt-5/5.12/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch
@@ -1,18 +1,5 @@
-From 361a9395704ca1ee170a8bb3823ba860293eecee Mon Sep 17 00:00:00 2001
-From: Thomas Tuegel <ttuegel@mailbox.org>
-Date: Tue, 17 Sep 2019 05:34:00 -0500
-Subject: [PATCH 01/12] qtbase-mkspecs-mac
-
----
- mkspecs/common/mac.conf               |   2 +-
- mkspecs/features/mac/default_post.prf | 202 ----------------------------------
- mkspecs/features/mac/default_pre.prf  |  58 ----------
- mkspecs/features/mac/sdk.mk           |  25 -----
- mkspecs/features/mac/sdk.prf          |  61 ----------
- 5 files changed, 1 insertion(+), 347 deletions(-)
-
 diff --git a/mkspecs/common/mac.conf b/mkspecs/common/mac.conf
-index b77494ec9b..470c38e772 100644
+index b77494ec..470c38e7 100644
 --- a/mkspecs/common/mac.conf
 +++ b/mkspecs/common/mac.conf
 @@ -24,7 +24,7 @@ QMAKE_INCDIR_OPENGL     = \
@@ -25,7 +12,7 @@ index b77494ec9b..470c38e772 100644
  
  QMAKE_LFLAGS_REL_RPATH  =
 diff --git a/mkspecs/features/mac/default_post.prf b/mkspecs/features/mac/default_post.prf
-index 993f4d56a9..b80ec1e801 100644
+index d052808c..b80ec1e8 100644
 --- a/mkspecs/features/mac/default_post.prf
 +++ b/mkspecs/features/mac/default_post.prf
 @@ -68,208 +68,6 @@ qt {
@@ -161,7 +148,7 @@ index 993f4d56a9..b80ec1e801 100644
 -                -isysroot$$xcodeSDKInfo(Path, $$sdk)
 -            QMAKE_XARCH_LFLAGS_$${arch} = $$version_min_flags \
 -                -Xarch_$${arch} \
--                -Wl,-syslibroot,$$xcodeSDKInfo(Path, $$sdk)
+-                -isysroot$$xcodeSDKInfo(Path, $$sdk)
 -
 -            QMAKE_XARCH_CFLAGS += $(EXPORT_QMAKE_XARCH_CFLAGS_$${arch})
 -            QMAKE_XARCH_LFLAGS += $(EXPORT_QMAKE_XARCH_LFLAGS_$${arch})
@@ -182,7 +169,7 @@ index 993f4d56a9..b80ec1e801 100644
 -        version_min_flag = -m$${version_identifier}-version-min=$$deployment_target
 -        QMAKE_CFLAGS += -isysroot $$QMAKE_MAC_SDK_PATH $$version_min_flag
 -        QMAKE_CXXFLAGS += -isysroot $$QMAKE_MAC_SDK_PATH $$version_min_flag
--        QMAKE_LFLAGS += -Wl,-syslibroot,$$QMAKE_MAC_SDK_PATH $$version_min_flag
+-        QMAKE_LFLAGS += -isysroot $$QMAKE_MAC_SDK_PATH $$version_min_flag
 -    }
 -
 -    # Enable precompiled headers for multiple architectures
@@ -238,7 +225,7 @@ index 993f4d56a9..b80ec1e801 100644
      generate_xcode_project.commands = @$(QMAKE) -spec macx-xcode \"$(EXPORT__PRO_FILE_)\" $$QMAKE_ARGS
      generate_xcode_project.target = xcodeproj
 diff --git a/mkspecs/features/mac/default_pre.prf b/mkspecs/features/mac/default_pre.prf
-index e3534561a5..3b01424e67 100644
+index e3534561..3b01424e 100644
 --- a/mkspecs/features/mac/default_pre.prf
 +++ b/mkspecs/features/mac/default_pre.prf
 @@ -1,60 +1,2 @@
@@ -303,7 +290,7 @@ index e3534561a5..3b01424e67 100644
 -xcode_copy_phase_strip_setting.value = NO
 -QMAKE_MAC_XCODE_SETTINGS += xcode_copy_phase_strip_setting
 diff --git a/mkspecs/features/mac/sdk.mk b/mkspecs/features/mac/sdk.mk
-index c40f58c987..e69de29bb2 100644
+index c40f58c9..e69de29b 100644
 --- a/mkspecs/features/mac/sdk.mk
 +++ b/mkspecs/features/mac/sdk.mk
 @@ -1,25 +0,0 @@
@@ -333,7 +320,7 @@ index c40f58c987..e69de29bb2 100644
 -    endif
 -endif
 diff --git a/mkspecs/features/mac/sdk.prf b/mkspecs/features/mac/sdk.prf
-index 3a9c2778bb..e69de29bb2 100644
+index 3a9c2778..e69de29b 100644
 --- a/mkspecs/features/mac/sdk.prf
 +++ b/mkspecs/features/mac/sdk.prf
 @@ -1,61 +0,0 @@
@@ -398,6 +385,3 @@ index 3a9c2778bb..e69de29bb2 100644
 -    $$tool = $$sysrooted $$member(value, 1, -1)
 -    cache($$tool_variable, set stash, $$tool)
 -}
--- 
-2.23.GIT
-
diff --git a/pkgs/development/libraries/qt-5/5.12/qtlocation-gcc-9.patch b/pkgs/development/libraries/qt-5/5.12/qtlocation-gcc-9.patch
new file mode 100644
index 00000000000..1791313e560
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.12/qtlocation-gcc-9.patch
@@ -0,0 +1,21 @@
+diff --git a/src/3rdparty/mapbox-gl-native/platform/default/bidi.cpp b/src/3rdparty/mapbox-gl-native/platform/default/bidi.cpp
+index d475c38..c1710a6 100644
+--- a/src/3rdparty/mapbox-gl-native/platform/default/bidi.cpp
++++ b/src/3rdparty/mapbox-gl-native/platform/default/bidi.cpp
+@@ -5,6 +5,7 @@
+ #include <unicode/ushape.h>
+ 
+ #include <memory>
++#include <stdexcept>
+ 
+ namespace mbgl {
+ 
+diff --git a/src/3rdparty/mapbox-gl-native/src/mbgl/util/convert.cpp b/src/3rdparty/mapbox-gl-native/src/mbgl/util/convert.cpp
+index 97bfe91..56d3e17 100644
+--- a/src/3rdparty/mapbox-gl-native/src/mbgl/util/convert.cpp
++++ b/src/3rdparty/mapbox-gl-native/src/mbgl/util/convert.cpp
+@@ -1,3 +1,4 @@
++#include <cstdint>
+ #include <mbgl/util/convert.hpp>
+ 
+ namespace mbgl {
diff --git a/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-no-platform-check.patch b/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-no-platform-check.patch
index 8ed3fe59a5a..cd2343e42ca 100644
--- a/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-no-platform-check.patch
+++ b/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-no-platform-check.patch
@@ -1,5 +1,5 @@
 diff --git a/configure.pri b/configure.pri
-index 897bea54..6f834c20 100644
+index 897bea540..6f834c202 100644
 --- a/configure.pri
 +++ b/configure.pri
 @@ -269,7 +269,7 @@ defineReplace(webEngineGetMacOSVersion) {
@@ -12,7 +12,7 @@ index 897bea54..6f834c20 100644
  }
  
 diff --git a/mkspecs/features/platform.prf b/mkspecs/features/platform.prf
-index 35eb6b89..7eed640a 100644
+index 35eb6b89c..7eed640a5 100644
 --- a/mkspecs/features/platform.prf
 +++ b/mkspecs/features/platform.prf
 @@ -40,8 +40,6 @@ defineTest(isPlatformSupported) {
@@ -43,10 +43,10 @@ index 35eb6b89..7eed640a 100644
      isEmpty(WEBENGINE_OSX_SDK_PRODUCT_VERSION) {
          skipBuild("Could not resolve SDK product version for \'$$QMAKE_MAC_SDK\'.")
 diff --git a/src/core/config/mac_osx.pri b/src/core/config/mac_osx.pri
-index 4426901c..3aa6057e 100644
+index 7b77a8bf7..0e1284ee4 100644
 --- a/src/core/config/mac_osx.pri
 +++ b/src/core/config/mac_osx.pri
-@@ -5,16 +5,16 @@ load(functions)
+@@ -5,7 +5,7 @@ load(functions)
  # otherwise query for it.
  QMAKE_MAC_SDK_VERSION = $$eval(QMAKE_MAC_SDK.$${QMAKE_MAC_SDK}.SDKVersion)
  isEmpty(QMAKE_MAC_SDK_VERSION) {
@@ -55,17 +55,15 @@ index 4426901c..3aa6057e 100644
       isEmpty(QMAKE_MAC_SDK_VERSION): error("Could not resolve SDK version for \'$${QMAKE_MAC_SDK}\'")
  }
  
+@@ -14,11 +14,6 @@ isEmpty(QMAKE_MAC_SDK_VERSION) {
+ QMAKE_MAC_SDK_VERSION_MAJOR_MINOR = $$section(QMAKE_MAC_SDK_VERSION, ".", 0, 1)
+ 
  QMAKE_CLANG_DIR = "/usr"
 -QMAKE_CLANG_PATH = $$eval(QMAKE_MAC_SDK.macx-clang.$${QMAKE_MAC_SDK}.QMAKE_CXX)
 -!isEmpty(QMAKE_CLANG_PATH) {
 -    clang_dir = $$clean_path("$$dirname(QMAKE_CLANG_PATH)/../")
 -    exists($$clang_dir): QMAKE_CLANG_DIR = $$clang_dir
 -}
-+# QMAKE_CLANG_PATH = $$eval(QMAKE_MAC_SDK.macx-clang.$${QMAKE_MAC_SDK}.QMAKE_CXX)
-+# !isEmpty(QMAKE_CLANG_PATH) {
-+#     clang_dir = $$clean_path("$$dirname(QMAKE_CLANG_PATH)/../")
-+#     exists($$clang_dir): QMAKE_CLANG_DIR = $$clang_dir
-+# }
  
  QMAKE_CLANG_PATH = "$${QMAKE_CLANG_DIR}/bin/clang++"
  message("Using clang++ from $${QMAKE_CLANG_PATH}")
diff --git a/pkgs/development/libraries/qt-5/5.12/srcs.nix b/pkgs/development/libraries/qt-5/5.12/srcs.nix
index 293d017c2dc..f2ed6d13714 100644
--- a/pkgs/development/libraries/qt-5/5.12/srcs.nix
+++ b/pkgs/development/libraries/qt-5/5.12/srcs.nix
@@ -1,325 +1,326 @@
-# DO NOT EDIT! This file is generated automatically by fetch-kde-qt.sh
+# DO NOT EDIT! This file is generated automatically.
+# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/qt-5/5.12
 { fetchurl, mirror }:
 
 {
   qt3d = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qt3d-everywhere-src-5.12.7.tar.xz";
-      sha256 = "2030de3dc93fd4062f677f61938229af9cd7aa4c3d2932cdda2ccb663d681126";
-      name = "qt3d-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qt3d-everywhere-src-5.12.9.tar.xz";
+      sha256 = "6fcde8c99bc5d09a5d2de99cab10c6f662d7db48139e6d5a3904fa0c580070ad";
+      name = "qt3d-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtactiveqt = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtactiveqt-everywhere-src-5.12.7.tar.xz";
-      sha256 = "302ce1e74dae8ead602ac663e208e6c9b98bdf9a2b7795de4198a28eba2d895d";
-      name = "qtactiveqt-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtactiveqt-everywhere-src-5.12.9.tar.xz";
+      sha256 = "e9df2dacfa4f93b42753066d14d3c504a30b259c177b366e32e6119f714f6527";
+      name = "qtactiveqt-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtandroidextras = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtandroidextras-everywhere-src-5.12.7.tar.xz";
-      sha256 = "a5acc927bd46ed87627e2ae0f0bfc199189d383a3e17c2f34b8c34ea57b2aea1";
-      name = "qtandroidextras-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtandroidextras-everywhere-src-5.12.9.tar.xz";
+      sha256 = "d6ab58d382feb1d79b7f28033eaa15ecab0c1f97c760fad50f20608189ab1a95";
+      name = "qtandroidextras-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtbase = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtbase-everywhere-src-5.12.7.tar.xz";
-      sha256 = "b18939cb25d90aef8721fb12ec34c3632d3490ced958e41f6c7a52064643665d";
-      name = "qtbase-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtbase-everywhere-src-5.12.9.tar.xz";
+      sha256 = "331dafdd0f3e8623b51bd0da2266e7e7c53aa8e9dc28a8eb6f0b22609c5d337e";
+      name = "qtbase-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtcanvas3d = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtcanvas3d-everywhere-src-5.12.7.tar.xz";
-      sha256 = "b63a513a2ee11548b122e0fd640b1fa22d3eb83cdc51ddfdf3b97c2ecd0d0c50";
-      name = "qtcanvas3d-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtcanvas3d-everywhere-src-5.12.9.tar.xz";
+      sha256 = "351b105507b97e61eef17a5ce8a96fe090a523101e41c20ea373266203dd3ca0";
+      name = "qtcanvas3d-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtcharts = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtcharts-everywhere-src-5.12.7.tar.xz";
-      sha256 = "434065526d0b1d8921e96cc1827b1a3579e073b930fe536455c4c1da2f15cf5f";
-      name = "qtcharts-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtcharts-everywhere-src-5.12.9.tar.xz";
+      sha256 = "9fc2a64a96b73746389c257684af557e70c5360bead53d61d059f968efdc5b04";
+      name = "qtcharts-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtconnectivity = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtconnectivity-everywhere-src-5.12.7.tar.xz";
-      sha256 = "647148b9b1a0d3e54f788b66797b81bb87434faf6fb12ac481f9165eda0d071a";
-      name = "qtconnectivity-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtconnectivity-everywhere-src-5.12.9.tar.xz";
+      sha256 = "e5457ebc22059954bba6a08b03fd1e6f30e4c8f3146636065bf12c2e6044f41c";
+      name = "qtconnectivity-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtdatavis3d = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtdatavis3d-everywhere-src-5.12.7.tar.xz";
-      sha256 = "07ff5713cfcdf073681d905912e8d871e4451508494c789df805eb241ed98b27";
-      name = "qtdatavis3d-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtdatavis3d-everywhere-src-5.12.9.tar.xz";
+      sha256 = "0cd4f7535bf26e4e59f89fac991fc8a400bd6193680578f31693235f185f4562";
+      name = "qtdatavis3d-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtdeclarative = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtdeclarative-everywhere-src-5.12.7.tar.xz";
-      sha256 = "5cdc05a035f240ab73b6b37dd3831c1350cd80e5799da47929974085f6eae9bd";
-      name = "qtdeclarative-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtdeclarative-everywhere-src-5.12.9.tar.xz";
+      sha256 = "c11ae68aedcdea7e721ec22a95265ac91b5e128a5c12d3b61b5b732d3a02be80";
+      name = "qtdeclarative-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtdoc = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtdoc-everywhere-src-5.12.7.tar.xz";
-      sha256 = "6c07918cec8494ea05a42234d8f281a2958de7380458f3fb5a189949ce1233e9";
-      name = "qtdoc-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtdoc-everywhere-src-5.12.9.tar.xz";
+      sha256 = "a9d751af85a07bdfc2a30e8f1b08aa249547a8100801f286e77280a9c9ede624";
+      name = "qtdoc-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtgamepad = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtgamepad-everywhere-src-5.12.7.tar.xz";
-      sha256 = "07638c42be94be1e5e622b020c6192341b5bb87be34d7b38f2899672d83a1e94";
-      name = "qtgamepad-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtgamepad-everywhere-src-5.12.9.tar.xz";
+      sha256 = "da3333af6b9dccd7dd3a25b01de65e317fe4b70b9d39eeb84e01c232063211fe";
+      name = "qtgamepad-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtgraphicaleffects = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtgraphicaleffects-everywhere-src-5.12.7.tar.xz";
-      sha256 = "02f0328420c623da8f9ae949fec01e99ba84213dd2ad559cb00c204502bbcace";
-      name = "qtgraphicaleffects-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtgraphicaleffects-everywhere-src-5.12.9.tar.xz";
+      sha256 = "1eb4b913d5cb6d0b46a231288b9717f4785fbd212936e98a8b2a8c9024e3a8bf";
+      name = "qtgraphicaleffects-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtimageformats = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtimageformats-everywhere-src-5.12.7.tar.xz";
-      sha256 = "9bd19ee24fb85f249d01c78e637c95377dd738feb61da0deeee6b770fa62f70b";
-      name = "qtimageformats-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtimageformats-everywhere-src-5.12.9.tar.xz";
+      sha256 = "cd8193698f830cce30959564c191e7bb698877aca3a263c652b4a23907c72b6a";
+      name = "qtimageformats-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtlocation = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtlocation-everywhere-src-5.12.7.tar.xz";
-      sha256 = "d1e905b80befda3c9aaad92ea984e6dbf722568b5c91e8d15b027bc5bc22781f";
-      name = "qtlocation-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtlocation-everywhere-src-5.12.9.tar.xz";
+      sha256 = "be31870104af2910690850c4e28bab3ccb76f1aa8deef1e870bcbc6b276aa2c1";
+      name = "qtlocation-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtmacextras = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtmacextras-everywhere-src-5.12.7.tar.xz";
-      sha256 = "265b5607664927e1c92af3abc4b034244f37abd83db1f0a8f22f6952f7d6abb8";
-      name = "qtmacextras-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtmacextras-everywhere-src-5.12.9.tar.xz";
+      sha256 = "5458f3e13c37eb8bff8588b29703fb33b61d5ea19989c56c99d36f221e269f35";
+      name = "qtmacextras-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtmultimedia = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtmultimedia-everywhere-src-5.12.7.tar.xz";
-      sha256 = "28bdaa81371f922223775ae5171c4d589a2c07f255abbe5ccf130ecbbdb4db1d";
-      name = "qtmultimedia-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtmultimedia-everywhere-src-5.12.9.tar.xz";
+      sha256 = "59a2f2418cefe030094687dff0846fb8957abbc0e060501a4fee40cb4a52838c";
+      name = "qtmultimedia-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtnetworkauth = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtnetworkauth-everywhere-src-5.12.7.tar.xz";
-      sha256 = "cbfb7c71a25e74b92b927a5aeae2d099e4142968424a0fcebc1a52fa4fb4576b";
-      name = "qtnetworkauth-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtnetworkauth-everywhere-src-5.12.9.tar.xz";
+      sha256 = "a0979689eda667e299fd9cf5a8859bd9c37eabc0a6d9738103a1143035baf0e4";
+      name = "qtnetworkauth-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtpurchasing = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtpurchasing-everywhere-src-5.12.7.tar.xz";
-      sha256 = "6f7ecb1e6b6d290b268344ddb031bb7114cd36139c76323732d12661eeb15a76";
-      name = "qtpurchasing-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtpurchasing-everywhere-src-5.12.9.tar.xz";
+      sha256 = "565587811b3cfd201907d3fcbf7120783de32a4d1d3c59a9efff3720cf0af3e5";
+      name = "qtpurchasing-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtquickcontrols = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtquickcontrols-everywhere-src-5.12.7.tar.xz";
-      sha256 = "1038bbc76bba53f9634f40cd9c8ebf0ed8ae82e791f727b228bd81bdcf1859e5";
-      name = "qtquickcontrols-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtquickcontrols-everywhere-src-5.12.9.tar.xz";
+      sha256 = "d89084ebccf155f4c966d4a2a188e6e870c37535a7751740960f5c38088373f6";
+      name = "qtquickcontrols-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtquickcontrols2 = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtquickcontrols2-everywhere-src-5.12.7.tar.xz";
-      sha256 = "3a9526e5ad01edbfb796a6631983c391ea1b7e22ae6e07840048156a9e92a237";
-      name = "qtquickcontrols2-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtquickcontrols2-everywhere-src-5.12.9.tar.xz";
+      sha256 = "ea1c2864630c6ba2540228f81ec5b582619d5ce9e4cb98e91109b4181a65a31d";
+      name = "qtquickcontrols2-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtremoteobjects = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtremoteobjects-everywhere-src-5.12.7.tar.xz";
-      sha256 = "6d6aaec4e9c140c027b0badaabc6322ea3c16cf649495a27fec1f261e891120f";
-      name = "qtremoteobjects-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtremoteobjects-everywhere-src-5.12.9.tar.xz";
+      sha256 = "f87af7e9931280f2b44a529dc174cae14247e1b50f9dc9bde8966adb0406babd";
+      name = "qtremoteobjects-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtscript = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtscript-everywhere-src-5.12.7.tar.xz";
-      sha256 = "ca1dbc66d4125a678638dd0c9c030b72fdfc4ec2c229b9316a8bc80a86104019";
-      name = "qtscript-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtscript-everywhere-src-5.12.9.tar.xz";
+      sha256 = "8f2e12e37ff1e7629923cf3b9d446f85e005b2248386e33879ba3b790f1416df";
+      name = "qtscript-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtscxml = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtscxml-everywhere-src-5.12.7.tar.xz";
-      sha256 = "afa950bc95f881c90eea564511f3e9918d53fddf0823afb641d20dc6f794fbb6";
-      name = "qtscxml-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtscxml-everywhere-src-5.12.9.tar.xz";
+      sha256 = "d68d04d83366f11b10a101766baf5253e53ad76a683e0bc15e7dd403d475e61c";
+      name = "qtscxml-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtsensors = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtsensors-everywhere-src-5.12.7.tar.xz";
-      sha256 = "2b9aea9f4e2f681b4067f2b9d97c5073c135e41d26601c71f18f199bc980e740";
-      name = "qtsensors-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtsensors-everywhere-src-5.12.9.tar.xz";
+      sha256 = "77054e2449bcac786cc8f07c0d65c503a22bc629af4844259ff0def27b9889e9";
+      name = "qtsensors-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtserialbus = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtserialbus-everywhere-src-5.12.7.tar.xz";
-      sha256 = "82201edf971e957d849b041ab2914f7497226939c62884ec2906b37576987eae";
-      name = "qtserialbus-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtserialbus-everywhere-src-5.12.9.tar.xz";
+      sha256 = "08b16363a47f9b41f87e3b7cf63eaed2435bb6b7e27775c9717ff863e56141ed";
+      name = "qtserialbus-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtserialport = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtserialport-everywhere-src-5.12.7.tar.xz";
-      sha256 = "224c282ebed750f46b72dfe18260c3d26fbb74e928dec64bd8c51e7beed8721f";
-      name = "qtserialport-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtserialport-everywhere-src-5.12.9.tar.xz";
+      sha256 = "24a10b65b03fc598acd30f4a52b0b71218e9c03ec4bb31a4ca50aae1b52a986d";
+      name = "qtserialport-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtspeech = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtspeech-everywhere-src-5.12.7.tar.xz";
-      sha256 = "0cc4f14aa21172b84c8ebca442037cd94927dad4921f6f6bfb4d7f2468aa6060";
-      name = "qtspeech-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtspeech-everywhere-src-5.12.9.tar.xz";
+      sha256 = "2efdaf5f49d2fad4a6c4cde12dfee2ff2c66ab4298f22d6c203ecd6019186847";
+      name = "qtspeech-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtsvg = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtsvg-everywhere-src-5.12.7.tar.xz";
-      sha256 = "4bf60916d4e398d9609f1b3a17fc7345a0e13c7c1cc407298df20da4c7c67bb8";
-      name = "qtsvg-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtsvg-everywhere-src-5.12.9.tar.xz";
+      sha256 = "32ec251e411d31734b873dd82fd68b6a3142227fdf06fe6ad879f16997fb98d2";
+      name = "qtsvg-everywhere-src-5.12.9.tar.xz";
     };
   };
   qttools = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qttools-everywhere-src-5.12.7.tar.xz";
-      sha256 = "860a97114d518f83c0a9ab3742071da16bb018e6eb387179d5764a8dcca03948";
-      name = "qttools-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qttools-everywhere-src-5.12.9.tar.xz";
+      sha256 = "002dc23410a9d1af6f1cfc696ee18fd3baeddbbfeb9758ddb04bbdb17b2fffdf";
+      name = "qttools-everywhere-src-5.12.9.tar.xz";
     };
   };
   qttranslations = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qttranslations-everywhere-src-5.12.7.tar.xz";
-      sha256 = "2c8d1169f1f20ba32639181f1853b4159940cbaaac41adaa018b6f43ca31323f";
-      name = "qttranslations-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qttranslations-everywhere-src-5.12.9.tar.xz";
+      sha256 = "50bd3a329e86f14af05ef0dbef94c7a6cd6c1f89ca4d008088a44ba76e6ecf40";
+      name = "qttranslations-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtvirtualkeyboard = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtvirtualkeyboard-everywhere-src-5.12.7.tar.xz";
-      sha256 = "aaa52aaff923df22de8472d71843dadb80f3f6fe0312122e64ffe5436db40daa";
-      name = "qtvirtualkeyboard-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtvirtualkeyboard-everywhere-src-5.12.9.tar.xz";
+      sha256 = "7598ee3312a2f4e72edf363c16c506740a8b91c5c06544da068a3c0d73f7f807";
+      name = "qtvirtualkeyboard-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtwayland = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtwayland-everywhere-src-5.12.7.tar.xz";
-      sha256 = "fc1ab8e25461580e37090e4f82422411dee71a3de48a54be1f4b6569e00f66c5";
-      name = "qtwayland-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtwayland-everywhere-src-5.12.9.tar.xz";
+      sha256 = "6f416948a98586b9c13c46b36be5ac6bb96a1dde9f50123b5e6dcdd102e9d77e";
+      name = "qtwayland-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtwebchannel = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtwebchannel-everywhere-src-5.12.7.tar.xz";
-      sha256 = "b0ae72e5957aa4b281a37d2e169fcf91f92382bc36bd0cf09c80b2bb961bce75";
-      name = "qtwebchannel-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtwebchannel-everywhere-src-5.12.9.tar.xz";
+      sha256 = "d55a06a0929c86664496e1113e74425d56d175916acd8abbb95c371eb16b43eb";
+      name = "qtwebchannel-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtwebengine = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtwebengine-everywhere-src-5.12.7.tar.xz";
-      sha256 = "83b754dca3dafeb21be6c7cb5ea99f11f5dbe9055bc1680f5bd7159224bb46fa";
-      name = "qtwebengine-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtwebengine-everywhere-src-5.12.9.tar.xz";
+      sha256 = "27a9a19e4deb5e7a0fabc13e38fe5a8818730c92f6a343b9084aa17977468e25";
+      name = "qtwebengine-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtwebglplugin = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtwebglplugin-everywhere-src-5.12.7.tar.xz";
-      sha256 = "e049ed855bc772a56808844a803aac653d2d64f092a1fd1fe6a73ab460b55c3b";
-      name = "qtwebglplugin-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtwebglplugin-everywhere-src-5.12.9.tar.xz";
+      sha256 = "cb7ba4cb66900e5d4315809e2b5ad3e4e381d576a14f6224f8ea58373f997c42";
+      name = "qtwebglplugin-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtwebsockets = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtwebsockets-everywhere-src-5.12.7.tar.xz";
-      sha256 = "6fd13c2558f532a32f20d977b44c0146107a0e93861df84978e4fd72af283b17";
-      name = "qtwebsockets-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtwebsockets-everywhere-src-5.12.9.tar.xz";
+      sha256 = "08a92c36d52b4d93a539a950698bb2912ea36055015d421f874bf672637f21ef";
+      name = "qtwebsockets-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtwebview = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtwebview-everywhere-src-5.12.7.tar.xz";
-      sha256 = "d3f82d2ceab59dc4dee3b6f54f4b70869c199d63f4534b299d900cdacc9b7be7";
-      name = "qtwebview-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtwebview-everywhere-src-5.12.9.tar.xz";
+      sha256 = "3e0506411d101cc08232946bcacef2fb90884c27eb91eeb97a1a68ed3788a7b6";
+      name = "qtwebview-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtwinextras = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtwinextras-everywhere-src-5.12.7.tar.xz";
-      sha256 = "cfeec81ee1f75b9786ed28382deecc5e38fd142c0b48476beccadb587f93118c";
-      name = "qtwinextras-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtwinextras-everywhere-src-5.12.9.tar.xz";
+      sha256 = "7bab5053197148a5e1609cab12331e4a3f2e1a86bcbde137948330b288803754";
+      name = "qtwinextras-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtx11extras = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtx11extras-everywhere-src-5.12.7.tar.xz";
-      sha256 = "23895f4b1e84f3783526b9e17680df38c587601d4dfa6ff1b81ace432c480b96";
-      name = "qtx11extras-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtx11extras-everywhere-src-5.12.9.tar.xz";
+      sha256 = "09432392641b56205cbcda6be89d0835bfecad64ad61713a414b951b740c9cec";
+      name = "qtx11extras-everywhere-src-5.12.9.tar.xz";
     };
   };
   qtxmlpatterns = {
-    version = "5.12.7";
+    version = "5.12.9";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.12/5.12.7/submodules/qtxmlpatterns-everywhere-src-5.12.7.tar.xz";
-      sha256 = "9002014129a1f2a44700df333a7776e23bdfd689e7a619c3540fd9f6819b417b";
-      name = "qtxmlpatterns-everywhere-src-5.12.7.tar.xz";
+      url = "${mirror}/official_releases/qt/5.12/5.12.9/submodules/qtxmlpatterns-everywhere-src-5.12.9.tar.xz";
+      sha256 = "8d0e92fce6b4cbe7f1ecd1e90f6c7d71681b9b8870a577c0b18cadd93b8713b2";
+      name = "qtxmlpatterns-everywhere-src-5.12.9.tar.xz";
     };
   };
 }
diff --git a/pkgs/development/libraries/qt-5/5.14/default.nix b/pkgs/development/libraries/qt-5/5.14/default.nix
index b4486bf025d..926510293b5 100644
--- a/pkgs/development/libraries/qt-5/5.14/default.nix
+++ b/pkgs/development/libraries/qt-5/5.14/default.nix
@@ -8,7 +8,7 @@ top-level attribute to `top-level/all-packages.nix`.
 
 1. Update the URL in `pkgs/development/libraries/qt-5/$VERSION/fetch.sh`.
 2. From the top of the Nixpkgs tree, run
-   `./maintainers/scripts/fetch-kde-qt.sh > pkgs/development/libraries/qt-5/$VERSION/srcs.nix`.
+   `./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/qt-5/$VERSION`.
 3. Check that the new packages build correctly.
 4. Commit the changes and open a pull request.
 
@@ -75,6 +75,7 @@ let
         ./qtbase.patch.d/0011-fix-header_module.patch
       ];
     qtdeclarative = [ ./qtdeclarative.patch ];
+    qtlocation = [ ./qtlocation-gcc-9.patch ];
     qtscript = [ ./qtscript.patch ];
     qtserialport = [ ./qtserialport.patch ];
     qtwebengine = [
@@ -86,6 +87,22 @@ let
         stripLen = 1;
         extraPrefix = "src/3rdparty/";
       })
+      # Fix build with GCC 10 (part 1): https://code.qt.io/cgit/qt/qtwebengine-chromium.git/commit/?id=fad3e27b
+      (fetchpatch {
+        name = "qtwebengine-gcc10-part1.patch";
+        url = "https://code.qt.io/cgit/qt/qtwebengine-chromium.git/patch/?id=fad3e27bfb50d1e23a07577f087a826b5e00bb1d";
+        sha256 = "0c55j9zww8jyif6wl7jy1qqidgw9fdhiyfjgzhzi85r716m4pwwd";
+        stripLen = 1;
+        extraPrefix = "src/3rdparty/";
+      })
+      # Fix build with GCC 10 (part 2): https://code.qt.io/cgit/qt/qtwebengine-chromium.git/commit/?id=193c5bed
+      (fetchpatch {
+        name = "qtwebengine-gcc10-part2.patch";
+        url = "https://code.qt.io/cgit/qt/qtwebengine-chromium.git/patch/?id=193c5bed1cff123e21b7e6d12f464d6709ace2e3";
+        sha256 = "1jb6s32ara6l4rbn4h3gg95mzv8sd8dl1zpjaqwywf1w7p8ymk86";
+        stripLen = 1;
+        extraPrefix = "src/3rdparty/";
+      })
     ]
       ++ optional stdenv.isDarwin ./qtwebengine-darwin-no-platform-check.patch;
     qtwebkit = [
diff --git a/pkgs/development/libraries/qt-5/5.14/fetch.sh b/pkgs/development/libraries/qt-5/5.14/fetch.sh
index 2d266b52977..e4e02bd82ed 100644
--- a/pkgs/development/libraries/qt-5/5.14/fetch.sh
+++ b/pkgs/development/libraries/qt-5/5.14/fetch.sh
@@ -1 +1,2 @@
-WGET_ARGS=( http://download.qt.io/official_releases/qt/5.14/5.14.2/submodules/ )
+WGET_ARGS=( http://download.qt.io/official_releases/qt/5.14/5.14.2/submodules/ \
+            -A '*.tar.xz' )
diff --git a/pkgs/development/libraries/qt-5/5.14/qtlocation-gcc-9.patch b/pkgs/development/libraries/qt-5/5.14/qtlocation-gcc-9.patch
new file mode 100644
index 00000000000..1791313e560
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.14/qtlocation-gcc-9.patch
@@ -0,0 +1,21 @@
+diff --git a/src/3rdparty/mapbox-gl-native/platform/default/bidi.cpp b/src/3rdparty/mapbox-gl-native/platform/default/bidi.cpp
+index d475c38..c1710a6 100644
+--- a/src/3rdparty/mapbox-gl-native/platform/default/bidi.cpp
++++ b/src/3rdparty/mapbox-gl-native/platform/default/bidi.cpp
+@@ -5,6 +5,7 @@
+ #include <unicode/ushape.h>
+ 
+ #include <memory>
++#include <stdexcept>
+ 
+ namespace mbgl {
+ 
+diff --git a/src/3rdparty/mapbox-gl-native/src/mbgl/util/convert.cpp b/src/3rdparty/mapbox-gl-native/src/mbgl/util/convert.cpp
+index 97bfe91..56d3e17 100644
+--- a/src/3rdparty/mapbox-gl-native/src/mbgl/util/convert.cpp
++++ b/src/3rdparty/mapbox-gl-native/src/mbgl/util/convert.cpp
+@@ -1,3 +1,4 @@
++#include <cstdint>
+ #include <mbgl/util/convert.hpp>
+ 
+ namespace mbgl {
diff --git a/pkgs/development/libraries/qt-5/5.14/qtwebkit-darwin-no-readline.patch b/pkgs/development/libraries/qt-5/5.14/qtwebkit-darwin-no-readline.patch
index 26d189d8601..4871032f6f2 100644
--- a/pkgs/development/libraries/qt-5/5.14/qtwebkit-darwin-no-readline.patch
+++ b/pkgs/development/libraries/qt-5/5.14/qtwebkit-darwin-no-readline.patch
@@ -28,18 +28,3 @@ diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h
  #define HAVE_SYS_TIMEB_H 1
  
  #if !PLATFORM(GTK) && !PLATFORM(QT)
-diff --git a/Source/WTF/wtf/PlatformMac.cmake b/Source/WTF/wtf/PlatformMac.cmake
---- a/Source/WTF/wtf/PlatformMac.cmake
-+++ b/Source/WTF/wtf/PlatformMac.cmake
-@@ -2,11 +2,9 @@ set(WTF_LIBRARY_TYPE SHARED)
- 
- find_library(COCOA_LIBRARY Cocoa)
- find_library(COREFOUNDATION_LIBRARY CoreFoundation)
--find_library(READLINE_LIBRARY Readline)
- list(APPEND WTF_LIBRARIES
-     ${COREFOUNDATION_LIBRARY}
-     ${COCOA_LIBRARY}
--    ${READLINE_LIBRARY}
-     libicucore.dylib
- )
- 
diff --git a/pkgs/development/libraries/qt-5/5.15/default.nix b/pkgs/development/libraries/qt-5/5.15/default.nix
index b4486bf025d..08fd3a9720c 100644
--- a/pkgs/development/libraries/qt-5/5.15/default.nix
+++ b/pkgs/development/libraries/qt-5/5.15/default.nix
@@ -8,7 +8,7 @@ top-level attribute to `top-level/all-packages.nix`.
 
 1. Update the URL in `pkgs/development/libraries/qt-5/$VERSION/fetch.sh`.
 2. From the top of the Nixpkgs tree, run
-   `./maintainers/scripts/fetch-kde-qt.sh > pkgs/development/libraries/qt-5/$VERSION/srcs.nix`.
+   `./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/qt-5/$VERSION`.
 3. Check that the new packages build correctly.
 4. Commit the changes and open a pull request.
 
@@ -57,6 +57,12 @@ let
 
         # Downgrade minimal required SDK to 10.12
         ./qtbase.patch.d/0013-define-kiosurfacesuccess.patch
+        ./qtbase.patch.d/macos-sdk-10.12/0001-Revert-QCocoaDrag-set-image-only-on-the-first-drag-i.patch
+        ./qtbase.patch.d/macos-sdk-10.12/0002-Revert-QCocoaDrag-drag-make-sure-clipboard-is-ours-a.patch
+        ./qtbase.patch.d/macos-sdk-10.12/0003-Revert-QCocoaDrag-maybeDragMultipleItems-fix-erroneo.patch
+        ./qtbase.patch.d/macos-sdk-10.12/0004-Revert-QCocoaDrag-avoid-using-the-deprecated-API-if-.patch
+        ./qtbase.patch.d/macos-sdk-10.12/0005-Revert-macOS-Fix-use-of-deprecated-NSOffState.patch
+        ./qtbase.patch.d/macos-sdk-10.12/0006-git-checkout-v5.15.0-src-plugins-platforms-cocoa-qco.patch
         ./qtbase.patch.d/qtbase-sdk-10.12-mac.patch
 
         # Patch framework detection to support X.framework/X.tbd,
@@ -77,16 +83,7 @@ let
     qtdeclarative = [ ./qtdeclarative.patch ];
     qtscript = [ ./qtscript.patch ];
     qtserialport = [ ./qtserialport.patch ];
-    qtwebengine = [
-      # Fix build with bison-3.7: https://code.qt.io/cgit/qt/qtwebengine-chromium.git/commit/?id=1a53f599
-      (fetchpatch {
-        name = "qtwebengine-bison-3.7-build.patch";
-        url = "https://code.qt.io/cgit/qt/qtwebengine-chromium.git/patch/?id=1a53f599";
-        sha256 = "1nqpyn5fq37q7i9nasag6i14lnz0d7sld5ikqhlm8qwq9d7gbmjy";
-        stripLen = 1;
-        extraPrefix = "src/3rdparty/";
-      })
-    ]
+    qtwebengine = [ ]
       ++ optional stdenv.isDarwin ./qtwebengine-darwin-no-platform-check.patch;
     qtwebkit = [
       (fetchpatch {
diff --git a/pkgs/development/libraries/qt-5/5.15/fetch.sh b/pkgs/development/libraries/qt-5/5.15/fetch.sh
index 97829a133ca..81ceb3ef77e 100644
--- a/pkgs/development/libraries/qt-5/5.15/fetch.sh
+++ b/pkgs/development/libraries/qt-5/5.15/fetch.sh
@@ -1 +1,2 @@
-WGET_ARGS=( http://download.qt.io/official_releases/qt/5.15/5.15.0/submodules/ )
+WGET_ARGS=( http://download.qt.io/official_releases/qt/5.15/5.15.2/submodules/ \
+            -A '*.tar.xz' )
diff --git a/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0001-Revert-QCocoaDrag-set-image-only-on-the-first-drag-i.patch b/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0001-Revert-QCocoaDrag-set-image-only-on-the-first-drag-i.patch
new file mode 100644
index 00000000000..de75ecbd0c1
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0001-Revert-QCocoaDrag-set-image-only-on-the-first-drag-i.patch
@@ -0,0 +1,47 @@
+From f156c35975e7844d2369ec5a6633ee40ec56f17a Mon Sep 17 00:00:00 2001
+From: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
+Date: Mon, 7 Dec 2020 12:32:29 -0500
+Subject: [PATCH 1/6] Revert "QCocoaDrag - set image only on the first drag
+ item"
+
+This reverts commit 7ee9bfc158a290776f622f62d0202220c6d159bc.
+---
+ src/plugins/platforms/cocoa/qcocoadrag.mm | 9 ++-------
+ 1 file changed, 2 insertions(+), 7 deletions(-)
+
+diff --git a/src/plugins/platforms/cocoa/qcocoadrag.mm b/src/plugins/platforms/cocoa/qcocoadrag.mm
+index 4bd1b129bd..a506126c72 100644
+--- a/src/plugins/platforms/cocoa/qcocoadrag.mm
++++ b/src/plugins/platforms/cocoa/qcocoadrag.mm
+@@ -217,18 +217,13 @@ bool QCocoaDrag::maybeDragMultipleItems()
+     // 0. We start from URLs, which can be actually in a list (thus technically
+     // only ONE item in the pasteboard. The fact it's only one does not help, we are
+     // still getting an exception because of the number of items/images mismatch ...
+-    // We only set the image for the first item and nil for the rest, the image already
+-    // contains a combined picture for all urls we drag.
+-    auto imageOrNil = dragImage;
+     for (const auto &qtUrl : qtUrls) {
+         NSURL *nsUrl = qtUrl.toNSURL();
+         auto *newItem = [[[NSDraggingItem alloc] initWithPasteboardWriter:nsUrl] autorelease];
+         const NSRect itemFrame = NSMakeRect(itemLocation.x, itemLocation.y,
+                                             dragImage.size.width,
+                                             dragImage.size.height);
+-
+-        [newItem setDraggingFrame:itemFrame contents:imageOrNil];
+-        imageOrNil = nil;
++        [newItem setDraggingFrame:itemFrame contents:dragImage];
+         [dragItems addObject:newItem];
+     }
+     // 1. Repeat for non-url items, if any:
+@@ -237,7 +232,7 @@ bool QCocoaDrag::maybeDragMultipleItems()
+         const NSRect itemFrame = NSMakeRect(itemLocation.x, itemLocation.y,
+                                             dragImage.size.width,
+                                             dragImage.size.height);
+-        [newItem setDraggingFrame:itemFrame contents:imageOrNil];
++        [newItem setDraggingFrame:itemFrame contents:dragImage];
+         [dragItems addObject:newItem];
+     }
+ 
+-- 
+2.21.0
+
diff --git a/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0002-Revert-QCocoaDrag-drag-make-sure-clipboard-is-ours-a.patch b/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0002-Revert-QCocoaDrag-drag-make-sure-clipboard-is-ours-a.patch
new file mode 100644
index 00000000000..ee3a2d9f5a4
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0002-Revert-QCocoaDrag-drag-make-sure-clipboard-is-ours-a.patch
@@ -0,0 +1,40 @@
+From 9aaac67e3c3bf40ef3efc3b07b1655f72c8c54aa Mon Sep 17 00:00:00 2001
+From: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
+Date: Mon, 7 Dec 2020 12:32:31 -0500
+Subject: [PATCH 2/6] Revert "QCocoaDrag::drag - make sure clipboard is ours
+ and populated"
+
+This reverts commit 720e2e0c92ca6635c5f05f318770a70cf653c1c7.
+---
+ src/plugins/platforms/cocoa/qcocoadrag.mm | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/plugins/platforms/cocoa/qcocoadrag.mm b/src/plugins/platforms/cocoa/qcocoadrag.mm
+index a506126c72..c6ee4323ce 100644
+--- a/src/plugins/platforms/cocoa/qcocoadrag.mm
++++ b/src/plugins/platforms/cocoa/qcocoadrag.mm
+@@ -131,10 +131,6 @@ Qt::DropAction QCocoaDrag::drag(QDrag *o)
+     m_drag = o;
+     m_executed_drop_action = Qt::IgnoreAction;
+ 
+-    QMacPasteboard dragBoard(CFStringRef(NSPasteboardNameDrag), QMacInternalPasteboardMime::MIME_DND);
+-    m_drag->mimeData()->setData(QLatin1String("application/x-qt-mime-type-name"), QByteArray("dummy"));
+-    dragBoard.setMimeData(m_drag->mimeData(), QMacPasteboard::LazyRequest);
+-
+     if (maybeDragMultipleItems())
+         return m_executed_drop_action;
+ 
+@@ -143,6 +139,10 @@ Qt::DropAction QCocoaDrag::drag(QDrag *o)
+     NSImage *dragImage = [NSImage imageFromQImage:pm.toImage()];
+     Q_ASSERT(dragImage);
+ 
++    QMacPasteboard dragBoard(CFStringRef(NSPasteboardNameDrag), QMacInternalPasteboardMime::MIME_DND);
++    m_drag->mimeData()->setData(QLatin1String("application/x-qt-mime-type-name"), QByteArray("dummy"));
++    dragBoard.setMimeData(m_drag->mimeData(), QMacPasteboard::LazyRequest);
++
+     NSPoint event_location = [m_lastEvent locationInWindow];
+     NSWindow *theWindow = [m_lastEvent window];
+     Q_ASSERT(theWindow);
+-- 
+2.21.0
+
diff --git a/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0003-Revert-QCocoaDrag-maybeDragMultipleItems-fix-erroneo.patch b/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0003-Revert-QCocoaDrag-maybeDragMultipleItems-fix-erroneo.patch
new file mode 100644
index 00000000000..55211fca64c
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0003-Revert-QCocoaDrag-maybeDragMultipleItems-fix-erroneo.patch
@@ -0,0 +1,27 @@
+From d1626c55d10537274c6f365855342a1c619a4c3a Mon Sep 17 00:00:00 2001
+From: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
+Date: Mon, 7 Dec 2020 12:32:32 -0500
+Subject: [PATCH 3/6] Revert "QCocoaDrag::maybeDragMultipleItems - fix
+ erroneous size check"
+
+This reverts commit b8a03411784803c07ecc1f769860756d6fdc04cd.
+---
+ src/plugins/platforms/cocoa/qcocoadrag.mm | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/plugins/platforms/cocoa/qcocoadrag.mm b/src/plugins/platforms/cocoa/qcocoadrag.mm
+index c6ee4323ce..ab6863a432 100644
+--- a/src/plugins/platforms/cocoa/qcocoadrag.mm
++++ b/src/plugins/platforms/cocoa/qcocoadrag.mm
+@@ -187,7 +187,7 @@ bool QCocoaDrag::maybeDragMultipleItems()
+     const auto &qtUrls = m_drag->mimeData()->urls();
+     NSPasteboard *dragBoard = [NSPasteboard pasteboardWithName:NSPasteboardNameDrag];
+ 
+-    if (qtUrls.size() <= 1) {
++    if (int(dragBoard.pasteboardItems.count) == 1 && qtUrls.size() <= 1) {
+         // Good old -dragImage: works perfectly for this ...
+         return false;
+     }
+-- 
+2.21.0
+
diff --git a/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0004-Revert-QCocoaDrag-avoid-using-the-deprecated-API-if-.patch b/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0004-Revert-QCocoaDrag-avoid-using-the-deprecated-API-if-.patch
new file mode 100644
index 00000000000..7b568a91943
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0004-Revert-QCocoaDrag-avoid-using-the-deprecated-API-if-.patch
@@ -0,0 +1,192 @@
+From d5c155a9f3ff38e28ac073f6df43175724ebc290 Mon Sep 17 00:00:00 2001
+From: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
+Date: Mon, 7 Dec 2020 12:32:34 -0500
+Subject: [PATCH 4/6] Revert "QCocoaDrag - avoid using the deprecated API if
+ possible"
+
+This reverts commit 8481a9fc974a1f1dd44a9f82decb18fe2290689f.
+---
+ src/plugins/platforms/cocoa/qcocoadrag.h      |  6 --
+ src/plugins/platforms/cocoa/qcocoadrag.mm     | 90 -------------------
+ .../platforms/cocoa/qnsview_dragging.mm       |  9 +-
+ 3 files changed, 1 insertion(+), 104 deletions(-)
+
+diff --git a/src/plugins/platforms/cocoa/qcocoadrag.h b/src/plugins/platforms/cocoa/qcocoadrag.h
+index 975741c270..5a5b985c6e 100644
+--- a/src/plugins/platforms/cocoa/qcocoadrag.h
++++ b/src/plugins/platforms/cocoa/qcocoadrag.h
+@@ -48,8 +48,6 @@
+ #include <QtGui/private/qdnd_p.h>
+ #include <QtGui/private/qinternalmimedata_p.h>
+ 
+-#include <QtCore/qeventloop.h>
+-
+ QT_BEGIN_NAMESPACE
+ 
+ class QCocoaDrag : public QPlatformDrag
+@@ -71,15 +69,11 @@ public:
+     void setLastMouseEvent(NSEvent *event, NSView *view);
+ 
+     void setAcceptedAction(Qt::DropAction act);
+-    void exitDragLoop();
+ private:
+     QDrag *m_drag;
+     NSEvent *m_lastEvent;
+     NSView *m_lastView;
+     Qt::DropAction m_executed_drop_action;
+-    QEventLoop internalDragLoop;
+-
+-    bool maybeDragMultipleItems();
+ 
+     QPixmap dragPixmap(QDrag *drag, QPoint &hotSpot) const;
+ };
+diff --git a/src/plugins/platforms/cocoa/qcocoadrag.mm b/src/plugins/platforms/cocoa/qcocoadrag.mm
+index ab6863a432..b4a16ab912 100644
+--- a/src/plugins/platforms/cocoa/qcocoadrag.mm
++++ b/src/plugins/platforms/cocoa/qcocoadrag.mm
+@@ -44,9 +44,6 @@
+ #include <QtWidgets/qwidget.h>
+ #endif
+ #include <QtGui/private/qcoregraphics_p.h>
+-#include <QtCore/qsysinfo.h>
+-
+-#include <vector>
+ 
+ QT_BEGIN_NAMESPACE
+ 
+@@ -131,9 +128,6 @@ Qt::DropAction QCocoaDrag::drag(QDrag *o)
+     m_drag = o;
+     m_executed_drop_action = Qt::IgnoreAction;
+ 
+-    if (maybeDragMultipleItems())
+-        return m_executed_drop_action;
+-
+     QPoint hotSpot = m_drag->hotSpot();
+     QPixmap pm = dragPixmap(m_drag, hotSpot);
+     NSImage *dragImage = [NSImage imageFromQImage:pm.toImage()];
+@@ -164,95 +158,11 @@ Qt::DropAction QCocoaDrag::drag(QDrag *o)
+     return m_executed_drop_action;
+ }
+ 
+-bool QCocoaDrag::maybeDragMultipleItems()
+-{
+-    Q_ASSERT(m_drag && m_drag->mimeData());
+-    Q_ASSERT(m_executed_drop_action == Qt::IgnoreAction);
+-
+-    if (QOperatingSystemVersion::current() < QOperatingSystemVersion::MacOSMojave) {
+-        // -dragImage: stopped working in 10.14 first.
+-        return false;
+-    }
+-
+-    const QMacAutoReleasePool pool;
+-
+-    NSWindow *theWindow = [m_lastEvent window];
+-    Q_ASSERT(theWindow);
+-
+-    if (![theWindow.contentView respondsToSelector:@selector(draggingSession:sourceOperationMaskForDraggingContext:)])
+-        return false;
+-
+-    auto *sourceView = static_cast<NSView<NSDraggingSource>*>(theWindow.contentView);
+-
+-    const auto &qtUrls = m_drag->mimeData()->urls();
+-    NSPasteboard *dragBoard = [NSPasteboard pasteboardWithName:NSPasteboardNameDrag];
+-
+-    if (int(dragBoard.pasteboardItems.count) == 1 && qtUrls.size() <= 1) {
+-        // Good old -dragImage: works perfectly for this ...
+-        return false;
+-    }
+-
+-    std::vector<NSPasteboardItem *> nonUrls;
+-    for (NSPasteboardItem *item in dragBoard.pasteboardItems) {
+-        bool isUrl = false;
+-        for (NSPasteboardType type in item.types) {
+-            using NSStringRef = NSString *;
+-            if ([type isEqualToString:NSStringRef(kUTTypeFileURL)]) {
+-                isUrl = true;
+-                break;
+-            }
+-        }
+-
+-        if (!isUrl)
+-            nonUrls.push_back(item);
+-    }
+-
+-    QPoint hotSpot = m_drag->hotSpot();
+-    const auto pixmap = dragPixmap(m_drag, hotSpot);
+-    NSImage *dragImage = [NSImage imageFromQImage:pixmap.toImage()];
+-    Q_ASSERT(dragImage);
+-
+-    NSMutableArray<NSDraggingItem *> *dragItems = [[[NSMutableArray alloc] init] autorelease];
+-    const NSPoint itemLocation = m_drag->hotSpot().toCGPoint();
+-    // 0. We start from URLs, which can be actually in a list (thus technically
+-    // only ONE item in the pasteboard. The fact it's only one does not help, we are
+-    // still getting an exception because of the number of items/images mismatch ...
+-    for (const auto &qtUrl : qtUrls) {
+-        NSURL *nsUrl = qtUrl.toNSURL();
+-        auto *newItem = [[[NSDraggingItem alloc] initWithPasteboardWriter:nsUrl] autorelease];
+-        const NSRect itemFrame = NSMakeRect(itemLocation.x, itemLocation.y,
+-                                            dragImage.size.width,
+-                                            dragImage.size.height);
+-        [newItem setDraggingFrame:itemFrame contents:dragImage];
+-        [dragItems addObject:newItem];
+-    }
+-    // 1. Repeat for non-url items, if any:
+-    for (auto *pbItem : nonUrls) {
+-        auto *newItem = [[[NSDraggingItem alloc] initWithPasteboardWriter:pbItem] autorelease];
+-        const NSRect itemFrame = NSMakeRect(itemLocation.x, itemLocation.y,
+-                                            dragImage.size.width,
+-                                            dragImage.size.height);
+-        [newItem setDraggingFrame:itemFrame contents:dragImage];
+-        [dragItems addObject:newItem];
+-    }
+-
+-    [sourceView beginDraggingSessionWithItems:dragItems event:m_lastEvent source:sourceView];
+-    internalDragLoop.exec();
+-    return true;
+-}
+-
+ void QCocoaDrag::setAcceptedAction(Qt::DropAction act)
+ {
+     m_executed_drop_action = act;
+ }
+ 
+-void QCocoaDrag::exitDragLoop()
+-{
+-    if (internalDragLoop.isRunning())
+-        internalDragLoop.exit();
+-}
+-
+-
+ QPixmap QCocoaDrag::dragPixmap(QDrag *drag, QPoint &hotSpot) const
+ {
+     const QMimeData* data = drag->mimeData();
+diff --git a/src/plugins/platforms/cocoa/qnsview_dragging.mm b/src/plugins/platforms/cocoa/qnsview_dragging.mm
+index 978d73f7d9..463e3c5579 100644
+--- a/src/plugins/platforms/cocoa/qnsview_dragging.mm
++++ b/src/plugins/platforms/cocoa/qnsview_dragging.mm
+@@ -232,10 +232,6 @@ static QPoint mapWindowCoordinates(QWindow *source, QWindow *target, QPoint poin
+     if (!target)
+         return;
+ 
+-    auto *nativeDrag = QCocoaIntegration::instance()->drag();
+-    Q_ASSERT(nativeDrag);
+-    nativeDrag->exitDragLoop();
+-
+     QPoint windowPoint = QPointF::fromCGPoint([self convertPoint:sender.draggingLocation fromView:nil]).toPoint();
+ 
+     qCDebug(lcQpaMouse) << QEvent::DragLeave << self << "at" << windowPoint;
+@@ -294,10 +290,7 @@ static QPoint mapWindowCoordinates(QWindow *source, QWindow *target, QPoint poin
+     if (!target)
+         return;
+ 
+-    QCocoaDrag* nativeDrag = QCocoaIntegration::instance()->drag();
+-    Q_ASSERT(nativeDrag);
+-    nativeDrag->exitDragLoop();
+-    nativeDrag->setAcceptedAction(qt_mac_mapNSDragOperation(operation));
++    QCocoaIntegration::instance()->drag();
+ 
+     // Qt starts drag-and-drop on a mouse button press event. Cococa in
+     // this case won't send the matching release event, so we have to
+-- 
+2.21.0
+
diff --git a/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0005-Revert-macOS-Fix-use-of-deprecated-NSOffState.patch b/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0005-Revert-macOS-Fix-use-of-deprecated-NSOffState.patch
new file mode 100644
index 00000000000..f93f8005598
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0005-Revert-macOS-Fix-use-of-deprecated-NSOffState.patch
@@ -0,0 +1,26 @@
+From e55ca5d08b29e67b699dc217abcb65e4a7655f72 Mon Sep 17 00:00:00 2001
+From: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
+Date: Mon, 7 Dec 2020 12:32:37 -0500
+Subject: [PATCH 5/6] Revert "macOS: Fix use of deprecated NSOffState"
+
+This reverts commit 6a0995525d306a1fa224adcbcb9f0ae1fc7d01bd.
+---
+ src/plugins/styles/mac/qmacstyle_mac.mm | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/plugins/styles/mac/qmacstyle_mac.mm b/src/plugins/styles/mac/qmacstyle_mac.mm
+index d1febd81d4..b5e6e60ec0 100644
+--- a/src/plugins/styles/mac/qmacstyle_mac.mm
++++ b/src/plugins/styles/mac/qmacstyle_mac.mm
+@@ -3955,7 +3955,7 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter
+                     pbCell = static_cast<NSPopUpButtonCell *>(pb.cell);
+                     oldPosition = pbCell.arrowPosition;
+                     pbCell.arrowPosition = NSPopUpNoArrow;
+-                    if (pb.state == NSControlStateValueOff) {
++                    if (pb.state == NSOffState) {
+                         // NSPopUpButton in this state is smaller.
+                         rAdjusted.origin.x -= 3;
+                         rAdjusted.size.width += 6;
+-- 
+2.21.0
+
diff --git a/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0006-git-checkout-v5.15.0-src-plugins-platforms-cocoa-qco.patch b/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0006-git-checkout-v5.15.0-src-plugins-platforms-cocoa-qco.patch
new file mode 100644
index 00000000000..b5c634aff76
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/macos-sdk-10.12/0006-git-checkout-v5.15.0-src-plugins-platforms-cocoa-qco.patch
@@ -0,0 +1,77 @@
+From 3ce5e752c66307f905fdf732b102a396d9248fbb Mon Sep 17 00:00:00 2001
+From: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
+Date: Mon, 7 Dec 2020 13:22:02 -0500
+Subject: [PATCH 6/6] git checkout v5.15.0 --
+ src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm
+
+---
+ .../cocoa/qcocoacolordialoghelper.mm          | 50 +++++++++----------
+ 1 file changed, 25 insertions(+), 25 deletions(-)
+
+diff --git a/src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm b/src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm
+index 5ad1f9d7bb..c9fa035d87 100644
+--- a/src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm
++++ b/src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm
+@@ -180,34 +180,34 @@ QT_NAMESPACE_ALIAS_OBJC_CLASS(QNSColorPanelDelegate);
+ 
+ - (void)updateQtColor
+ {
+-    // Discard the color space and pass the color components to QColor. This
+-    // is a good option as long as QColor is color-unmanaged: we preserve the
+-    // exact RGB value from the color picker, which is predictable. Further,
+-    // painting with the color will reproduce the same color on-screen, as
+-    // long as the the same screen is used for selecting the color.
+-    NSColor *componentColor = [[mColorPanel color] colorUsingType:NSColorTypeComponentBased];
+-    switch (componentColor.colorSpace.colorSpaceModel)
+-    {
+-    case NSColorSpaceModelGray: {
+-        CGFloat white = 0, alpha = 0;
+-        [componentColor getWhite:&white alpha:&alpha];
+-        mQtColor.setRgbF(white, white, white, alpha);
+-    } break;
+-    case NSColorSpaceModelRGB: {
+-        CGFloat red = 0, green = 0, blue = 0, alpha = 0;
+-        [componentColor getRed:&red green:&green blue:&blue alpha:&alpha];
+-        mQtColor.setRgbF(red, green, blue, alpha);
+-    } break;
+-    case NSColorSpaceModelCMYK: {
++    NSColor *color = [mColorPanel color];
++    NSString *colorSpaceName = [color colorSpaceName];
++    if (colorSpaceName == NSDeviceCMYKColorSpace) {
+         CGFloat cyan = 0, magenta = 0, yellow = 0, black = 0, alpha = 0;
+-        [componentColor getCyan:&cyan magenta:&magenta yellow:&yellow black:&black alpha:&alpha];
++        [color getCyan:&cyan magenta:&magenta yellow:&yellow black:&black alpha:&alpha];
+         mQtColor.setCmykF(cyan, magenta, yellow, black, alpha);
+-    } break;
+-    default:
+-        qWarning("QNSColorPanelDelegate: Unsupported color space model");
+-    break;
++    } else if (colorSpaceName == NSCalibratedRGBColorSpace || colorSpaceName == NSDeviceRGBColorSpace)  {
++        CGFloat red = 0, green = 0, blue = 0, alpha = 0;
++        [color getRed:&red green:&green blue:&blue alpha:&alpha];
++        mQtColor.setRgbF(red, green, blue, alpha);
++    } else if (colorSpaceName == NSNamedColorSpace) {
++        NSColor *tmpColor = [color colorUsingColorSpaceName:NSCalibratedRGBColorSpace];
++        CGFloat red = 0, green = 0, blue = 0, alpha = 0;
++        [tmpColor getRed:&red green:&green blue:&blue alpha:&alpha];
++        mQtColor.setRgbF(red, green, blue, alpha);
++    } else {
++        NSColorSpace *colorSpace = [color colorSpace];
++        if ([colorSpace colorSpaceModel] == NSCMYKColorSpaceModel && [color numberOfComponents] == 5){
++            CGFloat components[5];
++            [color getComponents:components];
++            mQtColor.setCmykF(components[0], components[1], components[2], components[3], components[4]);
++        } else {
++            NSColor *tmpColor = [color colorUsingColorSpaceName:NSCalibratedRGBColorSpace];
++            CGFloat red = 0, green = 0, blue = 0, alpha = 0;
++            [tmpColor getRed:&red green:&green blue:&blue alpha:&alpha];
++            mQtColor.setRgbF(red, green, blue, alpha);
++        }
+     }
+-
+     if (mHelper)
+         emit mHelper->currentColorChanged(mQtColor);
+ }
+-- 
+2.21.0
+
diff --git a/pkgs/development/libraries/qt-5/5.15/srcs.nix b/pkgs/development/libraries/qt-5/5.15/srcs.nix
index c88e896286e..70e9c3a8022 100644
--- a/pkgs/development/libraries/qt-5/5.15/srcs.nix
+++ b/pkgs/development/libraries/qt-5/5.15/srcs.nix
@@ -4,339 +4,339 @@
 
 {
   qt3d = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qt3d-everywhere-src-5.15.0.tar.xz";
-      sha256 = "61856f0c453b79e98b7a1e65ea8f59976fa78230ffa8dec959b5f4b45383dffd";
-      name = "qt3d-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qt3d-everywhere-src-5.15.2.tar.xz";
+      sha256 = "03ed6a48c813c75296c19f5d721184ab168280b69d2656cf16f877d3d4c55c1d";
+      name = "qt3d-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtactiveqt = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtactiveqt-everywhere-src-5.15.0.tar.xz";
-      sha256 = "1b455eacfb9ef49912d7a79040ea409a6ab88dfa192d313e6b5e02a79d741b51";
-      name = "qtactiveqt-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtactiveqt-everywhere-src-5.15.2.tar.xz";
+      sha256 = "868161fee0876d17079cd5bed58d1667bf19ffd0018cbe515129f11510ad2a5c";
+      name = "qtactiveqt-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtandroidextras = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtandroidextras-everywhere-src-5.15.0.tar.xz";
-      sha256 = "c9019185221e94e37e250c84acaebfb7b2f5342e8ad60cdcff052ac2b85ec671";
-      name = "qtandroidextras-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtandroidextras-everywhere-src-5.15.2.tar.xz";
+      sha256 = "5813278690d89a9c232eccf697fc280034de6f9f02a7c40d95ad5fcf8ac8dabd";
+      name = "qtandroidextras-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtbase = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtbase-everywhere-src-5.15.0.tar.xz";
-      sha256 = "9e7af10aece15fa9500369efde69cb220eee8ec3a6818afe01ce1e7d484824c5";
-      name = "qtbase-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtbase-everywhere-src-5.15.2.tar.xz";
+      sha256 = "909fad2591ee367993a75d7e2ea50ad4db332f05e1c38dd7a5a274e156a4e0f8";
+      name = "qtbase-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtcharts = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtcharts-everywhere-src-5.15.0.tar.xz";
-      sha256 = "44a24fc16abcaf9ae97ecf3215f6f3b44ebdb3b73bcb4ed3549a51519e4883a7";
-      name = "qtcharts-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtcharts-everywhere-src-5.15.2.tar.xz";
+      sha256 = "e0750e4195bd8a8b9758ab4d98d437edbe273cd3d289dd6a8f325df6d13f3d11";
+      name = "qtcharts-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtconnectivity = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtconnectivity-everywhere-src-5.15.0.tar.xz";
-      sha256 = "f911fb8f8bf3a9958785d0378d25ced8989047938b7138d619854a94fa0b27dd";
-      name = "qtconnectivity-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtconnectivity-everywhere-src-5.15.2.tar.xz";
+      sha256 = "0380327871f76103e5b8c2a305988d76d352b6a982b3e7b3bc3cdc184c64bfa0";
+      name = "qtconnectivity-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtdatavis3d = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtdatavis3d-everywhere-src-5.15.0.tar.xz";
-      sha256 = "8f07747f371f7c515c667240a795105c89aa83c08d88ee92fa1ef7efccea10a3";
-      name = "qtdatavis3d-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtdatavis3d-everywhere-src-5.15.2.tar.xz";
+      sha256 = "226a6575d573ad78aca459709722c496c23aee526aa0c38eb7c93b0bea1eb6fd";
+      name = "qtdatavis3d-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtdeclarative = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtdeclarative-everywhere-src-5.15.0.tar.xz";
-      sha256 = "9c3c93fb7d340b2f7d738d12408c047318c78973cb45bfc5ff6b3a57e1fef699";
-      name = "qtdeclarative-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtdeclarative-everywhere-src-5.15.2.tar.xz";
+      sha256 = "c600d09716940f75d684f61c5bdaced797f623a86db1627da599027f6c635651";
+      name = "qtdeclarative-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtdoc = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtdoc-everywhere-src-5.15.0.tar.xz";
-      sha256 = "07ca8db98c317f25cc9a041c48a6824baf63893bf5b535d6f8d266dea8c7659f";
-      name = "qtdoc-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtdoc-everywhere-src-5.15.2.tar.xz";
+      sha256 = "a47809f00f1bd690ca4e699cb32ffe7717d43da84e0167d1f562210da7714ce4";
+      name = "qtdoc-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtgamepad = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtgamepad-everywhere-src-5.15.0.tar.xz";
-      sha256 = "dda54d9f90897944bed5e6af48a904a677fd97eb6f57ab08a2b232c431caf31a";
-      name = "qtgamepad-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtgamepad-everywhere-src-5.15.2.tar.xz";
+      sha256 = "c77611f7898326d69176ad67a9b886f617cdedc368ec29f223d63537d25b075c";
+      name = "qtgamepad-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtgraphicaleffects = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtgraphicaleffects-everywhere-src-5.15.0.tar.xz";
-      sha256 = "0d2ea4bc73b9df13a4b739dcbc1e3c7b298c7e682f7f9252b232e3bde7b63eda";
-      name = "qtgraphicaleffects-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtgraphicaleffects-everywhere-src-5.15.2.tar.xz";
+      sha256 = "ec8d67f64967d5046410490b549c576f9b9e8b47ec68594ae84aa8870173dfe4";
+      name = "qtgraphicaleffects-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtimageformats = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtimageformats-everywhere-src-5.15.0.tar.xz";
-      sha256 = "83f32101b1a898fcb8ed6f11a657d1125484ac0c2223014b61849d9010efebc8";
-      name = "qtimageformats-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtimageformats-everywhere-src-5.15.2.tar.xz";
+      sha256 = "bf8285c7ce04284527ab823ddc7cf48a1bb79131db3a7127342167f4814253d7";
+      name = "qtimageformats-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtlocation = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtlocation-everywhere-src-5.15.0.tar.xz";
-      sha256 = "c68b0778a521e5522641c41b1778999dd408ebfda1e0de166a83743268be5f3f";
-      name = "qtlocation-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtlocation-everywhere-src-5.15.2.tar.xz";
+      sha256 = "984fcb09e108df49a8dac35d5ce6dffc49caafd2acb1c2f8a5173a6a21f392a0";
+      name = "qtlocation-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtlottie = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtlottie-everywhere-src-5.15.0.tar.xz";
-      sha256 = "2053f474dcd7184fdcae2507f47af6527f6ca25b4424483f9265853c3626c833";
-      name = "qtlottie-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtlottie-everywhere-src-5.15.2.tar.xz";
+      sha256 = "cec6095ab8f714e609d2ad3ea8c4fd819461ce8793adc42abe37d0f6dc432517";
+      name = "qtlottie-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtmacextras = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtmacextras-everywhere-src-5.15.0.tar.xz";
-      sha256 = "95a8c35b30373224cdd6d1ca0bdda1a314b20e91551a4824e8ca7e50ce8ff439";
-      name = "qtmacextras-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtmacextras-everywhere-src-5.15.2.tar.xz";
+      sha256 = "6959b0f2cec71cd66800f36cab797430860e55fa33c9c23698d6a08fc2b8776e";
+      name = "qtmacextras-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtmultimedia = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtmultimedia-everywhere-src-5.15.0.tar.xz";
-      sha256 = "0708d867697f392dd3600c5c1c88f5c61b772a5250a4d059dca67b844af0fbd7";
-      name = "qtmultimedia-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtmultimedia-everywhere-src-5.15.2.tar.xz";
+      sha256 = "0c3758810e5131aabcf76e4965e4c18b8911af54d9edd9305d2a8278d8346df5";
+      name = "qtmultimedia-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtnetworkauth = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtnetworkauth-everywhere-src-5.15.0.tar.xz";
-      sha256 = "96c6107f6e85662a05f114c5b9bd3503a3100bd940e1494c73a99e77f9e7cf85";
-      name = "qtnetworkauth-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtnetworkauth-everywhere-src-5.15.2.tar.xz";
+      sha256 = "fcc2ec42faa68561efa8f00cd72e662fbc06563ebc6de1dc42d96bb2997acd85";
+      name = "qtnetworkauth-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtpurchasing = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtpurchasing-everywhere-src-5.15.0.tar.xz";
-      sha256 = "2127f180c4889055d88e2b402b62be80a5a213a0e48d2056cc9a01d9913b3a16";
-      name = "qtpurchasing-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtpurchasing-everywhere-src-5.15.2.tar.xz";
+      sha256 = "87120d319ff2f8106e78971f7296d72a66dfe91e763d213199aea55046e93227";
+      name = "qtpurchasing-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtquick3d = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtquick3d-everywhere-src-5.15.0.tar.xz";
-      sha256 = "6d3b91b653ba5e33fd5b37cd785ded6cf1dd83d35250c3addb77eb35f90e52cb";
-      name = "qtquick3d-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtquick3d-everywhere-src-5.15.2.tar.xz";
+      sha256 = "5b0546323365ce34e4716f22f305ebb4902e222c1a0910b65ee448443c2f94bb";
+      name = "qtquick3d-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtquickcontrols = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtquickcontrols-everywhere-src-5.15.0.tar.xz";
-      sha256 = "7072cf4cd27e9f18b36b1c48dec7c79608cf87ba847d3fc3de133f220ec1acee";
-      name = "qtquickcontrols-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtquickcontrols-everywhere-src-5.15.2.tar.xz";
+      sha256 = "c393fb7384b1f047f10e91a6832cf3e6a4c2a41408b8cb2d05af2283e8549fb5";
+      name = "qtquickcontrols-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtquickcontrols2 = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtquickcontrols2-everywhere-src-5.15.0.tar.xz";
-      sha256 = "839abda9b58cd8656b2e5f46afbb484e63df466481ace43318c4c2022684648f";
-      name = "qtquickcontrols2-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtquickcontrols2-everywhere-src-5.15.2.tar.xz";
+      sha256 = "671b6ce5f4b8ecc94db622d5d5fb29ef4ff92819be08e5ea55bfcab579de8919";
+      name = "qtquickcontrols2-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtquicktimeline = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtquicktimeline-everywhere-src-5.15.0.tar.xz";
-      sha256 = "16ffeb733ba15815121fca5705ed5220ce0a0eb2ec0431ad0d55da9426a03c00";
-      name = "qtquicktimeline-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtquicktimeline-everywhere-src-5.15.2.tar.xz";
+      sha256 = "b9c247227607437acec7c7dd18ad46179d20369c9d22bdb1e9fc128dfb832a28";
+      name = "qtquicktimeline-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtremoteobjects = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtremoteobjects-everywhere-src-5.15.0.tar.xz";
-      sha256 = "86fcfdce77f13c7babdec4dc1d0c4b7b6b02e40120a4250dc59e911c53c08abf";
-      name = "qtremoteobjects-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtremoteobjects-everywhere-src-5.15.2.tar.xz";
+      sha256 = "6781b6bc90888254ea77ce812736dac00c67fa4eeb3095f5cd65e4b9c15dcfc2";
+      name = "qtremoteobjects-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtscript = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtscript-everywhere-src-5.15.0.tar.xz";
-      sha256 = "02dc21b309621876a89671be27cea86a58e74a96aa28da65fe1b37a3aad29373";
-      name = "qtscript-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtscript-everywhere-src-5.15.2.tar.xz";
+      sha256 = "a299715369afbd1caa4d7fa2875d442eab91adcaacafce54a36922442624673e";
+      name = "qtscript-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtscxml = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtscxml-everywhere-src-5.15.0.tar.xz";
-      sha256 = "9c3a72bf5ebd07553b0049cc1943f04cff93b7e53bde8c81d652422dbf12ff72";
-      name = "qtscxml-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtscxml-everywhere-src-5.15.2.tar.xz";
+      sha256 = "60b9590b9a41c60cee7b8a8c8410ee4625f0389c1ff8d79883ec5a985638a7dc";
+      name = "qtscxml-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtsensors = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtsensors-everywhere-src-5.15.0.tar.xz";
-      sha256 = "12b17ed6cbe6c49c8ab71958bc5d8ad1c42bf20e2fa72613ede11001e98144da";
-      name = "qtsensors-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtsensors-everywhere-src-5.15.2.tar.xz";
+      sha256 = "3f0011f9e9942cad119146b54d960438f4568a22a274cdad4fae06bb4e0e4839";
+      name = "qtsensors-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtserialbus = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtserialbus-everywhere-src-5.15.0.tar.xz";
-      sha256 = "cee067c84d025e221b83d109b58ea16c4d2dc0af0aea45cc6724acd33a1b7379";
-      name = "qtserialbus-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtserialbus-everywhere-src-5.15.2.tar.xz";
+      sha256 = "aeeb7e5c0d3f8503215b22e1a84c0002ca67cf63862f6e3c6ef44a67ca31bd88";
+      name = "qtserialbus-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtserialport = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtserialport-everywhere-src-5.15.0.tar.xz";
-      sha256 = "ba19369069a707dffddca8d9c477bb2bb4aa26630dfee6792254c4bf9bd57a67";
-      name = "qtserialport-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtserialport-everywhere-src-5.15.2.tar.xz";
+      sha256 = "59c559d748417306bc1b2cf2315c1e63eed011ace38ad92946af71f23e2ef79d";
+      name = "qtserialport-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtspeech = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtspeech-everywhere-src-5.15.0.tar.xz";
-      sha256 = "7219a878c14a24d0ca18d52df1717361b13aee96ac9790baf9ad2b383492dd61";
-      name = "qtspeech-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtspeech-everywhere-src-5.15.2.tar.xz";
+      sha256 = "c810fb9eecb08026434422a32e79269627f3bc2941be199e86ec410bdfe883f5";
+      name = "qtspeech-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtsvg = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtsvg-everywhere-src-5.15.0.tar.xz";
-      sha256 = "ee4d287e2e205ca8c08921b9cbe0fc58bf46be080b5359ad4d7fbdee44aeee0d";
-      name = "qtsvg-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtsvg-everywhere-src-5.15.2.tar.xz";
+      sha256 = "8bc3c2c1bc2671e9c67d4205589a8309b57903721ad14c60ea21a5d06acb585e";
+      name = "qtsvg-everywhere-src-5.15.2.tar.xz";
     };
   };
   qttools = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qttools-everywhere-src-5.15.0.tar.xz";
-      sha256 = "ddbcb49aab3a2e3672582c6e2e7bec0058feff790f67472343c79e2895e0e437";
-      name = "qttools-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qttools-everywhere-src-5.15.2.tar.xz";
+      sha256 = "c189d0ce1ff7c739db9a3ace52ac3e24cb8fd6dbf234e49f075249b38f43c1cc";
+      name = "qttools-everywhere-src-5.15.2.tar.xz";
     };
   };
   qttranslations = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qttranslations-everywhere-src-5.15.0.tar.xz";
-      sha256 = "45c43268d9df50784d4d8ca345fce9288a1055fd074ac0ef508097f7aeba22fe";
-      name = "qttranslations-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qttranslations-everywhere-src-5.15.2.tar.xz";
+      sha256 = "d5788e86257b21d5323f1efd94376a213e091d1e5e03b45a95dd052b5f570db8";
+      name = "qttranslations-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtvirtualkeyboard = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtvirtualkeyboard-everywhere-src-5.15.0.tar.xz";
-      sha256 = "f22f9204ab65578d9c8aa832a8a39108f826e00a7d391c7884ff490c587f34be";
-      name = "qtvirtualkeyboard-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtvirtualkeyboard-everywhere-src-5.15.2.tar.xz";
+      sha256 = "9a3193913be30f09a896e3b8c2f9696d2e9b3f88a63ae9ca8c97a2786b68cf55";
+      name = "qtvirtualkeyboard-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtwayland = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtwayland-everywhere-src-5.15.0.tar.xz";
-      sha256 = "084133e10bfbd32a28125639660c59975f23457bba6a79b30a25802cec76a9fb";
-      name = "qtwayland-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtwayland-everywhere-src-5.15.2.tar.xz";
+      sha256 = "193732229ff816f3aaab9a5e2f6bed71ddddbf1988ce003fe8dd84a92ce9aeb5";
+      name = "qtwayland-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtwebchannel = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtwebchannel-everywhere-src-5.15.0.tar.xz";
-      sha256 = "ea80510b363e6f92ce99932f06d176e43459c4a5159fe97b5ef96fcfbab5ed4f";
-      name = "qtwebchannel-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtwebchannel-everywhere-src-5.15.2.tar.xz";
+      sha256 = "127fe79c43b386713f151ed7d411cd81e45e29f9c955584f29736f78c9303ec1";
+      name = "qtwebchannel-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtwebengine = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtwebengine-everywhere-src-5.15.0.tar.xz";
-      sha256 = "c38e2fda7ed1b7d5a90f26abf231ec0715d78a5bc39a94673d8e39d75f04c5df";
-      name = "qtwebengine-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtwebengine-everywhere-src-5.15.2.tar.xz";
+      sha256 = "c8afca0e43d84f7bd595436fbe4d13a5bbdb81ec5104d605085d07545b6f91e0";
+      name = "qtwebengine-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtwebglplugin = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtwebglplugin-everywhere-src-5.15.0.tar.xz";
-      sha256 = "f7b81f25ddf7b3a0046daa7224bc1e18c8b754b00b1a33775f30f827a5cdca15";
-      name = "qtwebglplugin-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtwebglplugin-everywhere-src-5.15.2.tar.xz";
+      sha256 = "81e782b517ed29e10bea1aa90c9f59274c98a910f2c8b105fa78368a36b41446";
+      name = "qtwebglplugin-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtwebsockets = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtwebsockets-everywhere-src-5.15.0.tar.xz";
-      sha256 = "87c2f6542778f9b65b3f208740c1d0db643fd0bede21404b9abb265355da5092";
-      name = "qtwebsockets-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtwebsockets-everywhere-src-5.15.2.tar.xz";
+      sha256 = "a0b42d85dd34ff6e2d23400e02f83d8b85bcd80e60efd1521d12d9625d4a233f";
+      name = "qtwebsockets-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtwebview = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtwebview-everywhere-src-5.15.0.tar.xz";
-      sha256 = "b87ea205ce79c6b438ebe596e91fa80ba11f6aac7e89ffbf52b337d0fc8d6660";
-      name = "qtwebview-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtwebview-everywhere-src-5.15.2.tar.xz";
+      sha256 = "be9f46167e4977ead5ef5ecf883fdb812a4120f2436383583792f65557e481e7";
+      name = "qtwebview-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtwinextras = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtwinextras-everywhere-src-5.15.0.tar.xz";
-      sha256 = "d77f2cb2ce83bdbfd0a970bc8d7d11c96b2df16befc257d6594f79dfd92abff0";
-      name = "qtwinextras-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtwinextras-everywhere-src-5.15.2.tar.xz";
+      sha256 = "65b8272005dec00791ab7d81ab266d1e3313a3bbd8e54e546d984cf4c4ab550e";
+      name = "qtwinextras-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtx11extras = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtx11extras-everywhere-src-5.15.0.tar.xz";
-      sha256 = "c72b6c188284facddcf82835af048240e721dc8d6d9e8a7bd71d76fd876881a1";
-      name = "qtx11extras-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtx11extras-everywhere-src-5.15.2.tar.xz";
+      sha256 = "7014702ee9a644a5a93da70848ac47c18851d4f8ed622b29a72eed9282fc6e3e";
+      name = "qtx11extras-everywhere-src-5.15.2.tar.xz";
     };
   };
   qtxmlpatterns = {
-    version = "5.15.0";
+    version = "5.15.2";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtxmlpatterns-everywhere-src-5.15.0.tar.xz";
-      sha256 = "2752cf2aa25ebfda89c3736457e27b3d0c7c7ed290dcfd52c209f9f905998507";
-      name = "qtxmlpatterns-everywhere-src-5.15.0.tar.xz";
+      url = "${mirror}/official_releases/qt/5.15/5.15.2/submodules/qtxmlpatterns-everywhere-src-5.15.2.tar.xz";
+      sha256 = "76ea2162a7c349188d7e7e4f6c77b78e8a205494c90fee3cea3487a1ae2cf2fa";
+      name = "qtxmlpatterns-everywhere-src-5.15.2.tar.xz";
     };
   };
 }
diff --git a/pkgs/development/libraries/qt-5/modules/qtlocation.nix b/pkgs/development/libraries/qt-5/modules/qtlocation.nix
index 0eee684a53f..a80785d8099 100644
--- a/pkgs/development/libraries/qt-5/modules/qtlocation.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtlocation.nix
@@ -10,5 +10,4 @@ qtModule {
      # https://libcxx.llvm.org/docs/UsingLibcxx.html#c-17-specific-configuration-macros
      "QMAKE_CXXFLAGS+=-D_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR"
   ];
-
 }
diff --git a/pkgs/development/libraries/qtpbfimageplugin/default.nix b/pkgs/development/libraries/qtpbfimageplugin/default.nix
index 48c0158531a..ecff7f7f821 100644
--- a/pkgs/development/libraries/qtpbfimageplugin/default.nix
+++ b/pkgs/development/libraries/qtpbfimageplugin/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qtpbfimageplugin";
-  version = "2.2";
+  version = "2.3";
 
   src = fetchFromGitHub {
     owner = "tumic0";
     repo = "QtPBFImagePlugin";
     rev = version;
-    sha256 = "1w2d33g13vkjasabmcgvhsmfqv3jmwbxhqxm1jnyc7d4nlk4jwmb";
+    sha256 = "063agzcrcihasqqk2yqxqxg9xknjs99y6vx3n1v7md7dqnfv4iva";
   };
 
   nativeBuildInputs = [ qmake ];
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     # Fix plugin dir
     substituteInPlace pbfplugin.pro \
       --replace "\$\$[QT_INSTALL_PLUGINS]" "$out/$qtPluginPrefix"
-
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
     # Fix darwin build
     substituteInPlace pbfplugin.pro \
       --replace '$$PROTOBUF/lib/libprotobuf-lite.a' '${protobuf}/lib/libprotobuf-lite.dylib'
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
       vector tiles without (almost) any application modifications.
     '';
     homepage = "https://github.com/tumic0/QtPBFImagePlugin";
-    license = licenses.lgpl3;
+    license = licenses.lgpl3Only;
     maintainers = with maintainers; [ sikmir ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/development/libraries/qtstyleplugin-kvantum-qt4/default.nix b/pkgs/development/libraries/qtstyleplugin-kvantum-qt4/default.nix
index 2120c693857..a5c96dc351b 100644
--- a/pkgs/development/libraries/qtstyleplugin-kvantum-qt4/default.nix
+++ b/pkgs/development/libraries/qtstyleplugin-kvantum-qt4/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qtstyleplugin-kvantum-qt4";
-  version = "0.15.3";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "tsujan";
     repo = "Kvantum";
     rev = "V${version}";
-    sha256 = "0jq3y63c36nr2rprg7im9ik112p5zvhj46vzgxfbnpvskmg0cchm";
+    sha256 = "05ihjslnv7rrp4giwvvyaiig0dpfmw3jijfaadzax8jhbyscmxsq";
   };
 
   nativeBuildInputs = [ qmake4Hook ];
diff --git a/pkgs/development/libraries/range-v3/default.nix b/pkgs/development/libraries/range-v3/default.nix
index a583239b52e..3799ccbb59c 100644
--- a/pkgs/development/libraries/range-v3/default.nix
+++ b/pkgs/development/libraries/range-v3/default.nix
@@ -11,6 +11,10 @@ stdenv.mkDerivation rec {
     sha256 = "18230bg4rq9pmm5f8f65j444jpq56rld4fhmpham8q3vr1c1bdjh";
   };
 
+  patches = [
+    ./gcc10.patch
+  ];
+
   nativeBuildInputs = [ cmake ];
 
   # Building the tests currently fails on AArch64 due to internal compiler
diff --git a/pkgs/development/libraries/range-v3/gcc10.patch b/pkgs/development/libraries/range-v3/gcc10.patch
new file mode 100644
index 00000000000..caebf0a6316
--- /dev/null
+++ b/pkgs/development/libraries/range-v3/gcc10.patch
@@ -0,0 +1,133 @@
+From a91f0e1be27a31c446452a753001d4518ef83a6b Mon Sep 17 00:00:00 2001
+From: Eric Niebler <eniebler@boost.org>
+Date: Mon, 17 Aug 2020 17:48:09 -0700
+Subject: [PATCH] work around premature instantiation problem on gcc; fixes
+ #1545
+
+---
+ include/range/v3/view/chunk.hpp |  6 +++---
+ include/range/v3/view/split.hpp | 26 +++++++++++++-------------
+ 2 files changed, 16 insertions(+), 16 deletions(-)
+
+diff --git a/include/range/v3/view/chunk.hpp b/include/range/v3/view/chunk.hpp
+index 0c03cf1eb..b8df13303 100644
+--- a/include/range/v3/view/chunk.hpp
++++ b/include/range/v3/view/chunk.hpp
+@@ -313,8 +313,8 @@ namespace ranges
+ 
+             public:
+                 inner_view() = default;
+-                constexpr explicit inner_view(chunk_view_ & view) noexcept
+-                  : rng_{&view}
++                constexpr explicit inner_view(chunk_view_ * view) noexcept
++                  : rng_{view}
+                 {}
+                 CPP_auto_member
+                 constexpr auto CPP_fun(size)()(
+@@ -338,7 +338,7 @@ namespace ranges
+             constexpr inner_view read() const
+             {
+                 RANGES_EXPECT(!done());
+-                return inner_view{*rng_};
++                return inner_view{rng_};
+             }
+             constexpr bool done() const
+             {
+diff --git a/include/range/v3/view/split.hpp b/include/range/v3/view/split.hpp
+index facf1b37f..496220e4a 100644
+--- a/include/range/v3/view/split.hpp
++++ b/include/range/v3/view/split.hpp
+@@ -389,19 +389,19 @@ namespace ranges
+             split_outer_iterator() = default;
+ 
+             CPP_member
+-            constexpr explicit CPP_ctor(split_outer_iterator)(Parent & parent)(
++            constexpr explicit CPP_ctor(split_outer_iterator)(Parent * parent)(
+                 /// \pre
+                 requires (!forward_range<Base>))
+-              : parent_(&parent)
++              : parent_(parent)
+             {}
+ 
+             CPP_member
+-            constexpr CPP_ctor(split_outer_iterator)(Parent & parent,
++            constexpr CPP_ctor(split_outer_iterator)(Parent * parent,
+                                                      iterator_t<Base> current)(
+                 /// \pre
+                 requires forward_range<Base>)
+               : Current{std::move(current)}
+-              , parent_(&parent)
++              , parent_(parent)
+             {}
+ 
+             template(bool Other)(
+@@ -519,7 +519,7 @@ namespace ranges
+                                               ranges::equal_to> &&
+         (forward_range<V> || detail::tiny_range<Pattern>)
+ #endif
+-            struct RANGES_EMPTY_BASES split_view
++    struct RANGES_EMPTY_BASES split_view
+       : view_interface<split_view<V, Pattern>, is_finite<V>::value ? finite : unknown>
+       , private detail::split_view_base<iterator_t<V>>
+     {
+@@ -537,17 +537,17 @@ namespace ranges
+ #if RANGES_CXX_IF_CONSTEXPR < RANGES_CXX_IF_CONSTEXPR_17
+         outer_iterator<simple_view<V>()> begin_(std::true_type)
+         {
+-            return outer_iterator<simple_view<V>()>{*this, ranges::begin(base_)};
++            return outer_iterator<simple_view<V>()>{this, ranges::begin(base_)};
+         }
+         outer_iterator<false> begin_(std::false_type)
+         {
+             this->curr_ = ranges::begin(base_);
+-            return outer_iterator<false>{*this};
++            return outer_iterator<false>{this};
+         }
+ 
+         outer_iterator<simple_view<V>()> end_(std::true_type) const
+         {
+-            return outer_iterator<true>{*this, ranges::end(base_)};
++            return outer_iterator<true>{this, ranges::end(base_)};
+         }
+         default_sentinel_t end_(std::false_type) const
+         {
+@@ -580,11 +580,11 @@ namespace ranges
+         {
+ #if RANGES_CXX_IF_CONSTEXPR >= RANGES_CXX_IF_CONSTEXPR_17
+             if constexpr(forward_range<V>)
+-                return outer_iterator<simple_view<V>()>{*this, ranges::begin(base_)};
++                return outer_iterator<simple_view<V>()>{this, ranges::begin(base_)};
+             else
+             {
+                 this->curr_ = ranges::begin(base_);
+-                return outer_iterator<false>{*this};
++                return outer_iterator<false>{this};
+             }
+ #else
+             return begin_(meta::bool_<forward_range<V>>{});
+@@ -596,7 +596,7 @@ namespace ranges
+                 /// \pre
+                 requires forward_range<V> && forward_range<const V>)
+         {
+-            return {*this, ranges::begin(base_)};
++            return {this, ranges::begin(base_)};
+         }
+         CPP_member
+         constexpr auto end() //
+@@ -604,14 +604,14 @@ namespace ranges
+                 /// \pre
+                 requires forward_range<V> && common_range<V>)
+         {
+-            return outer_iterator<simple_view<V>()>{*this, ranges::end(base_)};
++            return outer_iterator<simple_view<V>()>{this, ranges::end(base_)};
+         }
+         constexpr auto end() const
+         {
+ #if RANGES_CXX_IF_CONSTEXPR >= RANGES_CXX_IF_CONSTEXPR_17
+             if constexpr(forward_range<V> && forward_range<const V> &&
+                          common_range<const V>)
+-                return outer_iterator<true>{*this, ranges::end(base_)};
++                return outer_iterator<true>{this, ranges::end(base_)};
+             else
+                 return default_sentinel;
+ #else
diff --git a/pkgs/development/libraries/redkite/default.nix b/pkgs/development/libraries/redkite/default.nix
index af8a1a914e4..ce3ac37895e 100644
--- a/pkgs/development/libraries/redkite/default.nix
+++ b/pkgs/development/libraries/redkite/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchFromGitLab, cmake, cairo }:
+{ stdenv, fetchFromGitHub, cmake, cairo }:
 
 stdenv.mkDerivation rec {
   pname = "redkite";
-  version = "1.2.0";
+  version = "1.3.0";
 
-  src = fetchFromGitLab {
+  src = fetchFromGitHub {
     owner = "iurie-sw";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0c5k0a6ydb8szdgniqsva8l9j2sishlhsww13b3a9grvr7hb2bpq";
+    sha256 = "16j9zp5i7svq3g38rfb6h257qfgnd2brrxi7cjd2pdax9xxwj40y";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/rocclr/default.nix b/pkgs/development/libraries/rocclr/default.nix
index 55b2f0ff186..5e6ce5d6797 100644
--- a/pkgs/development/libraries/rocclr/default.nix
+++ b/pkgs/development/libraries/rocclr/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rocclr";
-  version = "3.10.0";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "ROCm-Developer-Tools";
     repo = "ROCclr";
     rev = "rocm-${version}";
-    hash = "sha256-P36JKFgXSZagWzHB6WB2WlDu7jkVvfYVo1BaV0b8iEk=";
+    hash = "sha256-B27ff1b9JRhxFUsBt7CGuYaR87hvKbVSCERWD45d8tM=";
   };
 
   nativeBuildInputs = [ cmake rocm-cmake ];
diff --git a/pkgs/development/libraries/rocksdb/default.nix b/pkgs/development/libraries/rocksdb/default.nix
index f17a114216b..12a731385ff 100644
--- a/pkgs/development/libraries/rocksdb/default.nix
+++ b/pkgs/development/libraries/rocksdb/default.nix
@@ -10,7 +10,7 @@
 , zstd
 , enableJemalloc ? false, jemalloc
 , enableLite ? false
-, enableShared ? true
+, enableShared ? !stdenv.hostPlatform.isStatic
 }:
 
 stdenv.mkDerivation rec {
diff --git a/pkgs/development/libraries/rocm-comgr/default.nix b/pkgs/development/libraries/rocm-comgr/default.nix
index e6546e0d336..f8254991013 100644
--- a/pkgs/development/libraries/rocm-comgr/default.nix
+++ b/pkgs/development/libraries/rocm-comgr/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "rocm-comgr";
-  version = "3.10.0";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "RadeonOpenCompute";
diff --git a/pkgs/development/libraries/rocm-device-libs/default.nix b/pkgs/development/libraries/rocm-device-libs/default.nix
index 54c7cb9a10b..7c50e375228 100644
--- a/pkgs/development/libraries/rocm-device-libs/default.nix
+++ b/pkgs/development/libraries/rocm-device-libs/default.nix
@@ -9,7 +9,7 @@
 
 stdenv.mkDerivation rec {
   pname = "rocm-device-libs";
-  version = "3.10.0";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "RadeonOpenCompute";
diff --git a/pkgs/development/libraries/rocm-opencl-runtime/default.nix b/pkgs/development/libraries/rocm-opencl-runtime/default.nix
index 4681267da18..ecd9e0f7e82 100644
--- a/pkgs/development/libraries/rocm-opencl-runtime/default.nix
+++ b/pkgs/development/libraries/rocm-opencl-runtime/default.nix
@@ -21,7 +21,7 @@
 
 stdenv.mkDerivation rec {
   pname = "rocm-opencl-runtime";
-  version = "3.10.0";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "RadeonOpenCompute";
diff --git a/pkgs/development/libraries/rocm-runtime/default.nix b/pkgs/development/libraries/rocm-runtime/default.nix
index 4df954f4b25..15435e7914d 100644
--- a/pkgs/development/libraries/rocm-runtime/default.nix
+++ b/pkgs/development/libraries/rocm-runtime/default.nix
@@ -11,7 +11,7 @@
 
 stdenv.mkDerivation rec {
   pname = "rocm-runtime";
-  version = "3.10.0";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "RadeonOpenCompute";
diff --git a/pkgs/development/libraries/rocm-thunk/default.nix b/pkgs/development/libraries/rocm-thunk/default.nix
index bf0a05fe73e..535f686f23d 100644
--- a/pkgs/development/libraries/rocm-thunk/default.nix
+++ b/pkgs/development/libraries/rocm-thunk/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rocm-thunk";
-  version = "3.10.0";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "RadeonOpenCompute";
     repo = "ROCT-Thunk-Interface";
     rev = "rocm-${version}";
-    hash = "sha256-FLH+GHXA0zepbR1wPPSez/hx1hiG2kkCTneDKhJJRjU=";
+    hash = "sha256-2kLSlGwX3pD8I5pXwV5L0k9l8OzJRkUvnAqv5E+gcd4=";
   };
 
   preConfigure = ''
diff --git a/pkgs/development/libraries/s2n/default.nix b/pkgs/development/libraries/s2n/default.nix
new file mode 100644
index 00000000000..3ec66ebf52d
--- /dev/null
+++ b/pkgs/development/libraries/s2n/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchFromGitHub, cmake, openssl }:
+
+stdenv.mkDerivation rec {
+  pname = "s2n";
+  version = "0.10.23";
+
+  src = fetchFromGitHub {
+    owner = "awslabs";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "063wqpszhfcbxm7a7s6d6kinqd6b6dxij85lk9jjkrslg5fgqbki";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  propagatedBuildInputs = [ openssl ]; # s2n-config has find_dependency(LibCrypto).
+
+  cmakeFlags = [
+    "-DBUILD_SHARED_LIBS=ON"
+  ];
+
+  meta = with lib; {
+    description = "C99 implementation of the TLS/SSL protocols";
+    homepage = "https://github.com/awslabs/s2n";
+    license = licenses.asl20;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ orivej ];
+  };
+}
diff --git a/pkgs/development/libraries/science/math/mkl/default.nix b/pkgs/development/libraries/science/math/mkl/default.nix
index 1887d53e306..b631def3bb2 100644
--- a/pkgs/development/libraries/science/math/mkl/default.nix
+++ b/pkgs/development/libraries/science/math/mkl/default.nix
@@ -1,11 +1,12 @@
-{ callPackage
+{ stdenv
+, callPackage
 , stdenvNoCC
 , fetchurl
 , rpmextract
 , undmg
 , darwin
 , validatePkgConfig
-, enableStatic ? false
+, enableStatic ? stdenv.hostPlatform.isStatic
 }:
 
 /*
diff --git a/pkgs/development/libraries/science/math/openblas/default.nix b/pkgs/development/libraries/science/math/openblas/default.nix
index d670a40f321..8df04e80ceb 100644
--- a/pkgs/development/libraries/science/math/openblas/default.nix
+++ b/pkgs/development/libraries/science/math/openblas/default.nix
@@ -15,8 +15,8 @@
 # Select a specific optimization target (other than the default)
 # See https://github.com/xianyi/OpenBLAS/blob/develop/TargetList.txt
 , target ? null
-, enableStatic ? false
-, enableShared ? true
+, enableStatic ? stdenv.hostPlatform.isStatic
+, enableShared ? !stdenv.hostPlatform.isStatic
 }:
 
 with stdenv.lib;
diff --git a/pkgs/development/libraries/signond/default.nix b/pkgs/development/libraries/signond/default.nix
new file mode 100644
index 00000000000..7e986ed2635
--- /dev/null
+++ b/pkgs/development/libraries/signond/default.nix
@@ -0,0 +1,30 @@
+{ mkDerivation, lib, fetchFromGitLab, qmake, doxygen }:
+
+mkDerivation rec {
+  pname = "signond";
+  version = "8.60";
+
+  src = fetchFromGitLab {
+    owner = "accounts-sso";
+    repo = pname;
+    rev = "VERSION_${version}";
+    sha256 = "pFpeJ13ut5EoP37W33WrYL2LzkX/k7ZKJcRpPO5l8i4=";
+  };
+
+  nativeBuildInputs = [
+    qmake
+    doxygen
+  ];
+
+  preConfigure = ''
+    substituteInPlace src/signond/signond.pro \
+      --replace "/etc" "@out@/etc"
+  '';
+
+  meta = with lib; {
+    homepage = "https://gitlab.com/accounts-sso/signond";
+    description = "Signon Daemon for Qt";
+    maintainers = with maintainers; [ freezeboy  ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/simgear/default.nix b/pkgs/development/libraries/simgear/default.nix
index 3a7c0b3c410..e6fb1d7caf7 100644
--- a/pkgs/development/libraries/simgear/default.nix
+++ b/pkgs/development/libraries/simgear/default.nix
@@ -4,7 +4,7 @@
 , curl
 }:
 let
-  version = "2020.1.3";
+  version = "2020.3.4";
   shortVersion = builtins.substring 0 6 version;
 in
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://sourceforge/flightgear/release-${shortVersion}/${pname}-${version}.tar.bz2";
-    sha256 = "1l8kiicm0klbx0b05994vqd8a8wj7k0djbbg41a6i3q5d17jrnk6";
+    sha256 = "1laa8dllpvf2z0cjxx22ravdf1d7a18bm708gd2ny35fhjfibm0h";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/smesh/default.nix b/pkgs/development/libraries/smesh/default.nix
index 9a52c42c939..1b1f590109f 100644
--- a/pkgs/development/libraries/smesh/default.nix
+++ b/pkgs/development/libraries/smesh/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchFromGitHub, fetchpatch, cmake, ninja, opencascade }:
+{ stdenv, fetchFromGitHub, fetchpatch, cmake, ninja, opencascade
+, Cocoa }:
 
 stdenv.mkDerivation rec {
   pname = "smesh";
@@ -20,7 +21,7 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [ cmake ninja ];
-  buildInputs = [ opencascade ];
+  buildInputs = [ opencascade ] ++ stdenv.lib.optionals stdenv.isDarwin [ Cocoa ];
 
   meta = with stdenv.lib; {
     description = "Extension to OCE providing advanced meshing features";
diff --git a/pkgs/development/libraries/snappy/default.nix b/pkgs/development/libraries/snappy/default.nix
index e626db8efb7..0880df7ef2f 100644
--- a/pkgs/development/libraries/snappy/default.nix
+++ b/pkgs/development/libraries/snappy/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchFromGitHub, cmake, static ? false }:
+{ stdenv, fetchFromGitHub, cmake
+, static ? stdenv.hostPlatform.isStatic
+}:
 
 stdenv.mkDerivation rec {
   pname = "snappy";
diff --git a/pkgs/development/libraries/sonic/default.nix b/pkgs/development/libraries/sonic/default.nix
index 41b88b7f310..fc45e220a51 100644
--- a/pkgs/development/libraries/sonic/default.nix
+++ b/pkgs/development/libraries/sonic/default.nix
@@ -1,27 +1,33 @@
-{ stdenv, fetchFromGitHub, fftw }:
+{ stdenv, fetchFromGitHub, fftw, installShellFiles }:
 
 stdenv.mkDerivation {
-  pname = "sonic";
-  version = "2018-07-06";
+  pname = "sonic-unstable";
+  version = "2020-12-27";
 
   src = fetchFromGitHub {
     owner = "waywardgeek";
     repo = "sonic";
-    rev = "71c51195de71627d7443d05378c680ba756545e8";
-    sha256 = "1z9qdk3pk507hdg39v2z1hanlw2wv7mhn8br4cb8qry9z9qwi87i";
+    rev = "4a052d9774387a9d9b4af627f6a74e1694419960";
+    sha256 = "0ah54nizb6iwcx277w104wsfnx05vrp4sh56d2pfxhf8xghg54m6";
   };
 
-  postPatch = ''
-    sed -i "s,^PREFIX=.*,PREFIX=$out," Makefile
-  '';
+  makeFlags = [ "PREFIX=${placeholder "out"}" "CC=cc" ];
+
+  nativeBuildInputs = [ installShellFiles ];
 
   buildInputs = [ fftw ];
 
+  postInstall = ''
+    installManPage sonic.1
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+    install_name_tool -id $out/lib/libsonic.so.0.3.0 $out/lib/libsonic.so.0.3.0
+  '';
+
   meta = with stdenv.lib; {
     description = "Simple library to speed up or slow down speech";
     homepage = "https://github.com/waywardgeek/sonic";
     license = licenses.asl20;
     maintainers = with maintainers; [ aske ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/stellarsolver/default.nix b/pkgs/development/libraries/stellarsolver/default.nix
new file mode 100644
index 00000000000..69417299615
--- /dev/null
+++ b/pkgs/development/libraries/stellarsolver/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, mkDerivation, fetchFromGitHub, cmake,
+  qtbase, cfitsio, gsl, wcslib, withTester ? false }:
+
+mkDerivation rec {
+  pname = "stellarsolver";
+  version = "1.5";
+
+  src = fetchFromGitHub {
+    owner = "rlancaste";
+    repo = pname;
+    rev = version;
+    sha256 = "12j20j9qbkkx55ix4nm1iw7wd36hamkpidbwhcnmj4yk5fqlyq4y";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ qtbase cfitsio gsl wcslib ];
+
+  cmakeFlags = [
+    "-DBUILD_TESTER=${if withTester then "on" else "off"}"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/rlancaste/stellarsolver";
+    description = "Astrometric plate solving library";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ hjones2199 ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/development/libraries/sundials/2.x.nix b/pkgs/development/libraries/sundials/2.x.nix
deleted file mode 100644
index ae22f0be179..00000000000
--- a/pkgs/development/libraries/sundials/2.x.nix
+++ /dev/null
@@ -1,59 +0,0 @@
-{ stdenv
-, cmake
-, fetchurl
-, python
-# GNU Octave needs KLU for ODE solvers
-, suitesparse
-, blas, lapack
-, gfortran
-, lapackSupport ? true }:
-
-assert (!blas.isILP64) && (!lapack.isILP64);
-
-stdenv.mkDerivation rec {
-  pname = "sundials";
-  version = "2.7.0";
-
-  buildInputs = [ python ] ++ stdenv.lib.optionals (lapackSupport) [
-    gfortran
-    suitesparse
-  ];
-  nativeBuildInputs = [ cmake ];
-
-  src = fetchurl {
-    url = "https://computation.llnl.gov/projects/${pname}/download/${pname}-${version}.tar.gz";
-    sha256 = "01513g0j7nr3rh7hqjld6mw0mcx5j9z9y87bwjc16w2x2z3wm7yk";
-  };
-
-  patches = [
-    (fetchurl {
-      # https://github.com/LLNL/sundials/pull/19
-      url = "https://github.com/LLNL/sundials/commit/1350421eab6c5ab479de5eccf6af2dcad1eddf30.patch";
-      sha256 = "0g67lixp9m85fqpb9rzz1hl1z8ibdg0ldwq5z6flj5zl8a7cw52l";
-    })
-  ];
-
-  cmakeFlags = [
-    "-DEXAMPLES_INSTALL_PATH=${placeholder "out"}/share/examples"
-  ] ++ stdenv.lib.optionals (lapackSupport) [
-    "-DSUNDIALS_INDEX_TYPE=int32_t"
-    # GNU Octave needs KLU for ODE solvers
-    "-DKLU_ENABLE=ON"
-    "-DKLU_INCLUDE_DIR=${suitesparse}/include"
-    "-DKLU_LIBRARY_DIR=${suitesparse}/lib"
-    "-DLAPACK_ENABLE=ON"
-    "-DLAPACK_LIBRARIES=${lapack}/lib/lapack${stdenv.hostPlatform.extensions.sharedLibrary};${blas}/lib/blas${stdenv.hostPlatform.extensions.sharedLibrary}"
-  ];
-
-  # flaky tests, and patch in https://github.com/LLNL/sundials/pull/21 doesn't apply cleanly for sundials_3
-  doCheck = false;
-  checkPhase = "make test";
-
-  meta = with stdenv.lib; {
-    description = "Suite of nonlinear differential/algebraic equation solvers";
-    homepage    = "https://computation.llnl.gov/projects/sundials";
-    platforms   = platforms.all;
-    maintainers = with maintainers; [ idontgetoutmuch ];
-    license     = licenses.bsd3;
-  };
-}
diff --git a/pkgs/development/libraries/sundials/default.nix b/pkgs/development/libraries/sundials/default.nix
index 2e1fd527e9a..a17b300d6be 100644
--- a/pkgs/development/libraries/sundials/default.nix
+++ b/pkgs/development/libraries/sundials/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , cmake
 , fetchurl
+, fetchpatch
 , python
 , blas
 , lapack
@@ -12,7 +13,25 @@
 
 stdenv.mkDerivation rec {
   pname = "sundials";
-  version = "5.3.0";
+  version = "5.6.1";
+
+  outputs = [ "out" "examples" ];
+
+  src = fetchurl {
+    url = "https://computation.llnl.gov/projects/${pname}/download/${pname}-${version}.tar.gz";
+    sha256 = "Frd5mex+fyFXqh0Eyh3kojccqBUOBW0klR0MWJZvKoM=";
+  };
+
+  patches = [
+    # Fixing an upstream regression in treating cmake prefix directories:
+    # https://github.com/LLNL/sundials/pull/58
+    (fetchpatch {
+      url = "https://github.com/LLNL/sundials/commit/dd32ff9baa05618f36e44aadb420bbae4236ea1e.patch";
+      sha256 = "kToAuma+2iHFyL1v/l29F3+nug4AdK5cPG6IcXv2afc=";
+    })
+  ];
+
+  nativeBuildInputs = [ cmake ];
 
   buildInputs = [
     python
@@ -31,36 +50,24 @@ stdenv.mkDerivation rec {
     suitesparse
   ];
 
-  nativeBuildInputs = [ cmake ];
-
-  src = fetchurl {
-    url = "https://computation.llnl.gov/projects/${pname}/download/${pname}-${version}.tar.gz";
-    sha256 = "19xwi7pz35s2nqgldm6r0jl2k0bs36zhbpnmmzc56s1n3bhzgpw8";
-  };
-
-  patches = [
-    (fetchurl {
-      # https://github.com/LLNL/sundials/pull/19
-      url = "https://github.com/LLNL/sundials/commit/1350421eab6c5ab479de5eccf6af2dcad1eddf30.patch";
-      sha256 = "0g67lixp9m85fqpb9rzz1hl1z8ibdg0ldwq5z6flj5zl8a7cw52l";
-    })
-  ];
-
   cmakeFlags = [
-    "-DEXAMPLES_INSTALL_PATH=${placeholder "out"}/share/examples"
+    "-DEXAMPLES_INSTALL_PATH=${placeholder "examples"}/share/examples"
   ] ++ stdenv.lib.optionals (lapackSupport) [
-    "-DLAPACK_ENABLE=ON"
+    "-DENABLE_LAPACK=ON"
     "-DLAPACK_LIBRARIES=${lapack}/lib/liblapack${stdenv.hostPlatform.extensions.sharedLibrary}"
   ] ++ stdenv.lib.optionals (kluSupport) [
-    "-DKLU_ENABLE=ON"
+    "-DENABLE_KLU=ON"
     "-DKLU_INCLUDE_DIR=${suitesparse.dev}/include"
     "-DKLU_LIBRARY_DIR=${suitesparse}/lib"
-  ] ++ stdenv.lib.optionals (lapackSupport && !lapack.isILP64) [
-    # Use the correct index type according to lapack which is supposed to be
-    # the same index type compatible with blas, thanks to the assertion of
-    # buildInputs
-    "-DSUNDIALS_INDEX_TYPE=int32_t"
-  ]
+  ] ++ [(
+    # Use the correct index type according to lapack and blas used. They are
+    # already supposed to be compatible but we check both for extra safety. 64
+    # should be the default but we prefer to be explicit, for extra safety.
+    if blas.isILP64 then
+      "-DSUNDIALS_INDEX_SIZE=64"
+    else
+      "-DSUNDIALS_INDEX_SIZE=32"
+  )]
   ;
 
   doCheck = true;
diff --git a/pkgs/development/libraries/thrift/default.nix b/pkgs/development/libraries/thrift/default.nix
index 1879cac96c1..f5c8f64633b 100644
--- a/pkgs/development/libraries/thrift/default.nix
+++ b/pkgs/development/libraries/thrift/default.nix
@@ -1,5 +1,7 @@
 { stdenv, fetchurl, fetchpatch, boost, zlib, libevent, openssl, python, cmake, pkgconfig
-, bison, flex, twisted, static ? false }:
+, bison, flex, twisted
+, static ? stdenv.hostPlatform.isStatic
+}:
 
 stdenv.mkDerivation rec {
   pname = "thrift";
diff --git a/pkgs/development/libraries/umockdev/default.nix b/pkgs/development/libraries/umockdev/default.nix
index 1c0b70f6896..5050650635f 100644
--- a/pkgs/development/libraries/umockdev/default.nix
+++ b/pkgs/development/libraries/umockdev/default.nix
@@ -1,41 +1,46 @@
-{ stdenv, fetchurl, fetchpatch, pkgconfig
-, gobject-introspection, glib, systemd, libgudev, vala
-, usbutils, which, python3 }:
+{ stdenv
+, docbook_xsl
+, fetchurl
+, glib
+, gobject-introspection
+, gtk-doc
+, libgudev
+, meson
+, ninja
+, pkg-config
+, python3
+, systemd
+, usbutils
+, vala
+, which
+}:
 
 stdenv.mkDerivation rec {
   pname = "umockdev";
-  version = "0.13.1";
+  version = "0.15.4";
 
   outputs = [ "bin" "out" "dev" "doc" ];
 
   src = fetchurl {
     url = "https://github.com/martinpitt/umockdev/releases/download/${version}/${pname}-${version}.tar.xz";
-    sha256 = "197a169imiirgm73d9fn9234cx56agyw9d2f47h7f1d8s2d51lla";
+    sha256 = "09k8jwvsphd97hcagf0zaf0hwzlzq2r8jfgbmvj55k7ylrg8hjxg";
   };
 
-  patches = [
-    ./fix-test-paths.patch
-    # https://github.com/NixOS/nixpkgs/commit/9960a2be9b32a6d868046c5bfa188b9a0dd66682#commitcomment-34734461
-    ./disable-failed-test.patch
-    # https://github.com/martinpitt/umockdev/pull/93
-    (fetchpatch {
-      url = "https://github.com/abbradar/umockdev/commit/ce22f893bf50de0b32760238a3e2cfb194db89e9.patch";
-      sha256 = "01q3qhs30x8hl23iigimsa2ikbiw8y8y0bpmh02mh1my87shpwnx";
-    })
+  mesonFlags = [
+    "-Dgtk_doc=true"
   ];
 
-  # autoreconfHook complains if we try to build the documentation
-  postPatch = ''
-    echo 'EXTRA_DIST =' > docs/gtk-doc.make
-  '';
-
-  preCheck = ''
-    patchShebangs tests/test-static-code
-  '';
-
   buildInputs = [ glib systemd libgudev ];
 
-  nativeBuildInputs = [ pkgconfig vala gobject-introspection ];
+  nativeBuildInputs = [
+    docbook_xsl
+    gobject-introspection
+    gtk-doc
+    meson
+    ninja
+    pkg-config
+    vala
+  ];
 
   checkInputs = [ python3 which usbutils ];
 
@@ -43,10 +48,15 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  postInstall = ''
+    mkdir -p $doc/share/doc/umockdev/
+    mv docs/reference $doc/share/doc/umockdev/
+  '';
+
   meta = with stdenv.lib; {
     description = "Mock hardware devices for creating unit tests";
     license = licenses.lgpl2;
-    maintainers = with maintainers; [];
+    maintainers = with maintainers; [ flokli ];
     platforms = with platforms; linux;
   };
 }
diff --git a/pkgs/development/libraries/umockdev/disable-failed-test.patch b/pkgs/development/libraries/umockdev/disable-failed-test.patch
deleted file mode 100644
index 69e74dd38b8..00000000000
--- a/pkgs/development/libraries/umockdev/disable-failed-test.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/tests/test-umockdev-vala.vala b/tests/test-umockdev-vala.vala
-index 8b104b2..d9889b8 100644
---- a/tests/test-umockdev-vala.vala
-+++ b/tests/test-umockdev-vala.vala
-@@ -668,7 +668,7 @@ main (string[] args)
- 
-   /* tests for mocking ioctls */
-   Test.add_func ("/umockdev-testbed-vala/usbfs_ioctl_static", t_usbfs_ioctl_static);
--  Test.add_func ("/umockdev-testbed-vala/usbfs_ioctl_tree", t_usbfs_ioctl_tree);
-+  /* Test.add_func ("/umockdev-testbed-vala/usbfs_ioctl_tree", t_usbfs_ioctl_tree); */
-   Test.add_func ("/umockdev-testbed-vala/usbfs_ioctl_tree_with_default_device", t_usbfs_ioctl_tree_with_default_device);
-   Test.add_func ("/umockdev-testbed-vala/usbfs_ioctl_tree_override_default_device", t_usbfs_ioctl_tree_override_default_device);
-   Test.add_func ("/umockdev-testbed-vala/usbfs_ioctl_tree_xz", t_usbfs_ioctl_tree_xz);
diff --git a/pkgs/development/libraries/umockdev/fix-test-paths.patch b/pkgs/development/libraries/umockdev/fix-test-paths.patch
deleted file mode 100644
index 53015d66268..00000000000
--- a/pkgs/development/libraries/umockdev/fix-test-paths.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ru3 umockdev-0.13.1/tests/test-umockdev.c umockdev-0.13.1-new/tests/test-umockdev.c
---- umockdev-0.13.1/tests/test-umockdev.c	2019-08-18 20:39:39.708262517 +0300
-+++ umockdev-0.13.1-new/tests/test-umockdev.c	2019-08-18 21:04:27.688761503 +0300
-@@ -1084,7 +1084,7 @@
- 
-     /* sys/ in other dir should not be trapped */
-     errno = 0;
--    dirfd = open("/run", O_RDONLY | O_DIRECTORY);
-+    dirfd = open("/tmp", O_RDONLY | O_DIRECTORY);
-     g_assert_cmpint(openat(dirfd, "sys", O_RDONLY), <, 0);
-     g_assert_cmpint(errno, ==, ENOENT);
-     g_assert_cmpint(openat64(dirfd, "sys", O_RDONLY), <, 0);
diff --git a/pkgs/development/libraries/utf8cpp/default.nix b/pkgs/development/libraries/utf8cpp/default.nix
index a2aac1241cd..ef02ca2c313 100644
--- a/pkgs/development/libraries/utf8cpp/default.nix
+++ b/pkgs/development/libraries/utf8cpp/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "utf8cpp";
-  version = "3.1.1";
+  version = "3.1.2";
 
   src = fetchFromGitHub {
     owner = "nemtrif";
     repo = "utfcpp";
     rev = "v${version}";
     fetchSubmodules = true;
-    sha256 = "1s2pda75488z7c3w3a6qv31bj239248696yk5j2a1drbg2x1dpfh";
+    sha256 = "sha256-l5sneFsuvPDIRni2x+aR9fmQ9bzXNnIiP9EzZ63sNtg=";
   };
 
   cmakeFlags = [
diff --git a/pkgs/development/libraries/utf8proc/default.nix b/pkgs/development/libraries/utf8proc/default.nix
index 3f8f47793a4..ea455e2c92c 100644
--- a/pkgs/development/libraries/utf8proc/default.nix
+++ b/pkgs/development/libraries/utf8proc/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "utf8proc";
-  version = "2.6.0";
+  version = "2.6.1";
 
   src = fetchFromGitHub {
     owner = "JuliaStrings";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0czk8xw1jra0fjf6w4bcaridyz3wz2br3v7ik1g7z0j5grx9n8r1";
+    sha256 = "1zqc6airkzkssbjxanx5v8blfk90180gc9id0dx8ncs54f1ib8w7";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/vtk/7.x.nix b/pkgs/development/libraries/vtk/7.x.nix
index f3ec383fddf..55f950e0ac9 100644
--- a/pkgs/development/libraries/vtk/7.x.nix
+++ b/pkgs/development/libraries/vtk/7.x.nix
@@ -1,74 +1,9 @@
-{ stdenv, fetchurl, cmake, libGLU, libGL, libX11, xorgproto, libXt, libtiff
-, fetchpatch
-, qtLib ? null
-, enablePython ? false, python ? null
-# Darwin support
-, Cocoa, CoreServices, DiskArbitration, IOKit, CFNetwork, Security, GLUT, OpenGL
-, ApplicationServices, CoreText, IOSurface, ImageIO, xpc, libobjc }:
-
-with stdenv.lib;
-
-let
-  os = stdenv.lib.optionalString;
+import ./generic.nix {
   majorVersion = "7.1";
   minorVersion = "1";
-  version = "${majorVersion}.${minorVersion}";
-in
-
-stdenv.mkDerivation rec {
-  name = "vtk-${os (qtLib != null) "qvtk-"}${version}";
-  src = fetchurl {
-    url = "${meta.homepage}files/release/${majorVersion}/VTK-${version}.tar.gz";
-    sha256 = "0nm7xwwj7rnsxjdv2ssviys8nhci4n9iiiqm2y14s520hl2dsp1d";
-  };
-
-  patches = [
-    (fetchpatch {
-      url = "https://gitlab.kitware.com/vtk/vtk/-/commit/706f1b397df09a27ab8981ab9464547028d0c322.diff";
-      sha256 = "1q3pi5h40g05pzpbqp75xlgzvbfvyw8raza51svmi7d8dlslqybx";
-    })
-  ];
-
-  nativeBuildInputs = [ cmake ];
-
-  buildInputs = [ libtiff ]
-    ++ optional (qtLib != null) qtLib
-    ++ optionals stdenv.isLinux [ libGLU libGL libX11 xorgproto libXt ]
-    ++ optionals stdenv.isDarwin [ xpc Cocoa CoreServices DiskArbitration IOKit
-                                   CFNetwork Security ApplicationServices CoreText
-                                   IOSurface ImageIO OpenGL GLUT ]
-    ++ optional enablePython [
-      python
-    ];
-  propagatedBuildInputs = stdenv.lib.optionals stdenv.isDarwin [ libobjc ];
-
-  preBuild = ''
-    export LD_LIBRARY_PATH="$(pwd)/lib";
-  '';
-
-  # Shared libraries don't work, because of rpath troubles with the current
-  # nixpkgs cmake approach. It wants to call a binary at build time, just
-  # built and requiring one of the shared objects.
-  # At least, we use -fPIC for other packages to be able to use this in shared
-  # objects.
-  cmakeFlags = [ "-DCMAKE_C_FLAGS=-fPIC" "-DCMAKE_CXX_FLAGS=-fPIC" "-DVTK_USE_SYSTEM_TIFF=1" "-DOPENGL_INCLUDE_DIR=${libGL}/include" ]
-    ++ optional (qtLib != null) [ "-DVTK_Group_Qt:BOOL=ON" ]
-    ++ optional stdenv.isDarwin [ "-DOPENGL_INCLUDE_DIR=${OpenGL}/Library/Frameworks" ]
-    ++ optional enablePython [ "-DVTK_WRAP_PYTHON:BOOL=ON" ];
-
-  postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
-    sed -i 's|COMMAND vtkHashSource|COMMAND "DYLD_LIBRARY_PATH=''${VTK_BINARY_DIR}/lib" ''${VTK_BINARY_DIR}/bin/vtkHashSource-${majorVersion}|' ./Parallel/Core/CMakeLists.txt
-    sed -i 's/fprintf(output, shift)/fprintf(output, "%s", shift)/' ./ThirdParty/libxml2/vtklibxml2/xmlschemas.c
-    sed -i 's/fprintf(output, shift)/fprintf(output, "%s", shift)/g' ./ThirdParty/libxml2/vtklibxml2/xpath.c
-  '';
-
-  enableParallelBuilding = true;
-
-  meta = {
-    description = "Open source libraries for 3D computer graphics, image processing and visualization";
-    homepage = "https://www.vtk.org/";
-    license = stdenv.lib.licenses.bsd3;
-    maintainers = with stdenv.lib.maintainers; [ knedlsepp ];
-    platforms = with stdenv.lib.platforms; unix;
-  };
+  sourceSha256 = "0nm7xwwj7rnsxjdv2ssviys8nhci4n9iiiqm2y14s520hl2dsp1d";
+  patchesToFetch = [{
+   url = "https://gitlab.kitware.com/vtk/vtk/-/commit/706f1b397df09a27ab8981ab9464547028d0c322.diff";
+   sha256 = "1q3pi5h40g05pzpbqp75xlgzvbfvyw8raza51svmi7d8dlslqybx";
+ }];
 }
diff --git a/pkgs/development/libraries/vtk/8.x.nix b/pkgs/development/libraries/vtk/8.x.nix
new file mode 100644
index 00000000000..1563991f47f
--- /dev/null
+++ b/pkgs/development/libraries/vtk/8.x.nix
@@ -0,0 +1,9 @@
+import ./generic.nix {
+  majorVersion = "8.2";
+  minorVersion = "0";
+  sourceSha256 = "1fspgp8k0myr6p2a6wkc21ldcswb4bvmb484m12mxgk1a9vxrhrl";
+  patchesToFetch = [{
+   url = "https://gitlab.kitware.com/vtk/vtk/-/commit/257b9d7b18d5f3db3fe099dc18f230e23f7dfbab.diff";
+   sha256 = "0qdahp4f4gcaznr28j06d5fyxiis774ys0p335aazf7h51zb8rzy";
+  }];
+}
diff --git a/pkgs/development/libraries/vtk/9.x.nix b/pkgs/development/libraries/vtk/9.x.nix
index 455431ec341..e99ba34999e 100644
--- a/pkgs/development/libraries/vtk/9.x.nix
+++ b/pkgs/development/libraries/vtk/9.x.nix
@@ -1,95 +1,5 @@
-{ stdenv, mkDerivation, fetchurl, cmake, libGLU, libGL, libX11, xorgproto, libXt, libtiff
-, fetchpatch
-, enableQt ? false, qtbase, qtx11extras, qttools
-, enablePython ? false, python ? null
-# Darwin support
-, Cocoa, CoreServices, DiskArbitration, IOKit, CFNetwork, Security, GLUT, OpenGL
-, ApplicationServices, CoreText, IOSurface, ImageIO, xpc, libobjc }:
-
-with stdenv.lib;
-
-let
-  os = stdenv.lib.optionalString;
+import ./generic.nix {
   majorVersion = "9.0";
   minorVersion = "1";
-  version = "${majorVersion}.${minorVersion}";
-in
-
-mkDerivation rec {
-  name = "vtk-${os enableQt "qvtk-"}${version}";
-  src = fetchurl {
-    url = "${meta.homepage}files/release/${majorVersion}/VTK-${version}.tar.gz";
-    sha256 = "1ir2lq9i45ls374lcmjzw0nrm5l5hnm1w47lg8g8d0n2j7hsaf8v";
-  };
-
-  nativeBuildInputs = [ cmake ];
-
-  buildInputs = [ libtiff ]
-    ++ optionals enableQt [ qtbase qtx11extras qttools ]
-    ++ optionals stdenv.isLinux [
-      libGLU
-      libGL
-      libX11
-      xorgproto
-      libXt
-    ] ++ optionals stdenv.isDarwin [
-      xpc
-      Cocoa
-      CoreServices
-      DiskArbitration
-      IOKit
-      CFNetwork
-      Security
-      ApplicationServices
-      CoreText
-      IOSurface
-      ImageIO
-      OpenGL
-      GLUT
-    ]
-    ++ optional enablePython [
-      python
-    ];
-  propagatedBuildInputs = stdenv.lib.optionals stdenv.isDarwin [ libobjc ];
-
-  preBuild = ''
-    export LD_LIBRARY_PATH="$(pwd)/lib";
-  '';
-
-  # Shared libraries don't work, because of rpath troubles with the current
-  # nixpkgs cmake approach. It wants to call a binary at build time, just
-  # built and requiring one of the shared objects.
-  # At least, we use -fPIC for other packages to be able to use this in shared
-  # objects.
-  cmakeFlags = [
-    "-DCMAKE_C_FLAGS=-fPIC"
-    "-DCMAKE_CXX_FLAGS=-fPIC"
-    "-DVTK_USE_SYSTEM_TIFF=1"
-    "-DOPENGL_INCLUDE_DIR=${libGL}/include"
-    "-DCMAKE_INSTALL_LIBDIR=lib"
-    "-DCMAKE_INSTALL_INCLUDEDIR=include"
-    "-DCMAKE_INSTALL_BINDIR=bin"
-  ]
-    ++ optionals enableQt [ "-DVTK_Group_Qt:BOOL=ON" ]
-    ++ optionals stdenv.isDarwin [ "-DOPENGL_INCLUDE_DIR=${OpenGL}/Library/Frameworks" ]
-    ++ optionals enablePython [
-      "-DVTK_WRAP_PYTHON:BOOL=ON"
-      "-DVTK_PYTHON_VERSION:STRING=3"
-    ];
-
-  postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
-    sed -i 's|COMMAND vtkHashSource|COMMAND "DYLD_LIBRARY_PATH=''${VTK_BINARY_DIR}/lib" ''${VTK_BINARY_DIR}/bin/vtkHashSource-${majorVersion}|' ./Parallel/Core/CMakeLists.txt
-    sed -i 's/fprintf(output, shift)/fprintf(output, "%s", shift)/' ./ThirdParty/libxml2/vtklibxml2/xmlschemas.c
-    sed -i 's/fprintf(output, shift)/fprintf(output, "%s", shift)/g' ./ThirdParty/libxml2/vtklibxml2/xpath.c
-  '';
-
-  enableParallelBuilding = true;
-
-  meta = with stdenv.lib; {
-    description = "Open source libraries for 3D computer graphics, image processing and visualization";
-    homepage = "https://www.vtk.org/";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ tfmoraes ];
-    platforms = with platforms; unix;
-  };
+  sourceSha256 = "1ir2lq9i45ls374lcmjzw0nrm5l5hnm1w47lg8g8d0n2j7hsaf8v";
 }
diff --git a/pkgs/development/libraries/vtk/default.nix b/pkgs/development/libraries/vtk/default.nix
deleted file mode 100644
index 4ef140a0999..00000000000
--- a/pkgs/development/libraries/vtk/default.nix
+++ /dev/null
@@ -1,67 +0,0 @@
-{ stdenv, fetchurl, cmake, libGLU, libGL, libX11, xorgproto, libXt, libtiff
-, fetchpatch
-, qtLib ? null
-, enablePython ? false, python ? null
-# Darwin support
-, Cocoa, CoreServices, DiskArbitration, IOKit, CFNetwork, Security, GLUT, OpenGL
-, ApplicationServices, CoreText, IOSurface, ImageIO, xpc, libobjc }:
-
-with stdenv.lib;
-
-let
-  os = stdenv.lib.optionalString;
-  majorVersion = "8.2";
-  minorVersion = "0";
-  version = "${majorVersion}.${minorVersion}";
-in
-
-stdenv.mkDerivation rec {
-  name = "vtk-${os (qtLib != null) "qvtk-"}${version}";
-  src = fetchurl {
-    url = "${meta.homepage}files/release/${majorVersion}/VTK-${version}.tar.gz";
-    sha256 = "1fspgp8k0myr6p2a6wkc21ldcswb4bvmb484m12mxgk1a9vxrhrl";
-  };
-
-  nativeBuildInputs = [ cmake ];
-
-  buildInputs = [ libtiff ]
-    ++ optionals (qtLib != null) (with qtLib; [ qtbase qtx11extras qttools ])
-    ++ optionals stdenv.isLinux [ libGLU libGL libX11 xorgproto libXt ]
-    ++ optionals stdenv.isDarwin [ xpc Cocoa CoreServices DiskArbitration IOKit
-                                   CFNetwork Security ApplicationServices CoreText
-                                   IOSurface ImageIO OpenGL GLUT ]
-    ++ optional enablePython [
-      python
-    ];
-  propagatedBuildInputs = stdenv.lib.optionals stdenv.isDarwin [ libobjc ];
-
-  preBuild = ''
-    export LD_LIBRARY_PATH="$(pwd)/lib";
-  '';
-
-  # Shared libraries don't work, because of rpath troubles with the current
-  # nixpkgs cmake approach. It wants to call a binary at build time, just
-  # built and requiring one of the shared objects.
-  # At least, we use -fPIC for other packages to be able to use this in shared
-  # objects.
-  cmakeFlags = [ "-DCMAKE_C_FLAGS=-fPIC" "-DCMAKE_CXX_FLAGS=-fPIC" "-DVTK_USE_SYSTEM_TIFF=1" "-DOPENGL_INCLUDE_DIR=${libGL}/include" ]
-    ++ optional (qtLib != null) [ "-DVTK_Group_Qt:BOOL=ON" ]
-    ++ optional stdenv.isDarwin [ "-DOPENGL_INCLUDE_DIR=${OpenGL}/Library/Frameworks" ]
-    ++ optional enablePython [ "-DVTK_WRAP_PYTHON:BOOL=ON" ];
-
-  postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
-    sed -i 's|COMMAND vtkHashSource|COMMAND "DYLD_LIBRARY_PATH=''${VTK_BINARY_DIR}/lib" ''${VTK_BINARY_DIR}/bin/vtkHashSource-${majorVersion}|' ./Parallel/Core/CMakeLists.txt
-    sed -i 's/fprintf(output, shift)/fprintf(output, "%s", shift)/' ./ThirdParty/libxml2/vtklibxml2/xmlschemas.c
-    sed -i 's/fprintf(output, shift)/fprintf(output, "%s", shift)/g' ./ThirdParty/libxml2/vtklibxml2/xpath.c
-  '';
-
-  enableParallelBuilding = true;
-
-  meta = {
-    description = "Open source libraries for 3D computer graphics, image processing and visualization";
-    homepage = "https://www.vtk.org/";
-    license = stdenv.lib.licenses.bsd3;
-    maintainers = with stdenv.lib.maintainers; [ knedlsepp ];
-    platforms = with stdenv.lib.platforms; unix;
-  };
-}
diff --git a/pkgs/development/libraries/vtk/generic.nix b/pkgs/development/libraries/vtk/generic.nix
new file mode 100644
index 00000000000..7bfd8d9fcff
--- /dev/null
+++ b/pkgs/development/libraries/vtk/generic.nix
@@ -0,0 +1,96 @@
+{ majorVersion, minorVersion, sourceSha256, patchesToFetch ? [] }:
+{ stdenv, lib, fetchurl, cmake, libGLU, libGL, libX11, xorgproto, libXt, libtiff
+, fetchpatch
+, enableQt ? false, wrapQtAppsHook, qtbase, qtx11extras, qttools
+, enablePython ? false, pythonInterpreter ? throw "vtk: Python support requested, but no python interpreter was given."
+# Darwin support
+, Cocoa, CoreServices, DiskArbitration, IOKit, CFNetwork, Security, GLUT, OpenGL
+, ApplicationServices, CoreText, IOSurface, ImageIO, xpc, libobjc
+}:
+
+let
+  inherit (lib) optionalString optionals optional;
+
+  pythonMajor = lib.substring 0 1 pythonInterpreter.pythonVersion;
+
+in stdenv.mkDerivation rec {
+  pname = "vtk${optionalString enableQt "-qvtk"}";
+  version = "${majorVersion}.${minorVersion}";
+
+  src = fetchurl {
+    url = "${meta.homepage}files/release/${majorVersion}/VTK-${version}.tar.gz";
+    sha256 = sourceSha256;
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ libtiff ]
+    ++ optionals enableQt [ qtbase qtx11extras qttools ]
+    ++ optionals stdenv.isLinux [
+      libGLU
+      libGL
+      libX11
+      xorgproto
+      libXt
+    ] ++ optionals stdenv.isDarwin [
+      xpc
+      Cocoa
+      CoreServices
+      DiskArbitration
+      IOKit
+      CFNetwork
+      Security
+      ApplicationServices
+      CoreText
+      IOSurface
+      ImageIO
+      OpenGL
+      GLUT
+    ] ++ optional enablePython [
+      pythonInterpreter
+    ];
+  propagatedBuildInputs = optionals stdenv.isDarwin [ libobjc ];
+
+  patches = map fetchpatch patchesToFetch;
+
+  preBuild = ''
+    export LD_LIBRARY_PATH="$(pwd)/lib";
+  '';
+
+  # Shared libraries don't work, because of rpath troubles with the current
+  # nixpkgs cmake approach. It wants to call a binary at build time, just
+  # built and requiring one of the shared objects.
+  # At least, we use -fPIC for other packages to be able to use this in shared
+  # objects.
+  cmakeFlags = [
+    "-DCMAKE_C_FLAGS=-fPIC"
+    "-DCMAKE_CXX_FLAGS=-fPIC"
+    "-DVTK_USE_SYSTEM_TIFF=1"
+    "-DOPENGL_INCLUDE_DIR=${libGL}/include"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+    "-DCMAKE_INSTALL_BINDIR=bin"
+  ]
+    ++ optionals enableQt [ "-DVTK_Group_Qt:BOOL=ON" ]
+    ++ optionals stdenv.isDarwin [ "-DOPENGL_INCLUDE_DIR=${OpenGL}/Library/Frameworks" ]
+    ++ optionals enablePython [
+      "-DVTK_WRAP_PYTHON:BOOL=ON"
+      "-DVTK_PYTHON_VERSION:STRING=${pythonMajor}"
+    ];
+
+  postPatch = optionalString stdenv.isDarwin ''
+    sed -i 's|COMMAND vtkHashSource|COMMAND "DYLD_LIBRARY_PATH=''${VTK_BINARY_DIR}/lib" ''${VTK_BINARY_DIR}/bin/vtkHashSource-${majorVersion}|' ./Parallel/Core/CMakeLists.txt
+    sed -i 's/fprintf(output, shift)/fprintf(output, "%s", shift)/' ./ThirdParty/libxml2/vtklibxml2/xmlschemas.c
+    sed -i 's/fprintf(output, shift)/fprintf(output, "%s", shift)/g' ./ThirdParty/libxml2/vtklibxml2/xpath.c
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "Open source libraries for 3D computer graphics, image processing and visualization";
+    homepage = "https://www.vtk.org/";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ knedlsepp tfmoraes lheckemann ];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/pkgs/development/libraries/vulkan-headers/default.nix b/pkgs/development/libraries/vulkan-headers/default.nix
index 317a5059aec..154ed9deb49 100644
--- a/pkgs/development/libraries/vulkan-headers/default.nix
+++ b/pkgs/development/libraries/vulkan-headers/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, cmake }:
 stdenv.mkDerivation rec {
   pname = "vulkan-headers";
-  version = "1.2.141.0";
+  version = "1.2.162.0";
 
   nativeBuildInputs = [ cmake ];
 
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     owner = "KhronosGroup";
     repo = "Vulkan-Headers";
     rev = "sdk-${version}";
-    sha256 = "10nmx6y4llllfcczyfz76amd0vkqv09dj952d19zkzmmgcval7zq";
+    sha256 = "057c49w1138l02v9gqsk1z8wdz0iilp96jblnldycwm9jc1a1ipq";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/vulkan-loader/default.nix b/pkgs/development/libraries/vulkan-loader/default.nix
index 8f974307cda..f2fb44f8b9d 100644
--- a/pkgs/development/libraries/vulkan-loader/default.nix
+++ b/pkgs/development/libraries/vulkan-loader/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vulkan-loader";
-  version = "1.2.141.0";
+  version = "1.2.162.0";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "Vulkan-Loader";
     rev = "sdk-${version}";
-    sha256 = "10fyg71dza6qakz5zdchccfn0zcr8b1zpfi2rqir6jpzcbi28kcj";
+    sha256 = "0w9i2pliw4ccmjyfzff4i2f3hxwsfd54jg7ahv2v634qmx59bsbi";
   };
 
   nativeBuildInputs = [ pkgconfig cmake ];
diff --git a/pkgs/development/libraries/waffle/default.nix b/pkgs/development/libraries/waffle/default.nix
index 66a1b7ab145..0f1e36b3579 100644
--- a/pkgs/development/libraries/waffle/default.nix
+++ b/pkgs/development/libraries/waffle/default.nix
@@ -1,16 +1,23 @@
 { stdenv
 , fetchFromGitLab
 , lib
-, cmake
+, meson
+, ninja
 , libGL
-, libglvnd
+, libglvnd ? null
 , makeWrapper
 , pkg-config
-, wayland
-, libxcb
-, libX11
+, python3
+, x11Support ? true, libxcb ? null, libX11 ? null
+, waylandSupport ? true, wayland ? null
+, useGbm ? true, mesa ? null, libudev ? null
 }:
 
+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";
@@ -25,20 +32,26 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     libGL
+  ] ++ stdenv.lib.optionals (with stdenv.hostPlatform; isUnix && !isDarwin) [
     libglvnd
+  ] ++ stdenv.lib.optionals x11Support [
     libX11
     libxcb
+  ] ++ stdenv.lib.optionals waylandSupport [
     wayland
+  ] ++ stdenv.lib.optionals useGbm [
+    mesa
+    libudev
   ];
 
   nativeBuildInputs = [
-    cmake
+    meson
+    ninja
     makeWrapper
     pkg-config
+    python3
   ];
 
-  cmakeFlags = [ "-Dplatforms=x11,wayland" ];
-
   postInstall = ''
     wrapProgram $out/bin/wflinfo \
       --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ libGL libglvnd ]}
diff --git a/pkgs/development/libraries/webkitgtk/fix-bubblewrap-paths.patch b/pkgs/development/libraries/webkitgtk/fix-bubblewrap-paths.patch
index 6485ba0f261..03a6b6903a8 100644
--- a/pkgs/development/libraries/webkitgtk/fix-bubblewrap-paths.patch
+++ b/pkgs/development/libraries/webkitgtk/fix-bubblewrap-paths.patch
@@ -10,7 +10,7 @@ diff -ru old/webkitgtk-2.26.0/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLa
          { SCMP_SYS(move_pages), nullptr },
          { SCMP_SYS(mbind), nullptr },
          { SCMP_SYS(get_mempolicy), nullptr },
-@@ -724,6 +724,10 @@
+@@ -724,6 +724,11 @@
          "--ro-bind-try", "/usr/local/lib64", "/usr/local/lib64",
  
          "--ro-bind-try", PKGLIBEXECDIR, PKGLIBEXECDIR,
@@ -18,6 +18,7 @@ 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",
      };
      // We would have to parse ld config files for more info.
      bindPathVar(sandboxArgs, "LD_LIBRARY_PATH");
diff --git a/pkgs/development/libraries/websocket++/default.nix b/pkgs/development/libraries/websocket++/default.nix
index 6a7b091b536..d04cadb483b 100644
--- a/pkgs/development/libraries/websocket++/default.nix
+++ b/pkgs/development/libraries/websocket++/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "12ffczcrryh74c1xssww35ic6yiy2l2xgdd30lshiq9wnzl2brgy";
   };
 
-  buildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   meta = with stdenv.lib; {
     homepage = "https://www.zaphoyd.com/websocketpp/";
diff --git a/pkgs/development/libraries/wxsqlite3/default.nix b/pkgs/development/libraries/wxsqlite3/default.nix
index 7bfc96fbf47..db5e91b74d6 100644
--- a/pkgs/development/libraries/wxsqlite3/default.nix
+++ b/pkgs/development/libraries/wxsqlite3/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wxsqlite3";
-  version = "4.6.1";
+  version = "4.6.2";
 
   src = fetchFromGitHub {
     owner = "utelle";
     repo = "wxsqlite3";
     rev = "v${version}";
-    sha256 = "0q5glzr49rjnpp6iqrx7zr9bz4n2ca0q0i0phk7y27rmxzrgpxk1";
+    sha256 = "10jlb4p3ahck9apcy2c2mrrjynv4c1dfwwbf1vwd8dl17pgv4kgs";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/development/libraries/xed/default.nix b/pkgs/development/libraries/xed/default.nix
new file mode 100644
index 00000000000..1d6dcdc67ad
--- /dev/null
+++ b/pkgs/development/libraries/xed/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchFromGitHub, python3Packages }:
+
+let
+  # mbuild is a custom build system used only to build xed
+  mbuild = python3Packages.buildPythonPackage rec {
+    pname = "mbuild";
+    version = "0.2496-dev";
+
+    src = fetchFromGitHub {
+      owner = "intelxed";
+      repo = "mbuild";
+      rev = "3e8eb33aada4153c21c4261b35e5f51f6e2019e8";
+      sha256 = "0yamgzkzw4v6x1a857psw9f7i62ydgd0zaqrf33dbdg8hfd2mq3q";
+    };
+  };
+
+in stdenv.mkDerivation rec {
+  pname = "xed";
+  version = "12.0.1";
+
+  src = fetchFromGitHub {
+    owner = "intelxed";
+    repo = "xed";
+    rev = version;
+    sha256 = "07zfff8zf29c2n0wal87hiqfq3cwcjn80zz78mz0nyjfj09nd39f";
+  };
+
+  nativeBuildInputs = [ mbuild ];
+
+  buildPhase = ''
+    patchShebangs mfile.py
+
+    # this will build, test and install
+    ./mfile.py test --prefix $out
+  '';
+
+  dontInstall = true; # already installed during buildPhase
+
+  meta = with stdenv.lib; {
+    description = "Intel X86 Encoder Decoder (Intel XED)";
+    homepage    = "https://intelxed.github.io/";
+    license     = licenses.apsl20;
+    platforms   = platforms.unix;
+    maintainers = with maintainers; [ arturcygan ];
+  };
+}
diff --git a/pkgs/development/libraries/zchunk/default.nix b/pkgs/development/libraries/zchunk/default.nix
index b7787650e7c..a0cb85ed71a 100644
--- a/pkgs/development/libraries/zchunk/default.nix
+++ b/pkgs/development/libraries/zchunk/default.nix
@@ -1,15 +1,17 @@
 { stdenv
 , fetchFromGitHub
+, fetchpatch
 , pkgconfig
 , meson
 , ninja
 , zstd
 , curl
+, argp-standalone
 }:
 
 stdenv.mkDerivation rec {
   pname = "zchunk";
-  version = "1.1.6";
+  version = "1.1.8";
 
   outputs = [ "out" "lib" "dev" ];
 
@@ -17,7 +19,7 @@ stdenv.mkDerivation rec {
     owner = "zchunk";
     repo = pname;
     rev = version;
-    sha256 = "1j05f26xppwbkxrm11895blm75i1a6p9q23x7wlkqw198mpnpbbv";
+    sha256 = "0q1jafxh5nqgn2w5ciljkh8h46xma0qia8a5rj9m0pxixcacqj6q";
   };
 
   nativeBuildInputs = [
@@ -29,7 +31,17 @@ stdenv.mkDerivation rec {
   buildInputs = [
     zstd
     curl
-  ];
+  ] ++ stdenv.lib.optional stdenv.isDarwin argp-standalone;
+
+  # Darwin needs a patch for argp-standalone usage and differing endian.h location on macOS
+  # https://github.com/zchunk/zchunk/pull/35
+  patches = [
+  (fetchpatch {
+    name = "darwin-support.patch";
+    url = "https://github.com/zchunk/zchunk/commit/f7db2ac0a95028a7f82ecb89862426bf53a69232.patch";
+    sha256 = "0cm84gyii4ly6nsmagk15g9kbfa13rw395nqk3fdcwm0dpixlkh4";
+  })
+];
 
   meta = with stdenv.lib; {
     description = "File format designed for highly efficient deltas while maintaining good compression";
diff --git a/pkgs/development/libraries/zlib/default.nix b/pkgs/development/libraries/zlib/default.nix
index 98746968146..b780fcda393 100644
--- a/pkgs/development/libraries/zlib/default.nix
+++ b/pkgs/development/libraries/zlib/default.nix
@@ -1,17 +1,19 @@
 { stdenv
 , fetchurl
-# Note: If `{ static = false; shared = false; }`, upstream's default is used
-#       (which is building both static and shared as of zlib 1.2.11).
-, shared ? true
+, shared ? !stdenv.hostPlatform.isStatic
 , static ? true
 # If true, a separate .static ouput is created and the .a is moved there.
 # In this case `pkg-config` auto detection does not currently work if the
 # .static output is given as `buildInputs` to another package (#66461), because
 # the `.pc` file lists only the main output's lib dir.
 # If false, and if `{ static = true; }`, the .a stays in the main output.
-, splitStaticOutput ? static
+, splitStaticOutput ? shared && static
 }:
 
+# Without either the build will actually still succeed because the build
+# system makes an arbitrary choice, but we shouldn't be so indecisive.
+assert shared || static;
+
 # 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
diff --git a/pkgs/development/lua-modules/generic/default.nix b/pkgs/development/lua-modules/generic/default.nix
index 71e1f7c05e6..de21d3d6a3e 100644
--- a/pkgs/development/lua-modules/generic/default.nix
+++ b/pkgs/development/lua-modules/generic/default.nix
@@ -1,11 +1,14 @@
 { lua, writeText, toLuaModule }:
 
-{ disabled ? false, ... } @ attrs:
+{ disabled ? false
+, propagatedBuildInputs ? [ ]
+, ...
+} @ attrs:
 
 if disabled then
   throw "${attrs.name} not supported by interpreter lua-${lua.luaversion}"
 else
-  toLuaModule( lua.stdenv.mkDerivation (
+  toLuaModule (lua.stdenv.mkDerivation (
     {
       makeFlags = [
         "PREFIX=$(out)"
@@ -18,8 +21,8 @@ else
     //
     {
       name = "lua${lua.luaversion}-" + attrs.name;
-      propagatedBuildInputs = [
+      propagatedBuildInputs = propagatedBuildInputs ++ [
         lua # propagate it for its setup-hook
       ];
     }
-  ) )
+  ))
diff --git a/pkgs/development/misc/resholve/README.md b/pkgs/development/misc/resholve/README.md
new file mode 100644
index 00000000000..ddba7fc1493
--- /dev/null
+++ b/pkgs/development/misc/resholve/README.md
@@ -0,0 +1,138 @@
+# Using resholve's Nix API
+
+resholve converts bare executable references in shell scripts to absolute
+paths. This will hopefully make its way into the Nixpkgs manual soon, but
+until then I'll outline how to use the `resholvePackage` function.
+
+> Fair warning: resholve does *not* aspire to resolving all valid Shell
+> scripts. It depends on the OSH/Oil parser, which aims to support most (but
+> not all) Bash, and aims to be a ~90% sort of solution.
+
+Let's start with a simple example from one of my own projects:
+
+```nix
+{ stdenv, lib, resholvePackage, fetchFromGitHub, bashup-events44, bashInteractive_5, doCheck ? true, shellcheck }:
+
+resholvePackage rec {
+  pname = "shellswain";
+  version = "unreleased";
+
+  src = fetchFromGitHub {
+    # ...
+  };
+
+  solutions = {
+    profile = {
+      # the only *required* arguments
+      scripts = [ "bin/shellswain.bash" ];
+      interpreter = "none";
+      inputs = [ bashup-events44 ];
+    };
+  };
+
+  makeFlags = [ "prefix=${placeholder "out"}" ];
+
+  inherit doCheck;
+  checkInputs = [ shellcheck ];
+
+  # ...
+}
+```
+
+I'll focus on the `solutions` attribute, since this is the only part
+that differs from other derivations.
+
+Each "solution" (k=v pair)
+describes one resholve invocation. For most shell packages, one
+invocation will probably be enough. resholve will make you be very
+explicit about your script's dependencies, and it may also need your
+help sorting out some references or problems that it can't safely
+handle on its own.
+
+If you have more than one script, and your scripts need conflicting
+directives, you can specify more than one solution to resolve the
+scripts separately, but still produce a single package.
+
+Let's take a closer look:
+
+```nix
+  solutions = {
+    # each solution has a short name; this is what you'd use to
+    # override the settings of this solution, and it may also show up
+    # in (some) error messages.
+    profile = {
+      # specify one or more $out-relative script paths (unlike many
+      # builders, resholve will modify the output files during fixup
+      # to correctly resolve scripts that source within the package)
+      scripts = [ "bin/shellswain.bash" ];
+      # "none" for no shebang, "${bash}/bin/bash" for bash, etc.
+      interpreter = "none";
+      # packages resholve should resolve executables from
+      inputs = [ bashup-events44 ];
+    };
+  };
+```
+
+resholve has a (growing) number of options for handling more complex
+scripts. I won't cover these in excruciating detail here. You can find
+more information about these in `man resholve` via `nixpkgs.resholve`.
+
+Instead, we'll look at the general form of the solutions attrset:
+
+```nix
+solutions = {
+  shortname = {
+    # required
+    # $out-relative paths to try resolving
+    scripts = [ "bin/shunit2" ];
+    # packages to resolve executables from
+    inputs = [ coreutils gnused gnugrep findutils ];
+    # path for shebang, or 'none' to omit shebang
+    interpreter = "${bash}/bin/bash";
+
+    # optional
+    fake = { fake directives };
+    fix = { fix directives };
+    keep = { keep directives };
+    # file to inject before first code-line of script
+    prologue = file;
+    # file to inject after last code-line of script
+    epilogue = file;
+    # extra command-line flags passed to resholve; generally this API
+    # should align with what resholve supports, but flags may help if
+    # you need to override the version of resholve.
+    flags = [ ];
+  };
+};
+```
+
+The main way you'll adjust how resholve handles your scripts are the
+fake, fix, and keep directives. The manpage covers their purpose and
+how to format them on the command-line, so I'll focus on how you'll
+need to translate them into Nix types.
+
+```nix
+# --fake 'f:setUp;tearDown builtin:setopt source:/etc/bashrc'
+fake = {
+    function = [ "setUp" "tearDown" ];
+    builtin = [ "setopt" ];
+    source = [ "/etc/bashrc" ];
+};
+
+# --fix 'aliases xargs:ls $GIT:gix'
+fix = {
+    # all single-word directives use `true` as value
+    aliases = true;
+    xargs = [ "ls" ];
+    "$GIT" = [ "gix" ];
+};
+
+# --keep 'which:git;ls .:$HOME $LS:exa /etc/bashrc ~/.bashrc'
+keep = {
+    which = [ "git" "ls" ];
+    "." = [ "$HOME" ];
+    "$LS" = [ "exa" ];
+    "/etc/bashrc" = true;
+    "~/.bashrc" = true;
+};
+```
diff --git a/pkgs/development/misc/resholve/default.nix b/pkgs/development/misc/resholve/default.nix
new file mode 100644
index 00000000000..7b5a79dd221
--- /dev/null
+++ b/pkgs/development/misc/resholve/default.nix
@@ -0,0 +1,9 @@
+{ callPackage
+, doCheck ? true
+}:
+
+rec {
+  resholve = callPackage ./resholve.nix { inherit doCheck; };
+  resholvePackage =
+    callPackage ./resholve-package.nix { inherit resholve; };
+}
diff --git a/pkgs/development/misc/resholve/deps.nix b/pkgs/development/misc/resholve/deps.nix
new file mode 100644
index 00000000000..9be283e4933
--- /dev/null
+++ b/pkgs/development/misc/resholve/deps.nix
@@ -0,0 +1,120 @@
+{ stdenv
+, python27Packages
+, fetchFromGitHub
+, makeWrapper
+, # re2c deps
+  autoreconfHook
+, # py-yajl deps
+  git
+, # oil deps
+  readline
+, cmark
+, file
+, glibcLocales
+, oilPatches ? [ ]
+}:
+
+/*
+Notes on specific dependencies:
+- if/when python2.7 is removed from nixpkgs, this may need to figure
+  out how to build oil's vendored python2
+- I'm not sure if glibcLocales is worth the addition here. It's to fix
+  a libc test oil runs. My oil fork just disabled the libc tests, but
+  I haven't quite decided if that's the right long-term call, so I
+  didn't add a patch for it here yet.
+*/
+
+rec {
+  # had to add this as well; 1.3 causes a break here; sticking
+  # to oil's official 1.0.3 dep for now.
+  re2c = stdenv.mkDerivation rec {
+    pname = "re2c";
+    version = "1.0.3";
+    sourceRoot = "${src.name}/re2c";
+    src = fetchFromGitHub {
+      owner = "skvadrik";
+      repo = "re2c";
+      rev = version;
+      sha256 = "0grx7nl9fwcn880v5ssjljhcb9c5p2a6xpwil7zxpmv0rwnr3yqi";
+    };
+    nativeBuildInputs = [ autoreconfHook ];
+    preCheck = ''
+      patchShebangs run_tests.sh
+    '';
+  };
+
+  py-yajl = python27Packages.buildPythonPackage rec {
+    pname = "oil-pyyajl-unstable";
+    version = "2019-12-05";
+    src = fetchFromGitHub {
+      owner = "oilshell";
+      repo = "py-yajl";
+      rev = "eb561e9aea6e88095d66abcc3990f2ee1f5339df";
+      sha256 = "17hcgb7r7cy8r1pwbdh8di0nvykdswlqj73c85k6z8m0filj3hbh";
+      fetchSubmodules = true;
+    };
+    # just for submodule IIRC
+    nativeBuildInputs = [ git ];
+  };
+
+  # resholve's primary dependency is this developer build of the oil shell.
+  oildev = python27Packages.buildPythonPackage rec {
+    pname = "oildev-unstable";
+    version = "2020-03-31";
+
+    src = fetchFromGitHub {
+      owner = "oilshell";
+      repo = "oil";
+      rev = "ea80cdad7ae1152a25bd2a30b87fe3c2ad32394a";
+      sha256 = "0pxn0f8qbdman4gppx93zwml7s5byqfw560n079v68qjgzh2brq2";
+
+      /*
+      It's not critical to drop most of these; the primary target is
+      the vendored fork of Python-2.7.13, which is ~ 55M and over 3200
+      files, dozens of which get interpreter script patches in fixup.
+      */
+      extraPostFetch = ''
+        rm -rf Python-2.7.13 benchmarks metrics py-yajl rfc gold web testdata services demo devtools cpp
+      '';
+    };
+
+    # TODO: not sure why I'm having to set this for nix-build...
+    #       can anyone tell if I'm doing something wrong?
+    SOURCE_DATE_EPOCH = 315532800;
+
+    # These aren't, strictly speaking, nix/nixpkgs specific, but I've
+    # had hell upstreaming them. Pulling from resholve source and
+    # passing in from resholve.nix
+    patches = oilPatches;
+
+    buildInputs = [ readline cmark py-yajl ];
+
+    nativeBuildInputs = [ re2c file makeWrapper ];
+
+    propagatedBuildInputs = with python27Packages; [ six typing ];
+
+    doCheck = true;
+
+    preBuild = ''
+      build/dev.sh all
+    '';
+
+    postPatch = ''
+      patchShebangs asdl build core doctools frontend native oil_lang
+    '';
+
+    _NIX_SHELL_LIBCMARK = "${cmark}/lib/libcmark${stdenv.hostPlatform.extensions.sharedLibrary}";
+
+    # See earlier note on glibcLocales
+    LOCALE_ARCHIVE = stdenv.lib.optionalString (stdenv.buildPlatform.libc == "glibc") "${glibcLocales}/lib/locale/locale-archive";
+
+    meta = {
+      description = "A new unix shell";
+      homepage = "https://www.oilshell.org/";
+      license = with stdenv.lib.licenses; [
+        psfl # Includes a portion of the python interpreter and standard library
+        asl20 # Licence for Oil itself
+      ];
+    };
+  };
+}
diff --git a/pkgs/development/misc/resholve/resholve-package.nix b/pkgs/development/misc/resholve/resholve-package.nix
new file mode 100644
index 00000000000..cc971196a4f
--- /dev/null
+++ b/pkgs/development/misc/resholve/resholve-package.nix
@@ -0,0 +1,97 @@
+{ stdenv, lib, resholve }:
+
+{ pname
+, src
+, version
+, passthru ? { }
+, solutions
+, ...
+}@attrs:
+let
+  inherit stdenv;
+  /* These functions break up the work of partially validating the
+   * 'solutions' attrset and massaging it into env/cli args.
+   *
+   * Note: some of the left-most args do not *have* to be passed as
+   * deep as they are, but I've done so to provide more error context
+   */
+
+  # for brevity / line length
+  spaces = l: builtins.concatStringsSep " " l;
+  semicolons = l: builtins.concatStringsSep ";" l;
+
+  /* Throw a fit with dotted attr path context */
+  nope = path: msg:
+    throw "${builtins.concatStringsSep "." path}: ${msg}";
+
+  /* Special-case directive value representations by type */
+  makeDirective = solution: env: name: val:
+    if builtins.isInt val then builtins.toString val
+    else if builtins.isString val then name
+    else if true == val then name
+    else if false == val then "" # omit!
+    else if null == val then "" # omit!
+    else if builtins.isList val then "${name}:${semicolons val}"
+    else nope [ solution env name ] "unexpected type: ${builtins.typeOf val}";
+
+  /* Build fake/fix/keep directives from Nix types */
+  makeDirectives = solution: env: val:
+    lib.mapAttrsToList (makeDirective solution env) val;
+
+  /* Special-case value representation by type/name */
+  makeEnvVal = solution: env: val:
+    if env == "inputs" then lib.makeBinPath val
+    else if builtins.isString val then val
+    else if builtins.isList val then spaces val
+    else if builtins.isAttrs val then spaces (makeDirectives solution env val)
+    else nope [ solution env ] "unexpected type: ${builtins.typeOf val}";
+
+  /* Shell-format each env value */
+  shellEnv = solution: env: value:
+    lib.escapeShellArg (makeEnvVal solution env value);
+
+  /* Build a single ENV=val pair */
+  makeEnv = solution: env: value:
+    "RESHOLVE_${lib.toUpper env}=${shellEnv solution env value}";
+
+  /* Discard attrs claimed by makeArgs */
+  removeCliArgs = value:
+    removeAttrs value [ "scripts" "flags" ];
+
+  /* Verify required arguments are present */
+  validateSolution = { scripts, inputs, interpreter, ... }: true;
+
+  /* Pull out specific solution keys to build ENV=val pairs */
+  makeEnvs = solution: value:
+    spaces (lib.mapAttrsToList (makeEnv solution) (removeCliArgs value));
+
+  /* Pull out specific solution keys to build CLI argstring */
+  makeArgs = { flags ? [ ], scripts, ... }:
+    spaces (flags ++ scripts);
+
+  /* Build a single resholve invocation */
+  makeInvocation = solution: value:
+    if validateSolution value then
+      "${makeEnvs solution value} resholve --overwrite ${makeArgs value}"
+    else throw "invalid solution"; # shouldn't trigger for now
+
+  /* Build resholve invocation for each solution. */
+  makeCommands = solutions:
+    lib.mapAttrsToList makeInvocation solutions;
+
+  self = (stdenv.mkDerivation ((removeAttrs attrs [ "solutions" ])
+    // {
+    inherit pname version src;
+    buildInputs = [ resholve ];
+
+    # enable below for verbose debug info if needed
+    # supports default python.logging levels
+    # LOGLEVEL="INFO";
+    preFixup = ''
+      pushd "$out"
+      ${builtins.concatStringsSep "\n" (makeCommands solutions)}
+      popd
+    '';
+  }));
+in
+lib.extendDerivation true passthru self
diff --git a/pkgs/development/misc/resholve/resholve.nix b/pkgs/development/misc/resholve/resholve.nix
new file mode 100644
index 00000000000..2d1880f704c
--- /dev/null
+++ b/pkgs/development/misc/resholve/resholve.nix
@@ -0,0 +1,74 @@
+{ stdenv
+, callPackage
+, python27Packages
+, installShellFiles
+, fetchFromGitHub
+, file
+, findutils
+, gettext
+, bats
+, bash
+, doCheck ? true
+}:
+let
+  version = "0.4.0";
+  rSrc = fetchFromGitHub {
+    owner = "abathur";
+    repo = "resholve";
+    rev = "v${version}";
+    hash = "sha256-wfxcX3wMZqoi5bWjXYRa21UDDJmTDfE+21p4mL2IJog=";
+  };
+  deps = callPackage ./deps.nix {
+    /*
+    resholve needs to patch Oil, but trying to avoid adding
+    them all *to* nixpkgs, since they aren't specific to
+    nix/nixpkgs.
+    */
+    oilPatches = [
+      "${rSrc}/0001-add_setup_py.patch"
+      "${rSrc}/0002-add_MANIFEST_in.patch"
+      "${rSrc}/0003-fix_codegen_shebang.patch"
+      "${rSrc}/0004-disable-internal-py-yajl-for-nix-built.patch"
+    ];
+  };
+in
+python27Packages.buildPythonApplication {
+  pname = "resholve";
+  inherit version;
+  src = rSrc;
+  format = "other";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  propagatedBuildInputs = [ deps.oildev python27Packages.ConfigArgParse ];
+
+  patchPhase = ''
+    for file in resholve; do
+      substituteInPlace $file --subst-var-by version ${version}
+    done
+  '';
+
+  installPhase = ''
+    install -Dm755 resholve $out/bin/resholve
+    installManPage resholve.1
+  '';
+
+  inherit doCheck;
+  checkInputs = [ bats ];
+  RESHOLVE_PATH = "${stdenv.lib.makeBinPath [ file findutils gettext ]}";
+
+  checkPhase = ''
+    # explicit interpreter for test suite
+    export INTERP="${bash}/bin/bash" PATH="$out/bin:$PATH"
+    patchShebangs .
+    ./test.sh
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Resolve external shell-script dependencies";
+    homepage = "https://github.com/abathur/resholve";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ abathur ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/misc/rpiboot/unstable.nix b/pkgs/development/misc/rpiboot/unstable.nix
index a8f7e4795e7..f12f5a845f1 100644
--- a/pkgs/development/misc/rpiboot/unstable.nix
+++ b/pkgs/development/misc/rpiboot/unstable.nix
@@ -1,16 +1,14 @@
 { stdenv, fetchFromGitHub, libusb1 }:
 
-let
-  version = "2020-05-11";
-  name = "rpiboot-unstable-${version}";
-in stdenv.mkDerivation {
-  inherit name;
+stdenv.mkDerivation {
+  pname = "rpiboot";
+  version = "unstable-2020-10-20";
 
   src = fetchFromGitHub {
     owner = "raspberrypi";
     repo = "usbboot";
-    rev = "c650cd747c1d0597487dcf319bf95b5ba775d78b";
-    sha256 = "17kapny79dh05vfmrniqdvz6xhpwnqnw0511ycfx4qcjh4krxh8n";
+    rev = "d3760e119385a179765f43a50a8e051a44127c25";
+    sha256 = "0vygzh2h27xplqp1x4isj6kgrgmvmvc1mr3ghmsi98kzp91w772r";
   };
 
   nativeBuildInputs = [ libusb1 ];
@@ -26,11 +24,11 @@ in stdenv.mkDerivation {
     cp -r msd $out/share/rpiboot
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = "https://github.com/raspberrypi/usbboot";
     description = "Utility to boot a Raspberry Pi CM/CM3/Zero over USB";
-    maintainers = [ stdenv.lib.maintainers.cartr ];
-    license = stdenv.lib.licenses.asl20;
-    platforms = stdenv.lib.platforms.unix;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ cartr ];
+    platforms = [ "aarch64-linux" "armv7l-linux" "armv6l-linux" "x86_64-linux" ];
   };
 }
diff --git a/pkgs/development/node-packages/default.nix b/pkgs/development/node-packages/default.nix
index c8694a46bd1..36ba75df33f 100644
--- a/pkgs/development/node-packages/default.nix
+++ b/pkgs/development/node-packages/default.nix
@@ -77,6 +77,13 @@ let
       buildInputs = [ self.node-gyp-build pkgs.unbound ];
     };
 
+    ijavascript = super.ijavascript.override (oldAttrs: {
+      preRebuild = ''
+        export NPM_CONFIG_ZMQ_EXTERNAL=true
+      '';
+      buildInputs = oldAttrs.buildInputs ++ [ self.node-gyp-build pkgs.zeromq ];
+    });
+
     insect = super.insect.override (drv: {
       nativeBuildInputs = drv.nativeBuildInputs or [] ++ [ pkgs.psc-package self.pulp ];
     });
@@ -189,6 +196,10 @@ let
       meta.broken = since "10";
     };
 
+    stf = super.stf.override {
+      meta.broken = since "10";
+    };
+
     tedicross = super."tedicross-git+https://github.com/TediCross/TediCross.git#v0.8.7".override {
       nativeBuildInputs = [ pkgs.makeWrapper ];
       postInstall = ''
@@ -205,8 +216,12 @@ let
       '';
     });
 
-    stf = super.stf.override {
-      meta.broken = since "10";
+    typescript-language-server = super.typescript-language-server.override {
+      nativeBuildInputs = [ pkgs.makeWrapper ];
+      postInstall = ''
+        wrapProgram "$out/bin/typescript-language-server" \
+          --prefix PATH : ${stdenv.lib.makeBinPath [ self.typescript ]}
+      '';
     };
 
     vega-cli = super.vega-cli.override {
diff --git a/pkgs/development/node-packages/node-packages.json b/pkgs/development/node-packages/node-packages.json
index 2982b644684..96165097316 100644
--- a/pkgs/development/node-packages/node-packages.json
+++ b/pkgs/development/node-packages/node-packages.json
@@ -18,6 +18,8 @@
 , "browserify"
 , "btc-rpc-explorer"
 , "castnow"
+, "cdk8s-cli"
+, "cdktf-cli"
 , "clean-css-cli"
 , "clubhouse-cli"
 , "coc-css"
@@ -76,9 +78,11 @@
 , "escape-string-regexp"
 , "eslint"
 , "eslint_d"
+, "esy"
 , "expo-cli"
 , {"fast-cli": "1.x"}
 , "fauna-shell"
+, "firebase-tools"
 , "fixjson"
 , "fkill-cli"
 , "flood"
@@ -104,6 +108,7 @@
 , "hs-airdrop"
 , "hs-client"
 , "hueadm"
+, "ijavascript"
 , "inliner"
 , "imapnotify"
 , "indium"
@@ -150,6 +155,7 @@
 , "node-red"
 , "node2nix"
 , "nodemon"
+, "np"
 , "npm"
 , "npm-check-updates"
 , {"npm2nix": "git://github.com/NixOS/npm2nix.git#5.12.0"}
@@ -170,6 +176,7 @@
 , "purescript-psa"
 , "purty"
 , "pyright"
+, "quicktype"
 , "react-native-cli"
 , "react-tools"
 , "readability-cli"
diff --git a/pkgs/development/node-packages/node-packages.nix b/pkgs/development/node-packages/node-packages.nix
index fa696958acf..8f5c140d925 100644
--- a/pkgs/development/node-packages/node-packages.nix
+++ b/pkgs/development/node-packages/node-packages.nix
@@ -22,31 +22,13 @@ let
         sha512 = "t4WmWoGV9gyzypwG3y3JlcK2t8fKLtvzBA7xEoFTj9SMPvOuLsf13uh4ikK0RRaaa9RPPWLgFUdOyIRaQvCpwQ==";
       };
     };
-    "@angular-devkit/architect-0.1100.3" = {
+    "@angular-devkit/architect-0.1100.5" = {
       name = "_at_angular-devkit_slash_architect";
       packageName = "@angular-devkit/architect";
-      version = "0.1100.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1100.3.tgz";
-        sha512 = "PF4PlGOIVW8eYAObP7B/vfk8TaHBEWzr2NOb+kHsIJJmx11iivkHRWzzQmTUlhwnRslCcg5ngwx0IBPDzNVeTg==";
-      };
-    };
-    "@angular-devkit/core-11.0.0" = {
-      name = "_at_angular-devkit_slash_core";
-      packageName = "@angular-devkit/core";
-      version = "11.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-11.0.0.tgz";
-        sha512 = "fXZtSs3J4S12hboi3om1FA+QS0e8nuQMyzl2nkmtuhcELUFMmSrEl36dtCni5e7Svs46BUAZ5w8EazIkgGQDJg==";
-      };
-    };
-    "@angular-devkit/core-11.0.1" = {
-      name = "_at_angular-devkit_slash_core";
-      packageName = "@angular-devkit/core";
-      version = "11.0.1";
+      version = "0.1100.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-11.0.1.tgz";
-        sha512 = "ui3g7w/0SpU9oq8uwN9upR8Y1eOXZ+P2p3NyDydBrR7ZEfEkRLS1mhozN/ib8farrwK5N3kIIJxMb5t3187Hng==";
+        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1100.5.tgz";
+        sha512 = "yOYfucNouc1doTbcGbCNMXGMSc36+j97XpdNoeGyzFQ7GwezLAro0a9gxc5PdOxndfelkND7J1JuOjxdW5O17A==";
       };
     };
     "@angular-devkit/core-11.0.3" = {
@@ -58,40 +40,40 @@ let
         sha512 = "gJRiBj0gWDR2VtIvLvwwc/GM2MZvg1xw69ZbBJ1VuUgDqPBHdC8q3UMW3B82wdhxK+RBYa7ZOJxtIVggaHkm9g==";
       };
     };
-    "@angular-devkit/schematics-11.0.0" = {
-      name = "_at_angular-devkit_slash_schematics";
-      packageName = "@angular-devkit/schematics";
-      version = "11.0.0";
+    "@angular-devkit/core-11.0.5" = {
+      name = "_at_angular-devkit_slash_core";
+      packageName = "@angular-devkit/core";
+      version = "11.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-11.0.0.tgz";
-        sha512 = "oCz9E0thA5WdGDuv6biu3X5kw5/vNE4ZZOKT2sHBQMpAuuDYrDpfTYQJjXQtjfXWvmlr8L8aqDD9N4HXsE4Esw==";
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-11.0.5.tgz";
+        sha512 = "hwV8fjF8JNPJkiVWw8MNzeIfDo01aD/OAOlC4L5rQnVHn+i2EiU3brSDmFqyeHPPV3h/QjuBkS3tkN7gSnVWaQ==";
       };
     };
-    "@angular-devkit/schematics-11.0.1" = {
+    "@angular-devkit/schematics-11.0.3" = {
       name = "_at_angular-devkit_slash_schematics";
       packageName = "@angular-devkit/schematics";
-      version = "11.0.1";
+      version = "11.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-11.0.1.tgz";
-        sha512 = "rAOnAndcybEH398xf5wzmcUPCoCi0dKiOo/+1dkKU5aTxynw1OUnANt5K6A+ZZTGnJmfjtP0ovkZGYun9IUDxQ==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-11.0.3.tgz";
+        sha512 = "VZnqgnnfyzyMluIDvGp+ZlDU2P9BnjrhacBOdqBS/jNQ7oxyE0AWrUApGXcejOJ13Z7pEf31E64P3bImcjwP+A==";
       };
     };
-    "@angular-devkit/schematics-11.0.3" = {
+    "@angular-devkit/schematics-11.0.5" = {
       name = "_at_angular-devkit_slash_schematics";
       packageName = "@angular-devkit/schematics";
-      version = "11.0.3";
+      version = "11.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-11.0.3.tgz";
-        sha512 = "VZnqgnnfyzyMluIDvGp+ZlDU2P9BnjrhacBOdqBS/jNQ7oxyE0AWrUApGXcejOJ13Z7pEf31E64P3bImcjwP+A==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-11.0.5.tgz";
+        sha512 = "0NKGC8Nf/4vvDpWKB7bwxIazvNnNHnZBX6XlyBXNl+fW8tpTef3PNMJMSErTz9LFnuv61vsKbc36u/Ek2YChWg==";
       };
     };
-    "@angular-devkit/schematics-cli-0.1100.1" = {
+    "@angular-devkit/schematics-cli-0.1100.3" = {
       name = "_at_angular-devkit_slash_schematics-cli";
       packageName = "@angular-devkit/schematics-cli";
-      version = "0.1100.1";
+      version = "0.1100.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-0.1100.1.tgz";
-        sha512 = "6iGauhYKSkgsqA8HK7sul7lrVzrkxXAghGd3FcTHtXsmjh/leBezi7R82MphzcoYAOQ36COLMcOJnYurVG1Y6g==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-0.1100.3.tgz";
+        sha512 = "dECFHCDTgWfSHosfKTeQoyTgUUqgJaftxg4DxA23sMsQtDb1U8ZsIIPpH+L4QhCDT2zlhv51ynd5RUgu28h2DQ==";
       };
     };
     "@antora/asciidoc-loader-2.3.4" = {
@@ -202,13 +184,22 @@ let
         sha512 = "eorTmZW7zc6ZHgGLt3Vrq7mzPuobPeJnyfli50/m/DIQ91slkqjPKUYGcq4paPEz6IWoa7LT2ZwtwA5KzMyTPg==";
       };
     };
-    "@apollo/federation-0.20.4" = {
+    "@apidevtools/json-schema-ref-parser-9.0.6" = {
+      name = "_at_apidevtools_slash_json-schema-ref-parser";
+      packageName = "@apidevtools/json-schema-ref-parser";
+      version = "9.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.6.tgz";
+        sha512 = "M3YgsLjI0lZxvrpeGVk9Ap032W6TPQkH6pRAZz81Ac3WUNF79VQooAFnp8umjvVzUmD93NkogxEwbSce7qMsUg==";
+      };
+    };
+    "@apollo/federation-0.20.7" = {
       name = "_at_apollo_slash_federation";
       packageName = "@apollo/federation";
-      version = "0.20.4";
+      version = "0.20.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@apollo/federation/-/federation-0.20.4.tgz";
-        sha512 = "A/2BtgSytrrA2nSuCrKIlXYemfMEzCosIOD4vUjK7Y1LvNuPCBxt6mdZ+hjKrfpY4IXhZdgbtHjI5/Q2Pkqsmg==";
+        url = "https://registry.npmjs.org/@apollo/federation/-/federation-0.20.7.tgz";
+        sha512 = "URIayksqBaJ+xlcJmyGCf+OqHP60lX2CYGv9fDWQ1KM48sEN1ABHGXkEa0vwgWMH0XUVo94lYDVY11BAJUsuCw==";
       };
     };
     "@apollo/protobufjs-1.0.5" = {
@@ -310,6 +301,15 @@ let
         sha512 = "vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==";
       };
     };
+    "@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/compat-data-7.12.7" = {
       name = "_at_babel_slash_compat-data";
       packageName = "@babel/compat-data";
@@ -319,13 +319,13 @@ let
         sha512 = "YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==";
       };
     };
-    "@babel/core-7.12.9" = {
+    "@babel/core-7.12.10" = {
       name = "_at_babel_slash_core";
       packageName = "@babel/core";
-      version = "7.12.9";
+      version = "7.12.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz";
-        sha512 = "gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==";
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.12.10.tgz";
+        sha512 = "eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==";
       };
     };
     "@babel/core-7.9.0" = {
@@ -337,22 +337,31 @@ let
         sha512 = "kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==";
       };
     };
-    "@babel/generator-7.12.5" = {
+    "@babel/generator-7.12.10" = {
       name = "_at_babel_slash_generator";
       packageName = "@babel/generator";
-      version = "7.12.5";
+      version = "7.12.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.12.10.tgz";
+        sha512 = "6mCdfhWgmqLdtTkhXjnIz0LcdVCd26wS2JXRtj2XY0u5klDsXBREA/pG5NVOuVnF2LUrBGNFtQkIqqTbblg0ww==";
+      };
+    };
+    "@babel/generator-7.12.11" = {
+      name = "_at_babel_slash_generator";
+      packageName = "@babel/generator";
+      version = "7.12.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz";
-        sha512 = "m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==";
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz";
+        sha512 = "Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==";
       };
     };
-    "@babel/helper-annotate-as-pure-7.10.4" = {
+    "@babel/helper-annotate-as-pure-7.12.10" = {
       name = "_at_babel_slash_helper-annotate-as-pure";
       packageName = "@babel/helper-annotate-as-pure";
-      version = "7.10.4";
+      version = "7.12.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz";
-        sha512 = "XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==";
+        url = "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz";
+        sha512 = "XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ==";
       };
     };
     "@babel/helper-builder-binary-assignment-operator-visitor-7.10.4" = {
@@ -364,24 +373,6 @@ let
         sha512 = "L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==";
       };
     };
-    "@babel/helper-builder-react-jsx-7.10.4" = {
-      name = "_at_babel_slash_helper-builder-react-jsx";
-      packageName = "@babel/helper-builder-react-jsx";
-      version = "7.10.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz";
-        sha512 = "5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==";
-      };
-    };
-    "@babel/helper-builder-react-jsx-experimental-7.12.4" = {
-      name = "_at_babel_slash_helper-builder-react-jsx-experimental";
-      packageName = "@babel/helper-builder-react-jsx-experimental";
-      version = "7.12.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.12.4.tgz";
-        sha512 = "AjEa0jrQqNk7eDQOo0pTfUOwQBMF+xVqrausQwT9/rTKy0g04ggFNaJpaE09IQMn9yExluigWMJcj0WC7bq+Og==";
-      };
-    };
     "@babel/helper-compilation-targets-7.12.5" = {
       name = "_at_babel_slash_helper-compilation-targets";
       packageName = "@babel/helper-compilation-targets";
@@ -427,22 +418,22 @@ let
         sha512 = "dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==";
       };
     };
-    "@babel/helper-function-name-7.10.4" = {
+    "@babel/helper-function-name-7.12.11" = {
       name = "_at_babel_slash_helper-function-name";
       packageName = "@babel/helper-function-name";
-      version = "7.10.4";
+      version = "7.12.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz";
-        sha512 = "YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==";
+        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz";
+        sha512 = "AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==";
       };
     };
-    "@babel/helper-get-function-arity-7.10.4" = {
+    "@babel/helper-get-function-arity-7.12.10" = {
       name = "_at_babel_slash_helper-get-function-arity";
       packageName = "@babel/helper-get-function-arity";
-      version = "7.10.4";
+      version = "7.12.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz";
-        sha512 = "EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==";
+        url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz";
+        sha512 = "mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==";
       };
     };
     "@babel/helper-hoist-variables-7.10.4" = {
@@ -481,13 +472,13 @@ let
         sha512 = "QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==";
       };
     };
-    "@babel/helper-optimise-call-expression-7.12.7" = {
+    "@babel/helper-optimise-call-expression-7.12.10" = {
       name = "_at_babel_slash_helper-optimise-call-expression";
       packageName = "@babel/helper-optimise-call-expression";
-      version = "7.12.7";
+      version = "7.12.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.7.tgz";
-        sha512 = "I5xc9oSJ2h59OwyUqjv95HRyzxj53DAubUERgQMrpcCEYQyToeHA+NEcUEsVWB4j53RDeskeBJ0SgRAYHDBckw==";
+        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz";
+        sha512 = "4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==";
       };
     };
     "@babel/helper-plugin-utils-7.10.4" = {
@@ -508,13 +499,13 @@ let
         sha512 = "9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==";
       };
     };
-    "@babel/helper-replace-supers-7.12.5" = {
+    "@babel/helper-replace-supers-7.12.11" = {
       name = "_at_babel_slash_helper-replace-supers";
       packageName = "@babel/helper-replace-supers";
-      version = "7.12.5";
+      version = "7.12.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz";
-        sha512 = "5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==";
+        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz";
+        sha512 = "q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA==";
       };
     };
     "@babel/helper-simple-access-7.12.1" = {
@@ -535,31 +526,31 @@ let
         sha512 = "Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==";
       };
     };
-    "@babel/helper-split-export-declaration-7.11.0" = {
+    "@babel/helper-split-export-declaration-7.12.11" = {
       name = "_at_babel_slash_helper-split-export-declaration";
       packageName = "@babel/helper-split-export-declaration";
-      version = "7.11.0";
+      version = "7.12.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz";
-        sha512 = "74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==";
+        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz";
+        sha512 = "LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==";
       };
     };
-    "@babel/helper-validator-identifier-7.10.4" = {
+    "@babel/helper-validator-identifier-7.12.11" = {
       name = "_at_babel_slash_helper-validator-identifier";
       packageName = "@babel/helper-validator-identifier";
-      version = "7.10.4";
+      version = "7.12.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz";
-        sha512 = "3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==";
+        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz";
+        sha512 = "np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==";
       };
     };
-    "@babel/helper-validator-option-7.12.1" = {
+    "@babel/helper-validator-option-7.12.11" = {
       name = "_at_babel_slash_helper-validator-option";
       packageName = "@babel/helper-validator-option";
-      version = "7.12.1";
+      version = "7.12.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz";
-        sha512 = "YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A==";
+        url = "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz";
+        sha512 = "TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw==";
       };
     };
     "@babel/helper-wrap-function-7.12.3" = {
@@ -589,13 +580,13 @@ let
         sha512 = "i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==";
       };
     };
-    "@babel/parser-7.12.7" = {
+    "@babel/parser-7.12.11" = {
       name = "_at_babel_slash_parser";
       packageName = "@babel/parser";
-      version = "7.12.7";
+      version = "7.12.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.12.7.tgz";
-        sha512 = "oWR02Ubp4xTLCAqPRiNIuMVgNO5Aif/xpXtabhzW2HWUD47XJsAB4Zd/Rg30+XeQA3juXigV7hlquOTmwqLiwg==";
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz";
+        sha512 = "N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==";
       };
     };
     "@babel/plugin-external-helpers-7.8.3" = {
@@ -607,13 +598,13 @@ let
         sha512 = "mx0WXDDiIl5DwzMtzWGRSPugXi9BxROS05GQrhLNbEamhBiicgn994ibwkyiBH+6png7bm/yA7AUsvHyCXi4Vw==";
       };
     };
-    "@babel/plugin-proposal-async-generator-functions-7.12.1" = {
+    "@babel/plugin-proposal-async-generator-functions-7.12.12" = {
       name = "_at_babel_slash_plugin-proposal-async-generator-functions";
       packageName = "@babel/plugin-proposal-async-generator-functions";
-      version = "7.12.1";
+      version = "7.12.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz";
-        sha512 = "d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.12.tgz";
+        sha512 = "nrz9y0a4xmUrRq51bYkWJIO5SBZyG2ys2qinHsN0zHDHVsUaModrkpyWWWXfGqYQmOL3x9sQIcTNN/pBGpo09A==";
       };
     };
     "@babel/plugin-proposal-class-properties-7.12.1" = {
@@ -922,13 +913,13 @@ let
         sha512 = "5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==";
       };
     };
-    "@babel/plugin-transform-block-scoping-7.12.1" = {
+    "@babel/plugin-transform-block-scoping-7.12.12" = {
       name = "_at_babel_slash_plugin-transform-block-scoping";
       packageName = "@babel/plugin-transform-block-scoping";
-      version = "7.12.1";
+      version = "7.12.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz";
-        sha512 = "zJyAC9sZdE60r1nVQHblcfCj29Dh2Y0DOvlMkcqSo0ckqjiCwNiUezUKw+RjOCwGfpLRwnAeQ2XlLpsnGkvv9w==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.12.tgz";
+        sha512 = "VOEPQ/ExOVqbukuP7BYJtI5ZxxsmegTwzZ04j1aF0dkSypGo9XpDHuOrABsJu+ie+penpSJheDJ11x1BEZNiyQ==";
       };
     };
     "@babel/plugin-transform-classes-7.12.1" = {
@@ -985,13 +976,13 @@ let
         sha512 = "7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==";
       };
     };
-    "@babel/plugin-transform-flow-strip-types-7.12.1" = {
+    "@babel/plugin-transform-flow-strip-types-7.12.10" = {
       name = "_at_babel_slash_plugin-transform-flow-strip-types";
       packageName = "@babel/plugin-transform-flow-strip-types";
-      version = "7.12.1";
+      version = "7.12.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.12.1.tgz";
-        sha512 = "8hAtkmsQb36yMmEtk2JZ9JnVyDSnDOdlB+0nEGzIDLuK4yR3JcEjfuFPYkdEPSh8Id+rAMeBEn+X0iVEyho6Hg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.12.10.tgz";
+        sha512 = "0ti12wLTLeUIzu9U7kjqIn4MyOL7+Wibc7avsHhj4o1l5C0ATs8p2IMHrVYjm9t9wzhfEO6S3kxax0Rpdo8LTg==";
       };
     };
     "@babel/plugin-transform-for-of-7.12.1" = {
@@ -1129,13 +1120,13 @@ let
         sha512 = "cAzB+UzBIrekfYxyLlFqf/OagTvHLcVBb5vpouzkYkBclRPraiygVnafvAoipErZLI8ANv8Ecn6E/m5qPXD26w==";
       };
     };
-    "@babel/plugin-transform-react-jsx-7.12.7" = {
+    "@babel/plugin-transform-react-jsx-7.12.12" = {
       name = "_at_babel_slash_plugin-transform-react-jsx";
       packageName = "@babel/plugin-transform-react-jsx";
-      version = "7.12.7";
+      version = "7.12.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.7.tgz";
-        sha512 = "YFlTi6MEsclFAPIDNZYiCRbneg1MFGao9pPG9uD5htwE0vDbPaMUMeYd6itWjw7K4kro4UbdQf3ljmFl9y48dQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.12.tgz";
+        sha512 = "JDWGuzGNWscYcq8oJVCtSE61a5+XAOos+V0HrxnDieUus4UMnBEosDnY1VJqU5iZ4pA04QY7l0+JvHL1hZEfsw==";
       };
     };
     "@babel/plugin-transform-react-jsx-source-7.12.1" = {
@@ -1165,13 +1156,13 @@ let
         sha512 = "pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==";
       };
     };
-    "@babel/plugin-transform-runtime-7.12.1" = {
+    "@babel/plugin-transform-runtime-7.12.10" = {
       name = "_at_babel_slash_plugin-transform-runtime";
       packageName = "@babel/plugin-transform-runtime";
-      version = "7.12.1";
+      version = "7.12.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.1.tgz";
-        sha512 = "Ac/H6G9FEIkS2tXsZjL4RAdS3L3WHxci0usAnz7laPWUmFiGtj7tIASChqKZMHTSQTQY6xDbOq+V1/vIq3QrWg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.10.tgz";
+        sha512 = "xOrUfzPxw7+WDm9igMgQCbO3cJKymX7dFdsgRr1eu9n3KjjyU4pptIXbXPseQDquw+W+RuJEJMHKHNsPNNm3CA==";
       };
     };
     "@babel/plugin-transform-shorthand-properties-7.12.1" = {
@@ -1210,13 +1201,13 @@ let
         sha512 = "b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==";
       };
     };
-    "@babel/plugin-transform-typeof-symbol-7.12.1" = {
+    "@babel/plugin-transform-typeof-symbol-7.12.10" = {
       name = "_at_babel_slash_plugin-transform-typeof-symbol";
       packageName = "@babel/plugin-transform-typeof-symbol";
-      version = "7.12.1";
+      version = "7.12.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz";
-        sha512 = "EPGgpGy+O5Kg5pJFNDKuxt9RdmTgj5sgrus2XVeMp/ZIbOESadgILUbm50SNpghOh3/6yrbsH+NB5+WJTmsA7Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz";
+        sha512 = "JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA==";
       };
     };
     "@babel/plugin-transform-typescript-7.12.1" = {
@@ -1255,13 +1246,13 @@ let
         sha512 = "X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g==";
       };
     };
-    "@babel/preset-env-7.12.7" = {
+    "@babel/preset-env-7.12.11" = {
       name = "_at_babel_slash_preset-env";
       packageName = "@babel/preset-env";
-      version = "7.12.7";
+      version = "7.12.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.7.tgz";
-        sha512 = "OnNdfAr1FUQg7ksb7bmbKoby4qFOHw6DKWWUNB9KqnnCldxhxJlP+21dpyaWFmf2h0rTbOkXJtAGevY3XW1eew==";
+        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.11.tgz";
+        sha512 = "j8Tb+KKIXKYlDBQyIOy4BLxzv1NUOwlHfZ74rvW+Z0Gp4/cI2IMDPBWAgWceGcE7aep9oL/0K9mlzlMGxA8yNw==";
       };
     };
     "@babel/preset-flow-7.12.1" = {
@@ -1300,13 +1291,13 @@ let
         sha512 = "nOoIqIqBmHBSEgBXWR4Dv/XBehtIFcw9PqZw6rFYuKrzsZmOQm3PR5siLBnKZFEsDb03IegG8nSjU/iXXXYRmw==";
       };
     };
-    "@babel/register-7.12.1" = {
+    "@babel/register-7.12.10" = {
       name = "_at_babel_slash_register";
       packageName = "@babel/register";
-      version = "7.12.1";
+      version = "7.12.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/register/-/register-7.12.1.tgz";
-        sha512 = "XWcmseMIncOjoydKZnWvWi0/5CUCD+ZYKhRwgYlWOrA8fGZ/FjuLRpqtIhLOVD/fvR1b9DQHtZPn68VvhpYf+Q==";
+        url = "https://registry.npmjs.org/@babel/register/-/register-7.12.10.tgz";
+        sha512 = "EvX/BvMMJRAA3jZgILWgbsrHwBQvllC5T8B29McyME8DvkdOxk4ujESfrMvME8IHSDvWXrmMXxPvA/lx2gqPLQ==";
       };
     };
     "@babel/runtime-7.12.5" = {
@@ -1336,13 +1327,13 @@ let
         sha512 = "GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==";
       };
     };
-    "@babel/traverse-7.12.9" = {
+    "@babel/traverse-7.12.12" = {
       name = "_at_babel_slash_traverse";
       packageName = "@babel/traverse";
-      version = "7.12.9";
+      version = "7.12.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.9.tgz";
-        sha512 = "iX9ajqnLdoU1s1nHt36JDI9KG4k+vmI8WgjK5d+aDTwQbL2fUnzedNedssA645Ede3PM2ma1n8Q4h2ohwXgMXw==";
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz";
+        sha512 = "s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==";
       };
     };
     "@babel/types-7.10.4" = {
@@ -1354,13 +1345,13 @@ let
         sha512 = "UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==";
       };
     };
-    "@babel/types-7.12.7" = {
+    "@babel/types-7.12.12" = {
       name = "_at_babel_slash_types";
       packageName = "@babel/types";
-      version = "7.12.7";
+      version = "7.12.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.12.7.tgz";
-        sha512 = "MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==";
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz";
+        sha512 = "lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==";
       };
     };
     "@braintree/sanitize-url-3.1.0" = {
@@ -1372,22 +1363,22 @@ let
         sha512 = "GcIY79elgB+azP74j8vqkiXz8xLFfIzbQJdlwOPisgbKT00tviJQuEghOXSMVxJ00HoYJbGswr4kcllUc4xCcg==";
       };
     };
-    "@bugsnag/browser-7.5.3" = {
+    "@bugsnag/browser-7.5.4" = {
       name = "_at_bugsnag_slash_browser";
       packageName = "@bugsnag/browser";
-      version = "7.5.3";
+      version = "7.5.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@bugsnag/browser/-/browser-7.5.3.tgz";
-        sha512 = "iGmKFtHz91hNovWW8rb/qLD9X5TMVEc7OUEfwE5s1M8ElReEmUAVbgTfQjkahG8aHvjGQ+M+zyM0gHfk+tTczg==";
+        url = "https://registry.npmjs.org/@bugsnag/browser/-/browser-7.5.4.tgz";
+        sha512 = "WyhDWeE2MXQTo9uJjpCOxqTWDlVgX/yKE/VZ0nVm4em2AxUmjAPM8jk9YOTYCKQfQFnIpgf62DjVlsszikUIBw==";
       };
     };
-    "@bugsnag/core-7.5.3" = {
+    "@bugsnag/core-7.5.4" = {
       name = "_at_bugsnag_slash_core";
       packageName = "@bugsnag/core";
-      version = "7.5.3";
+      version = "7.5.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@bugsnag/core/-/core-7.5.3.tgz";
-        sha512 = "HaAPWN+z3ZlEjwF2JeuAx83eKoVd6osgx2Hyn8dlmGsRfUvpi+7rG9DI483PGexEM0O6i/ORvD6Qx92/E9zW7w==";
+        url = "https://registry.npmjs.org/@bugsnag/core/-/core-7.5.4.tgz";
+        sha512 = "QOvtWzM0XJTk5QCpiDFTva6FJXCKuKQHJu7sjrZwYA/7fblypl+ClP7inz9At5ijkKGm2pLyvZ9vvT2rq9TXuw==";
       };
     };
     "@bugsnag/cuid-3.0.0" = {
@@ -1399,22 +1390,22 @@ let
         sha512 = "LOt8aaBI+KvOQGneBtpuCz3YqzyEAehd1f3nC5yr9TIYW1+IzYKa2xWS4EiMz5pPOnRPHkyyS5t/wmSmN51Gjg==";
       };
     };
-    "@bugsnag/js-7.5.3" = {
+    "@bugsnag/js-7.5.4" = {
       name = "_at_bugsnag_slash_js";
       packageName = "@bugsnag/js";
-      version = "7.5.3";
+      version = "7.5.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@bugsnag/js/-/js-7.5.3.tgz";
-        sha512 = "xdwfq+bQPWZFwc02IIFk7rVsxoEsAMOLiZLJpjnRK/HtzwWPUciMTRIIlUzb/uZaAmd05UieVQ/TxuwQYdMgEA==";
+        url = "https://registry.npmjs.org/@bugsnag/js/-/js-7.5.4.tgz";
+        sha512 = "V1+482YPndAD0c0ju7Ik1dXunyKAssZWUIqOMs7Ff3PtZb1107sJ4Hw1E7ZusQvvI/IjA6FO3ZJkmzjIJjQ+UA==";
       };
     };
-    "@bugsnag/node-7.5.3" = {
+    "@bugsnag/node-7.5.4" = {
       name = "_at_bugsnag_slash_node";
       packageName = "@bugsnag/node";
-      version = "7.5.3";
+      version = "7.5.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@bugsnag/node/-/node-7.5.3.tgz";
-        sha512 = "irNGOTcxi7u8lUziLfv7rKzWGg2Yd+ZXZnwD0r6ZDhdlOwA3UnGq6Fud3SOTJNKPcUk/16Sv0mcuKkcLdHTodg==";
+        url = "https://registry.npmjs.org/@bugsnag/node/-/node-7.5.4.tgz";
+        sha512 = "lfHEU2wsBO/hhHjsY6kqD/Ga6A3bzROeZEuE7/cT0xzDUvBnUsrw75/xZ5EyY3Xpyfe/Gw9t336semIqz46+cw==";
       };
     };
     "@bugsnag/safe-json-stringify-6.0.0" = {
@@ -1426,13 +1417,13 @@ let
         sha512 = "htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA==";
       };
     };
-    "@chemzqm/neovim-5.2.10" = {
+    "@chemzqm/neovim-5.2.13" = {
       name = "_at_chemzqm_slash_neovim";
       packageName = "@chemzqm/neovim";
-      version = "5.2.10";
+      version = "5.2.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@chemzqm/neovim/-/neovim-5.2.10.tgz";
-        sha512 = "IeXAS7yFgsz0EyZrQguX1/Rbbe5EYMZOm2OxosY1oht+LjxQj2vv0u91tvX/Qu67SIWCFoaudJZuDcgK88anyg==";
+        url = "https://registry.npmjs.org/@chemzqm/neovim/-/neovim-5.2.13.tgz";
+        sha512 = "Eo1NBUj0e2vtOdNA7fpHra6xviDtwDWbYZiPzH5BWGwPtbRa0XjNGPMggcDCCKKKFRJgp9AaAfmT0LaqIyQvyg==";
       };
     };
     "@cliqz-oss/firefox-client-0.3.1" = {
@@ -1570,6 +1561,15 @@ let
         sha512 = "HilPrVrCosYWqSyjfpDtaaN1kJwdlBpS+IAflP3z+e7nsEgk3JGJf1Vg0NgHJooTf5HDfXSyZqMVg+5jvXCK0g==";
       };
     };
+    "@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==";
+      };
+    };
     "@emmetio/extract-abbreviation-0.1.6" = {
       name = "_at_emmetio_slash_extract-abbreviation";
       packageName = "@emmetio/extract-abbreviation";
@@ -1696,58 +1696,58 @@ let
         sha512 = "Ydf4LidRB/EBI+YrB+cVLqIseiRfjUI/AeHBgjGMtq3GroraDu81OV7zqophRgupngoL3iS3JUMDMnxO7g39qA==";
       };
     };
-    "@expo/config-3.3.18" = {
+    "@expo/config-3.3.22" = {
       name = "_at_expo_slash_config";
       packageName = "@expo/config";
-      version = "3.3.18";
+      version = "3.3.22";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/config/-/config-3.3.18.tgz";
-        sha512 = "R78HOWnLcxdip3FBrfbxti+85jdoRNpXV0Eihb6dl+sBRNo4+uzBNEQQ1P7ICoTzrehdkhdXkQYflvQFuQXyAA==";
+        url = "https://registry.npmjs.org/@expo/config/-/config-3.3.22.tgz";
+        sha512 = "BzahndK+Uxsvzui1+9QiJXptjVPgbSCQ3saNVF4N3Wrxjyr0WXHNp3Gz3VAGkoHhoBlxZheslmiNoMwjG25xjw==";
       };
     };
-    "@expo/config-plugins-1.0.7" = {
+    "@expo/config-plugins-1.0.13" = {
       name = "_at_expo_slash_config-plugins";
       packageName = "@expo/config-plugins";
-      version = "1.0.7";
+      version = "1.0.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-1.0.7.tgz";
-        sha512 = "Do7xH8kCnsFa4Rl/Z8Ja2i71N+OpQARUoJHCQTHzyttL9j1eYeLDBOB6Hrl1vf8jcFfBtuqf8QWvMQkwJ17uqA==";
+        url = "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-1.0.13.tgz";
+        sha512 = "/Wt1uZJlwMSi20GlKX4FOijX8wYMj7zVVp091M9hXeIc7btq84nkhhtdwa60qnM0RACHWqv25uVTQochjNQrfw==";
       };
     };
-    "@expo/config-types-40.0.0-beta.1" = {
+    "@expo/config-types-40.0.0-beta.2" = {
       name = "_at_expo_slash_config-types";
       packageName = "@expo/config-types";
-      version = "40.0.0-beta.1";
+      version = "40.0.0-beta.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/config-types/-/config-types-40.0.0-beta.1.tgz";
-        sha512 = "hTp+6ZIKK57O8qhVoO+GBCkx0UCdOhwcWxaXfjpsELIR8LfXDGz8OmCxTzGvb7nnadcrGCccHBX5dO1NmPBbmg==";
+        url = "https://registry.npmjs.org/@expo/config-types/-/config-types-40.0.0-beta.2.tgz";
+        sha512 = "t9pHCQMXOP4nwd7LGXuHkLlFy0JdfknRSCAeVF4Kw2/y+5OBbR9hW9ZVnetpBf0kORrekgiI7K/qDaa3hh5+Qg==";
       };
     };
-    "@expo/configure-splash-screen-0.2.1" = {
+    "@expo/configure-splash-screen-0.3.2" = {
       name = "_at_expo_slash_configure-splash-screen";
       packageName = "@expo/configure-splash-screen";
-      version = "0.2.1";
+      version = "0.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/configure-splash-screen/-/configure-splash-screen-0.2.1.tgz";
-        sha512 = "6n7ji1WKDCdLe2Mto4u4W72kTLhAbhXhC7ydVk1HxDYCcbewNLfgiwhchPtPGyUMnSDizVWph5aDoiKxqVHqNQ==";
+        url = "https://registry.npmjs.org/@expo/configure-splash-screen/-/configure-splash-screen-0.3.2.tgz";
+        sha512 = "+KvcPWv/EpAi9ng7KWsRCHUgN8qYcbpvrY8Pc3AtfPVHBhWuy7FhTdT0HUqjhOvqvwPF2Ygr//DHl8WBVg2ICA==";
       };
     };
-    "@expo/dev-server-0.1.43" = {
+    "@expo/dev-server-0.1.48" = {
       name = "_at_expo_slash_dev-server";
       packageName = "@expo/dev-server";
-      version = "0.1.43";
+      version = "0.1.48";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/dev-server/-/dev-server-0.1.43.tgz";
-        sha512 = "FYLMoI7c1Myw5vCyx7nMEW6Oos40wx28TuHcticKPU+zZiYrzyIa4aJzEv4bWnw1if6417lKXjncYvQEZRyxFw==";
+        url = "https://registry.npmjs.org/@expo/dev-server/-/dev-server-0.1.48.tgz";
+        sha512 = "aiuoVLfF+NzFBU6WvLRbVjYDhoLky22q0hiTQ5by3996drF0XUj752lUI8ckN5+8qX4Aaij++wkPMaLiHQ1vNw==";
       };
     };
-    "@expo/dev-tools-0.13.66" = {
+    "@expo/dev-tools-0.13.74" = {
       name = "_at_expo_slash_dev-tools";
       packageName = "@expo/dev-tools";
-      version = "0.13.66";
+      version = "0.13.74";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/dev-tools/-/dev-tools-0.13.66.tgz";
-        sha512 = "eg1KoEUXWLFF0a+whWDj1hdu/XGdAbUtx3pqI053/0cCI0g3GHAQvNA8gJ3NEeSHYQaLb7irK2rNE6lJTcUo8Q==";
+        url = "https://registry.npmjs.org/@expo/dev-tools/-/dev-tools-0.13.74.tgz";
+        sha512 = "at58TNplT3FT1UWEYzpCMwtP4mzBDT81ApIlyudsd4k+uX74wSf+4v5WPUbgu1UCZBUuo/40ddhS3rgUozu4eQ==";
       };
     };
     "@expo/eas-build-job-0.1.2" = {
@@ -1777,13 +1777,13 @@ let
         sha512 = "KFX6grWVzttaDskq/NK8ByqFPgpDZGFnyeZVeecGoKx5kU61zuR7/xQM04OvN6BNXq3jTUst1TyS8fXEfJuscA==";
       };
     };
-    "@expo/metro-config-0.1.43" = {
+    "@expo/metro-config-0.1.48" = {
       name = "_at_expo_slash_metro-config";
       packageName = "@expo/metro-config";
-      version = "0.1.43";
+      version = "0.1.48";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.1.43.tgz";
-        sha512 = "ZkZXu2dVjZ88tiH51gqM3DUAmey18tM9MlDh91r1iLF6hHT6UeZD0lBDN7IJTQv/SJuAPQHoylXmAx6cuIGU9A==";
+        url = "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.1.48.tgz";
+        sha512 = "U2VkpNoecfCgju5Cfk9RyulrCwqWiGPCV1RSZPhP/yb6pSUyuQfYaxH5ULmrsYztp8hSfV0mqaVq5LPyhzczkw==";
       };
     };
     "@expo/ngrok-2.4.3" = {
@@ -1921,13 +1921,13 @@ let
         sha512 = "/zxESSNAjeBI7BlrFlmmLbEDNblJhR0fd9rZGPOwNlRoeojCJ0yh+nTUWXQtBgolffQMYq0LkTTjTDszqs4M+g==";
       };
     };
-    "@expo/plist-0.0.10" = {
+    "@expo/plist-0.0.11" = {
       name = "_at_expo_slash_plist";
       packageName = "@expo/plist";
-      version = "0.0.10";
+      version = "0.0.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/plist/-/plist-0.0.10.tgz";
-        sha512 = "uKbi7ANPCNJqeAvxLa+ZcS/Qf0fTPOySMqw5T2L4TrycSAdiAxV1VUZ69IzIbUsWb7GdriUVR2i38M/xa6+BvA==";
+        url = "https://registry.npmjs.org/@expo/plist/-/plist-0.0.11.tgz";
+        sha512 = "yza93QHDkbdkdwu/PXef0eJSCMkMNdrHujK5G1viZLaZt0Rxw2s+geTyjgJsYpwqQEAoOYVpKlVymOenK+bFQg==";
       };
     };
     "@expo/results-1.0.0" = {
@@ -1939,13 +1939,13 @@ let
         sha512 = "qECzzXX5oJot3m2Gu9pfRDz50USdBieQVwYAzeAtQRUTD3PVeTK1tlRUoDcrK8PSruDLuVYdKkLebX4w/o55VA==";
       };
     };
-    "@expo/schemer-1.3.22" = {
+    "@expo/schemer-1.3.23" = {
       name = "_at_expo_slash_schemer";
       packageName = "@expo/schemer";
-      version = "1.3.22";
+      version = "1.3.23";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/schemer/-/schemer-1.3.22.tgz";
-        sha512 = "ALB9FB0DwypyNT0sL4zlM6ncQxado8eT46MOTclGoWNkVWNeeZC8O0GYHoEXLOjvfNUP5j02ATtnXCqyXAz5Hg==";
+        url = "https://registry.npmjs.org/@expo/schemer/-/schemer-1.3.23.tgz";
+        sha512 = "ORDxT7mCTtiJZj1R44L5R8HvSMfTJk31qBAb57yx7WXY2crUrwZGwmZryUjGs0Z3BlrbwbsWTvF7CvVa6zy+Sg==";
       };
     };
     "@expo/simple-spinner-1.0.2" = {
@@ -1984,22 +1984,22 @@ let
         sha512 = "YaFAYYOOxImYNx9s6X3tY6fC1y6rka0KXstrs2zrS+vHyyBD8IOhNtIUvybHScM3jUL+qukgKElAb+7gzlF6Eg==";
       };
     };
-    "@expo/webpack-config-0.12.48" = {
+    "@expo/webpack-config-0.12.52" = {
       name = "_at_expo_slash_webpack-config";
       packageName = "@expo/webpack-config";
-      version = "0.12.48";
+      version = "0.12.52";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/webpack-config/-/webpack-config-0.12.48.tgz";
-        sha512 = "uUmr+z9gpMNw6yUGinQkkN/GDPypLvySs/0pwUBF9w7xfaGeRKoEGYhNS8JaIXgmR3621eKi3F2pBlSoSFfiew==";
+        url = "https://registry.npmjs.org/@expo/webpack-config/-/webpack-config-0.12.52.tgz";
+        sha512 = "OOxIMaKa2O4JPDZpNMc+G40Z5MoOoRwvfU+331+ydqGzPDAev8/PtalnQbJTuqjVaU99QzVlrn1BfLWwJ/3fig==";
       };
     };
-    "@expo/xdl-59.0.6" = {
+    "@expo/xdl-59.0.14" = {
       name = "_at_expo_slash_xdl";
       packageName = "@expo/xdl";
-      version = "59.0.6";
+      version = "59.0.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/xdl/-/xdl-59.0.6.tgz";
-        sha512 = "6YHUcVDF62L7IxdCzOasIv9mG/KiXnMofvAuCkAYUQZYNF6vAIQJxj+/JjWAYRfTj1JHdY0OFkVpICun0qJ2FA==";
+        url = "https://registry.npmjs.org/@expo/xdl/-/xdl-59.0.14.tgz";
+        sha512 = "h2czzd9nBhiafVp1JFPcP/VYqefKpNb8Om7oY6twm7GCFkX+tlZ8zYtkVfgE9WlOhtAOu8b56eKfjAOdUsqlGQ==";
       };
     };
     "@fast-csv/format-4.3.5" = {
@@ -2011,13 +2011,13 @@ let
         sha512 = "8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==";
       };
     };
-    "@fast-csv/parse-4.3.3" = {
+    "@fast-csv/parse-4.3.6" = {
       name = "_at_fast-csv_slash_parse";
       packageName = "@fast-csv/parse";
-      version = "4.3.3";
+      version = "4.3.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fast-csv/parse/-/parse-4.3.3.tgz";
-        sha512 = "mXrCmyyZxbcdW/kZ8tVMrb1DJrJMNGWxHmB4OSuEL96so/X14E1O0w5QFiyodfs+oXoNGwbku8bx2Lq2tiODAA==";
+        url = "https://registry.npmjs.org/@fast-csv/parse/-/parse-4.3.6.tgz";
+        sha512 = "uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==";
       };
     };
     "@fluentui/date-time-utilities-7.9.0" = {
@@ -2047,49 +2047,22 @@ let
         sha512 = "t3yIbbPKJubb22vQ/FIWwS9vFAzaPYzFxKWPHVWLtxs/P+5yL+LD3B16DRtYreWAdl9CZvEbos58ChLZ0KHwSQ==";
       };
     };
-    "@fluentui/react-7.153.4" = {
+    "@fluentui/react-7.155.3" = {
       name = "_at_fluentui_slash_react";
       packageName = "@fluentui/react";
-      version = "7.153.4";
+      version = "7.155.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/react/-/react-7.153.4.tgz";
-        sha512 = "ksglyptT/nkjChmIZ2OiushPJMMBfYgJHclMYqfp8Z4TGeXWPaYT6l5HfKeEZJTsMz3WtJpy+6MB48Yh4PYOLA==";
+        url = "https://registry.npmjs.org/@fluentui/react/-/react-7.155.3.tgz";
+        sha512 = "bVK9qMUqjWQ68UPkQGHCMnCKeH8uSlCLF2QgR9ESMV/g0sHUvRqCO1Yuj9JyO4NDanqfX62NDgJzimHKj1/MQg==";
       };
     };
-    "@fluentui/react-compose-0.19.12" = {
-      name = "_at_fluentui_slash_react-compose";
-      packageName = "@fluentui/react-compose";
-      version = "0.19.12";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/react-compose/-/react-compose-0.19.12.tgz";
-        sha512 = "GTcZ3kd2rTk3Q7xXJB8cTPfv0Q0vOdeIrLcJ02lXfjE9h3GPTE62rV4iFzBIZyXIKL8IdR6Jh8WNIBkVMWhhxw==";
-      };
-    };
-    "@fluentui/react-focus-7.16.19" = {
+    "@fluentui/react-focus-7.17.0" = {
       name = "_at_fluentui_slash_react-focus";
       packageName = "@fluentui/react-focus";
-      version = "7.16.19";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-7.16.19.tgz";
-        sha512 = "BUnSJ7CRs0gfaEXVr5w9YQsZXB18J35k7H7eyB5wLLLgwdK/ogt6uYcu3p0q5ZEjju8C/wmJ2zgwFCMKiAyTUA==";
-      };
-    };
-    "@fluentui/react-stylesheets-0.2.4" = {
-      name = "_at_fluentui_slash_react-stylesheets";
-      packageName = "@fluentui/react-stylesheets";
-      version = "0.2.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/react-stylesheets/-/react-stylesheets-0.2.4.tgz";
-        sha512 = "zTyDxBsQsm5iz59SXn83+BrC3tUnwQdJc/xcPYWWVISIyPby/75URbWK5uYJ5p5Qy0GrpgKDGYAbpXZlN89SRQ==";
-      };
-    };
-    "@fluentui/react-theme-provider-0.18.0" = {
-      name = "_at_fluentui_slash_react-theme-provider";
-      packageName = "@fluentui/react-theme-provider";
-      version = "0.18.0";
+      version = "7.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/react-theme-provider/-/react-theme-provider-0.18.0.tgz";
-        sha512 = "dKSOZ1Sl2uVrDzjvfRtwHUluedU0MhEASukyeqGTpKTmg3ucPMYEZn+dgzFqRNpjs9trbb++N8R6Z19CWokXOw==";
+        url = "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-7.17.0.tgz";
+        sha512 = "xr5LExRnLW9CNyWDkcMmvOAgOXru/GBTIKcVqNahgRf7CIyHraY0m/0gFblwNtPYQOS9ltM3c+fbyYvCXBZvEw==";
       };
     };
     "@fluentui/react-window-provider-1.0.1" = {
@@ -2110,6 +2083,51 @@ let
         sha512 = "pzqDZC2bVD6/S45Bnve4wmrXi4cN7XiCr+OhzvgmoQfDkm5vyXsa82/cVtif/zy1OFU96S9zOTtt3e+QQuGUUg==";
       };
     };
+    "@google-cloud/paginator-3.0.5" = {
+      name = "_at_google-cloud_slash_paginator";
+      packageName = "@google-cloud/paginator";
+      version = "3.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-3.0.5.tgz";
+        sha512 = "N4Uk4BT1YuskfRhKXBs0n9Lg2YTROZc6IMpkO/8DIHODtm5s3xY8K5vVBo23v/2XulY3azwITQlYWgT4GdLsUw==";
+      };
+    };
+    "@google-cloud/precise-date-2.0.3" = {
+      name = "_at_google-cloud_slash_precise-date";
+      packageName = "@google-cloud/precise-date";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@google-cloud/precise-date/-/precise-date-2.0.3.tgz";
+        sha512 = "+SDJ3ZvGkF7hzo6BGa8ZqeK3F6Z4+S+KviC9oOK+XCs3tfMyJCh/4j93XIWINgMMDIh9BgEvlw4306VxlXIlYA==";
+      };
+    };
+    "@google-cloud/projectify-2.0.1" = {
+      name = "_at_google-cloud_slash_projectify";
+      packageName = "@google-cloud/projectify";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-2.0.1.tgz";
+        sha512 = "ZDG38U/Yy6Zr21LaR3BTiiLtpJl6RkPS/JwoRT453G+6Q1DhlV0waNf8Lfu+YVYGIIxgKnLayJRfYlFJfiI8iQ==";
+      };
+    };
+    "@google-cloud/promisify-2.0.3" = {
+      name = "_at_google-cloud_slash_promisify";
+      packageName = "@google-cloud/promisify";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-2.0.3.tgz";
+        sha512 = "d4VSA86eL/AFTe5xtyZX+ePUjE8dIFu2T8zmdeNBSa5/kNgXPCx/o/wbFNHAGLJdGnk1vddRuMESD9HbOC8irw==";
+      };
+    };
+    "@google-cloud/pubsub-2.7.0" = {
+      name = "_at_google-cloud_slash_pubsub";
+      packageName = "@google-cloud/pubsub";
+      version = "2.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@google-cloud/pubsub/-/pubsub-2.7.0.tgz";
+        sha512 = "wc/XOo5Ibo3GWmuaLu80EBIhXSdu2vf99HUqBbdsSSkmRNIka2HqoIhLlOFnnncQn0lZnGL7wtKGIDLoH9LiBg==";
+      };
+    };
     "@graphql-cli/common-4.1.0" = {
       name = "_at_graphql-cli_slash_common";
       packageName = "@graphql-cli/common";
@@ -2137,13 +2155,13 @@ let
         sha512 = "+ywPfK6N2Ddna6oOa5Qb1Mv7EA8LOwRNOAPP9dL37FEhksJM9pYqPSceUcqMqg7S9b0+Cgr78s408rgvurV3/Q==";
       };
     };
-    "@graphql-tools/delegate-7.0.7" = {
+    "@graphql-tools/delegate-7.0.8" = {
       name = "_at_graphql-tools_slash_delegate";
       packageName = "@graphql-tools/delegate";
-      version = "7.0.7";
+      version = "7.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.0.7.tgz";
-        sha512 = "2sze+CJxu37b4jcQ4fyj6ap9TMnx8+NBtApSs1nWIVENzPE2510aNTsBHgSdTwSeV/tVIFkAtZZAlMEGYGXzQA==";
+        url = "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.0.8.tgz";
+        sha512 = "pS1wci7ZxzdCITRrMI66UA+6/E0Z1Yczd3QxJBDb4Kp0nTGy1xy7enGa0+i55EmCvKvuwyx+tzXzwA1fNGRJzg==";
       };
     };
     "@graphql-tools/graphql-file-loader-6.2.6" = {
@@ -2200,13 +2218,13 @@ let
         sha512 = "GabNT51ErVHE2riDH4EQdRusUsI+nMElT8LdFHyuP53v8gwtleAj+LePQ9jif4NYUe/JQVqO8V28vPcHrA7gfQ==";
       };
     };
-    "@graphql-tools/url-loader-6.5.0" = {
+    "@graphql-tools/url-loader-6.7.1" = {
       name = "_at_graphql-tools_slash_url-loader";
       packageName = "@graphql-tools/url-loader";
-      version = "6.5.0";
+      version = "6.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.5.0.tgz";
-        sha512 = "lwjg5vhZ2VvuWAXuzPwvLJfLmVN+cXoFmV0UeBethgP0Zvy8nkm1V+3aFGoyGkhxnlQUfBg/PMidw/t+7vhfAg==";
+        url = "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.7.1.tgz";
+        sha512 = "7NJ1G5diJAuWYZszQf0mNwPipVMOjIIMteNkutdExBq4CgN0V1xa3/iC25CUrI7sZiq+D367zZNONmKf+3bA2Q==";
       };
     };
     "@graphql-tools/utils-6.2.4" = {
@@ -2218,22 +2236,49 @@ let
         sha512 = "ybgZ9EIJE3JMOtTrTd2VcIpTXtDrn2q6eiYkeYMKRVh3K41+LZa6YnR2zKERTXqTWqhobROwLt4BZbw2O3Aeeg==";
       };
     };
-    "@graphql-tools/utils-7.1.4" = {
+    "@graphql-tools/utils-7.2.3" = {
       name = "_at_graphql-tools_slash_utils";
       packageName = "@graphql-tools/utils";
-      version = "7.1.4";
+      version = "7.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.1.4.tgz";
-        sha512 = "4lxmstMpgHSM1ULD+1X5AcPFaizkdBubB7H9Rqr7Wh6L9bxUHBHFB3bhaFXT7FI0xE01Pt0IMsZadOIlhVTXrg==";
+        url = "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.2.3.tgz";
+        sha512 = "9MvSKeo+8DM72706FvrUP8figQjRzSwBswWrXviyWyt3wSkk6MU2cURQKfMpc0I6nswZvkDSqYoQQ/6mazoXxA==";
       };
     };
-    "@graphql-tools/wrap-7.0.4" = {
+    "@graphql-tools/wrap-7.0.5" = {
       name = "_at_graphql-tools_slash_wrap";
       packageName = "@graphql-tools/wrap";
-      version = "7.0.4";
+      version = "7.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.5.tgz";
+        sha512 = "KCWBXsDfvG46GNUawRltJL4j9BMGoOG7oo3WEyCQP+SByWXiTe5cBF45SLDVQgdjljGNZhZ4Lq/7avIkF7/zDQ==";
+      };
+    };
+    "@grpc/grpc-js-1.1.8" = {
+      name = "_at_grpc_slash_grpc-js";
+      packageName = "@grpc/grpc-js";
+      version = "1.1.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.4.tgz";
-        sha512 = "txBs0W4k3WR86aEzBYXtKdGeeUXCNdRNxjQA/95T6ywNYoM8pw2mvpoXrWOvzbeaH3zwhbHY7kwii4atrC9irg==";
+        url = "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.1.8.tgz";
+        sha512 = "64hg5rmEm6F/NvlWERhHmmgxbWU8nD2TMWE+9TvG7/WcOrFT3fzg/Uu631pXRFwmJ4aWO/kp9vVSlr8FUjBDLA==";
+      };
+    };
+    "@grpc/proto-loader-0.5.5" = {
+      name = "_at_grpc_slash_proto-loader";
+      packageName = "@grpc/proto-loader";
+      version = "0.5.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.5.5.tgz";
+        sha512 = "WwN9jVNdHRQoOBo9FDH7qU+mgfjPc8GygPYms3M+y3fbQLfnCe/Kv/E01t7JRgnrsOHH8euvSbed3mIalXhwqQ==";
+      };
+    };
+    "@grpc/proto-loader-0.6.0-pre9" = {
+      name = "_at_grpc_slash_proto-loader";
+      packageName = "@grpc/proto-loader";
+      version = "0.6.0-pre9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.0-pre9.tgz";
+        sha512 = "oM+LjpEjNzW5pNJjt4/hq1HYayNeQT+eGrOPABJnYHv7TyNPDNzkQ76rDYZF86X5swJOa4EujEMzQ9iiTdPgww==";
       };
     };
     "@gulp-sourcemaps/identity-map-1.0.2" = {
@@ -2299,13 +2344,13 @@ let
         sha512 = "yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==";
       };
     };
-    "@hapi/hoek-9.1.0" = {
+    "@hapi/hoek-9.1.1" = {
       name = "_at_hapi_slash_hoek";
       packageName = "@hapi/hoek";
-      version = "9.1.0";
+      version = "9.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.0.tgz";
-        sha512 = "i9YbZPN3QgfighY/1X1Pu118VUz2Fmmhd6b2n0/O8YVgGGfw0FbUYoA97k7FkpGJ+pLCFEDLUmAPPV4D1kpeFw==";
+        url = "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.1.1.tgz";
+        sha512 = "CAEbWH7OIur6jEOzaai83jq3FmKmv4PmX1JYfs9IrYcGEVI/lyL1EXJGCj7eFVJ0bg5QR8LMxBlEtA+xKiLpFw==";
       };
     };
     "@hapi/joi-15.1.1" = {
@@ -2794,40 +2839,76 @@ let
         sha512 = "EjPkDQOzV/oZfbolEUgFT6SE++PtCccVBvjuACkttyCfl0P2jnpR49SwstyVLc2u8AwBAZEHHAw9lPYaMjtbXQ==";
       };
     };
-    "@joplinapp/fork-htmlparser2-4.1.8" = {
-      name = "_at_joplinapp_slash_fork-htmlparser2";
-      packageName = "@joplinapp/fork-htmlparser2";
-      version = "4.1.8";
+    "@joplin/fork-htmlparser2-4.1.14" = {
+      name = "_at_joplin_slash_fork-htmlparser2";
+      packageName = "@joplin/fork-htmlparser2";
+      version = "4.1.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@joplinapp/fork-htmlparser2/-/fork-htmlparser2-4.1.8.tgz";
-        sha512 = "EZUzKlV6K8KV8DMm9PJW8fToBStA6GvoNKzn/zso8xmwFtMFsyAj/N8++0q7ZyzxJ+7N15GJNgELhxE5f9JY/g==";
+        url = "https://registry.npmjs.org/@joplin/fork-htmlparser2/-/fork-htmlparser2-4.1.14.tgz";
+        sha512 = "uE5StVO3A6XcQLd5CxRU+XU7ecAKX8lmTFnHlnhBkgn8V8CHsHIUfZy1uw+fZ4gnC0kenq6uiZavhDPBAkibKA==";
       };
     };
-    "@joplinapp/fork-sax-1.2.12" = {
-      name = "_at_joplinapp_slash_fork-sax";
-      packageName = "@joplinapp/fork-sax";
-      version = "1.2.12";
+    "@joplin/fork-sax-1.2.18" = {
+      name = "_at_joplin_slash_fork-sax";
+      packageName = "@joplin/fork-sax";
+      version = "1.2.18";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@joplinapp/fork-sax/-/fork-sax-1.2.12.tgz";
-        sha512 = "TDdIKTv/THRusbN6cRIIGDrVWAp1JC7lS7faaaQtrJlKLFYAM2oeBIGHmDmxkC0MBFN/XPMiZl5bWBdSuy+C9g==";
+        url = "https://registry.npmjs.org/@joplin/fork-sax/-/fork-sax-1.2.18.tgz";
+        sha512 = "tlsBwoayPjEVjAsylCosflTtF4EgGrSP4b/2r5Ci640846YDPdg0nqKuOUs82Xmptc3QQcnjzRKW8+7Up9+lfQ==";
       };
     };
-    "@joplinapp/lib-1.0.9" = {
-      name = "_at_joplinapp_slash_lib";
-      packageName = "@joplinapp/lib";
-      version = "1.0.9";
+    "@joplin/lib-1.0.15" = {
+      name = "_at_joplin_slash_lib";
+      packageName = "@joplin/lib";
+      version = "1.0.15";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@joplinapp/lib/-/lib-1.0.9.tgz";
-        sha512 = "fXRs/nKJNL36kZX/rfm4F3zaNse12cpXXZQNg+8txUcGTSFx7DBBu2r3x3QV33y6DxsjK9dW/CUM4NJUcXKMFQ==";
+        url = "https://registry.npmjs.org/@joplin/lib/-/lib-1.0.15.tgz";
+        sha512 = "wOA+fxi93b9qfuRV7Ynhc+uUmW2XDVMugHWzqDdiOPd394mYQSX21/Eqvxhd049SsHiqmsMo2scz7rNtFLMnuA==";
       };
     };
-    "@joplinapp/renderer-1.0.17" = {
-      name = "_at_joplinapp_slash_renderer";
-      packageName = "@joplinapp/renderer";
-      version = "1.0.17";
+    "@joplin/renderer-1.0.23" = {
+      name = "_at_joplin_slash_renderer";
+      packageName = "@joplin/renderer";
+      version = "1.0.23";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@joplin/renderer/-/renderer-1.0.23.tgz";
+        sha512 = "1gddYqDLxeyR96m1/9WQ7Ri2tbaIOEW+JmbZKst9HDsgj8LiNwtBha+y35KqRAS6pWimbcXh0RZDkA4DmQ2VOw==";
+      };
+    };
+    "@joplin/turndown-4.0.36" = {
+      name = "_at_joplin_slash_turndown";
+      packageName = "@joplin/turndown";
+      version = "4.0.36";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@joplinapp/renderer/-/renderer-1.0.17.tgz";
-        sha512 = "uX7V8peMH+OHwmceEw6u0bgVuKNhNhnFaZWqyhnH0aCoemOCnjZ45VQSJfTM/2ljL8xFo1VTA9MoWUmLdU/QCg==";
+        url = "https://registry.npmjs.org/@joplin/turndown/-/turndown-4.0.36.tgz";
+        sha512 = "lks0n5HTAsg0O71L9kLoTaASAU4NILG3SyDcX/10K1g2wpoUadmXQmznaa3WqY4RgN0gzRKaZV51d7JtO9ZwXQ==";
+      };
+    };
+    "@joplin/turndown-plugin-gfm-1.0.18" = {
+      name = "_at_joplin_slash_turndown-plugin-gfm";
+      packageName = "@joplin/turndown-plugin-gfm";
+      version = "1.0.18";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@joplin/turndown-plugin-gfm/-/turndown-plugin-gfm-1.0.18.tgz";
+        sha512 = "6uUXRU5PILzKAUP50t9FOyMrpGgfpw2ugrZ8hAfV+PhNZsjSgsc+cSBBdjn/HIEgNCr9m7TlHSzscxrHg496Iw==";
+      };
+    };
+    "@jsdevtools/ono-7.1.3" = {
+      name = "_at_jsdevtools_slash_ono";
+      packageName = "@jsdevtools/ono";
+      version = "7.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz";
+        sha512 = "4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==";
+      };
+    };
+    "@jsii/spec-1.16.0" = {
+      name = "_at_jsii_slash_spec";
+      packageName = "@jsii/spec";
+      version = "1.16.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jsii/spec/-/spec-1.16.0.tgz";
+        sha512 = "DH3rDGa781UmRtg/ykFyxrfhjaz1SRz2BblNXDxwArhl0aUiN5HOdzi9icX8CFwdB9+ZxTtXuxap3BwvLa5xnA==";
       };
     };
     "@kwsites/file-exists-1.1.1" = {
@@ -3379,13 +3460,31 @@ let
         sha512 = "RibeMnDPvlL8bFYW5C8cs4mbI3AHfQef73tnJCQ/SgrXZHehmHnsyWUiE7qDQCAo+B1RfTapvSyFF69iPj326A==";
       };
     };
-    "@mdn/browser-compat-data-2.0.5" = {
+    "@mark.probst/typescript-json-schema-0.32.0" = {
+      name = "_at_mark.probst_slash_typescript-json-schema";
+      packageName = "@mark.probst/typescript-json-schema";
+      version = "0.32.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@mark.probst/typescript-json-schema/-/typescript-json-schema-0.32.0.tgz";
+        sha512 = "OoD+5D7Mka80FIcmvPyuAKV7g5Of5S04R74S4DTAG8pr9REDWySUh9pOloro7SNFwWt/+2f90wyP+DtGHykVfg==";
+      };
+    };
+    "@mark.probst/unicode-properties-1.1.0" = {
+      name = "_at_mark.probst_slash_unicode-properties";
+      packageName = "@mark.probst/unicode-properties";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@mark.probst/unicode-properties/-/unicode-properties-1.1.0.tgz";
+        sha512 = "7AQsO0hMmpqDledV7AhBuSYqYPFsKP9PaltMecX9nlnsyFxqtsqUg9/pvB2L/jxvskrDrNkdKYz2KTbQznCtng==";
+      };
+    };
+    "@mdn/browser-compat-data-2.0.7" = {
       name = "_at_mdn_slash_browser-compat-data";
       packageName = "@mdn/browser-compat-data";
-      version = "2.0.5";
+      version = "2.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-2.0.5.tgz";
-        sha512 = "JTosoRJrq5E8QYLwPfqB22zZxyBzUEx+1ooOPMcrFYgWplOeS8K8B6VD3WHD+9XV+R1X5vimruSL9ALYuxfD+A==";
+        url = "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-2.0.7.tgz";
+        sha512 = "GeeM827DlzFFidn1eKkMBiqXFD2oLsnZbaiGhByPl0vcapsRzUL+t9hDoov1swc9rB2jw64R+ihtzC8qOE9wXw==";
       };
     };
     "@medv/blessed-2.0.1" = {
@@ -3397,13 +3496,13 @@ let
         sha512 = "/NdX1Ql8hKNM0vHFJnEr/bcw6BG0ULHD3HhInpniZw5ixpl+n/QIRfMEEmLCn7acedbM1zGdZvU5ZMbn9kcF5Q==";
       };
     };
-    "@microsoft/load-themed-styles-1.10.139" = {
+    "@microsoft/load-themed-styles-1.10.141" = {
       name = "_at_microsoft_slash_load-themed-styles";
       packageName = "@microsoft/load-themed-styles";
-      version = "1.10.139";
+      version = "1.10.141";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.139.tgz";
-        sha512 = "nqKpS5lfFaJGDATrwT+T2hM4WSMlBDwfh9W7+xgqfOQkV6h8y7uZq8Exro9C276Y3qd7M6jZ3pavSmsWgLk79w==";
+        url = "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.141.tgz";
+        sha512 = "IWqbTWhxpp10X2nZI14oqbPtzrRLvXtyX7sV/QDfVBtQQivLilZFynr/X69SAZtbSp/wi7WI8gKl2/6TuTNN1A==";
       };
     };
     "@mozilla/readability-0.3.0" = {
@@ -3433,13 +3532,13 @@ let
         sha512 = "Vwhc3ObxmDZmA5hY8mfsau2rJ4vGPvzbj20QSZ2/E1GDPF61QVyjLfNHak9xmel6pW4heRt3v1fHa6np9Ehfeg==";
       };
     };
-    "@nestjs/schematics-7.2.2" = {
+    "@nestjs/schematics-7.2.6" = {
       name = "_at_nestjs_slash_schematics";
       packageName = "@nestjs/schematics";
-      version = "7.2.2";
+      version = "7.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@nestjs/schematics/-/schematics-7.2.2.tgz";
-        sha512 = "3y0LE1z50CEzXr5rFlOpaJ+0ctkyQWtREkMuvQd/SUILF75+6cNTqmfjjnUJw12vdkdkc+zsksgXFWEPkns4Pg==";
+        url = "https://registry.npmjs.org/@nestjs/schematics/-/schematics-7.2.6.tgz";
+        sha512 = "4geGO9pjYG4Sc4Qi+pkUVIbaxPEeySHi/z17po8nP9uaPPo8AUKP9rXjNL+mhMrXqFlB/hhN6xBBYtMyL5pB2Q==";
       };
     };
     "@netflix/nerror-1.1.3" = {
@@ -3451,13 +3550,13 @@ let
         sha512 = "b+MGNyP9/LXkapreJzNUzcvuzZslj/RGgdVVJ16P2wSlYatfLycPObImqVJSmNAdyeShvNeM/pl3sVZsObFueg==";
       };
     };
-    "@netlify/build-5.5.5" = {
+    "@netlify/build-8.0.0" = {
       name = "_at_netlify_slash_build";
       packageName = "@netlify/build";
-      version = "5.5.5";
+      version = "8.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/build/-/build-5.5.5.tgz";
-        sha512 = "uzQH5y8mzipgrIWpVDJSdHRY6pav9KOXfx4OVj64SdQbA6DZB834LjXjJBI3TNf2qSz/wRoP5iY1NVLXZ8zivA==";
+        url = "https://registry.npmjs.org/@netlify/build/-/build-8.0.0.tgz";
+        sha512 = "yF9kmeMEn5qPc6D62AyuzaFD/L+TDvZH5+0zw5NpXs5caUysBDolV/rxQa4KTVCaPBBqx044/J69byMuoH5zpQ==";
       };
     };
     "@netlify/cache-utils-1.0.6" = {
@@ -3478,22 +3577,22 @@ let
         sha512 = "Z7yzbx5qCX2I5RLlNyo0MMQ6GKJc8o5Nej9yspCavjqgYlUS7VJfbeE67WNxC26FXwDUqq00zJ0MrCS0Un1YOw==";
       };
     };
-    "@netlify/config-2.4.1" = {
+    "@netlify/config-2.4.2" = {
       name = "_at_netlify_slash_config";
       packageName = "@netlify/config";
-      version = "2.4.1";
+      version = "2.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/config/-/config-2.4.1.tgz";
-        sha512 = "fSRSN3+c5kcyaCEd7XVlPRz820y/CRS8ryuE2fZAT/sgXiGBPGGKHwSKMNlso7s0qtJOmFyjeehU6nEzvfNKrg==";
+        url = "https://registry.npmjs.org/@netlify/config/-/config-2.4.2.tgz";
+        sha512 = "EODBhSJHBpN4IhL68881uF0jutc5xkodgRP1mq3bPpNidLJjfcxltFSnT3TjtZmRxcCwFdl+XMqJzvcI3UKf4A==";
       };
     };
-    "@netlify/functions-utils-1.3.2" = {
+    "@netlify/functions-utils-1.3.3" = {
       name = "_at_netlify_slash_functions-utils";
       packageName = "@netlify/functions-utils";
-      version = "1.3.2";
+      version = "1.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-1.3.2.tgz";
-        sha512 = "1/Jw1p4zxORIC8Nkglzf7bQEIjuALHFfi2e8tEqQfQUZ6pbBNy8bP3pcXZKpYc+fkrYKQaaqpKrfr+GjPHnT2Q==";
+        url = "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-1.3.3.tgz";
+        sha512 = "cZhdSzyQkd6ZVUxL7mcOlLq2u2+JUzKfxmAjwMLwFAZKqc0YL8dWXP2C4Fe1I0g9u7fe6yAgDGigAkMnIgAYtw==";
       };
     };
     "@netlify/git-utils-1.0.6" = {
@@ -3514,6 +3613,15 @@ let
         sha512 = "kkRCzA71HugJxmPOcWv2B4ArHhSMKjs2ArGBr10ndocVLdAHwCYoJm0X4Xt8IYaOcGD9Lm4fbLjpXDLDRGDzPw==";
       };
     };
+    "@netlify/open-api-1.0.0" = {
+      name = "_at_netlify_slash_open-api";
+      packageName = "@netlify/open-api";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@netlify/open-api/-/open-api-1.0.0.tgz";
+        sha512 = "LAicAlsAZXybGtKzaOTmIYelSe82vgZlc17IeNUQxab2IlUCH7VhTKCx9EyJEgiXhLvmYoOjuYE1Ee9ZsnrybA==";
+      };
+    };
     "@netlify/plugin-edge-handlers-1.10.0" = {
       name = "_at_netlify_slash_plugin-edge-handlers";
       packageName = "@netlify/plugin-edge-handlers";
@@ -3523,13 +3631,13 @@ let
         sha512 = "ZgabL4Q+DfB5lqq36QYvGIhLifoiVz5oDfqLp1w7hRsJYwUhUPqeJx/0zph17ZaJB4CvHRadFOeyJeDSkzrERg==";
       };
     };
-    "@netlify/plugins-list-2.0.1" = {
+    "@netlify/plugins-list-2.2.0" = {
       name = "_at_netlify_slash_plugins-list";
       packageName = "@netlify/plugins-list";
-      version = "2.0.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/plugins-list/-/plugins-list-2.0.1.tgz";
-        sha512 = "QSEtEfitpoFBcn+PKp+FnbhF6buEIAbTMzgUNgwCJCqEg0am6NZ0CLvqUDEw6mDzy4WyoX/3jPqHw4TMihg8aw==";
+        url = "https://registry.npmjs.org/@netlify/plugins-list/-/plugins-list-2.2.0.tgz";
+        sha512 = "8OCwatZIPsyze2KZ8fj21/+luzdTA78fxQ6p7UFLE9IRJlZqCRVXtgiIVd/HtEr6B9OacywX3fV1hVRBVlbmDA==";
       };
     };
     "@netlify/run-utils-1.0.5" = {
@@ -3577,13 +3685,13 @@ let
         sha512 = "u6Beazs0KWRcEx9q2n417Sj7+WGrDTtDGmmKPTE6WexFt6uY1oiq3AR+ohCtu1lIIsmAfAYd8O5dSOnyAT8dFg==";
       };
     };
-    "@netlify/zip-it-and-ship-it-1.5.0" = {
+    "@netlify/zip-it-and-ship-it-1.7.0" = {
       name = "_at_netlify_slash_zip-it-and-ship-it";
       packageName = "@netlify/zip-it-and-ship-it";
-      version = "1.5.0";
+      version = "1.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-1.5.0.tgz";
-        sha512 = "hTUVtCdjrWso28Lwi+A9GO+WZhVJcJWvXO0YuYlBcGY67Lv61TQQl7nNvzgGYG7UNnzvsnTafe1pL2v+4u4vmg==";
+        url = "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-1.7.0.tgz";
+        sha512 = "7Fatc5OoRZ7V2tusx1CBWIdk9hXrr0JWoW547wsmopCkCl5O4TaLxw12CgfW6EQsjaufSnuQddzvnx5y1b5gGQ==";
       };
     };
     "@node-red/editor-api-1.2.6" = {
@@ -3640,13 +3748,13 @@ let
         sha512 = "CYUCS8iqcaZFBf0vwtVPqqNXX0XY0ajFW69smtDItbxslyZL3A0qRMiTTv0qMPA1uvOCEw4wQRSIQV7j/nd0yw==";
       };
     };
-    "@nodelib/fs.scandir-2.1.3" = {
+    "@nodelib/fs.scandir-2.1.4" = {
       name = "_at_nodelib_slash_fs.scandir";
       packageName = "@nodelib/fs.scandir";
-      version = "2.1.3";
+      version = "2.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz";
-        sha512 = "eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==";
+        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" = {
@@ -3658,22 +3766,22 @@ let
         sha512 = "shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==";
       };
     };
-    "@nodelib/fs.stat-2.0.3" = {
+    "@nodelib/fs.stat-2.0.4" = {
       name = "_at_nodelib_slash_fs.stat";
       packageName = "@nodelib/fs.stat";
-      version = "2.0.3";
+      version = "2.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz";
-        sha512 = "bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==";
+        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.4" = {
+    "@nodelib/fs.walk-1.2.6" = {
       name = "_at_nodelib_slash_fs.walk";
       packageName = "@nodelib/fs.walk";
-      version = "1.2.4";
+      version = "1.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz";
-        sha512 = "1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==";
+        url = "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz";
+        sha512 = "8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==";
       };
     };
     "@npmcli/ci-detect-1.3.0" = {
@@ -3802,13 +3910,13 @@ let
         sha512 = "Afchpdd8FNfx9GaU/1D9IzyfiXvjfGybgzQ6G4GTFvPO0/hLdkXX3YyYq+SnxE6/bCrhg4pleiB+GuJACmmkEA==";
       };
     };
-    "@oclif/plugin-autocomplete-0.2.0" = {
+    "@oclif/plugin-autocomplete-0.2.1" = {
       name = "_at_oclif_slash_plugin-autocomplete";
       packageName = "@oclif/plugin-autocomplete";
-      version = "0.2.0";
+      version = "0.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/plugin-autocomplete/-/plugin-autocomplete-0.2.0.tgz";
-        sha512 = "pHbaE2PH7d9lHjCgFrrQ+ZIwvY+7OAQaGoaANqDbicBNDK/Rszt4N4oGj22dJT7sCQ8a/3Eh942rjxYIq9Mi9Q==";
+        url = "https://registry.npmjs.org/@oclif/plugin-autocomplete/-/plugin-autocomplete-0.2.1.tgz";
+        sha512 = "EOcoh1x3auFg1a7NNVTT+hJ1PPih7Kg1it7WtG8oBgYKe+YD/bvHnX2QlXqi9S7H0XsQQMUb8hxbLP+XwQY/8Q==";
       };
     };
     "@oclif/plugin-help-1.2.11" = {
@@ -3829,13 +3937,13 @@ let
         sha512 = "bGHUdo5e7DjPJ0vTeRBMIrfqTRDBfyR5w0MP41u0n3r7YG5p14lvMmiCXxi6WDaP2Hw5nqx3PnkAIntCKZZN7g==";
       };
     };
-    "@oclif/plugin-help-3.2.0" = {
+    "@oclif/plugin-help-3.2.1" = {
       name = "_at_oclif_slash_plugin-help";
       packageName = "@oclif/plugin-help";
-      version = "3.2.0";
+      version = "3.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-3.2.0.tgz";
-        sha512 = "7jxtpwVWAVbp1r46ZnTK/uF+FeZc6y4p1XcGaIUuPAp7wx6NJhIRN/iMT9UfNFX/Cz7mq+OyJz+E+i0zrik86g==";
+        url = "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-3.2.1.tgz";
+        sha512 = "vq7rn16TrQmjX3Al/k1Z5iBZWZ3HE8fDXs52OmDJmmTqryPSNvURH9WCAsqr0PODYCSR17Hy1VTzS0x7vVVLEQ==";
       };
     };
     "@oclif/plugin-not-found-1.2.4" = {
@@ -3847,22 +3955,22 @@ let
         sha512 = "G440PCuMi/OT8b71aWkR+kCWikngGtyRjOR24sPMDbpUFV4+B3r51fz1fcqeUiiEOYqUpr0Uy/sneUe1O/NfBg==";
       };
     };
-    "@oclif/plugin-plugins-1.9.3" = {
+    "@oclif/plugin-plugins-1.9.4" = {
       name = "_at_oclif_slash_plugin-plugins";
       packageName = "@oclif/plugin-plugins";
-      version = "1.9.3";
+      version = "1.9.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/plugin-plugins/-/plugin-plugins-1.9.3.tgz";
-        sha512 = "DyrSP3sRPWOiQI0ae4OuUpjdYpCr5YS1cSzXNGL9uDVwKM4YVXvk9v0tzNzd1008oaNNXO/XDedPkAaoX110Mg==";
+        url = "https://registry.npmjs.org/@oclif/plugin-plugins/-/plugin-plugins-1.9.4.tgz";
+        sha512 = "C5hEbX4zzTjzbym2RJUE4wxz2aL2ocb826HDs3suscsjMPA3mRHyu8/rWJW1Cgc2MeoIybNdrfyPU/zmpWkaWw==";
       };
     };
-    "@oclif/plugin-plugins-1.9.4" = {
+    "@oclif/plugin-plugins-1.9.5" = {
       name = "_at_oclif_slash_plugin-plugins";
       packageName = "@oclif/plugin-plugins";
-      version = "1.9.4";
+      version = "1.9.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/plugin-plugins/-/plugin-plugins-1.9.4.tgz";
-        sha512 = "C5hEbX4zzTjzbym2RJUE4wxz2aL2ocb826HDs3suscsjMPA3mRHyu8/rWJW1Cgc2MeoIybNdrfyPU/zmpWkaWw==";
+        url = "https://registry.npmjs.org/@oclif/plugin-plugins/-/plugin-plugins-1.9.5.tgz";
+        sha512 = "8U1MKPTaitCBj4HPZpwFo7F5Krw9zEaNqKiX+QkvPz2wfftLqnSqariYvP38S/uo8CDwiR3zHPEYFSxu9CDQQA==";
       };
     };
     "@oclif/plugin-warn-if-update-available-1.7.0" = {
@@ -3901,13 +4009,13 @@ let
         sha512 = "9+Xef8nT7OKZglfkOMm7IL6VwxXUQyR7DUSU0LH/F7VNqs8vyd7es5pTfz9E7DwUIx7R3pGscxu1EBhYljyu7Q==";
       };
     };
-    "@octokit/openapi-types-2.0.0" = {
+    "@octokit/openapi-types-2.0.1" = {
       name = "_at_octokit_slash_openapi-types";
       packageName = "@octokit/openapi-types";
-      version = "2.0.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-2.0.0.tgz";
-        sha512 = "J4bfM7lf8oZvEAdpS71oTvC1ofKxfEZgU5vKVwzZKi4QPiL82udjpseJwxPid9Pu2FNmyRQOX4iEj6W1iOSnPw==";
+        url = "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-2.0.1.tgz";
+        sha512 = "9AuC04PUnZrjoLiw3uPtwGh9FE4Q3rTqs51oNlQ0rkwgE8ftYsOC+lsrQyvCvWm85smBbSc0FNRKKumvGyb44Q==";
       };
     };
     "@octokit/plugin-enterprise-rest-6.0.1" = {
@@ -3991,13 +4099,13 @@ let
         sha512 = "O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==";
       };
     };
-    "@octokit/types-6.1.1" = {
+    "@octokit/types-6.1.2" = {
       name = "_at_octokit_slash_types";
       packageName = "@octokit/types";
-      version = "6.1.1";
+      version = "6.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/types/-/types-6.1.1.tgz";
-        sha512 = "btm3D6S7VkRrgyYF31etUtVY/eQ1KzrNRqhFt25KSe2mKlXuLXJilglRC6eDA2P6ou94BUnk/Kz5MPEolXgoiw==";
+        url = "https://registry.npmjs.org/@octokit/types/-/types-6.1.2.tgz";
+        sha512 = "LPCpcLbcky7fWfHCTuc7tMiSHFpFlrThJqVdaHgowBTMS0ijlZFfonQC/C1PrZOjD4xRCYgBqH9yttEATGE/nw==";
       };
     };
     "@opencensus/core-0.0.8" = {
@@ -4027,310 +4135,364 @@ let
         sha512 = "PffXX2AL8Sh0VHQ52jJC4u3T0H6wDK6N/4bg7xh4ngMYOIi13aR1kzVvX1sVDBgfGwDOkMbl4c54Xm3tlPx/+A==";
       };
     };
-    "@ot-builder/bin-composite-types-0.10.34" = {
+    "@opentelemetry/api-0.11.0" = {
+      name = "_at_opentelemetry_slash_api";
+      packageName = "@opentelemetry/api";
+      version = "0.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@opentelemetry/api/-/api-0.11.0.tgz";
+        sha512 = "K+1ADLMxduhsXoZ0GRfi9Pw162FvzBQLDQlHru1lg86rpIU+4XqdJkSGo6y3Kg+GmOWq1HNHOA/ydw/rzHQkRg==";
+      };
+    };
+    "@opentelemetry/context-base-0.11.0" = {
+      name = "_at_opentelemetry_slash_context-base";
+      packageName = "@opentelemetry/context-base";
+      version = "0.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@opentelemetry/context-base/-/context-base-0.11.0.tgz";
+        sha512 = "ESRk+572bftles7CVlugAj5Azrz61VO0MO0TS2pE9MLVL/zGmWuUBQryART6/nsrFqo+v9HPt37GPNcECTZR1w==";
+      };
+    };
+    "@opentelemetry/core-0.11.0" = {
+      name = "_at_opentelemetry_slash_core";
+      packageName = "@opentelemetry/core";
+      version = "0.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@opentelemetry/core/-/core-0.11.0.tgz";
+        sha512 = "ZEKjBXeDGBqzouz0uJmrbEKNExEsQOhsZ3tJDCLcz5dUNoVw642oIn2LYWdQK2YdIfZbEmltiF65/csGsaBtFA==";
+      };
+    };
+    "@opentelemetry/resources-0.11.0" = {
+      name = "_at_opentelemetry_slash_resources";
+      packageName = "@opentelemetry/resources";
+      version = "0.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.11.0.tgz";
+        sha512 = "o7DwV1TcezqBtS5YW2AWBcn01nVpPptIbTr966PLlVBcS//w8LkjeOShiSZxQ0lmV4b2en0FiSouSDoXk/5qIQ==";
+      };
+    };
+    "@opentelemetry/semantic-conventions-0.11.0" = {
+      name = "_at_opentelemetry_slash_semantic-conventions";
+      packageName = "@opentelemetry/semantic-conventions";
+      version = "0.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.11.0.tgz";
+        sha512 = "xsthnI/J+Cx0YVDGgUzvrH0ZTtfNtl866M454NarYwDrc0JvC24sYw+XS5PJyk2KDzAHtb0vlrumUc1OAut/Fw==";
+      };
+    };
+    "@opentelemetry/tracing-0.11.0" = {
+      name = "_at_opentelemetry_slash_tracing";
+      packageName = "@opentelemetry/tracing";
+      version = "0.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@opentelemetry/tracing/-/tracing-0.11.0.tgz";
+        sha512 = "QweFmxzl32BcyzwdWCNjVXZT1WeENNS/RWETq/ohqu+fAsTcMyGcr6cOq/yDdFmtBy+bm5WVVdeByEjNS+c4/w==";
+      };
+    };
+    "@ot-builder/bin-composite-types-0.10.37" = {
       name = "_at_ot-builder_slash_bin-composite-types";
       packageName = "@ot-builder/bin-composite-types";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/bin-composite-types/-/bin-composite-types-0.10.34.tgz";
-        sha512 = "Tapb8mSXEZcmZNwB9KKo0CFLu8ZajAEAqxH07Py/lvS+2Rpe6LZWoPbLcHRwAP47cHbbO3IxZLWhvlWfOmaxHA==";
+        url = "https://registry.npmjs.org/@ot-builder/bin-composite-types/-/bin-composite-types-0.10.37.tgz";
+        sha512 = "TJ4mDLP0sHES4HjUry9fJTEHGb8bC51nF0OqBDR+lNCt3OHi5VVtE1Ph8QqxoglfTypLfTyXRcP8kXC+vV0Q/g==";
       };
     };
-    "@ot-builder/bin-util-0.10.34" = {
+    "@ot-builder/bin-util-0.10.37" = {
       name = "_at_ot-builder_slash_bin-util";
       packageName = "@ot-builder/bin-util";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/bin-util/-/bin-util-0.10.34.tgz";
-        sha512 = "hyu0SLfWzMG9VKy54Nmxa723owd6o3miF1NR5FN/ff+ZkWbRqzSCm7haw40801ESC2DqMWjeZDyJBU4A+aHMFQ==";
+        url = "https://registry.npmjs.org/@ot-builder/bin-util/-/bin-util-0.10.37.tgz";
+        sha512 = "RR93ek6moT25cNC3eCc9QsGWxj3vOlTfryNybDTUVFEwhXi2EWXJ+cOvjKPOxplNY17YxzxffhqXX0qdX/Y6JQ==";
       };
     };
-    "@ot-builder/cli-help-shower-0.10.34" = {
+    "@ot-builder/cli-help-shower-0.10.37" = {
       name = "_at_ot-builder_slash_cli-help-shower";
       packageName = "@ot-builder/cli-help-shower";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/cli-help-shower/-/cli-help-shower-0.10.34.tgz";
-        sha512 = "bCo9xNGvXSkEN7e8mK7sFHYLoCEsGIzPoZeyeWbEe4rWC6FQAAPWwlzCWldaNcbK/nGJsHYiHxLGO3LjeFl00A==";
+        url = "https://registry.npmjs.org/@ot-builder/cli-help-shower/-/cli-help-shower-0.10.37.tgz";
+        sha512 = "nkSDmkUROYEVAkZqd60p0WYvWAIDyv2EVN0Bon7X8fxk4Kg92ApD6yzvRUY6WrZKIV+AAM37UUodURgLG3c/Vg==";
       };
     };
-    "@ot-builder/cli-proc-0.10.34" = {
+    "@ot-builder/cli-proc-0.10.37" = {
       name = "_at_ot-builder_slash_cli-proc";
       packageName = "@ot-builder/cli-proc";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/cli-proc/-/cli-proc-0.10.34.tgz";
-        sha512 = "nckPcf5wm1nGm2Aw+JXllYGp5MGdJzGqYoS7wAbkA2i371rhD8LM6j+hQNorZ07rb6rFc2v09MMtuNmO8CpoaA==";
+        url = "https://registry.npmjs.org/@ot-builder/cli-proc/-/cli-proc-0.10.37.tgz";
+        sha512 = "5X+DBnVQrByPwGz8UlVnsldpxIKgwbZG3RndI75y2HZc/rZ5fgaAuTyjVhqxrIpLeNBv3InnTybu3QBbAouiuQ==";
       };
     };
-    "@ot-builder/cli-shared-0.10.34" = {
+    "@ot-builder/cli-shared-0.10.37" = {
       name = "_at_ot-builder_slash_cli-shared";
       packageName = "@ot-builder/cli-shared";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/cli-shared/-/cli-shared-0.10.34.tgz";
-        sha512 = "tCH4OJnc+9trMBffqZDW/tHmRj72+sqwE9JNCBRA4iabiL8rQQEKWLm3iYEygS7/X7oZSLU+idQK+gI/9rLy0Q==";
+        url = "https://registry.npmjs.org/@ot-builder/cli-shared/-/cli-shared-0.10.37.tgz";
+        sha512 = "tiRMqvsiQ+TlP+00kMC93AW1ti9ip6kTGstjzXkDhYD9nulyyGUO6Kwx27M0DS4hFcMQXeUDd65JAOaDN5XVcQ==";
       };
     };
-    "@ot-builder/common-impl-0.10.34" = {
+    "@ot-builder/common-impl-0.10.37" = {
       name = "_at_ot-builder_slash_common-impl";
       packageName = "@ot-builder/common-impl";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/common-impl/-/common-impl-0.10.34.tgz";
-        sha512 = "igfcrSnhHEJZdziq1XKFnb2ZV82t/+3Ez+1lE9N0V542CzhRsGKHDcd1X3msfhRqc88ykl+zW/sKWLWvsnseKA==";
+        url = "https://registry.npmjs.org/@ot-builder/common-impl/-/common-impl-0.10.37.tgz";
+        sha512 = "oEl8l7313MfTRoouKGaPw5oDO8W8vq7EbS6Zg7GIh7yX5cjdXfvjS8pb9Nn2MUPcBJZ7nCGWO4mCYMSNT9Llug==";
       };
     };
-    "@ot-builder/errors-0.10.34" = {
+    "@ot-builder/errors-0.10.37" = {
       name = "_at_ot-builder_slash_errors";
       packageName = "@ot-builder/errors";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/errors/-/errors-0.10.34.tgz";
-        sha512 = "p/vBXtzbFt34KC4fgAHxpbxTVI12rVcbyPvTu6dmwAkwaQG6gF22STwdc5rK9Qllr475Ppkojfp165udUo250g==";
+        url = "https://registry.npmjs.org/@ot-builder/errors/-/errors-0.10.37.tgz";
+        sha512 = "1dQK50SBwEP2QWV5NBZAYTIqvIOXGQTFS4LVAUYBhhXYgBkbh58g8Cyhd7MDqf/VlCohuhZ/VxHZDjFsZse0Kg==";
       };
     };
-    "@ot-builder/io-bin-cff-0.10.34" = {
+    "@ot-builder/io-bin-cff-0.10.37" = {
       name = "_at_ot-builder_slash_io-bin-cff";
       packageName = "@ot-builder/io-bin-cff";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-cff/-/io-bin-cff-0.10.34.tgz";
-        sha512 = "GvL+LGXXgJtHoSr00Qkm/LI9dpMJXXkXzZFjpfIyjx5o74ao7zod85SjxfBqzVdRUFcNvVbOSIiM7xrW1IgiTA==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-cff/-/io-bin-cff-0.10.37.tgz";
+        sha512 = "Cyhw7PddXzzRwflhBNX2ta+kRmfCGhS8v+XtTOmS/WX/bPwJRJInf4DGYB+NmhCfK51dmNxA9SJEf/lHsVoSrw==";
       };
     };
-    "@ot-builder/io-bin-encoding-0.10.34" = {
+    "@ot-builder/io-bin-encoding-0.10.37" = {
       name = "_at_ot-builder_slash_io-bin-encoding";
       packageName = "@ot-builder/io-bin-encoding";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-encoding/-/io-bin-encoding-0.10.34.tgz";
-        sha512 = "euzzwHXtjVTiFa5RPonkYOOP/rX0vqeUfupW6SiGIPrp0YszrjHGbWk+pLxxkbTteA30o+Xc7IQ8sppXd+AGGw==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-encoding/-/io-bin-encoding-0.10.37.tgz";
+        sha512 = "N2N0aJMz/pyt/TEgo0d9mlJQuOEcYf63p6ZPxCgnaiweb8QRFQa71WoWqlHLrZYKQRg8TU1xdRrrLzn6MpV/KA==";
       };
     };
-    "@ot-builder/io-bin-ext-private-0.10.34" = {
+    "@ot-builder/io-bin-ext-private-0.10.37" = {
       name = "_at_ot-builder_slash_io-bin-ext-private";
       packageName = "@ot-builder/io-bin-ext-private";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-ext-private/-/io-bin-ext-private-0.10.34.tgz";
-        sha512 = "5TjCMXPLR6mfpG0E3h/EvKWuaLzoLOJQZxlnAeHh2zg5w0uzoMFArxhY08cE7iKlITQLlLwV5EgagcgjmD+xrw==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-ext-private/-/io-bin-ext-private-0.10.37.tgz";
+        sha512 = "WO/omCDnkA+4M6OTSATzSfDRCpHQPkbm2l8HjVEvCj9lENEGDlB10qVUfHhS9OJRGyQ1zC2Sgz1uCP7fUPmpPQ==";
       };
     };
-    "@ot-builder/io-bin-font-0.10.34" = {
+    "@ot-builder/io-bin-font-0.10.37" = {
       name = "_at_ot-builder_slash_io-bin-font";
       packageName = "@ot-builder/io-bin-font";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-font/-/io-bin-font-0.10.34.tgz";
-        sha512 = "wfPhUDtg8f4WL/tAS031qVXR33HCa8zC4K+TfMWgLeVhApPGtT8qhPsUN7VMZwvu6L92YYVlG1BYLo/bQZtcdA==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-font/-/io-bin-font-0.10.37.tgz";
+        sha512 = "fN5UpZ1YnAiU9qLTH/bhzNnL7dTPdDNoDKbcfoEYcBF0HxvbGM7nOqgOe95HP20uUGO9z6p6A7jdkcCIgM/+JA==";
       };
     };
-    "@ot-builder/io-bin-glyph-store-0.10.34" = {
+    "@ot-builder/io-bin-glyph-store-0.10.37" = {
       name = "_at_ot-builder_slash_io-bin-glyph-store";
       packageName = "@ot-builder/io-bin-glyph-store";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-glyph-store/-/io-bin-glyph-store-0.10.34.tgz";
-        sha512 = "0izykazfWE77KEN9N17fyrftUEiTMFiYZAV06mGDpOmHyRLM0oFAnGheWE7n5rRj5ft/9tuH/Yi3z1RPkM2LzQ==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-glyph-store/-/io-bin-glyph-store-0.10.37.tgz";
+        sha512 = "g2GvPbzcNSSUcs/TmjpaLfCgDUDOkeO5/BwZsUyF8vesHdZXzCLIuZ34Hla18kDFNEujNY5lTYOblin9MLsuCw==";
       };
     };
-    "@ot-builder/io-bin-layout-0.10.34" = {
+    "@ot-builder/io-bin-layout-0.10.37" = {
       name = "_at_ot-builder_slash_io-bin-layout";
       packageName = "@ot-builder/io-bin-layout";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-layout/-/io-bin-layout-0.10.34.tgz";
-        sha512 = "35689IuO84kKg25ltvzJemF49zoEYv/uT1CEEvPbI8vfsss32CVBDxVsyHoIMeCVz872i3q0LEMquZ4v7bQP1A==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-layout/-/io-bin-layout-0.10.37.tgz";
+        sha512 = "8uEvHSC5X1bxBBNEKVz+/5yedVStOSFndAHI86pCcEim8538Ib/jZTTcwSlBs4cg4r4QDJ8EekkOt0TFjvY0qA==";
       };
     };
-    "@ot-builder/io-bin-metadata-0.10.34" = {
+    "@ot-builder/io-bin-metadata-0.10.37" = {
       name = "_at_ot-builder_slash_io-bin-metadata";
       packageName = "@ot-builder/io-bin-metadata";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-metadata/-/io-bin-metadata-0.10.34.tgz";
-        sha512 = "hHvHgbW9q/rY7RLKUZ6bd15mjWuInyek1N+t81XeF58/W6AC50Ya65wxhG381wui1NGgUJrcwUcO6K36RQCyFA==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-metadata/-/io-bin-metadata-0.10.37.tgz";
+        sha512 = "hvb+b11sYjHhRQBBCEo0Ijwk62v9S+HMCydL4EHzWxWBtEXL6ELyqG3JeWDWbwFnQ1R/gHVjHOHacaW/8NsPYw==";
       };
     };
-    "@ot-builder/io-bin-metric-0.10.34" = {
+    "@ot-builder/io-bin-metric-0.10.37" = {
       name = "_at_ot-builder_slash_io-bin-metric";
       packageName = "@ot-builder/io-bin-metric";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-metric/-/io-bin-metric-0.10.34.tgz";
-        sha512 = "9MgzLr/GVWEF2aKDBu0UZ+9X6a84IxQw3Yhnw9MigMdK345We/rtuL1Q1Io5XW9XDcj89EqP/31cUSAr/bD0YQ==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-metric/-/io-bin-metric-0.10.37.tgz";
+        sha512 = "AL38lT4RPUTJ8I/gDu0zuW6F5drcIzhoDN1hPsmMwsQLApx+1Ea/7gJipWfU4ppE+R9dpULrHOyH3EdCH59owA==";
       };
     };
-    "@ot-builder/io-bin-name-0.10.34" = {
+    "@ot-builder/io-bin-name-0.10.37" = {
       name = "_at_ot-builder_slash_io-bin-name";
       packageName = "@ot-builder/io-bin-name";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-name/-/io-bin-name-0.10.34.tgz";
-        sha512 = "s/PGAiUV/Qvz7b3dejSXrvk7g8H75yTKfa4HbmZDUPL9PB0+0+BEYbCeHeTTGD3EjZCA5tH1oi19IfuXzFWMsw==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-name/-/io-bin-name-0.10.37.tgz";
+        sha512 = "KBgTi4FdMdo/CJoPEL3HU1910GS42Lfw03BEwn/AXmv8mZy4q4DkhSI5jFH9xf2g9d67Rm9Ms4IR01OtZIdasg==";
       };
     };
-    "@ot-builder/io-bin-sfnt-0.10.34" = {
+    "@ot-builder/io-bin-sfnt-0.10.37" = {
       name = "_at_ot-builder_slash_io-bin-sfnt";
       packageName = "@ot-builder/io-bin-sfnt";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-sfnt/-/io-bin-sfnt-0.10.34.tgz";
-        sha512 = "/GcMw5E1fvZ5B67jUfLbDWzHzMxQRnAMx0OAXq3FseY4dr28OOppieKbHK6f7K+cuscyOxcY/sycpDPLgI21wA==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-sfnt/-/io-bin-sfnt-0.10.37.tgz";
+        sha512 = "HzYvTaydmgxTRr7o5sichmc0j4TJcFbZfhf3kU8fE2KUdagi+Ia9jms3YWz+AVFaxkd6vp7xAKSgoaYggXWtcQ==";
       };
     };
-    "@ot-builder/io-bin-ttf-0.10.34" = {
+    "@ot-builder/io-bin-ttf-0.10.37" = {
       name = "_at_ot-builder_slash_io-bin-ttf";
       packageName = "@ot-builder/io-bin-ttf";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-ttf/-/io-bin-ttf-0.10.34.tgz";
-        sha512 = "X8xX76EP24H4DxQJO1kvIwmXfCuTyoCbvYB+6oXuITt4LbIjvbDoCn/PDKdxxUdDxDkcdN+5yZZAxc64Cinzew==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-ttf/-/io-bin-ttf-0.10.37.tgz";
+        sha512 = "nLILmjrsN3J9HqVQP8AqfTSNdaIJaB7V/k5Csu+lFS6Qeozkpm5C43WFb+pjTo9rO+3ZUyQKtN0dBez6Mu5zfA==";
       };
     };
-    "@ot-builder/ot-0.10.34" = {
+    "@ot-builder/ot-0.10.37" = {
       name = "_at_ot-builder_slash_ot";
       packageName = "@ot-builder/ot";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot/-/ot-0.10.34.tgz";
-        sha512 = "TFEhsVLr7zqDVDCupvw0+OIDzeUry+g/csgmn+fUIx5NBlyDLF78CJytYUha/HhzIyh3NeTgIDDVTU0K04jo2Q==";
+        url = "https://registry.npmjs.org/@ot-builder/ot/-/ot-0.10.37.tgz";
+        sha512 = "H2OhGBya1uhb3LNbDn1uYhD7VH+RxVIc//DjPB9TTjRAxepzJhtDQA+xHr44Pfh+/gMhzOg6IZaE6w2hKCOi+A==";
       };
     };
-    "@ot-builder/ot-encoding-0.10.34" = {
+    "@ot-builder/ot-encoding-0.10.37" = {
       name = "_at_ot-builder_slash_ot-encoding";
       packageName = "@ot-builder/ot-encoding";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-encoding/-/ot-encoding-0.10.34.tgz";
-        sha512 = "InJjxEU008C4tfOvw+dZ3R+g5xIjOkwawPMYnSnWLJFII5uWLQKTcq7pzYiM4/vsVLvgUFBfpKvMxbf7Ul9l7g==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-encoding/-/ot-encoding-0.10.37.tgz";
+        sha512 = "xuSnN3LD3v6ovkHLeZebM8z4PYZkpW6tVrl2HqRaujIjuR0LpBSWQcLwqI1B8xUwfvpdPrmRABXGTDQEfH7XbA==";
       };
     };
-    "@ot-builder/ot-ext-private-0.10.34" = {
+    "@ot-builder/ot-ext-private-0.10.37" = {
       name = "_at_ot-builder_slash_ot-ext-private";
       packageName = "@ot-builder/ot-ext-private";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-ext-private/-/ot-ext-private-0.10.34.tgz";
-        sha512 = "+q1U1PhBIjc83SZhMgqIi9O9p85vW338MvWEwehxnIijT84XJJeiQ2kWektiz62rxGjL23YnPqLljFojMbG7/Q==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-ext-private/-/ot-ext-private-0.10.37.tgz";
+        sha512 = "dZk0SedGSAvmmHuY+kwqICz0ptrX0rvWVitp5nF/0kXS1sUr5x2xXrGIFm6/ZatyYek5tdGIMy6OjUyfv2lEew==";
       };
     };
-    "@ot-builder/ot-glyphs-0.10.34" = {
+    "@ot-builder/ot-glyphs-0.10.37" = {
       name = "_at_ot-builder_slash_ot-glyphs";
       packageName = "@ot-builder/ot-glyphs";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-glyphs/-/ot-glyphs-0.10.34.tgz";
-        sha512 = "YzXak7LFJVekz/nyi8hPVipY3PTTM+tmPit875TX56+/OuhwuQWbT5HeM++kmlGc/VYxbFzndJybR87YsuNvjQ==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-glyphs/-/ot-glyphs-0.10.37.tgz";
+        sha512 = "EGO3Ok6xOZLrpViokybKkCD5fyV/TOOdzD2WD5hNC9OUT3uSWUCVp8O5CN1xbJUC47Xsbx8L3WTKPLMDVfyurQ==";
       };
     };
-    "@ot-builder/ot-layout-0.10.34" = {
+    "@ot-builder/ot-layout-0.10.37" = {
       name = "_at_ot-builder_slash_ot-layout";
       packageName = "@ot-builder/ot-layout";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-layout/-/ot-layout-0.10.34.tgz";
-        sha512 = "ftGx58faieUlzWefhRrcR/m4gmAVvIge4SkBDVanIaFgPst8CsH01THkhtbIanzHoZARn+FcU5SXruRC0VhVdA==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-layout/-/ot-layout-0.10.37.tgz";
+        sha512 = "sK0ERPlrujMfd/1yqxX5In5AZRbV/vqR0gCyZavd2iOWA5IrPS0jeUcF6TmpnWqSt8IvKL/syPHm2VEmEBEGtQ==";
       };
     };
-    "@ot-builder/ot-metadata-0.10.34" = {
+    "@ot-builder/ot-metadata-0.10.37" = {
       name = "_at_ot-builder_slash_ot-metadata";
       packageName = "@ot-builder/ot-metadata";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-metadata/-/ot-metadata-0.10.34.tgz";
-        sha512 = "w1uqzSQWfmIr1zP7s4tCfVzyc55s18D//QgkHHZAEEcO28pfslMSIRm70DiggXo1uYVARlUUT/BAcnK/U+qQBA==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-metadata/-/ot-metadata-0.10.37.tgz";
+        sha512 = "KO+MhJXSHCVMRE0sVoqI/W91/SYC5JUM1yc09OvlHdb5RlCYk8RWDr/1G2VKIQifrbMMXpzeVVwAVOjKxOlH2w==";
       };
     };
-    "@ot-builder/ot-name-0.10.34" = {
+    "@ot-builder/ot-name-0.10.37" = {
       name = "_at_ot-builder_slash_ot-name";
       packageName = "@ot-builder/ot-name";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-name/-/ot-name-0.10.34.tgz";
-        sha512 = "1aw41J3vyAKaSyEBzRNlpRcBiSZkajp5MCy0hRaa68ZwEY/mPcQkSh4KjZEMyx+ndFmHKRdL3396ksVKftOgVg==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-name/-/ot-name-0.10.37.tgz";
+        sha512 = "LIXAd02w3PIUaepM5Esct+Z1iUu/Lq/kxd3WNUL0OTmauZF2oh0qdK3dQHLtFBHOMHoWIXUKjOPDLw/YP1dUwA==";
       };
     };
-    "@ot-builder/ot-sfnt-0.10.34" = {
+    "@ot-builder/ot-sfnt-0.10.37" = {
       name = "_at_ot-builder_slash_ot-sfnt";
       packageName = "@ot-builder/ot-sfnt";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-sfnt/-/ot-sfnt-0.10.34.tgz";
-        sha512 = "I88VMnJY0HxXLf2P+xnTIRheSsyCphnh8Vjj/zfroNHB98vdPIbE7d44cCv4C2u1zNRGwbhogMLBKghfhbqjuA==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-sfnt/-/ot-sfnt-0.10.37.tgz";
+        sha512 = "VICXFcp8yzi6zkd4nwLrYh7p3Yx86KMqDRV39ODtM1g/2r887beIfBOONE1ll4Dy6FMXbtvWY1+OEcMPEjD+LA==";
       };
     };
-    "@ot-builder/ot-standard-glyph-namer-0.10.34" = {
+    "@ot-builder/ot-standard-glyph-namer-0.10.37" = {
       name = "_at_ot-builder_slash_ot-standard-glyph-namer";
       packageName = "@ot-builder/ot-standard-glyph-namer";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-standard-glyph-namer/-/ot-standard-glyph-namer-0.10.34.tgz";
-        sha512 = "AjdOIfQxyN2dIlA8RAzFeu9ysGS9yMiZN1nVjHaTdHjl6nZx16Xjhtf1xEa5GbMORDaWkFeaXnYWM1kp/IYAhw==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-standard-glyph-namer/-/ot-standard-glyph-namer-0.10.37.tgz";
+        sha512 = "I1FsVaBOHMSPA6lPFo6SWwAYLmp+q1QNKYQtcRJmgW5G5lljIjCTptvpDzyXqgujgFvGUDz7UWPNzlRq/HwLNw==";
       };
     };
-    "@ot-builder/prelude-0.10.34" = {
+    "@ot-builder/prelude-0.10.37" = {
       name = "_at_ot-builder_slash_prelude";
       packageName = "@ot-builder/prelude";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/prelude/-/prelude-0.10.34.tgz";
-        sha512 = "z7OuMrGgr6sYn+UWOctyWDpCra2+nRPPpmUkbbP7RhTh3ANjJFePeMaOQiYogz7u7IKlDzlg5D4qY/F/gJNuPA==";
+        url = "https://registry.npmjs.org/@ot-builder/prelude/-/prelude-0.10.37.tgz";
+        sha512 = "rUMCp2j3or0dSYr2hDkmNRexg9A24zzRRQWNHh5KF+6x4Crj5Sg41gx+sx+MohQqs8mu8CM3CZOV1b66P7ixPA==";
       };
     };
-    "@ot-builder/primitive-0.10.34" = {
+    "@ot-builder/primitive-0.10.37" = {
       name = "_at_ot-builder_slash_primitive";
       packageName = "@ot-builder/primitive";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/primitive/-/primitive-0.10.34.tgz";
-        sha512 = "67yTVBkLzfQy0F3xfHA+NYAWy+A2Z6udWznK7nW0McK9PtOvCjCNl68UrW+vmohR8T4t0PGTC3lHX7dBkxyQTQ==";
+        url = "https://registry.npmjs.org/@ot-builder/primitive/-/primitive-0.10.37.tgz";
+        sha512 = "GdYr1DUgWRUASpK9C85jklb/iHpdzgPmHs1fxud61QktqXJ21Wo1jvr5W0TaHsK3tGyeDjfSbEohMQhFKgZZOA==";
       };
     };
-    "@ot-builder/rectify-0.10.34" = {
+    "@ot-builder/rectify-0.10.37" = {
       name = "_at_ot-builder_slash_rectify";
       packageName = "@ot-builder/rectify";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/rectify/-/rectify-0.10.34.tgz";
-        sha512 = "rT9t9eYjRlx/EioSWwkrNHMSNlXr1UufB2+Tni6DRCWoTV0XjgFsAt1fjj+vTcxtvy7ZZuZKOdwkyxITiMPK4A==";
+        url = "https://registry.npmjs.org/@ot-builder/rectify/-/rectify-0.10.37.tgz";
+        sha512 = "0gv45ARwPgBSWnpl7mmk+lTtIlTO0XBtoCBT8BbkXzXH4YxkB70fEsAX47GEhSpWzWWg9QgTrVUCBFXVj4i67A==";
       };
     };
-    "@ot-builder/stat-glyphs-0.10.34" = {
+    "@ot-builder/stat-glyphs-0.10.37" = {
       name = "_at_ot-builder_slash_stat-glyphs";
       packageName = "@ot-builder/stat-glyphs";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/stat-glyphs/-/stat-glyphs-0.10.34.tgz";
-        sha512 = "cqWuTCGgelc6Dqg0nW3kkylFkP0dc7vvSlnSQr1eZaq6YD36o/ckWzXLc/caGY6GefFYVfGx+kpzx45f5MdCIQ==";
+        url = "https://registry.npmjs.org/@ot-builder/stat-glyphs/-/stat-glyphs-0.10.37.tgz";
+        sha512 = "JTQQtR8CWclhAdJyKAvWH3O99wuaJFJKyAr+BRcXL5wJ6D68V9AQ8zY+weaIL7m1FZIOp5kf4nc4RmRodtCcNw==";
       };
     };
-    "@ot-builder/trace-0.10.34" = {
+    "@ot-builder/trace-0.10.37" = {
       name = "_at_ot-builder_slash_trace";
       packageName = "@ot-builder/trace";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/trace/-/trace-0.10.34.tgz";
-        sha512 = "EW9xYkpocQV0M+sdVlOhSAucs/tRoZogQ+NVZ+yLJTcPAEE+PFyvU81Rd0+R9Lp1LOpLmYDQFJpzh3n/z+i9aA==";
+        url = "https://registry.npmjs.org/@ot-builder/trace/-/trace-0.10.37.tgz";
+        sha512 = "phedlApvTXseNHId9T0Ab+6luHoATwkwk0l/JFEhVFIbMdvAcHwgAB/oxumsySlTscYuV/7dgGqCyYeeYicfjw==";
       };
     };
-    "@ot-builder/var-store-0.10.34" = {
+    "@ot-builder/var-store-0.10.37" = {
       name = "_at_ot-builder_slash_var-store";
       packageName = "@ot-builder/var-store";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/var-store/-/var-store-0.10.34.tgz";
-        sha512 = "ldEosnnwcx/NDz+mb9Z2Ta9hlhhviK2QIrXY5PIdvhtlcj6U/dMPgmvHhZwF15+0f1r03V7EIq/v5Y3T78+Phw==";
+        url = "https://registry.npmjs.org/@ot-builder/var-store/-/var-store-0.10.37.tgz";
+        sha512 = "yAEZBdo+X0m3WnFNLXFW2pkmhDx8EEvqxqR0A95KxZC1M6gtLdYesQGz5x1qnTn6cAvxOOhyclWsk3XcSJpvKw==";
       };
     };
-    "@ot-builder/variance-0.10.34" = {
+    "@ot-builder/variance-0.10.37" = {
       name = "_at_ot-builder_slash_variance";
       packageName = "@ot-builder/variance";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/variance/-/variance-0.10.34.tgz";
-        sha512 = "McAXf0TPT+GjAZS2iT5ULZq0FR9oOQK3Vbc0g5KXxxd9/wWsINT+nSuO/YFR1O9TT1lBf7cT3OUXrAM2tKlU5Q==";
+        url = "https://registry.npmjs.org/@ot-builder/variance/-/variance-0.10.37.tgz";
+        sha512 = "I+ZvuTZ82Itr1/KwTkDyMrhx30rgmimMxYX6dOIvjrrheTJSPR3iKR7tFKszCuJSgx6GTITeikeyi6tH4/krGQ==";
       };
     };
     "@parcel/fs-1.11.0" = {
@@ -4432,13 +4594,13 @@ let
         sha512 = "uc6FmPEegAZawSHjUMFQwU7EjaDn7zy1iD/KD/wBROL9F4378OES8MKMYHoRAKT61Fk7LxVKZSDR5VespMQiqw==";
       };
     };
-    "@primer/octicons-11.1.0" = {
+    "@primer/octicons-11.2.0" = {
       name = "_at_primer_slash_octicons";
       packageName = "@primer/octicons";
-      version = "11.1.0";
+      version = "11.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@primer/octicons/-/octicons-11.1.0.tgz";
-        sha512 = "qeW4Hu82V0eTKza54nIqud572lrZicy2R6PBX2SVfWlrfRUotpsRi6m/Dvxz/YKL/8xdwBSWgJl8hJXM4V5woA==";
+        url = "https://registry.npmjs.org/@primer/octicons/-/octicons-11.2.0.tgz";
+        sha512 = "a9ORJaeu7Kt0LCaawQy8S+ZVPDe1qXJvKZraX0b6R0KXkXjL519rpGUDRiGUlskuxEpVf2kmbVYfqGDDlMGLMg==";
       };
     };
     "@protobufjs/aspromise-1.1.2" = {
@@ -4675,31 +4837,31 @@ let
         sha512 = "c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==";
       };
     };
-    "@schematics/angular-11.0.3" = {
+    "@schematics/angular-11.0.5" = {
       name = "_at_schematics_slash_angular";
       packageName = "@schematics/angular";
-      version = "11.0.3";
+      version = "11.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/angular/-/angular-11.0.3.tgz";
-        sha512 = "H+rWJOafl8OXrC/GMJihWYTFsR2K49tWM6AyJLBxja6qyZwwL184SLPvvkPsz3+LDs+fxfOzQ1K+sIpuZLqizw==";
+        url = "https://registry.npmjs.org/@schematics/angular/-/angular-11.0.5.tgz";
+        sha512 = "7p2wweoJYhim8YUy3ih1SrPGqRsa6+aEFbYgo9v4zt7b3tOva8SvkbC2alayK74fclzQ7umqa6xAwvWhy8ORvg==";
       };
     };
-    "@schematics/schematics-0.1100.1" = {
+    "@schematics/schematics-0.1100.3" = {
       name = "_at_schematics_slash_schematics";
       packageName = "@schematics/schematics";
-      version = "0.1100.1";
+      version = "0.1100.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/schematics/-/schematics-0.1100.1.tgz";
-        sha512 = "Y5J/qafyZtsu6spEFywGLjYMqEgONSDx9m8c8KL4c45+KqqerQeh2QQHims3G0brKUFIK3nCw95zqw+RMsGcsA==";
+        url = "https://registry.npmjs.org/@schematics/schematics/-/schematics-0.1100.3.tgz";
+        sha512 = "tzjKnjD90FQ4LgRN9ALT2qCqgJYZrAKoy1embFJRuGKA8vv1hTG4JonVDqQEUoNwTc9r/Ok2Z1eenAI9TSUd1A==";
       };
     };
-    "@schematics/update-0.1100.3" = {
+    "@schematics/update-0.1100.5" = {
       name = "_at_schematics_slash_update";
       packageName = "@schematics/update";
-      version = "0.1100.3";
+      version = "0.1100.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/update/-/update-0.1100.3.tgz";
-        sha512 = "Hp+RVuVLYkJhGYzLY3kwSqk8nh9zC9F9AAR4QuwSXQv+pQxRbv48fdU3iVuKu/mVhz17RZJhTNoA/2uNMeGH2g==";
+        url = "https://registry.npmjs.org/@schematics/update/-/update-0.1100.5.tgz";
+        sha512 = "BYtKKuiWsrlc4FMW3bRyl4tm6lWNMTi8oql/mtkSgH7V5eMmaLDJtM+zDl+qyC/KHPxbHTfoHDapfv1tITSWjA==";
       };
     };
     "@segment/loosely-validate-event-2.0.0" = {
@@ -4747,13 +4909,13 @@ let
         sha512 = "PY7gH+7aQ+MltcUD7SRDuQODJ9Sav9HhFJsgOiyf8IVo7XVD6FxZIsSnpMI6paSkptOB7n+0Jz03gNlEkKetQQ==";
       };
     };
-    "@serverless/enterprise-plugin-4.2.0" = {
+    "@serverless/enterprise-plugin-4.4.1" = {
       name = "_at_serverless_slash_enterprise-plugin";
       packageName = "@serverless/enterprise-plugin";
-      version = "4.2.0";
+      version = "4.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/enterprise-plugin/-/enterprise-plugin-4.2.0.tgz";
-        sha512 = "b7kVdcE+nLi9kWOu4lqvbYBeK0ChIPX9gbqMecs3fEAdPVMleZyC0CywdWnpOrV9xXij9tj4LxFv6NRRcFCXZg==";
+        url = "https://registry.npmjs.org/@serverless/enterprise-plugin/-/enterprise-plugin-4.4.1.tgz";
+        sha512 = "MTjpIwpCA1gmldGuEozHNKIlce8BXMilvH2K0nm5vJ45PAUwK1bL9moaLwDadaTEw9B1jKbboa5/wpzJwwFdxA==";
       };
     };
     "@serverless/event-mocks-1.1.1" = {
@@ -4810,22 +4972,22 @@ let
         sha512 = "aI/cpGVUhWbJUR8QDMtPue28EU4ViG/L4/XKuZDfAN2uNQv3NRjwEFIBi/cxyfQnMTYVtMLe9wDjuwzOT4ENzA==";
       };
     };
-    "@serverless/utils-2.0.0" = {
+    "@serverless/utils-2.1.0" = {
       name = "_at_serverless_slash_utils";
       packageName = "@serverless/utils";
-      version = "2.0.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/utils/-/utils-2.0.0.tgz";
-        sha512 = "yZQT2f8LIZZlH2ibAIvK4C/Ks72Y8CIWmGz04XGCLPHa/ANA6KqlXTKV6zWg/n1PDy2yj2zgX+m509VpIZuDeQ==";
+        url = "https://registry.npmjs.org/@serverless/utils/-/utils-2.1.0.tgz";
+        sha512 = "3DJqUrBaFPam8XT2GZIErjJzKC4sm4XEmjiAxur7B2oAwSvH2rqSwBXUuG1O7azcVueQFcKzmSJTfNhsmaFguA==";
       };
     };
-    "@serverless/utils-china-1.0.11" = {
+    "@serverless/utils-china-1.0.12" = {
       name = "_at_serverless_slash_utils-china";
       packageName = "@serverless/utils-china";
-      version = "1.0.11";
+      version = "1.0.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/utils-china/-/utils-china-1.0.11.tgz";
-        sha512 = "raOPIoPSTrkWKBDuozkYWvLXP2W65K9Uk4ud+lPcbhhBSamO3uVW40nuAkC19MdIoAsFi5oTGYpcc9UDx8b+lg==";
+        url = "https://registry.npmjs.org/@serverless/utils-china/-/utils-china-1.0.12.tgz";
+        sha512 = "PuVap97QTf3Fi5+ez3ZUewGPFHTpf3dwZ+c6YWEoaf+1u7cgXzYFuWx8Ypi+4ghbL93/bf+blqdm+7CQi+CMRg==";
       };
     };
     "@sindresorhus/is-0.14.0" = {
@@ -4972,22 +5134,22 @@ let
         sha512 = "nI7ELxukf7pT4/VraL4iabtNNMz8mUo7EXlqCFld8O5z6mIMLX9llps24iPpaIZOwArkY3FWA+4t+ixyvtTSIA==";
       };
     };
-    "@snyk/java-call-graph-builder-1.16.2" = {
+    "@snyk/java-call-graph-builder-1.17.0" = {
       name = "_at_snyk_slash_java-call-graph-builder";
       packageName = "@snyk/java-call-graph-builder";
-      version = "1.16.2";
+      version = "1.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/java-call-graph-builder/-/java-call-graph-builder-1.16.2.tgz";
-        sha512 = "tJF+dY/wTfexwYuCgFB3RpWl4RGcf2H9RT9yurkTVi5wwKfvcNwZMUMwSlTDEFOqwmAsJ7e0uNVRlkPQHekCcQ==";
+        url = "https://registry.npmjs.org/@snyk/java-call-graph-builder/-/java-call-graph-builder-1.17.0.tgz";
+        sha512 = "uO1b6UtT6QGz7F5ZgNdOSyMXBvykUhOcuHBRc//xUnBWsyJwdlAFp/d646zIeaBCe87Fcn5hXuWUGjj+N8rBzA==";
       };
     };
-    "@snyk/java-call-graph-builder-1.17.0" = {
+    "@snyk/java-call-graph-builder-1.18.0" = {
       name = "_at_snyk_slash_java-call-graph-builder";
       packageName = "@snyk/java-call-graph-builder";
-      version = "1.17.0";
+      version = "1.18.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/java-call-graph-builder/-/java-call-graph-builder-1.17.0.tgz";
-        sha512 = "uO1b6UtT6QGz7F5ZgNdOSyMXBvykUhOcuHBRc//xUnBWsyJwdlAFp/d646zIeaBCe87Fcn5hXuWUGjj+N8rBzA==";
+        url = "https://registry.npmjs.org/@snyk/java-call-graph-builder/-/java-call-graph-builder-1.18.0.tgz";
+        sha512 = "6Mt+Rs2N4HdHICCjxWRwtGXUrSktCsSGnn7HlL6wi+4JXjPWa+rDCzaF6furqRR3aphZAclgved0haFwwmqBxQ==";
       };
     };
     "@snyk/rpm-parser-2.2.1" = {
@@ -5152,130 +5314,130 @@ let
         sha512 = "AmyMQndtxMsM59eDeA0gGiw8T2LzNvDhx/xl+ygFXXrsw+yb/mit73ndHkiHKcRA1EpNHTyD1PN9ATxghzplfg==";
       };
     };
-    "@textlint/ast-node-types-4.3.4" = {
+    "@textlint/ast-node-types-4.3.5" = {
       name = "_at_textlint_slash_ast-node-types";
       packageName = "@textlint/ast-node-types";
-      version = "4.3.4";
+      version = "4.3.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.3.4.tgz";
-        sha512 = "Grq+vJuNH7HCa278eFeiqJvowrD+onMCoG2ctLyoN+fXYIQGIr1/8fo8AcIg+VM16Kga+N6Y1UWNOWPd8j1nFg==";
+        url = "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.3.5.tgz";
+        sha512 = "syl8VE34DQDTV7+IADP1jYtGsxTC9MmCKLmpJX90G6nNv9CzgAZIukd7WMiJFZpFgcDAlibEaCKlJRxjfEmmPA==";
       };
     };
-    "@textlint/ast-tester-2.2.4" = {
+    "@textlint/ast-tester-2.2.5" = {
       name = "_at_textlint_slash_ast-tester";
       packageName = "@textlint/ast-tester";
-      version = "2.2.4";
+      version = "2.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-2.2.4.tgz";
-        sha512 = "676xpY3/+Xa+tPaiUPaD4sl//+p3xsnSPYLrQjSmHWXX78F3MwAWd/Lek+SCn4wwvf1tCIx0SPtjfOCa6ru8qw==";
+        url = "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-2.2.5.tgz";
+        sha512 = "kKolF3xDI0G1sjM2HJE1EZAf407026b/wHC0FAdo9/FAipUTtAATKDnvjYeN++W1b5TxtIWRF5SbHppK7eRXGQ==";
       };
     };
-    "@textlint/ast-traverse-2.2.5" = {
+    "@textlint/ast-traverse-2.2.6" = {
       name = "_at_textlint_slash_ast-traverse";
       packageName = "@textlint/ast-traverse";
-      version = "2.2.5";
+      version = "2.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-2.2.5.tgz";
-        sha512 = "YduGVn7iaUYOfo7TwHO4b0K/qQpj61Ol/M884ck3vetNd0zBxpHO3GpQKW87SZGGtlsBa9v5Suz/yypnlPo3Og==";
+        url = "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-2.2.6.tgz";
+        sha512 = "cpBF4UsbQ95oFU8gaGrkYar1H75ORvfRWN78dXneyinJFG1KBajXN9lLYhXhg+Z1Rn/9Ifw+SCjLZKnFmnwM0g==";
       };
     };
-    "@textlint/feature-flag-3.2.4" = {
+    "@textlint/feature-flag-3.2.5" = {
       name = "_at_textlint_slash_feature-flag";
       packageName = "@textlint/feature-flag";
-      version = "3.2.4";
+      version = "3.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-3.2.4.tgz";
-        sha512 = "ABhbZ5rfkwa/kTBFxVmeMzE1flcnUjLJ5LTZvOaxH/pElfLLN1J4FEmAZTRCvXGAB498II6nkM2CqcikbKzh6A==";
+        url = "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-3.2.5.tgz";
+        sha512 = "OePponYtxPGjNf6GBqioRaOr1m8LJZQLCj49LgoGZnolm9hmKq3QP1jEKGbzxsHCADL7YHoKZ6zxKGkicmsxPA==";
       };
     };
-    "@textlint/fixer-formatter-3.2.5" = {
+    "@textlint/fixer-formatter-3.2.6" = {
       name = "_at_textlint_slash_fixer-formatter";
       packageName = "@textlint/fixer-formatter";
-      version = "3.2.5";
+      version = "3.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-3.2.5.tgz";
-        sha512 = "fh6XiLbX9WF8+79g20qb1I85k/Yc9+h7LRccmaLzTBjVQDNYxX5BtfvGsY0Vf5tBZKT2xFZH4eSLH/EWoL3weg==";
+        url = "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-3.2.6.tgz";
+        sha512 = "xVVEHcpUeBBFI7Ug4y/tGTRLf6XX9lsg/iLvk6cjWJhxnFsVOkSFJRrZFetIJnAKnhQmCAv/i+ybgnTHhas7pw==";
       };
     };
-    "@textlint/kernel-3.3.6" = {
+    "@textlint/kernel-3.3.7" = {
       name = "_at_textlint_slash_kernel";
       packageName = "@textlint/kernel";
-      version = "3.3.6";
+      version = "3.3.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/kernel/-/kernel-3.3.6.tgz";
-        sha512 = "M2ciQDAo5W6rpRADzGnMXyxhvJ+lnqYG9iHrqmfDQ2MA0VcolWuA37H67/UstqTs3NYaGC7RZkq9FAV//pl30w==";
+        url = "https://registry.npmjs.org/@textlint/kernel/-/kernel-3.3.7.tgz";
+        sha512 = "zLk78gCwiQIl0ElkzT8DVMOLJ5PCDWZnuRaYk7YkwmGpjJSoJcGSCqiRGhmmc4d7CCZ+AcoM0DQUSyrFzJjyMA==";
       };
     };
-    "@textlint/linter-formatter-3.2.5" = {
+    "@textlint/linter-formatter-3.2.6" = {
       name = "_at_textlint_slash_linter-formatter";
       packageName = "@textlint/linter-formatter";
-      version = "3.2.5";
+      version = "3.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-3.2.5.tgz";
-        sha512 = "oy5RcBWrC2d7r0Mjw/FBH8cvQuOaCB5PeOPG0Pp44Yr5JbIGLXfh84umHQOTCmxfRxw3ccnUfA9wjbxuL8rWOQ==";
+        url = "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-3.2.6.tgz";
+        sha512 = "39R2PAKRDqq8p6jQj3u9ERUzrrhK33BnHK622oegaXzPeaBLjN2brBXsxnBpNJFPUW2L9BDmJcBd92E/ajLTGg==";
       };
     };
-    "@textlint/markdown-to-ast-6.2.5" = {
+    "@textlint/markdown-to-ast-6.2.6" = {
       name = "_at_textlint_slash_markdown-to-ast";
       packageName = "@textlint/markdown-to-ast";
-      version = "6.2.5";
+      version = "6.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-6.2.5.tgz";
-        sha512 = "9vlQbylGjnnRGev3yt9ntNy6I9FQH3p+MkbijybKnwobK/msoAX9sThDHOMbGM24PsUHxcDjktDlj2vHN/pwDA==";
+        url = "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-6.2.6.tgz";
+        sha512 = "TjZTMGYla9Nznegy0r23EEzNMfWva0oksj+48aqMlbQ+UvBA5vdEC0VzCO3l0Z137RgEJ+glInbvEilo2zcjZg==";
       };
     };
-    "@textlint/module-interop-1.1.4" = {
+    "@textlint/module-interop-1.1.5" = {
       name = "_at_textlint_slash_module-interop";
       packageName = "@textlint/module-interop";
-      version = "1.1.4";
+      version = "1.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-1.1.4.tgz";
-        sha512 = "9M3kYG5nBoD2lhp05sqi6fieNU6rBcf+A8Trp+4d8o5uJ4RRsWeRtAQMWM7Tv15onqIITRq7fm3la7xovVB9KA==";
+        url = "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-1.1.5.tgz";
+        sha512 = "YXz4qV6thEuwNfamHFhRsebZM7FWe1x3fD7XAqPxE8J+HLQea3Y0i52hU/rTQvt85omYq+37g3YtqjX60mYjog==";
       };
     };
-    "@textlint/text-to-ast-3.2.4" = {
+    "@textlint/text-to-ast-3.2.5" = {
       name = "_at_textlint_slash_text-to-ast";
       packageName = "@textlint/text-to-ast";
-      version = "3.2.4";
+      version = "3.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-3.2.4.tgz";
-        sha512 = "uIiNg52OdQ3Fn8aOYaV7BLW2QakNsmf4doypIwrW4q+gHYQ3jxdPHHkq6RxuYoO112vO40M3zmAoEZmM1qmPhw==";
+        url = "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-3.2.5.tgz";
+        sha512 = "1B43L9tVr2b6Qm37KsdI8dbutL8b5AN95PFGzPpxaJbShz8TjVUFQ5bxPrnKGc7wV5MFpazf+/UVjZx6JtUbMA==";
       };
     };
-    "@textlint/textlint-plugin-markdown-5.2.6" = {
+    "@textlint/textlint-plugin-markdown-5.2.7" = {
       name = "_at_textlint_slash_textlint-plugin-markdown";
       packageName = "@textlint/textlint-plugin-markdown";
-      version = "5.2.6";
+      version = "5.2.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-5.2.6.tgz";
-        sha512 = "S65wy2npaBLT7pwPPlrN9Pw40hOJsxiW+T6peMJOFEMLRem5qlCIlT+02Wlf0Rrtr6/gKDckpphTUiZT1+xRnQ==";
+        url = "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-5.2.7.tgz";
+        sha512 = "GKx79nbsLwvDdyv98wnX2BSF83MKTM5j09OFJp2+wi2qrWO3U0+7YMILfdHDqyPfUk+osuy65BAFeq5jlXPomQ==";
       };
     };
-    "@textlint/textlint-plugin-text-4.2.6" = {
+    "@textlint/textlint-plugin-text-4.2.7" = {
       name = "_at_textlint_slash_textlint-plugin-text";
       packageName = "@textlint/textlint-plugin-text";
-      version = "4.2.6";
+      version = "4.2.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-4.2.6.tgz";
-        sha512 = "KCgb5GVjoEDIi37UpQN6kFciiouyATNYrj/JufCeLNJEcVcxSm12EoFRKjpXpXmTOVqZUyGnIDU797z1usAZDw==";
+        url = "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-4.2.7.tgz";
+        sha512 = "uMoASP8kIJrMqMJCXePvKSh0tOEuiQS9vFjH+kq2kS8/+Po6Wwgma9IdJsLWuSI8H4ufcvbozREuY+DceQAp/w==";
       };
     };
-    "@textlint/types-1.4.5" = {
+    "@textlint/types-1.4.6" = {
       name = "_at_textlint_slash_types";
       packageName = "@textlint/types";
-      version = "1.4.5";
+      version = "1.4.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/types/-/types-1.4.5.tgz";
-        sha512 = "7pA1rdiw1jsDNGwxupMC6fPlRNAHY6fKZ3s+jAY53o6RroOSR+5qO0sAjJ26lsSOhveH8imZzyyD08dk58IVJQ==";
+        url = "https://registry.npmjs.org/@textlint/types/-/types-1.4.6.tgz";
+        sha512 = "hoKPvIzNf+vI0goRk90HfsVUbXkAp4BfpvRxh51TGqVG27dlYrQJZkYheuUNUAwyj0Id09qzVwXno/xQPMYPcg==";
       };
     };
-    "@textlint/utils-1.1.4" = {
+    "@textlint/utils-1.1.5" = {
       name = "_at_textlint_slash_utils";
       packageName = "@textlint/utils";
-      version = "1.1.4";
+      version = "1.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/utils/-/utils-1.1.4.tgz";
-        sha512 = "KmU+kGi7vG5toUhNdLHHPxyVN1mNGcjMVe1tNDEXT1wU/3oqA96bunElrROWHYw5iNt1QVRaIAtNeMVyzyAdVA==";
+        url = "https://registry.npmjs.org/@textlint/utils/-/utils-1.1.5.tgz";
+        sha512 = "wv1m6yyaQpt1QrGKIUYwMoL5LLhDhXk05+pXg3i0+8PC8X95jNin10fSkxRMyXOsEqB6481GR3XgQ8Ia7DO1tg==";
       };
     };
     "@tokenizer/token-0.1.1" = {
@@ -5350,13 +5512,13 @@ let
         sha512 = "NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==";
       };
     };
-    "@types/babel__traverse-7.0.16" = {
+    "@types/babel__traverse-7.11.0" = {
       name = "_at_types_slash_babel__traverse";
       packageName = "@types/babel__traverse";
-      version = "7.0.16";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.16.tgz";
-        sha512 = "S63Dt4CZOkuTmpLGGWtT/mQdVORJOpx6SZWGVaP56dda/0Nx5nEe82K7/LAm8zYr6SfMq+1N2OreIOrHAx656w==";
+        url = "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz";
+        sha512 = "kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==";
       };
     };
     "@types/babylon-6.16.5" = {
@@ -5413,15 +5575,6 @@ let
         sha512 = "AQI7X+ow3SaONl44JrHoL/5B+lCsJyG31UHZ5RP98Uh15hI/zjEkDsAb4EIm4P9TGfNhZLXw/nMc5w0u10+/fQ==";
       };
     };
-    "@types/classnames-2.2.11" = {
-      name = "_at_types_slash_classnames";
-      packageName = "@types/classnames";
-      version = "2.2.11";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/classnames/-/classnames-2.2.11.tgz";
-        sha512 = "2koNhpWm3DgWRp5tpkiJ8JGc1xTn2q0l+jUNUE7oMKXUf5NpI9AIdC4kbjGNFBdHtcxBD18LAksoudAVhFKCjw==";
-      };
-    };
     "@types/clone-2.1.0" = {
       name = "_at_types_slash_clone";
       packageName = "@types/clone";
@@ -5449,13 +5602,13 @@ let
         sha1 = "cd1e8553633ad3185c3f2f239ecff5d2643e92b6";
       };
     };
-    "@types/connect-3.4.33" = {
+    "@types/connect-3.4.34" = {
       name = "_at_types_slash_connect";
       packageName = "@types/connect";
-      version = "3.4.33";
+      version = "3.4.34";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz";
-        sha512 = "2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==";
+        url = "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz";
+        sha512 = "ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==";
       };
     };
     "@types/content-disposition-0.5.3" = {
@@ -5485,13 +5638,13 @@ let
         sha512 = "t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog==";
       };
     };
-    "@types/cookies-0.7.5" = {
+    "@types/cookies-0.7.6" = {
       name = "_at_types_slash_cookies";
       packageName = "@types/cookies";
-      version = "0.7.5";
+      version = "0.7.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.5.tgz";
-        sha512 = "3+TAFSm78O7/bAeYdB8FoYGntuT87vVP9JKuQRL8sRhv9313LP2SpHHL50VeFtnyjIcb3UELddMk5Yt0eOSOkg==";
+        url = "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.6.tgz";
+        sha512 = "FK4U5Qyn7/Sc5ih233OuHO0qAkOpEcD/eG6584yEiLKizTFRny86qHLe/rej3HFQrkBuUjF4whFliAdODbVN/w==";
       };
     };
     "@types/cors-2.8.8" = {
@@ -5503,6 +5656,15 @@ let
         sha512 = "fO3gf3DxU2Trcbr75O7obVndW/X5k8rJNZkLXlQWStTHhP71PkRqjwPIEI0yMnJdg9R9OasjU+Bsr+Hr1xy/0w==";
       };
     };
+    "@types/cors-2.8.9" = {
+      name = "_at_types_slash_cors";
+      packageName = "@types/cors";
+      version = "2.8.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/cors/-/cors-2.8.9.tgz";
+        sha512 = "zurD1ibz21BRlAOIKP8yhrxlqKx6L9VCwkB5kMiP6nZAhoF5MvC7qS1qPA7nRcr1GJolfkQC7/EAL4hdYejLtg==";
+      };
+    };
     "@types/debug-0.0.30" = {
       name = "_at_types_slash_debug";
       packageName = "@types/debug";
@@ -5539,6 +5701,15 @@ let
         sha512 = "Lo5dy3ai6LNnbL663sgdzqL1eib11u1yKH6w3v3IXEOO4kRfQpMn1qWUTaumcHLACjFp1RcBx9tUXEvJoR3vcA==";
       };
     };
+    "@types/duplexify-3.6.0" = {
+      name = "_at_types_slash_duplexify";
+      packageName = "@types/duplexify";
+      version = "3.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/duplexify/-/duplexify-3.6.0.tgz";
+        sha512 = "5zOA53RUlzN74bvrSGwjudssD9F3a797sDZQkiYpUOxW+WHaXTCPz4/d5Dgi6FKnOqZ2CpaTo0DhgIfsXAOE/A==";
+      };
+    };
     "@types/ejs-2.7.0" = {
       name = "_at_types_slash_ejs";
       packageName = "@types/ejs";
@@ -5629,31 +5800,13 @@ let
         sha512 = "wLhcKh3PMlyA2cNAB9sjM1BntnhPMiM0JOBwPBqttjHev2428MLEB4AYVN+d8s2iyCVZac+o41Pflm/ZH5vLXQ==";
       };
     };
-    "@types/express-4.17.9" = {
-      name = "_at_types_slash_express";
-      packageName = "@types/express";
-      version = "4.17.9";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/express/-/express-4.17.9.tgz";
-        sha512 = "SDzEIZInC4sivGIFY4Sz1GG6J9UObPwCInYJjko2jzOf/Imx/dlpume6Xxwj1ORL82tBbmN4cPDIDkLbWHk9hw==";
-      };
-    };
-    "@types/express-serve-static-core-4.17.13" = {
-      name = "_at_types_slash_express-serve-static-core";
-      packageName = "@types/express-serve-static-core";
-      version = "4.17.13";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.13.tgz";
-        sha512 = "RgDi5a4nuzam073lRGKTUIaL3eF2+H7LJvJ8eUnCI0wA6SNjXc44DCmWNiTLs/AZ7QlsFWZiw/gTG3nSQGL0fA==";
-      };
-    };
-    "@types/express-serve-static-core-4.17.14" = {
+    "@types/express-serve-static-core-4.17.17" = {
       name = "_at_types_slash_express-serve-static-core";
       packageName = "@types/express-serve-static-core";
-      version = "4.17.14";
+      version = "4.17.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.14.tgz";
-        sha512 = "uFTLwu94TfUFMToXNgRZikwPuZdOtDgs3syBtAIr/OXorL1kJqUJT9qCLnRZ5KBOWfZQikQ2xKgR2tnDj1OgDA==";
+        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.17.tgz";
+        sha512 = "YYlVaCni5dnHc+bLZfY908IG1+x5xuibKZMGv8srKkvtul3wUuanYvpIj9GXXoWkQbaAdR+kgX46IETKUALWNQ==";
       };
     };
     "@types/fancy-log-1.3.0" = {
@@ -5854,13 +6007,13 @@ let
         sha512 = "P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==";
       };
     };
-    "@types/jquery-3.5.4" = {
+    "@types/jquery-3.5.5" = {
       name = "_at_types_slash_jquery";
       packageName = "@types/jquery";
-      version = "3.5.4";
+      version = "3.5.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.4.tgz";
-        sha512 = "//9CHhaUt/rurMJTxGI+I6DmsNHgYU6d8aSLFfO5dB7+10lwLnaWT0z5GY/yY82Q/M+B+0Qh3TixlJ8vmBeqIw==";
+        url = "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.5.tgz";
+        sha512 = "6RXU9Xzpc6vxNrS6FPPapN1SxSHgQ336WC6Jj/N8q30OiaBZ00l1GBgeP7usjVZPivSkGUfL1z/WW6TX989M+w==";
       };
     };
     "@types/js-yaml-3.12.5" = {
@@ -5953,13 +6106,13 @@ let
         sha512 = "EP6O3Jkr7bXvZZSZYlsgt5DIjiGr0dXP1/jVEwVLTFgg0d+3lWVQkRavYVQszV7dYUwvg0B8R0MBDpcmXg7XIA==";
       };
     };
-    "@types/lodash-4.14.165" = {
+    "@types/lodash-4.14.167" = {
       name = "_at_types_slash_lodash";
       packageName = "@types/lodash";
-      version = "4.14.165";
+      version = "4.14.167";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.165.tgz";
-        sha512 = "tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg==";
+        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.167.tgz";
+        sha512 = "w7tQPjARrvdeBkX/Rwg95S592JwxqOjmms3zWQ0XZgSyxSLdzWaYH3vErBhdVS/lRBX7F8aBYcYJYTr5TMGOzw==";
       };
     };
     "@types/long-4.0.1" = {
@@ -6088,13 +6241,22 @@ let
         sha512 = "fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==";
       };
     };
-    "@types/node-10.17.48" = {
+    "@types/node-10.17.50" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "10.17.50";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-10.17.50.tgz";
+        sha512 = "vwX+/ija9xKc/z9VqMCdbf4WYcMTGsI0I/L/6shIF3qXURxZOhPQlPRHtjTpiNhAwn0paMJzlOQqw6mAGEQnTA==";
+      };
+    };
+    "@types/node-12.19.11" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "10.17.48";
+      version = "12.19.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-10.17.48.tgz";
-        sha512 = "Agl6xbYP6FOMDeAsr3QVZ+g7Yzg0uhPHWx0j5g4LFdUBHVtqtU+gH660k/lCEe506jJLOGbEzsnqPDTZGJQLag==";
+        url = "https://registry.npmjs.org/@types/node/-/node-12.19.11.tgz";
+        sha512 = "bwVfNTFZOrGXyiQ6t4B9sZerMSShWNsGRw8tC5DY1qImUNczS9SjT4G6PnzjCnxsu5Ubj6xjL2lgwddkxtQl5w==";
       };
     };
     "@types/node-12.7.12" = {
@@ -6106,13 +6268,13 @@ let
         sha512 = "KPYGmfD0/b1eXurQ59fXD1GBzhSQfz6/lKBxkaHX9dKTzjXbK68Zt7yGUxUsCS1jeTy/8aL+d9JEr+S54mpkWQ==";
       };
     };
-    "@types/node-13.13.34" = {
+    "@types/node-13.13.38" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "13.13.34";
+      version = "13.13.38";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-13.13.34.tgz";
-        sha512 = "g8D1HF2dMDKYSDl5+79izRwRgNPsSynmWMbj50mj7GZ0b7Lv4p8EmZjbo3h0h+6iLr6YmVz9VnF6XVZ3O6V1Ug==";
+        url = "https://registry.npmjs.org/@types/node/-/node-13.13.38.tgz";
+        sha512 = "oxo8j9doh7ab9NwDA9bCeFfjHRF/uzk+fTljCy8lMjZ3YzZGAXNDKhTE3Byso/oy32UTUQIXB3HCVHu3d2T3xg==";
       };
     };
     "@types/node-14.11.1" = {
@@ -6124,13 +6286,13 @@ let
         sha512 = "oTQgnd0hblfLsJ6BvJzzSL+Inogp3lq9fGgqRkMB/ziKMgEUaFl801OncOzUmalfzt14N0oPHMK47ipl+wbTIw==";
       };
     };
-    "@types/node-14.14.10" = {
+    "@types/node-14.14.19" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "14.14.10";
+      version = "14.14.19";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz";
-        sha512 = "J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==";
+        url = "https://registry.npmjs.org/@types/node/-/node-14.14.19.tgz";
+        sha512 = "4nhBPStMK04rruRVtVc6cDqhu7S9GZai0fpXgPXrFpcPX6Xul8xnrjSdGB4KPBVYG/R5+fXWdCM8qBoiULWGPQ==";
       };
     };
     "@types/node-6.14.13" = {
@@ -6241,6 +6403,15 @@ let
         sha512 = "ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==";
       };
     };
+    "@types/readline-sync-1.4.3" = {
+      name = "_at_types_slash_readline-sync";
+      packageName = "@types/readline-sync";
+      version = "1.4.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/readline-sync/-/readline-sync-1.4.3.tgz";
+        sha512 = "YP9NVli96E+qQLAF2db+VjnAUEeZcFVg4YnMgr8kpDUFwQBnj31rPLOVHmazbKQhaIkJ9cMHsZhpKdzUeL0KTg==";
+      };
+    };
     "@types/request-2.48.5" = {
       name = "_at_types_slash_request";
       packageName = "@types/request";
@@ -6448,6 +6619,15 @@ let
         sha512 = "awrJu8yML4E/xTwr2EMatC+HBnHGoDxc2+ImA9QyeUELI1S7dOCIZcyjki1rkwoA8P2D2NVgLAJLjnclkdLtAw==";
       };
     };
+    "@types/uuid-8.3.0" = {
+      name = "_at_types_slash_uuid";
+      packageName = "@types/uuid";
+      version = "8.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.0.tgz";
+        sha512 = "eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ==";
+      };
+    };
     "@types/vfile-3.0.2" = {
       name = "_at_types_slash_vfile";
       packageName = "@types/vfile";
@@ -6466,13 +6646,13 @@ let
         sha512 = "GpTIuDpb9u4zIO165fUy9+fXcULdD8HFRNli04GehoMVbeNq7D6OBnqSmg3lxZnC+UvgUhEWKxdKiwYUkGltIw==";
       };
     };
-    "@types/vscode-1.51.0" = {
+    "@types/vscode-1.52.0" = {
       name = "_at_types_slash_vscode";
       packageName = "@types/vscode";
-      version = "1.51.0";
+      version = "1.52.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/vscode/-/vscode-1.51.0.tgz";
-        sha512 = "C/jZ35OT5k/rsJyAK8mS1kM++vMcm89oSWegkzxRCvHllIq0cToZAkIDs6eCY4SKrvik3nrhELizyLcM0onbQA==";
+        url = "https://registry.npmjs.org/@types/vscode/-/vscode-1.52.0.tgz";
+        sha512 = "Kt3bvWzAvvF/WH9YEcrCICDp0Z7aHhJGhLJ1BxeyNP6yRjonWqWnAIh35/pXAjswAnWOABrYlF7SwXR9+1nnLA==";
       };
     };
     "@types/webpack-4.41.25" = {
@@ -6520,22 +6700,22 @@ let
         sha512 = "NRqD6T4gktUrDi1o1wLH3EKC1o2caCr7/wR87ODcbVITQF106OM3sFN92ysZ++wqelOd1CTzatnOBRDYYG6wGQ==";
       };
     };
-    "@types/yargs-15.0.11" = {
+    "@types/yargs-15.0.12" = {
       name = "_at_types_slash_yargs";
       packageName = "@types/yargs";
-      version = "15.0.11";
+      version = "15.0.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.11.tgz";
-        sha512 = "jfcNBxHFYJ4nPIacsi3woz1+kvUO6s1CyeEhtnDHBjHUMNj5UlW2GynmnSgiJJEdNg9yW5C8lfoNRZrHGv5EqA==";
+        url = "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.12.tgz";
+        sha512 = "f+fD/fQAo3BCbCDlrUpznF1A5Zp9rB0noS5vnoormHSIPFKL0Z2DcUJ3Gxp5ytH4uLRNxy7AwYUC9exZzqGMAw==";
       };
     };
-    "@types/yargs-parser-15.0.0" = {
+    "@types/yargs-parser-20.2.0" = {
       name = "_at_types_slash_yargs-parser";
       packageName = "@types/yargs-parser";
-      version = "15.0.0";
+      version = "20.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz";
-        sha512 = "FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==";
+        url = "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz";
+        sha512 = "37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==";
       };
     };
     "@types/yauzl-2.9.1" = {
@@ -6556,13 +6736,13 @@ let
         sha512 = "S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==";
       };
     };
-    "@types/zen-observable-0.8.1" = {
+    "@types/zen-observable-0.8.2" = {
       name = "_at_types_slash_zen-observable";
       packageName = "@types/zen-observable";
-      version = "0.8.1";
+      version = "0.8.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.1.tgz";
-        sha512 = "wmk0xQI6Yy7Fs/il4EpOcflG4uonUpYGqvZARESLc2oy4u69fkatFLbJOeW4Q6awO15P4rduAe6xkwHevpXcUQ==";
+        url = "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.2.tgz";
+        sha512 = "HrCIVMLjE1MOozVoD86622S7aunluLb2PJdPfb3nYiEtohm8mIB/vyv0Fd37AdeMFrTUQXEunw78YloMA3Qilg==";
       };
     };
     "@typescript-eslint/eslint-plugin-3.10.1" = {
@@ -6763,76 +6943,76 @@ let
         sha512 = "mFdUlfDGxoyreCQWO/SX4DvM/6epn37AimVGzLJLpSPJdWUerCnvxwzB6zL83SiYC6O6++cWEdzgz7EtKViFlA==";
       };
     };
-    "@vue/compiler-core-3.0.4" = {
+    "@vue/compiler-core-3.0.5" = {
       name = "_at_vue_slash_compiler-core";
       packageName = "@vue/compiler-core";
-      version = "3.0.4";
+      version = "3.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.4.tgz";
-        sha512 = "snpMICsbWTZqBFnPB03qr4DtiSxVYfDF3DvbDSkN9Z9NTM8Chl8E/lYhKBSsvauq91DAWAh8PU3lr9vrLyQsug==";
+        url = "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.5.tgz";
+        sha512 = "iFXwk2gmU/GGwN4hpBwDWWMLvpkIejf/AybcFtlQ5V1ur+5jwfBaV0Y1RXoR6ePfBPJixtKZ3PmN+M+HgMAtfQ==";
       };
     };
-    "@vue/compiler-dom-3.0.4" = {
+    "@vue/compiler-dom-3.0.5" = {
       name = "_at_vue_slash_compiler-dom";
       packageName = "@vue/compiler-dom";
-      version = "3.0.4";
+      version = "3.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.4.tgz";
-        sha512 = "FOxbHBIkkGjYQeTz1DlXQjS1Ms8EPXQWsdTdTPeohoS0KzCz6RiOjiAG+jLtMi6Nr5GX2h0TlCvcnI8mcsicFQ==";
+        url = "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.5.tgz";
+        sha512 = "HSOSe2XSPuCkp20h4+HXSiPH9qkhz6YbW9z9ZtL5vef2T2PMugH7/osIFVSrRZP/Ul5twFZ7MIRlp8tPX6e4/g==";
       };
     };
-    "@vue/compiler-sfc-3.0.4" = {
+    "@vue/compiler-sfc-3.0.5" = {
       name = "_at_vue_slash_compiler-sfc";
       packageName = "@vue/compiler-sfc";
-      version = "3.0.4";
+      version = "3.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.0.4.tgz";
-        sha512 = "brDn6HTuK6R3oBCjtMPPsIpyJEZFinlnxjtBXww/goFJOJBAU9CrsdegwyZItNnixCFUIg4CLv4Nj1Eg/eKlfg==";
+        url = "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.0.5.tgz";
+        sha512 = "uOAC4X0Gx3SQ9YvDC7YMpbDvoCmPvP0afVhJoxRotDdJ+r8VO3q4hFf/2f7U62k4Vkdftp6DVni8QixrfYzs+w==";
       };
     };
-    "@vue/compiler-ssr-3.0.4" = {
+    "@vue/compiler-ssr-3.0.5" = {
       name = "_at_vue_slash_compiler-ssr";
       packageName = "@vue/compiler-ssr";
-      version = "3.0.4";
+      version = "3.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.0.4.tgz";
-        sha512 = "4aYWQEL4+LS4+D44K9Z7xMOWMEjBsz4Li9nMcj2rxRQ35ewK6uFPodvs6ORP60iBDSkwUFZoldFlNemQlu1BFw==";
+        url = "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.0.5.tgz";
+        sha512 = "Wm//Kuxa1DpgjE4P9W0coZr8wklOfJ35Jtq61CbU+t601CpPTK4+FL2QDBItaG7aoUUDCWL5nnxMkuaOgzTBKg==";
       };
     };
-    "@vue/reactivity-3.0.4" = {
+    "@vue/reactivity-3.0.5" = {
       name = "_at_vue_slash_reactivity";
       packageName = "@vue/reactivity";
-      version = "3.0.4";
+      version = "3.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.0.4.tgz";
-        sha512 = "AFTABrLhUYZY2on3ea9FxeXal7w3f6qIp9gT+/oG93H7dFTL5LvVnxygCopv7tvkIl/GSGQb/yK1D1gmXx1Pww==";
+        url = "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.0.5.tgz";
+        sha512 = "3xodUE3sEIJgS7ntwUbopIpzzvi7vDAOjVamfb2l+v1FUg0jpd3gf62N2wggJw3fxBMr+QvyxpD+dBoxLsmAjw==";
       };
     };
-    "@vue/runtime-core-3.0.4" = {
+    "@vue/runtime-core-3.0.5" = {
       name = "_at_vue_slash_runtime-core";
       packageName = "@vue/runtime-core";
-      version = "3.0.4";
+      version = "3.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.0.4.tgz";
-        sha512 = "qH9e4kqU7b3u1JewvLmGmoAGY+mnuBqz7aEKb2mhpEgwa1yFv496BRuUfMXXMCix3+TndUVMJ8jt41FSdNppwg==";
+        url = "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.0.5.tgz";
+        sha512 = "Cnyi2NqREwOLcTEsIi1DQX1hHtkVj4eGm4hBG7HhokS05DqpK4/80jG6PCCnCH9rIJDB2FqtaODX397210plXg==";
       };
     };
-    "@vue/runtime-dom-3.0.4" = {
+    "@vue/runtime-dom-3.0.5" = {
       name = "_at_vue_slash_runtime-dom";
       packageName = "@vue/runtime-dom";
-      version = "3.0.4";
+      version = "3.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.0.4.tgz";
-        sha512 = "BGIoiTSESzWUhN0Ofi2X/q+HN8f6IUFmUEyyBGKbmx7DTAJNZhFfjqsepfXQrM5IGeTfJLB1ZEVyroDQJNXq3g==";
+        url = "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.0.5.tgz";
+        sha512 = "iilX1KySeIzHHtErT6Y44db1rhWK5tAI0CiJIPr+SJoZ2jbjoOSE6ff/jfIQakchbm1d6jq6VtRVnp5xYdOXKA==";
       };
     };
-    "@vue/shared-3.0.4" = {
+    "@vue/shared-3.0.5" = {
       name = "_at_vue_slash_shared";
       packageName = "@vue/shared";
-      version = "3.0.4";
+      version = "3.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/shared/-/shared-3.0.4.tgz";
-        sha512 = "Swfbz31AaMX48CpFl+YmIrqOH9MgJMTrltG9e26A4ZxYx9LjGuMV+41WnxFzS3Bc9nbrc6sDPM37G6nIT8NJSg==";
+        url = "https://registry.npmjs.org/@vue/shared/-/shared-3.0.5.tgz";
+        sha512 = "gYsNoGkWejBxNO6SNRjOh/xKeZ0H0V+TFzaPzODfBjkAIb0aQgBuixC1brandC/CDJy1wYPwSoYrXpvul7m6yw==";
       };
     };
     "@webassemblyjs/ast-1.8.1" = {
@@ -6934,6 +7114,15 @@ let
         sha512 = "qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==";
       };
     };
+    "@webassemblyjs/helper-buffer-1.9.1" = {
+      name = "_at_webassemblyjs_slash_helper-buffer";
+      packageName = "@webassemblyjs/helper-buffer";
+      version = "1.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.1.tgz";
+        sha512 = "uS6VSgieHbk/m4GSkMU5cqe/5TekdCzQso4revCIEQ3vpGZgqSSExi4jWpTWwDpAHOIAb1Jfrs0gUB9AA4n71w==";
+      };
+    };
     "@webassemblyjs/helper-code-frame-1.8.1" = {
       name = "_at_webassemblyjs_slash_helper-code-frame";
       packageName = "@webassemblyjs/helper-code-frame";
@@ -7078,6 +7267,15 @@ let
         sha512 = "XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==";
       };
     };
+    "@webassemblyjs/helper-wasm-section-1.9.1" = {
+      name = "_at_webassemblyjs_slash_helper-wasm-section";
+      packageName = "@webassemblyjs/helper-wasm-section";
+      version = "1.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.1.tgz";
+        sha512 = "FetqzjtXZr2d57IECK+aId3D0IcGweeM0CbAnJHkYJkcRTHP+YcMb7Wmc0j21h5UWBpwYGb9dSkK/93SRCTrGg==";
+      };
+    };
     "@webassemblyjs/ieee754-1.8.1" = {
       name = "_at_webassemblyjs_slash_ieee754";
       packageName = "@webassemblyjs/ieee754";
@@ -7177,6 +7375,15 @@ let
         sha512 = "FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==";
       };
     };
+    "@webassemblyjs/wasm-edit-1.9.1" = {
+      name = "_at_webassemblyjs_slash_wasm-edit";
+      packageName = "@webassemblyjs/wasm-edit";
+      version = "1.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.1.tgz";
+        sha512 = "S2IaD6+x9B2Xi8BCT0eGsrXXd8UxAh2LVJpg1ZMtHXnrDcsTtIX2bDjHi40Hio6Lc62dWHmKdvksI+MClCYbbw==";
+      };
+    };
     "@webassemblyjs/wasm-gen-1.8.1" = {
       name = "_at_webassemblyjs_slash_wasm-gen";
       packageName = "@webassemblyjs/wasm-gen";
@@ -7195,6 +7402,15 @@ let
         sha512 = "cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==";
       };
     };
+    "@webassemblyjs/wasm-gen-1.9.1" = {
+      name = "_at_webassemblyjs_slash_wasm-gen";
+      packageName = "@webassemblyjs/wasm-gen";
+      version = "1.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.1.tgz";
+        sha512 = "bqWI0S4lBQsEN5FTZ35vYzfKUJvtjNnBobB1agCALH30xNk1LToZ7Z8eiaR/Z5iVECTlBndoRQV3F6mbEqE/fg==";
+      };
+    };
     "@webassemblyjs/wasm-opt-1.9.0" = {
       name = "_at_webassemblyjs_slash_wasm-opt";
       packageName = "@webassemblyjs/wasm-opt";
@@ -7204,6 +7420,15 @@ let
         sha512 = "Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==";
       };
     };
+    "@webassemblyjs/wasm-opt-1.9.1" = {
+      name = "_at_webassemblyjs_slash_wasm-opt";
+      packageName = "@webassemblyjs/wasm-opt";
+      version = "1.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.1.tgz";
+        sha512 = "gSf7I7YWVXZ5c6XqTEqkZjVs8K1kc1k57vsB6KBQscSagDNbAdxt6MwuJoMjsE1yWY1tsuL+pga268A6u+Fdkg==";
+      };
+    };
     "@webassemblyjs/wasm-parser-1.8.1" = {
       name = "_at_webassemblyjs_slash_wasm-parser";
       packageName = "@webassemblyjs/wasm-parser";
@@ -7285,22 +7510,22 @@ let
         sha512 = "tDV8V15wm7mmbAH6XvQRU1X+oPGmeOzYsd6h7hlRLz6QpV4Ec/KKxM8OpLtFmQPLCreGxTp+HuxtH4pRIZyL9w==";
       };
     };
-    "@webpack-cli/info-1.1.0" = {
+    "@webpack-cli/info-1.2.1" = {
       name = "_at_webpack-cli_slash_info";
       packageName = "@webpack-cli/info";
-      version = "1.1.0";
+      version = "1.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webpack-cli/info/-/info-1.1.0.tgz";
-        sha512 = "uNWSdaYHc+f3LdIZNwhdhkjjLDDl3jP2+XBqAq9H8DjrJUvlOKdP8TNruy1yEaDfgpAIgbSAN7pye4FEHg9tYQ==";
+        url = "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.1.tgz";
+        sha512 = "fLnDML5HZ5AEKzHul8xLAksoKN2cibu6MgonkUj8R9V7bbeVRkd1XbGEGWrAUNYHbX1jcqCsDEpBviE5StPMzQ==";
       };
     };
-    "@webpack-cli/serve-1.1.0" = {
+    "@webpack-cli/serve-1.2.1" = {
       name = "_at_webpack-cli_slash_serve";
       packageName = "@webpack-cli/serve";
-      version = "1.1.0";
+      version = "1.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.1.0.tgz";
-        sha512 = "7RfnMXCpJ/NThrhq4gYQYILB18xWyoQcBey81oIyVbmgbc6m5ZHHyFK+DyH7pLHJf0p14MxL4mTsoPAgBSTpIg==";
+        url = "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.2.1.tgz";
+        sha512 = "Zj1z6AyS+vqV6Hfi7ngCjFGdHV5EwZNIHo6QfFTNe9PyW+zBU1zJ9BiOW1pmUEq950RC4+Dym6flyA/61/vhyw==";
       };
     };
     "@wry/context-0.4.4" = {
@@ -7744,22 +7969,22 @@ let
         sha1 = "f291be701a2efc567a63fc7aa6afcded31430be1";
       };
     };
-    "addons-linter-2.12.0" = {
+    "addons-linter-2.13.1" = {
       name = "addons-linter";
       packageName = "addons-linter";
-      version = "2.12.0";
+      version = "2.13.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/addons-linter/-/addons-linter-2.12.0.tgz";
-        sha512 = "Kv2Joa81UfxCWHYK13G9ZNKb/z5cJP1TlshCh9vA2dBH55szabIN+yIxujgNCIg2/k/wDya3OihBmyFNkFmFkw==";
+        url = "https://registry.npmjs.org/addons-linter/-/addons-linter-2.13.1.tgz";
+        sha512 = "OWMuABpZRNeru38oOjn7QYOF0JOXJQXG9c3r4ILTRwTBeSu3LtfgCh9/7zLVgTYPbTs7Qy6h23u4Sel65uSnUQ==";
       };
     };
-    "addons-scanner-utils-3.0.0" = {
+    "addons-scanner-utils-4.0.0" = {
       name = "addons-scanner-utils";
       packageName = "addons-scanner-utils";
-      version = "3.0.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-3.0.0.tgz";
-        sha512 = "bX8Sx5iwvG9bHZrfP4xv+3xFU93Mk6WnBmIHm+ep4DEiqUunRRpbrs7uEgAnlWnqC46VnrFsOJdCB/MY+pHG1g==";
+        url = "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-4.0.0.tgz";
+        sha512 = "+BfePzqoo/7Nhum9LONGsga2xhNJYb+6k6j819pzcd2tqaaqDUJu+3lz4CQQYFcD8QoolB3ksfZcCPymleFq0A==";
       };
     };
     "addr-to-ip-port-1.5.1" = {
@@ -7969,6 +8194,15 @@ let
         sha512 = "LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==";
       };
     };
+    "ajv-7.0.3" = {
+      name = "ajv";
+      packageName = "ajv";
+      version = "7.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz";
+        sha512 = "R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==";
+      };
+    };
     "ajv-errors-1.0.1" = {
       name = "ajv-errors";
       packageName = "ajv-errors";
@@ -8356,6 +8590,15 @@ let
         sha512 = "zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==";
       };
     };
+    "ansi-styles-5.0.0" = {
+      name = "ansi-styles";
+      packageName = "ansi-styles";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.0.0.tgz";
+        sha512 = "6564t0m0fuQMnockqBv7wJxo9T5C2V9JpYXyNScfRDPVLusOQQhkpMGrFC17QbiolraQ1sMXX+Y5nJpjqozL4g==";
+      };
+    };
     "ansi-term-0.0.2" = {
       name = "ansi-term";
       packageName = "ansi-term";
@@ -8410,6 +8653,15 @@ let
         sha512 = "/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==";
       };
     };
+    "any-observable-0.5.1" = {
+      name = "any-observable";
+      packageName = "any-observable";
+      version = "0.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/any-observable/-/any-observable-0.5.1.tgz";
+        sha512 = "8zv01bgDOp9PTmRTNCAHTw64TFP2rvlX4LvtNJLachaXY+AjmIvLT47fABNPCiIe89hKiSCo2n5zmPqI9CElPA==";
+      };
+    };
     "any-promise-1.3.0" = {
       name = "any-promise";
       packageName = "any-promise";
@@ -8473,13 +8725,13 @@ let
         sha512 = "sbLEIMQrkV7RkIruqTPXxeCMkAAycv4yzTkBzRgOR1BrR5UB7qZtupqxkersTJSf0HZ3sbaNRrNV80TnnM7cUw==";
       };
     };
-    "apollo-2.31.2" = {
+    "apollo-2.32.0" = {
       name = "apollo";
       packageName = "apollo";
-      version = "2.31.2";
+      version = "2.32.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo/-/apollo-2.31.2.tgz";
-        sha512 = "LzN1DplRDBZf+5+UIEnINU62iEZx9kX16MbFNOZWj4LeGRRNHacv+QzdcNLRdWvtySCrFdS0MA4NyDQ48kRELw==";
+        url = "https://registry.npmjs.org/apollo/-/apollo-2.32.0.tgz";
+        sha512 = "6Wmt9OUYUET3JSQvAS6qgNP+vomf3P5zANARXDhqJ59c0/hAsXhdAvGaFFba+JhRRvyIVBOmaOpB880aNZeadg==";
       };
     };
     "apollo-cache-1.3.5" = {
@@ -8491,13 +8743,13 @@ let
         sha512 = "1XoDy8kJnyWY/i/+gLTEbYLnoiVtS8y7ikBr/IfmML4Qb+CM7dEEbIUOjnY716WqmZ/UpXIxTfJsY7rMcqiCXA==";
       };
     };
-    "apollo-cache-control-0.11.4" = {
+    "apollo-cache-control-0.11.5" = {
       name = "apollo-cache-control";
       packageName = "apollo-cache-control";
-      version = "0.11.4";
+      version = "0.11.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.4.tgz";
-        sha512 = "FUKE8ASr8GxVq5rmky/tY8bsf++cleGT591lfLiqnPsP1fo3kAfgRfWA2QRHTCKFNlQxzUhVOEDv+PaysqiOjw==";
+        url = "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.5.tgz";
+        sha512 = "jvarfQhwDRazpOsmkt5Pd7qGFrtbL70zMbUZGqDhJSYpfqI672f7bXXc7O3vtpbD3qnS3XTBvK2kspX/Bdo0IA==";
       };
     };
     "apollo-cache-inmemory-1.6.6" = {
@@ -8518,49 +8770,49 @@ let
         sha512 = "jiPlMTN6/5CjZpJOkGeUV0mb4zxx33uXWdj/xQCfAMkuNAC3HN7CvYDyMHHEzmcQ5GV12LszWoQ/VlxET24CtA==";
       };
     };
-    "apollo-codegen-core-0.38.2" = {
+    "apollo-codegen-core-0.39.0" = {
       name = "apollo-codegen-core";
       packageName = "apollo-codegen-core";
-      version = "0.38.2";
+      version = "0.39.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-core/-/apollo-codegen-core-0.38.2.tgz";
-        sha512 = "tg9HUW9q2b4B+u6Ea6HMjHQsarSLlXRc/AVOoB0X2hRd21OZPqwf7CQYcuur6YQEOAM95JO7E3ExtNwReEkhJw==";
+        url = "https://registry.npmjs.org/apollo-codegen-core/-/apollo-codegen-core-0.39.0.tgz";
+        sha512 = "b+RD8jerDMih2vf73hodOQAx4UODy1l053/Mdr4uIBlDbaF6OA4Q8TbTbH4k7tDzyAoL2pjH5v8AtlU8viIKwg==";
       };
     };
-    "apollo-codegen-flow-0.36.2" = {
+    "apollo-codegen-flow-0.37.0" = {
       name = "apollo-codegen-flow";
       packageName = "apollo-codegen-flow";
-      version = "0.36.2";
+      version = "0.37.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-flow/-/apollo-codegen-flow-0.36.2.tgz";
-        sha512 = "7/vlCOZl3mS+A59W4Lcgb5jHv0SwyhDekQeFr5Gf1MEHf/+n5xCdV7dlXmKtGmBhuynQz/pnZk/kKqIbHhGpAw==";
+        url = "https://registry.npmjs.org/apollo-codegen-flow/-/apollo-codegen-flow-0.37.0.tgz";
+        sha512 = "VWB++9ObUQx+Y1JPdgrkdkjPichsgXhYfz5w5HSKvare7SlkxEZFOzSXi9/bUAC3gry3B/38do1srDHtXZ366g==";
       };
     };
-    "apollo-codegen-scala-0.37.2" = {
+    "apollo-codegen-scala-0.38.0" = {
       name = "apollo-codegen-scala";
       packageName = "apollo-codegen-scala";
-      version = "0.37.2";
+      version = "0.38.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-scala/-/apollo-codegen-scala-0.37.2.tgz";
-        sha512 = "iE1W07GLFMR23qqmCG/+iawwcV1dprX9S/xGKn3ylruPhMBVdkImv3jFuLgvsm69tUc7KGKW+42CiEMZOmsK6g==";
+        url = "https://registry.npmjs.org/apollo-codegen-scala/-/apollo-codegen-scala-0.38.0.tgz";
+        sha512 = "oQAV65ZGaFGeNpxVVnZLh2kyBKfA6QzSeyosDp0HKxeXOGQ84dHJg1zGiN0oWXELBM2MqPtwWSGFYgnk3CNeHg==";
       };
     };
-    "apollo-codegen-swift-0.38.2" = {
+    "apollo-codegen-swift-0.39.0" = {
       name = "apollo-codegen-swift";
       packageName = "apollo-codegen-swift";
-      version = "0.38.2";
+      version = "0.39.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-swift/-/apollo-codegen-swift-0.38.2.tgz";
-        sha512 = "rc6bBvBSOmV5NEk3T3/QDG7ThEbkKJ8/yILOWu1/YolOCgJgngZdzBOQ8EQOYbBX5gwEMRFV1HekAVQ8PLWpJg==";
+        url = "https://registry.npmjs.org/apollo-codegen-swift/-/apollo-codegen-swift-0.39.0.tgz";
+        sha512 = "fFaR8g62jjYS6QFW354ONcMHJNesy5EtCvYKsR9Sb1eBoLTx/6NkeMiGO28PIIk7bEw7FKMrzQE2UVNSeZbMxQ==";
       };
     };
-    "apollo-codegen-typescript-0.38.2" = {
+    "apollo-codegen-typescript-0.39.0" = {
       name = "apollo-codegen-typescript";
       packageName = "apollo-codegen-typescript";
-      version = "0.38.2";
+      version = "0.39.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-typescript/-/apollo-codegen-typescript-0.38.2.tgz";
-        sha512 = "cK2PAoI7tZV9jsaP8gxVzv9fQiJAeNcRq62mDA12uD9yO0/wUHgetdISILPfPAgVCIwHGmBpke+ApJRBrK5i4w==";
+        url = "https://registry.npmjs.org/apollo-codegen-typescript/-/apollo-codegen-typescript-0.39.0.tgz";
+        sha512 = "/clemyhTd+s+b4HoMa72zjWir4QrDqjcN4tnSpQYXSsOFO4e4kWlxSj0zrtyYkcx/Gqod9UrPSSsx2CZHyB37A==";
       };
     };
     "apollo-datasource-0.7.2" = {
@@ -8590,13 +8842,13 @@ let
         sha512 = "BxTf5LOQe649e9BNTPdyCGItVv4Ll8wZ2BKnmiYpRAocYEXAVrQPWuSr3dO4iipqAU8X0gvle/Xu9mSqg5b7Qg==";
       };
     };
-    "apollo-language-server-1.24.1" = {
+    "apollo-language-server-1.25.0" = {
       name = "apollo-language-server";
       packageName = "apollo-language-server";
-      version = "1.24.1";
+      version = "1.25.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-language-server/-/apollo-language-server-1.24.1.tgz";
-        sha512 = "2LYW/pWWBkG0/BggMedZ3EEHAQIKFc9PxHroxKhXh2Y5SXha4yQmmFILloQFrA6z7fU39IF6Tudgt5yNw2Cw/w==";
+        url = "https://registry.npmjs.org/apollo-language-server/-/apollo-language-server-1.25.0.tgz";
+        sha512 = "k6weI4Jd64LzMO9aGHqPWUmifBy0TDxW15BkU4GLmVTi7pBSYPhwOVP8Haa+81FG2ZO2CCEv8J0VQHTv5Z8itA==";
       };
     };
     "apollo-link-1.2.1" = {
@@ -8680,13 +8932,13 @@ let
         sha512 = "mjSFPlQxmoLArpHBeUb2Xj+2HDYeTaJqFGOqQ+I8NVJxgL9lJe84PDWcPah/yMLv3rB7QgBDSuZ0xoRFBPlySw==";
       };
     };
-    "apollo-reporting-protobuf-0.6.1" = {
+    "apollo-reporting-protobuf-0.6.2" = {
       name = "apollo-reporting-protobuf";
       packageName = "apollo-reporting-protobuf";
-      version = "0.6.1";
+      version = "0.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-0.6.1.tgz";
-        sha512 = "qr4DheFP154PGZsd93SSIS9RkqHnR5b6vT+eCloWjy3UIpY+yZ3cVLlttlIjYvOG4xTJ25XEwcHiAExatQo/7g==";
+        url = "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-0.6.2.tgz";
+        sha512 = "WJTJxLM+MRHNUxt1RTl4zD0HrLdH44F2mDzMweBj1yHL0kSt8I1WwoiF/wiGVSpnG48LZrBegCaOJeuVbJTbtw==";
       };
     };
     "apollo-server-caching-0.5.2" = {
@@ -8698,13 +8950,13 @@ let
         sha512 = "HUcP3TlgRsuGgeTOn8QMbkdx0hLPXyEJehZIPrcof0ATz7j7aTPA4at7gaiFHCo8gk07DaWYGB3PFgjboXRcWQ==";
       };
     };
-    "apollo-server-core-2.19.0" = {
+    "apollo-server-core-2.19.1" = {
       name = "apollo-server-core";
       packageName = "apollo-server-core";
-      version = "2.19.0";
+      version = "2.19.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.19.0.tgz";
-        sha512 = "2aMKUVPyNbomJQaG2tkpfqvp1Tfgxgkdr7nX5zHudYNSzsPrHw+CcYlCbIVFFI/mTZsjoK9czNq1qerFRxZbJw==";
+        url = "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.19.1.tgz";
+        sha512 = "5EVmcY8Ij7Ywwu+Ze4VaUhZBcxl8t5ztcSatJrKMd4HYlEHyaNGBV2itfpyqAthxfdMbGKqlpeCHmTGSqDcNpA==";
       };
     };
     "apollo-server-env-2.4.5" = {
@@ -8725,40 +8977,40 @@ let
         sha512 = "FeGxW3Batn6sUtX3OVVUm7o56EgjxDlmgpTLNyWcLb0j6P8mw9oLNyAm3B+deHA4KNdNHO5BmHS2g1SJYjqPCQ==";
       };
     };
-    "apollo-server-express-2.19.0" = {
+    "apollo-server-express-2.19.1" = {
       name = "apollo-server-express";
       packageName = "apollo-server-express";
-      version = "2.19.0";
+      version = "2.19.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.19.0.tgz";
-        sha512 = "3rgSrTme1SlLoecAYtSa8ThH6vYvz29QecgZCigq5Vdc6bFP2SZrCk0ls6BAdD8OZbVKUtizzRxd0yd/uREPAw==";
+        url = "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.19.1.tgz";
+        sha512 = "PJQmPtV3JD7RiV6cP7JcqAwVdUq6hWUtvDIoCOxPoeUWYf79nEF4WiYsPXVF0+meLLWKlL1fuSwEEt1CEHEG5w==";
       };
     };
-    "apollo-server-plugin-base-0.10.2" = {
+    "apollo-server-plugin-base-0.10.3" = {
       name = "apollo-server-plugin-base";
       packageName = "apollo-server-plugin-base";
-      version = "0.10.2";
+      version = "0.10.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.10.2.tgz";
-        sha512 = "uM5uL1lOxbXdgvt/aEIbgs40fV9xA45Y3Mmh0VtQ/ddqq0MXR5aG92nnf8rM+URarBCUfxKJKaYzJJ/CXAnEdA==";
+        url = "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.10.3.tgz";
+        sha512 = "NCLOsk9Jsd8oLvefkQvROdMDQvnHnzbzz3MPCqEYjCOEv0YBM8T77D0wCwbcViDS2M5p0W6un2ub9s/vU71f7Q==";
       };
     };
-    "apollo-server-types-0.6.1" = {
+    "apollo-server-types-0.6.2" = {
       name = "apollo-server-types";
       packageName = "apollo-server-types";
-      version = "0.6.1";
+      version = "0.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.6.1.tgz";
-        sha512 = "IEQ37aYvMLiTUzsySVLOSuvvhxuyYdhI05f3cnH6u2aN1HgGp7vX6bg+U3Ue8wbHfdcifcGIk5UEU+Q+QO6InA==";
+        url = "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.6.2.tgz";
+        sha512 = "LgSKgAStiDzpUSLYwJoAmy0W8nkxx/ExMmgEPgEYVi6dKPkUmtu561J970PhGdYH+D79ke3g87D+plkUkgfnlQ==";
       };
     };
-    "apollo-tracing-0.12.0" = {
+    "apollo-tracing-0.12.1" = {
       name = "apollo-tracing";
       packageName = "apollo-tracing";
-      version = "0.12.0";
+      version = "0.12.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.12.0.tgz";
-        sha512 = "cMUYGE6mOEwb9HDqhf4fiPEo2JMhjPIqEprAQEC57El76avRpRig5NM0bnqMZcYJZR5QmLlNcttNccOwf9WrNg==";
+        url = "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.12.1.tgz";
+        sha512 = "qdkUjW+pOaidGOSITypeYE288y28HkPmGNpUtyQSOeTxgqXHtQX3TDWiOJ2SmrLH08xdSwfvz9o5KrTq4PdISg==";
       };
     };
     "apollo-upload-client-11.0.0" = {
@@ -8986,6 +9238,15 @@ let
         sha1 = "2b12247b933001971addcbfe4e67d20fd395bbf4";
       };
     };
+    "argparse-2.0.1" = {
+      name = "argparse";
+      packageName = "argparse";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz";
+        sha512 = "8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==";
+      };
+    };
     "aribts-1.3.5" = {
       name = "aribts";
       packageName = "aribts";
@@ -9076,6 +9337,15 @@ let
         sha1 = "e39b09aea9def866a8f206e288af63919bae39c4";
       };
     };
+    "array-back-1.0.4" = {
+      name = "array-back";
+      packageName = "array-back";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz";
+        sha1 = "644ba7f095f7ffcf7c43b5f0dc39d3c1f03c063b";
+      };
+    };
     "array-back-2.0.0" = {
       name = "array-back";
       packageName = "array-back";
@@ -9094,15 +9364,6 @@ let
         sha512 = "TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==";
       };
     };
-    "array-back-4.0.1" = {
-      name = "array-back";
-      packageName = "array-back";
-      version = "4.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/array-back/-/array-back-4.0.1.tgz";
-        sha512 = "Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg==";
-      };
-    };
     "array-differ-1.0.0" = {
       name = "array-differ";
       packageName = "array-differ";
@@ -9409,6 +9670,15 @@ let
         sha512 = "mi+MYNJYLTx2eNYy+Yh6raoQacCsNeeMUaspFPh9Y141lFSsWxxB8V9mM2ye+eqiRs917J6/pJ4M9ZPzenWckA==";
       };
     };
+    "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";
@@ -9445,6 +9715,24 @@ let
         sha512 = "3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==";
       };
     };
+    "as-array-1.0.0" = {
+      name = "as-array";
+      packageName = "as-array";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/as-array/-/as-array-1.0.0.tgz";
+        sha1 = "28a6eeeaa5729f1f4eca2047df5e9de1abda0ed1";
+      };
+    };
+    "as-array-2.0.0" = {
+      name = "as-array";
+      packageName = "as-array";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/as-array/-/as-array-2.0.0.tgz";
+        sha1 = "4f04805d87f8fce8e511bc2108f8e5e3a287d547";
+      };
+    };
     "asap-2.0.6" = {
       name = "asap";
       packageName = "asap";
@@ -9769,6 +10057,15 @@ let
         sha512 = "z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==";
       };
     };
+    "async-exit-hook-2.0.1" = {
+      name = "async-exit-hook";
+      packageName = "async-exit-hook";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz";
+        sha512 = "NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==";
+      };
+    };
     "async-limiter-1.0.1" = {
       name = "async-limiter";
       packageName = "async-limiter";
@@ -9787,13 +10084,13 @@ let
         sha512 = "gpuo6xOyF4D5DE5WvyqZdPA3NGhiT6Qf07l7DCB0wwDEsLvDIbCr6j9S5aj5Ch96dLace5tXVzWBZkxU/c5ohw==";
       };
     };
-    "async-lock-1.2.4" = {
+    "async-lock-1.2.6" = {
       name = "async-lock";
       packageName = "async-lock";
-      version = "1.2.4";
+      version = "1.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/async-lock/-/async-lock-1.2.4.tgz";
-        sha512 = "UBQJC2pbeyGutIfYmErGc9RaJYnpZ1FHaxuKwb0ahvGiiCkPUf3p67Io+YLPmmv3RHY+mF6JEtNW8FlHsraAaA==";
+        url = "https://registry.npmjs.org/async-lock/-/async-lock-1.2.6.tgz";
+        sha512 = "gobUp/bRWL/uJsxi4ZK7NM770s5d2Tx5Hl7uxFIcN6yTz1Kvy2RCSKEvzhLsjAAnYaNa8lDvcjy9ybM6lXFjIg==";
       };
     };
     "async-mutex-0.1.4" = {
@@ -10030,13 +10327,13 @@ let
         sha512 = "+KBkqH7t/XE91Fqn8eyJeNIWsnhSWL8bSUqFD7TfE3FN07MTlC0nprGYp+2WfcYNz5i8Bus1vY2DHNVhtTImnw==";
       };
     };
-    "aws-sdk-2.804.0" = {
+    "aws-sdk-2.820.0" = {
       name = "aws-sdk";
       packageName = "aws-sdk";
-      version = "2.804.0";
+      version = "2.820.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.804.0.tgz";
-        sha512 = "a02pZdjL06MunElAZPPEjpghOp/ZA+16f+t4imh1k9FCDpsNVQrT23HRq/PMvRADA5uZZRkYwX8r9o6oH/1RlA==";
+        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.820.0.tgz";
+        sha512 = "OwGHxprG4KX5QC+vc77Xl7RCkJdwwKYPB7Gw3odNlMfdljedw7ICBylsMSBEwi/YjwaPryKPevHdOJAHbTKvQg==";
       };
     };
     "aws-sign2-0.6.0" = {
@@ -10876,6 +11173,15 @@ let
         sha512 = "NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==";
       };
     };
+    "basic-auth-connect-1.0.0" = {
+      name = "basic-auth-connect";
+      packageName = "basic-auth-connect";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz";
+        sha1 = "fdb0b43962ca7b40456a7c2bb48fe173da2d2122";
+      };
+    };
     "batch-0.6.1" = {
       name = "batch";
       packageName = "batch";
@@ -11155,6 +11461,15 @@ let
         sha512 = "t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==";
       };
     };
+    "bignumber.js-9.0.1" = {
+      name = "bignumber.js";
+      packageName = "bignumber.js";
+      version = "9.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz";
+        sha512 = "IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==";
+      };
+    };
     "bigspinner-3.1.0" = {
       name = "bigspinner";
       packageName = "bigspinner";
@@ -11479,6 +11794,15 @@ let
         sha1 = "825a8fc536a5dc43193467f3124f7e9b78b21cef";
       };
     };
+    "blakejs-1.1.0" = {
+      name = "blakejs";
+      packageName = "blakejs";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz";
+        sha1 = "69df92ef953aa88ca51a32df6ab1c54a155fc7a5";
+      };
+    };
     "blessed-0.1.81" = {
       name = "blessed";
       packageName = "blessed";
@@ -11992,6 +12316,15 @@ let
         sha1 = "51598408a13f4c9c5b20eba44554b2c0b0ae4074";
       };
     };
+    "browser-or-node-1.3.0" = {
+      name = "browser-or-node";
+      packageName = "browser-or-node";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browser-or-node/-/browser-or-node-1.3.0.tgz";
+        sha512 = "0F2z/VSnLbmEeBcUrSuDH5l0HxTXdQQzLjkmBR4cYfvg1zJrKSlmIZFqyFR8oX0NrwPhy3c3HQ6i3OxMbew4Tg==";
+      };
+    };
     "browser-pack-6.1.0" = {
       name = "browser-pack";
       packageName = "browser-pack";
@@ -12154,13 +12487,13 @@ let
         sha512 = "HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw==";
       };
     };
-    "browserslist-4.15.0" = {
+    "browserslist-4.16.0" = {
       name = "browserslist";
       packageName = "browserslist";
-      version = "4.15.0";
+      version = "4.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.15.0.tgz";
-        sha512 = "IJ1iysdMkGmjjYeRlDU8PQejVwxvVO5QOfXH7ylW31GO6LwNRSmm/SgRXtNsEXqMLl2e+2H5eEJ7sfynF8TCaQ==";
+        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.16.0.tgz";
+        sha512 = "/j6k8R0p3nxOC6kx5JGAxsnhc9ixaWJfYc+TNTzxg6+ARaESAvQGV7h0uNOB4t+pLQJZWzcrMxXOxjgsCj3dqQ==";
       };
     };
     "brq-0.1.8" = {
@@ -12577,13 +12910,13 @@ let
         sha1 = "270f076c5a72c02f5b65a47df94c5fe3a278892f";
       };
     };
-    "builtin-modules-3.1.0" = {
+    "builtin-modules-3.2.0" = {
       name = "builtin-modules";
       packageName = "builtin-modules";
-      version = "3.1.0";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz";
-        sha512 = "k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==";
+        url = "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz";
+        sha512 = "lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==";
       };
     };
     "builtin-status-codes-3.0.0" = {
@@ -12811,13 +13144,22 @@ let
         sha512 = "7YKEapH+2Uikde8hySyfobXBqPKULDyHNl/lhKm7cKf/GJFdG/tU/WpLrOg2y9aUrQrWUilYqawFIiGJPS6gDA==";
       };
     };
-    "cacheable-lookup-5.0.3" = {
+    "cacheable-lookup-2.0.1" = {
       name = "cacheable-lookup";
       packageName = "cacheable-lookup";
-      version = "5.0.3";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz";
-        sha512 = "W+JBqF9SWe18A72XFzN/V/CULFzPm7sBXzzR6ekkE+3tLG72wFZrBiBZhrZuDoYexop4PHJVdFAKb/Nj9+tm9w==";
+        url = "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz";
+        sha512 = "EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==";
+      };
+    };
+    "cacheable-lookup-5.0.4" = {
+      name = "cacheable-lookup";
+      packageName = "cacheable-lookup";
+      version = "5.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz";
+        sha512 = "2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==";
       };
     };
     "cacheable-request-2.1.4" = {
@@ -13099,13 +13441,13 @@ let
         sha512 = "bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==";
       };
     };
-    "caniuse-lite-1.0.30001165" = {
+    "caniuse-lite-1.0.30001171" = {
       name = "caniuse-lite";
       packageName = "caniuse-lite";
-      version = "1.0.30001165";
+      version = "1.0.30001171";
       src = fetchurl {
-        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001165.tgz";
-        sha512 = "8cEsSMwXfx7lWSUMA2s08z9dIgsnR5NAqjXP23stdsU3AUWkCr/rr4s4OFtHXn5XXr6+7kam3QFVoYyXNPdJPA==";
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001171.tgz";
+        sha512 = "5Alrh8TTYPG9IH4UkRqEBZoEToWRLvPbSQokvzSz0lii8/FOWKG4keO1HoYfPWs8IF/NH/dyNPg1cmJGvV3Zlg==";
       };
     };
     "canvas-2.6.1" = {
@@ -13153,6 +13495,15 @@ let
         sha1 = "7cc1055d822d212954d07b085dea251cc7bc5505";
       };
     };
+    "case-1.6.3" = {
+      name = "case";
+      packageName = "case";
+      version = "1.6.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/case/-/case-1.6.3.tgz";
+        sha512 = "mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==";
+      };
+    };
     "caseless-0.11.0" = {
       name = "caseless";
       packageName = "caseless";
@@ -13216,6 +13567,24 @@ let
         sha512 = "vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==";
       };
     };
+    "cdk8s-1.0.0-beta.5" = {
+      name = "cdk8s";
+      packageName = "cdk8s";
+      version = "1.0.0-beta.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cdk8s/-/cdk8s-1.0.0-beta.5.tgz";
+        sha512 = "E4l89rGnMI+OCdVojw0vV9xjkNgk9qMswkWc10hZLwwozhnx3ITMVgyjlRiZnCBIKMnKYY8ZhyMgEGgSVpR5fw==";
+      };
+    };
+    "cdktf-0.0.19" = {
+      name = "cdktf";
+      packageName = "cdktf";
+      version = "0.0.19";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cdktf/-/cdktf-0.0.19.tgz";
+        sha512 = "fBOl+yqMdMNRGNvLwAxOpE38PxHJG5Tdi/3J/Ag+KJwaDEXa/v5+ogwPxNtZ0dUdvZq2ovti9zbhdIPr59BvYQ==";
+      };
+    };
     "center-align-0.1.3" = {
       name = "center-align";
       packageName = "center-align";
@@ -13540,6 +13909,24 @@ let
         sha512 = "0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==";
       };
     };
+    "cheerio-1.0.0-rc.5" = {
+      name = "cheerio";
+      packageName = "cheerio";
+      version = "1.0.0-rc.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.5.tgz";
+        sha512 = "yoqps/VCaZgN4pfXtenwHROTp8NG6/Hlt4Jpz2FEP0ZJQ+ZUkVDd0hAPDNKhj3nakpfPt/CNs57yEtxD1bXQiw==";
+      };
+    };
+    "cheerio-select-tmp-0.1.1" = {
+      name = "cheerio-select-tmp";
+      packageName = "cheerio-select-tmp";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cheerio-select-tmp/-/cheerio-select-tmp-0.1.1.tgz";
+        sha512 = "YYs5JvbpU19VYJyj+F7oYrIE2BOll1/hRU7rEy/5+v9BzkSo3bK81iAeeQEMI92vRIxz677m72UmJUiVwwgjfQ==";
+      };
+    };
     "child-process-1.0.2" = {
       name = "child-process";
       packageName = "child-process";
@@ -13558,13 +13945,13 @@ let
         sha512 = "0UQ55f51JBkOFa+fvR76ywRzxiPwQS3Xe8oe5bZRphpv+dIMeerW5Zn5e4cUy4COJwVtJyU0R79RMnw+aCqmGA==";
       };
     };
-    "chloride-2.3.0" = {
+    "chloride-2.4.0" = {
       name = "chloride";
       packageName = "chloride";
-      version = "2.3.0";
+      version = "2.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chloride/-/chloride-2.3.0.tgz";
-        sha512 = "9jcavUx9ZNW9hxkG24rS9QddHpOqLAZqcb5SRbABRa8NKcplBKKcZfNM5LMa3DQ/VfXBQzcLDjgSo3uHA1ibZg==";
+        url = "https://registry.npmjs.org/chloride/-/chloride-2.4.0.tgz";
+        sha512 = "Fgz7EaWswRjRBeft6pCkg8STSQTQT/5GrRZlbtlx5hkhFi/X1RSIhSustfe2GsbySVZF2DuxsWri8GDFJ/SkvQ==";
       };
     };
     "chloride-test-1.2.4" = {
@@ -13810,6 +14197,15 @@ let
         sha512 = "UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==";
       };
     };
+    "cjson-0.3.3" = {
+      name = "cjson";
+      packageName = "cjson";
+      version = "0.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cjson/-/cjson-0.3.3.tgz";
+        sha1 = "a92d9c786e5bf9b930806329ee05d5d3261b4afa";
+      };
+    };
     "clap-1.2.3" = {
       name = "clap";
       packageName = "clap";
@@ -13846,13 +14242,13 @@ let
         sha512 = "JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==";
       };
     };
-    "cldr-5.7.0" = {
+    "cldr-5.8.0" = {
       name = "cldr";
       packageName = "cldr";
-      version = "5.7.0";
+      version = "5.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cldr/-/cldr-5.7.0.tgz";
-        sha512 = "Pyoh0kwXJIUvbAvQoQqKIr0pKWwWfkcYCIDKWmVIxJ9HftSsg57AqyfW1EzWRcP4nJj40WX4vB/lXQ+Uw4NbNA==";
+        url = "https://registry.npmjs.org/cldr/-/cldr-5.8.0.tgz";
+        sha512 = "w0L5FX4X3txDX5G/YSbDAQuneVSFPSKjOXB2ehWh/J6BN7RJ+IUEVNG9hIGjuJoyYJcVGE2AoL0W0VSjirQPIg==";
       };
     };
     "clean-css-3.4.28" = {
@@ -13963,6 +14359,15 @@ let
         sha1 = "adc3200fa471cc211b0da7f566b71e98b9d67347";
       };
     };
+    "cli-color-1.4.0" = {
+      name = "cli-color";
+      packageName = "cli-color";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cli-color/-/cli-color-1.4.0.tgz";
+        sha512 = "xu6RvQqqrWEo6MPR1eixqGPywhYBHRs653F9jfXB2Hx4jdM/3WxiNE1vppRmxtMIfl16SFYTpYlrnqH/HsK/2w==";
+      };
+    };
     "cli-color-2.0.0" = {
       name = "cli-color";
       packageName = "cli-color";
@@ -14044,13 +14449,13 @@ let
         sha512 = "PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==";
       };
     };
-    "cli-table-0.3.1" = {
+    "cli-table-0.3.4" = {
       name = "cli-table";
       packageName = "cli-table";
-      version = "0.3.1";
+      version = "0.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz";
-        sha1 = "f53b05266a8b1a0b934b3d0821e6e2dc5914ae23";
+        url = "https://registry.npmjs.org/cli-table/-/cli-table-0.3.4.tgz";
+        sha512 = "1vinpnX/ZERcmE443i3SZTmU5DF0rPO9DrL4I2iVAllhxzCM9SzPlHnz19fsZB78htkKZvYBvj6SZ6vXnaxmTA==";
       };
     };
     "cli-table3-0.5.1" = {
@@ -14116,15 +14521,6 @@ let
         sha512 = "/1owvF0SZ5Gn54cgrikJ0QskgTzeg30HGjkmjFoaHDJzAqFpuX1DBpFR8aLvsE1J5s9MgeYRENQK4BFwOag5VA==";
       };
     };
-    "cli-ux-5.5.0" = {
-      name = "cli-ux";
-      packageName = "cli-ux";
-      version = "5.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cli-ux/-/cli-ux-5.5.0.tgz";
-        sha512 = "aXoHgEOtkem8sJmQrU/jXsojCq8uOp8++9lybCbt9mFDyPouSNawSdoPjuM00PPaSPCJThvY0VNYOQNd6gGQCA==";
-      };
-    };
     "cli-ux-5.5.1" = {
       name = "cli-ux";
       packageName = "cli-ux";
@@ -14593,6 +14989,24 @@ let
         sha512 = "+xi2ENsvchtUNa8oBUU58gHgmyN6BEEeZ8NIEgeQ0XnC+AoyihivgZYe+OOiNi+fLy/NUowugwV5gP8XWYDm0Q==";
       };
     };
+    "codemaker-0.22.0" = {
+      name = "codemaker";
+      packageName = "codemaker";
+      version = "0.22.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/codemaker/-/codemaker-0.22.0.tgz";
+        sha512 = "3WQV/Fpa77nvzjUlc+0u53uIroJyyMB2Qwl++aXpAiDIsrsiAQq4uCURwdRBRX+eLkOTIAmT0L4qna3T7+2pUg==";
+      };
+    };
+    "codemaker-1.16.0" = {
+      name = "codemaker";
+      packageName = "codemaker";
+      version = "1.16.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/codemaker/-/codemaker-1.16.0.tgz";
+        sha512 = "kC53r6ACRGYcSAKeOcbcUhWZYWynIuBIQ50oLOYUygShjrqF0NO303eSvOzT0Qxaz2TQWI2deUwJBMm3s8HoZg==";
+      };
+    };
     "codepage-1.4.0" = {
       name = "codepage";
       packageName = "codepage";
@@ -14638,6 +15052,15 @@ let
         sha1 = "aea0f06f8d26c780c2b75494385544b2255af18c";
       };
     };
+    "collection-utils-1.0.1" = {
+      name = "collection-utils";
+      packageName = "collection-utils";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/collection-utils/-/collection-utils-1.0.1.tgz";
+        sha512 = "LA2YTIlR7biSpXkKYwwuzGjwL5rjWEZVOSnvdUc7gObvWe4WkjxOpfrdhoP7Hs09YWDVfg0Mal9BpAqLfVEzQg==";
+      };
+    };
     "collection-visit-1.0.0" = {
       name = "collection-visit";
       packageName = "collection-visit";
@@ -14890,6 +15313,15 @@ let
         sha512 = "LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==";
       };
     };
+    "command-line-args-4.0.7" = {
+      name = "command-line-args";
+      packageName = "command-line-args";
+      version = "4.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/command-line-args/-/command-line-args-4.0.7.tgz";
+        sha512 = "aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA==";
+      };
+    };
     "command-line-usage-4.1.0" = {
       name = "command-line-usage";
       packageName = "command-line-usage";
@@ -14899,13 +15331,13 @@ let
         sha512 = "MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==";
       };
     };
-    "command-line-usage-6.1.1" = {
+    "command-line-usage-5.0.5" = {
       name = "command-line-usage";
       packageName = "command-line-usage";
-      version = "6.1.1";
+      version = "5.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.1.tgz";
-        sha512 = "F59pEuAR9o1SF/bD0dQBDluhpT4jJQNWUHEuVBqpDmCUo6gPjCi+m9fCWnWZVR/oG6cMTUms4h+3NPl74wGXvA==";
+        url = "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.5.tgz";
+        sha512 = "d8NrGylA5oCXSbGoKz05FkehDAzSmIm4K03S5VDh4d5lZAtTWfc3D1RuETtuQCn8129nYfJfDdF7P/lwcz1BlA==";
       };
     };
     "commander-0.6.1" = {
@@ -15079,13 +15511,13 @@ let
         sha512 = "wl7PNrYWd2y5mp1OK/LhTlv8Ff4kQJQRXXAvF+uU/TPNiVJUxZLRYGj/B0y/lPGAVcSbJqH2Za/cvHmrPMC8mA==";
       };
     };
-    "commander-6.2.0" = {
+    "commander-6.2.1" = {
       name = "commander";
       packageName = "commander";
-      version = "6.2.0";
+      version = "6.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz";
-        sha512 = "zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==";
+        url = "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz";
+        sha512 = "U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==";
       };
     };
     "commandpost-1.4.0" = {
@@ -15142,6 +15574,15 @@ let
         sha1 = "34fc3672cd24393e8bb47e70caa0293811f4f2c5";
       };
     };
+    "commonmark-0.29.3" = {
+      name = "commonmark";
+      packageName = "commonmark";
+      version = "0.29.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commonmark/-/commonmark-0.29.3.tgz";
+        sha512 = "fvt/NdOFKaL2gyhltSy6BC4LxbbxbnPxBMl923ittqO/JBM0wQHaoYZliE4tp26cRxX/ZZtRsJlZzQrVdUkXAA==";
+      };
+    };
     "compact2string-1.4.1" = {
       name = "compact2string";
       packageName = "compact2string";
@@ -15169,6 +15610,15 @@ let
         sha512 = "zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==";
       };
     };
+    "compare-semver-1.1.0" = {
+      name = "compare-semver";
+      packageName = "compare-semver";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/compare-semver/-/compare-semver-1.1.0.tgz";
+        sha1 = "7c0a79a27bb80b6c6994445f82958259d3d02153";
+      };
+    };
     "compare-version-0.1.2" = {
       name = "compare-version";
       packageName = "compare-version";
@@ -15178,6 +15628,15 @@ let
         sha1 = "0162ec2d9351f5ddd59a9202cba935366a725080";
       };
     };
+    "compare-versions-3.6.0" = {
+      name = "compare-versions";
+      packageName = "compare-versions";
+      version = "3.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz";
+        sha512 = "W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==";
+      };
+    };
     "component-bind-1.0.0" = {
       name = "component-bind";
       packageName = "component-bind";
@@ -15565,6 +16024,15 @@ let
         sha1 = "c20b96d8c617748aaf1c16021760cd27fcb8cb75";
       };
     };
+    "constructs-3.2.90" = {
+      name = "constructs";
+      packageName = "constructs";
+      version = "3.2.90";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/constructs/-/constructs-3.2.90.tgz";
+        sha512 = "Hi0MN1NQOrqVUXE2YGQ0GL6LLPW7R9WP1QYOXvI2OW0wX43zd5sDT0D8PE116EKF8nRAFQenUPlD2EdgxoHPDg==";
+      };
+    };
     "consume-http-header-1.0.0" = {
       name = "consume-http-header";
       packageName = "consume-http-header";
@@ -15728,13 +16196,13 @@ let
         sha512 = "GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==";
       };
     };
-    "conventional-changelog-writer-4.0.18" = {
+    "conventional-changelog-writer-4.1.0" = {
       name = "conventional-changelog-writer";
       packageName = "conventional-changelog-writer";
-      version = "4.0.18";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.18.tgz";
-        sha512 = "mAQDCKyB9HsE8Ko5cCM1Jn1AWxXPYV0v8dFPabZRkvsiWUul2YyAqbIaoMKF88Zf2ffnOPSvKhboLf3fnjo5/A==";
+        url = "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.1.0.tgz";
+        sha512 = "WwKcUp7WyXYGQmkLsX4QmU42AZ1lqlvRW9mqoyiQzdD+rJWbTepdWoKJuwXTS+yq79XKnQNa93/roViPQrAQgw==";
       };
     };
     "conventional-commits-filter-2.0.7" = {
@@ -15917,6 +16385,15 @@ let
         sha512 = "8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==";
       };
     };
+    "copy-anything-2.0.1" = {
+      name = "copy-anything";
+      packageName = "copy-anything";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.1.tgz";
+        sha512 = "lA57e7viQHOdPQcrytv5jFeudZZOXuyk47lZym279FiDQ8jeZomXiGuVf6ffMKkJ+3TIai3J1J3yi6M+/4U35g==";
+      };
+    };
     "copy-concurrently-1.0.5" = {
       name = "copy-concurrently";
       packageName = "copy-concurrently";
@@ -16034,22 +16511,22 @@ let
         sha512 = "vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==";
       };
     };
-    "core-js-3.8.0" = {
+    "core-js-3.8.1" = {
       name = "core-js";
       packageName = "core-js";
-      version = "3.8.0";
+      version = "3.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js/-/core-js-3.8.0.tgz";
-        sha512 = "W2VYNB0nwQQE7tKS7HzXd7r2y/y2SVJl4ga6oH/dnaLFzM0o2lB2P3zCkWj5Wc/zyMYjtgd5Hmhk0ObkQFZOIA==";
+        url = "https://registry.npmjs.org/core-js/-/core-js-3.8.1.tgz";
+        sha512 = "9Id2xHY1W7m8hCl8NkhQn5CufmF/WuR30BTRewvCXc1aZd3kMECwNZ69ndLbekKfakw9Rf2Xyc+QR6E7Gg+obg==";
       };
     };
-    "core-js-compat-3.8.0" = {
+    "core-js-compat-3.8.1" = {
       name = "core-js-compat";
       packageName = "core-js-compat";
-      version = "3.8.0";
+      version = "3.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.0.tgz";
-        sha512 = "o9QKelQSxQMYWHXc/Gc4L8bx/4F7TTraE5rhuN8I7mKBt5dBIUpXpIR3omv70ebr8ST5R3PqbDQr+ZI3+Tt1FQ==";
+        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.1.tgz";
+        sha512 = "a16TLmy9NVD1rkjUGbwuyWkiDoN0FDpAwrfLONvHFQx0D9k7J9y0srwMT8QP/Z6HE3MIFaVynEeYwZwPX1o5RQ==";
       };
     };
     "core-util-is-1.0.2" = {
@@ -16295,6 +16772,15 @@ let
         sha512 = "Gk2c4y6xKEO8FSAUTklqtfSr7oTq0CiPQeLBG5Fl0qoXpZyMcj1SG59YL+hqq04bu6/IuEA7lMkYDAplQNKkyg==";
       };
     };
+    "cross-env-5.2.1" = {
+      name = "cross-env";
+      packageName = "cross-env";
+      version = "5.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cross-env/-/cross-env-5.2.1.tgz";
+        sha512 = "1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==";
+      };
+    };
     "cross-env-6.0.3" = {
       name = "cross-env";
       packageName = "cross-env";
@@ -16565,6 +17051,15 @@ let
         sha512 = "Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==";
       };
     };
+    "css-select-3.1.2" = {
+      name = "css-select";
+      packageName = "css-select";
+      version = "3.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-select/-/css-select-3.1.2.tgz";
+        sha512 = "qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA==";
+      };
+    };
     "css-select-base-adapter-0.1.1" = {
       name = "css-select-base-adapter";
       packageName = "css-select-base-adapter";
@@ -16637,6 +17132,15 @@ let
         sha512 = "ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==";
       };
     };
+    "css-what-4.0.0" = {
+      name = "css-what";
+      packageName = "css-what";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-what/-/css-what-4.0.0.tgz";
+        sha512 = "teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A==";
+      };
+    };
     "cssauron-1.4.0" = {
       name = "cssauron";
       packageName = "cssauron";
@@ -16835,6 +17339,15 @@ let
         sha512 = "r45M92nLnGP246ot0Yo5RvbiiMF5Bw/OTIdWJ3OQ4Vbv4hpOeoXVIPxdSmUw+fPJlQOseY+iigJyLSfPMIrddQ==";
       };
     };
+    "csv-streamify-3.0.4" = {
+      name = "csv-streamify";
+      packageName = "csv-streamify";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/csv-streamify/-/csv-streamify-3.0.4.tgz";
+        sha1 = "4cb614c57e3f299cca17b63fdcb4ad167777f47a";
+      };
+    };
     "csv-stringify-0.0.8" = {
       name = "csv-stringify";
       packageName = "csv-stringify";
@@ -16961,13 +17474,13 @@ let
         sha512 = "KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==";
       };
     };
-    "d3-array-2.9.0" = {
+    "d3-array-2.9.1" = {
       name = "d3-array";
       packageName = "d3-array";
-      version = "2.9.0";
+      version = "2.9.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/d3-array/-/d3-array-2.9.0.tgz";
-        sha512 = "yOokB8GozB6GAubW9n7phLdRugC8TgEjF6V1cX/q78L80d2tLirUnc0jvDSSF622JJJTmtnJOe9+WKs+yS5GFQ==";
+        url = "https://registry.npmjs.org/d3-array/-/d3-array-2.9.1.tgz";
+        sha512 = "Ob7RdOtkqsjx1NWyQHMFLtCSk6/aKTxDdC4ZIolX+O+mDD2RzrsYgAyc0WGAlfYFVELLSilS7w8BtE3PKM8bHg==";
       };
     };
     "d3-axis-1.0.12" = {
@@ -17699,13 +18212,13 @@ let
         sha512 = "3VmRXEtw7RZKAf+4Tv1Ym9AGeo8r8+CjDi26x+7SYQil1UqtqdaokhzoEJohqlzt0m5kacJSDhJQkG/LWhpRBw==";
       };
     };
-    "dayjs-1.9.7" = {
+    "dayjs-1.9.8" = {
       name = "dayjs";
       packageName = "dayjs";
-      version = "1.9.7";
+      version = "1.9.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dayjs/-/dayjs-1.9.7.tgz";
-        sha512 = "IC877KBdMhBrCfBfJXHQlo0G8keZ0Opy7YIIq5QKtUbCuHMzim8S4PyiVK4YmihI3iOF9lhfUBW4AQWHTR5WHA==";
+        url = "https://registry.npmjs.org/dayjs/-/dayjs-1.9.8.tgz";
+        sha512 = "F42qBtJRa30FKF7XDnOQyNUTsaxDkuaZRj/i7BejSHC34LlLfPoIU4aeopvWfM+m1dJ6/DHKAWLg2ur+pLgq1w==";
       };
     };
     "deasync-0.1.20" = {
@@ -17861,6 +18374,15 @@ let
         sha512 = "doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==";
       };
     };
+    "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==";
+      };
+    };
     "debug-fabulous-1.1.0" = {
       name = "debug-fabulous";
       packageName = "debug-fabulous";
@@ -17987,6 +18509,15 @@ let
         sha512 = "jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==";
       };
     };
+    "decompress-response-5.0.0" = {
+      name = "decompress-response";
+      packageName = "decompress-response";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decompress-response/-/decompress-response-5.0.0.tgz";
+        sha512 = "TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==";
+      };
+    };
     "decompress-response-6.0.0" = {
       name = "decompress-response";
       packageName = "decompress-response";
@@ -18797,15 +19328,6 @@ let
         sha1 = "806649326ceaa7caa3306d75d985ea2748ba913c";
       };
     };
-    "diacritics-1.3.0" = {
-      name = "diacritics";
-      packageName = "diacritics";
-      version = "1.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/diacritics/-/diacritics-1.3.0.tgz";
-        sha1 = "3efa87323ebb863e6696cebb0082d48ff3d6f7a1";
-      };
-    };
     "diagnostics-1.1.1" = {
       name = "diagnostics";
       packageName = "diagnostics";
@@ -18878,13 +19400,13 @@ let
         sha512 = "IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==";
       };
     };
-    "diff2html-3.1.15" = {
+    "diff2html-3.1.18" = {
       name = "diff2html";
       packageName = "diff2html";
-      version = "3.1.15";
+      version = "3.1.18";
       src = fetchurl {
-        url = "https://registry.npmjs.org/diff2html/-/diff2html-3.1.15.tgz";
-        sha512 = "juAPno3aLDhLV6e2rPl1uQ3ZHpFT4o5Hpx5il4EH+nbdphwGgK1a7dQ/BnSXWlNPvEZ5l8lE5CTHijx5QPLzOQ==";
+        url = "https://registry.npmjs.org/diff2html/-/diff2html-3.1.18.tgz";
+        sha512 = "1S3ubwa8+frMFsQ6rQLiXAkUtPoqzXdx6I/Q4I/a0pPXJQd1LfuqJY4s2ZUj2ahzODr/7nc6Bn1pWJrU1i9MEQ==";
       };
     };
     "diff3-0.0.3" = {
@@ -19157,49 +19679,40 @@ let
         sha512 = "cwaRptBmYZwu/FyhGcqBm2MzXA77W2/E6eVkpOZVDk6PkI9Bjj84xPrXiHMA+OWjzNy+DFjgKh8Q+1hMR7/OHg==";
       };
     };
-    "dockerfile-ast-0.0.27" = {
-      name = "dockerfile-ast";
-      packageName = "dockerfile-ast";
-      version = "0.0.27";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/dockerfile-ast/-/dockerfile-ast-0.0.27.tgz";
-        sha512 = "U+1B6aA7qJw9hswL6rCg4/dHnXy+zmt1bwU6ONi+f+0w0AOSmrz4IcrZQu62g1RD+NoTO4dvJce3FjoXUHd9Dw==";
-      };
-    };
-    "dockerfile-ast-0.0.28" = {
+    "dockerfile-ast-0.0.30" = {
       name = "dockerfile-ast";
       packageName = "dockerfile-ast";
-      version = "0.0.28";
+      version = "0.0.30";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dockerfile-ast/-/dockerfile-ast-0.0.28.tgz";
-        sha512 = "221P0R4+tx5C1ra99alQxmdRvtfKMbBE7MkESN4VEBN5CX90wijrcIg+EiRaGTCCT5OPk5KBeKy+EIOnmEu4xA==";
+        url = "https://registry.npmjs.org/dockerfile-ast/-/dockerfile-ast-0.0.30.tgz";
+        sha512 = "QOeP5NjbjoSLtnMz6jzBLsrKtywLEVPoCOAwA54cQpulyKb1gBnZ63tr6Amq8oVDvu5PXa3aifBVw+wcoCGHKg==";
       };
     };
-    "dockerfile-ast-0.0.30" = {
+    "dockerfile-ast-0.1.0" = {
       name = "dockerfile-ast";
       packageName = "dockerfile-ast";
-      version = "0.0.30";
+      version = "0.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dockerfile-ast/-/dockerfile-ast-0.0.30.tgz";
-        sha512 = "QOeP5NjbjoSLtnMz6jzBLsrKtywLEVPoCOAwA54cQpulyKb1gBnZ63tr6Amq8oVDvu5PXa3aifBVw+wcoCGHKg==";
+        url = "https://registry.npmjs.org/dockerfile-ast/-/dockerfile-ast-0.1.0.tgz";
+        sha512 = "qKftHMVoMliYBaYLkgttm+NXhRISVNkIMfAL4ecmXjiWRElfdfY+xNgITiehG0LpUEDbFUa/UDCByYq/2UZIpQ==";
       };
     };
-    "dockerfile-language-service-0.1.0" = {
+    "dockerfile-language-service-0.1.1" = {
       name = "dockerfile-language-service";
       packageName = "dockerfile-language-service";
-      version = "0.1.0";
+      version = "0.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dockerfile-language-service/-/dockerfile-language-service-0.1.0.tgz";
-        sha512 = "vvFBLvQ/4RE5JyPzI1EynvT5h6Mg/jJ8HUcMs53uyfjy3RbaGeUL5c0eN6mk39WVF2Y8fsH1FKo4L29Z/W4N6g==";
+        url = "https://registry.npmjs.org/dockerfile-language-service/-/dockerfile-language-service-0.1.1.tgz";
+        sha512 = "Lw4QlxJoy9F1559wxX+0xe5iSNK95Fbzx/YhdmAzfwgbPvdPzvFouIuuMyMPj/Q5JyFH1QAr7VeagOe24w0cqg==";
       };
     };
-    "dockerfile-utils-0.1.0" = {
+    "dockerfile-utils-0.1.1" = {
       name = "dockerfile-utils";
       packageName = "dockerfile-utils";
-      version = "0.1.0";
+      version = "0.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dockerfile-utils/-/dockerfile-utils-0.1.0.tgz";
-        sha512 = "eHDiSOSXzXaFTwp7UX+bMVKUDQd2E2x8IF/3xdSvNkGhBliRhjwLIL+ALLDmi8GqSlm+7xwc4mGLcvtCI668PQ==";
+        url = "https://registry.npmjs.org/dockerfile-utils/-/dockerfile-utils-0.1.1.tgz";
+        sha512 = "ddAA8PCAcT4pBQ1AFRnPjetJ31/7BqNKLHQkZebNE0hBAiOr8SzrnIWvJUcBDHrVbASCVl1Ye37hbaTsUmYHsw==";
       };
     };
     "doctrine-2.1.0" = {
@@ -19274,13 +19787,13 @@ let
         sha512 = "2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==";
       };
     };
-    "dom-serializer-1.1.0" = {
+    "dom-serializer-1.2.0" = {
       name = "dom-serializer";
       packageName = "dom-serializer";
-      version = "1.1.0";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.1.0.tgz";
-        sha512 = "ox7bvGXt2n+uLWtCRLybYx60IrOlWL/aCebWJk1T0d4m3y2tzf4U3ij9wBMUb6YJZpz06HCCYuyCDveE2xXmzQ==";
+        url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.2.0.tgz";
+        sha512 = "n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA==";
       };
     };
     "dom-storage-2.1.0" = {
@@ -19409,13 +19922,13 @@ let
         sha512 = "3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ==";
       };
     };
-    "dompurify-2.2.2" = {
+    "dompurify-2.2.6" = {
       name = "dompurify";
       packageName = "dompurify";
-      version = "2.2.2";
+      version = "2.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dompurify/-/dompurify-2.2.2.tgz";
-        sha512 = "BsGR4nDLaC5CNBnyT5I+d5pOeaoWvgVeg6Gq/aqmKYWMPR07131u60I80BvExLAJ0FQEIBQ1BTicw+C5+jOyrg==";
+        url = "https://registry.npmjs.org/dompurify/-/dompurify-2.2.6.tgz";
+        sha512 = "7b7ZArhhH0SP6W2R9cqK6RjaU82FZ2UPM7RO8qN1b1wyvC/NY1FNWcX1Pu00fFOAnzEORtwXe4bPaClg6pUybQ==";
       };
     };
     "domutils-1.4.3" = {
@@ -19445,13 +19958,13 @@ let
         sha512 = "Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==";
       };
     };
-    "domutils-2.4.3" = {
+    "domutils-2.4.4" = {
       name = "domutils";
       packageName = "domutils";
-      version = "2.4.3";
+      version = "2.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/domutils/-/domutils-2.4.3.tgz";
-        sha512 = "MDMfEjgtzHvRX7i21XQfkk/vfZbLOe0VJk8dDETkTTo3BTeH3NXz3Xvs94UQ+GzTw/GjRYKsfVKIIOheYX63fw==";
+        url = "https://registry.npmjs.org/domutils/-/domutils-2.4.4.tgz";
+        sha512 = "jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA==";
       };
     };
     "dot-case-3.0.4" = {
@@ -19481,6 +19994,15 @@ let
         sha512 = "QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==";
       };
     };
+    "dot-prop-6.0.1" = {
+      name = "dot-prop";
+      packageName = "dot-prop";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz";
+        sha512 = "tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==";
+      };
+    };
     "dot-qs-0.2.0" = {
       name = "dot-qs";
       packageName = "dot-qs";
@@ -19499,6 +20021,15 @@ let
         sha512 = "4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==";
       };
     };
+    "dotenv-6.2.0" = {
+      name = "dotenv";
+      packageName = "dotenv";
+      version = "6.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz";
+        sha512 = "HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==";
+      };
+    };
     "dotenv-8.2.0" = {
       name = "dotenv";
       packageName = "dotenv";
@@ -19886,13 +20417,13 @@ let
         sha512 = "dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w==";
       };
     };
-    "electron-to-chromium-1.3.616" = {
+    "electron-to-chromium-1.3.633" = {
       name = "electron-to-chromium";
       packageName = "electron-to-chromium";
-      version = "1.3.616";
+      version = "1.3.633";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.616.tgz";
-        sha512 = "CI8L38UN2BEnqXw3/oRIQTmde0LiSeqWSRlPA42ZTYgJQ8fYenzAM2Z3ni+jtILTcrs5aiXZCGJ96Pm+3/yGyQ==";
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.633.tgz";
+        sha512 = "bsVCsONiVX1abkWdH7KtpuDAhsQ3N3bjPYhROSAXE78roJKet0Y5wznA14JE9pzbwSZmSMAW6KiKYf1RvbTJkA==";
       };
     };
     "electrum-client-git://github.com/janoside/electrum-client" = {
@@ -20212,13 +20743,13 @@ let
         sha512 = "b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==";
       };
     };
-    "engine.io-4.0.4" = {
+    "engine.io-4.0.5" = {
       name = "engine.io";
       packageName = "engine.io";
-      version = "4.0.4";
+      version = "4.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/engine.io/-/engine.io-4.0.4.tgz";
-        sha512 = "4ggUX5pICZU17OTZNFv5+uFE/ZyoK+TIXv2SvxWWX8lwStllQ6Lvvs4lDBqvKpV9EYXNcvlNOcjKChd/mo+8Tw==";
+        url = "https://registry.npmjs.org/engine.io/-/engine.io-4.0.5.tgz";
+        sha512 = "Ri+whTNr2PKklxQkfbGjwEo+kCBUM4Qxk4wtLqLrhH+b1up2NFL9g9pjYWiCV/oazwB0rArnvF/ZmZN2ab5Hpg==";
       };
     };
     "engine.io-client-1.3.1" = {
@@ -20257,13 +20788,13 @@ let
         sha512 = "x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==";
       };
     };
-    "engine.io-parser-4.0.1" = {
+    "engine.io-parser-4.0.2" = {
       name = "engine.io-parser";
       packageName = "engine.io-parser";
-      version = "4.0.1";
+      version = "4.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.1.tgz";
-        sha512 = "v5aZK1hlckcJDGmHz3W8xvI3NUHYc9t8QtTbqdR5OaH3S9iJZilPubauOm+vLWOMMWzpE3hiq92l9lTAHamRCg==";
+        url = "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz";
+        sha512 = "sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==";
       };
     };
     "enhanced-resolve-2.3.0" = {
@@ -20284,13 +20815,13 @@ let
         sha512 = "3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==";
       };
     };
-    "enhanced-resolve-5.4.0" = {
+    "enhanced-resolve-5.4.1" = {
       name = "enhanced-resolve";
       packageName = "enhanced-resolve";
-      version = "5.4.0";
+      version = "5.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.4.0.tgz";
-        sha512 = "ZmqfWURB2lConOBM1JdCVfPyMRv5RdKWktLXO6123p97ovVm2CLBgw9t5MBj3jJWA6eHyOeIws9iJQoGFR4euQ==";
+        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.4.1.tgz";
+        sha512 = "4GbyIMzYktTFoRSmkbgZ1LU+RXwf4AQ8Z+rSuuh1dC8plp0PPeaWvx6+G4hh4KnUJ48VoxKbNyA1QQQIUpXjYA==";
       };
     };
     "enquirer-2.3.6" = {
@@ -20473,13 +21004,13 @@ let
         sha512 = "e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw==";
       };
     };
-    "errno-0.1.7" = {
+    "errno-0.1.8" = {
       name = "errno";
       packageName = "errno";
-      version = "0.1.7";
+      version = "0.1.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz";
-        sha512 = "MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==";
+        url = "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz";
+        sha512 = "dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==";
       };
     };
     "error-7.0.2" = {
@@ -20725,6 +21256,15 @@ let
         sha512 = "8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==";
       };
     };
+    "escape-goat-3.0.0" = {
+      name = "escape-goat";
+      packageName = "escape-goat";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-goat/-/escape-goat-3.0.0.tgz";
+        sha512 = "w3PwNZJwRxlp47QGzhuEBldEqVHHhh8/tIPcl6ecf2Bou99cdAt0knihBV0Ecc7CGxYduXVBDheH1K2oADRlvw==";
+      };
+    };
     "escape-html-1.0.3" = {
       name = "escape-html";
       packageName = "escape-html";
@@ -20815,6 +21355,15 @@ let
         sha512 = "6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==";
       };
     };
+    "escodegen-2.0.0" = {
+      name = "escodegen";
+      packageName = "escodegen";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz";
+        sha512 = "mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==";
+      };
+    };
     "escope-1.0.3" = {
       name = "escope";
       packageName = "escope";
@@ -20869,22 +21418,22 @@ let
         sha512 = "K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==";
       };
     };
-    "eslint-7.13.0" = {
+    "eslint-7.14.0" = {
       name = "eslint";
       packageName = "eslint";
-      version = "7.13.0";
+      version = "7.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint/-/eslint-7.13.0.tgz";
-        sha512 = "uCORMuOO8tUzJmsdRtrvcGq5qposf7Rw0LwkTJkoDbOycVQtQjmnhZSuLQnozLE4TmAzlMVV45eCHmQ1OpDKUQ==";
+        url = "https://registry.npmjs.org/eslint/-/eslint-7.14.0.tgz";
+        sha512 = "5YubdnPXrlrYAFCKybPuHIAH++PINe1pmKNc5wQRB9HSbqIK1ywAnntE3Wwua4giKu0bjligf1gLF6qxMGOYRA==";
       };
     };
-    "eslint-7.15.0" = {
+    "eslint-7.17.0" = {
       name = "eslint";
       packageName = "eslint";
-      version = "7.15.0";
+      version = "7.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz";
-        sha512 = "Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==";
+        url = "https://registry.npmjs.org/eslint/-/eslint-7.17.0.tgz";
+        sha512 = "zJk08MiBgwuGoxes5sSQhOtibZ75pz0J35XTRlZOk9xMffhpA9BTbQZxoXZzOl5zMbleShbGwtw+1kGferfFwQ==";
       };
     };
     "eslint-plugin-no-unsanitized-3.1.4" = {
@@ -20896,6 +21445,15 @@ let
         sha512 = "WF1+eZo2Sh+bQNjZuVNwT0dA61zuJORsLh+1Sww7+O6GOPw+WPWIIRfTWNqrmaXaDMhM4SXAqYPcNlhRMiH13g==";
       };
     };
+    "eslint-plugin-react-7.22.0" = {
+      name = "eslint-plugin-react";
+      packageName = "eslint-plugin-react";
+      version = "7.22.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.22.0.tgz";
+        sha512 = "p30tuX3VS+NWv9nQot9xIGAHBXR0+xJVaZriEsHoJrASGCJZDJ8JLNM0YqKqI0AKm6Uxaa1VUHoNEibxRCMQHA==";
+      };
+    };
     "eslint-plugin-vue-6.2.2" = {
       name = "eslint-plugin-vue";
       packageName = "eslint-plugin-vue";
@@ -20905,13 +21463,13 @@ let
         sha512 = "Nhc+oVAHm0uz/PkJAWscwIT4ijTrK5fqNqz9QB1D35SbbuMG1uB6Yr5AJpvPSWg+WOw7nYNswerYh0kOk64gqQ==";
       };
     };
-    "eslint-plugin-vue-7.2.0" = {
+    "eslint-plugin-vue-7.4.0" = {
       name = "eslint-plugin-vue";
       packageName = "eslint-plugin-vue";
-      version = "7.2.0";
+      version = "7.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.2.0.tgz";
-        sha512 = "4mt0yIv6rBDNtvis/g22a0ozJ12GfcdEzX77u0ICYjKlxOVtGrKGEvo0cbOObHaKDg9a9kJcoaNodqE4TPfS2A==";
+        url = "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.4.0.tgz";
+        sha512 = "bYJV3nHSGV5IL40Ti1231vlY8I2DzjDHYyDjRv9Z1koEI7qyV2RR3+uKMafHdOioXYH9W3e1+iwe4wy7FIBNCQ==";
       };
     };
     "eslint-scope-3.7.3" = {
@@ -21202,13 +21760,13 @@ let
         sha512 = "1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==";
       };
     };
-    "estree-walker-2.0.1" = {
+    "estree-walker-2.0.2" = {
       name = "estree-walker";
       packageName = "estree-walker";
-      version = "2.0.1";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.1.tgz";
-        sha512 = "tF0hv+Yi2Ot1cwj9eYHtxC0jB9bmjacjQs6ZBTj82H8JwUywFuc+7E83NWfNMwHXZc11mjfFcVXPe9gEP4B8dg==";
+        url = "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz";
+        sha512 = "Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==";
       };
     };
     "esutils-1.0.0" = {
@@ -21229,6 +21787,15 @@ let
         sha512 = "kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==";
       };
     };
+    "esy-solve-cudf-0.1.10" = {
+      name = "esy-solve-cudf";
+      packageName = "esy-solve-cudf";
+      version = "0.1.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esy-solve-cudf/-/esy-solve-cudf-0.1.10.tgz";
+        sha512 = "/MrZOBH0wuJndvZN8pl+S3Mg3zJaK70PH9ZZwqDeJHulghEWROEZxpmenNiS9pqAaxyUVhTZJBt2/vL9jKCJbg==";
+      };
+    };
     "etag-1.8.1" = {
       name = "etag";
       packageName = "etag";
@@ -21436,6 +22003,15 @@ let
         sha512 = "/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==";
       };
     };
+    "events-listener-1.1.0" = {
+      name = "events-listener";
+      packageName = "events-listener";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/events-listener/-/events-listener-1.1.0.tgz";
+        sha512 = "Kd3EgYfODHueq6GzVfs/VUolh2EgJsS8hkO3KpnDrxVjU3eq63eXM2ujXkhPP+OkeUOhL8CxdfZbQXzryb5C4g==";
+      };
+    };
     "events.node-0.4.9" = {
       name = "events.node";
       packageName = "events.node";
@@ -21571,6 +22147,15 @@ let
         sha512 = "j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==";
       };
     };
+    "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";
@@ -21598,6 +22183,24 @@ let
         sha512 = "8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==";
       };
     };
+    "exegesis-2.5.6" = {
+      name = "exegesis";
+      packageName = "exegesis";
+      version = "2.5.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/exegesis/-/exegesis-2.5.6.tgz";
+        sha512 = "e+YkH/zZTN2njiwrV8tY6tHGDsFu3LyR/YbrqdWvDZaAJ5YGWaBYyd3oX/Y26iGqQc+7jLEKLDTv2UPzjAYL8w==";
+      };
+    };
+    "exegesis-express-2.0.0" = {
+      name = "exegesis-express";
+      packageName = "exegesis-express";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/exegesis-express/-/exegesis-express-2.0.0.tgz";
+        sha512 = "NKvKBsBa2OvU+1BFpWbz3PzoRMhA9q7/wU2oMmQ9X8lPy/FRatADvhlkGO1zYOMgeo35k1ZLO9ZV0uIs9pPnXg==";
+      };
+    };
     "exif-parser-0.1.12" = {
       name = "exif-parser";
       packageName = "exif-parser";
@@ -21616,6 +22219,15 @@ let
         sha1 = "0632638f8d877cc82107d30a0fff1a17cba1cd0c";
       };
     };
+    "exit-code-1.0.2" = {
+      name = "exit-code";
+      packageName = "exit-code";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/exit-code/-/exit-code-1.0.2.tgz";
+        sha1 = "ce165811c9f117af6a5f882940b96ae7f9aecc34";
+      };
+    };
     "exit-hook-1.1.1" = {
       name = "exit-hook";
       packageName = "exit-hook";
@@ -21688,13 +22300,13 @@ let
         sha1 = "a793d3ac0cad4c6ab571e9968fbbab6cb2532929";
       };
     };
-    "expo-pwa-0.0.54" = {
+    "expo-pwa-0.0.58" = {
       name = "expo-pwa";
       packageName = "expo-pwa";
-      version = "0.0.54";
+      version = "0.0.58";
       src = fetchurl {
-        url = "https://registry.npmjs.org/expo-pwa/-/expo-pwa-0.0.54.tgz";
-        sha512 = "UQtnB/CrjkUfQrRyHmUi3jg/1++fkM2KHTy5DBrexTC0XoXzbJCLMrUTgH2VBtjIVQO9KyApInE53BRcz3ei+Q==";
+        url = "https://registry.npmjs.org/expo-pwa/-/expo-pwa-0.0.58.tgz";
+        sha512 = "dbPKRQyr5vtpa8/fmBoRzNs1SYkTWosXvcJJhIfGVGvb8ZMPduruydczM+lavBjZmufdlOL4e8CWNXcr4NRz9g==";
       };
     };
     "express-2.5.11" = {
@@ -21787,6 +22399,15 @@ let
         sha512 = "64YwTWpxgVGnwoLi4zvKaQ5RWIV0dkxVE4GGkBF7D89RI0/I6gTRUDL25Il4AK3cUqyLtxnX2X5BZ2YRvRx5uQ==";
       };
     };
+    "express-openapi-7.2.0" = {
+      name = "express-openapi";
+      packageName = "express-openapi";
+      version = "7.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/express-openapi/-/express-openapi-7.2.0.tgz";
+        sha512 = "Zlz1qA5DA5vRj8UrWFNH5cA1js5g0VB5yRIR1cuxPGAclsU8q7Y6Dvx/BhQ10/OGYd8qwFk4mFvDYahSEQe7gw==";
+      };
+    };
     "express-session-1.17.1" = {
       name = "express-session";
       packageName = "express-session";
@@ -21796,13 +22417,13 @@ let
         sha512 = "UbHwgqjxQZJiWRTMyhvWGvjBQduGCSBDhhZXYenziMFjxst5rMV+aJZ6hKPHZnPyHGsrqRICxtX8jtEbm/z36Q==";
       };
     };
-    "express-urlrewrite-1.3.0" = {
+    "express-urlrewrite-1.4.0" = {
       name = "express-urlrewrite";
       packageName = "express-urlrewrite";
-      version = "1.3.0";
+      version = "1.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/express-urlrewrite/-/express-urlrewrite-1.3.0.tgz";
-        sha512 = "xy3WZqA9EIfb51FkL1R0EqW91Z8lMi9ohp/WrNxKukvQulybqvh7+OsGiw9JOD51NrGsSuWi2hqOv7GW+DGz1w==";
+        url = "https://registry.npmjs.org/express-urlrewrite/-/express-urlrewrite-1.4.0.tgz";
+        sha512 = "PI5h8JuzoweS26vFizwQl6UTF25CAHSggNv0J25Dn/IKZscJHWZzPrI5z2Y2jgOzIaw2qh8l6+/jUcig23Z2SA==";
       };
     };
     "express-validator-2.21.0" = {
@@ -21904,6 +22525,15 @@ let
         sha1 = "0f9c7a81a1f208b703eb0c3131fe5716ac6ecd15";
       };
     };
+    "extends-classes-1.0.5" = {
+      name = "extends-classes";
+      packageName = "extends-classes";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extends-classes/-/extends-classes-1.0.5.tgz";
+        sha1 = "ff46dc863fd914f215eb9de5a958c9001c746361";
+      };
+    };
     "external-editor-1.1.1" = {
       name = "external-editor";
       packageName = "external-editor";
@@ -22093,13 +22723,13 @@ let
         sha512 = "t8HYqkuE3YEqNcyWlAfh55479aTxO+GpYwvQvJppYqyBfSmRdNIhzY2m09FKN/MENTzq4wH6heHOIvsPyMAwvQ==";
       };
     };
-    "fast-csv-4.3.5" = {
+    "fast-csv-4.3.6" = {
       name = "fast-csv";
       packageName = "fast-csv";
-      version = "4.3.5";
+      version = "4.3.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fast-csv/-/fast-csv-4.3.5.tgz";
-        sha512 = "7csO4GADMDhVcf8UI5/TPdZbNkeToUx2HaRC1KPxYNWjAZ/SAFBBRJGhzlDWg0vgKm92toH6gR7+tsMcc0Fx8Q==";
+        url = "https://registry.npmjs.org/fast-csv/-/fast-csv-4.3.6.tgz";
+        sha512 = "2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==";
       };
     };
     "fast-deep-equal-1.1.0" = {
@@ -22291,13 +22921,13 @@ let
         sha512 = "483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==";
       };
     };
-    "fastq-1.9.0" = {
+    "fastq-1.10.0" = {
       name = "fastq";
       packageName = "fastq";
-      version = "1.9.0";
+      version = "1.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz";
-        sha512 = "i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==";
+        url = "https://registry.npmjs.org/fastq/-/fastq-1.10.0.tgz";
+        sha512 = "NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==";
       };
     };
     "fault-1.0.4" = {
@@ -22769,6 +23399,15 @@ let
         sha512 = "t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==";
       };
     };
+    "find-replace-1.0.3" = {
+      name = "find-replace";
+      packageName = "find-replace";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz";
+        sha1 = "b88e7364d2d9c959559f388c66670d6130441fa0";
+      };
+    };
     "find-requires-1.0.0" = {
       name = "find-requires";
       packageName = "find-requires";
@@ -22931,13 +23570,13 @@ let
         sha512 = "VoPpKScAzvZ07jtciOY0bJieJwyd/VVCuo4fn3nBLh4iBagzYED7GLQeFBpMpy7HP5edEKTDo8yxaIrYrwb7hg==";
       };
     };
-    "fkill-7.0.1" = {
+    "fkill-7.1.0" = {
       name = "fkill";
       packageName = "fkill";
-      version = "7.0.1";
+      version = "7.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fkill/-/fkill-7.0.1.tgz";
-        sha512 = "rziuWzpWErC2aGQUuvGo9dcVBDeHowK9g75u4fnkTCAqPgvUVRMtlDW6KWsWonxY1tjF+p1mIys33yNvLRlAtw==";
+        url = "https://registry.npmjs.org/fkill/-/fkill-7.1.0.tgz";
+        sha512 = "l8zya4nRaXya4DJbSIkCCpJfE9+M0z8vbWDN+CynvNFIAWNZhBBS/G5c7t2l1NvtTpVcmCvnTm94bUICkRcqRQ==";
       };
     };
     "flagged-respawn-1.0.1" = {
@@ -22967,6 +23606,15 @@ let
         sha512 = "b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==";
       };
     };
+    "flat-arguments-1.0.2" = {
+      name = "flat-arguments";
+      packageName = "flat-arguments";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flat-arguments/-/flat-arguments-1.0.2.tgz";
+        sha1 = "9baa780adf0501f282d726c9c6a038dba44ea76f";
+      };
+    };
     "flat-cache-1.3.4" = {
       name = "flat-cache";
       packageName = "flat-cache";
@@ -23075,13 +23723,13 @@ let
         sha512 = "jlbUu0XkbpXeXhan5xyTqVK1jmEKNxE8hpzznI3TThHTr76GiFwK0iRzhDo4KNy+S9h/KxHaqVhTP86vA6wHCg==";
       };
     };
-    "flow-parser-0.138.0" = {
+    "flow-parser-0.141.0" = {
       name = "flow-parser";
       packageName = "flow-parser";
-      version = "0.138.0";
+      version = "0.141.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.138.0.tgz";
-        sha512 = "LFnTyjrv39UvCWl8NOcpByr/amj8a5k5z7isO2wv4T43nNrUnHQwX3rarTz9zcpHXkDAQv6X4MfQ4ZzJUptpbw==";
+        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.141.0.tgz";
+        sha512 = "WKdBiR9sDfkgEyPGhIgldUrVM08D57CgHLgd0FOXbhcVYXNfw+eHSApQ8SdcdQQoqrOvhlcVRB8lsn9bD5GQOw==";
       };
     };
     "fluent-ffmpeg-2.1.2" = {
@@ -23246,13 +23894,13 @@ let
         sha512 = "VjAQdSLsl6AkpZNyrQJfO7BXLo4chnStqb055bumZMbRUPpVuPN3a4ktsnRCmrFZjtMlYLkyXiR5rAs4WOpC4Q==";
       };
     };
-    "follow-redirects-1.13.0" = {
+    "follow-redirects-1.13.1" = {
       name = "follow-redirects";
       packageName = "follow-redirects";
-      version = "1.13.0";
+      version = "1.13.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz";
-        sha512 = "aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==";
+        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz";
+        sha512 = "SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==";
       };
     };
     "follow-redirects-1.5.10" = {
@@ -23372,13 +24020,13 @@ let
         sha512 = "DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw==";
       };
     };
-    "fork-ts-checker-webpack-plugin-6.0.2" = {
+    "fork-ts-checker-webpack-plugin-6.0.5" = {
       name = "fork-ts-checker-webpack-plugin";
       packageName = "fork-ts-checker-webpack-plugin";
-      version = "6.0.2";
+      version = "6.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.0.2.tgz";
-        sha512 = "3WrR/gNMcOAJ+macFpYTXxbt/xZDF9MLCYsPU3j9IUmS8LAvi8WoTiI001z1A8qkgmDtkoh6MTytTQqf8/7aOA==";
+        url = "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.0.5.tgz";
+        sha512 = "2jIHv2RhXzSxWtvRQX/ZtOxd5joo+FQYzn+sJ/hyLqApKGgvjMEMF951GnvuSNPheGsqiVzIDjvSZo1qRtry1Q==";
       };
     };
     "form-data-1.0.0-rc3" = {
@@ -23507,13 +24155,13 @@ let
         sha512 = "wJaE62fLaB3jCYvY2ZHjZvmKK2iiLiiehX38rz5QZxtdN8fVPJDeZUiVvJrHStdTc+23LHlyZuSEKgFc0pxi2g==";
       };
     };
-    "fp-ts-2.9.1" = {
+    "fp-ts-2.9.3" = {
       name = "fp-ts";
       packageName = "fp-ts";
-      version = "2.9.1";
+      version = "2.9.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fp-ts/-/fp-ts-2.9.1.tgz";
-        sha512 = "9++IpEtF2blK7tfSV+iHxO3KXdAGO/bPPQtUYqzC6XKzGOWNctqvlf13SpXxcu2mYaibOvneh/m9vAPLAHdoRQ==";
+        url = "https://registry.npmjs.org/fp-ts/-/fp-ts-2.9.3.tgz";
+        sha512 = "NjzcHYgigcbPQ6yJ52zwgsVDwKz3vwy9sjbxyzcvfXQm+j1BGeOPRuzLKEwsLyE4Xut6gG1FXJtsU9/gUB7tXg==";
       };
     };
     "fragment-cache-0.2.1" = {
@@ -23651,6 +24299,15 @@ 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";
@@ -23948,13 +24605,13 @@ let
         sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327";
       };
     };
-    "fuse.js-6.4.3" = {
+    "fuse.js-6.4.5" = {
       name = "fuse.js";
       packageName = "fuse.js";
-      version = "6.4.3";
+      version = "6.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fuse.js/-/fuse.js-6.4.3.tgz";
-        sha512 = "JNgngolukIrqwayWnvy6NLH63hmwKPhm63o0uyBg51jPD0j09IvAzlV1rTXfAsgxpghI7khAo6Mv+EmvjDWXig==";
+        url = "https://registry.npmjs.org/fuse.js/-/fuse.js-6.4.5.tgz";
+        sha512 = "AIHjOhexWVqs/jWqun6jTUfdXB3Bm1uShoirHvTZImD2kHEQZ1zOmoDEqIPs8N1LnnwXJeG0T+r9ilEeJzlaoA==";
       };
     };
     "fuzzy-0.1.3" = {
@@ -24020,6 +24677,15 @@ let
         sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
       };
     };
+    "gaxios-4.1.0" = {
+      name = "gaxios";
+      packageName = "gaxios";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gaxios/-/gaxios-4.1.0.tgz";
+        sha512 = "vb0to8xzGnA2qcgywAjtshOKKVDf2eQhJoiL6fHhgW5tVN7wNk7egnYIO9zotfn3lQ3De1VPdf7V5/BWfCtCmg==";
+      };
+    };
     "gaze-1.1.3" = {
       name = "gaze";
       packageName = "gaze";
@@ -24038,6 +24704,15 @@ let
         sha512 = "4FcCj9e8j8rCjvLkqRpGZBLgTC/xr9XEf5By3x77cDucWWB3pJK6FEwXZCTCbb4z8xdaOoi4owBNrvn3ciDdxA==";
       };
     };
+    "gcp-metadata-4.2.1" = {
+      name = "gcp-metadata";
+      packageName = "gcp-metadata";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.2.1.tgz";
+        sha512 = "tSk+REe5iq/N+K+SK1XjZJUrFPuDqGZVzCy2vocIHIGmPlTGsa8owXMJwGkrXr73NO0AzhPW4MF2DEHz7P2AVw==";
+      };
+    };
     "gelf-stream-1.1.1" = {
       name = "gelf-stream";
       packageName = "gelf-stream";
@@ -24110,13 +24785,13 @@ let
         sha512 = "3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==";
       };
     };
-    "geoip-country-4.0.45" = {
+    "geoip-country-4.0.49" = {
       name = "geoip-country";
       packageName = "geoip-country";
-      version = "4.0.45";
+      version = "4.0.49";
       src = fetchurl {
-        url = "https://registry.npmjs.org/geoip-country/-/geoip-country-4.0.45.tgz";
-        sha512 = "K9wWTy1NAW08vnWB/SKLTeknlI3DTigtu404ItlwdUR/IC2DnACvD/kj1ZzfyC5Zc+iIoJdilErSQcFd/W63FA==";
+        url = "https://registry.npmjs.org/geoip-country/-/geoip-country-4.0.49.tgz";
+        sha512 = "oeiRP6aiDBplorW2tl0Rm2k6iNlqrLI9Smn9lk4yBUSsMOqeUHqI7gXBKP59iMZqWq2emclX1IfJL665FX7btQ==";
       };
     };
     "get-amd-module-type-3.0.0" = {
@@ -24173,13 +24848,13 @@ let
         sha1 = "ead774abee72e20409433a066366023dd6887a41";
       };
     };
-    "get-intrinsic-1.0.1" = {
+    "get-intrinsic-1.0.2" = {
       name = "get-intrinsic";
       packageName = "get-intrinsic";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz";
-        sha512 = "ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==";
+        url = "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz";
+        sha512 = "aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==";
       };
     };
     "get-own-enumerable-property-symbols-3.0.2" = {
@@ -24335,6 +25010,15 @@ let
         sha512 = "nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==";
       };
     };
+    "get-stream-6.0.0" = {
+      name = "get-stream";
+      packageName = "get-stream";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz";
+        sha512 = "A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==";
+      };
+    };
     "get-uri-2.0.4" = {
       name = "get-uri";
       packageName = "get-uri";
@@ -24560,6 +25244,15 @@ let
         sha512 = "KlIa5jvMYLjXMQXkqpFzobsyD/V2K5DRHl5OAf+6oDFPlPLxrGDVQlIdI63c4/Kt6kai4kALENSALlzTGST3GQ==";
       };
     };
+    "git-url-parse-11.4.3" = {
+      name = "git-url-parse";
+      packageName = "git-url-parse";
+      version = "11.4.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.4.3.tgz";
+        sha512 = "LZTTk0nqJnKN48YRtOpR8H5SEfp1oM2tls90NuZmBxN95PnCvmuXGzqQ4QmVirBgKx2KPYfPGteX3/raWjKenQ==";
+      };
+    };
     "gitconfiglocal-1.0.0" = {
       name = "gitconfiglocal";
       packageName = "gitconfiglocal";
@@ -24596,6 +25289,15 @@ let
         sha512 = "gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q==";
       };
     };
+    "github-url-from-git-1.5.0" = {
+      name = "github-url-from-git";
+      packageName = "github-url-from-git";
+      version = "1.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/github-url-from-git/-/github-url-from-git-1.5.0.tgz";
+        sha1 = "f985fedcc0a9aa579dc88d7aff068d55cc6251a0";
+      };
+    };
     "github-username-3.0.0" = {
       name = "github-username";
       packageName = "github-username";
@@ -24722,6 +25424,24 @@ let
         sha512 = "FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==";
       };
     };
+    "glob-slash-1.0.0" = {
+      name = "glob-slash";
+      packageName = "glob-slash";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob-slash/-/glob-slash-1.0.0.tgz";
+        sha1 = "fe52efa433233f74a2fe64c7abb9bc848202ab95";
+      };
+    };
+    "glob-slasher-1.0.1" = {
+      name = "glob-slasher";
+      packageName = "glob-slasher";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob-slasher/-/glob-slasher-1.0.1.tgz";
+        sha1 = "747a0e5bb222642ee10d3e05443e109493cb0f8e";
+      };
+    };
     "glob-stream-6.1.0" = {
       name = "glob-stream";
       packageName = "glob-stream";
@@ -24794,13 +25514,13 @@ let
         sha1 = "b319c0dd4607f353f3be9cca4c72fc148c49f445";
       };
     };
-    "global-dirs-2.0.1" = {
+    "global-dirs-2.1.0" = {
       name = "global-dirs";
       packageName = "global-dirs";
-      version = "2.0.1";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz";
-        sha512 = "5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==";
+        url = "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz";
+        sha512 = "MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==";
       };
     };
     "global-https://github.com/component/global/archive/v2.0.1.tar.gz" = {
@@ -25056,6 +25776,15 @@ let
         sha1 = "d53b30cdf9313dffb7dc9a0d477096aa6d145c50";
       };
     };
+    "google-auth-library-6.1.3" = {
+      name = "google-auth-library";
+      packageName = "google-auth-library";
+      version = "6.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/google-auth-library/-/google-auth-library-6.1.3.tgz";
+        sha512 = "m9mwvY3GWbr7ZYEbl61isWmk+fvTmOt0YNUfPOUY2VH8K5pZlAIWJjxEi0PqR3OjMretyiQLI6GURMrPSwHQ2g==";
+      };
+    };
     "google-closure-compiler-js-20170910.0.1" = {
       name = "google-closure-compiler-js";
       packageName = "google-closure-compiler-js";
@@ -25065,6 +25794,24 @@ let
         sha512 = "Vric7QFWxzHFxITZ10bmlG1H/5rhODb7hJuWyKWMD8GflpQzRmbMVqkFp3fKvN+U9tPwZItGVhkiOR+84PX3ew==";
       };
     };
+    "google-gax-2.9.2" = {
+      name = "google-gax";
+      packageName = "google-gax";
+      version = "2.9.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/google-gax/-/google-gax-2.9.2.tgz";
+        sha512 = "Pve4osEzNKpBZqFXMfGKBbKCtgnHpUe5IQMh5Ou+Xtg8nLcba94L3gF0xgM5phMdGRRqJn0SMjcuEVmOYu7EBg==";
+      };
+    };
+    "google-p12-pem-3.0.3" = {
+      name = "google-p12-pem";
+      packageName = "google-p12-pem";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.0.3.tgz";
+        sha512 = "wS0ek4ZtFx/ACKYF3JhyGe5kzH7pgiQ7J5otlumqR9psmWMYc+U9cErKlCYVYHoUaidXHdZ2xbo34kB+S+24hA==";
+      };
+    };
     "goosig-0.9.0" = {
       name = "goosig";
       packageName = "goosig";
@@ -25092,6 +25839,15 @@ let
         sha1 = "d9430ba32f6a30218243884418767340aafc0400";
       };
     };
+    "got-10.7.0" = {
+      name = "got";
+      packageName = "got";
+      version = "10.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/got/-/got-10.7.0.tgz";
+        sha512 = "aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==";
+      };
+    };
     "got-11.4.0" = {
       name = "got";
       packageName = "got";
@@ -25110,13 +25866,13 @@ let
         sha512 = "yUhpEDLeuGiGJjRSzEq3kvt4zJtAcjKmhIiwNp/eUs75tRlXfWcHo5tcBaMQtnjHWC7nQYT5HkY/l0QOQTkVww==";
       };
     };
-    "got-11.8.0" = {
+    "got-11.8.1" = {
       name = "got";
       packageName = "got";
-      version = "11.8.0";
+      version = "11.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/got/-/got-11.8.0.tgz";
-        sha512 = "k9noyoIIY9EejuhaBNLyZ31D5328LeqnyPNXJQb2XlJZcKakLqN5m6O/ikhq/0lw56kUYS54fVm+D1x57YC9oQ==";
+        url = "https://registry.npmjs.org/got/-/got-11.8.1.tgz";
+        sha512 = "9aYdZL+6nHmvJwHALLwKSUZ0hMwGaJGYv3hoPLPgnT8BoBXm1SjnZeky+91tfwJaDzun2s4RsBRy48IEYv2q2Q==";
       };
     };
     "got-3.3.1" = {
@@ -25245,6 +26001,15 @@ let
         sha512 = "jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==";
       };
     };
+    "graphql-0.11.7" = {
+      name = "graphql";
+      packageName = "graphql";
+      version = "0.11.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graphql/-/graphql-0.11.7.tgz";
+        sha512 = "x7uDjyz8Jx+QPbpCFCMQ8lltnQa4p4vSYHx6ADe8rVYRTdsyhCJbvSty5DAsLVmU6cGakl+r8HQYolKHxk/tiw==";
+      };
+    };
     "graphql-0.13.2" = {
       name = "graphql";
       packageName = "graphql";
@@ -25299,13 +26064,13 @@ let
         sha512 = "MBY0wEjvcgJtZUyoqpPvOE1e5qPI0hJaa1gKTqjonSFiCsNHX2lykNjpOPcodmAgH1V06ELxhGnm9kcVzqvi/g==";
       };
     };
-    "graphql-extensions-0.12.6" = {
+    "graphql-extensions-0.12.7" = {
       name = "graphql-extensions";
       packageName = "graphql-extensions";
-      version = "0.12.6";
+      version = "0.12.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.12.6.tgz";
-        sha512 = "EUNw+OIRXYTPxToSoJjhJvS5aGa94KkdkZnL1I9DCZT64/+rzQNeLeGj+goj2RYuYvoQe1Bmcx0CNZ1GqwBhng==";
+        url = "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.12.7.tgz";
+        sha512 = "yc9qOmEmWVZNkux9m0eCiHdtYSwNZRHkFhgfKfDn4u/gpsJolft1iyMUADnG/eytiRW0CGZFBpZjHkJhpginuQ==";
       };
     };
     "graphql-subscriptions-1.1.0" = {
@@ -25371,13 +26136,13 @@ let
         sha512 = "U2OiDI5VxYmzRKw0Z2dmfk0zkqMRaecH9Smh1U277gVgVe9Qn+18xqf4skwr4YJszGIh7iQDZ57+5ygOK9sM/Q==";
       };
     };
-    "graphql-ws-2.0.0" = {
+    "graphql-ws-3.1.0" = {
       name = "graphql-ws";
       packageName = "graphql-ws";
-      version = "2.0.0";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-ws/-/graphql-ws-2.0.0.tgz";
-        sha512 = "8mueXeT7PswGeh/LObzKSYij+uD0FMGrvanHNaHuuUaiCfzqzc1ReflhEhzpS6bo4rxzK8L4aZtJ9Ci3hFQnIw==";
+        url = "https://registry.npmjs.org/graphql-ws/-/graphql-ws-3.1.0.tgz";
+        sha512 = "zbex3FSiFz0iRgfkzDNWpOY/sYWoX+iZ5XUhakaDwOh99HSuk8rPt5suuxdXUVzEg5TGQ9rwzNaz/+mTPtS0yg==";
       };
     };
     "gray-matter-2.1.1" = {
@@ -25443,6 +26208,15 @@ let
         sha512 = "cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==";
       };
     };
+    "gtoken-5.1.0" = {
+      name = "gtoken";
+      packageName = "gtoken";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gtoken/-/gtoken-5.1.0.tgz";
+        sha512 = "4d8N6Lk8TEAHl9vVoRVMh9BNOKWVgl2DdNtr3428O75r3QFrF/a5MMu851VmK0AA8+iSvbwRv69k5XnMLURGhg==";
+      };
+    };
     "gulp-4.0.2" = {
       name = "gulp";
       packageName = "gulp";
@@ -26217,13 +26991,13 @@ let
         sha1 = "b86ce808598e8a9d1892c571f3cedd86fc9f0653";
       };
     };
-    "highlight.js-10.4.1" = {
+    "highlight.js-10.5.0" = {
       name = "highlight.js";
       packageName = "highlight.js";
-      version = "10.4.1";
+      version = "10.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/highlight.js/-/highlight.js-10.4.1.tgz";
-        sha512 = "yR5lWvNz7c85OhVAEAeFhVCc/GV4C30Fjzc/rCP0aCWzc1UUOPUk55dK/qdwTZHBvMZo+eZ2jpk62ndX/xMFlg==";
+        url = "https://registry.npmjs.org/highlight.js/-/highlight.js-10.5.0.tgz";
+        sha512 = "xTmvd9HiIHR6L53TMC7TKolEj65zG1XU+Onr8oi86mYa+nLcIbxTTWkpW7CsEwv/vK7u1zb8alZIMLDqqN6KTw==";
       };
     };
     "highlight.js-8.2.0" = {
@@ -26325,6 +27099,15 @@ let
         sha512 = "/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==";
       };
     };
+    "home-dir-1.0.0" = {
+      name = "home-dir";
+      packageName = "home-dir";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/home-dir/-/home-dir-1.0.0.tgz";
+        sha1 = "2917eb44bdc9072ceda942579543847e3017fe4e";
+      };
+    };
     "homedir-polyfill-1.0.3" = {
       name = "homedir-polyfill";
       packageName = "homedir-polyfill";
@@ -26433,13 +27216,13 @@ let
         sha512 = "D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==";
       };
     };
-    "html-entities-1.3.1" = {
+    "html-entities-1.4.0" = {
       name = "html-entities";
       packageName = "html-entities";
-      version = "1.3.1";
+      version = "1.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz";
-        sha512 = "rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==";
+        url = "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz";
+        sha512 = "8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==";
       };
     };
     "html-loader-1.1.0" = {
@@ -26586,6 +27369,15 @@ let
         sha512 = "4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q==";
       };
     };
+    "htmlparser2-6.0.0" = {
+      name = "htmlparser2";
+      packageName = "htmlparser2";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.0.0.tgz";
+        sha512 = "numTQtDZMoh78zJpaNdJ9MXb2cv5G3jwUoe3dMQODubZvLoGvTE/Ofp6sHvH8OGKcN/8A47pGLi/k58xHP/Tfw==";
+      };
+    };
     "http-auth-2.0.7" = {
       name = "http-auth";
       packageName = "http-auth";
@@ -26713,13 +27505,13 @@ let
         sha1 = "3bd6d6fde6e3172c9334c3b33b6c193d80fe1137";
       };
     };
-    "http-parser-js-0.5.2" = {
+    "http-parser-js-0.5.3" = {
       name = "http-parser-js";
       packageName = "http-parser-js";
-      version = "0.5.2";
+      version = "0.5.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.2.tgz";
-        sha512 = "opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ==";
+        url = "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz";
+        sha512 = "t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==";
       };
     };
     "http-proxy-1.18.1" = {
@@ -26911,6 +27703,15 @@ let
         sha512 = "SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==";
       };
     };
+    "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==";
+      };
+    };
     "humanize-0.0.9" = {
       name = "humanize";
       packageName = "humanize";
@@ -27307,13 +28108,13 @@ let
         sha512 = "6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==";
       };
     };
-    "import-fresh-3.2.2" = {
+    "import-fresh-3.3.0" = {
       name = "import-fresh";
       packageName = "import-fresh";
-      version = "3.2.2";
+      version = "3.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz";
-        sha512 = "cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==";
+        url = "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz";
+        sha512 = "veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==";
       };
     };
     "import-from-3.0.0" = {
@@ -27541,13 +28342,40 @@ let
         sha1 = "4e808c2ce144c6c1788918e034d6797bc6cf6281";
       };
     };
-    "ini-1.3.5" = {
+    "ini-1.3.6" = {
       name = "ini";
       packageName = "ini";
-      version = "1.3.5";
+      version = "1.3.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ini/-/ini-1.3.6.tgz";
+        sha512 = "IZUoxEjNjubzrmvzZU4lKP7OnYmX72XRl3sqkfJhBKweKi5rnGi5+IUdlj/H1M+Ip5JQ1WzaDMOBRY90Ajc5jg==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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==";
+      };
+    };
+    "ini-2.0.0" = {
+      name = "ini";
+      packageName = "ini";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz";
-        sha512 = "RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==";
+        url = "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz";
+        sha512 = "7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==";
       };
     };
     "init-package-json-1.10.3" = {
@@ -27559,6 +28387,15 @@ let
         sha512 = "zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==";
       };
     };
+    "ink-2.7.1" = {
+      name = "ink";
+      packageName = "ink";
+      version = "2.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ink/-/ink-2.7.1.tgz";
+        sha512 = "s7lJuQDJEdjqtaIWhp3KYHl6WV3J04U9zoQ6wVc+Xoa06XM27SXUY57qC5DO46xkF0CfgXMKkKNcgvSu/SAEpA==";
+      };
+    };
     "ink-3.0.8" = {
       name = "ink";
       packageName = "ink";
@@ -27568,6 +28405,33 @@ let
         sha512 = "ubMFylXYaG4IkXQVhPautbhV/p6Lo0GlvAMI/jh8cGJQ39yeznJbaTTJP2CqZXezA4GOHzalpwCWqux/NEY38w==";
       };
     };
+    "ink-confirm-input-2.0.0" = {
+      name = "ink-confirm-input";
+      packageName = "ink-confirm-input";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ink-confirm-input/-/ink-confirm-input-2.0.0.tgz";
+        sha512 = "YCd7a9XW0DIIbOhF3XiLo3WF86mOart9qI1qN56wT5IDJxU+j8BanEZh5/QXoazyIPSv1iXlHPIlRB5cbZIMIA==";
+      };
+    };
+    "ink-spinner-3.1.0" = {
+      name = "ink-spinner";
+      packageName = "ink-spinner";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ink-spinner/-/ink-spinner-3.1.0.tgz";
+        sha512 = "sPqmE4qeJ43vJFk9DGLd0wIqhMBAr3129ZqHPt7b847fVl+YTZ3g96khI82Db+FYE7v/Fc5B3lp4ZNtJfqpRUg==";
+      };
+    };
+    "ink-text-input-3.3.0" = {
+      name = "ink-text-input";
+      packageName = "ink-text-input";
+      version = "3.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ink-text-input/-/ink-text-input-3.3.0.tgz";
+        sha512 = "gO4wrOf2ie3YuEARTIwGlw37lMjFn3Gk6CKIDrMlHb46WFMagZU7DplohjM24zynlqfnXA5UDEIfC2NBcvD8kg==";
+      };
+    };
     "ink-text-input-4.0.1" = {
       name = "ink-text-input";
       packageName = "ink-text-input";
@@ -27667,6 +28531,15 @@ let
         sha512 = "QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==";
       };
     };
+    "inquirer-6.3.1" = {
+      name = "inquirer";
+      packageName = "inquirer";
+      version = "6.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inquirer/-/inquirer-6.3.1.tgz";
+        sha512 = "MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA==";
+      };
+    };
     "inquirer-6.5.2" = {
       name = "inquirer";
       packageName = "inquirer";
@@ -27694,6 +28567,15 @@ let
         sha512 = "zvAc+A6SZdcN+earG5SsBu1RnQdtBS4o8wZ/OqJiCfL34cfOx+twVRq7wumYix6Rkdjn1N2nVCcO3wHqKqgdGg==";
       };
     };
+    "inquirer-autosubmit-prompt-0.2.0" = {
+      name = "inquirer-autosubmit-prompt";
+      packageName = "inquirer-autosubmit-prompt";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inquirer-autosubmit-prompt/-/inquirer-autosubmit-prompt-0.2.0.tgz";
+        sha512 = "mzNrusCk5L6kSzlN0Ioddn8yzrhYNLli+Sn2ZxMuLechMYAzakiFCIULxsxlQb5YKzthLGfrFACcWoAvM7p04Q==";
+      };
+    };
     "insert-module-globals-7.2.1" = {
       name = "insert-module-globals";
       packageName = "insert-module-globals";
@@ -27784,6 +28666,15 @@ let
         sha512 = "MAQUJuIo7Xqk8EVNP+6d3CKq9c80hi4tjIbIAT6lmGW9W6WzlHiu9PS8uSuUYU+Do+j1baiFp3H25XEVxDIG2g==";
       };
     };
+    "install-artifact-from-github-1.2.0" = {
+      name = "install-artifact-from-github";
+      packageName = "install-artifact-from-github";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/install-artifact-from-github/-/install-artifact-from-github-1.2.0.tgz";
+        sha512 = "3OxCPcY55XlVM3kkfIpeCgmoSKnMsz2A3Dbhsq0RXpIknKQmrX1YiznCeW9cD2ItFmDxziA3w6Eg8d80AoL3oA==";
+      };
+    };
     "int53-1.0.0" = {
       name = "int53";
       packageName = "int53";
@@ -27820,6 +28711,15 @@ let
         sha512 = "S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==";
       };
     };
+    "internal-slot-1.0.2" = {
+      name = "internal-slot";
+      packageName = "internal-slot";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.2.tgz";
+        sha512 = "2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g==";
+      };
+    };
     "interpret-1.1.0" = {
       name = "interpret";
       packageName = "interpret";
@@ -27955,6 +28855,15 @@ let
         sha1 = "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9";
       };
     };
+    "ip-regex-4.2.0" = {
+      name = "ip-regex";
+      packageName = "ip-regex";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ip-regex/-/ip-regex-4.2.0.tgz";
+        sha512 = "n5cDDeTWWRwK1EBoWwRti+8nP4NbytBBY0pldmnIkq6Z55KNFmWofh4rl9dPZpj+U/nVq7gweR3ylrvMt4YZ5A==";
+      };
+    };
     "ip-set-1.0.2" = {
       name = "ip-set";
       packageName = "ip-set";
@@ -28207,13 +29116,13 @@ let
         sha512 = "ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==";
       };
     };
-    "is-boolean-object-1.0.1" = {
+    "is-boolean-object-1.1.0" = {
       name = "is-boolean-object";
       packageName = "is-boolean-object";
-      version = "1.0.1";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.0.1.tgz";
-        sha512 = "TqZuVwa/sppcrhUCAYkGBk7w0yxfQQnxq28fjkO53tnK9FQXmdwz2JS5+GjsWQ6RByES1K40nI+yDic5c9/aAQ==";
+        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" = {
@@ -28405,15 +29314,6 @@ let
         sha1 = "a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1";
       };
     };
-    "is-electron-2.2.0" = {
-      name = "is-electron";
-      packageName = "is-electron";
-      version = "2.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-electron/-/is-electron-2.2.0.tgz";
-        sha512 = "SpMppC2XR3YdxSzczXReBjqs2zGscWQpBIKqwXYBFic0ERaxNVgwLCHwOLZeESfdJQjX0RDvrJ1lBXX2ij+G1Q==";
-      };
-    };
     "is-empty-1.2.0" = {
       name = "is-empty";
       packageName = "is-empty";
@@ -28648,13 +29548,13 @@ let
         sha1 = "3d9877899e6a53efc0160504cde15f82e6f061d5";
       };
     };
-    "is-map-2.0.1" = {
+    "is-map-2.0.2" = {
       name = "is-map";
       packageName = "is-map";
-      version = "2.0.1";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-map/-/is-map-2.0.1.tgz";
-        sha512 = "T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw==";
+        url = "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz";
+        sha512 = "cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==";
       };
     };
     "is-mergeable-object-1.1.1" = {
@@ -29143,13 +30043,22 @@ let
         sha1 = "449ca98299e713038256289ecb2b540dc437cb30";
       };
     };
-    "is-set-2.0.1" = {
+    "is-scoped-2.1.0" = {
+      name = "is-scoped";
+      packageName = "is-scoped";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-scoped/-/is-scoped-2.1.0.tgz";
+        sha512 = "Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==";
+      };
+    };
+    "is-set-2.0.2" = {
       name = "is-set";
       packageName = "is-set";
-      version = "2.0.1";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-set/-/is-set-2.0.1.tgz";
-        sha512 = "eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA==";
+        url = "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz";
+        sha512 = "+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==";
       };
     };
     "is-ssh-1.3.2" = {
@@ -29179,6 +30088,15 @@ let
         sha512 = "XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==";
       };
     };
+    "is-stream-ended-0.1.4" = {
+      name = "is-stream-ended";
+      packageName = "is-stream-ended";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz";
+        sha512 = "xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==";
+      };
+    };
     "is-string-1.0.5" = {
       name = "is-string";
       packageName = "is-string";
@@ -29224,13 +30142,13 @@ let
         sha1 = "4e1aa0fb51bfbcb3e92688001397202c1775b66e";
       };
     };
-    "is-typed-array-1.1.3" = {
+    "is-typed-array-1.1.4" = {
       name = "is-typed-array";
       packageName = "is-typed-array";
-      version = "1.1.3";
+      version = "1.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.3.tgz";
-        sha512 = "BSYUBOK/HJibQ30wWkWold5txYwMUXQct9YHAQJr8fSwvZoiglcqB0pd7vEN23+Tsi9IUEjztdOSzl4qLVYGTQ==";
+        url = "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.4.tgz";
+        sha512 = "ILaRgn4zaSrVNXNGtON6iFNotXW3hAPF3+0fB1usg2jFlWqo5fEDdmJkz0zBfoi7Dgskr8Khi2xZ8cXqZEfXNA==";
       };
     };
     "is-typedarray-1.0.0" = {
@@ -29269,6 +30187,15 @@ let
         sha512 = "ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==";
       };
     };
+    "is-url-superb-4.0.0" = {
+      name = "is-url-superb";
+      packageName = "is-url-superb";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-url-superb/-/is-url-superb-4.0.0.tgz";
+        sha512 = "GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==";
+      };
+    };
     "is-utf8-0.2.1" = {
       name = "is-utf8";
       packageName = "is-utf8";
@@ -29323,6 +30250,15 @@ let
         sha512 = "pi4vhbhVHGLxohUw7PhGsueT4vRGFoXhP7+RGN0jKIv9+8PWYCQTqtADngrxOm2g46hoH0+g8uZZBzMrvVGDmw==";
       };
     };
+    "is-what-3.12.0" = {
+      name = "is-what";
+      packageName = "is-what";
+      version = "3.12.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-what/-/is-what-3.12.0.tgz";
+        sha512 = "2ilQz5/f/o9V7WRWJQmpFYNmQFZ9iM+OXRonZKcYgTkCzjb949Vi4h282PD1UfmgHk666rcWonbRJ++KI41VGw==";
+      };
+    };
     "is-whitespace-character-1.0.4" = {
       name = "is-whitespace-character";
       packageName = "is-whitespace-character";
@@ -29395,6 +30331,15 @@ let
         sha1 = "119556d1d1651a41ba105af803267c80b299f629";
       };
     };
+    "is2-2.0.6" = {
+      name = "is2";
+      packageName = "is2";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is2/-/is2-2.0.6.tgz";
+        sha512 = "+Z62OHOjA6k2sUDOKXoZI3EXv7Fb1K52jpTBLbkfx62bcUeSsrTBLhEquCRDKTx0XE5XbHcG/S2vrtE3lnEDsQ==";
+      };
+    };
     "isarray-0.0.1" = {
       name = "isarray";
       packageName = "isarray";
@@ -29512,6 +30457,15 @@ let
         sha512 = "S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==";
       };
     };
+    "isomorphic-fetch-2.2.1" = {
+      name = "isomorphic-fetch";
+      packageName = "isomorphic-fetch";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz";
+        sha1 = "611ae1acf14f5e81f729507472819fe9733558a9";
+      };
+    };
     "isomorphic-form-data-2.0.0" = {
       name = "isomorphic-form-data";
       packageName = "isomorphic-form-data";
@@ -29557,6 +30511,15 @@ let
         sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
       };
     };
+    "issue-regex-3.1.0" = {
+      name = "issue-regex";
+      packageName = "issue-regex";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/issue-regex/-/issue-regex-3.1.0.tgz";
+        sha512 = "0RHjbtw9QXeSYnIEY5Yrp2QZrdtz21xBDV9C/GIlY2POmgoS6a7qjkYS5siRKXScnuAj5/SPv1C3YForNCHTJA==";
+      };
+    };
     "istanbul-lib-coverage-3.0.0" = {
       name = "istanbul-lib-coverage";
       packageName = "istanbul-lib-coverage";
@@ -29602,6 +30565,15 @@ let
         sha512 = "1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==";
       };
     };
+    "iterall-1.1.3" = {
+      name = "iterall";
+      packageName = "iterall";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/iterall/-/iterall-1.1.3.tgz";
+        sha512 = "Cu/kb+4HiNSejAPhSaN1VukdNTTi/r4/e+yykqjlG/IW+1gZH5b4+Bq3whDX4tvbYugta3r8KTMUiqT3fIGxuQ==";
+      };
+    };
     "iterall-1.2.2" = {
       name = "iterall";
       packageName = "iterall";
@@ -29818,6 +30790,15 @@ let
         sha1 = "a3f222a9aae9f966f5d27c796510e28091764217";
       };
     };
+    "jmp-2.0.0" = {
+      name = "jmp";
+      packageName = "jmp";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jmp/-/jmp-2.0.0.tgz";
+        sha512 = "VATfWVHErQJA2XMtmQjJQHHyQ/hxjHMmsy+egmwRk/RzFchQB4xjrR1iX496VZr+Hyhcr4zvL+IkkSlIYKx6Yw==";
+      };
+    };
     "jodid25519-1.0.2" = {
       name = "jodid25519";
       packageName = "jodid25519";
@@ -29845,22 +30826,22 @@ let
         sha1 = "b8417b750661a392bee2c2537c68b2a9d4977cd5";
       };
     };
-    "joplin-turndown-4.0.30" = {
-      name = "joplin-turndown";
-      packageName = "joplin-turndown";
-      version = "4.0.30";
+    "join-path-1.1.1" = {
+      name = "join-path";
+      packageName = "join-path";
+      version = "1.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/joplin-turndown/-/joplin-turndown-4.0.30.tgz";
-        sha512 = "OrGdNTsjI6/cbx/es9Hl0YI3YTql4SopduFcYCnWTZgqT0SJqILnF2JQxSNnbPnkSDIIRdNOG4+iNzlY6bS1nw==";
+        url = "https://registry.npmjs.org/join-path/-/join-path-1.1.1.tgz";
+        sha1 = "10535a126d24cbd65f7ffcdf15ef2e631076b505";
       };
     };
-    "joplin-turndown-plugin-gfm-1.0.12" = {
-      name = "joplin-turndown-plugin-gfm";
-      packageName = "joplin-turndown-plugin-gfm";
-      version = "1.0.12";
+    "jp-kernel-2.0.0" = {
+      name = "jp-kernel";
+      packageName = "jp-kernel";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/joplin-turndown-plugin-gfm/-/joplin-turndown-plugin-gfm-1.0.12.tgz";
-        sha512 = "qL4+1iycQjZ1fs8zk3jSRk7cg3ROBUHk7GKtiLAQLFzLPKErnILUvz5DLszSQvz3s1sTjPbywLDISVUtBY6HaA==";
+        url = "https://registry.npmjs.org/jp-kernel/-/jp-kernel-2.0.0.tgz";
+        sha512 = "Apz3AqpJhToFlo70mwnlbVyqhJRagzhNKKp84ZMeTqe/Ay9oIno8unm7eFepdlR8m8wz/9JXJQxUjK/3Ku/cpg==";
       };
     };
     "jpeg-js-0.4.2" = {
@@ -30007,6 +30988,15 @@ let
         sha512 = "/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==";
       };
     };
+    "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==";
+      };
+    };
     "js-yaml-3.2.7" = {
       name = "js-yaml";
       packageName = "js-yaml";
@@ -30142,6 +31132,51 @@ let
         sha512 = "OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==";
       };
     };
+    "jsii-1.16.0" = {
+      name = "jsii";
+      packageName = "jsii";
+      version = "1.16.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsii/-/jsii-1.16.0.tgz";
+        sha512 = "8cgroyD6LOlFUlXUMAmjtUhzgyF3oQpVVpIdDzqcn2dNgs7iDnZN/Wo27MfZj8usbIBLLK3DYv7DSf+0/H0yWA==";
+      };
+    };
+    "jsii-pacmak-1.16.0" = {
+      name = "jsii-pacmak";
+      packageName = "jsii-pacmak";
+      version = "1.16.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.16.0.tgz";
+        sha512 = "fjNiW8CliOO/GTzbhdA3kJGBvG1PDh2suQKfsUdh2sD0HSRmQPSpVydSmK0pfav7PD6OOfXsWvWI6WlKzNY0pg==";
+      };
+    };
+    "jsii-reflect-1.16.0" = {
+      name = "jsii-reflect";
+      packageName = "jsii-reflect";
+      version = "1.16.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.16.0.tgz";
+        sha512 = "1zxZwni5S9WUQrNJJA+fVVkd1s54u6fdxjuiHpkZUvxkcPUnsuurL8KWImMEvbdz5ykGHEmnjMOOiyRh/XEc2Q==";
+      };
+    };
+    "jsii-rosetta-1.16.0" = {
+      name = "jsii-rosetta";
+      packageName = "jsii-rosetta";
+      version = "1.16.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.16.0.tgz";
+        sha512 = "1FFGV+JmwyljCNjc9bkW40MIQXvPgNxq+V3zx8/0+FM51S/0O5EvTa/413LX8fzB8sWH0G42NqFa+8k3k9s2hw==";
+      };
+    };
+    "jsii-srcmak-0.1.176" = {
+      name = "jsii-srcmak";
+      packageName = "jsii-srcmak";
+      version = "0.1.176";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsii-srcmak/-/jsii-srcmak-0.1.176.tgz";
+        sha512 = "lX2NuqUceoVVjr0Grm5DRYRyFIDv3cLK6zpAghCu4ZBUlQj8m1ZiOOTu7MUj0yAHi+6WMqP6DP7Q6aT34vo0dw==";
+      };
+    };
     "json-bigint-0.2.3" = {
       name = "json-bigint";
       packageName = "json-bigint";
@@ -30151,6 +31186,15 @@ let
         sha1 = "118d7f6ff1d38659f19f94cf73e64a75a3f988a8";
       };
     };
+    "json-bigint-1.0.0" = {
+      name = "json-bigint";
+      packageName = "json-bigint";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz";
+        sha512 = "SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==";
+      };
+    };
     "json-buffer-2.0.11" = {
       name = "json-buffer";
       packageName = "json-buffer";
@@ -30277,6 +31321,15 @@ let
         sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
       };
     };
+    "json-schema-0.2.5" = {
+      name = "json-schema";
+      packageName = "json-schema";
+      version = "0.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.5.tgz";
+        sha512 = "gWJOWYFrhQ8j7pVm0EM8Slr+EPVq1Phf6lvzvD/WCeqkrx/f2xBI0xOsRRS9xCn3I4vKtP519dvs3TP09r24wQ==";
+      };
+    };
     "json-schema-deref-sync-0.13.0" = {
       name = "json-schema-deref-sync";
       packageName = "json-schema-deref-sync";
@@ -30331,6 +31384,15 @@ let
         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-schema-typed-7.0.3" = {
       name = "json-schema-typed";
       packageName = "json-schema-typed";
@@ -30394,6 +31456,15 @@ let
         sha512 = "W9Lq347r8tA1DfMvAGn9QNcgYm4Wm7Yc+k8e6vezpMnRT+NHbtlxgNBXRVjXe9YM6eTn6+p/MKOlV/aABJcSnQ==";
       };
     };
+    "json2jsii-0.1.168" = {
+      name = "json2jsii";
+      packageName = "json2jsii";
+      version = "0.1.168";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json2jsii/-/json2jsii-0.1.168.tgz";
+        sha512 = "ny9avMgMo4zNUnMagHhP2gp+1QTQjQuryO31s0579BwWrlXVTLlmxl/1A9+Bem6QNXqM6VFDEl4iesyD10ypoQ==";
+      };
+    };
     "json3-3.2.6" = {
       name = "json3";
       packageName = "json3";
@@ -30574,6 +31645,15 @@ let
         sha512 = "CXcRvMyTlnR53xMcKnuMzfCA5i/nfblTnnr74CZb6C4vG39eu6w51t7nKmU5MfLfbTgGItliNyjO/ciNPDqClg==";
       };
     };
+    "jsonschema-1.4.0" = {
+      name = "jsonschema";
+      packageName = "jsonschema";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.0.tgz";
+        sha512 = "/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw==";
+      };
+    };
     "jsonwebtoken-8.5.1" = {
       name = "jsonwebtoken";
       packageName = "jsonwebtoken";
@@ -30646,6 +31726,15 @@ 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";
@@ -30962,13 +32051,13 @@ let
         sha1 = "1e80454250018dbad4c3fe94497d6e67b6269c77";
       };
     };
-    "keytar-7.2.0" = {
+    "keytar-7.3.0" = {
       name = "keytar";
       packageName = "keytar";
-      version = "7.2.0";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/keytar/-/keytar-7.2.0.tgz";
-        sha512 = "ECSaWvoLKI5SI0pGpZQeUV1/lpBYfkaxvoSp3zkiPOz05VavwSfLi8DdEaa9N2ekQZv3Chy+o7aP6n9mairBgw==";
+        url = "https://registry.npmjs.org/keytar/-/keytar-7.3.0.tgz";
+        sha512 = "t8YD0ETO5AeRxCaaN4N/hzj3JusIH0ugjVooE724+ozaVG9+l16Mau62T+U8tEhCv7SozY/g69BWF1U+o47qJg==";
       };
     };
     "keyv-3.0.0" = {
@@ -30998,13 +32087,13 @@ let
         sha512 = "zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==";
       };
     };
-    "khroma-1.1.0" = {
+    "khroma-1.1.1" = {
       name = "khroma";
       packageName = "khroma";
-      version = "1.1.0";
+      version = "1.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/khroma/-/khroma-1.1.0.tgz";
-        sha512 = "aTO+YX22tYOLEQJYFiatAj1lc5QZ+H5sHWFRBWNCiKwc5NWNUJZyeSeiHEPeURJ2a1GEVYcmyMUwGjjLe5ec5A==";
+        url = "https://registry.npmjs.org/khroma/-/khroma-1.1.1.tgz";
+        sha512 = "p7SYAiFisFFmLHHCqYBNwmfTrVIlWjUq+Pw81lDvnpaXOj2sR/xszTG4873AeaEO1kYQ50Z1c9CIrtQa6bdNdA==";
       };
     };
     "killable-1.0.1" = {
@@ -31754,15 +32843,6 @@ let
         sha512 = "5lMmsPc9ZtMjBk8rJ8ADKIj6AOgYvRtAuNfboO2TVPZsmcn6gSRyijUsA8KG6DUcJ89/hyQ3cnVRyzO1hbDavw==";
       };
     };
-    "line-column-1.0.2" = {
-      name = "line-column";
-      packageName = "line-column";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/line-column/-/line-column-1.0.2.tgz";
-        sha1 = "d25af2936b6f4849172b312e4792d1d987bc34a2";
-      };
-    };
     "line-reader-0.4.0" = {
       name = "line-reader";
       packageName = "line-reader";
@@ -31790,13 +32870,13 @@ let
         sha1 = "bf967ba0dd31faaf09ab5bdb3676ad7f2aa18493";
       };
     };
-    "link-check-4.5.3" = {
+    "link-check-4.5.4" = {
       name = "link-check";
       packageName = "link-check";
-      version = "4.5.3";
+      version = "4.5.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/link-check/-/link-check-4.5.3.tgz";
-        sha512 = "fEUmR+DVqNq0HZAurR5+8v5ulrsRKN/nfNYA02GHvreceEI0S5LiE19Ggf8XHCDRfVbc/4BYZaldBUG7lwNmIQ==";
+        url = "https://registry.npmjs.org/link-check/-/link-check-4.5.4.tgz";
+        sha512 = "VdjiYrIBNHtqH7NEvIlF/4i0V9xQWkoBry+65DtmmyKyD5qBZ2U9fCJYx75SI5Ms4ILJzGlNNojPKbPMpg5Spg==";
       };
     };
     "linkify-it-2.2.0" = {
@@ -31835,6 +32915,15 @@ let
         sha512 = "RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==";
       };
     };
+    "listr-input-0.2.1" = {
+      name = "listr-input";
+      packageName = "listr-input";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/listr-input/-/listr-input-0.2.1.tgz";
+        sha512 = "oa8iVG870qJq+OuuMK3DjGqFcwsK1SDu+kULp9kEq09TY231aideIZenr3lFOQdASpAr6asuyJBbX62/a3IIhg==";
+      };
+    };
     "listr-silent-renderer-1.1.1" = {
       name = "listr-silent-renderer";
       packageName = "listr-silent-renderer";
@@ -32123,13 +33212,13 @@ let
         sha1 = "c6940128a9d30f8e902cd2cf99fd0cba4ecfc183";
       };
     };
-    "lodash-es-4.17.15" = {
+    "lodash-es-4.17.20" = {
       name = "lodash-es";
       packageName = "lodash-es";
-      version = "4.17.15";
+      version = "4.17.20";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.15.tgz";
-        sha512 = "rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ==";
+        url = "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.20.tgz";
+        sha512 = "JD1COMZsq8maT6mnuz1UMV0jvYD0E0aUsSOdrr1/nAG3dhqQXwRRgeW0cSqH1U43INKcqxaiVIQNOUDld7gRDA==";
       };
     };
     "lodash-id-0.14.0" = {
@@ -32762,6 +33851,15 @@ let
         sha1 = "8ffe20d4b616f56bea8f1aa0c6ebd80dcf742aee";
       };
     };
+    "lodash.isarguments-2.4.1" = {
+      name = "lodash.isarguments";
+      packageName = "lodash.isarguments";
+      version = "2.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-2.4.1.tgz";
+        sha1 = "4931a9c08253adf091ae7ca192258a973876ecca";
+      };
+    };
     "lodash.isarguments-3.1.0" = {
       name = "lodash.isarguments";
       packageName = "lodash.isarguments";
@@ -33113,6 +34211,15 @@ let
         sha1 = "d8757b1da807dde24816b0d6a84bea1a76230b23";
       };
     };
+    "lodash.snakecase-4.1.1" = {
+      name = "lodash.snakecase";
+      packageName = "lodash.snakecase";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz";
+        sha1 = "39d714a35357147837aefd64b5dcbb16becd8f8d";
+      };
+    };
     "lodash.some-4.6.0" = {
       name = "lodash.some";
       packageName = "lodash.some";
@@ -33248,6 +34355,15 @@ let
         sha1 = "a3a17bbf62eeb6240f491846e97c1c4e2a5e1e21";
       };
     };
+    "lodash.values-2.4.1" = {
+      name = "lodash.values";
+      packageName = "lodash.values";
+      version = "2.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.values/-/lodash.values-2.4.1.tgz";
+        sha1 = "abf514436b3cb705001627978cbcf30b1280eea4";
+      };
+    };
     "lodash.xorby-4.7.0" = {
       name = "lodash.xorby";
       packageName = "lodash.xorby";
@@ -33257,6 +34373,15 @@ let
         sha1 = "9c19a6f9f063a6eb53dd03c1b6871799801463d7";
       };
     };
+    "lodash.zip-4.2.0" = {
+      name = "lodash.zip";
+      packageName = "lodash.zip";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz";
+        sha1 = "ec6662e4896408ed4ab6c542a3990b72cc080020";
+      };
+    };
     "log-6.0.0" = {
       name = "log";
       packageName = "log";
@@ -33905,13 +35030,13 @@ let
         sha512 = "07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==";
       };
     };
-    "make-fetch-happen-8.0.10" = {
+    "make-fetch-happen-8.0.12" = {
       name = "make-fetch-happen";
       packageName = "make-fetch-happen";
-      version = "8.0.10";
+      version = "8.0.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.10.tgz";
-        sha512 = "jPLPKQjBmDLK5r1BdyDyNKBytmkv2AsDWm2CxHJh+fqhSmC9Pmb7RQxwOq8xQig9+AWIS49+51k4f6vDQ3VnrQ==";
+        url = "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.12.tgz";
+        sha512 = "cBD7yM72ltWEV+xlLlbimnh5qHwr+thAb/cZLiaZhicVVPVN63BikBvL5OR68+8+z2fvBOgck628vGJ2ulgF6g==";
       };
     };
     "make-iterator-1.0.1" = {
@@ -34085,6 +35210,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-8.4.2" = {
       name = "markdown-it";
       packageName = "markdown-it";
@@ -34157,22 +35291,22 @@ let
         sha512 = "8haIwpAx87DQHcEtzkfsWv2hxg4jOvow6/nJKAMQ2wYRMZQTIfJm9VzrDkqw72Bb4YXBmI0u3GA/3MdXVL/x5g==";
       };
     };
-    "markdown-it-ins-3.0.0" = {
+    "markdown-it-ins-3.0.1" = {
       name = "markdown-it-ins";
       packageName = "markdown-it-ins";
-      version = "3.0.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/markdown-it-ins/-/markdown-it-ins-3.0.0.tgz";
-        sha512 = "+vyAdBuMGwmT2yMlAFJSx2VR/0QZ1onQ/Mkkmr4l9tDFOh5sVoAgRbkgbuSsk+sxJ9vaMH/IQ323ydfvQrPO/Q==";
+        url = "https://registry.npmjs.org/markdown-it-ins/-/markdown-it-ins-3.0.1.tgz";
+        sha512 = "32SSfZqSzqyAmmQ4SHvhxbFqSzPDqsZgMHDwxqPzp+v+t8RsmqsBZRG+RfRQskJko9PfKC2/oxyOs4Yg/CfiRw==";
       };
     };
-    "markdown-it-mark-3.0.0" = {
+    "markdown-it-mark-3.0.1" = {
       name = "markdown-it-mark";
       packageName = "markdown-it-mark";
-      version = "3.0.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/markdown-it-mark/-/markdown-it-mark-3.0.0.tgz";
-        sha512 = "HqMWeKfMMOu4zBO0emmxsoMWmbf2cPKZY1wP6FsTbKmicFfp5y4L3KXAsNeO1rM6NTJVOrNlLKMPjWzriBGspw==";
+        url = "https://registry.npmjs.org/markdown-it-mark/-/markdown-it-mark-3.0.1.tgz";
+        sha512 = "HyxjAu6BRsdt6Xcv6TKVQnkz/E70TdGXEFHRYBGLncRE9lBFwDNLVtFojKxjJWgJ+5XxUwLaHXy+2sGBbDn+4A==";
       };
     };
     "markdown-it-multimd-table-4.0.3" = {
@@ -34292,13 +35426,22 @@ let
         sha512 = "EGwzEeCcLniFX51DhTpmTom+dSA/MG/OBUDjnWtHbEnjAH180VzUeAw+oE4+Zv+CoYBWyRlYOTR0N8SO9R1PVw==";
       };
     };
-    "marked-1.2.5" = {
+    "marked-1.2.7" = {
       name = "marked";
       packageName = "marked";
-      version = "1.2.5";
+      version = "1.2.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/marked/-/marked-1.2.7.tgz";
+        sha512 = "No11hFYcXr/zkBvL6qFmAp1z6BKY3zqLMHny/JN/ey+al7qwCM2+CMBL9BOgqMxZU36fz4cCWfn2poWIf7QRXA==";
+      };
+    };
+    "marked-terminal-3.3.0" = {
+      name = "marked-terminal";
+      packageName = "marked-terminal";
+      version = "3.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/marked/-/marked-1.2.5.tgz";
-        sha512 = "2AlqgYnVPOc9WDyWu7S5DJaEZsfk6dNh/neatQ3IHUW4QLutM/VPSH9lG7bif+XjFWc9K9XR3QvR+fXuECmfdA==";
+        url = "https://registry.npmjs.org/marked-terminal/-/marked-terminal-3.3.0.tgz";
+        sha512 = "+IUQJ5VlZoAFsM5MHNT7g3RHSkA3eETqhRCdXv4niUMAKHQ7lb1yvAcuGPmm4soxhmtX13u4Li6ZToXtvSEH+A==";
       };
     };
     "marked-terminal-4.1.0" = {
@@ -34535,22 +35678,22 @@ let
         sha512 = "7GlnT24gEwDrdAwEHrU4Vv5lLWrEer4KOkAiKT9nYstsTad7Oc1TwqT2zIMKRdZF7cTuaf+GA1E4Kv7jJh8mPA==";
       };
     };
-    "mdast-util-from-markdown-0.8.1" = {
+    "mdast-util-from-markdown-0.8.4" = {
       name = "mdast-util-from-markdown";
       packageName = "mdast-util-from-markdown";
-      version = "0.8.1";
+      version = "0.8.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.1.tgz";
-        sha512 = "qJXNcFcuCSPqUF0Tb0uYcFDIq67qwB3sxo9RPdf9vG8T90ViKnksFqdB/Coq2a7sTnxL/Ify2y7aIQXDkQFH0w==";
+        url = "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.4.tgz";
+        sha512 = "jj891B5pV2r63n2kBTFh8cRI2uR9LQHsXG1zSDqfhXkIlDzrTcIlbB5+5aaYEkl8vOPIOPLf8VT7Ere1wWTMdw==";
       };
     };
-    "mdast-util-to-markdown-0.5.4" = {
+    "mdast-util-to-markdown-0.6.2" = {
       name = "mdast-util-to-markdown";
       packageName = "mdast-util-to-markdown";
-      version = "0.5.4";
+      version = "0.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.5.4.tgz";
-        sha512 = "0jQTkbWYx0HdEA/h++7faebJWr5JyBoBeiRf0u3F4F3QtnyyGaWIsOwo749kRb1ttKrLLr+wRtOkfou9yB0p6A==";
+        url = "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.2.tgz";
+        sha512 = "iRczns6WMvu0hUw02LXsPDJshBIwtUPbvHBWo19IQeU0YqmzlA8Pd30U8V7uiI0VPkxzS7A/NXBXH6u+HS87Zg==";
       };
     };
     "mdast-util-to-nlcst-4.0.1" = {
@@ -34562,15 +35705,6 @@ let
         sha512 = "Y4ffygj85MTt70STKnEquw6k73jYWJBaYcb4ITAKgSNokZF7fH8rEHZ1GsRY/JaxqUevMaEnsDmkVv5Z9uVRdg==";
       };
     };
-    "mdast-util-to-string-1.1.0" = {
-      name = "mdast-util-to-string";
-      packageName = "mdast-util-to-string";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz";
-        sha512 = "jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==";
-      };
-    };
     "mdast-util-to-string-2.0.0" = {
       name = "mdast-util-to-string";
       packageName = "mdast-util-to-string";
@@ -34904,13 +36038,13 @@ let
         sha512 = "GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA==";
       };
     };
-    "meow-8.0.0" = {
+    "meow-8.1.0" = {
       name = "meow";
       packageName = "meow";
-      version = "8.0.0";
+      version = "8.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/meow/-/meow-8.0.0.tgz";
-        sha512 = "nbsTRz2fwniJBFgUkcdISq8y/q9n9VbiHYbfwklFh5V4V2uAcxtKQkDc0yCLPM/kP0d+inZBewn3zJqewHE7kg==";
+        url = "https://registry.npmjs.org/meow/-/meow-8.1.0.tgz";
+        sha512 = "fNWkgM1UVMey2kf24yLiccxLihc5W+6zVus3/N0b+VfnJgxV99E9u04X6NAiKdg6ED7DAQBX5sy36NM0QJZkWA==";
       };
     };
     "merge-1.2.1" = {
@@ -35003,13 +36137,13 @@ let
         sha1 = "401fdec7ec21cdb9e03cd3d3021398da21b27085";
       };
     };
-    "metals-languageclient-0.3.3" = {
+    "metals-languageclient-0.4.0" = {
       name = "metals-languageclient";
       packageName = "metals-languageclient";
-      version = "0.3.3";
+      version = "0.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/metals-languageclient/-/metals-languageclient-0.3.3.tgz";
-        sha512 = "lcYMlelg5pHFxFR1oz6vqZA9M6bi2IcCcPdkc/OAOg1KTkS5fGBrW8RXGnbKx/j+w0hQ3sUJsg16x5U/ikXVVA==";
+        url = "https://registry.npmjs.org/metals-languageclient/-/metals-languageclient-0.4.0.tgz";
+        sha512 = "gvQ1NYkV7u0dbA59STd9Hleor23vztQY8WaIgDO1udb7tJM/NrS7ZLLxY9H6CDwoMiZhXaUvlpCjGwn/t8qTzg==";
       };
     };
     "metalsmith-2.3.0" = {
@@ -35021,6 +36155,15 @@ let
         sha1 = "833afbb5a2a6385e2d9ae3d935e39e33eaea5231";
       };
     };
+    "method-missing-1.2.4" = {
+      name = "method-missing";
+      packageName = "method-missing";
+      version = "1.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/method-missing/-/method-missing-1.2.4.tgz";
+        sha1 = "1fbf19c136e78b4b2c4e1f5541915fb0d589abe7";
+      };
+    };
     "method-override-3.0.0" = {
       name = "method-override";
       packageName = "method-override";
@@ -35147,13 +36290,13 @@ let
         sha512 = "jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==";
       };
     };
-    "micromark-2.10.1" = {
+    "micromark-2.11.2" = {
       name = "micromark";
       packageName = "micromark";
-      version = "2.10.1";
+      version = "2.11.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/micromark/-/micromark-2.10.1.tgz";
-        sha512 = "fUuVF8sC1X7wsCS29SYQ2ZfIZYbTymp0EYr6sab3idFjigFFjGa5UwoniPlV9tAgntjuapW1t9U+S0yDYeGKHQ==";
+        url = "https://registry.npmjs.org/micromark/-/micromark-2.11.2.tgz";
+        sha512 = "IXuP76p2uj8uMg4FQc1cRE7lPCLsfAXuEfdjtdO55VRiFO1asrCSQ5g43NmPqFtRwzEnEhafRVzn2jg0UiKArQ==";
       };
     };
     "micromatch-2.3.11" = {
@@ -35264,6 +36407,15 @@ let
         sha512 = "RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==";
       };
     };
+    "mime-2.4.7" = {
+      name = "mime";
+      packageName = "mime";
+      version = "2.4.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz";
+        sha512 = "dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==";
+      };
+    };
     "mime-db-1.33.0" = {
       name = "mime-db";
       packageName = "mime-db";
@@ -35309,6 +36461,15 @@ let
         sha512 = "JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==";
       };
     };
+    "mime-types-2.1.28" = {
+      name = "mime-types";
+      packageName = "mime-types";
+      version = "2.1.28";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz";
+        sha512 = "0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==";
+      };
+    };
     "mimic-fn-1.2.0" = {
       name = "mimic-fn";
       packageName = "mimic-fn";
@@ -36101,6 +37262,15 @@ let
         sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
       };
     };
+    "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==";
+      };
+    };
     "msgpack-lite-0.1.26" = {
       name = "msgpack-lite";
       packageName = "msgpack-lite";
@@ -36263,13 +37433,13 @@ let
         sha1 = "2a8f2ddf70eed564dff2d57f1e1a137d9f05078b";
       };
     };
-    "multiserver-3.6.0" = {
+    "multiserver-3.7.0" = {
       name = "multiserver";
       packageName = "multiserver";
-      version = "3.6.0";
+      version = "3.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/multiserver/-/multiserver-3.6.0.tgz";
-        sha512 = "MeANpx7//lJTwYKLYfsucdRvDafbyxaijUm9BhmF+QfLBMGRebNoKRYLhZItbHYAcsI0HBTtpBVHNw+bmRRnFQ==";
+        url = "https://registry.npmjs.org/multiserver/-/multiserver-3.7.0.tgz";
+        sha512 = "70SSDMNT+e3VsDG4x7OKFW8+UqyZsBWfKD9rAvsRWCbMe9ySODheJCZ91Xyha5FrA32UtWIHGSY3m5jATfEmVQ==";
       };
     };
     "multiserver-address-1.0.1" = {
@@ -36335,6 +37505,15 @@ let
         sha512 = "yL5VE97+OXn4+Er3THSmTdCFCtx5hHWzrolvH+JObZnUYwuaG7XV+Ch4fR2cIrcYI0tFHxS7iyFYl14bW8y2sA==";
       };
     };
+    "mustache-4.1.0" = {
+      name = "mustache";
+      packageName = "mustache";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mustache/-/mustache-4.1.0.tgz";
+        sha512 = "0FsgP/WVq4mKyjolIyX+Z9Bd+3WS8GOwoUTyKXT5cTYMGeauNTi2HPCwERqseC1IHAy0Z7MDZnJBfjabd4O8GQ==";
+      };
+    };
     "mutate.js-0.2.0" = {
       name = "mutate.js";
       packageName = "mutate.js";
@@ -36650,6 +37829,15 @@ let
         sha512 = "A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==";
       };
     };
+    "nash-3.0.0" = {
+      name = "nash";
+      packageName = "nash";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nash/-/nash-3.0.0.tgz";
+        sha512 = "M5SahEycXUmko3zOvsBkF6p94CWLhnyy9hfpQ9Qzp+rQkQ8D1OaTlfTl1OBWktq9Fak3oDXKU+ev7tiMaMu+1w==";
+      };
+    };
     "native-promise-only-0.8.1" = {
       name = "native-promise-only";
       packageName = "native-promise-only";
@@ -36794,13 +37982,13 @@ let
         sha1 = "ae603b36b134bcec347b452422b0bf98d5832ec8";
       };
     };
-    "nearley-2.20.0" = {
+    "nearley-2.20.1" = {
       name = "nearley";
       packageName = "nearley";
-      version = "2.20.0";
+      version = "2.20.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nearley/-/nearley-2.20.0.tgz";
-        sha512 = "Ufhpu2Lrhbh7/InRnQmlgol/L4inT0ZCIh84xKb84zGZyw6PH/VeST3A7vRQTHuHmJHRBj4bw4ujEfJ4bprOig==";
+        url = "https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz";
+        sha512 = "+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==";
       };
     };
     "neat-csv-2.1.0" = {
@@ -36930,6 +38118,15 @@ let
         sha256 = "243e90fbf6616ef39f3c71bbcd027799e35cbf2ef3f25203676f65b20f7f7394";
       };
     };
+    "nel-1.2.0" = {
+      name = "nel";
+      packageName = "nel";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nel/-/nel-1.2.0.tgz";
+        sha512 = "yt96hdYomrZC5ZvYHMCsRF5KIaZ8Aue5Gff4sH+6GmPDMJft097x5JG1DicLnfgSYE56CLP6ztZEfb+3St91Yw==";
+      };
+    };
     "neo-async-2.6.2" = {
       name = "neo-async";
       packageName = "neo-async";
@@ -36966,6 +38163,24 @@ let
         sha512 = "x+VqJ+yop05OUpeaT4fhz/NAvJQFjtNhW1s+/i6oP/EZS6/+B0u+qCANF8uP9u3UJcmWvlJmrRoDhj62Xvtwug==";
       };
     };
+    "netlify-5.0.2" = {
+      name = "netlify";
+      packageName = "netlify";
+      version = "5.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/netlify/-/netlify-5.0.2.tgz";
+        sha512 = "xAbxN/7D3l8vp0KT2FpVqSm72LAukRaJpM2liKylJl1La54s8uLgILL6eUUCKsWrEGTiI1o8w/ApqKrIQdeNOg==";
+      };
+    };
+    "netlify-6.0.7" = {
+      name = "netlify";
+      packageName = "netlify";
+      version = "6.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/netlify/-/netlify-6.0.7.tgz";
+        sha512 = "FvCOaS3HLSeE+AwQvJVQd16UeZn6PYSnbCqEA94vhqIkFyjSOs3oyO0/C0zK8FgKGGZQxO98BTbj4/NKpPdAPg==";
+      };
+    };
     "netlify-plugin-deploy-preview-commenting-0.0.1-alpha.16" = {
       name = "netlify-plugin-deploy-preview-commenting";
       packageName = "netlify-plugin-deploy-preview-commenting";
@@ -37038,6 +38253,15 @@ let
         sha1 = "4aa7bfd43f03f0b81c9702b13d6a858ddb326f3e";
       };
     };
+    "new-github-release-url-1.0.0" = {
+      name = "new-github-release-url";
+      packageName = "new-github-release-url";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/new-github-release-url/-/new-github-release-url-1.0.0.tgz";
+        sha512 = "dle7yf655IMjyFUqn6Nxkb18r4AOAkzRcgcZv6WZ0IqrOH4QCEZ8Sm6I7XX21zvHdBeeMeTkhR9qT2Z0EJDx6A==";
+      };
+    };
     "next-event-1.0.0" = {
       name = "next-event";
       packageName = "next-event";
@@ -37074,13 +38298,13 @@ let
         sha512 = "CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==";
       };
     };
-    "nextgen-events-1.3.3" = {
+    "nextgen-events-1.3.4" = {
       name = "nextgen-events";
       packageName = "nextgen-events";
-      version = "1.3.3";
+      version = "1.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nextgen-events/-/nextgen-events-1.3.3.tgz";
-        sha512 = "5h9U7had+Q+a95Rwgu4JL6otqXs3y4474g7ruQtd8TAsoG6ycvjccnuLxhXEv32/HOKTC09K+HkbFaITIexLkg==";
+        url = "https://registry.npmjs.org/nextgen-events/-/nextgen-events-1.3.4.tgz";
+        sha512 = "umMRD9VOvQ7+AeCvMETA7tekqrzG0xOX2HLrpyZRuW+4NlXR5baZwY/CP7Sq3x1BkKCIa1KnI1m2+Fs+fJpOiQ==";
       };
     };
     "nice-try-1.0.5" = {
@@ -37200,13 +38424,13 @@ let
         sha512 = "ASCL5U13as7HhOExbT6OlWJJUV/lLzL2voOSP1UVehpRD8FbSrSDjfScK/KwAvVTI5AS6r4VwbOMlIqtvRidnA==";
       };
     };
-    "node-addon-api-3.0.2" = {
+    "node-addon-api-3.1.0" = {
       name = "node-addon-api";
       packageName = "node-addon-api";
-      version = "3.0.2";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.0.2.tgz";
-        sha512 = "+D4s2HCnxPd5PjjI0STKwncjXTUKKqm74MDMz9OPXavjsGmjkvwgLtA5yoxJUdmpj52+2u+RrXgPipahKczMKg==";
+        url = "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz";
+        sha512 = "flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==";
       };
     };
     "node-appc-1.1.2" = {
@@ -37498,6 +38722,15 @@ let
         sha512 = "46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA==";
       };
     };
+    "node-notifier-8.0.1" = {
+      name = "node-notifier";
+      packageName = "node-notifier";
+      version = "8.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz";
+        sha512 = "BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==";
+      };
+    };
     "node-persist-2.1.0" = {
       name = "node-persist";
       packageName = "node-persist";
@@ -37966,6 +39199,15 @@ let
         sha512 = "lDLVkjfZmvmfvpvBzA4vzee9cn+Me4orq0QF8glbswJVEbIcSNWib7qGOffolysc3teCqbbPZZkzbr3GQZTL1g==";
       };
     };
+    "npm-name-6.0.1" = {
+      name = "npm-name";
+      packageName = "npm-name";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/npm-name/-/npm-name-6.0.1.tgz";
+        sha512 = "fhKRvUAxaYzMEUZim4mXWyfFbVS+M1CbrCLdAo3txWzrctxKka/h+KaBW0O9Cz5uOM00Nldn2JLWhuwnyW3SUw==";
+      };
+    };
     "npm-normalize-package-bin-1.0.1" = {
       name = "npm-normalize-package-bin";
       packageName = "npm-normalize-package-bin";
@@ -38182,6 +39424,15 @@ let
         sha512 = "WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==";
       };
     };
+    "nth-check-2.0.0" = {
+      name = "nth-check";
+      packageName = "nth-check";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz";
+        sha512 = "i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==";
+      };
+    };
     "num-sort-2.1.0" = {
       name = "num-sort";
       packageName = "num-sort";
@@ -38426,13 +39677,13 @@ let
         sha512 = "OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==";
       };
     };
-    "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.0.3.tgz";
-        sha512 = "JPKn0GMu+Fa3zt3Bmr66JhokJU5BaNBIh4ZeTlaCBzrBsOeXzwcKKAK1tbLiPKgvwmPXsDvvLHoWh5Bm7ofIYg==";
+        url = "https://registry.npmjs.org/object-hash/-/object-hash-2.1.1.tgz";
+        sha512 = "VOJmgmS+7wvXf8CjbQmimtCnEx3IAoLxI3fp2fbWehxrWBcAQFbk+vcwb6vzR0VZv/eNCJ/27j151ZTwqW/JeQ==";
       };
     };
     "object-inspect-1.4.1" = {
@@ -38516,13 +39767,13 @@ let
         sha512 = "BfWfuAwuhdH1bhMG5EG90WE/eckkBhBvnke8eSEkCDXoLE9Jk5JwYGTbCx1ehGwV48HvBkn62VukPBdlMUOY9w==";
       };
     };
-    "object-treeify-1.1.30" = {
+    "object-treeify-1.1.31" = {
       name = "object-treeify";
       packageName = "object-treeify";
-      version = "1.1.30";
+      version = "1.1.31";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object-treeify/-/object-treeify-1.1.30.tgz";
-        sha512 = "BhsTZj8kbeCnyBKWuAgAakbGgrcVV/IJhUAGF25lOSwDZoHoDmnynUtXfyrrDn8A1Xy3G9k5uLP+V5onOOq3WA==";
+        url = "https://registry.npmjs.org/object-treeify/-/object-treeify-1.1.31.tgz";
+        sha512 = "kt2UuyHDTH+J6w0pv2c+3uuEApGuwgfjWogbqPWAvk4nOM/T3No0SzDtp6CuJ/XBUy//nFNuerb8ms7CqjD9Tw==";
       };
     };
     "object-visit-1.0.1" = {
@@ -38570,6 +39821,15 @@ let
         sha512 = "ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==";
       };
     };
+    "object.fromentries-2.0.3" = {
+      name = "object.fromentries";
+      packageName = "object.fromentries";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.3.tgz";
+        sha512 = "IDUSMXs6LOSJBWE++L0lzIbSqHl9KDCfff2x/JSEIDtEUavUnyMYC2ZGay/04Zq4UT8lvd4xNhU4/YHKibAOlw==";
+      };
+    };
     "object.getownpropertydescriptors-2.1.1" = {
       name = "object.getownpropertydescriptors";
       packageName = "object.getownpropertydescriptors";
@@ -38696,13 +39956,13 @@ let
         sha512 = "fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==";
       };
     };
-    "office-ui-fabric-react-7.153.4" = {
+    "office-ui-fabric-react-7.155.3" = {
       name = "office-ui-fabric-react";
       packageName = "office-ui-fabric-react";
-      version = "7.153.4";
+      version = "7.155.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/office-ui-fabric-react/-/office-ui-fabric-react-7.153.4.tgz";
-        sha512 = "BF4eDxilcW2I6vboXECPqcz2nPYjFZtnHR7lSSY67xRWX0B1+g5xccxqUiDNO/vFmRzvTpD4j53JN70TIzJm1Q==";
+        url = "https://registry.npmjs.org/office-ui-fabric-react/-/office-ui-fabric-react-7.155.3.tgz";
+        sha512 = "MOGOEviHa5P580rANl9+vS4QTDt6SeyVlfhGLqZpSgA7VZ4JDCIU/mFyNbl5KG39wfg5JiKic+Lz8rXUrExQfw==";
       };
     };
     "omggif-1.0.10" = {
@@ -38876,6 +40136,15 @@ let
         sha512 = "jQ31cORBFE6td25deYeD80wxKBMj+zBmHTrVxnc6CKhx8gho6ipmWM5zj/oeoqioZ99yqBls9Z/9Nss7J26G2g==";
       };
     };
+    "oo-ascii-tree-1.16.0" = {
+      name = "oo-ascii-tree";
+      packageName = "oo-ascii-tree";
+      version = "1.16.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.16.0.tgz";
+        sha512 = "xIuc4hP3NKOhPaPJN1zkTXiGNpNe4vOaS0CUwyCuVv1kBzBhliZ71siaGXpHIL45CBmX6qGAjEiHt7ZS1nQWaA==";
+      };
+    };
     "opal-runtime-1.0.11" = {
       name = "opal-runtime";
       packageName = "opal-runtime";
@@ -39119,6 +40388,15 @@ let
         sha512 = "6pi4/Fw+JIW1HHda2Ij7LRJ5QJ8f6YzaXnsRA6m44BJz8nLq/j5gVFzPBKJo+uOFhAeHqZC/3uzhTpYPga3Q/A==";
       };
     };
+    "openapi3-ts-1.4.0" = {
+      name = "openapi3-ts";
+      packageName = "openapi3-ts";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi3-ts/-/openapi3-ts-1.4.0.tgz";
+        sha512 = "8DmE2oKayvSkIR3XSZ4+pRliBsx19bSNeIzkTPswY8r4wvjX86bMxsORdqwAwMxE8PefOcSAT2auvi/0TZe9yA==";
+      };
+    };
     "opencollective-1.0.3" = {
       name = "opencollective";
       packageName = "opencollective";
@@ -39371,6 +40649,15 @@ let
         sha512 = "9tXIMPvjZ7hPTbk8DFq1f7Kow/HU/pQYB60JbNq+QnGwcyhWVZaQ4hM9zQDEsPxw/muLpgiHSaumUZxCAmod/w==";
       };
     };
+    "ora-5.2.0" = {
+      name = "ora";
+      packageName = "ora";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ora/-/ora-5.2.0.tgz";
+        sha512 = "+wG2v8TUU8EgzPHun1k/n45pXquQ9fHnbXVetl9rRgO6kjZszGGbraF3XPTIdgeA+s1lbRjSEftAnyT0w8ZMvQ==";
+      };
+    };
     "ordered-read-streams-1.0.1" = {
       name = "ordered-read-streams";
       packageName = "ordered-read-streams";
@@ -39380,6 +40667,15 @@ let
         sha1 = "77c0cb37c41525d64166d990ffad7ec6a0e1363e";
       };
     };
+    "org-regex-1.0.0" = {
+      name = "org-regex";
+      packageName = "org-regex";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/org-regex/-/org-regex-1.0.0.tgz";
+        sha512 = "7bqkxkEJwzJQUAlyYniqEZ3Ilzjh0yoa62c7gL6Ijxj5bEpPL+8IE1Z0PFj0ywjjXQcdrwR51g9MIcLezR0hKQ==";
+      };
+    };
     "original-1.0.2" = {
       name = "original";
       packageName = "original";
@@ -39497,22 +40793,31 @@ let
         sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==";
       };
     };
-    "ot-builder-0.10.34" = {
+    "ot-builder-0.10.37" = {
       name = "ot-builder";
       packageName = "ot-builder";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ot-builder/-/ot-builder-0.10.34.tgz";
-        sha512 = "KYSsffceh64QcSE4fBGrSBf2twXxkGQzHcPqGTWpz1PcJ56hHpZyhmWqtltorrH5sjOjLIVGUqvGO19/vTsb8g==";
+        url = "https://registry.npmjs.org/ot-builder/-/ot-builder-0.10.37.tgz";
+        sha512 = "9V9v49oxGZUDosB63AlR1k6J5nAMJKUaRflYbwYy8o2/u9YMyujfAfqwDqAoWz12Q2Xdc9GllVA8TpPTw03acQ==";
       };
     };
-    "otb-ttc-bundle-0.10.34" = {
+    "otb-ttc-bundle-0.10.37" = {
       name = "otb-ttc-bundle";
       packageName = "otb-ttc-bundle";
-      version = "0.10.34";
+      version = "0.10.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/otb-ttc-bundle/-/otb-ttc-bundle-0.10.34.tgz";
-        sha512 = "zMUBVgo7ARvdwlh/SfmEKwRrPMzqiAZKjR+FTvImBwNYj98aoDGxPk5QP2uiLcDneJjMlCiL08N/i7B0edypmg==";
+        url = "https://registry.npmjs.org/otb-ttc-bundle/-/otb-ttc-bundle-0.10.37.tgz";
+        sha512 = "y3ziaqX+obzc9NMeXFvVz9+q2Hf9Nhu03lNbY/Iz1AjhfBHi7kMF9giW7ljmCTfdEg26crfOCBi2RbAUA2+3+g==";
+      };
+    };
+    "ow-0.21.0" = {
+      name = "ow";
+      packageName = "ow";
+      version = "0.21.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ow/-/ow-0.21.0.tgz";
+        sha512 = "dlsoDe39g7mhdsdrC1R/YwjT7yjVqE3svWwOlMGvN690waBkgEZBmKBdkmKvSt5/wZ6E0Jn/nIesPqMZOpPKqw==";
       };
     };
     "p-all-2.1.0" = {
@@ -39587,6 +40892,15 @@ let
         sha1 = "9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c";
       };
     };
+    "p-defer-3.0.0" = {
+      name = "p-defer";
+      packageName = "p-defer";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz";
+        sha512 = "ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==";
+      };
+    };
     "p-event-2.3.1" = {
       name = "p-event";
       packageName = "p-event";
@@ -39758,6 +41072,15 @@ let
         sha1 = "bf98fe575705658a9e1351befb85ae4c1f07bdca";
       };
     };
+    "p-memoize-4.0.1" = {
+      name = "p-memoize";
+      packageName = "p-memoize";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-memoize/-/p-memoize-4.0.1.tgz";
+        sha512 = "km0sP12uE0dOZ5qP+s7kGVf07QngxyG0gS8sYFvFWhqlgzOsSy+m71aUejf/0akxj5W7gE//2G74qTv6b4iMog==";
+      };
+    };
     "p-pipe-1.2.0" = {
       name = "p-pipe";
       packageName = "p-pipe";
@@ -39866,6 +41189,15 @@ let
         sha512 = "rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==";
       };
     };
+    "p-timeout-4.1.0" = {
+      name = "p-timeout";
+      packageName = "p-timeout";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-timeout/-/p-timeout-4.1.0.tgz";
+        sha512 = "+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw==";
+      };
+    };
     "p-try-1.0.0" = {
       name = "p-try";
       packageName = "p-try";
@@ -39884,13 +41216,13 @@ let
         sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==";
       };
     };
-    "p-wait-for-3.1.0" = {
+    "p-wait-for-3.2.0" = {
       name = "p-wait-for";
       packageName = "p-wait-for";
-      version = "3.1.0";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/p-wait-for/-/p-wait-for-3.1.0.tgz";
-        sha512 = "0Uy19uhxbssHelu9ynDMcON6BmMk6pH8551CvxROhiz3Vx+yC4RqxjyIDk2V4ll0g9177RKT++PK4zcV58uJ7A==";
+        url = "https://registry.npmjs.org/p-wait-for/-/p-wait-for-3.2.0.tgz";
+        sha512 = "wpgERjNkLrBiFmkMEjuZJEWKKDrNfHCKA1OhyN1wg1FrLkULbviEy6py1AyJUgZ72YWFbZ38FIpnqvVqAlDUwA==";
       };
     };
     "p-waterfall-1.0.0" = {
@@ -40523,6 +41855,15 @@ let
         sha512 = "Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==";
       };
     };
+    "parse5-htmlparser2-tree-adapter-6.0.1" = {
+      name = "parse5-htmlparser2-tree-adapter";
+      packageName = "parse5-htmlparser2-tree-adapter";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz";
+        sha512 = "qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==";
+      };
+    };
     "parsejson-0.0.1" = {
       name = "parsejson";
       packageName = "parsejson";
@@ -41225,6 +42566,15 @@ let
         sha512 = "OlE82n3yMOE5dY9RMOwxhoWefeMlxwk5IVxoj0sSzSFIlmvhN4obzTvO3s/d/b5JhcgXikjaspsy/HuUDTqbBg==";
       };
     };
+    "pid-port-0.1.1" = {
+      name = "pid-port";
+      packageName = "pid-port";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pid-port/-/pid-port-0.1.1.tgz";
+        sha512 = "boqPJtSgZC6KOgXKNPC+/XR3xwVtpOtaLa7JLcdf8jfVe0ZM2TwllBXxxLUO8GQbOLJ4/hEtf2+L1QCKbaoHUg==";
+      };
+    };
     "pidusage-2.0.21" = {
       name = "pidusage";
       packageName = "pidusage";
@@ -41775,13 +43125,13 @@ let
         sha512 = "3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==";
       };
     };
-    "postcss-8.1.7" = {
+    "postcss-8.1.10" = {
       name = "postcss";
       packageName = "postcss";
-      version = "8.1.7";
+      version = "8.1.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss/-/postcss-8.1.7.tgz";
-        sha512 = "llCQW1Pz4MOPwbZLmOddGM9eIJ8Bh7SZ2Oj5sxZva77uVaotYDsYTch1WBTNu7fUY0fpWp0fdt7uW40D4sRiiQ==";
+        url = "https://registry.npmjs.org/postcss/-/postcss-8.1.10.tgz";
+        sha512 = "iBXEV5VTTYaRRdxiFYzTtuv2lGMQBExqkZKSzkJe+Fl6rvQrA/49UVGKqB+LG54hpW/TtDBMGds8j33GFNW7pg==";
       };
     };
     "postcss-calc-7.0.5" = {
@@ -42396,6 +43746,15 @@ let
         sha512 = "aaLVANlj4HgZweKttFNUVNRxDukytuIuxeK2boIMHjagNJCiVKWFsKF4tCE3ql3GbrD2tExPQ7/pwtEJcHNZeg==";
       };
     };
+    "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==";
+      };
+    };
     "prebuild-install-6.0.0" = {
       name = "prebuild-install";
       packageName = "prebuild-install";
@@ -42486,6 +43845,15 @@ let
         sha512 = "s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==";
       };
     };
+    "prettier-2.0.5" = {
+      name = "prettier";
+      packageName = "prettier";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz";
+        sha512 = "7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==";
+      };
+    };
     "prettier-2.2.1" = {
       name = "prettier";
       packageName = "prettier";
@@ -42549,13 +43917,13 @@ let
         sha1 = "b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9";
       };
     };
-    "pretty-bytes-5.4.1" = {
+    "pretty-bytes-5.5.0" = {
       name = "pretty-bytes";
       packageName = "pretty-bytes";
-      version = "5.4.1";
+      version = "5.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.4.1.tgz";
-        sha512 = "s1Iam6Gwz3JI5Hweaz4GoCD1WUNUIyzePFy5+Js2hjwGVt2Z79wNN+ZKOZ2vB6C+Xs6njyB84Z1IthQg8d9LxA==";
+        url = "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.5.0.tgz";
+        sha512 = "p+T744ZyjjiaFlMUZZv6YPC5JrkNj8maRmPaQCWFJFplUAzpIUTRaTcS+7wmZtUoFXHtESJb23ISliaWyz3SHA==";
       };
     };
     "pretty-error-2.1.2" = {
@@ -42684,13 +44052,13 @@ let
         sha512 = "dG2w7WtovUa4SiYTdWn9H8Bd4JNdei2djtkP/Bk9fXq81j5Q15ZPHYSwhUVvBRbp5zMkGtu0Yk62HuMcly0pRw==";
       };
     };
-    "prismjs-1.22.0" = {
+    "prismjs-1.23.0" = {
       name = "prismjs";
       packageName = "prismjs";
-      version = "1.22.0";
+      version = "1.23.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prismjs/-/prismjs-1.22.0.tgz";
-        sha512 = "lLJ/Wt9yy0AiSYBf212kK3mM5L8ycwlyTlSxHBAneXLR0nzFMlZ5y7riFPF3E33zXOF2IH95xdY5jIyZbM9z/w==";
+        url = "https://registry.npmjs.org/prismjs/-/prismjs-1.23.0.tgz";
+        sha512 = "c29LVsqOaLbBHuIbsTxaKENh1N2EQBOHaWv7gkHN4dgRbxSREqDnDbtFJYdpPauS4YCplMSNCABQ6Eeor69bAA==";
       };
     };
     "private-0.1.8" = {
@@ -42864,6 +44232,15 @@ let
         sha512 = "W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==";
       };
     };
+    "promise-breaker-5.0.0" = {
+      name = "promise-breaker";
+      packageName = "promise-breaker";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/promise-breaker/-/promise-breaker-5.0.0.tgz";
+        sha512 = "mgsWQuG4kJ1dtO6e/QlNDLFtMkMzzecsC69aI5hlLEjGHFNpHrvGhFi4LiK5jg2SMQj74/diH+wZliL9LpGsyA==";
+      };
+    };
     "promise-inflight-1.0.1" = {
       name = "promise-inflight";
       packageName = "promise-inflight";
@@ -42954,6 +44331,15 @@ let
         sha1 = "8e57123c396ab988897fb327fd3aedc3e735e4fe";
       };
     };
+    "prompt-1.1.0" = {
+      name = "prompt";
+      packageName = "prompt";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prompt/-/prompt-1.1.0.tgz";
+        sha512 = "ec1vUPXCplDBDUVD8uPa3XGA+OzLrO40Vxv3F1uxoiZGkZhdctlK2JotcHq5X6ExjocDOGwGdCSXloGNyU5L1Q==";
+      };
+    };
     "promptly-2.2.0" = {
       name = "promptly";
       packageName = "promptly";
@@ -44151,13 +45537,13 @@ let
         sha512 = "gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==";
       };
     };
-    "query-string-6.13.7" = {
+    "query-string-6.13.8" = {
       name = "query-string";
       packageName = "query-string";
-      version = "6.13.7";
+      version = "6.13.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/query-string/-/query-string-6.13.7.tgz";
-        sha512 = "CsGs8ZYb39zu0WLkeOhe0NMePqgYdAuCqxOYKDR5LVCytDZYMGx3Bb+xypvQvPHVPijRXB0HZNFllCzHRe4gEA==";
+        url = "https://registry.npmjs.org/query-string/-/query-string-6.13.8.tgz";
+        sha512 = "jxJzQI2edQPE/NPUOusNjO/ZOGqr1o2OBa/3M00fU76FsLXDVbJDv/p7ng5OdQyorKrkRz1oqfwmbe5MAMePQg==";
       };
     };
     "querystring-0.2.0" = {
@@ -44556,6 +45942,15 @@ let
         sha512 = "wuygyq8TXUlSdVXv2kigXxQNOgdb9m7LbIjwfTNGSpaY1riLd5e+VeQjlQMyUtrk0oiyhi1AqIVynworl3qxHA==";
       };
     };
+    "re2-1.15.9" = {
+      name = "re2";
+      packageName = "re2";
+      version = "1.15.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/re2/-/re2-1.15.9.tgz";
+        sha512 = "AXWEhpMTBdC+3oqbjdU07dk0pBCvxh5vbOMLERL6Y8FYBSGn4vXlLe8cYszn64Yy7H8keVMrgPzoSvOd4mePpg==";
+      };
+    };
     "react-16.14.0" = {
       name = "react";
       packageName = "react";
@@ -44637,13 +46032,13 @@ let
         sha512 = "X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==";
       };
     };
-    "react-tabs-3.1.1" = {
+    "react-tabs-3.1.2" = {
       name = "react-tabs";
       packageName = "react-tabs";
-      version = "3.1.1";
+      version = "3.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/react-tabs/-/react-tabs-3.1.1.tgz";
-        sha512 = "HpySC29NN1BkzBAnOC+ajfzPbTaVZcSWzMSjk56uAhPC/rBGtli8lTysR4CfPAyEE/hfweIzagOIoJ7nu80yng==";
+        url = "https://registry.npmjs.org/react-tabs/-/react-tabs-3.1.2.tgz";
+        sha512 = "OKS1l7QzSNcn+L2uFsxyGFHdXp9YsPGf/YOURWcImp7xLN36n0Wz+/j9HwlwGtlXCZexwshScR5BrcFbw/3P9Q==";
       };
     };
     "read-1.0.7" = {
@@ -44880,6 +46275,15 @@ let
         sha1 = "8f90341e68a53ccc928788dacfcd11b36eb9b78e";
       };
     };
+    "readable-stream-2.3.0" = {
+      name = "readable-stream";
+      packageName = "readable-stream";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.0.tgz";
+        sha512 = "c7KMXGd4b48nN3OJ1U9qOsn6pXNzf6kLd3kdZCkg2sxAcoiufInqF0XckwEnlrcwuaYwonlNK8GQUIOC/WC7sg==";
+      };
+    };
     "readable-stream-2.3.7" = {
       name = "readable-stream";
       packageName = "readable-stream";
@@ -44961,6 +46365,15 @@ let
         sha1 = "c580d77ef2cfc8752b132498060dc9793a7ac01c";
       };
     };
+    "readline-sync-1.4.10" = {
+      name = "readline-sync";
+      packageName = "readline-sync";
+      version = "1.4.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz";
+        sha512 = "gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==";
+      };
+    };
     "readline2-0.1.1" = {
       name = "readline2";
       packageName = "readline2";
@@ -45159,15 +46572,6 @@ let
         sha1 = "258c78efd153ddf93cb561237f61184f3696e327";
       };
     };
-    "reduce-flatten-2.0.0" = {
-      name = "reduce-flatten";
-      packageName = "reduce-flatten";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz";
-        sha512 = "EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==";
-      };
-    };
     "redux-3.7.2" = {
       name = "redux";
       packageName = "redux";
@@ -45582,13 +46986,13 @@ let
         sha512 = "q4EyPZT3PcA3Eq7vPpT6bIdokXzFGp9i85igjmhRyXWmPs0Y6/d2FYwUNotKAWyLch7g0ASZJn/KHHcHZQ163A==";
       };
     };
-    "remark-stringify-9.0.0" = {
+    "remark-stringify-9.0.1" = {
       name = "remark-stringify";
       packageName = "remark-stringify";
-      version = "9.0.0";
+      version = "9.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/remark-stringify/-/remark-stringify-9.0.0.tgz";
-        sha512 = "8x29DpTbVzEc6Dwb90qhxCtbZ6hmj3BxWWDpMhA+1WM4dOEGH5U5/GFe3Be5Hns5MvPSFAr1e2KSVtKZkK5nUw==";
+        url = "https://registry.npmjs.org/remark-stringify/-/remark-stringify-9.0.1.tgz";
+        sha512 = "mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==";
       };
     };
     "remote-git-tags-3.0.0" = {
@@ -45663,13 +47067,13 @@ let
         sha512 = "F5BMWDmgATEoyPCtKjmGNTGN1ghoZlfRQ3MJh8dS/MrvIUIxupiof/Y9uahChipXcqQ57twVbgMmyQmuO1vokw==";
       };
     };
-    "renderkid-2.0.4" = {
+    "renderkid-2.0.5" = {
       name = "renderkid";
       packageName = "renderkid";
-      version = "2.0.4";
+      version = "2.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/renderkid/-/renderkid-2.0.4.tgz";
-        sha512 = "K2eXrSOJdq+HuKzlcjOlGoOarUu5SDguDEhE7+Ah4zuOWL40j8A/oHvLlLob9PSTNvVnBd+/q0Er1QfpEuem5g==";
+        url = "https://registry.npmjs.org/renderkid/-/renderkid-2.0.5.tgz";
+        sha512 = "ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ==";
       };
     };
     "repeat-element-1.1.3" = {
@@ -45888,13 +47292,13 @@ let
         sha512 = "Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==";
       };
     };
-    "require-in-the-middle-5.0.3" = {
+    "require-in-the-middle-5.1.0" = {
       name = "require-in-the-middle";
       packageName = "require-in-the-middle";
-      version = "5.0.3";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.0.3.tgz";
-        sha512 = "p/ICV8uMlqC4tjOYabLMxAWCIKa0YUQgZZ6KDM0xgXJNgdGQ1WmL2A07TwmrZw+wi6ITUFKzH5v3n+ENEyXVkA==";
+        url = "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.1.0.tgz";
+        sha512 = "M2rLKVupQfJ5lf9OvqFGIT+9iVLnTmjgbOmpil12hiSQNn5zJTKGPoIisETNjfK+09vP3rpm1zJajmErpr2sEQ==";
       };
     };
     "require-main-filename-1.0.1" = {
@@ -46302,6 +47706,15 @@ let
         sha1 = "6f697e50a0e4ddc8c8f7fb547a9b60dead43678d";
       };
     };
+    "retry-request-4.1.3" = {
+      name = "retry-request";
+      packageName = "retry-request";
+      version = "4.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/retry-request/-/retry-request-4.1.3.tgz";
+        sha512 = "QnRZUpuPNgX0+D1xVxul6DbJ9slvo4Rm6iV/dn63e048MvGbUZiKySVt6Tenp04JqmchxjiLltGerOJys7kJYQ==";
+      };
+    };
     "reusify-1.0.4" = {
       name = "reusify";
       packageName = "reusify";
@@ -46491,13 +47904,13 @@ let
         sha512 = "/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==";
       };
     };
-    "rollup-2.34.1" = {
+    "rollup-2.35.1" = {
       name = "rollup";
       packageName = "rollup";
-      version = "2.34.1";
+      version = "2.35.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rollup/-/rollup-2.34.1.tgz";
-        sha512 = "tGveB6NU5x4MS/iXaIsjfUkEv4hxzJJ4o0FRy5LO62Ndx3R2cmE1qsLYlSfRkvHUUPqWiFoxEm8pRftzh1a5HA==";
+        url = "https://registry.npmjs.org/rollup/-/rollup-2.35.1.tgz";
+        sha512 = "q5KxEyWpprAIcainhVy6HfRttD9kutQpHbeqDTWnqAFNJotiojetK6uqmcydNMymBEtC4I8bCYR+J3mTMqeaUA==";
       };
     };
     "rollup-plugin-babel-4.4.0" = {
@@ -46599,6 +48012,15 @@ let
         sha1 = "6f04063a2d04eba3303a1bbc6765eef63037cf3d";
       };
     };
+    "router-1.3.5" = {
+      name = "router";
+      packageName = "router";
+      version = "1.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/router/-/router-1.3.5.tgz";
+        sha512 = "kozCJZUhuSJ5VcLhSb3F8fsmGXy+8HaDbKCAerR1G6tq3mnMZFMuSohbFvGv1c5oMFipijDjRZuuN/Sq5nMf3g==";
+      };
+    };
     "router-ips-1.0.0" = {
       name = "router-ips";
       packageName = "router-ips";
@@ -46608,22 +48030,22 @@ let
         sha1 = "44e00858ebebc0133d58e40b2cd8a1fbb04203f5";
       };
     };
-    "rss-parser-3.7.1" = {
+    "rss-parser-3.10.0" = {
       name = "rss-parser";
       packageName = "rss-parser";
-      version = "3.7.1";
+      version = "3.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rss-parser/-/rss-parser-3.7.1.tgz";
-        sha512 = "1JKFzLHeteNandmlVBUWgLPmipFEllhdUQlmNvkXd6ju4VFOlGr0VmtlQaxzZoVysG2nbGb8eAtzNqQTxzQ+AQ==";
+        url = "https://registry.npmjs.org/rss-parser/-/rss-parser-3.10.0.tgz";
+        sha512 = "TC6FNvEmdFeaW6r/60MSJT7cp4d95X4M9As+mvNtxRx7YXHxpV95syMnWZthZSeD1BRN7SEKdq6c3nxMLQRopw==";
       };
     };
-    "rss-parser-3.9.0" = {
+    "rss-parser-3.7.1" = {
       name = "rss-parser";
       packageName = "rss-parser";
-      version = "3.9.0";
+      version = "3.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rss-parser/-/rss-parser-3.9.0.tgz";
-        sha512 = "wlRSfGrotOXuWo19Dtl2KmQt7o9i5zzCExUrxpechE0O54BAx7JD+xhWyGumPPqiJj771ndflV3sE3bTHen0HQ==";
+        url = "https://registry.npmjs.org/rss-parser/-/rss-parser-3.7.1.tgz";
+        sha512 = "1JKFzLHeteNandmlVBUWgLPmipFEllhdUQlmNvkXd6ju4VFOlGr0VmtlQaxzZoVysG2nbGb8eAtzNqQTxzQ+AQ==";
       };
     };
     "rsvp-3.6.2" = {
@@ -46878,15 +48300,6 @@ let
         sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==";
       };
     };
-    "safe-compare-1.1.4" = {
-      name = "safe-compare";
-      packageName = "safe-compare";
-      version = "1.1.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/safe-compare/-/safe-compare-1.1.4.tgz";
-        sha512 = "b9wZ986HHCo/HbKrRpBJb2kqXMK9CEWIE1egeEvZsYn69ay3kdfl9nG3RyOcR+jInTDf7a86WQ1d4VJX7goSSQ==";
-      };
-    };
     "safe-join-0.1.3" = {
       name = "safe-join";
       packageName = "safe-join";
@@ -46959,13 +48372,13 @@ let
         sha512 = "y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==";
       };
     };
-    "sass-1.30.0" = {
+    "sass-1.32.0" = {
       name = "sass";
       packageName = "sass";
-      version = "1.30.0";
+      version = "1.32.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sass/-/sass-1.30.0.tgz";
-        sha512 = "26EUhOXRLaUY7+mWuRFqGeGGNmhB1vblpTENO1Z7mAzzIZeVxZr9EZoaY1kyGLFWdSOZxRMAufiN2mkbO6dAlw==";
+        url = "https://registry.npmjs.org/sass/-/sass-1.32.0.tgz";
+        sha512 = "fhyqEbMIycQA4blrz/C0pYhv2o4x2y6FYYAH0CshBw3DXh5D5wyERgxw0ptdau1orc/GhNrhF7DFN2etyOCEng==";
       };
     };
     "sax-0.5.8" = {
@@ -47094,6 +48507,15 @@ let
         sha1 = "a346bb1acd4207ae70bd7c0c7ca9e566b6baddb8";
       };
     };
+    "scoped-regex-2.1.0" = {
+      name = "scoped-regex";
+      packageName = "scoped-regex";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/scoped-regex/-/scoped-regex-2.1.0.tgz";
+        sha512 = "g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==";
+      };
+    };
     "sec-1.0.0" = {
       name = "sec";
       packageName = "sec";
@@ -47481,13 +48903,13 @@ let
         sha512 = "lKX2tZ1rsA9Tu0gW8vRmMDmIEJoZ1d7cKpzcbFZdUrSpCR6gy/7OPPh7jjT/6Oc6Z79ToUmC2l8tyTEGanVmiA==";
       };
     };
-    "separator-escape-0.0.0" = {
+    "separator-escape-0.0.1" = {
       name = "separator-escape";
       packageName = "separator-escape";
-      version = "0.0.0";
+      version = "0.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/separator-escape/-/separator-escape-0.0.0.tgz";
-        sha1 = "e433676932020454e3c14870c517ea1de56c2fa4";
+        url = "https://registry.npmjs.org/separator-escape/-/separator-escape-0.0.1.tgz";
+        sha512 = "daCzTzZVoowYzjW7x9xMH6zr+lt/zsGxV1rtXaoTnlues7ZDx6Qu0l5W3jCdgnXGE1ONAGL+XPWY+IRDxnJ9EQ==";
       };
     };
     "seq-0.3.5" = {
@@ -47607,13 +49029,13 @@ let
         sha1 = "f13bf928e42b9c3e79383e61cc3998b5d14e6cdd";
       };
     };
-    "service-runner-2.8.0" = {
+    "service-runner-2.8.1" = {
       name = "service-runner";
       packageName = "service-runner";
-      version = "2.8.0";
+      version = "2.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/service-runner/-/service-runner-2.8.0.tgz";
-        sha512 = "U5hxzVsLFxZgd3hLecTgdhKNZfTsjcp0407ceICGdC5X2Qrz31pHsoMMSH1s+9/Fac+Y3NKpgd6vPvmJvl/bvw==";
+        url = "https://registry.npmjs.org/service-runner/-/service-runner-2.8.1.tgz";
+        sha512 = "YAJ9JPJ9w84iLj2VR5wUkiFvPKUp5vApOzDTEPZ97t5wmPN8LbyAKKKG4hyPuFlpCb00F0YGdfemi0A1dkpGPw==";
       };
     };
     "set-blocking-1.0.0" = {
@@ -47697,13 +49119,13 @@ let
         sha512 = "E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==";
       };
     };
-    "seventh-0.7.38" = {
+    "seventh-0.7.40" = {
       name = "seventh";
       packageName = "seventh";
-      version = "0.7.38";
+      version = "0.7.40";
       src = fetchurl {
-        url = "https://registry.npmjs.org/seventh/-/seventh-0.7.38.tgz";
-        sha512 = "dYQGR+HQcuOtKytJ8/R4UFiPY3RIYLrniKRcqLjJCHOnccyJTpu52lBpPdyS6TpXNH13MJhtzh8GHUi/OmRUhw==";
+        url = "https://registry.npmjs.org/seventh/-/seventh-0.7.40.tgz";
+        sha512 = "7sxUydQx4iEh17uJUFjZDAwbffJirldZaNIJvVB/hk9mPEL3J4GpLGSL+mHFH2ydkye46DAsLGqzFJ+/Qj5foQ==";
       };
     };
     "sha.js-2.4.11" = {
@@ -47958,13 +49380,13 @@ let
         sha1 = "c27415a9e458f2fed39b27cf8eb37c003782b431";
       };
     };
-    "side-channel-1.0.3" = {
+    "side-channel-1.0.4" = {
       name = "side-channel";
       packageName = "side-channel";
-      version = "1.0.3";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/side-channel/-/side-channel-1.0.3.tgz";
-        sha512 = "A6+ByhlLkksFoUepsGxfj5x1gTSrs+OydsRptUxeNCabQpCFUvcwIczgOigI8vhY/OJCnPnyE9rGiwgvr9cS1g==";
+        url = "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz";
+        sha512 = "q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==";
       };
     };
     "sift-7.0.1" = {
@@ -48075,13 +49497,13 @@ let
         sha512 = "rohCHmEjD/ESXFLxF4bVeqgdb4Awc65ZyyuCKl3f7BvgMbZOBa/Ye3HN/GFnvruiUOAWWNupxhz3Rz5/3vJLTg==";
       };
     };
-    "simple-git-2.24.0" = {
+    "simple-git-2.31.0" = {
       name = "simple-git";
       packageName = "simple-git";
-      version = "2.24.0";
+      version = "2.31.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/simple-git/-/simple-git-2.24.0.tgz";
-        sha512 = "nF31Xai5lTYgRCiSJ1lHzK0Vk9jWOvAFW12bdBaWy2bhodio04eOWYurvyM/nTBYsPIiQl3PFvdod5TRcPvzww==";
+        url = "https://registry.npmjs.org/simple-git/-/simple-git-2.31.0.tgz";
+        sha512 = "/+rmE7dYZMbRAfEmn8EUIOwlM2G7UdzpkC60KF86YAfXGnmGtsPrKsym0hKvLBdFLLW019C+aZld1+6iIVy5xA==";
       };
     };
     "simple-markdown-0.4.4" = {
@@ -48489,13 +49911,13 @@ let
         sha512 = "NFwVLMCqKTocY66gcim0ukF6e31VRDJqDapg5sy3vCHqlD1OCNUXSK/aI4VQEEndDrsnFmQepsL5KpEU0dDRIQ==";
       };
     };
-    "snyk-docker-plugin-4.12.0" = {
+    "snyk-docker-plugin-4.13.1" = {
       name = "snyk-docker-plugin";
       packageName = "snyk-docker-plugin";
-      version = "4.12.0";
+      version = "4.13.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-docker-plugin/-/snyk-docker-plugin-4.12.0.tgz";
-        sha512 = "iN5GUTpMR4dx/hmjxh1GnJ9vrMpbOUhD8gsdWgFPZ5Qg+ImPQ2WBJBal/hyfkauM0TaKQEAgIwT6xZ1ovaIvWQ==";
+        url = "https://registry.npmjs.org/snyk-docker-plugin/-/snyk-docker-plugin-4.13.1.tgz";
+        sha512 = "KS2G2cBdwKhyRta85uv3q/xUmFSC9lVCu8MUxgm7IDNn8ImjmCIkSp5SsI0qu5jYXJhZZnX6jjj5gzI0QP0WXw==";
       };
     };
     "snyk-go-parser-1.4.1" = {
@@ -48507,22 +49929,22 @@ let
         sha512 = "StU3uHB85VMEkcgXta63M0Fgd+9cs5sMCjQXTBoYTdE4dxarPn7U67yCuwkRRdZdny1ZXtzfY8LKns9i0+dy9w==";
       };
     };
-    "snyk-go-plugin-1.16.2" = {
+    "snyk-go-plugin-1.16.4" = {
       name = "snyk-go-plugin";
       packageName = "snyk-go-plugin";
-      version = "1.16.2";
+      version = "1.16.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-go-plugin/-/snyk-go-plugin-1.16.2.tgz";
-        sha512 = "FAM56z3bl1iuxeqkCEA/jyZ2hpwkQK8xQxQbhR+QppEK5lole7w1PQyWYgZAJ9oRY/BU32zdRAJwGuZbhk7G2Q==";
+        url = "https://registry.npmjs.org/snyk-go-plugin/-/snyk-go-plugin-1.16.4.tgz";
+        sha512 = "7REUy5U6h2wCPIg9060V5bh24gichRHfuqWC22xrp/n+dVolQXvG5RN/PqdJiPsCj7Y9voyWLbYai+Tmk3o82Q==";
       };
     };
-    "snyk-gradle-plugin-3.10.3" = {
+    "snyk-gradle-plugin-3.11.0" = {
       name = "snyk-gradle-plugin";
       packageName = "snyk-gradle-plugin";
-      version = "3.10.3";
+      version = "3.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-gradle-plugin/-/snyk-gradle-plugin-3.10.3.tgz";
-        sha512 = "aFAqQu0vvgndxQtXxNfLzL9wamOwyRceRkSb+BXVp6E+Tpz4awksyUTfV0Yc5WjR0+hYB2rtBYKHXaK+GHficg==";
+        url = "https://registry.npmjs.org/snyk-gradle-plugin/-/snyk-gradle-plugin-3.11.0.tgz";
+        sha512 = "OXf1A+kcif+vslm/nsel3bDYWsGwum2PsZLETM28nG4JOgqBLYLWvCHPgH9r2aa0MKTq0nBpimvFkzDm/+2qQQ==";
       };
     };
     "snyk-module-1.9.1" = {
@@ -48687,13 +50109,13 @@ let
         sha512 = "2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==";
       };
     };
-    "socket.io-3.0.3" = {
+    "socket.io-3.0.4" = {
       name = "socket.io";
       packageName = "socket.io";
-      version = "3.0.3";
+      version = "3.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socket.io/-/socket.io-3.0.3.tgz";
-        sha512 = "TC1GnSXhDVmd3bHji5aG7AgWB8UL7E6quACbKra8uFXBqlMwEDbrJFK+tjuIY5Pe9N0L+MAPPDv3pycnn0000A==";
+        url = "https://registry.npmjs.org/socket.io/-/socket.io-3.0.4.tgz";
+        sha512 = "Vj1jUoO75WGc9txWd311ZJJqS9Dr8QtNJJ7gk2r7dcM/yGe9sit7qOijQl3GAwhpBOz/W8CwkD7R6yob07nLbA==";
       };
     };
     "socket.io-adapter-0.2.0" = {
@@ -48804,6 +50226,15 @@ let
         sha512 = "SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==";
       };
     };
+    "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.4.0" = {
       name = "sockjs-client";
       packageName = "sockjs-client";
@@ -48813,6 +50244,15 @@ let
         sha512 = "5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==";
       };
     };
+    "sockjs-client-1.5.0" = {
+      name = "sockjs-client";
+      packageName = "sockjs-client";
+      version = "1.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.0.tgz";
+        sha512 = "8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q==";
+      };
+    };
     "socks-2.3.3" = {
       name = "socks";
       packageName = "socks";
@@ -48966,6 +50406,15 @@ let
         sha1 = "8ae90ad7d7cb05fc59f1ab0c637845d5c15a52b7";
       };
     };
+    "sort-json-2.0.0" = {
+      name = "sort-json";
+      packageName = "sort-json";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sort-json/-/sort-json-2.0.0.tgz";
+        sha512 = "OgXPErPJM/rBK5OhzIJ+etib/BmLQ1JY55Nb/ElhoWUec62pXNF/X6DrecHq3NW5OAGX0KxYD7m0HtgB9dvGeA==";
+      };
+    };
     "sort-keys-1.1.2" = {
       name = "sort-keys";
       packageName = "sort-keys";
@@ -49254,6 +50703,15 @@ let
         sha512 = "U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==";
       };
     };
+    "spdx-license-list-6.3.0" = {
+      name = "spdx-license-list";
+      packageName = "spdx-license-list";
+      version = "6.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-license-list/-/spdx-license-list-6.3.0.tgz";
+        sha512 = "Qz8ru5VVK5T4cFOBrshIzggzrQ15fVBcpjpZLCVz2j9KNnpslGbw8w1r06v2vi6YP6bnUSY5CXsFCfUypLZ2GA==";
+      };
+    };
     "spdy-1.32.5" = {
       name = "spdy";
       packageName = "spdy";
@@ -49497,15 +50955,6 @@ let
         sha512 = "/0d2YTn8ZFVpIPAU230S9ZLF8WDkSSRWvh/UOLM7zzvkCchum1TtouRgyV8OfgOaYilSGU4lSSqzwBXJVlAwUw==";
       };
     };
-    "sqlite3-4.2.0" = {
-      name = "sqlite3";
-      packageName = "sqlite3";
-      version = "4.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/sqlite3/-/sqlite3-4.2.0.tgz";
-        sha512 = "roEOz41hxui2Q7uYnWsjMOTry6TcNUNmp8audCx18gF10P2NknwdpF+E+HKvz/F2NvPKGGBF4NGc+ZPQ+AABwg==";
-      };
-    };
     "sqlite3-5.0.0" = {
       name = "sqlite3";
       packageName = "sqlite3";
@@ -49857,6 +51306,24 @@ let
         sha512 = "zZ/Q1M+9ZWlrchgh4QauD/MEUFa6eC6H6FYq6T8Of/y82JqsQBLwN6YlzbO09evE7Rx6x0oliXDCnQSjwGwQRA==";
       };
     };
+    "sscaff-1.2.0" = {
+      name = "sscaff";
+      packageName = "sscaff";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sscaff/-/sscaff-1.2.0.tgz";
+        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";
@@ -50244,6 +51711,15 @@ let
         sha1 = "91d5f5130d1cef96dcfa7f726945188741d09ee4";
       };
     };
+    "stream-chain-2.2.4" = {
+      name = "stream-chain";
+      packageName = "stream-chain";
+      version = "2.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stream-chain/-/stream-chain-2.2.4.tgz";
+        sha512 = "9lsl3YM53V5N/I1C2uJtc3Kavyi3kNYN83VkKb/bMWRk7D9imiFyUPYa0PoZbLohSVOX1mYE9YsmwObZUsth6Q==";
+      };
+    };
     "stream-collector-1.0.1" = {
       name = "stream-collector";
       packageName = "stream-collector";
@@ -50325,6 +51801,15 @@ let
         sha512 = "S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==";
       };
     };
+    "stream-json-1.1.3" = {
+      name = "stream-json";
+      packageName = "stream-json";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stream-json/-/stream-json-1.1.3.tgz";
+        sha512 = "y+ChhCov2A5nDqC2aZ6HKXs3OvDlvAp0Ps3BF1P/Iv8tUZJQQsMVaSzk0WryVTVoGITKv01UYahCXMpAs7I0lQ==";
+      };
+    };
     "stream-parser-0.3.1" = {
       name = "stream-parser";
       packageName = "stream-parser";
@@ -50640,6 +52125,24 @@ let
         sha512 = "zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==";
       };
     };
+    "string.prototype.matchall-4.0.3" = {
+      name = "string.prototype.matchall";
+      packageName = "string.prototype.matchall";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.3.tgz";
+        sha512 = "OBxYDA2ifZQ2e13cP82dWFMaCV9CGF8GzmN4fljBVw5O5wep0lu4gacm1OL6MjROoUnB8VbkWRThqkV2YFLNxw==";
+      };
+    };
+    "string.prototype.repeat-0.2.0" = {
+      name = "string.prototype.repeat";
+      packageName = "string.prototype.repeat";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-0.2.0.tgz";
+        sha1 = "aba36de08dcee6a5a337d49b2ea1da1b28fc0ecf";
+      };
+    };
     "string.prototype.trim-1.2.3" = {
       name = "string.prototype.trim";
       packageName = "string.prototype.trim";
@@ -50685,6 +52188,15 @@ let
         sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
       };
     };
+    "string_decoder-1.0.3" = {
+      name = "string_decoder";
+      packageName = "string_decoder";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz";
+        sha512 = "4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==";
+      };
+    };
     "string_decoder-1.1.1" = {
       name = "string_decoder";
       packageName = "string_decoder";
@@ -51279,6 +52791,15 @@ let
         sha512 = "DnarpKN6Xn8e3pYlFV4Yvsj9yxLY4q5FIsUe5JvN7vjzP+YCfzXv03dTkZSD2yzrSadsNYHf0IgOUJwKjX457A==";
       };
     };
+    "superstatic-7.1.0" = {
+      name = "superstatic";
+      packageName = "superstatic";
+      version = "7.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/superstatic/-/superstatic-7.1.0.tgz";
+        sha512 = "yBU8iw07nM3Bu4jFc8lnKwLey0cj61OaGmFJZcYC2X+kEpXVmXzERJ3OTAHZAESe1OTeNIuWadt81U5IULGGAA==";
+      };
+    };
     "supports-color-0.2.0" = {
       name = "supports-color";
       packageName = "supports-color";
@@ -51504,13 +53025,13 @@ let
         sha512 = "xk5CMbwoQVI53rTq9o/iMojAqXP5NT4/+TMeTP4uXWDIH18pB9AXgO5Olqt0RXuf3jH032DA4DS4qzem6XdXAw==";
       };
     };
-    "swagger-ui-dist-3.37.2" = {
+    "swagger-ui-dist-3.38.0" = {
       name = "swagger-ui-dist";
       packageName = "swagger-ui-dist";
-      version = "3.37.2";
+      version = "3.38.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.37.2.tgz";
-        sha512 = "XIT4asxgeL4GUNPPsqpEqLt20M/u6OhFYqTh42IoEAvAyv5e9EGw5uhP9dLAD10opcMYqdkJ5qU+MpN2HZ5xyA==";
+        url = "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.38.0.tgz";
+        sha512 = "sselV8VY6f1BBauY9Sdmwz0jVaWTnGuHQWei7BaTpiUrLcoEUdmmK5bKefLXiwq+dx//es2S8mOvUS+tcXDsKg==";
       };
     };
     "swagger2openapi-6.2.3" = {
@@ -51594,6 +53115,15 @@ let
         sha512 = "sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA==";
       };
     };
+    "symbol-observable-3.0.0" = {
+      name = "symbol-observable";
+      packageName = "symbol-observable";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/symbol-observable/-/symbol-observable-3.0.0.tgz";
+        sha512 = "6tDOXSHiVjuCaasQSWTmHUWn4PuG7qa3+1WT031yTc/swT7+rLiw3GOrFxaH1E3lLP09dH3bVuVDf2gK5rxG3Q==";
+      };
+    };
     "symbol-tree-3.2.4" = {
       name = "symbol-tree";
       packageName = "symbol-tree";
@@ -51621,22 +53151,13 @@ let
         sha512 = "YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==";
       };
     };
-    "systeminformation-4.30.11" = {
+    "systeminformation-4.33.5" = {
       name = "systeminformation";
       packageName = "systeminformation";
-      version = "4.30.11";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/systeminformation/-/systeminformation-4.30.11.tgz";
-        sha512 = "dR2OJMvyBeF+VZ36851O7oQEUFdNtux3xFI+xAFbWg5J/mh5lQOBiceHTkYOyvGf++mMIKgpeAmYnKy+cyWIdw==";
-      };
-    };
-    "syswide-cas-5.3.0" = {
-      name = "syswide-cas";
-      packageName = "syswide-cas";
-      version = "5.3.0";
+      version = "4.33.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/syswide-cas/-/syswide-cas-5.3.0.tgz";
-        sha512 = "+RLgS6VInsX8rBpL+gy5qpa7phngecbK7NABelBZpqYpBTwOIK1y7CqHlXK5Vy/rA4erD9q/FyKzMjx2uX3zYg==";
+        url = "https://registry.npmjs.org/systeminformation/-/systeminformation-4.33.5.tgz";
+        sha512 = "LxsyvCB4uYqzjEQUH5cNt8TCNZsEc5oHV5LfT96huYAj3w9U0TGQtg7CiTWYzU4aBnBAejXWct6O0nlZhzzaqQ==";
       };
     };
     "table-3.8.3" = {
@@ -51675,13 +53196,13 @@ let
         sha512 = "wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==";
       };
     };
-    "table-6.0.4" = {
+    "table-6.0.6" = {
       name = "table";
       packageName = "table";
-      version = "6.0.4";
+      version = "6.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/table/-/table-6.0.4.tgz";
-        sha512 = "sBT4xRLdALd+NFBvwOz8bw4b15htyythha+q+DVZqy2RS08PPC8O2sZFgJYEY7bJvbCFKccs+WIZ/cd+xxTWCw==";
+        url = "https://registry.npmjs.org/table/-/table-6.0.6.tgz";
+        sha512 = "OInCtPmDNieVBkVFi6C8RwU2S2H0h8mF3e3TQK4nreaUNCpooQUkI+A/KuEkm5FawfhWIfNqG+qfelVVR+V00g==";
       };
     };
     "table-layout-0.4.5" = {
@@ -51693,15 +53214,6 @@ let
         sha512 = "zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==";
       };
     };
-    "table-layout-1.0.1" = {
-      name = "table-layout";
-      packageName = "table-layout";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/table-layout/-/table-layout-1.0.1.tgz";
-        sha512 = "dEquqYNJiGwY7iPfZ3wbXDI944iqanTSchrACLL2nOB+1r+h1Nzu2eH+DuPPvWvm5Ry7iAPeFlgEtP5bIp5U7Q==";
-      };
-    };
     "tabtab-1.3.2" = {
       name = "tabtab";
       packageName = "tabtab";
@@ -51748,13 +53260,13 @@ let
         sha1 = "7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268";
       };
     };
-    "tail-2.0.4" = {
+    "tail-2.1.1" = {
       name = "tail";
       packageName = "tail";
-      version = "2.0.4";
+      version = "2.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tail/-/tail-2.0.4.tgz";
-        sha512 = "xHkZdNWIzO++g+V/rHGqVoHd2LRxz+8t8bj6FGelfb8FHBjg5yjkX7Su/8sQSBo5alIspYkRp/fU0A2SM5h+5A==";
+        url = "https://registry.npmjs.org/tail/-/tail-2.1.1.tgz";
+        sha512 = "TBGFzKYD5Af/ts7DBypAQNmPQlt5Uq0bqcf4eRwnfvQcLnSTqruA8h3ps7CKIEPcwX7z9YnP3B6bBHLWYN7+ag==";
       };
     };
     "taketalk-1.0.0" = {
@@ -51892,13 +53404,13 @@ let
         sha512 = "rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==";
       };
     };
-    "tar-stream-2.1.4" = {
+    "tar-stream-2.2.0" = {
       name = "tar-stream";
       packageName = "tar-stream";
-      version = "2.1.4";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.4.tgz";
-        sha512 = "o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw==";
+        url = "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz";
+        sha512 = "ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==";
       };
     };
     "taskkill-3.1.0" = {
@@ -51928,6 +53440,15 @@ let
         sha1 = "9450e8768c83b416fd4d1a6a9449eeccbf496c29";
       };
     };
+    "tcp-port-used-1.0.2" = {
+      name = "tcp-port-used";
+      packageName = "tcp-port-used";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.2.tgz";
+        sha512 = "l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA==";
+      };
+    };
     "tdigest-0.1.1" = {
       name = "tdigest";
       packageName = "tdigest";
@@ -52090,13 +53611,13 @@ let
         sha512 = "wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==";
       };
     };
-    "terminal-kit-1.44.0" = {
+    "terminal-kit-1.44.3" = {
       name = "terminal-kit";
       packageName = "terminal-kit";
-      version = "1.44.0";
+      version = "1.44.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/terminal-kit/-/terminal-kit-1.44.0.tgz";
-        sha512 = "f9RLSA1a1ahx/40NwQ1FoGWz/el7no9RiGX4wMUirmqxJZjwZ09pMZWFWzlHb1yIfk9SnfRD9esGfofu5fF35A==";
+        url = "https://registry.npmjs.org/terminal-kit/-/terminal-kit-1.44.3.tgz";
+        sha512 = "G7V7l2pqJqa5llfn/ORDgKlUMGG27n1nxuxwWmZ4/1hCURz+yldKrknirIeu/kyK5M3UdtgPJ0wGAAXw+0aVfw==";
       };
     };
     "terminal-link-2.1.1" = {
@@ -52180,6 +53701,15 @@ let
         sha512 = "cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==";
       };
     };
+    "test-value-2.1.0" = {
+      name = "test-value";
+      packageName = "test-value";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz";
+        sha1 = "11da6ff670f3471a73b625ca4f3fdcf7bb748291";
+      };
+    };
     "text-extensions-1.9.0" = {
       name = "text-extensions";
       packageName = "text-extensions";
@@ -52369,6 +53899,15 @@ let
         sha1 = "f41a1c31df5e129e4314446f66eca05cd6a30480";
       };
     };
+    "through2-2.0.1" = {
+      name = "through2";
+      packageName = "through2";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/through2/-/through2-2.0.1.tgz";
+        sha1 = "384e75314d49f32de12eebb8136b8eb6b5d59da9";
+      };
+    };
     "through2-2.0.5" = {
       name = "through2";
       packageName = "through2";
@@ -53125,6 +54664,15 @@ let
         sha512 = "6Di70O1dWm45SJ5xrGzlE805z3gYn4ZUmNKomIrI4OojzRA4zyQzJ/4lAxQbJlq0ihG/mUE2xbP4q85Q68ig2g==";
       };
     };
+    "toxic-1.0.1" = {
+      name = "toxic";
+      packageName = "toxic";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/toxic/-/toxic-1.0.1.tgz";
+        sha512 = "WI3rIGdcaKULYg7KVoB0zcjikqvcYYvcuT6D89bFPz2rVR0Rl0PK6x8/X62rtdLtBKIE985NzVf/auTtGegIIg==";
+      };
+    };
     "tr46-0.0.3" = {
       name = "tr46";
       packageName = "tr46";
@@ -53674,6 +55222,15 @@ let
         sha1 = "b75bc2df15649bb84e8b9aa3c0669c6c4bce0d25";
       };
     };
+    "tweetsodium-0.0.5" = {
+      name = "tweetsodium";
+      packageName = "tweetsodium";
+      version = "0.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tweetsodium/-/tweetsodium-0.0.5.tgz";
+        sha512 = "T3aXZtx7KqQbutTtBfn+P5By3HdBuB1eCoGviIrRJV2sXeToxv2X2cv5RvYqgG26PSnN5m3fYixds22Gkfd11w==";
+      };
+    };
     "twig-1.15.4" = {
       name = "twig";
       packageName = "twig";
@@ -53746,6 +55303,15 @@ let
         sha512 = "0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==";
       };
     };
+    "type-fest-0.10.0" = {
+      name = "type-fest";
+      packageName = "type-fest";
+      version = "0.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.10.0.tgz";
+        sha512 = "EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw==";
+      };
+    };
     "type-fest-0.11.0" = {
       name = "type-fest";
       packageName = "type-fest";
@@ -53800,6 +55366,15 @@ let
         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";
@@ -53809,6 +55384,15 @@ let
         sha512 = "cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==";
       };
     };
+    "type-fest-0.4.1" = {
+      name = "type-fest";
+      packageName = "type-fest";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz";
+        sha512 = "IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==";
+      };
+    };
     "type-fest-0.5.2" = {
       name = "type-fest";
       packageName = "type-fest";
@@ -53908,6 +55492,15 @@ let
         sha512 = "kk80vLW9iGtjMnIv11qyxLqZm20UklzuR2tL0QAnDIygIUIemcZMxlMWudl9OOt76H3ntVzcTiddQ1/pAAJMYg==";
       };
     };
+    "typescript-3.2.4" = {
+      name = "typescript";
+      packageName = "typescript";
+      version = "3.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typescript/-/typescript-3.2.4.tgz";
+        sha512 = "0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg==";
+      };
+    };
     "typescript-3.9.7" = {
       name = "typescript";
       packageName = "typescript";
@@ -53935,13 +55528,13 @@ let
         sha512 = "ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==";
       };
     };
-    "typescript-4.1.2" = {
+    "typescript-4.1.3" = {
       name = "typescript";
       packageName = "typescript";
-      version = "4.1.2";
+      version = "4.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz";
-        sha512 = "thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==";
+        url = "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz";
+        sha512 = "B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==";
       };
     };
     "typescript-eslint-parser-16.0.1" = {
@@ -53989,15 +55582,6 @@ let
         sha1 = "5c080e5d661cbbe38259d2e70a3c7253e873881d";
       };
     };
-    "typical-5.2.0" = {
-      name = "typical";
-      packageName = "typical";
-      version = "5.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz";
-        sha512 = "dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==";
-      };
-    };
     "typo-geom-0.11.0" = {
       name = "typo-geom";
       packageName = "typo-geom";
@@ -54052,13 +55636,13 @@ let
         sha512 = "oASI1FOJ7BBFkSCNDZ446EgkSuHkOZBuqRFrwXIKWCoXw8ZXQETooTQjkAcBS03Acab7ubCKsXnwuV2svy061g==";
       };
     };
-    "uglify-js-3.12.1" = {
+    "uglify-js-3.12.4" = {
       name = "uglify-js";
       packageName = "uglify-js";
-      version = "3.12.1";
+      version = "3.12.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.12.1.tgz";
-        sha512 = "o8lHP20KjIiQe5b/67Rh68xEGRrc2SRsCuuoYclXXoC74AfSRGblU1HKzJWH3HxPZ+Ort85fWHpSX7KwBUC9CQ==";
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.12.4.tgz";
+        sha512 = "L5i5jg/SHkEqzN18gQMTWsZk3KelRsfD1wUVNqtq0kzqWQqcJjyL8yc1o8hJgRrWqrAl2mUFbhfznEIoi7zi2A==";
       };
     };
     "uglify-js-3.4.10" = {
@@ -54439,13 +56023,13 @@ let
         sha512 = "vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==";
       };
     };
-    "unified-diff-3.0.1" = {
+    "unified-diff-3.1.0" = {
       name = "unified-diff";
       packageName = "unified-diff";
-      version = "3.0.1";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unified-diff/-/unified-diff-3.0.1.tgz";
-        sha512 = "oDngdkrYYNRUYi19GqyvWNZmOGGsdu1GEOKYy+6iXGphvaoDDidVj3frOC7SumQ2SCWixaHELiXQe7fwcLrMAA==";
+        url = "https://registry.npmjs.org/unified-diff/-/unified-diff-3.1.0.tgz";
+        sha512 = "d29qhcADmrvjgSYDLDUmmE/zvVyKUW+O3gRz6Bjj7fcv8kGBlrYBmMjnuBI+wuTou/PXaVl3hPeSh9mXZ0iGSA==";
       };
     };
     "unified-engine-6.0.1" = {
@@ -54466,13 +56050,13 @@ let
         sha512 = "vLUezxCnjzz+ya4pYouRQVMT8k82Rk4fIj406UidRnSFJdGXFaQyQklAnalsQHJrLqAlaYPkXPUa1upfVSHGCA==";
       };
     };
-    "unified-message-control-3.0.1" = {
+    "unified-message-control-3.0.2" = {
       name = "unified-message-control";
       packageName = "unified-message-control";
-      version = "3.0.1";
+      version = "3.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unified-message-control/-/unified-message-control-3.0.1.tgz";
-        sha512 = "K2Kvvp1DBzeuxYLLsumZh/gDWUTl4e2z/P3VReFirC78cfHKtQifbhnfRrSBtKtd1Uc6cvYTW0/SZIUaMAEcTg==";
+        url = "https://registry.npmjs.org/unified-message-control/-/unified-message-control-3.0.2.tgz";
+        sha512 = "lhF8fKjDo2cIPx1re5X1QinqUonl+AN6F0XfEaab8w/hjqX7FZAhzu4P8g6pmYp09ld+HSWFwdRJj+Y8xD0q7Q==";
       };
     };
     "union-0.5.0" = {
@@ -54997,15 +56581,6 @@ let
         sha512 = "aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==";
       };
     };
-    "upath-2.0.0" = {
-      name = "upath";
-      packageName = "upath";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/upath/-/upath-2.0.0.tgz";
-        sha512 = "ghi1XxsVYPOZPDsOZrfOJIwQU5I3JVYB3Q6IbBGn1KFeOa89i0nUy5tCEkY9pVm83U83qZ1QG40RQKGknllV4w==";
-      };
-    };
     "upath-2.0.1" = {
       name = "upath";
       packageName = "upath";
@@ -55159,13 +56734,13 @@ let
         sha512 = "B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==";
       };
     };
-    "urijs-1.19.2" = {
+    "urijs-1.19.5" = {
       name = "urijs";
       packageName = "urijs";
-      version = "1.19.2";
+      version = "1.19.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/urijs/-/urijs-1.19.2.tgz";
-        sha512 = "s/UIq9ap4JPZ7H1EB5ULo/aOUbWqfDi7FKzMC2Nz+0Si8GiT1rIEaprt8hy3Vy2Ex2aJPpOQv4P4DuOZ+K1c6w==";
+        url = "https://registry.npmjs.org/urijs/-/urijs-1.19.5.tgz";
+        sha512 = "48z9VGWwdCV5KfizHsE05DWS5fhK6gFlx5MjO7xu0Krc5FGPWzjlXEVV0nPMrdVuP7xmMHiPZ2HoYZwKOFTZOg==";
       };
     };
     "urix-0.1.0" = {
@@ -55646,6 +57221,15 @@ let
         sha512 = "FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==";
       };
     };
+    "uuid-8.3.2" = {
+      name = "uuid";
+      packageName = "uuid";
+      version = "8.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz";
+        sha512 = "+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==";
+      };
+    };
     "v8-compile-cache-2.2.0" = {
       name = "v8-compile-cache";
       packageName = "v8-compile-cache";
@@ -55691,6 +57275,15 @@ let
         sha512 = "mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==";
       };
     };
+    "vali-date-1.0.0" = {
+      name = "vali-date";
+      packageName = "vali-date";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz";
+        sha1 = "1b904a59609fb328ef078138420934f6b86709a6";
+      };
+    };
     "valid-identifier-0.0.2" = {
       name = "valid-identifier";
       packageName = "valid-identifier";
@@ -55889,13 +57482,13 @@ let
         sha1 = "cfde751860a15822db3b132bc59b116a4adaf01b";
       };
     };
-    "vega-5.17.0" = {
+    "vega-5.17.3" = {
       name = "vega";
       packageName = "vega";
-      version = "5.17.0";
+      version = "5.17.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega/-/vega-5.17.0.tgz";
-        sha512 = "2Rm9aS3cSMXE55YgjfkuOmvSBMtiM/85/qX/WHLc+YiJacKGiwY9yzeC+w2Ft50JUs3nKZc1KB90ePgf5mfo0Q==";
+        url = "https://registry.npmjs.org/vega/-/vega-5.17.3.tgz";
+        sha512 = "c8N2pNg9MMmC6shNpoxVw3aVp2XPFOgmWNX5BEOAdCaGHRnSgzNy44+gYdGRaIe6+ljTzZg99Mf+OLO50IP42A==";
       };
     };
     "vega-canvas-1.2.6" = {
@@ -55943,13 +57536,22 @@ let
         sha512 = "UwCu50Sqd8kNZ1X/XgiAY+QAyQUmGFAwyDu7y0T5fs6/TPQnDo/Bo346NgSgINBEhEKOAMY1Nd/rPOk4UEm/ew==";
       };
     };
-    "vega-expression-3.0.0" = {
+    "vega-expression-3.0.1" = {
       name = "vega-expression";
       packageName = "vega-expression";
-      version = "3.0.0";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-expression/-/vega-expression-3.0.1.tgz";
+        sha512 = "+UwOFEkBnAWo8Zud6i8O4Pd2W6QqmPUOaAhjNtj0OxRL+d+Duoy7M4edUDZ+YuoUcMnjjBFfDQu7oRAA1fIMEQ==";
+      };
+    };
+    "vega-expression-4.0.1" = {
+      name = "vega-expression";
+      packageName = "vega-expression";
+      version = "4.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega-expression/-/vega-expression-3.0.0.tgz";
-        sha512 = "/ObjIOK94MB+ziTuh8HZt2eWlKUPT/piRJLal5tx5QL1sQbfRi++7lHKTaKMLXLqc4Xqp9/DewE3PqQ6tYzaUA==";
+        url = "https://registry.npmjs.org/vega-expression/-/vega-expression-4.0.1.tgz";
+        sha512 = "ZrDj0hP8NmrCpdLFf7Rd/xMUHGoSYsAOTaYp7uXZ2dkEH5x0uPy5laECMc8TiQvL8W+8IrN2HAWCMRthTSRe2Q==";
       };
     };
     "vega-force-4.0.7" = {
@@ -55970,22 +57572,22 @@ let
         sha512 = "oTAeub3KWm6nKhXoYCx1q9G3K43R6/pDMXvqDlTSUtjoY7b/Gixm8iLcir5S9bPjvH40n4AcbZsPmNfL/Up77A==";
       };
     };
-    "vega-functions-5.8.0" = {
+    "vega-functions-5.10.0" = {
       name = "vega-functions";
       packageName = "vega-functions";
-      version = "5.8.0";
+      version = "5.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega-functions/-/vega-functions-5.8.0.tgz";
-        sha512 = "xaUqWZHEX+EuJuKfN0Biux3rrCHDEHmMbW7LHYyyEqguR0i6+zhtOSUEWmYqDfzB/+BlIwCk5Vif6q6/mzJxbQ==";
+        url = "https://registry.npmjs.org/vega-functions/-/vega-functions-5.10.0.tgz";
+        sha512 = "1l28OxUwOj8FEvRU62Oz2hiTuDECrvx1DPU1qLebBKhlgaKbcCk3XyHrn1kUzhMKpXq+SFv5VPxchZP47ASSvQ==";
       };
     };
-    "vega-geo-4.3.7" = {
+    "vega-geo-4.3.8" = {
       name = "vega-geo";
       packageName = "vega-geo";
-      version = "4.3.7";
+      version = "4.3.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega-geo/-/vega-geo-4.3.7.tgz";
-        sha512 = "5HC1D9Z/WYuM1Gmlk8PxuRKgeN8snNWsfKO4E9PTmR7wo7tuU/2SGlRoE27aTsgwMMpBIrpRbSgKtgh5l/fMUQ==";
+        url = "https://registry.npmjs.org/vega-geo/-/vega-geo-4.3.8.tgz";
+        sha512 = "fsGxV96Q/QRgPqOPtMBZdI+DneIiROKTG3YDZvGn0EdV16OG5LzFhbNgLT5GPzI+kTwgLpAsucBHklexlB4kfg==";
       };
     };
     "vega-hierarchy-4.0.9" = {
@@ -56015,13 +57617,13 @@ let
         sha512 = "e5enQECdau7rJob0NFB5pGumh3RaaSWWm90+boxMy3ay2b4Ki/3XIvo+C4F1Lx04qSxvQF7tO2LJcklRm6nqRA==";
       };
     };
-    "vega-parser-6.1.0" = {
+    "vega-parser-6.1.2" = {
       name = "vega-parser";
       packageName = "vega-parser";
-      version = "6.1.0";
+      version = "6.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega-parser/-/vega-parser-6.1.0.tgz";
-        sha512 = "u14bHXV8vtcuMIJkMNoDAJ4Xu3lwKIkep+YEkPumWvlwl3fClWy26EAcwTneeM3rXu2F6ZJI6W3ddu/If8u13w==";
+        url = "https://registry.npmjs.org/vega-parser/-/vega-parser-6.1.2.tgz";
+        sha512 = "aGyZrNzPrBruEb/WhemKDuDjQsIkMDGIgnSJci0b+9ZVxjyAzMl7UfGbiYorPiJlnIercjUJbMoFD6fCIf4gqQ==";
       };
     };
     "vega-projection-1.4.5" = {
@@ -56069,13 +57671,13 @@ let
         sha512 = "epm1CxcB8AucXQlSDeFnmzy0FCj+HV2k9R6ch2lfLRln5lPLEfgJWgFcFhVf5jyheY0FSeHH52Q5zQn1vYI1Ow==";
       };
     };
-    "vega-selections-5.1.4" = {
+    "vega-selections-5.1.5" = {
       name = "vega-selections";
       packageName = "vega-selections";
-      version = "5.1.4";
+      version = "5.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega-selections/-/vega-selections-5.1.4.tgz";
-        sha512 = "L7CHwcIjVf90GoW2tS2x5O496O5Joaerp5A1KM6VJ1uo4z6KfqxY6M/328a/uaAs0LC5qbQgXT3htFbtUrPW/A==";
+        url = "https://registry.npmjs.org/vega-selections/-/vega-selections-5.1.5.tgz";
+        sha512 = "oRSsfkqYqA5xfEJqDpgnSDd+w0k6p6SGYisMD6rGXMxuPl0x0Uy6RvDr4nbEtB+dpWdoWEvgrsZVS6axyDNWvQ==";
       };
     };
     "vega-statistics-1.7.9" = {
@@ -56105,13 +57707,13 @@ let
         sha512 = "PdqQd5oPlRyD405M2w+Sz9Bo+i7Rwi8o03SVK7RaeQsJC2FffKGJ6acIaSEgOq+yD1Q2k/1SePmCXcmLUlIiEA==";
       };
     };
-    "vega-typings-0.19.1" = {
+    "vega-typings-0.19.2" = {
       name = "vega-typings";
       packageName = "vega-typings";
-      version = "0.19.1";
+      version = "0.19.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega-typings/-/vega-typings-0.19.1.tgz";
-        sha512 = "OSyNYwMJ8FayTTNU/gohprbt1EFQBpoiMPP9p2vqo1O9z45XVnotQ92jYHAhraI6gWiMIIfo4OjPbSe/GX7etg==";
+        url = "https://registry.npmjs.org/vega-typings/-/vega-typings-0.19.2.tgz";
+        sha512 = "YU/S9rDk4d+t4+4eTa9fzuw87PMNteeVtpcL51kUO8H7HvGaoW7ll8RHKLkR0NYBEGPRoFDKUxnoyMvhgjsdYw==";
       };
     };
     "vega-util-1.16.0" = {
@@ -56123,13 +57725,13 @@ let
         sha512 = "6mmz6mI+oU4zDMeKjgvE2Fjz0Oh6zo6WGATcvCfxH2gXBzhBHmy5d25uW5Zjnkc6QBXSWPLV9Xa6SiqMsrsKog==";
       };
     };
-    "vega-view-5.9.0" = {
+    "vega-view-5.9.2" = {
       name = "vega-view";
       packageName = "vega-view";
-      version = "5.9.0";
+      version = "5.9.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega-view/-/vega-view-5.9.0.tgz";
-        sha512 = "HqRFuqO2OwoPHHK+CVt8vB8fu2L8GjQerLpmEpglWtCPDns5+gn5B6F7M8Ah8v24WlfqW7cLrY81t9OloPZOyw==";
+        url = "https://registry.npmjs.org/vega-view/-/vega-view-5.9.2.tgz";
+        sha512 = "XAwKWyVjLClR3aCbTLCWdZj7aZozOULNg7078GxJIgVcBJOENCAidceI/H7JieyUZ96p3AiEHLQdWr167InBpg==";
       };
     };
     "vega-view-transforms-4.5.8" = {
@@ -56168,13 +57770,13 @@ let
         sha512 = "/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==";
       };
     };
-    "verda-1.2.0" = {
+    "verda-1.2.1" = {
       name = "verda";
       packageName = "verda";
-      version = "1.2.0";
+      version = "1.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/verda/-/verda-1.2.0.tgz";
-        sha512 = "6xCi3IqMbT/H9PFBBmVB2foC3GBVpTm/doRCr3Is5RAdcpZHlkhfDto6WpoF0Sei1Dz60/lXGoaqOYM2op9Ftw==";
+        url = "https://registry.npmjs.org/verda/-/verda-1.2.1.tgz";
+        sha512 = "hEkyReHbrar3MikWeZTLWaR3Sr7KAl/M+KczKgGs80LHTPaKC06ussYuWVg9lMeOrwbOZb1o3DRNv91VzoGoYg==";
       };
     };
     "verror-1.1.0" = {
@@ -56249,13 +57851,13 @@ let
         sha512 = "y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ==";
       };
     };
-    "vfile-4.2.0" = {
+    "vfile-4.2.1" = {
       name = "vfile";
       packageName = "vfile";
-      version = "4.2.0";
+      version = "4.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vfile/-/vfile-4.2.0.tgz";
-        sha512 = "a/alcwCvtuc8OX92rqqo7PflxiCgXRFjdyoGVuYV+qbgCb0GgZJRvIgCD4+U/Kl1yhaRsaTwksF88xbPyGsgpw==";
+        url = "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz";
+        sha512 = "O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==";
       };
     };
     "vfile-find-down-1.0.0" = {
@@ -56339,13 +57941,13 @@ let
         sha512 = "b15sTuss1wOPWVlyWOvu+n6wGJ/eTYngz3uqMLimQvxZ+Q5oFQGYZZP1o3dR9sk58G5+wej0UPCZSwQBX/mzrQ==";
       };
     };
-    "vfile-reporter-6.0.1" = {
+    "vfile-reporter-6.0.2" = {
       name = "vfile-reporter";
       packageName = "vfile-reporter";
-      version = "6.0.1";
+      version = "6.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-6.0.1.tgz";
-        sha512 = "0OppK9mo8G2XUpv+hIKLVSDsoxJrXnOy73+vIm0jQUOUFYRduqpFHX+QqAQfvRHyX9B0UFiRuNJnBOjQCIsw1g==";
+        url = "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-6.0.2.tgz";
+        sha512 = "GN2bH2gs4eLnw/4jPSgfBjo+XCuvnX9elHICJZjVD4+NM0nsUrMTvdjGY5Sc/XG69XVTgLwj7hknQVc6M9FukA==";
       };
     };
     "vfile-sort-1.0.0" = {
@@ -56510,13 +58112,13 @@ let
         sha1 = "c066afb582bb1cb4128d60ea92392e94d5e9dbec";
       };
     };
-    "vsce-1.81.1" = {
+    "vsce-1.83.0" = {
       name = "vsce";
       packageName = "vsce";
-      version = "1.81.1";
+      version = "1.83.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vsce/-/vsce-1.81.1.tgz";
-        sha512 = "1yWAYRxTx/PKSFZnuELe7GPyIo70H/XKJqf6wGikofUK3f3TCNGI6F9xkTQFvXKNe0AygUuxN7kITyPIQGMP+w==";
+        url = "https://registry.npmjs.org/vsce/-/vsce-1.83.0.tgz";
+        sha512 = "gyF/xtCOFcKO+EvC0FQu5jPECHz2XKMWcw62gqwJJ22lVvlj58t49sWe1IGl9S5NpxCek+QMm6V9i/cDwGWs/Q==";
       };
     };
     "vscode-css-languageservice-3.0.13" = {
@@ -56582,15 +58184,6 @@ let
         sha512 = "QxI+qV97uD7HHOCjh3MrM1TfbdwmTXrMckri5Tus1/FQiG3baDZb2C9Y0y8QThs7PwHYBIQXcAc59ZveCRZKPA==";
       };
     };
-    "vscode-json-languageservice-3.8.4" = {
-      name = "vscode-json-languageservice";
-      packageName = "vscode-json-languageservice";
-      version = "3.8.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-3.8.4.tgz";
-        sha512 = "njDG0+YJvYNKXH+6plQGZMxgbifATFrRpC6Qnm/SAn4IW8bMHxsYunsxrjtpqK42CVSz6Lr7bpbTEZbVuOmFLw==";
-      };
-    };
     "vscode-jsonrpc-3.5.0" = {
       name = "vscode-jsonrpc";
       packageName = "vscode-jsonrpc";
@@ -56636,6 +58229,15 @@ let
         sha512 = "mwLDojZkbmpizSJSmp690oa9FB9jig18SIDGZeBCvFc2/LYSRvMm/WwWtMBJuJ1MfFh7rZXfQige4Uje5Z9NzA==";
       };
     };
+    "vscode-jsonrpc-6.0.0" = {
+      name = "vscode-jsonrpc";
+      packageName = "vscode-jsonrpc";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz";
+        sha512 = "wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==";
+      };
+    };
     "vscode-jsonrpc-6.0.0-next.2" = {
       name = "vscode-jsonrpc";
       packageName = "vscode-jsonrpc";
@@ -56735,6 +58337,15 @@ let
         sha512 = "UCXULa/RmT2zxcb6auNezl9ZIPwYHS15+a0XzybrpT2+xA0RbHEYQCsIQkTRYjGv8cm3yS9iPJMmxLilP+y1Xw==";
       };
     };
+    "vscode-languageserver-7.0.0" = {
+      name = "vscode-languageserver";
+      packageName = "vscode-languageserver";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-7.0.0.tgz";
+        sha512 = "60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==";
+      };
+    };
     "vscode-languageserver-7.0.0-next.3" = {
       name = "vscode-languageserver";
       packageName = "vscode-languageserver";
@@ -56762,6 +58373,15 @@ let
         sha512 = "zrMuwHOAQRhjDSnflWdJG+O2ztMWss8GqUUB8dXLR/FPenwkiBNkMIJJYfSN6sgskvsF0rHAoBowNQfbyZnnvw==";
       };
     };
+    "vscode-languageserver-protocol-3.16.0" = {
+      name = "vscode-languageserver-protocol";
+      packageName = "vscode-languageserver-protocol";
+      version = "3.16.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz";
+        sha512 = "sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==";
+      };
+    };
     "vscode-languageserver-protocol-3.16.0-next.10" = {
       name = "vscode-languageserver-protocol";
       packageName = "vscode-languageserver-protocol";
@@ -56843,6 +58463,15 @@ let
         sha512 = "+a9MPUQrNGRrGU630OGbYVQ+11iOIovjCkqxajPa9w57Sd5ruK8WQNsslzpa0x/QJqC8kRc2DUxWjIFwoNm4ZQ==";
       };
     };
+    "vscode-languageserver-types-3.16.0" = {
+      name = "vscode-languageserver-types";
+      packageName = "vscode-languageserver-types";
+      version = "3.16.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz";
+        sha512 = "k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==";
+      };
+    };
     "vscode-languageserver-types-3.16.0-next.1" = {
       name = "vscode-languageserver-types";
       packageName = "vscode-languageserver-types";
@@ -56870,15 +58499,6 @@ let
         sha512 = "NlKJyGcET/ZBCCLBYIPaGo2c37R03bPYeWXozUtnjyye7+9dhlbMSODyoG2INcQf8zFmB4qhm2UOJjgYEgPCNA==";
       };
     };
-    "vscode-languageserver-types-3.16.0-next.5" = {
-      name = "vscode-languageserver-types";
-      packageName = "vscode-languageserver-types";
-      version = "3.16.0-next.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0-next.5.tgz";
-        sha512 = "lf8Y1XXMtF1r2oDDAmJe+drizNXkybSRXAQQk5dPy2rYJsY9SPXYNO074L3THu9zNYepzV5fRJZUPo/V/TLBRQ==";
-      };
-    };
     "vscode-languageserver-types-3.5.0" = {
       name = "vscode-languageserver-types";
       packageName = "vscode-languageserver-types";
@@ -56978,6 +58598,15 @@ let
         sha512 = "8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==";
       };
     };
+    "vscode-uri-3.0.1" = {
+      name = "vscode-uri";
+      packageName = "vscode-uri";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.1.tgz";
+        sha512 = "LnMgm97uZM2JDjX/vKbbCk+phm++Ih31e5Ao3lqokawhDRocp2ZAVMRiIhPZx6fS5Sqnquyhxh8ABn9TWCvHoA==";
+      };
+    };
     "vstream-0.1.0" = {
       name = "vstream";
       packageName = "vstream";
@@ -56996,13 +58625,13 @@ let
         sha512 = "uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg==";
       };
     };
-    "vue-3.0.4" = {
+    "vue-3.0.5" = {
       name = "vue";
       packageName = "vue";
-      version = "3.0.4";
+      version = "3.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vue/-/vue-3.0.4.tgz";
-        sha512 = "2o+AiQF8sAupyhbyl3oxVCl3WCwC/n5NI7VMM+gVQ231qvSB8eI7sCBloloqDJK6yA367EEtmRSeSCf4sxCC+A==";
+        url = "https://registry.npmjs.org/vue/-/vue-3.0.5.tgz";
+        sha512 = "TfaprOmtsAfhQau7WsomXZ8d9op/dkQLNIq8qPV3A0Vxs6GR5E+c1rfJS1SDkXRQj+dFyfnec7+U0Be1huiScg==";
       };
     };
     "vue-cli-plugin-apollo-0.21.3" = {
@@ -57050,13 +58679,13 @@ let
         sha512 = "8FdXi0gieEwh1IprIBafpiJWcApwrU+l2FEj8c1HtHFdNXMd0+2jUSjBVmcQYohf/E72irwAXEXLga6TQcB3FA==";
       };
     };
-    "vue-eslint-parser-7.2.0" = {
+    "vue-eslint-parser-7.3.0" = {
       name = "vue-eslint-parser";
       packageName = "vue-eslint-parser";
-      version = "7.2.0";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.2.0.tgz";
-        sha512 = "uVcQqe8sUNzdHGcRHMd2Z/hl6qEaWrAmglTKP92Fnq9TYU9un8xsyFgEdFJaXh/1rd7h8Aic1GaiQow5nVneow==";
+        url = "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.3.0.tgz";
+        sha512 = "n5PJKZbyspD0+8LnaZgpEvNCrjQx1DyDHw8JdWwoxhhC+yRip4TAvSDpXGf9SWX6b0umeB5aR61gwUo6NVvFxw==";
       };
     };
     "vue-onsenui-helper-json-1.0.2" = {
@@ -57167,13 +58796,13 @@ let
         sha512 = "9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==";
       };
     };
-    "watchpack-2.0.1" = {
+    "watchpack-2.1.0" = {
       name = "watchpack";
       packageName = "watchpack";
-      version = "2.0.1";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/watchpack/-/watchpack-2.0.1.tgz";
-        sha512 = "vO8AKGX22ZRo6PiOFM9dC0re8IcKh8Kd/aH2zeqUc6w4/jBGlTy2P7fTC6ekT0NjVeGjgU2dGC5rNstKkeLEQg==";
+        url = "https://registry.npmjs.org/watchpack/-/watchpack-2.1.0.tgz";
+        sha512 = "UjgD1mqjkG99+3lgG36at4wPnUXNvis2v1utwTgQ43C22c4LD71LsYMExdWXh4HZ+RmW+B0t1Vrg2GpXAkTOQw==";
       };
     };
     "watchpack-chokidar2-2.0.1" = {
@@ -57311,13 +58940,13 @@ let
         sha512 = "6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q==";
       };
     };
-    "webpack-5.4.0" = {
+    "webpack-5.9.0" = {
       name = "webpack";
       packageName = "webpack";
-      version = "5.4.0";
+      version = "5.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack/-/webpack-5.4.0.tgz";
-        sha512 = "udpYTyqz8toTTdaOsL2QKPLeZLt2IEm9qY7yTXuFEQhKu5bk0yQD9BtAdVQksmz4jFbbWOiWmm3NHarO0zr/ng==";
+        url = "https://registry.npmjs.org/webpack/-/webpack-5.9.0.tgz";
+        sha512 = "YnnqIV/uAS5ZrNpctSv378qV7HmbJ74DL+XfvMxzbX1bV9e7eeT6eEWU4wuUw33CNr/HspBh7R/xQlVjTEyAeA==";
       };
     };
     "webpack-cli-3.3.12" = {
@@ -57347,13 +58976,13 @@ let
         sha512 = "ZYldKNeWQtk9SoV70x7Eb2NRmvHMtNBOjscs0wUdg/pfymntiF+0W/D9v2o76ztufjND6RNFjNVnyFQww25AZg==";
       };
     };
-    "webpack-dev-middleware-3.7.2" = {
+    "webpack-dev-middleware-3.7.3" = {
       name = "webpack-dev-middleware";
       packageName = "webpack-dev-middleware";
-      version = "3.7.2";
+      version = "3.7.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz";
-        sha512 = "1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==";
+        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.0" = {
@@ -57599,13 +59228,13 @@ let
         sha512 = "BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==";
       };
     };
-    "which-boxed-primitive-1.0.1" = {
+    "which-boxed-primitive-1.0.2" = {
       name = "which-boxed-primitive";
       packageName = "which-boxed-primitive";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.1.tgz";
-        sha512 = "7BT4TwISdDGBgaemWU0N0OU7FeAEJ9Oo2P1PHRm/FCWoEi2VLWC9b6xvxAA3C/NMpxg3HXVgi0sMmGbNUbNepQ==";
+        url = "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz";
+        sha512 = "bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==";
       };
     };
     "which-collection-1.0.1" = {
@@ -57653,13 +59282,13 @@ let
         sha1 = "20b721df05b35b706176ffa10b0909aba4603035";
       };
     };
-    "which-typed-array-1.1.2" = {
+    "which-typed-array-1.1.4" = {
       name = "which-typed-array";
       packageName = "which-typed-array";
-      version = "1.1.2";
+      version = "1.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.2.tgz";
-        sha512 = "KT6okrd1tE6JdZAy3o2VhMoYPh3+J6EMZLyrxBQsZflI1QCZIxMrIYLkosd8Twf+YfknVIHmYQPgJt238p8dnQ==";
+        url = "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz";
+        sha512 = "49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==";
       };
     };
     "wide-align-1.1.3" = {
@@ -57941,15 +59570,6 @@ let
         sha512 = "mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==";
       };
     };
-    "wordwrapjs-4.0.0" = {
-      name = "wordwrapjs";
-      packageName = "wordwrapjs";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.0.tgz";
-        sha512 = "Svqw723a3R34KvsMgpjFBYCgNOSdcW3mQFK4wIfhGQhtaFVOJmdYoXgi63ne3dTlWgatVcUc7t4HtQ/+bUVIzQ==";
-      };
-    };
     "workbox-background-sync-3.6.3" = {
       name = "workbox-background-sync";
       packageName = "workbox-background-sync";
@@ -58355,22 +59975,22 @@ let
         sha512 = "D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==";
       };
     };
-    "ws-7.4.0" = {
+    "ws-7.4.1" = {
       name = "ws";
       packageName = "ws";
-      version = "7.4.0";
+      version = "7.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz";
-        sha512 = "kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==";
+        url = "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz";
+        sha512 = "pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==";
       };
     };
-    "ws-7.4.1" = {
+    "ws-7.4.2" = {
       name = "ws";
       packageName = "ws";
-      version = "7.4.1";
+      version = "7.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz";
-        sha512 = "pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==";
+        url = "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz";
+        sha512 = "T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==";
       };
     };
     "x-default-browser-0.3.1" = {
@@ -58625,6 +60245,15 @@ let
         sha512 = "ts+B2rSe4fIckR6iquDjsKbQFK2NlUk6iG5nf14mDEyldgoc2nEKZ3jZWMPTxGQwVgToSjt6VGIho1H8/fNFTg==";
       };
     };
+    "xmlbuilder-15.1.1" = {
+      name = "xmlbuilder";
+      packageName = "xmlbuilder";
+      version = "15.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz";
+        sha512 = "yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==";
+      };
+    };
     "xmlbuilder-2.5.2" = {
       name = "xmlbuilder";
       packageName = "xmlbuilder";
@@ -58761,13 +60390,13 @@ let
         sha1 = "fcd82267e9351c13f0fb9c73307f25331d29c63a";
       };
     };
-    "xpath-0.0.27" = {
+    "xpath-0.0.32" = {
       name = "xpath";
       packageName = "xpath";
-      version = "0.0.27";
+      version = "0.0.32";
       src = fetchurl {
-        url = "https://registry.npmjs.org/xpath/-/xpath-0.0.27.tgz";
-        sha512 = "fg03WRxtkCV6ohClePNAECYsmpKKTv5L8y/X3Dn1hQrec3POx2jHZ/0P2qQ6HvsrU1BmeqXcof3NGGueG6LxwQ==";
+        url = "https://registry.npmjs.org/xpath/-/xpath-0.0.32.tgz";
+        sha512 = "rxMJhSIoiO8vXcWvSifKqhvV96GjiD5wYb8/QHdoRyQvraTpp4IEv944nhGausZZ3u7dhQXteZuZbaqfpB7uYw==";
       };
     };
     "xpath-0.0.5" = {
@@ -58968,13 +60597,13 @@ let
         sha1 = "87cfa5a9613f48e26005420d6a8ee0da6fe8daec";
       };
     };
-    "yaml-language-server-0.12.0" = {
+    "yaml-language-server-0.13.1-dcc82a9.0" = {
       name = "yaml-language-server";
       packageName = "yaml-language-server";
-      version = "0.12.0";
+      version = "0.13.1-dcc82a9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-0.12.0.tgz";
-        sha512 = "EAr9fJi05wVWsFVgc4s0AI74nT6D2oN7xcy7W+7JCkvirbm0L7aPDRAjSz6z/dXVyYyFlEAgRWVThXzqguFyTw==";
+        url = "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-0.13.1-dcc82a9.0.tgz";
+        sha512 = "26QP9JhfcrroDTeMv2OsY4eoI+NKb6tZwy1Uz0MBWi1uGmOw0/6aR9Oa3guOsC96U27GAqT6glRFMjCGqLro7A==";
       };
     };
     "yaml-language-server-parser-0.1.1" = {
@@ -58986,6 +60615,15 @@ let
         sha512 = "2PememGb1SrPqXAxXTpBD39rwYZap6CJVSvkfULNv9uwV3VHp1TfkgpsylBb+mpuuivH0JZ52lChXPvNa6yVxw==";
       };
     };
+    "yaml-language-server-parser-0.1.3-fa8245c.0" = {
+      name = "yaml-language-server-parser";
+      packageName = "yaml-language-server-parser";
+      version = "0.1.3-fa8245c.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yaml-language-server-parser/-/yaml-language-server-parser-0.1.3-fa8245c.0.tgz";
+        sha512 = "0QPUSsmMXHDpqj00xUrlMyqlEAwHHIAuz3wPMyprcCVYx7jh7oo91Z0nC/jhott4XAKp3iY3vjBsMxqszoZosA==";
+      };
+    };
     "yamljs-0.3.0" = {
       name = "yamljs";
       packageName = "yamljs";
@@ -59067,22 +60705,22 @@ let
         sha512 = "6+nLw8xa9uK1BOEOykaiYAJVh6/CjxWXK/q9b5FpRgNslt8s22F2xMBqVIKgCRjNgGvGPBy8Vog7WN7yh4amtA==";
       };
     };
-    "yargs-16.1.0" = {
+    "yargs-16.1.1" = {
       name = "yargs";
       packageName = "yargs";
-      version = "16.1.0";
+      version = "16.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-16.1.0.tgz";
-        sha512 = "upWFJOmDdHN0syLuESuvXDmrRcWd1QafJolHskzaw79uZa7/x53gxQKiR07W59GWY1tFhhU/Th9DrtSfpS782g==";
+        url = "https://registry.npmjs.org/yargs/-/yargs-16.1.1.tgz";
+        sha512 = "hAD1RcFP/wfgfxgMVswPE+z3tlPFtxG8/yWUrG2i17sTWGCGqWnxKcLTF4cUKDUK8fzokwsmO9H0TDkRbMHy8w==";
       };
     };
-    "yargs-16.1.1" = {
+    "yargs-16.2.0" = {
       name = "yargs";
       packageName = "yargs";
-      version = "16.1.1";
+      version = "16.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-16.1.1.tgz";
-        sha512 = "hAD1RcFP/wfgfxgMVswPE+z3tlPFtxG8/yWUrG2i17sTWGCGqWnxKcLTF4cUKDUK8fzokwsmO9H0TDkRbMHy8w==";
+        url = "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz";
+        sha512 = "D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==";
       };
     };
     "yargs-3.10.0" = {
@@ -59400,6 +61038,15 @@ let
         sha512 = "Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==";
       };
     };
+    "zeromq-5.2.0" = {
+      name = "zeromq";
+      packageName = "zeromq";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/zeromq/-/zeromq-5.2.0.tgz";
+        sha512 = "qsckhCmrg6et6zrAJytC971SSN/4iLxKgkXK1Wqn2Gij5KXMY+TA+3cy/iFwehaWdU5usg5HNOOgaBdjSqtCVw==";
+      };
+    };
     "zerr-1.0.4" = {
       name = "zerr";
       packageName = "zerr";
@@ -59478,17 +61125,17 @@ in
   "@angular/cli" = nodeEnv.buildNodePackage {
     name = "_at_angular_slash_cli";
     packageName = "@angular/cli";
-    version = "11.0.3";
+    version = "11.0.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@angular/cli/-/cli-11.0.3.tgz";
-      sha512 = "ytYVvALJ1YRDZYoqNoUcE4SLyNcMyt2V+Youaasj+C43V0h1GzHZ4J6G4X9sKaaiNAGV4GKjB9r7jzCymaiq+A==";
+      url = "https://registry.npmjs.org/@angular/cli/-/cli-11.0.5.tgz";
+      sha512 = "k4j/2z7qkuigJ1shH0McW1wW63clhrbrg98FK4/KWhU/sce5AgVjuHDQFycAclTwHesf7Vs6Gzt7zGlqUmeKIg==";
     };
     dependencies = [
-      sources."@angular-devkit/architect-0.1100.3"
-      sources."@angular-devkit/core-11.0.3"
-      sources."@angular-devkit/schematics-11.0.3"
-      sources."@schematics/angular-11.0.3"
-      sources."@schematics/update-0.1100.3"
+      sources."@angular-devkit/architect-0.1100.5"
+      sources."@angular-devkit/core-11.0.5"
+      sources."@angular-devkit/schematics-11.0.5"
+      sources."@schematics/angular-11.0.5"
+      sources."@schematics/update-0.1100.5"
       sources."@yarnpkg/lockfile-1.1.0"
       sources."JSONStream-1.3.5"
       sources."agent-base-4.3.0"
@@ -59600,7 +61247,7 @@ in
       sources."infer-owner-1.0.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.6"
       sources."inquirer-7.3.3"
       sources."ip-1.1.5"
       sources."is-core-module-2.2.0"
@@ -59630,8 +61277,8 @@ in
           sources."yallist-3.1.1"
         ];
       })
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-fn-2.1.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -59822,7 +61469,7 @@ in
       sources."convict-6.0.0"
       sources."decamelize-1.2.0"
       sources."esprima-4.0.1"
-      sources."js-yaml-3.14.0"
+      sources."js-yaml-3.14.1"
       sources."json5-2.1.3"
       sources."lodash.clonedeep-4.5.0"
       sources."map-obj-4.1.0"
@@ -59868,7 +61515,7 @@ in
       sources."append-buffer-1.0.2"
       sources."argparse-1.0.10"
       sources."asciidoctor.js-1.5.9"
-      sources."async-lock-1.2.4"
+      sources."async-lock-1.2.6"
       sources."balanced-match-1.0.0"
       sources."base64-js-0.0.2"
       sources."bl-4.0.3"
@@ -59956,7 +61603,7 @@ in
       })
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
-      sources."get-intrinsic-1.0.1"
+      sources."get-intrinsic-1.0.2"
       (sources."get-stream-4.1.0" // {
         dependencies = [
           sources."pump-3.0.0"
@@ -60011,7 +61658,7 @@ in
       sources."is-windows-1.0.2"
       sources."isarray-1.0.0"
       sources."isomorphic-git-0.78.5"
-      sources."js-yaml-3.14.0"
+      sources."js-yaml-3.14.1"
       sources."json-buffer-3.0.0"
       sources."json-stable-stringify-without-jsonify-1.0.1"
       sources."json5-2.1.3"
@@ -60030,8 +61677,8 @@ in
       sources."map-obj-4.1.0"
       sources."marky-1.2.1"
       sources."matcher-2.1.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-response-2.1.0"
       sources."minimatch-3.0.4"
       sources."minimatch-all-1.1.0"
@@ -60120,7 +61767,7 @@ in
         ];
       })
       sources."to-utf8-0.0.1"
-      sources."uglify-js-3.12.1"
+      sources."uglify-js-3.12.4"
       sources."unc-path-regex-0.1.2"
       sources."unique-stream-2.3.1"
       sources."universalify-0.1.2"
@@ -60199,7 +61846,7 @@ in
       sources."cssstyle-1.4.0"
       sources."dashdash-1.14.1"
       sources."data-urls-1.1.0"
-      sources."debug-4.3.1"
+      sources."debug-4.3.2"
       sources."deep-is-0.1.3"
       sources."delayed-stream-1.0.0"
       sources."domexception-1.0.1"
@@ -60245,8 +61892,8 @@ in
       sources."lodash.sortby-4.7.0"
       sources."lowdb-1.0.0"
       sources."lunr-2.3.3"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-fn-1.2.0"
       sources."ms-2.1.2"
       sources."mute-stream-0.0.7"
@@ -60326,17 +61973,17 @@ in
   "@nestjs/cli" = nodeEnv.buildNodePackage {
     name = "_at_nestjs_slash_cli";
     packageName = "@nestjs/cli";
-    version = "7.5.3";
+    version = "7.5.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@nestjs/cli/-/cli-7.5.3.tgz";
-      sha512 = "PgpdXaNNtWMRAnDzMEXjbCXDiJWoNcmnKa6HhJ9iLJaqdXkIILiLthJx64sZxB6GiE4UYWjbX/KuPH3N2dx/6Q==";
+      url = "https://registry.npmjs.org/@nestjs/cli/-/cli-7.5.4.tgz";
+      sha512 = "qKdniSA7NXO/5HqSxGaalMS7roIJXeT4yXTadBQ47Qv68DHh/0jfCcTzH6hqCuyRV7DV2k0bxob+rq4peMaZBw==";
     };
     dependencies = [
-      sources."@angular-devkit/core-11.0.1"
-      sources."@angular-devkit/schematics-11.0.1"
-      sources."@angular-devkit/schematics-cli-0.1100.1"
-      sources."@babel/code-frame-7.10.4"
-      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@angular-devkit/core-11.0.3"
+      sources."@angular-devkit/schematics-11.0.3"
+      sources."@angular-devkit/schematics-cli-0.1100.3"
+      sources."@babel/code-frame-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
       (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
@@ -60347,20 +61994,20 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      (sources."@nestjs/schematics-7.2.2" // {
+      (sources."@nestjs/schematics-7.2.6" // {
         dependencies = [
-          sources."@angular-devkit/core-11.0.0"
-          sources."@angular-devkit/schematics-11.0.0"
+          sources."@angular-devkit/core-11.0.5"
+          sources."@angular-devkit/schematics-11.0.5"
         ];
       })
-      sources."@schematics/schematics-0.1100.1"
+      sources."@schematics/schematics-0.1100.3"
       sources."@types/anymatch-1.3.1"
       sources."@types/eslint-7.2.6"
       sources."@types/eslint-scope-3.7.0"
       sources."@types/estree-0.0.45"
       sources."@types/json-schema-7.0.6"
       sources."@types/json5-0.0.29"
-      sources."@types/node-14.14.10"
+      sources."@types/node-14.14.19"
       sources."@types/parse-json-4.0.0"
       sources."@types/source-list-map-0.1.2"
       sources."@types/tapable-1.0.6"
@@ -60408,10 +62055,10 @@ in
       sources."binary-extensions-2.1.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."browserslist-4.15.0"
+      sources."browserslist-4.16.0"
       sources."buffer-from-1.1.1"
       sources."callsites-3.1.0"
-      sources."caniuse-lite-1.0.30001165"
+      sources."caniuse-lite-1.0.30001171"
       sources."chalk-3.0.0"
       sources."chardet-0.7.0"
       sources."chokidar-3.4.3"
@@ -60432,11 +62079,11 @@ in
       sources."cross-spawn-7.0.3"
       sources."deepmerge-4.2.2"
       sources."defaults-1.0.3"
-      sources."electron-to-chromium-1.3.616"
+      sources."electron-to-chromium-1.3.633"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."enhanced-resolve-4.3.0"
-      sources."errno-0.1.7"
+      sources."errno-0.1.8"
       sources."error-ex-1.3.2"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
@@ -60455,7 +62102,7 @@ in
       sources."figures-3.2.0"
       sources."fill-range-7.0.1"
       sources."find-up-4.1.0"
-      (sources."fork-ts-checker-webpack-plugin-6.0.2" // {
+      (sources."fork-ts-checker-webpack-plugin-6.0.5" // {
         dependencies = [
           sources."chalk-4.1.0"
         ];
@@ -60474,7 +62121,7 @@ in
       sources."has-flag-4.0.0"
       sources."human-signals-1.1.1"
       sources."iconv-lite-0.4.24"
-      sources."import-fresh-3.2.2"
+      sources."import-fresh-3.3.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       (sources."inquirer-7.3.3" // {
@@ -60525,8 +62172,8 @@ in
       sources."memfs-3.2.0"
       sources."memory-fs-0.5.0"
       sources."merge-stream-2.0.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-fn-2.1.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -60633,11 +62280,11 @@ in
       sources."universalify-1.0.0"
       sources."uri-js-4.4.0"
       sources."util-deprecate-1.0.2"
-      sources."watchpack-2.0.1"
+      sources."watchpack-2.1.0"
       sources."wcwidth-1.0.1"
-      (sources."webpack-5.4.0" // {
+      (sources."webpack-5.9.0" // {
         dependencies = [
-          sources."enhanced-resolve-5.4.0"
+          sources."enhanced-resolve-5.4.1"
           sources."schema-utils-3.0.0"
           sources."tapable-2.2.0"
         ];
@@ -60675,10 +62322,10 @@ in
     };
     dependencies = [
       sources."@akryum/winattr-3.0.0"
-      sources."@apollo/federation-0.20.4"
+      sources."@apollo/federation-0.20.7"
       (sources."@apollo/protobufjs-1.0.5" // {
         dependencies = [
-          sources."@types/node-10.17.48"
+          sources."@types/node-10.17.50"
         ];
       })
       sources."@apollographql/apollo-tools-0.4.8"
@@ -60687,20 +62334,24 @@ in
       sources."@apollographql/graphql-language-service-types-2.0.2"
       sources."@apollographql/graphql-language-service-utils-2.0.2"
       sources."@apollographql/graphql-playground-html-1.6.26"
-      sources."@babel/code-frame-7.10.4"
+      sources."@babel/code-frame-7.12.11"
       sources."@babel/compat-data-7.12.7"
-      (sources."@babel/core-7.12.9" // {
+      (sources."@babel/core-7.12.10" // {
         dependencies = [
-          sources."@babel/types-7.12.7"
+          sources."@babel/types-7.12.12"
           sources."semver-5.7.1"
         ];
       })
-      (sources."@babel/generator-7.12.5" // {
+      (sources."@babel/generator-7.12.10" // {
+        dependencies = [
+          sources."@babel/types-7.12.12"
+        ];
+      })
+      (sources."@babel/helper-annotate-as-pure-7.12.10" // {
         dependencies = [
-          sources."@babel/types-7.12.7"
+          sources."@babel/types-7.12.12"
         ];
       })
-      sources."@babel/helper-annotate-as-pure-7.10.4"
       sources."@babel/helper-builder-binary-assignment-operator-visitor-7.10.4"
       (sources."@babel/helper-compilation-targets-7.12.5" // {
         dependencies = [
@@ -60711,74 +62362,82 @@ in
       sources."@babel/helper-create-regexp-features-plugin-7.12.7"
       (sources."@babel/helper-define-map-7.10.5" // {
         dependencies = [
-          sources."@babel/types-7.12.7"
+          sources."@babel/types-7.12.12"
         ];
       })
       (sources."@babel/helper-explode-assignable-expression-7.12.1" // {
         dependencies = [
-          sources."@babel/types-7.12.7"
+          sources."@babel/types-7.12.12"
+        ];
+      })
+      (sources."@babel/helper-function-name-7.12.11" // {
+        dependencies = [
+          sources."@babel/types-7.12.12"
+        ];
+      })
+      (sources."@babel/helper-get-function-arity-7.12.10" // {
+        dependencies = [
+          sources."@babel/types-7.12.12"
         ];
       })
-      sources."@babel/helper-function-name-7.10.4"
-      sources."@babel/helper-get-function-arity-7.10.4"
       sources."@babel/helper-hoist-variables-7.10.4"
       (sources."@babel/helper-member-expression-to-functions-7.12.7" // {
         dependencies = [
-          sources."@babel/types-7.12.7"
+          sources."@babel/types-7.12.12"
         ];
       })
       (sources."@babel/helper-module-imports-7.12.5" // {
         dependencies = [
-          sources."@babel/types-7.12.7"
+          sources."@babel/types-7.12.12"
         ];
       })
       (sources."@babel/helper-module-transforms-7.12.1" // {
         dependencies = [
-          sources."@babel/types-7.12.7"
+          sources."@babel/types-7.12.12"
         ];
       })
-      (sources."@babel/helper-optimise-call-expression-7.12.7" // {
+      (sources."@babel/helper-optimise-call-expression-7.12.10" // {
         dependencies = [
-          sources."@babel/types-7.12.7"
+          sources."@babel/types-7.12.12"
         ];
       })
       sources."@babel/helper-plugin-utils-7.10.4"
       (sources."@babel/helper-remap-async-to-generator-7.12.1" // {
         dependencies = [
-          sources."@babel/types-7.12.7"
+          sources."@babel/types-7.12.12"
         ];
       })
-      (sources."@babel/helper-replace-supers-7.12.5" // {
+      (sources."@babel/helper-replace-supers-7.12.11" // {
         dependencies = [
-          sources."@babel/types-7.12.7"
+          sources."@babel/types-7.12.12"
         ];
       })
       (sources."@babel/helper-simple-access-7.12.1" // {
         dependencies = [
-          sources."@babel/types-7.12.7"
+          sources."@babel/types-7.12.12"
         ];
       })
       (sources."@babel/helper-skip-transparent-expression-wrappers-7.12.1" // {
         dependencies = [
-          sources."@babel/types-7.12.7"
+          sources."@babel/types-7.12.12"
         ];
       })
-      (sources."@babel/helper-split-export-declaration-7.11.0" // {
+      (sources."@babel/helper-split-export-declaration-7.12.11" // {
         dependencies = [
-          sources."@babel/types-7.12.7"
+          sources."@babel/types-7.12.12"
         ];
       })
-      sources."@babel/helper-validator-identifier-7.10.4"
-      sources."@babel/helper-validator-option-7.12.1"
+      sources."@babel/helper-validator-identifier-7.12.11"
+      sources."@babel/helper-validator-option-7.12.11"
       sources."@babel/helper-wrap-function-7.12.3"
       (sources."@babel/helpers-7.12.5" // {
         dependencies = [
-          sources."@babel/types-7.12.7"
+          sources."@babel/types-7.12.12"
         ];
       })
       sources."@babel/highlight-7.10.4"
-      sources."@babel/parser-7.12.7"
-      sources."@babel/plugin-proposal-async-generator-functions-7.12.1"
+      sources."@babel/parser-7.12.11"
+      sources."@babel/plugin-proposal-async-generator-functions-7.12.12"
       sources."@babel/plugin-proposal-class-properties-7.12.1"
       sources."@babel/plugin-proposal-dynamic-import-7.12.1"
       sources."@babel/plugin-proposal-export-namespace-from-7.12.1"
@@ -60808,14 +62467,14 @@ in
       sources."@babel/plugin-transform-arrow-functions-7.12.1"
       sources."@babel/plugin-transform-async-to-generator-7.12.1"
       sources."@babel/plugin-transform-block-scoped-functions-7.12.1"
-      sources."@babel/plugin-transform-block-scoping-7.12.1"
+      sources."@babel/plugin-transform-block-scoping-7.12.12"
       sources."@babel/plugin-transform-classes-7.12.1"
       sources."@babel/plugin-transform-computed-properties-7.12.1"
       sources."@babel/plugin-transform-destructuring-7.12.1"
       sources."@babel/plugin-transform-dotall-regex-7.12.1"
       sources."@babel/plugin-transform-duplicate-keys-7.12.1"
       sources."@babel/plugin-transform-exponentiation-operator-7.12.1"
-      sources."@babel/plugin-transform-flow-strip-types-7.12.1"
+      sources."@babel/plugin-transform-flow-strip-types-7.12.10"
       sources."@babel/plugin-transform-for-of-7.12.1"
       sources."@babel/plugin-transform-function-name-7.12.1"
       sources."@babel/plugin-transform-literals-7.12.1"
@@ -60835,20 +62494,20 @@ in
       sources."@babel/plugin-transform-spread-7.12.1"
       sources."@babel/plugin-transform-sticky-regex-7.12.7"
       sources."@babel/plugin-transform-template-literals-7.12.1"
-      sources."@babel/plugin-transform-typeof-symbol-7.12.1"
+      sources."@babel/plugin-transform-typeof-symbol-7.12.10"
       sources."@babel/plugin-transform-typescript-7.12.1"
       sources."@babel/plugin-transform-unicode-escapes-7.12.1"
       sources."@babel/plugin-transform-unicode-regex-7.12.1"
-      (sources."@babel/preset-env-7.12.7" // {
+      (sources."@babel/preset-env-7.12.11" // {
         dependencies = [
-          sources."@babel/types-7.12.7"
+          sources."@babel/types-7.12.12"
           sources."semver-5.7.1"
         ];
       })
       sources."@babel/preset-flow-7.12.1"
       sources."@babel/preset-modules-0.1.4"
       sources."@babel/preset-typescript-7.12.7"
-      (sources."@babel/register-7.12.1" // {
+      (sources."@babel/register-7.12.10" // {
         dependencies = [
           sources."make-dir-2.1.0"
           sources."pify-4.0.1"
@@ -60858,12 +62517,13 @@ in
       sources."@babel/runtime-7.12.5"
       (sources."@babel/template-7.12.7" // {
         dependencies = [
-          sources."@babel/types-7.12.7"
+          sources."@babel/types-7.12.12"
         ];
       })
-      (sources."@babel/traverse-7.12.9" // {
+      (sources."@babel/traverse-7.12.12" // {
         dependencies = [
-          sources."@babel/types-7.12.7"
+          sources."@babel/generator-7.12.11"
+          sources."@babel/types-7.12.12"
         ];
       })
       sources."@babel/types-7.10.4"
@@ -60874,9 +62534,9 @@ in
       sources."@hapi/joi-15.1.1"
       sources."@hapi/topo-3.1.6"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
-      sources."@nodelib/fs.scandir-2.1.3"
-      sources."@nodelib/fs.stat-2.0.3"
-      sources."@nodelib/fs.walk-1.2.4"
+      sources."@nodelib/fs.scandir-2.1.4"
+      sources."@nodelib/fs.stat-2.0.4"
+      sources."@nodelib/fs.walk-1.2.6"
       (sources."@oclif/color-0.1.2" // {
         dependencies = [
           (sources."chalk-3.0.0" // {
@@ -60893,7 +62553,7 @@ in
       })
       (sources."@oclif/command-1.8.0" // {
         dependencies = [
-          sources."@oclif/plugin-help-3.2.0"
+          sources."@oclif/plugin-help-3.2.1"
           sources."lru-cache-6.0.0"
           sources."semver-7.3.4"
           sources."yallist-4.0.0"
@@ -60919,7 +62579,17 @@ in
       })
       sources."@oclif/linewrap-1.0.0"
       sources."@oclif/parser-3.8.5"
-      sources."@oclif/plugin-autocomplete-0.2.0"
+      (sources."@oclif/plugin-autocomplete-0.2.1" // {
+        dependencies = [
+          sources."fs-extra-9.0.1"
+          (sources."jsonfile-6.1.0" // {
+            dependencies = [
+              sources."universalify-2.0.0"
+            ];
+          })
+          sources."universalify-1.0.0"
+        ];
+      })
       (sources."@oclif/plugin-help-2.2.3" // {
         dependencies = [
           sources."ansi-regex-3.0.0"
@@ -60943,7 +62613,7 @@ in
           sources."strip-ansi-5.2.0"
         ];
       })
-      (sources."@oclif/plugin-plugins-1.9.3" // {
+      (sources."@oclif/plugin-plugins-1.9.4" // {
         dependencies = [
           sources."fs-extra-8.1.0"
           sources."lru-cache-6.0.0"
@@ -60974,13 +62644,13 @@ in
       sources."@sindresorhus/is-0.7.0"
       sources."@types/accepts-1.3.5"
       sources."@types/body-parser-1.19.0"
-      sources."@types/connect-3.4.33"
+      sources."@types/connect-3.4.34"
       sources."@types/content-disposition-0.5.3"
-      sources."@types/cookies-0.7.5"
+      sources."@types/cookies-0.7.6"
       sources."@types/cors-2.8.8"
       sources."@types/ejs-2.7.0"
       sources."@types/express-4.17.7"
-      sources."@types/express-serve-static-core-4.17.13"
+      sources."@types/express-serve-static-core-4.17.17"
       sources."@types/fs-capacitor-2.0.0"
       sources."@types/glob-7.1.3"
       (sources."@types/graphql-upload-8.0.4" // {
@@ -61004,7 +62674,7 @@ in
       sources."@types/long-4.0.1"
       sources."@types/mime-2.0.3"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.14.10"
+      sources."@types/node-14.14.19"
       (sources."@types/node-fetch-2.5.7" // {
         dependencies = [
           sources."form-data-3.0.0"
@@ -61016,7 +62686,7 @@ in
       sources."@types/serve-static-1.13.8"
       sources."@types/through-0.0.30"
       sources."@types/ws-7.4.0"
-      sources."@types/zen-observable-0.8.1"
+      sources."@types/zen-observable-0.8.2"
       sources."@vue/cli-shared-utils-4.5.9"
       (sources."@vue/cli-ui-4.5.9" // {
         dependencies = [
@@ -61025,24 +62695,24 @@ in
       })
       sources."@vue/cli-ui-addon-webpack-4.5.9"
       sources."@vue/cli-ui-addon-widgets-4.5.9"
-      (sources."@vue/compiler-core-3.0.4" // {
+      (sources."@vue/compiler-core-3.0.5" // {
         dependencies = [
-          sources."@babel/types-7.12.7"
+          sources."@babel/types-7.12.12"
           sources."source-map-0.6.1"
         ];
       })
-      sources."@vue/compiler-dom-3.0.4"
-      (sources."@vue/compiler-sfc-3.0.4" // {
+      sources."@vue/compiler-dom-3.0.5"
+      (sources."@vue/compiler-sfc-3.0.5" // {
         dependencies = [
-          sources."@babel/types-7.12.7"
+          sources."@babel/types-7.12.12"
           sources."source-map-0.6.1"
         ];
       })
-      sources."@vue/compiler-ssr-3.0.4"
-      sources."@vue/reactivity-3.0.4"
-      sources."@vue/runtime-core-3.0.4"
-      sources."@vue/runtime-dom-3.0.4"
-      sources."@vue/shared-3.0.4"
+      sources."@vue/compiler-ssr-3.0.5"
+      sources."@vue/reactivity-3.0.5"
+      sources."@vue/runtime-core-3.0.5"
+      sources."@vue/runtime-dom-3.0.5"
+      sources."@vue/shared-3.0.5"
       sources."@wry/context-0.4.4"
       sources."@wry/equality-0.1.11"
       sources."abbrev-1.1.1"
@@ -61086,31 +62756,31 @@ in
           sources."to-regex-range-2.1.1"
         ];
       })
-      (sources."apollo-2.31.2" // {
+      (sources."apollo-2.32.0" // {
         dependencies = [
           sources."mkdirp-1.0.4"
           sources."strip-ansi-5.2.0"
         ];
       })
       sources."apollo-cache-1.3.5"
-      sources."apollo-cache-control-0.11.4"
+      sources."apollo-cache-control-0.11.5"
       sources."apollo-cache-inmemory-1.6.6"
       sources."apollo-client-2.6.10"
-      (sources."apollo-codegen-core-0.38.2" // {
+      (sources."apollo-codegen-core-0.39.0" // {
         dependencies = [
           sources."recast-0.20.4"
           sources."source-map-0.6.1"
           sources."tslib-2.0.3"
         ];
       })
-      sources."apollo-codegen-flow-0.36.2"
-      sources."apollo-codegen-scala-0.37.2"
-      sources."apollo-codegen-swift-0.38.2"
-      sources."apollo-codegen-typescript-0.38.2"
+      sources."apollo-codegen-flow-0.37.0"
+      sources."apollo-codegen-scala-0.38.0"
+      sources."apollo-codegen-swift-0.39.0"
+      sources."apollo-codegen-typescript-0.39.0"
       sources."apollo-datasource-0.7.2"
       sources."apollo-env-0.6.5"
       sources."apollo-graphql-0.6.0"
-      sources."apollo-language-server-1.24.1"
+      sources."apollo-language-server-1.25.0"
       sources."apollo-link-1.2.14"
       sources."apollo-link-context-1.0.20"
       sources."apollo-link-error-1.1.13"
@@ -61119,19 +62789,19 @@ in
       sources."apollo-link-persisted-queries-0.2.2"
       sources."apollo-link-state-0.4.2"
       sources."apollo-link-ws-1.0.20"
-      sources."apollo-reporting-protobuf-0.6.1"
+      sources."apollo-reporting-protobuf-0.6.2"
       sources."apollo-server-caching-0.5.2"
-      (sources."apollo-server-core-2.19.0" // {
+      (sources."apollo-server-core-2.19.1" // {
         dependencies = [
-          sources."uuid-8.3.1"
+          sources."uuid-8.3.2"
         ];
       })
       sources."apollo-server-env-2.4.5"
       sources."apollo-server-errors-2.4.2"
-      sources."apollo-server-express-2.19.0"
-      sources."apollo-server-plugin-base-0.10.2"
-      sources."apollo-server-types-0.6.1"
-      sources."apollo-tracing-0.12.0"
+      sources."apollo-server-express-2.19.1"
+      sources."apollo-server-plugin-base-0.10.3"
+      sources."apollo-server-types-0.6.2"
+      sources."apollo-tracing-0.12.1"
       sources."apollo-upload-client-11.0.0"
       sources."apollo-utilities-1.3.4"
       (sources."archive-type-4.0.0" // {
@@ -61140,7 +62810,11 @@ in
         ];
       })
       sources."arg-4.1.3"
-      sources."argparse-1.0.10"
+      (sources."argparse-1.0.10" // {
+        dependencies = [
+          sources."sprintf-js-1.0.3"
+        ];
+      })
       sources."arr-diff-4.0.0"
       sources."arr-flatten-1.1.0"
       sources."arr-union-3.1.0"
@@ -61193,6 +62867,7 @@ in
           sources."setprototypeof-1.1.1"
         ];
       })
+      sources."boolean-3.0.2"
       (sources."boxen-4.2.0" // {
         dependencies = [
           (sources."ansi-align-3.0.0" // {
@@ -61217,7 +62892,7 @@ in
       })
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."browserslist-4.15.0"
+      sources."browserslist-4.16.0"
       sources."buffer-5.7.1"
       sources."buffer-alloc-1.2.0"
       sources."buffer-alloc-unsafe-1.1.0"
@@ -61249,7 +62924,7 @@ in
         ];
       })
       sources."camelcase-4.1.0"
-      sources."caniuse-lite-1.0.30001165"
+      sources."caniuse-lite-1.0.30001171"
       (sources."capital-case-1.0.4" // {
         dependencies = [
           sources."tslib-2.0.3"
@@ -61311,7 +62986,7 @@ in
           sources."strip-ansi-3.0.1"
         ];
       })
-      (sources."cli-ux-5.5.0" // {
+      (sources."cli-ux-5.5.1" // {
         dependencies = [
           sources."ansi-escapes-4.3.1"
           sources."ansi-styles-4.3.0"
@@ -61321,21 +62996,15 @@ in
           sources."color-name-1.1.4"
           sources."escape-string-regexp-4.0.0"
           sources."extract-stack-2.0.0"
-          sources."fs-extra-9.0.1"
+          sources."fs-extra-8.1.0"
           sources."has-flag-4.0.0"
           sources."is-wsl-2.2.0"
-          (sources."jsonfile-6.1.0" // {
-            dependencies = [
-              sources."universalify-2.0.0"
-            ];
-          })
           sources."lru-cache-6.0.0"
           sources."semver-7.3.4"
           sources."supports-color-7.2.0"
           sources."supports-hyperlinks-2.1.0"
           sources."tslib-2.0.3"
           sources."type-fest-0.11.0"
-          sources."universalify-1.0.0"
           sources."yallist-4.0.0"
         ];
       })
@@ -61386,8 +63055,8 @@ in
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
       sources."copy-descriptor-0.1.1"
-      sources."core-js-3.8.0"
-      (sources."core-js-compat-3.8.0" // {
+      sources."core-js-3.8.1"
+      (sources."core-js-compat-3.8.1" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -61412,7 +63081,7 @@ in
       sources."csv-parser-1.12.1"
       sources."dashdash-1.14.1"
       sources."date-fns-1.30.1"
-      (sources."debug-4.3.1" // {
+      (sources."debug-4.3.2" // {
         dependencies = [
           sources."ms-2.1.2"
         ];
@@ -61457,6 +63126,7 @@ in
       sources."depd-1.1.2"
       sources."deprecated-decorator-0.1.6"
       sources."destroy-1.0.4"
+      sources."detect-node-2.0.4"
       sources."dicer-0.3.0"
       sources."diff-4.0.2"
       sources."dir-glob-3.0.1"
@@ -61482,7 +63152,7 @@ in
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
       sources."ejs-2.7.4"
-      sources."electron-to-chromium-1.3.616"
+      sources."electron-to-chromium-1.3.633"
       sources."elegant-spinner-1.0.1"
       sources."emoji-regex-8.0.0"
       sources."emojis-list-3.0.0"
@@ -61494,12 +63164,13 @@ in
       sources."error-ex-1.3.2"
       sources."es-abstract-1.17.7"
       sources."es-to-primitive-1.2.1"
+      sources."es6-error-4.1.1"
       sources."escalade-3.1.1"
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-1.0.5"
       sources."esm-3.2.25"
       sources."esprima-4.0.1"
-      sources."estree-walker-2.0.1"
+      sources."estree-walker-2.0.2"
       sources."esutils-2.0.3"
       sources."etag-1.8.1"
       sources."event-pubsub-4.3.0"
@@ -61551,7 +63222,7 @@ in
       sources."fast-glob-3.2.4"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
-      sources."fastq-1.9.0"
+      sources."fastq-1.10.0"
       sources."fd-slicer-1.1.0"
       sources."figures-1.7.0"
       sources."file-type-8.1.0"
@@ -61573,7 +63244,7 @@ in
       })
       sources."find-up-3.0.0"
       sources."fkill-6.2.0"
-      sources."flow-parser-0.138.0"
+      sources."flow-parser-0.141.0"
       sources."for-in-1.0.2"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
@@ -61595,7 +63266,7 @@ in
       sources."generic-names-2.0.1"
       sources."gensync-1.0.0-beta.2"
       sources."get-caller-file-2.0.5"
-      sources."get-intrinsic-1.0.1"
+      sources."get-intrinsic-1.0.2"
       sources."get-proxy-2.1.0"
       sources."get-stream-4.1.0"
       sources."get-value-2.0.6"
@@ -61613,8 +63284,16 @@ in
       sources."glob-7.1.5"
       sources."glob-parent-5.1.1"
       sources."glob-to-regexp-0.3.0"
+      (sources."global-agent-2.1.12" // {
+        dependencies = [
+          sources."lru-cache-6.0.0"
+          sources."semver-7.3.4"
+          sources."yallist-4.0.0"
+        ];
+      })
       sources."global-dirs-0.1.1"
       sources."globals-11.12.0"
+      sources."globalthis-1.0.1"
       (sources."globby-9.2.0" // {
         dependencies = [
           sources."@nodelib/fs.stat-1.1.3"
@@ -61663,7 +63342,7 @@ in
           sources."ts-invariant-0.3.3"
         ];
       })
-      sources."graphql-extensions-0.12.6"
+      sources."graphql-extensions-0.12.7"
       sources."graphql-subscriptions-1.1.0"
       sources."graphql-tag-2.11.0"
       sources."graphql-tools-4.0.8"
@@ -61728,7 +63407,7 @@ in
       sources."inflected-2.1.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       (sources."inquirer-7.3.3" // {
         dependencies = [
           sources."ansi-escapes-4.3.1"
@@ -61799,7 +63478,7 @@ in
       sources."js-message-1.0.7"
       sources."js-queue-2.0.2"
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.14.0"
+      sources."js-yaml-3.14.1"
       sources."jsbn-0.1.1"
       (sources."jscodeshift-0.10.0" // {
         dependencies = [
@@ -61910,6 +63589,11 @@ in
       sources."make-error-1.3.6"
       sources."map-cache-0.2.2"
       sources."map-visit-1.0.0"
+      (sources."matcher-3.0.0" // {
+        dependencies = [
+          sources."escape-string-regexp-4.0.0"
+        ];
+      })
       sources."media-typer-0.3.0"
       sources."merge-1.2.1"
       sources."merge-descriptors-1.0.1"
@@ -61923,8 +63607,8 @@ in
       sources."methods-1.1.2"
       sources."micromatch-4.0.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-fn-1.2.0"
       sources."mimic-response-1.0.1"
       sources."minimalistic-assert-1.0.1"
@@ -61975,7 +63659,7 @@ in
       (sources."nodemon-1.19.4" // {
         dependencies = [
           sources."debug-3.2.7"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
           sources."semver-5.7.1"
         ];
       })
@@ -62008,7 +63692,7 @@ in
       sources."object-inspect-1.9.0"
       sources."object-keys-1.1.1"
       sources."object-path-0.11.5"
-      sources."object-treeify-1.1.30"
+      sources."object-treeify-1.1.31"
       sources."object-visit-1.0.1"
       sources."object.assign-4.1.2"
       (sources."object.getownpropertydescriptors-2.1.1" // {
@@ -62092,7 +63776,7 @@ in
       (sources."portfinder-1.0.28" // {
         dependencies = [
           sources."debug-3.2.7"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
       sources."posix-character-classes-0.1.1"
@@ -62110,7 +63794,7 @@ in
       sources."postcss-selector-parser-6.0.4"
       sources."postcss-value-parser-4.1.0"
       sources."prepend-http-1.0.4"
-      sources."prismjs-1.22.0"
+      sources."prismjs-1.23.0"
       sources."private-0.1.8"
       sources."process-exists-3.1.0"
       sources."process-nextick-args-2.0.1"
@@ -62202,7 +63886,8 @@ in
       sources."retry-0.12.0"
       sources."reusify-1.0.4"
       sources."rimraf-3.0.2"
-      sources."rss-parser-3.9.0"
+      sources."roarr-2.15.4"
+      sources."rss-parser-3.10.0"
       sources."run-async-2.4.1"
       sources."run-parallel-1.1.10"
       sources."rxjs-6.6.3"
@@ -62214,6 +63899,7 @@ in
       sources."seek-bzip-1.0.6"
       sources."select-1.1.2"
       sources."semver-6.3.0"
+      sources."semver-compare-1.0.0"
       (sources."semver-diff-2.1.0" // {
         dependencies = [
           sources."semver-5.7.1"
@@ -62236,6 +63922,11 @@ in
           sources."tslib-2.0.3"
         ];
       })
+      (sources."serialize-error-7.0.1" // {
+        dependencies = [
+          sources."type-fest-0.13.1"
+        ];
+      })
       sources."serve-static-1.14.1"
       sources."set-blocking-2.0.0"
       sources."set-value-2.0.1"
@@ -62305,7 +63996,7 @@ in
         ];
       })
       sources."split2-2.2.0"
-      sources."sprintf-js-1.0.3"
+      sources."sprintf-js-1.1.2"
       sources."sshpk-1.16.1"
       (sources."static-extend-0.1.2" // {
         dependencies = [
@@ -62523,7 +64214,7 @@ in
       (sources."vue-codemod-0.0.4" // {
         dependencies = [
           sources."globby-10.0.2"
-          sources."vue-3.0.4"
+          sources."vue-3.0.5"
         ];
       })
       sources."watch-1.0.2"
@@ -62707,13 +64398,13 @@ in
       sha512 = "RzgRzhCQJ/DBak+Yoy2bo4W6dUdqiswX8PN7qXsIZpNLYMcOOkcaq2o5gkiT/Y2HM3Rt08GxnBBlanXTrryTKQ==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.4"
-      sources."@babel/generator-7.12.5"
-      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/code-frame-7.12.11"
+      sources."@babel/generator-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
       sources."@babel/highlight-7.10.4"
-      sources."@babel/parser-7.12.7"
+      sources."@babel/parser-7.12.11"
       sources."@babel/template-7.12.7"
-      sources."@babel/types-7.12.7"
+      sources."@babel/types-7.12.12"
       sources."@webassemblyjs/ast-1.9.1"
       sources."@webassemblyjs/floating-point-hex-parser-1.9.1"
       sources."@webassemblyjs/helper-api-error-1.9.1"
@@ -62792,33 +64483,33 @@ in
       sha512 = "RYp9vX+/ojXMCpxMOsZu9e4X5+k3Nlq3vW4gdMkIVXIlk7hfvNcBfAYMeq3ao68cyYQFLJWVkFY0DlQfn0hQhQ==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.4"
-      (sources."@babel/core-7.12.9" // {
+      sources."@babel/code-frame-7.12.11"
+      (sources."@babel/core-7.12.10" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
-      (sources."@babel/generator-7.12.5" // {
+      (sources."@babel/generator-7.12.11" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
-      sources."@babel/helper-function-name-7.10.4"
-      sources."@babel/helper-get-function-arity-7.10.4"
+      sources."@babel/helper-function-name-7.12.11"
+      sources."@babel/helper-get-function-arity-7.12.10"
       sources."@babel/helper-member-expression-to-functions-7.12.7"
       sources."@babel/helper-module-imports-7.12.5"
       sources."@babel/helper-module-transforms-7.12.1"
-      sources."@babel/helper-optimise-call-expression-7.12.7"
-      sources."@babel/helper-replace-supers-7.12.5"
+      sources."@babel/helper-optimise-call-expression-7.12.10"
+      sources."@babel/helper-replace-supers-7.12.11"
       sources."@babel/helper-simple-access-7.12.1"
-      sources."@babel/helper-split-export-declaration-7.11.0"
-      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/helper-split-export-declaration-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
       sources."@babel/helpers-7.12.5"
       sources."@babel/highlight-7.10.4"
-      sources."@babel/parser-7.12.7"
+      sources."@babel/parser-7.12.11"
       sources."@babel/template-7.12.7"
-      sources."@babel/traverse-7.12.9"
-      sources."@babel/types-7.12.7"
+      sources."@babel/traverse-7.12.12"
+      sources."@babel/types-7.12.12"
       sources."JSV-4.0.2"
       sources."ansi-styles-3.2.1"
       sources."array-unique-0.3.2"
@@ -62832,7 +64523,7 @@ in
       sources."commander-2.20.3"
       sources."concat-map-0.0.1"
       sources."convert-source-map-1.7.0"
-      sources."debug-4.3.1"
+      sources."debug-4.3.2"
       sources."ejs-3.1.5"
       sources."ensure-posix-path-1.1.1"
       sources."escape-string-regexp-1.0.5"
@@ -62857,7 +64548,7 @@ in
       sources."has-color-0.1.7"
       sources."has-flag-3.0.0"
       sources."homedir-polyfill-1.0.3"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."is-3.3.0"
       sources."is-core-module-2.2.0"
       sources."is-windows-1.0.2"
@@ -62925,7 +64616,7 @@ in
     dependencies = [
       sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.14.10"
+      sources."@types/node-14.14.19"
       sources."balanced-match-1.0.0"
       sources."brace-expansion-1.1.11"
       sources."chromium-pickle-js-0.2.0"
@@ -63029,8 +64720,8 @@ in
       sources."levn-0.3.0"
       sources."lodash-4.17.20"
       sources."lodash.sortby-4.7.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."minimatch-3.0.4"
       sources."nwsapi-2.2.0"
       sources."oauth-sign-0.9.0"
@@ -63061,14 +64752,14 @@ in
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
       sources."uri-js-4.4.0"
-      sources."urijs-1.19.2"
+      sources."urijs-1.19.5"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
-      sources."vscode-jsonrpc-5.0.1"
+      sources."vscode-jsonrpc-6.0.0"
       sources."vscode-languageserver-6.1.1"
-      sources."vscode-languageserver-protocol-3.15.3"
+      sources."vscode-languageserver-protocol-3.16.0"
       sources."vscode-languageserver-textdocument-1.0.1"
-      sources."vscode-languageserver-types-3.15.1"
+      sources."vscode-languageserver-types-3.16.0"
       sources."w3c-hr-time-1.0.2"
       sources."web-tree-sitter-0.16.4"
       sources."webidl-conversions-4.0.2"
@@ -63324,7 +65015,7 @@ in
           sources."bn.js-4.11.9"
         ];
       })
-      sources."es-abstract-1.17.7"
+      sources."es-abstract-1.18.0-next.1"
       sources."es-to-primitive-1.2.1"
       sources."events-3.2.0"
       sources."evp_bytestokey-1.0.3"
@@ -63333,7 +65024,7 @@ in
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
       sources."get-assigned-identifiers-1.2.0"
-      sources."get-intrinsic-1.0.1"
+      sources."get-intrinsic-1.0.2"
       sources."glob-7.1.6"
       sources."has-1.0.3"
       sources."has-symbols-1.0.1"
@@ -63357,9 +65048,10 @@ in
       sources."is-core-module-2.2.0"
       sources."is-date-object-1.0.2"
       sources."is-generator-function-1.0.8"
+      sources."is-negative-zero-2.0.1"
       sources."is-regex-1.1.1"
       sources."is-symbol-1.0.3"
-      sources."is-typed-array-1.1.3"
+      sources."is-typed-array-1.1.4"
       sources."isarray-1.0.0"
       sources."jsonparse-1.3.1"
       sources."labeled-stream-splicer-2.0.2"
@@ -63450,7 +65142,7 @@ in
       sources."util-0.12.3"
       sources."util-deprecate-1.0.2"
       sources."vm-browserify-1.1.2"
-      sources."which-typed-array-1.1.2"
+      sources."which-typed-array-1.1.4"
       sources."wrappy-1.0.2"
       sources."xtend-4.0.2"
     ];
@@ -63467,10 +65159,10 @@ in
   btc-rpc-explorer = nodeEnv.buildNodePackage {
     name = "btc-rpc-explorer";
     packageName = "btc-rpc-explorer";
-    version = "2.0.2";
+    version = "2.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/btc-rpc-explorer/-/btc-rpc-explorer-2.0.2.tgz";
-      sha512 = "TTdFGXzJ8HLn4PCNYRS4S7P3SgglZkBtJeNQP8r7tTjbugoameVvzDOLgVAy/zPQVoUXBuBPfnbm4Sky9VJOmw==";
+      url = "https://registry.npmjs.org/btc-rpc-explorer/-/btc-rpc-explorer-2.1.0.tgz";
+      sha512 = "dB+CI/FcZWmQPD5P1uMGnnCi6a/skTTFHWnPRYq5lfYPc9k6Cjz/nTIrZXhIHBcdxiwEiY10QX3UqYLQgF58dA==";
     };
     dependencies = [
       sources."@types/babel-types-7.0.9"
@@ -63573,7 +65265,7 @@ in
       sources."dashdash-1.14.1"
       (sources."debug-4.1.1" // {
         dependencies = [
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
       (sources."debugnyan-1.0.0" // {
@@ -63687,7 +65379,11 @@ in
       sources."json-stringify-safe-5.0.1"
       sources."jsprim-1.4.1"
       sources."jstransformer-1.0.0"
-      sources."jstransformer-markdown-it-2.1.0"
+      (sources."jstransformer-markdown-it-2.1.0" // {
+        dependencies = [
+          sources."markdown-it-8.4.2"
+        ];
+      })
       sources."kind-of-3.2.2"
       sources."lazy-cache-1.0.4"
       sources."linkify-it-2.2.0"
@@ -63698,8 +65394,13 @@ in
       sources."loud-rejection-1.6.0"
       sources."lru-cache-5.1.1"
       sources."map-obj-2.0.0"
-      sources."markdown-it-8.4.2"
-      sources."marked-0.7.0"
+      (sources."markdown-it-12.0.4" // {
+        dependencies = [
+          sources."argparse-2.0.1"
+          sources."entities-2.1.0"
+          sources."linkify-it-3.0.2"
+        ];
+      })
       sources."md5-2.3.0"
       sources."md5.js-1.3.5"
       sources."mdurl-1.0.1"
@@ -63709,8 +65410,8 @@ in
       sources."merkle-lib-2.0.10"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."minimalistic-assert-1.0.1"
       sources."minimalistic-crypto-utils-1.0.1"
       sources."minimatch-3.0.4"
@@ -63934,7 +65635,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.34"
+      sources."@types/node-13.13.38"
       sources."addr-to-ip-port-1.5.1"
       sources."airplay-js-0.2.16"
       sources."ajv-6.12.6"
@@ -63981,7 +65682,7 @@ in
       sources."caseless-0.12.0"
       (sources."castv2-0.1.10" // {
         dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
         ];
       })
       sources."castv2-client-1.2.0"
@@ -63996,7 +65697,7 @@ in
       sources."co-3.1.0"
       sources."codepage-1.4.0"
       sources."combined-stream-1.0.8"
-      sources."commander-6.2.0"
+      sources."commander-6.2.1"
       sources."compact2string-1.4.1"
       sources."concat-map-0.0.1"
       (sources."concat-stream-2.0.0" // {
@@ -64115,8 +65816,8 @@ in
         ];
       })
       sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -64336,6 +66037,514 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  cdk8s-cli = nodeEnv.buildNodePackage {
+    name = "cdk8s-cli";
+    packageName = "cdk8s-cli";
+    version = "1.0.0-beta.5";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/cdk8s-cli/-/cdk8s-cli-1.0.0-beta.5.tgz";
+      sha512 = "5jVubGjmRXlrXPDJIl2g2oWApFmN7V2EzonMWDd67TlaOwwS8Ypy4ej3VvwviXyZ7IO9zET4pDNFSInBQE+aJw==";
+    };
+    dependencies = [
+      sources."@jsii/spec-1.16.0"
+      sources."@types/node-10.17.50"
+      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."call-bind-1.0.0"
+      sources."camelcase-6.2.0"
+      sources."case-1.6.3"
+      sources."cdk8s-1.0.0-beta.5"
+      sources."cliui-7.0.4"
+      sources."clone-2.1.2"
+      (sources."codemaker-1.16.0" // {
+        dependencies = [
+          sources."fs-extra-9.0.1"
+        ];
+      })
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
+      sources."colors-1.4.0"
+      sources."commonmark-0.29.3"
+      sources."constructs-3.2.90"
+      sources."date-format-3.0.0"
+      sources."debug-4.3.2"
+      sources."decamelize-4.0.0"
+      sources."deep-equal-2.0.5"
+      sources."define-properties-1.1.3"
+      sources."detect-indent-5.0.0"
+      sources."detect-newline-2.1.0"
+      sources."dot-case-3.0.4"
+      sources."emoji-regex-8.0.0"
+      sources."entities-2.0.3"
+      sources."es-abstract-1.17.7"
+      sources."es-get-iterator-1.1.1"
+      sources."es-to-primitive-1.2.1"
+      sources."escalade-3.1.1"
+      sources."escape-string-regexp-4.0.0"
+      sources."find-up-4.1.0"
+      sources."flatted-2.0.2"
+      sources."foreach-2.0.5"
+      (sources."fs-extra-8.1.0" // {
+        dependencies = [
+          sources."jsonfile-4.0.0"
+          sources."universalify-0.1.2"
+        ];
+      })
+      sources."function-bind-1.1.1"
+      sources."get-caller-file-2.0.5"
+      sources."get-intrinsic-1.0.2"
+      sources."graceful-fs-4.2.4"
+      sources."has-1.0.3"
+      sources."has-symbols-1.0.1"
+      sources."is-arguments-1.1.0"
+      sources."is-bigint-1.0.1"
+      sources."is-boolean-object-1.1.0"
+      sources."is-callable-1.2.2"
+      sources."is-date-object-1.0.2"
+      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.1"
+      sources."is-set-2.0.2"
+      sources."is-string-1.0.5"
+      sources."is-symbol-1.0.3"
+      (sources."is-typed-array-1.1.4" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.1"
+        ];
+      })
+      sources."is-weakmap-2.0.1"
+      sources."is-weakset-2.0.1"
+      sources."isarray-2.0.5"
+      (sources."jsii-1.16.0" // {
+        dependencies = [
+          sources."fs-extra-9.0.1"
+          sources."yargs-16.2.0"
+        ];
+      })
+      (sources."jsii-pacmak-1.16.0" // {
+        dependencies = [
+          sources."fs-extra-9.0.1"
+          sources."yargs-16.2.0"
+        ];
+      })
+      (sources."jsii-reflect-1.16.0" // {
+        dependencies = [
+          sources."fs-extra-9.0.1"
+          sources."yargs-16.2.0"
+        ];
+      })
+      (sources."jsii-rosetta-1.16.0" // {
+        dependencies = [
+          sources."fs-extra-9.0.1"
+          sources."yargs-16.2.0"
+        ];
+      })
+      (sources."jsii-srcmak-0.1.176" // {
+        dependencies = [
+          sources."fs-extra-9.0.1"
+        ];
+      })
+      sources."json-schema-0.2.5"
+      sources."json2jsii-0.1.168"
+      (sources."jsonfile-6.1.0" // {
+        dependencies = [
+          sources."universalify-2.0.0"
+        ];
+      })
+      sources."jsonschema-1.4.0"
+      sources."locate-path-5.0.0"
+      sources."log4js-6.3.0"
+      sources."lower-case-2.0.2"
+      sources."lru-cache-6.0.0"
+      sources."mdurl-1.0.1"
+      sources."minimist-1.2.5"
+      sources."ms-2.1.2"
+      sources."ncp-2.0.0"
+      sources."no-case-3.0.4"
+      sources."object-inspect-1.9.0"
+      sources."object-is-1.1.4"
+      sources."object-keys-1.1.1"
+      sources."object.assign-4.1.2"
+      sources."oo-ascii-tree-1.16.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."regexp.prototype.flags-1.3.0"
+      sources."require-directory-2.1.1"
+      sources."require-main-filename-2.0.0"
+      sources."rfdc-1.1.4"
+      sources."semver-7.3.4"
+      (sources."semver-intersect-1.4.0" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."set-blocking-2.0.0"
+      sources."side-channel-1.0.4"
+      sources."snake-case-3.0.4"
+      sources."sort-json-2.0.0"
+      sources."spdx-license-list-6.3.0"
+      sources."sscaff-1.2.0"
+      (sources."streamroller-2.2.4" // {
+        dependencies = [
+          sources."date-format-2.1.0"
+        ];
+      })
+      sources."string-width-4.2.0"
+      sources."string.prototype.repeat-0.2.0"
+      sources."string.prototype.trimend-1.0.3"
+      sources."string.prototype.trimstart-1.0.3"
+      sources."strip-ansi-6.0.0"
+      sources."tslib-2.0.3"
+      sources."typescript-3.9.7"
+      sources."universalify-1.0.0"
+      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" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.1"
+        ];
+      })
+      sources."wrap-ansi-7.0.0"
+      sources."xmlbuilder-15.1.1"
+      sources."xmldom-0.4.0"
+      sources."y18n-5.0.5"
+      sources."yallist-4.0.0"
+      sources."yaml-1.10.0"
+      (sources."yargs-15.4.1" // {
+        dependencies = [
+          sources."camelcase-5.3.1"
+          sources."cliui-6.0.0"
+          sources."decamelize-1.2.0"
+          sources."wrap-ansi-6.2.0"
+          sources."y18n-4.0.1"
+          sources."yargs-parser-18.1.3"
+        ];
+      })
+      sources."yargs-parser-20.2.4"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "CDK for Kubernetes CLI";
+      homepage = "https://github.com/awslabs/cdk8s#readme";
+      license = "Apache-2.0";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
+  cdktf-cli = nodeEnv.buildNodePackage {
+    name = "cdktf-cli";
+    packageName = "cdktf-cli";
+    version = "0.0.19";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/cdktf-cli/-/cdktf-cli-0.0.19.tgz";
+      sha512 = "JH2DyIQyhpI8lwO4HANha/HiVV2MXVG63iK+PZbEZKJDEr3fVB0WSKvzrp66CarceLiuNy7Z5cIR+81Q6eMx+w==";
+    };
+    dependencies = [
+      sources."@jsii/spec-1.16.0"
+      sources."@types/node-14.14.19"
+      sources."@types/readline-sync-1.4.3"
+      sources."@types/uuid-8.3.0"
+      sources."@types/yoga-layout-1.9.2"
+      sources."ansi-escapes-4.3.1"
+      sources."ansi-regex-5.0.0"
+      sources."ansi-styles-4.3.0"
+      sources."array-filter-1.0.0"
+      sources."array-includes-3.1.2"
+      sources."array.prototype.flatmap-1.2.4"
+      sources."arrify-2.0.1"
+      sources."astral-regex-2.0.0"
+      sources."at-least-node-1.0.0"
+      sources."auto-bind-4.0.0"
+      sources."available-typed-arrays-1.0.2"
+      sources."call-bind-1.0.0"
+      sources."camelcase-5.3.1"
+      sources."case-1.6.3"
+      sources."cdktf-0.0.19"
+      sources."chalk-4.1.0"
+      sources."ci-info-2.0.0"
+      sources."cli-cursor-3.1.0"
+      sources."cli-spinners-1.3.1"
+      sources."cli-truncate-2.1.0"
+      (sources."cliui-7.0.4" // {
+        dependencies = [
+          sources."wrap-ansi-7.0.0"
+        ];
+      })
+      sources."clone-2.1.2"
+      sources."codemaker-0.22.0"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
+      sources."colors-1.4.0"
+      sources."commonmark-0.29.3"
+      sources."constructs-3.2.90"
+      sources."date-format-3.0.0"
+      sources."debug-4.3.2"
+      sources."decamelize-1.2.0"
+      sources."deep-equal-2.0.5"
+      sources."define-properties-1.1.3"
+      sources."detect-indent-5.0.0"
+      sources."detect-newline-2.1.0"
+      sources."doctrine-2.1.0"
+      sources."emoji-regex-8.0.0"
+      sources."entities-2.0.3"
+      sources."es-abstract-1.18.0-next.1"
+      sources."es-get-iterator-1.1.1"
+      sources."es-to-primitive-1.2.1"
+      sources."escalade-3.1.1"
+      sources."escape-string-regexp-4.0.0"
+      sources."eslint-plugin-react-7.22.0"
+      sources."esutils-2.0.3"
+      sources."find-up-4.1.0"
+      sources."flatted-2.0.2"
+      sources."foreach-2.0.5"
+      sources."fs-extra-8.1.0"
+      sources."function-bind-1.1.1"
+      sources."get-caller-file-2.0.5"
+      sources."get-intrinsic-1.0.2"
+      sources."graceful-fs-4.2.4"
+      sources."has-1.0.3"
+      sources."has-flag-4.0.0"
+      sources."has-symbols-1.0.1"
+      (sources."ink-2.7.1" // {
+        dependencies = [
+          sources."chalk-3.0.0"
+        ];
+      })
+      sources."ink-confirm-input-2.0.0"
+      sources."ink-spinner-3.1.0"
+      (sources."ink-text-input-3.3.0" // {
+        dependencies = [
+          sources."chalk-3.0.0"
+        ];
+      })
+      (sources."internal-slot-1.0.2" // {
+        dependencies = [
+          sources."es-abstract-1.17.7"
+        ];
+      })
+      sources."is-arguments-1.1.0"
+      sources."is-bigint-1.0.1"
+      sources."is-boolean-object-1.1.0"
+      sources."is-callable-1.2.2"
+      sources."is-ci-2.0.0"
+      sources."is-core-module-2.2.0"
+      sources."is-date-object-1.0.2"
+      sources."is-docker-2.1.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.1"
+      sources."is-set-2.0.2"
+      sources."is-string-1.0.5"
+      sources."is-symbol-1.0.3"
+      sources."is-typed-array-1.1.4"
+      sources."is-weakmap-2.0.1"
+      sources."is-weakset-2.0.1"
+      sources."is-wsl-2.2.0"
+      sources."isarray-2.0.5"
+      sources."js-tokens-4.0.0"
+      (sources."jsii-1.16.0" // {
+        dependencies = [
+          sources."fs-extra-9.0.1"
+          (sources."jsonfile-6.1.0" // {
+            dependencies = [
+              sources."universalify-2.0.0"
+            ];
+          })
+          sources."universalify-1.0.0"
+          sources."yargs-16.2.0"
+        ];
+      })
+      (sources."jsii-pacmak-1.16.0" // {
+        dependencies = [
+          sources."camelcase-6.2.0"
+          sources."codemaker-1.16.0"
+          sources."decamelize-4.0.0"
+          sources."fs-extra-9.0.1"
+          (sources."jsonfile-6.1.0" // {
+            dependencies = [
+              sources."universalify-2.0.0"
+            ];
+          })
+          sources."universalify-1.0.0"
+          sources."yargs-16.2.0"
+        ];
+      })
+      (sources."jsii-reflect-1.16.0" // {
+        dependencies = [
+          sources."fs-extra-9.0.1"
+          (sources."jsonfile-6.1.0" // {
+            dependencies = [
+              sources."universalify-2.0.0"
+            ];
+          })
+          sources."universalify-1.0.0"
+          sources."yargs-16.2.0"
+        ];
+      })
+      (sources."jsii-rosetta-1.16.0" // {
+        dependencies = [
+          sources."fs-extra-9.0.1"
+          (sources."jsonfile-6.1.0" // {
+            dependencies = [
+              sources."universalify-2.0.0"
+            ];
+          })
+          sources."universalify-1.0.0"
+          sources."yargs-16.2.0"
+        ];
+      })
+      (sources."jsii-srcmak-0.1.176" // {
+        dependencies = [
+          sources."fs-extra-9.0.1"
+          (sources."jsonfile-6.1.0" // {
+            dependencies = [
+              sources."universalify-2.0.0"
+            ];
+          })
+          sources."universalify-1.0.0"
+        ];
+      })
+      sources."jsonfile-4.0.0"
+      sources."jsonschema-1.4.0"
+      sources."jsx-ast-utils-3.2.0"
+      sources."locate-path-5.0.0"
+      sources."lodash.throttle-4.1.1"
+      (sources."log-update-3.4.0" // {
+        dependencies = [
+          sources."ansi-escapes-3.2.0"
+          sources."ansi-regex-4.1.0"
+          sources."ansi-styles-3.2.1"
+          sources."cli-cursor-2.1.0"
+          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."mimic-fn-1.2.0"
+          sources."onetime-2.0.1"
+          sources."restore-cursor-2.0.0"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+          sources."wrap-ansi-5.1.0"
+        ];
+      })
+      sources."log4js-6.3.0"
+      sources."loose-envify-1.4.0"
+      sources."lru-cache-6.0.0"
+      sources."mdurl-1.0.1"
+      sources."mimic-fn-2.1.0"
+      sources."minimist-1.2.5"
+      sources."ms-2.1.2"
+      sources."ncp-2.0.0"
+      sources."object-assign-4.1.1"
+      sources."object-inspect-1.9.0"
+      sources."object-is-1.1.4"
+      sources."object-keys-1.1.1"
+      sources."object.assign-4.1.2"
+      sources."object.entries-1.1.3"
+      sources."object.fromentries-2.0.3"
+      sources."object.values-1.1.2"
+      sources."onetime-5.1.2"
+      sources."oo-ascii-tree-1.16.0"
+      sources."open-7.3.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."path-parse-1.0.6"
+      sources."prop-types-15.7.2"
+      sources."react-16.14.0"
+      sources."react-is-16.13.1"
+      sources."react-reconciler-0.24.0"
+      sources."readline-sync-1.4.10"
+      (sources."regexp.prototype.flags-1.3.0" // {
+        dependencies = [
+          sources."es-abstract-1.17.7"
+        ];
+      })
+      sources."require-directory-2.1.1"
+      sources."require-main-filename-2.0.0"
+      sources."resolve-1.19.0"
+      sources."restore-cursor-3.1.0"
+      sources."rfdc-1.1.4"
+      sources."scheduler-0.18.0"
+      sources."semver-7.3.4"
+      (sources."semver-intersect-1.4.0" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."set-blocking-2.0.0"
+      sources."side-channel-1.0.4"
+      sources."signal-exit-3.0.3"
+      sources."slice-ansi-3.0.0"
+      sources."sort-json-2.0.0"
+      sources."spdx-license-list-6.3.0"
+      sources."sscaff-1.2.0"
+      (sources."streamroller-2.2.4" // {
+        dependencies = [
+          sources."date-format-2.1.0"
+        ];
+      })
+      (sources."string-length-3.1.0" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."astral-regex-1.0.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
+      sources."string-width-4.2.0"
+      sources."string.prototype.matchall-4.0.3"
+      sources."string.prototype.repeat-0.2.0"
+      sources."string.prototype.trimend-1.0.3"
+      sources."string.prototype.trimstart-1.0.3"
+      sources."strip-ansi-6.0.0"
+      sources."supports-color-7.2.0"
+      sources."type-fest-0.11.0"
+      sources."typescript-3.9.7"
+      sources."universalify-0.1.2"
+      sources."uuid-8.3.2"
+      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."widest-line-3.1.0"
+      sources."wrap-ansi-6.2.0"
+      sources."xmlbuilder-15.1.1"
+      sources."xmldom-0.4.0"
+      sources."y18n-5.0.5"
+      sources."yallist-4.0.0"
+      (sources."yargs-15.4.1" // {
+        dependencies = [
+          sources."cliui-6.0.0"
+          sources."y18n-4.0.1"
+          sources."yargs-parser-18.1.3"
+        ];
+      })
+      sources."yargs-parser-20.2.4"
+      sources."yn-3.1.1"
+      sources."yoga-layout-prebuilt-1.10.0"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "CDK for Terraform CLI";
+      homepage = "https://github.com/hashicorp/terraform-cdk#readme";
+      license = "MPL-2.0";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   clean-css-cli = nodeEnv.buildNodePackage {
     name = "clean-css-cli";
     packageName = "clean-css-cli";
@@ -64392,7 +66601,7 @@ in
       sources."commander-2.20.3"
       sources."concat-map-0.0.1"
       sources."cycle-1.0.3"
-      sources."debug-4.3.1"
+      sources."debug-4.3.2"
       sources."decode-uri-component-0.2.0"
       sources."deep-equal-0.2.2"
       sources."encoding-0.1.13"
@@ -64419,10 +66628,9 @@ in
       sources."node-fetch-1.7.3"
       sources."once-1.4.0"
       sources."path-is-absolute-1.0.1"
-      sources."pkginfo-0.4.1"
-      sources."prompt-1.0.0"
+      sources."prompt-1.1.0"
       sources."punycode-2.1.1"
-      sources."query-string-6.13.7"
+      sources."query-string-6.13.8"
       sources."read-1.0.7"
       sources."revalidator-0.1.8"
       sources."rimraf-2.7.1"
@@ -64437,11 +66645,10 @@ in
       sources."webidl-conversions-4.0.2"
       sources."whatwg-fetch-3.5.0"
       sources."whatwg-url-7.1.0"
-      (sources."winston-2.1.1" // {
+      (sources."winston-2.4.5" // {
         dependencies = [
           sources."async-1.0.0"
           sources."colors-1.0.3"
-          sources."pkginfo-0.3.1"
         ];
       })
       sources."wrappy-1.0.2"
@@ -64503,7 +66710,7 @@ in
       sources."@emmetio/extract-abbreviation-0.1.6"
       sources."jsonc-parser-1.0.3"
       sources."vscode-emmet-helper-1.2.17"
-      sources."vscode-languageserver-types-3.15.1"
+      sources."vscode-languageserver-types-3.16.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -64552,16 +66759,17 @@ in
   coc-go = nodeEnv.buildNodePackage {
     name = "coc-go";
     packageName = "coc-go";
-    version = "0.12.1";
+    version = "0.13.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-go/-/coc-go-0.12.1.tgz";
-      sha512 = "DskyUQMQXxaHAAAcAzlEFAbxFQaSrRhHEVTsGGB6Q3naW7GvQFze2Otrd4FOxfzTYZlGio5yJpGB7a09K5Snrg==";
+      url = "https://registry.npmjs.org/coc-go/-/coc-go-0.13.2.tgz";
+      sha512 = "E//SHaQlzmh4nBUJsA6oSZWBVFkEWJ/kjL19jIBbIrY8KWCjxfCm6H8+WDNMUULHS2HQNlUEQzVHS/ftE10iGg==";
     };
     dependencies = [
       sources."isexe-2.0.0"
       sources."node-fetch-2.6.1"
       sources."tslib-2.0.3"
-      sources."vscode-uri-2.1.2"
+      sources."vscode-languageserver-textdocument-1.0.1"
+      sources."vscode-uri-3.0.1"
       sources."which-2.0.2"
     ];
     buildInputs = globalBuildInputs;
@@ -64576,10 +66784,10 @@ in
   coc-highlight = nodeEnv.buildNodePackage {
     name = "coc-highlight";
     packageName = "coc-highlight";
-    version = "1.2.6";
+    version = "1.2.7";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-highlight/-/coc-highlight-1.2.6.tgz";
-      sha512 = "aKzZ86GVnZgZV2EAf62SDpTXzGYHD7PTSB+HgytTvdubgFgssQitrIUvWCPnlvagPixtM1XqTlh8AKusnrtSOg==";
+      url = "https://registry.npmjs.org/coc-highlight/-/coc-highlight-1.2.7.tgz";
+      sha512 = "crUMz4W5IGSoLX9Lif1Z9XT2e3Eq7oVnkaN1+F0ncGiAh8sI4vPW+hm641tVcXVC/u4wzdvvbj6ngj8Fykxn2g==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -64593,13 +66801,13 @@ in
   coc-html = nodeEnv.buildNodePackage {
     name = "coc-html";
     packageName = "coc-html";
-    version = "1.3.1";
+    version = "1.3.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-html/-/coc-html-1.3.1.tgz";
-      sha512 = "qC1BifVAAuI5cPT6fEQuP0RIjwDWqhLCH+AUJrQ7lW2IghWInjOarhj9AHWS+1cZLnsVrMMYXL6i8HZLnkRDQQ==";
+      url = "https://registry.npmjs.org/coc-html/-/coc-html-1.3.2.tgz";
+      sha512 = "8upyERwR/7zZNDkATpKy1aIyflzwfsgercRsHm1OG/ECRG2FpUWYkHywHBDbWAdHsipbd2WoO0nr3Ct22JV4oA==";
     };
     dependencies = [
-      sources."typescript-4.1.2"
+      sources."typescript-4.1.3"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -64720,13 +66928,13 @@ in
   coc-metals = nodeEnv.buildNodePackage {
     name = "coc-metals";
     packageName = "coc-metals";
-    version = "0.9.8";
+    version = "0.9.9";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-metals/-/coc-metals-0.9.8.tgz";
-      sha512 = "3mkLfoTaPWT7u2oELILGGtS8jofBsb1MzATB8T4tNJODbrZFXQf5KIV4GBk81RVM1MLGvNtvD/VO/pmwUhrSxQ==";
+      url = "https://registry.npmjs.org/coc-metals/-/coc-metals-0.9.9.tgz";
+      sha512 = "VCjIm+ytVrgqzAXMpweh3D8SfQg9oF0BVXSFeUIgsm3xU9BuZd1jU+CxtNNAIihxcJ1LUX1JGn1Sydu541hwzA==";
     };
     dependencies = [
-      sources."@chemzqm/neovim-5.2.10"
+      sources."@chemzqm/neovim-5.2.13"
       sources."@tootallnate/once-1.1.2"
       sources."agent-base-6.0.2"
       sources."arch-2.2.0"
@@ -64757,7 +66965,7 @@ in
       })
       sources."date-format-3.0.0"
       sources."debounce-1.2.0"
-      sources."debug-4.3.1"
+      sources."debug-4.3.2"
       sources."deep-extend-0.6.0"
       sources."define-properties-1.1.3"
       sources."duplexer2-0.1.4"
@@ -64769,8 +66977,8 @@ in
       sources."fast-diff-1.2.0"
       sources."fb-watchman-2.0.1"
       sources."flatted-2.0.2"
-      sources."follow-redirects-1.13.0"
-      sources."fp-ts-2.9.1"
+      sources."follow-redirects-1.13.1"
+      sources."fp-ts-2.9.3"
       sources."fs-extra-8.1.0"
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
@@ -64781,7 +66989,7 @@ in
         ];
       })
       sources."function-bind-1.1.1"
-      sources."get-intrinsic-1.0.1"
+      sources."get-intrinsic-1.0.2"
       sources."get-stream-4.1.0"
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.4"
@@ -64792,7 +67000,7 @@ in
       sources."ieee754-1.2.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."int64-buffer-0.1.10"
       sources."is-callable-1.2.2"
       sources."is-date-object-1.0.2"
@@ -64815,7 +67023,7 @@ in
       sources."lodash-4.17.20"
       sources."log4js-6.3.0"
       sources."lru-cache-6.0.0"
-      sources."metals-languageclient-0.3.3"
+      sources."metals-languageclient-0.4.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."minipass-3.1.3"
@@ -64876,9 +67084,13 @@ in
       sources."util-deprecate-1.0.2"
       sources."uuid-7.0.3"
       sources."vscode-jsonrpc-5.0.1"
-      sources."vscode-languageserver-protocol-3.15.3"
+      (sources."vscode-languageserver-protocol-3.15.3" // {
+        dependencies = [
+          sources."vscode-languageserver-types-3.15.1"
+        ];
+      })
       sources."vscode-languageserver-textdocument-1.0.1"
-      sources."vscode-languageserver-types-3.15.1"
+      sources."vscode-languageserver-types-3.16.0"
       sources."vscode-uri-2.1.2"
       sources."which-2.0.2"
       sources."wrappy-1.0.2"
@@ -64920,8 +67132,8 @@ in
       sha512 = "3p4AwJnsjtLJM53wLsMtcVUzWPMnnYI6pkwQraHH6Tp7/ZuXwIVhjUvDgMcAvhmIkVePyvJF5xZHN4ghLLP02A==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.4"
-      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/code-frame-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
       sources."@babel/highlight-7.10.4"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
@@ -64994,7 +67206,7 @@ in
       sources."callsites-3.1.0"
       sources."camelcase-2.1.1"
       sources."camelcase-keys-2.1.0"
-      sources."caniuse-lite-1.0.30001165"
+      sources."caniuse-lite-1.0.30001171"
       sources."capture-stack-trace-1.0.1"
       sources."ccount-1.1.0"
       sources."chalk-2.4.2"
@@ -65051,7 +67263,7 @@ in
         ];
       })
       sources."copy-descriptor-0.1.1"
-      sources."core-js-3.8.0"
+      sources."core-js-3.8.1"
       sources."cosmiconfig-3.1.0"
       sources."create-error-class-3.0.2"
       (sources."cross-spawn-6.0.5" // {
@@ -65061,7 +67273,7 @@ in
       })
       sources."crypto-random-string-1.0.0"
       sources."currently-unhandled-0.4.1"
-      sources."debug-4.3.1"
+      sources."debug-4.3.2"
       sources."decamelize-1.2.0"
       sources."decamelize-keys-1.1.0"
       sources."decode-uri-component-0.2.0"
@@ -65091,7 +67303,7 @@ in
       sources."domutils-1.7.0"
       sources."dot-prop-5.3.0"
       sources."duplexer3-0.1.4"
-      sources."electron-to-chromium-1.3.616"
+      sources."electron-to-chromium-1.3.633"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."entities-1.1.2"
@@ -65268,7 +67480,7 @@ in
       sources."htmlparser2-3.10.1"
       sources."iconv-lite-0.4.24"
       sources."ignore-4.0.6"
-      sources."import-fresh-3.2.2"
+      sources."import-fresh-3.3.0"
       sources."import-lazy-2.1.0"
       sources."import-local-0.1.1"
       sources."imurmurhash-0.1.4"
@@ -65276,7 +67488,7 @@ in
       sources."indexes-of-1.0.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       (sources."inquirer-7.3.3" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -65348,7 +67560,7 @@ in
       sources."isobject-2.1.0"
       sources."js-base64-2.6.4"
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.14.0"
+      sources."js-yaml-3.14.1"
       sources."json-parse-better-errors-1.0.2"
       sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-without-jsonify-1.0.1"
@@ -65897,10 +68109,10 @@ in
       sha512 = "SOsCwIuQeE4eiX/Scgs2nL1WnR0JwFZ2/Edh3dx5ijmZSlEPxdc0PnMUN0hT9y96jK5/ZHAByC3qEperpWqPUA==";
     };
     dependencies = [
-      sources."vscode-jsonrpc-5.0.1"
-      sources."vscode-languageserver-protocol-3.15.3"
+      sources."vscode-jsonrpc-6.0.0"
+      sources."vscode-languageserver-protocol-3.16.0"
       sources."vscode-languageserver-textdocument-1.0.1"
-      sources."vscode-languageserver-types-3.15.1"
+      sources."vscode-languageserver-types-3.16.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -65932,10 +68144,10 @@ in
   coc-rust-analyzer = nodeEnv.buildNodePackage {
     name = "coc-rust-analyzer";
     packageName = "coc-rust-analyzer";
-    version = "0.19.0";
+    version = "0.25.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-rust-analyzer/-/coc-rust-analyzer-0.19.0.tgz";
-      sha512 = "HeoHspOK0pg9UGUV6jYX5IlJhWIslA34Yg99QqJU2xCJxE93YAlyhJ0S/TVtkQdCYpn6D7UiHjKDazUQKkDMOQ==";
+      url = "https://registry.npmjs.org/coc-rust-analyzer/-/coc-rust-analyzer-0.25.0.tgz";
+      sha512 = "+Diufwhz7JMJlbdNuwkcfcWnGXS5neoJlSW897kI0zfYL9H0R+fJXwiEYy0/f2UWn2eO1pjy0svqyXlacyvAoQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -65968,10 +68180,10 @@ in
   coc-snippets = nodeEnv.buildNodePackage {
     name = "coc-snippets";
     packageName = "coc-snippets";
-    version = "2.2.9";
+    version = "2.3.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-snippets/-/coc-snippets-2.2.9.tgz";
-      sha512 = "SjVr0CSmF97LS5e/qz2Lac5JYpx9F6U9MPLzbB3WfGSIBwlrbevgw47DJSIxCr1ZWNb1Um/esRWDGfkhrMjbmA==";
+      url = "https://registry.npmjs.org/coc-snippets/-/coc-snippets-2.3.1.tgz";
+      sha512 = "n11bVCYeDA0s1wYNAYsQdAHVv4C/k8QkvadSkzRWrNCP29fivGALp+wEYl8rtsqs0aeKY3FtPsI812581g6NPg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -66008,32 +68220,32 @@ in
       sha512 = "+GYR6KTvHQnqu0j1kXT30hRZMuCwG/G52wG/19LSPE+p9Q0i8XFH6582T0btTu39xz2TPsDOGjT1VgyRw2urug==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.4"
-      sources."@babel/core-7.12.9"
-      sources."@babel/generator-7.12.5"
-      sources."@babel/helper-function-name-7.10.4"
-      sources."@babel/helper-get-function-arity-7.10.4"
+      sources."@babel/code-frame-7.12.11"
+      sources."@babel/core-7.12.10"
+      sources."@babel/generator-7.12.11"
+      sources."@babel/helper-function-name-7.12.11"
+      sources."@babel/helper-get-function-arity-7.12.10"
       sources."@babel/helper-member-expression-to-functions-7.12.7"
       sources."@babel/helper-module-imports-7.12.5"
       sources."@babel/helper-module-transforms-7.12.1"
-      sources."@babel/helper-optimise-call-expression-7.12.7"
-      sources."@babel/helper-replace-supers-7.12.5"
+      sources."@babel/helper-optimise-call-expression-7.12.10"
+      sources."@babel/helper-replace-supers-7.12.11"
       sources."@babel/helper-simple-access-7.12.1"
-      sources."@babel/helper-split-export-declaration-7.11.0"
-      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/helper-split-export-declaration-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
       sources."@babel/helpers-7.12.5"
       (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.12.7"
+      sources."@babel/parser-7.12.11"
       sources."@babel/template-7.12.7"
-      sources."@babel/traverse-7.12.9"
-      sources."@babel/types-7.12.7"
-      sources."@nodelib/fs.scandir-2.1.3"
-      sources."@nodelib/fs.stat-2.0.3"
-      sources."@nodelib/fs.walk-1.2.4"
+      sources."@babel/traverse-7.12.12"
+      sources."@babel/types-7.12.12"
+      sources."@nodelib/fs.scandir-2.1.4"
+      sources."@nodelib/fs.stat-2.0.4"
+      sources."@nodelib/fs.walk-1.2.6"
       sources."@stylelint/postcss-css-in-js-0.37.2"
       sources."@stylelint/postcss-markdown-0.36.2"
       sources."@types/mdast-3.0.3"
@@ -66041,7 +68253,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-6.12.6"
+      sources."ajv-7.0.3"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
       sources."array-union-2.1.0"
@@ -66052,11 +68264,11 @@ in
       sources."balanced-match-1.0.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."browserslist-4.15.0"
+      sources."browserslist-4.16.0"
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001165"
+      sources."caniuse-lite-1.0.30001171"
       (sources."chalk-4.1.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -66077,7 +68289,7 @@ in
       sources."convert-source-map-1.7.0"
       sources."cosmiconfig-7.0.0"
       sources."cssesc-3.0.0"
-      sources."debug-4.3.1"
+      sources."debug-4.3.2"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
         dependencies = [
@@ -66094,7 +68306,7 @@ in
       sources."domelementtype-1.3.1"
       sources."domhandler-2.4.2"
       sources."domutils-1.7.0"
-      sources."electron-to-chromium-1.3.616"
+      sources."electron-to-chromium-1.3.633"
       sources."emoji-regex-8.0.0"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
@@ -66105,9 +68317,8 @@ in
       sources."fast-deep-equal-3.1.3"
       sources."fast-diff-1.2.0"
       sources."fast-glob-3.2.4"
-      sources."fast-json-stable-stringify-2.1.0"
       sources."fastest-levenshtein-1.0.12"
-      sources."fastq-1.9.0"
+      sources."fastq-1.10.0"
       sources."file-entry-cache-6.0.0"
       sources."fill-range-7.0.1"
       sources."find-up-4.1.0"
@@ -66132,7 +68343,7 @@ in
       sources."html-tags-3.1.0"
       sources."htmlparser2-3.10.1"
       sources."ignore-5.1.8"
-      (sources."import-fresh-3.2.2" // {
+      (sources."import-fresh-3.3.0" // {
         dependencies = [
           sources."resolve-from-4.0.0"
         ];
@@ -66143,7 +68354,7 @@ in
       sources."indexes-of-1.0.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."is-alphabetical-1.0.4"
       sources."is-alphanumerical-1.0.4"
       sources."is-arrayish-0.2.1"
@@ -66162,7 +68373,7 @@ in
       sources."js-tokens-4.0.0"
       sources."jsesc-2.5.2"
       sources."json-parse-even-better-errors-2.3.1"
-      sources."json-schema-traverse-0.4.1"
+      sources."json-schema-traverse-1.0.0"
       sources."json5-2.1.3"
       sources."kind-of-6.0.3"
       sources."known-css-properties-0.20.0"
@@ -66174,16 +68385,12 @@ in
       sources."lru-cache-6.0.0"
       sources."map-obj-4.1.0"
       sources."mathml-tag-names-2.1.3"
-      sources."mdast-util-from-markdown-0.8.1"
-      (sources."mdast-util-to-markdown-0.5.4" // {
-        dependencies = [
-          sources."mdast-util-to-string-2.0.0"
-        ];
-      })
-      sources."mdast-util-to-string-1.1.0"
-      sources."meow-8.0.0"
+      sources."mdast-util-from-markdown-0.8.4"
+      sources."mdast-util-to-markdown-0.6.2"
+      sources."mdast-util-to-string-2.0.0"
+      sources."meow-8.1.0"
       sources."merge2-1.4.1"
-      sources."micromark-2.10.1"
+      sources."micromark-2.11.2"
       sources."micromatch-4.0.2"
       sources."min-indent-1.0.1"
       sources."minimatch-3.0.4"
@@ -66255,9 +68462,9 @@ in
       sources."redent-3.0.0"
       sources."remark-13.0.0"
       sources."remark-parse-9.0.0"
-      sources."remark-stringify-9.0.0"
+      sources."remark-stringify-9.0.1"
       sources."repeat-string-1.6.1"
-      sources."replace-ext-1.0.0"
+      sources."require-from-string-2.0.2"
       sources."resolve-1.19.0"
       sources."resolve-from-5.0.0"
       sources."reusify-1.0.4"
@@ -66293,7 +68500,7 @@ in
       sources."sugarss-2.0.0"
       sources."supports-color-5.5.0"
       sources."svg-tags-1.0.0"
-      sources."table-6.0.4"
+      sources."table-6.0.6"
       sources."to-fast-properties-2.0.0"
       sources."to-regex-range-5.0.1"
       sources."trim-newlines-3.0.0"
@@ -66309,7 +68516,7 @@ in
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-2.2.0"
       sources."validate-npm-package-license-3.0.4"
-      sources."vfile-4.2.0"
+      sources."vfile-4.2.1"
       sources."vfile-message-2.0.4"
       sources."vscode-jsonrpc-5.1.0-next.1"
       sources."vscode-languageserver-6.2.0-next.2"
@@ -66319,7 +68526,7 @@ in
         ];
       })
       sources."vscode-languageserver-textdocument-1.0.1"
-      sources."vscode-languageserver-types-3.16.0-next.5"
+      sources."vscode-languageserver-types-3.16.0"
       sources."vscode-uri-2.1.2"
       sources."which-1.3.1"
       sources."wrappy-1.0.2"
@@ -66364,8 +68571,8 @@ in
       sha512 = "5Zxv2Adtb6Mlpv2YdKErhf8ntxiBl1UyrbEqo7gR9nFIAfi3o0Ue6TJTpZfOhQViFQxLjJAS65IQVRaNlbhkxw==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.4"
-      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/code-frame-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
       sources."@babel/highlight-7.10.4"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
@@ -66389,7 +68596,7 @@ in
       sources."inherits-2.0.4"
       sources."is-core-module-2.2.0"
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.14.0"
+      sources."js-yaml-3.14.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
@@ -66419,10 +68626,10 @@ in
   coc-tslint-plugin = nodeEnv.buildNodePackage {
     name = "coc-tslint-plugin";
     packageName = "coc-tslint-plugin";
-    version = "1.1.1";
+    version = "1.1.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-tslint-plugin/-/coc-tslint-plugin-1.1.1.tgz";
-      sha512 = "eU3YvpRXEGavuzrPSBsmTnFAh/z3ty6ybSn6o762YNKxwGgF88fCpziIZxmsUDE4tsH+dNzrQCX9je9MqR6K6A==";
+      url = "https://registry.npmjs.org/coc-tslint-plugin/-/coc-tslint-plugin-1.1.2.tgz";
+      sha512 = "wLm2JJVkf2yUk3XzMSmAs8pnibQRTroHnF3XkIH7DJ5mrcrZe9o0Od2lYyuNxgJn2v6/Iw221o8/LfoamfywdQ==";
     };
     dependencies = [
       sources."balanced-match-1.0.0"
@@ -66452,13 +68659,13 @@ in
   coc-tsserver = nodeEnv.buildNodePackage {
     name = "coc-tsserver";
     packageName = "coc-tsserver";
-    version = "1.6.1";
+    version = "1.6.6";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-tsserver/-/coc-tsserver-1.6.1.tgz";
-      sha512 = "Tys5fRAdzYfi2MyRQ8X5fKLw8vhluuT/0/Uac+eOzMnWSJ0zgMpxtXTo5AA1icsLgUTHHOXgq6CJHUbKs6xGVA==";
+      url = "https://registry.npmjs.org/coc-tsserver/-/coc-tsserver-1.6.6.tgz";
+      sha512 = "Rij5moc30YSnhYkiSwilLYorbRkmYPn9uN5b4EMXrNo0wWGReFYRRCxq72BoDEIwbTE3MsuVb67irdMukJ95eA==";
     };
     dependencies = [
-      sources."typescript-4.1.2"
+      sources."typescript-4.1.3"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -66479,8 +68686,8 @@ in
       sha512 = "2SHFFjxkw2kl0hADDNUYX85OR/PbjqYPxFnpNp6G83SbeZBoJN8KDUl7TrIJ7BZ4UCiIilXnKQCHpxREiVPAEg==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.4"
-      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/code-frame-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
       (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."chalk-2.4.2"
@@ -66494,7 +68701,7 @@ in
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
-      sources."astral-regex-1.0.0"
+      sources."astral-regex-2.0.0"
       sources."balanced-match-1.0.0"
       sources."brace-expansion-1.1.11"
       sources."builtin-modules-1.1.1"
@@ -66513,15 +68720,15 @@ in
       sources."commander-2.20.3"
       sources."concat-map-0.0.1"
       sources."cross-spawn-7.0.3"
-      sources."debug-4.3.1"
+      sources."debug-4.3.2"
       sources."deep-is-0.1.3"
       sources."diff-4.0.2"
       sources."doctrine-3.0.0"
-      sources."emoji-regex-7.0.3"
+      sources."emoji-regex-8.0.0"
       sources."enquirer-2.3.6"
       sources."escape-string-regexp-1.0.5"
-      sources."eslint-7.15.0"
-      sources."eslint-plugin-vue-7.2.0"
+      sources."eslint-7.17.0"
+      sources."eslint-plugin-vue-7.4.0"
       sources."eslint-scope-5.1.1"
       (sources."eslint-utils-2.1.0" // {
         dependencies = [
@@ -66562,17 +68769,17 @@ in
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
       sources."ignore-4.0.6"
-      sources."import-fresh-3.2.2"
+      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.2.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."isexe-2.0.0"
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.14.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"
@@ -66594,24 +68801,31 @@ in
       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.19.0"
       sources."resolve-from-4.0.0"
       sources."rimraf-3.0.2"
       sources."semver-7.3.4"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
-      sources."slice-ansi-2.1.0"
-      sources."sprintf-js-1.0.3"
-      (sources."string-width-3.1.0" // {
+      (sources."slice-ansi-4.0.0" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."strip-ansi-5.2.0"
+          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.0"
       sources."strip-ansi-6.0.0"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-5.5.0"
-      sources."table-5.4.6"
+      (sources."table-6.0.6" // {
+        dependencies = [
+          sources."ajv-7.0.3"
+          sources."json-schema-traverse-1.0.0"
+        ];
+      })
       sources."text-table-0.2.0"
       sources."tslib-1.14.1"
       (sources."tslint-6.1.3" // {
@@ -66623,11 +68837,11 @@ in
       sources."tsutils-2.29.0"
       sources."type-check-0.4.0"
       sources."type-fest-0.8.1"
-      sources."typescript-4.1.2"
+      sources."typescript-4.1.3"
       sources."uri-js-4.4.0"
       sources."v8-compile-cache-2.2.0"
       sources."vls-0.5.10"
-      (sources."vue-eslint-parser-7.2.0" // {
+      (sources."vue-eslint-parser-7.3.0" // {
         dependencies = [
           sources."eslint-visitor-keys-1.3.0"
           sources."espree-6.2.1"
@@ -66703,10 +68917,10 @@ in
   coc-yaml = nodeEnv.buildNodePackage {
     name = "coc-yaml";
     packageName = "coc-yaml";
-    version = "1.1.3";
+    version = "1.3.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-yaml/-/coc-yaml-1.1.3.tgz";
-      sha512 = "BBDyx+KUBUcTOoE+E0sZ1pp0mMNWmrqHIeVykEvMN9bt/agtf4vvlJojv54sJETN9LHwbLNLl9pIQkM2HzoWmQ==";
+      url = "https://registry.npmjs.org/coc-yaml/-/coc-yaml-1.3.0.tgz";
+      sha512 = "i71kwyF20R+vAHhuF9uBbvs6kkvKuSifMkxTeIbBnLobHE500rSSwUD2SPIvt+I1g1rfHrM0Sj89fzrhDA60NQ==";
     };
     dependencies = [
       sources."agent-base-4.3.0"
@@ -66717,17 +68931,17 @@ in
       sources."esprima-4.0.1"
       sources."http-proxy-agent-2.1.0"
       sources."https-proxy-agent-2.2.4"
-      sources."js-yaml-3.14.0"
-      sources."jsonc-parser-2.3.1"
+      sources."js-yaml-3.14.1"
+      sources."jsonc-parser-3.0.0"
       sources."ms-2.0.0"
-      sources."prettier-2.2.1"
+      sources."prettier-2.0.5"
       (sources."request-light-0.2.5" // {
         dependencies = [
           sources."vscode-nls-4.1.2"
         ];
       })
       sources."sprintf-js-1.0.3"
-      sources."vscode-json-languageservice-3.8.4"
+      sources."vscode-json-languageservice-3.11.0"
       sources."vscode-jsonrpc-4.0.0"
       (sources."vscode-languageserver-5.2.1" // {
         dependencies = [
@@ -66743,13 +68957,14 @@ in
       sources."vscode-languageserver-types-3.16.0-next.2"
       sources."vscode-nls-5.0.0"
       sources."vscode-uri-2.1.2"
-      (sources."yaml-language-server-0.12.0" // {
+      (sources."yaml-language-server-0.13.1-dcc82a9.0" // {
         dependencies = [
-          sources."vscode-languageserver-types-3.15.1"
+          sources."jsonc-parser-2.3.1"
+          sources."vscode-languageserver-types-3.16.0"
           sources."vscode-nls-4.1.2"
         ];
       })
-      sources."yaml-language-server-parser-0.1.1"
+      sources."yaml-language-server-parser-0.1.3-fa8245c.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -66763,10 +68978,10 @@ in
   coc-yank = nodeEnv.buildNodePackage {
     name = "coc-yank";
     packageName = "coc-yank";
-    version = "1.1.11";
+    version = "1.2.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-yank/-/coc-yank-1.1.11.tgz";
-      sha512 = "pWJbOo12PmigwYTCk8ghckDlPE5K0qO4VxEZeLJ7ck4v6jhRaKi0lVlYfhBauPuCDv3Yqd0DoKyVLvrQXoRg1A==";
+      url = "https://registry.npmjs.org/coc-yank/-/coc-yank-1.2.0.tgz";
+      sha512 = "6Ene7ds4ZVfFLzihd3YaPussxNf0npGlPrlPpnGnCPeZ5bGDcEc3j++0Pl4yjo0sIb1QKR/WjrfA0/1Q8mi9yw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -66867,7 +69082,7 @@ in
       sources."fast-safe-stringify-2.0.7"
       sources."fecha-4.2.0"
       sources."fn.name-1.1.0"
-      sources."follow-redirects-1.13.0"
+      sources."follow-redirects-1.13.1"
       sources."http-proxy-1.18.1"
       sources."inherits-2.0.4"
       sources."is-arrayish-0.3.2"
@@ -66877,7 +69092,7 @@ in
       sources."logform-2.2.0"
       sources."lynx-0.2.0"
       sources."mersenne-0.0.4"
-      sources."ms-2.1.2"
+      sources."ms-2.1.3"
       sources."one-time-1.0.0"
       sources."process-nextick-args-2.0.1"
       sources."readable-stream-3.6.0"
@@ -66920,9 +69135,9 @@ in
     };
     dependencies = [
       sources."@netflix/nerror-1.1.3"
-      sources."@nodelib/fs.scandir-2.1.3"
-      sources."@nodelib/fs.stat-2.0.3"
-      sources."@nodelib/fs.walk-1.2.4"
+      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."abbrev-1.1.1"
@@ -67068,7 +69283,7 @@ in
       sources."fast-glob-3.2.4"
       sources."fast-json-parse-1.0.3"
       sources."fast-json-stable-stringify-2.1.0"
-      sources."fastq-1.9.0"
+      sources."fastq-1.10.0"
       sources."figures-2.0.0"
       sources."fill-range-7.0.1"
       sources."finalhandler-1.1.2"
@@ -67084,7 +69299,7 @@ in
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
       sources."glob-parent-5.1.1"
-      sources."global-dirs-2.0.1"
+      sources."global-dirs-2.1.0"
       sources."globby-11.0.1"
       (sources."got-9.6.0" // {
         dependencies = [
@@ -67108,12 +69323,12 @@ in
       sources."human-signals-1.1.1"
       sources."iconv-lite-0.4.24"
       sources."ignore-5.1.8"
-      sources."import-fresh-3.2.2"
+      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.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.7"
       (sources."init-package-json-1.10.3" // {
         dependencies = [
           sources."hosted-git-info-2.8.8"
@@ -67200,8 +69415,8 @@ in
       sources."methods-1.1.2"
       sources."micromatch-4.0.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
@@ -67343,7 +69558,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.30.11"
+      sources."systeminformation-4.33.5"
       sources."term-size-2.2.1"
       sources."through-2.3.8"
       sources."tmp-0.2.1"
@@ -67422,15 +69637,15 @@ in
       sha512 = "HCpNdBkQy3rw+uARLuIf0YurqsMXYzBa9ihhSAuxYJcNIrqrSq3BstPfr0cQN38AdMrQiO9Dp4hYy7GtGJsLPg==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.4"
-      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/code-frame-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
       sources."@babel/highlight-7.10.4"
       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.3"
       sources."@types/minimist-1.2.1"
-      sources."@types/node-14.14.10"
+      sources."@types/node-14.14.19"
       sources."@types/normalize-package-data-2.4.0"
       sources."aggregate-error-3.1.0"
       sources."ansi-styles-3.2.1"
@@ -67801,7 +70016,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.10"
+      sources."@types/node-14.14.19"
       sources."@types/superagent-3.8.2"
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-2.1.1"
@@ -67877,11 +70092,11 @@ in
       sources."lru-cache-4.1.5"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-fn-1.2.0"
       sources."minimist-1.2.5"
-      sources."ms-2.1.2"
+      sources."ms-2.1.3"
       sources."mute-stream-0.0.7"
       sources."next-tick-1.0.0"
       sources."object-assign-4.1.1"
@@ -68222,7 +70437,11 @@ in
       sources."dat-secret-storage-4.0.1"
       sources."dat-storage-1.1.1"
       sources."dat-swarm-defaults-1.0.2"
-      sources."debug-4.3.1"
+      (sources."debug-4.3.2" // {
+        dependencies = [
+          sources."ms-2.1.2"
+        ];
+      })
       sources."decode-uri-component-0.2.0"
       sources."decompress-response-4.2.1"
       sources."deep-equal-0.2.2"
@@ -68359,7 +70578,7 @@ in
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."inspect-custom-symbol-1.1.1"
       sources."ip-1.1.5"
       sources."is-accessor-descriptor-1.0.0"
@@ -68424,9 +70643,9 @@ in
       sources."menu-string-1.3.0"
       sources."merkle-tree-stream-3.0.3"
       sources."micromatch-3.1.10"
-      sources."mime-2.4.6"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-2.4.7"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-response-2.1.0"
       sources."min-document-2.19.0"
       sources."minimatch-3.0.4"
@@ -68439,7 +70658,7 @@ in
       })
       sources."mkdirp-0.5.5"
       sources."mkdirp-classic-0.5.3"
-      sources."ms-2.1.2"
+      sources."ms-2.1.3"
       sources."multi-random-access-2.1.1"
       sources."multicast-dns-7.2.2"
       sources."multistream-2.1.1"
@@ -68490,7 +70709,6 @@ in
       sources."path-key-2.0.1"
       sources."performance-now-2.1.0"
       sources."pify-3.0.0"
-      sources."pkginfo-0.4.1"
       sources."posix-character-classes-0.1.1"
       sources."prepend-http-1.0.4"
       sources."prettier-bytes-1.0.4"
@@ -68498,7 +70716,7 @@ in
       sources."process-0.11.10"
       sources."process-nextick-args-2.0.1"
       sources."progress-string-1.2.2"
-      sources."prompt-1.0.0"
+      sources."prompt-1.1.0"
       (sources."protocol-buffers-encodings-1.1.1" // {
         dependencies = [
           sources."varint-5.0.0"
@@ -68710,11 +70928,10 @@ in
       sources."verror-1.10.0"
       sources."which-1.3.1"
       sources."widest-line-2.0.1"
-      (sources."winston-2.1.1" // {
+      (sources."winston-2.4.5" // {
         dependencies = [
           sources."async-1.0.0"
           sources."colors-1.0.3"
-          sources."pkginfo-0.3.1"
         ];
       })
       sources."wrappy-1.0.2"
@@ -68765,9 +70982,9 @@ in
       sha512 = "UnQGWIszi+uXkZ/pYUDLKuftSOSIvc/ZBSp/W6OF/Qyr2SsEaSD6TuaIo7TiH1MGQX1b2EW9P1WlE+16Ft4MiA==";
     };
     dependencies = [
-      sources."@nodelib/fs.scandir-2.1.3"
-      sources."@nodelib/fs.stat-2.0.3"
-      sources."@nodelib/fs.walk-1.2.4"
+      sources."@nodelib/fs.scandir-2.1.4"
+      sources."@nodelib/fs.stat-2.0.4"
+      sources."@nodelib/fs.walk-1.2.6"
       sources."aggregate-error-3.1.0"
       sources."array-union-2.1.0"
       sources."balanced-match-1.0.0"
@@ -68780,7 +70997,7 @@ in
       sources."del-6.0.0"
       sources."dir-glob-3.0.1"
       sources."fast-glob-3.2.4"
-      sources."fastq-1.9.0"
+      sources."fastq-1.10.0"
       sources."fill-range-7.0.1"
       sources."find-up-4.1.0"
       sources."fs.realpath-1.0.0"
@@ -68823,11 +71040,11 @@ in
       sources."tslib-1.14.1"
       sources."type-fest-0.16.0"
       sources."unique-string-2.0.0"
-      sources."vscode-jsonrpc-5.0.1"
+      sources."vscode-jsonrpc-6.0.0"
       sources."vscode-languageserver-6.1.1"
-      sources."vscode-languageserver-protocol-3.15.3"
+      sources."vscode-languageserver-protocol-3.16.0"
       sources."vscode-languageserver-textdocument-1.0.1"
-      sources."vscode-languageserver-types-3.15.1"
+      sources."vscode-languageserver-types-3.16.0"
       sources."vscode-uri-2.1.2"
       sources."wrappy-1.0.2"
     ];
@@ -68844,23 +71061,19 @@ in
   dockerfile-language-server-nodejs = nodeEnv.buildNodePackage {
     name = "dockerfile-language-server-nodejs";
     packageName = "dockerfile-language-server-nodejs";
-    version = "0.1.1";
+    version = "0.2.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/dockerfile-language-server-nodejs/-/dockerfile-language-server-nodejs-0.1.1.tgz";
-      sha512 = "oGWWKH7UzTulQDqvbONC4cGw8Zw43PnBXN2r3msXacV61n9YnrnbnqIJavl5zCrKEPLcu30rogMkNmrRBNNfJQ==";
+      url = "https://registry.npmjs.org/dockerfile-language-server-nodejs/-/dockerfile-language-server-nodejs-0.2.0.tgz";
+      sha512 = "D6qT5w2y73pF02c+caAPYn/IG7T/231u8WD/qfyt3MBtnRe8x7ZIQK9+VAxFYvCtqbGuN7MiPVoRctkth/jcuA==";
     };
     dependencies = [
-      sources."dockerfile-ast-0.0.27"
-      sources."dockerfile-language-service-0.1.0"
-      (sources."dockerfile-utils-0.1.0" // {
-        dependencies = [
-          sources."dockerfile-ast-0.0.28"
-        ];
-      })
-      sources."vscode-jsonrpc-5.0.1"
-      sources."vscode-languageserver-6.1.1"
-      sources."vscode-languageserver-protocol-3.15.3"
-      sources."vscode-languageserver-types-3.15.1"
+      sources."dockerfile-ast-0.1.0"
+      sources."dockerfile-language-service-0.1.1"
+      sources."dockerfile-utils-0.1.1"
+      sources."vscode-jsonrpc-6.0.0"
+      sources."vscode-languageserver-7.0.0"
+      sources."vscode-languageserver-protocol-3.16.0"
+      sources."vscode-languageserver-types-3.16.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -68875,15 +71088,15 @@ in
   elasticdump = nodeEnv.buildNodePackage {
     name = "elasticdump";
     packageName = "elasticdump";
-    version = "6.56.0";
+    version = "6.62.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/elasticdump/-/elasticdump-6.56.0.tgz";
-      sha512 = "xgJH1i6nINcRVAGW1ek+NQJOyOgsS9VDGsWW0sN51v3IUGbPgHSZXTpBtqykVjkb+KoiP1V3NkiKY76n7zd+Kw==";
+      url = "https://registry.npmjs.org/elasticdump/-/elasticdump-6.62.1.tgz";
+      sha512 = "LM6NwMLF0W/ZCcSEqXUufGiDzGpXpF7uPQjLo5zx0PS/tLQkrkA2sNeNcE6p7dVcX1u9hYRuJisl9PP7hQvsAg==";
     };
     dependencies = [
       sources."@fast-csv/format-4.3.5"
-      sources."@fast-csv/parse-4.3.3"
-      sources."@types/node-14.14.10"
+      sources."@fast-csv/parse-4.3.6"
+      sources."@types/node-14.14.19"
       sources."JSONStream-1.3.5"
       sources."ajv-6.12.6"
       sources."asn1-0.2.4"
@@ -68909,8 +71122,9 @@ in
       sources."eventemitter3-4.0.7"
       sources."events-1.1.1"
       sources."extend-3.0.2"
+      sources."extends-classes-1.0.5"
       sources."extsprintf-1.3.0"
-      sources."fast-csv-4.3.5"
+      sources."fast-csv-4.3.6"
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."forever-agent-0.6.1"
@@ -68922,7 +71136,7 @@ in
       sources."http-status-1.5.0"
       sources."ieee754-1.1.13"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-2.0.0"
       (sources."ip-address-6.1.0" // {
         dependencies = [
           sources."jsbn-1.1.0"
@@ -68948,8 +71162,9 @@ in
       sources."lodash.isundefined-3.0.1"
       sources."lodash.uniq-4.5.0"
       sources."lossless-json-1.0.4"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."method-missing-1.2.4"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."minimist-1.2.5"
       sources."oauth-sign-0.9.0"
       sources."p-finally-1.0.0"
@@ -69043,42 +71258,40 @@ in
       sha512 = "ohjlUXM2v39rDqGIrlyxdcn9ql+4b+X1u90CXNWjYw5wX6C3wTHRfqFfeV8jajYD6Xc+ufn2X1QeZZWhRBXTlA==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.4"
-      sources."@babel/core-7.12.9"
-      sources."@babel/generator-7.12.5"
-      sources."@babel/helper-annotate-as-pure-7.10.4"
-      sources."@babel/helper-builder-react-jsx-7.10.4"
-      sources."@babel/helper-builder-react-jsx-experimental-7.12.4"
-      sources."@babel/helper-function-name-7.10.4"
-      sources."@babel/helper-get-function-arity-7.10.4"
+      sources."@babel/code-frame-7.12.11"
+      sources."@babel/core-7.12.10"
+      sources."@babel/generator-7.12.11"
+      sources."@babel/helper-annotate-as-pure-7.12.10"
+      sources."@babel/helper-function-name-7.12.11"
+      sources."@babel/helper-get-function-arity-7.12.10"
       sources."@babel/helper-member-expression-to-functions-7.12.7"
       sources."@babel/helper-module-imports-7.12.5"
       sources."@babel/helper-module-transforms-7.12.1"
-      sources."@babel/helper-optimise-call-expression-7.12.7"
+      sources."@babel/helper-optimise-call-expression-7.12.10"
       sources."@babel/helper-plugin-utils-7.10.4"
-      sources."@babel/helper-replace-supers-7.12.5"
+      sources."@babel/helper-replace-supers-7.12.11"
       sources."@babel/helper-simple-access-7.12.1"
-      sources."@babel/helper-split-export-declaration-7.11.0"
-      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/helper-split-export-declaration-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
       sources."@babel/helpers-7.12.5"
       sources."@babel/highlight-7.10.4"
-      sources."@babel/parser-7.12.7"
+      sources."@babel/parser-7.12.11"
       sources."@babel/plugin-proposal-object-rest-spread-7.12.1"
       sources."@babel/plugin-syntax-jsx-7.12.1"
       sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
       sources."@babel/plugin-transform-destructuring-7.12.1"
       sources."@babel/plugin-transform-parameters-7.12.1"
-      sources."@babel/plugin-transform-react-jsx-7.12.7"
+      sources."@babel/plugin-transform-react-jsx-7.12.12"
       sources."@babel/template-7.12.7"
-      sources."@babel/traverse-7.12.9"
-      sources."@babel/types-7.12.7"
+      sources."@babel/traverse-7.12.12"
+      sources."@babel/types-7.12.12"
       sources."@sindresorhus/is-4.0.0"
       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.10"
+      sources."@types/node-14.14.19"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/responselike-1.0.0"
       sources."@types/yoga-layout-1.9.2"
@@ -69097,7 +71310,7 @@ in
       sources."auto-bind-4.0.0"
       sources."balanced-match-1.0.0"
       sources."brace-expansion-1.1.11"
-      sources."cacheable-lookup-5.0.3"
+      sources."cacheable-lookup-5.0.4"
       (sources."cacheable-request-7.0.1" // {
         dependencies = [
           sources."get-stream-5.2.0"
@@ -69133,7 +71346,7 @@ in
       sources."convert-to-spaces-1.0.2"
       sources."cross-spawn-6.0.5"
       sources."debounce-fn-4.0.0"
-      sources."debug-4.3.1"
+      sources."debug-4.3.2"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
         dependencies = [
@@ -69164,7 +71377,7 @@ in
       sources."get-stream-4.1.0"
       sources."glob-7.1.6"
       sources."globals-11.12.0"
-      sources."got-11.8.0"
+      sources."got-11.8.1"
       sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
@@ -69355,7 +71568,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-7.4.1"
+      sources."ws-7.4.2"
       sources."yallist-4.0.0"
       sources."yargs-parser-18.1.3"
       sources."yoga-layout-prebuilt-1.10.0"
@@ -69393,8 +71606,8 @@ in
     version = "1.7.5";
     src = ../../applications/video/epgstation;
     dependencies = [
-      sources."@babel/code-frame-7.10.4"
-      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/code-frame-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
       (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
@@ -69405,11 +71618,8 @@ in
       sources."@fluentui/date-time-utilities-7.9.0"
       sources."@fluentui/dom-utilities-1.1.1"
       sources."@fluentui/keyboard-key-0.2.12"
-      sources."@fluentui/react-7.153.4"
-      sources."@fluentui/react-compose-0.19.12"
-      sources."@fluentui/react-focus-7.16.19"
-      sources."@fluentui/react-stylesheets-0.2.4"
-      sources."@fluentui/react-theme-provider-0.18.0"
+      sources."@fluentui/react-7.155.3"
+      sources."@fluentui/react-focus-7.17.0"
       sources."@fluentui/react-window-provider-1.0.1"
       sources."@fluentui/theme-1.7.0"
       (sources."@gulp-sourcemaps/identity-map-1.0.2" // {
@@ -69422,10 +71632,10 @@ in
           sources."normalize-path-2.1.1"
         ];
       })
-      sources."@microsoft/load-themed-styles-1.10.139"
-      sources."@nodelib/fs.scandir-2.1.3"
-      sources."@nodelib/fs.stat-2.0.3"
-      sources."@nodelib/fs.walk-1.2.4"
+      sources."@microsoft/load-themed-styles-1.10.141"
+      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.0.1"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
@@ -69433,11 +71643,10 @@ in
       sources."@types/body-parser-1.19.0"
       sources."@types/caseless-0.12.2"
       sources."@types/chart.js-2.9.24"
-      sources."@types/classnames-2.2.11"
-      sources."@types/connect-3.4.33"
+      sources."@types/connect-3.4.34"
       sources."@types/engine.io-3.1.4"
       sources."@types/express-4.17.8"
-      sources."@types/express-serve-static-core-4.17.14"
+      sources."@types/express-serve-static-core-4.17.17"
       sources."@types/fancy-log-1.3.0"
       sources."@types/glob-7.1.3"
       sources."@types/hls.js-0.13.1"
@@ -69715,7 +71924,6 @@ in
           sources."kind-of-5.1.0"
         ];
       })
-      sources."classnames-2.2.6"
       sources."clean-css-4.2.3"
       sources."clean-stack-2.2.0"
       sources."cli-cursor-2.1.0"
@@ -69795,7 +72003,7 @@ in
       (sources."debug-fabulous-1.1.0" // {
         dependencies = [
           sources."debug-3.2.7"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
       sources."decamelize-1.2.0"
@@ -69869,7 +72077,7 @@ in
         dependencies = [
           sources."cookie-0.3.1"
           sources."debug-4.1.1"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
       (sources."engine.io-client-3.4.4" // {
@@ -69883,7 +72091,7 @@ in
       })
       sources."engine.io-parser-2.2.1"
       sources."enhanced-resolve-4.3.0"
-      sources."errno-0.1.7"
+      sources."errno-0.1.8"
       sources."error-ex-1.3.2"
       sources."es5-ext-0.10.53"
       sources."es6-iterator-2.0.3"
@@ -69951,7 +72159,7 @@ in
       sources."fast-glob-3.2.4"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-1.1.4"
-      sources."fastq-1.9.0"
+      sources."fastq-1.10.0"
       sources."figgy-pudding-3.5.2"
       sources."figures-2.0.0"
       sources."file-uri-to-path-1.0.0"
@@ -70020,7 +72228,7 @@ in
         ];
       })
       sources."get-caller-file-1.0.3"
-      sources."get-intrinsic-1.0.1"
+      sources."get-intrinsic-1.0.2"
       sources."get-stream-4.1.0"
       sources."get-value-2.0.6"
       sources."getpass-0.1.7"
@@ -70134,7 +72342,7 @@ in
       sources."infer-owner-1.0.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.3"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."inquirer-3.0.6"
       sources."interpret-1.4.0"
       sources."invert-kv-1.0.0"
@@ -70219,7 +72427,7 @@ in
       sources."lodash.some-4.6.0"
       (sources."log4js-6.3.0" // {
         dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."ms-2.1.2"
         ];
       })
@@ -70272,8 +72480,8 @@ in
         ];
       })
       sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-fn-1.2.0"
       sources."mimic-response-1.0.1"
       sources."minimalistic-assert-1.0.1"
@@ -70366,7 +72574,7 @@ in
       (sources."needle-2.5.2" // {
         dependencies = [
           sources."debug-3.2.7"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
       sources."negotiator-0.6.2"
@@ -70438,7 +72646,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.153.4"
+      sources."office-ui-fabric-react-7.155.3"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
@@ -70632,7 +72840,7 @@ in
       sources."safe-buffer-5.1.2"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
-      sources."sass-1.30.0"
+      sources."sass-1.32.0"
       sources."sax-1.2.4"
       sources."scheduler-0.19.1"
       sources."schema-utils-2.7.1"
@@ -70689,7 +72897,7 @@ in
       (sources."socket.io-2.3.0" // {
         dependencies = [
           sources."debug-4.1.1"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
       sources."socket.io-adapter-1.1.2"
@@ -70698,7 +72906,7 @@ in
           sources."base64-arraybuffer-0.1.5"
           sources."debug-4.1.1"
           sources."isarray-2.0.1"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
           (sources."socket.io-parser-3.3.1" // {
             dependencies = [
               sources."component-emitter-1.3.0"
@@ -70712,7 +72920,7 @@ in
         dependencies = [
           sources."debug-4.1.1"
           sources."isarray-2.0.1"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
       sources."source-list-map-2.0.1"
@@ -70773,7 +72981,7 @@ in
       (sources."streamroller-2.2.4" // {
         dependencies = [
           sources."date-format-2.1.0"
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."fs-extra-8.1.0"
           sources."jsonfile-4.0.0"
           sources."ms-2.1.2"
@@ -70800,7 +73008,7 @@ in
       sources."sver-compat-1.5.0"
       sources."swagger-schema-official-2.0.0-bab6bed"
       sources."swagger-ui-dist-3.34.0"
-      sources."tail-2.0.4"
+      sources."tail-2.1.1"
       sources."tapable-1.1.3"
       (sources."tar-4.4.13" // {
         dependencies = [
@@ -70993,7 +73201,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-7.4.1"
+      sources."ws-7.4.2"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."xtend-4.0.2"
       sources."y18n-3.2.1"
@@ -71039,14 +73247,14 @@ in
   eslint = nodeEnv.buildNodePackage {
     name = "eslint";
     packageName = "eslint";
-    version = "7.15.0";
+    version = "7.17.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz";
-      sha512 = "Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==";
+      url = "https://registry.npmjs.org/eslint/-/eslint-7.17.0.tgz";
+      sha512 = "zJk08MiBgwuGoxes5sSQhOtibZ75pz0J35XTRlZOk9xMffhpA9BTbQZxoXZzOl5zMbleShbGwtw+1kGferfFwQ==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.4"
-      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/code-frame-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
       (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."chalk-2.4.2"
@@ -71060,7 +73268,7 @@ in
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
-      sources."astral-regex-1.0.0"
+      sources."astral-regex-2.0.0"
       sources."balanced-match-1.0.0"
       sources."brace-expansion-1.1.11"
       sources."callsites-3.1.0"
@@ -71077,10 +73285,10 @@ in
       sources."color-name-1.1.3"
       sources."concat-map-0.0.1"
       sources."cross-spawn-7.0.3"
-      sources."debug-4.3.1"
+      sources."debug-4.3.2"
       sources."deep-is-0.1.3"
       sources."doctrine-3.0.0"
-      sources."emoji-regex-7.0.3"
+      sources."emoji-regex-8.0.0"
       sources."enquirer-2.3.6"
       sources."escape-string-regexp-1.0.5"
       sources."eslint-scope-5.1.1"
@@ -71121,16 +73329,16 @@ in
       sources."globals-12.4.0"
       sources."has-flag-3.0.0"
       sources."ignore-4.0.6"
-      sources."import-fresh-3.2.2"
+      sources."import-fresh-3.3.0"
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       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."isexe-2.0.0"
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.14.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"
@@ -71148,23 +73356,30 @@ in
       sources."progress-2.0.3"
       sources."punycode-2.1.1"
       sources."regexpp-3.1.0"
+      sources."require-from-string-2.0.2"
       sources."resolve-from-4.0.0"
       sources."rimraf-3.0.2"
       sources."semver-7.3.4"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
-      sources."slice-ansi-2.1.0"
-      sources."sprintf-js-1.0.3"
-      (sources."string-width-3.1.0" // {
+      (sources."slice-ansi-4.0.0" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."strip-ansi-5.2.0"
+          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.0"
       sources."strip-ansi-6.0.0"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-5.5.0"
-      sources."table-5.4.6"
+      (sources."table-6.0.6" // {
+        dependencies = [
+          sources."ajv-7.0.3"
+          sources."json-schema-traverse-1.0.0"
+        ];
+      })
       sources."text-table-0.2.0"
       sources."type-check-0.4.0"
       sources."type-fest-0.8.1"
@@ -71194,8 +73409,8 @@ in
       sha512 = "HJ7n92z+gSBLPP/en2pse1SLsFfwOXb8aqHn3FyXwYaE+J5wSM+raBbSmvE9Ttq20IF6Rq/dXxjhiIjuxAUjpw==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.4"
-      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/code-frame-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
       (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."chalk-2.4.2"
@@ -71209,7 +73424,7 @@ in
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
-      sources."astral-regex-1.0.0"
+      sources."astral-regex-2.0.0"
       sources."balanced-match-1.0.0"
       sources."brace-expansion-1.1.11"
       sources."callsites-3.1.0"
@@ -71227,13 +73442,13 @@ in
       sources."concat-map-0.0.1"
       sources."core_d-2.0.0"
       sources."cross-spawn-7.0.3"
-      sources."debug-4.3.1"
+      sources."debug-4.3.2"
       sources."deep-is-0.1.3"
       sources."doctrine-3.0.0"
-      sources."emoji-regex-7.0.3"
+      sources."emoji-regex-8.0.0"
       sources."enquirer-2.3.6"
       sources."escape-string-regexp-1.0.5"
-      sources."eslint-7.15.0"
+      sources."eslint-7.17.0"
       sources."eslint-scope-5.1.1"
       (sources."eslint-utils-2.1.0" // {
         dependencies = [
@@ -71272,16 +73487,16 @@ in
       sources."globals-12.4.0"
       sources."has-flag-3.0.0"
       sources."ignore-4.0.6"
-      sources."import-fresh-3.2.2"
+      sources."import-fresh-3.3.0"
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       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."isexe-2.0.0"
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.14.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"
@@ -71300,23 +73515,30 @@ in
       sources."progress-2.0.3"
       sources."punycode-2.1.1"
       sources."regexpp-3.1.0"
+      sources."require-from-string-2.0.2"
       sources."resolve-from-4.0.0"
       sources."rimraf-3.0.2"
       sources."semver-7.3.4"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
-      sources."slice-ansi-2.1.0"
-      sources."sprintf-js-1.0.3"
-      (sources."string-width-3.1.0" // {
+      (sources."slice-ansi-4.0.0" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."strip-ansi-5.2.0"
+          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.0"
       sources."strip-ansi-6.0.0"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-5.5.0"
-      sources."table-5.4.6"
+      (sources."table-6.0.6" // {
+        dependencies = [
+          sources."ajv-7.0.3"
+          sources."json-schema-traverse-1.0.0"
+        ];
+      })
       sources."text-table-0.2.0"
       sources."type-check-0.4.0"
       sources."type-fest-0.8.1"
@@ -71337,23 +73559,41 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  esy = nodeEnv.buildNodePackage {
+    name = "esy";
+    packageName = "esy";
+    version = "0.6.7";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/esy/-/esy-0.6.7.tgz";
+      sha512 = "G/C0wXDQy19eDqlFNmPg2kHmrllUez9deZd1OOIk/VTKtc75STdeE/Nl1NusVY+La/+eCtovNqk0/ZAb4Mg8gw==";
+    };
+    dependencies = [
+      sources."esy-solve-cudf-0.1.10"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Package builder for esy.";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   expo-cli = nodeEnv.buildNodePackage {
     name = "expo-cli";
     packageName = "expo-cli";
-    version = "4.0.8";
+    version = "4.0.17";
     src = fetchurl {
-      url = "https://registry.npmjs.org/expo-cli/-/expo-cli-4.0.8.tgz";
-      sha512 = "PcJqWSu2mHSEX/O/Vt5Wrui6ZIOE3mwUN4NL2xxmvVUAzIp08SzkAnWJOSThOxcTfHh9kd9fFK1GP6BZItvQOA==";
+      url = "https://registry.npmjs.org/expo-cli/-/expo-cli-4.0.17.tgz";
+      sha512 = "JF8HBs5dUd14zh9cI+u/OEKyRJqJZ2wOPvHlsX2Ohgxw80Wk/BGtTtZzlWY8/PQ+Lm56RWx7RMFPYestsBmpBg==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.4"
+      sources."@babel/code-frame-7.12.11"
       sources."@babel/compat-data-7.12.7"
       sources."@babel/core-7.9.0"
-      sources."@babel/generator-7.12.5"
-      sources."@babel/helper-annotate-as-pure-7.10.4"
+      sources."@babel/generator-7.12.11"
+      sources."@babel/helper-annotate-as-pure-7.12.10"
       sources."@babel/helper-builder-binary-assignment-operator-visitor-7.10.4"
-      sources."@babel/helper-builder-react-jsx-7.10.4"
-      sources."@babel/helper-builder-react-jsx-experimental-7.12.4"
       sources."@babel/helper-compilation-targets-7.12.5"
       sources."@babel/helper-create-class-features-plugin-7.12.1"
       sources."@babel/helper-create-regexp-features-plugin-7.12.7"
@@ -71363,8 +73603,8 @@ in
         ];
       })
       sources."@babel/helper-explode-assignable-expression-7.12.1"
-      sources."@babel/helper-function-name-7.10.4"
-      sources."@babel/helper-get-function-arity-7.10.4"
+      sources."@babel/helper-function-name-7.12.11"
+      sources."@babel/helper-get-function-arity-7.12.10"
       sources."@babel/helper-hoist-variables-7.10.4"
       sources."@babel/helper-member-expression-to-functions-7.12.7"
       sources."@babel/helper-module-imports-7.12.5"
@@ -71373,15 +73613,15 @@ in
           sources."lodash-4.17.20"
         ];
       })
-      sources."@babel/helper-optimise-call-expression-7.12.7"
+      sources."@babel/helper-optimise-call-expression-7.12.10"
       sources."@babel/helper-plugin-utils-7.10.4"
       sources."@babel/helper-remap-async-to-generator-7.12.1"
-      sources."@babel/helper-replace-supers-7.12.5"
+      sources."@babel/helper-replace-supers-7.12.11"
       sources."@babel/helper-simple-access-7.12.1"
       sources."@babel/helper-skip-transparent-expression-wrappers-7.12.1"
-      sources."@babel/helper-split-export-declaration-7.11.0"
-      sources."@babel/helper-validator-identifier-7.10.4"
-      sources."@babel/helper-validator-option-7.12.1"
+      sources."@babel/helper-split-export-declaration-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
+      sources."@babel/helper-validator-option-7.12.11"
       sources."@babel/helper-wrap-function-7.12.3"
       sources."@babel/helpers-7.12.5"
       (sources."@babel/highlight-7.10.4" // {
@@ -71389,8 +73629,8 @@ in
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.12.7"
-      sources."@babel/plugin-proposal-async-generator-functions-7.12.1"
+      sources."@babel/parser-7.12.11"
+      sources."@babel/plugin-proposal-async-generator-functions-7.12.12"
       sources."@babel/plugin-proposal-class-properties-7.12.1"
       sources."@babel/plugin-proposal-dynamic-import-7.12.1"
       sources."@babel/plugin-proposal-export-default-from-7.12.1"
@@ -71423,14 +73663,14 @@ in
       sources."@babel/plugin-transform-arrow-functions-7.12.1"
       sources."@babel/plugin-transform-async-to-generator-7.12.1"
       sources."@babel/plugin-transform-block-scoped-functions-7.12.1"
-      sources."@babel/plugin-transform-block-scoping-7.12.1"
+      sources."@babel/plugin-transform-block-scoping-7.12.12"
       sources."@babel/plugin-transform-classes-7.12.1"
       sources."@babel/plugin-transform-computed-properties-7.12.1"
       sources."@babel/plugin-transform-destructuring-7.12.1"
       sources."@babel/plugin-transform-dotall-regex-7.12.1"
       sources."@babel/plugin-transform-duplicate-keys-7.12.1"
       sources."@babel/plugin-transform-exponentiation-operator-7.12.1"
-      sources."@babel/plugin-transform-flow-strip-types-7.12.1"
+      sources."@babel/plugin-transform-flow-strip-types-7.12.10"
       sources."@babel/plugin-transform-for-of-7.12.1"
       sources."@babel/plugin-transform-function-name-7.12.1"
       sources."@babel/plugin-transform-literals-7.12.1"
@@ -71446,11 +73686,11 @@ in
       sources."@babel/plugin-transform-parameters-7.12.1"
       sources."@babel/plugin-transform-property-literals-7.12.1"
       sources."@babel/plugin-transform-react-display-name-7.12.1"
-      sources."@babel/plugin-transform-react-jsx-7.12.7"
+      sources."@babel/plugin-transform-react-jsx-7.12.12"
       sources."@babel/plugin-transform-react-jsx-source-7.12.1"
       sources."@babel/plugin-transform-regenerator-7.12.1"
       sources."@babel/plugin-transform-reserved-words-7.12.1"
-      (sources."@babel/plugin-transform-runtime-7.12.1" // {
+      (sources."@babel/plugin-transform-runtime-7.12.10" // {
         dependencies = [
           sources."semver-5.7.1"
         ];
@@ -71459,47 +73699,47 @@ in
       sources."@babel/plugin-transform-spread-7.12.1"
       sources."@babel/plugin-transform-sticky-regex-7.12.7"
       sources."@babel/plugin-transform-template-literals-7.12.1"
-      sources."@babel/plugin-transform-typeof-symbol-7.12.1"
+      sources."@babel/plugin-transform-typeof-symbol-7.12.10"
       sources."@babel/plugin-transform-typescript-7.12.1"
       sources."@babel/plugin-transform-unicode-escapes-7.12.1"
       sources."@babel/plugin-transform-unicode-regex-7.12.1"
-      sources."@babel/preset-env-7.12.7"
+      sources."@babel/preset-env-7.12.11"
       sources."@babel/preset-modules-0.1.4"
       sources."@babel/preset-typescript-7.12.7"
       sources."@babel/runtime-7.12.5"
       sources."@babel/template-7.12.7"
-      (sources."@babel/traverse-7.12.9" // {
+      (sources."@babel/traverse-7.12.12" // {
         dependencies = [
           sources."lodash-4.17.20"
         ];
       })
-      (sources."@babel/types-7.12.7" // {
+      (sources."@babel/types-7.12.12" // {
         dependencies = [
           sources."lodash-4.17.20"
         ];
       })
       sources."@expo/babel-preset-cli-0.2.18"
       sources."@expo/bunyan-4.0.0"
-      (sources."@expo/config-3.3.18" // {
+      (sources."@expo/config-3.3.22" // {
         dependencies = [
           sources."semver-7.3.4"
         ];
       })
-      (sources."@expo/config-plugins-1.0.7" // {
+      (sources."@expo/config-plugins-1.0.13" // {
         dependencies = [
           sources."slash-3.0.0"
           sources."uuid-3.4.0"
           sources."xcode-2.1.0"
         ];
       })
-      sources."@expo/config-types-40.0.0-beta.1"
-      (sources."@expo/configure-splash-screen-0.2.1" // {
+      sources."@expo/config-types-40.0.0-beta.2"
+      (sources."@expo/configure-splash-screen-0.3.2" // {
         dependencies = [
           sources."commander-5.1.0"
           sources."pngjs-5.0.0"
         ];
       })
-      (sources."@expo/dev-server-0.1.43" // {
+      (sources."@expo/dev-server-0.1.48" // {
         dependencies = [
           sources."body-parser-1.19.0"
           sources."bytes-3.1.0"
@@ -71516,7 +73756,7 @@ in
           sources."type-fest-0.12.0"
         ];
       })
-      sources."@expo/dev-tools-0.13.66"
+      sources."@expo/dev-tools-0.13.74"
       sources."@expo/eas-build-job-0.1.2"
       (sources."@expo/image-utils-0.3.9" // {
         dependencies = [
@@ -71526,10 +73766,11 @@ in
       })
       (sources."@expo/json-file-8.2.25" // {
         dependencies = [
+          sources."@babel/code-frame-7.10.4"
           sources."json5-1.0.1"
         ];
       })
-      sources."@expo/metro-config-0.1.43"
+      sources."@expo/metro-config-0.1.48"
       (sources."@expo/ngrok-2.4.3" // {
         dependencies = [
           sources."uuid-3.4.0"
@@ -71556,13 +73797,13 @@ in
           sources."semver-5.7.1"
         ];
       })
-      (sources."@expo/plist-0.0.10" // {
+      (sources."@expo/plist-0.0.11" // {
         dependencies = [
           sources."xmlbuilder-14.0.0"
         ];
       })
       sources."@expo/results-1.0.0"
-      (sources."@expo/schemer-1.3.22" // {
+      (sources."@expo/schemer-1.3.23" // {
         dependencies = [
           sources."ajv-5.5.2"
           sources."fast-deep-equal-1.1.0"
@@ -71576,14 +73817,14 @@ in
       sources."@expo/spawn-async-1.5.0"
       sources."@expo/traveling-fastlane-darwin-1.15.1"
       sources."@expo/traveling-fastlane-linux-1.15.1"
-      (sources."@expo/webpack-config-0.12.48" // {
+      (sources."@expo/webpack-config-0.12.52" // {
         dependencies = [
           sources."@babel/runtime-7.9.0"
           sources."is-wsl-2.2.0"
           sources."react-refresh-0.8.3"
         ];
       })
-      (sources."@expo/xdl-59.0.6" // {
+      (sources."@expo/xdl-59.0.14" // {
         dependencies = [
           sources."chownr-1.1.4"
           (sources."fs-minipass-1.2.7" // {
@@ -71637,7 +73878,7 @@ in
       })
       sources."@hapi/address-4.1.0"
       sources."@hapi/formula-2.0.0"
-      sources."@hapi/hoek-9.1.0"
+      sources."@hapi/hoek-9.1.1"
       sources."@hapi/joi-17.1.1"
       sources."@hapi/pinpoint-2.0.0"
       sources."@hapi/topo-5.0.0"
@@ -71682,9 +73923,9 @@ in
       sources."@jimp/tiff-0.12.1"
       sources."@jimp/types-0.12.1"
       sources."@jimp/utils-0.12.1"
-      sources."@nodelib/fs.scandir-2.1.3"
-      sources."@nodelib/fs.stat-2.0.3"
-      sources."@nodelib/fs.walk-1.2.4"
+      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.4" // {
         dependencies = [
@@ -71762,7 +74003,7 @@ in
       sources."@types/istanbul-reports-1.1.2"
       sources."@types/json-schema-7.0.6"
       sources."@types/keyv-3.1.1"
-      sources."@types/lodash-4.14.165"
+      sources."@types/lodash-4.14.167"
       sources."@types/minimatch-3.0.3"
       sources."@types/mkdirp-0.5.2"
       sources."@types/node-9.6.61"
@@ -71789,8 +74030,8 @@ in
           sources."source-map-0.7.3"
         ];
       })
-      sources."@types/yargs-15.0.11"
-      sources."@types/yargs-parser-15.0.0"
+      sources."@types/yargs-15.0.12"
+      sources."@types/yargs-parser-20.2.0"
       sources."@webassemblyjs/ast-1.9.0"
       sources."@webassemblyjs/floating-point-hex-parser-1.9.0"
       sources."@webassemblyjs/helper-api-error-1.9.0"
@@ -71976,7 +74217,7 @@ in
         ];
       })
       sources."browserify-zlib-0.2.0"
-      sources."browserslist-4.15.0"
+      sources."browserslist-4.16.0"
       sources."buffer-5.7.1"
       sources."buffer-equal-0.0.1"
       sources."buffer-from-1.1.1"
@@ -71994,7 +74235,7 @@ in
         ];
       })
       sources."cache-base-1.0.1"
-      sources."cacheable-lookup-5.0.3"
+      sources."cacheable-lookup-5.0.4"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
           sources."get-stream-5.2.0"
@@ -72015,7 +74256,7 @@ in
       })
       sources."camelcase-5.3.1"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001165"
+      sources."caniuse-lite-1.0.30001171"
       sources."capture-stack-trace-1.0.1"
       sources."caseless-0.12.0"
       (sources."chalk-4.1.0" // {
@@ -72129,17 +74370,23 @@ in
         dependencies = [
           sources."array-union-2.1.0"
           sources."find-cache-dir-3.3.1"
+          sources."find-up-4.1.0"
           sources."globby-11.0.1"
           sources."loader-utils-2.0.0"
+          sources."locate-path-5.0.0"
           sources."make-dir-3.1.0"
-          sources."p-limit-3.1.0"
+          (sources."p-locate-4.1.0" // {
+            dependencies = [
+              sources."p-limit-2.3.0"
+            ];
+          })
           sources."pkg-dir-4.2.0"
           sources."semver-6.3.0"
           sources."slash-3.0.0"
         ];
       })
-      sources."core-js-3.8.0"
-      (sources."core-js-compat-3.8.0" // {
+      sources."core-js-3.8.1"
+      (sources."core-js-compat-3.8.1" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -72165,7 +74412,7 @@ in
           sources."semver-6.3.0"
         ];
       })
-      (sources."css-select-1.2.0" // {
+      (sources."css-select-2.1.0" // {
         dependencies = [
           (sources."dom-serializer-0.2.2" // {
             dependencies = [
@@ -72173,7 +74420,7 @@ in
             ];
           })
           sources."domelementtype-1.3.1"
-          sources."domutils-1.5.1"
+          sources."domutils-1.7.0"
         ];
       })
       sources."css-select-base-adapter-0.1.1"
@@ -72182,7 +74429,7 @@ in
           sources."source-map-0.6.1"
         ];
       })
-      sources."css-what-2.1.3"
+      sources."css-what-3.4.2"
       sources."cssesc-3.0.0"
       sources."cssnano-4.1.10"
       sources."cssnano-preset-default-4.0.7"
@@ -72201,8 +74448,8 @@ in
       sources."dag-map-1.0.2"
       sources."dashdash-1.14.1"
       sources."dateformat-3.0.3"
-      sources."dayjs-1.9.7"
-      sources."debug-4.3.1"
+      sources."dayjs-1.9.8"
+      sources."debug-4.3.2"
       sources."debuglog-1.0.1"
       sources."decache-4.4.0"
       sources."decamelize-1.2.0"
@@ -72261,12 +74508,16 @@ in
       sources."dns-packet-1.3.1"
       sources."dns-txt-2.0.2"
       sources."dom-converter-0.2.0"
-      sources."dom-serializer-1.1.0"
+      (sources."dom-serializer-1.2.0" // {
+        dependencies = [
+          sources."domhandler-4.0.0"
+        ];
+      })
       sources."dom-walk-0.1.2"
       sources."domain-browser-1.2.0"
       sources."domelementtype-2.1.0"
       sources."domhandler-3.3.0"
-      (sources."domutils-2.4.3" // {
+      (sources."domutils-2.4.4" // {
         dependencies = [
           sources."domhandler-4.0.0"
         ];
@@ -72282,7 +74533,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.616"
+      sources."electron-to-chromium-1.3.633"
       (sources."elliptic-6.5.3" // {
         dependencies = [
           sources."bn.js-4.11.9"
@@ -72308,7 +74559,7 @@ in
       sources."envinfo-7.5.0"
       sources."eol-0.9.1"
       sources."err-code-1.1.2"
-      sources."errno-0.1.7"
+      sources."errno-0.1.8"
       (sources."error-ex-1.3.2" // {
         dependencies = [
           sources."is-arrayish-0.2.1"
@@ -72359,7 +74610,7 @@ in
           sources."ms-2.0.0"
         ];
       })
-      (sources."expo-pwa-0.0.54" // {
+      (sources."expo-pwa-0.0.58" // {
         dependencies = [
           sources."commander-2.20.0"
         ];
@@ -72386,7 +74637,7 @@ in
       sources."fast-deep-equal-3.1.3"
       sources."fast-glob-3.2.4"
       sources."fast-json-stable-stringify-2.1.0"
-      sources."fastq-1.9.0"
+      sources."fastq-1.10.0"
       sources."faye-websocket-0.10.0"
       sources."figgy-pudding-3.5.2"
       sources."figures-3.2.0"
@@ -72406,10 +74657,10 @@ in
         ];
       })
       sources."find-cache-dir-2.1.0"
-      sources."find-up-4.1.0"
+      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.0"
+      sources."follow-redirects-1.13.1"
       sources."for-in-1.0.2"
       sources."foreach-2.0.5"
       sources."forever-agent-0.6.1"
@@ -72465,7 +74716,7 @@ in
       })
       sources."gensync-1.0.0-beta.2"
       sources."get-caller-file-2.0.5"
-      sources."get-intrinsic-1.0.1"
+      sources."get-intrinsic-1.0.2"
       sources."get-own-enumerable-property-symbols-3.0.2"
       sources."get-port-3.2.0"
       sources."get-stream-4.1.0"
@@ -72483,7 +74734,7 @@ in
           sources."pify-2.3.0"
         ];
       })
-      (sources."got-11.8.0" // {
+      (sources."got-11.8.1" // {
         dependencies = [
           sources."@sindresorhus/is-4.0.0"
           sources."@szmarczak/http-timer-4.0.5"
@@ -72548,7 +74799,7 @@ in
       sources."hsl-regex-1.0.0"
       sources."hsla-regex-1.0.0"
       sources."html-comment-regex-1.1.2"
-      sources."html-entities-1.3.1"
+      sources."html-entities-1.4.0"
       (sources."html-loader-1.1.0" // {
         dependencies = [
           sources."loader-utils-2.0.0"
@@ -72610,7 +74861,7 @@ in
       sources."infer-owner-1.0.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."internal-ip-4.3.0"
       sources."invariant-2.2.4"
       sources."ip-1.1.5"
@@ -72622,7 +74873,7 @@ in
       sources."is-arrayish-0.3.2"
       sources."is-bigint-1.0.1"
       sources."is-binary-path-2.1.0"
-      sources."is-boolean-object-1.0.1"
+      sources."is-boolean-object-1.1.0"
       sources."is-buffer-1.1.6"
       sources."is-callable-1.2.2"
       sources."is-color-stop-1.1.0"
@@ -72644,7 +74895,7 @@ in
         ];
       })
       sources."is-lambda-1.0.1"
-      sources."is-map-2.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"
@@ -72672,12 +74923,16 @@ in
       sources."is-resolvable-1.1.0"
       sources."is-retry-allowed-1.2.0"
       sources."is-root-2.1.0"
-      sources."is-set-2.0.1"
+      sources."is-set-2.0.2"
       sources."is-stream-1.1.0"
       sources."is-string-1.0.5"
       sources."is-svg-3.0.0"
       sources."is-symbol-1.0.3"
-      sources."is-typed-array-1.1.3"
+      (sources."is-typed-array-1.1.4" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.1"
+        ];
+      })
       sources."is-typedarray-1.0.0"
       sources."is-valid-path-0.1.1"
       sources."is-weakmap-2.0.1"
@@ -72702,7 +74957,7 @@ in
       sources."join-component-1.1.0"
       sources."jpeg-js-0.4.2"
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.14.0"
+      sources."js-yaml-3.14.1"
       sources."jsbn-0.1.1"
       sources."jsesc-2.5.2"
       sources."json-buffer-3.0.0"
@@ -72742,7 +74997,7 @@ in
           sources."json5-1.0.1"
         ];
       })
-      sources."locate-path-5.0.0"
+      sources."locate-path-6.0.0"
       sources."lock-0.1.4"
       sources."lodash-4.17.15"
       sources."lodash._reinterpolate-3.0.0"
@@ -72779,7 +75034,7 @@ in
           sources."semver-5.7.1"
         ];
       })
-      (sources."make-fetch-happen-8.0.10" // {
+      (sources."make-fetch-happen-8.0.12" // {
         dependencies = [
           sources."minipass-3.1.3"
         ];
@@ -72810,9 +75065,9 @@ in
           sources."bn.js-4.11.9"
         ];
       })
-      sources."mime-2.4.6"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-2.4.7"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-fn-1.2.0"
       sources."mimic-response-1.0.1"
       sources."min-document-2.19.0"
@@ -73011,8 +75266,8 @@ in
       })
       sources."p-cancelable-1.1.0"
       sources."p-finally-1.0.0"
-      sources."p-limit-2.3.0"
-      sources."p-locate-4.1.0"
+      sources."p-limit-3.1.0"
+      sources."p-locate-5.0.0"
       sources."p-map-3.0.0"
       sources."p-retry-4.1.0"
       (sources."p-some-4.1.0" // {
@@ -73092,6 +75347,7 @@ in
         dependencies = [
           sources."find-up-3.0.0"
           sources."locate-path-3.0.0"
+          sources."p-limit-2.3.0"
           sources."p-locate-3.0.0"
           sources."path-exists-3.0.0"
         ];
@@ -73100,6 +75356,7 @@ in
         dependencies = [
           sources."find-up-3.0.0"
           sources."locate-path-3.0.0"
+          sources."p-limit-2.3.0"
           sources."p-locate-3.0.0"
           sources."path-exists-3.0.0"
         ];
@@ -73236,7 +75493,7 @@ in
       sources."postcss-unique-selectors-4.0.1"
       sources."postcss-value-parser-4.1.0"
       sources."prepend-http-1.0.4"
-      sources."pretty-bytes-5.4.1"
+      sources."pretty-bytes-5.5.0"
       (sources."pretty-error-2.1.2" // {
         dependencies = [
           sources."lodash-4.17.20"
@@ -73301,6 +75558,7 @@ in
       sources."rc-1.2.8"
       (sources."react-dev-utils-11.0.1" // {
         dependencies = [
+          sources."@babel/code-frame-7.10.4"
           sources."array-union-2.1.0"
           sources."browserslist-4.14.2"
           (sources."chalk-2.4.2" // {
@@ -73310,10 +75568,14 @@ in
           })
           sources."cross-spawn-7.0.3"
           sources."escape-string-regexp-2.0.0"
+          sources."find-up-4.1.0"
           sources."globby-11.0.1"
           sources."is-wsl-2.2.0"
           sources."loader-utils-2.0.0"
+          sources."locate-path-5.0.0"
           sources."open-7.3.0"
+          sources."p-limit-2.3.0"
+          sources."p-locate-4.1.0"
           sources."path-key-3.1.1"
           sources."shebang-command-2.0.0"
           sources."shebang-regex-3.0.0"
@@ -73354,7 +75616,7 @@ in
       sources."relateurl-0.2.7"
       sources."remove-trailing-separator-1.1.0"
       sources."remove-trailing-slash-0.1.1"
-      (sources."renderkid-2.0.4" // {
+      (sources."renderkid-2.0.5" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
           (sources."dom-serializer-0.2.2" // {
@@ -73455,11 +75717,7 @@ in
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."shell-quote-1.6.1"
-      (sources."side-channel-1.0.3" // {
-        dependencies = [
-          sources."es-abstract-1.18.0-next.1"
-        ];
-      })
+      sources."side-channel-1.0.4"
       sources."signal-exit-3.0.3"
       sources."simple-plist-1.1.1"
       sources."simple-swizzle-0.2.2"
@@ -73612,15 +75870,6 @@ in
       (sources."svgo-1.3.2" // {
         dependencies = [
           sources."chalk-2.4.2"
-          sources."css-select-2.1.0"
-          sources."css-what-3.4.2"
-          (sources."dom-serializer-0.2.2" // {
-            dependencies = [
-              sources."domelementtype-2.1.0"
-            ];
-          })
-          sources."domelementtype-1.3.1"
-          sources."domutils-1.7.0"
         ];
       })
       sources."symbol-observable-1.2.0"
@@ -73660,8 +75909,14 @@ in
       (sources."terser-webpack-plugin-3.1.0" // {
         dependencies = [
           sources."find-cache-dir-3.3.1"
+          sources."find-up-4.1.0"
+          sources."locate-path-5.0.0"
           sources."make-dir-3.1.0"
-          sources."p-limit-3.1.0"
+          (sources."p-locate-4.1.0" // {
+            dependencies = [
+              sources."p-limit-2.3.0"
+            ];
+          })
           sources."pkg-dir-4.2.0"
           sources."semver-6.3.0"
           sources."source-map-0.6.1"
@@ -73761,7 +76016,7 @@ in
       sources."util.promisify-1.0.0"
       sources."utila-0.4.0"
       sources."utils-merge-1.0.1"
-      sources."uuid-8.3.1"
+      sources."uuid-8.3.2"
       sources."valid-url-1.0.9"
       sources."validate-npm-package-name-3.0.0"
       sources."validator-10.5.0"
@@ -73824,7 +76079,7 @@ in
         ];
       })
       sources."webpack-deep-scope-plugin-1.6.0"
-      sources."webpack-dev-middleware-3.7.2"
+      sources."webpack-dev-middleware-3.7.3"
       (sources."webpack-dev-server-3.11.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -73875,6 +76130,7 @@ in
           sources."mime-1.6.0"
           sources."ms-2.0.0"
           sources."normalize-path-2.1.1"
+          sources."p-limit-2.3.0"
           sources."p-locate-3.0.0"
           sources."p-retry-3.0.1"
           sources."path-exists-3.0.0"
@@ -73943,10 +76199,14 @@ in
       sources."websocket-driver-0.6.5"
       sources."websocket-extensions-0.1.4"
       sources."which-1.3.1"
-      sources."which-boxed-primitive-1.0.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.2"
+      (sources."which-typed-array-1.1.4" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.1"
+        ];
+      })
       (sources."wide-align-1.1.3" // {
         dependencies = [
           sources."ansi-regex-3.0.0"
@@ -74013,7 +76273,14 @@ in
       sources."xtend-4.0.2"
       sources."y18n-4.0.1"
       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."p-limit-2.3.0"
+          sources."p-locate-4.1.0"
+        ];
+      })
       sources."yargs-parser-18.1.3"
       sources."yocto-queue-0.1.0"
       sources."zen-observable-0.8.15"
@@ -74126,8 +76393,8 @@ in
       sources."loud-rejection-1.6.0"
       sources."map-obj-1.0.1"
       sources."meow-3.7.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-fn-1.2.0"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
@@ -74233,12 +76500,12 @@ in
         ];
       })
       sources."@mrmlnc/readdir-enhanced-2.2.1"
-      sources."@nodelib/fs.scandir-2.1.3"
-      sources."@nodelib/fs.stat-2.0.3"
-      sources."@nodelib/fs.walk-1.2.4"
+      sources."@nodelib/fs.scandir-2.1.4"
+      sources."@nodelib/fs.stat-2.0.4"
+      sources."@nodelib/fs.walk-1.2.6"
       (sources."@oclif/command-1.8.0" // {
         dependencies = [
-          sources."@oclif/plugin-help-3.2.0"
+          sources."@oclif/plugin-help-3.2.1"
           sources."ansi-regex-3.0.0"
           sources."ansi-styles-3.2.1"
           sources."color-convert-1.9.3"
@@ -74344,7 +76611,7 @@ in
         ];
       })
       sources."clean-stack-3.0.1"
-      sources."cli-table-0.3.1"
+      sources."cli-table-0.3.4"
       (sources."cli-ux-4.9.3" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -74364,7 +76631,6 @@ in
       sources."collection-visit-1.0.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."colors-1.0.3"
       sources."combined-stream-1.0.8"
       sources."component-emitter-1.3.0"
       sources."concat-map-0.0.1"
@@ -74377,7 +76643,7 @@ in
         ];
       })
       sources."dashdash-1.14.1"
-      sources."debug-4.3.1"
+      sources."debug-4.3.2"
       sources."decode-uri-component-0.2.0"
       sources."decompress-response-3.3.0"
       sources."deep-is-0.1.3"
@@ -74433,7 +76699,7 @@ in
       sources."fast-glob-3.2.4"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
-      sources."fastq-1.9.0"
+      sources."fastq-1.10.0"
       sources."faunadb-git+https://github.com/fauna/faunadb-js.git#triage/bearer-to-basic"
       sources."fill-range-7.0.1"
       sources."fn-annotate-1.2.0"
@@ -74515,7 +76781,7 @@ in
       sources."indent-string-4.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."into-stream-3.1.0"
       sources."is-accessor-descriptor-1.0.0"
       sources."is-buffer-1.1.6"
@@ -74560,8 +76826,8 @@ in
       sources."map-visit-1.0.0"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.2"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       (sources."mixin-deep-1.3.2" // {
@@ -74776,6 +77042,842 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  firebase-tools = nodeEnv.buildNodePackage {
+    name = "firebase-tools";
+    packageName = "firebase-tools";
+    version = "9.1.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/firebase-tools/-/firebase-tools-9.1.0.tgz";
+      sha512 = "hTfxL2meJSl5WuwAS6bEJ5nay7tu3MNYb4ZL2KmPL7yLM3IeT+Qd2z1evHhW1VvbDXKR6RTwlBxzdWPs4l75kA==";
+    };
+    dependencies = [
+      sources."@apidevtools/json-schema-ref-parser-9.0.6"
+      sources."@dabh/diagnostics-2.0.2"
+      sources."@google-cloud/paginator-3.0.5"
+      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.7.0"
+      (sources."@grpc/grpc-js-1.1.8" // {
+        dependencies = [
+          sources."@grpc/proto-loader-0.6.0-pre9"
+          sources."@types/node-12.19.11"
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."@grpc/proto-loader-0.5.5"
+      sources."@jsdevtools/ono-7.1.3"
+      sources."@opentelemetry/api-0.11.0"
+      sources."@opentelemetry/context-base-0.11.0"
+      (sources."@opentelemetry/core-0.11.0" // {
+        dependencies = [
+          sources."semver-7.3.4"
+        ];
+      })
+      sources."@opentelemetry/resources-0.11.0"
+      sources."@opentelemetry/semantic-conventions-0.11.0"
+      sources."@opentelemetry/tracing-0.11.0"
+      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."@sindresorhus/is-0.14.0"
+      sources."@szmarczak/http-timer-1.1.2"
+      sources."@types/duplexify-3.6.0"
+      sources."@types/long-4.0.1"
+      sources."@types/node-14.14.19"
+      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."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"
+      sources."ansicolors-0.3.2"
+      sources."anymatch-3.1.1"
+      sources."aproba-1.2.0"
+      sources."archiver-3.1.1"
+      (sources."archiver-utils-2.1.0" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      (sources."are-we-there-yet-1.1.5" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      sources."argparse-1.0.10"
+      sources."array-flatten-1.1.1"
+      sources."arrify-2.0.1"
+      sources."as-array-2.0.0"
+      sources."asn1-0.2.4"
+      sources."assert-plus-1.0.0"
+      sources."async-2.6.3"
+      sources."asynckit-0.4.0"
+      sources."aws-sign2-0.7.0"
+      sources."aws4-1.11.0"
+      sources."balanced-match-1.0.0"
+      sources."base64-js-1.5.1"
+      (sources."basic-auth-2.0.1" // {
+        dependencies = [
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      sources."basic-auth-connect-1.0.0"
+      sources."bcrypt-pbkdf-1.0.2"
+      sources."big-integer-1.6.48"
+      sources."bignumber.js-9.0.1"
+      sources."binary-0.3.0"
+      sources."binary-extensions-2.1.0"
+      sources."bl-4.0.3"
+      sources."blakejs-1.1.0"
+      sources."bluebird-3.4.7"
+      (sources."body-parser-1.19.0" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      (sources."boxen-4.2.0" // {
+        dependencies = [
+          sources."chalk-3.0.0"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."brace-expansion-1.1.11"
+      sources."braces-3.0.2"
+      sources."buffer-5.7.1"
+      sources."buffer-crc32-0.2.13"
+      sources."buffer-equal-constant-time-1.0.1"
+      sources."buffer-indexof-polyfill-1.0.2"
+      sources."buffers-0.1.1"
+      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."call-me-maybe-1.0.1"
+      sources."camelcase-5.3.1"
+      sources."cardinal-2.1.1"
+      sources."caseless-0.12.0"
+      sources."chainsaw-0.1.0"
+      (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.4.3"
+      sources."chownr-2.0.0"
+      sources."ci-info-2.0.0"
+      sources."cjson-0.3.3"
+      sources."cli-boxes-2.2.1"
+      (sources."cli-color-1.4.0" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+        ];
+      })
+      sources."cli-cursor-2.1.0"
+      sources."cli-spinners-2.5.0"
+      sources."cli-table-0.3.4"
+      sources."cli-width-2.2.1"
+      sources."cliui-6.0.0"
+      sources."clone-1.0.4"
+      sources."clone-response-1.0.2"
+      sources."code-point-at-1.1.0"
+      (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.4"
+      sources."colors-1.4.0"
+      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-2.1.1" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      sources."compressible-2.0.18"
+      (sources."compression-1.7.4" // {
+        dependencies = [
+          sources."bytes-3.0.0"
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      sources."concat-map-0.0.1"
+      sources."configstore-5.0.1"
+      (sources."connect-3.7.0" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."console-control-strings-1.1.0"
+      (sources."content-disposition-0.5.3" // {
+        dependencies = [
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      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."crc-3.8.0"
+      sources."crc32-stream-3.0.1"
+      (sources."cross-env-5.2.1" // {
+        dependencies = [
+          sources."cross-spawn-6.0.5"
+        ];
+      })
+      (sources."cross-spawn-7.0.3" // {
+        dependencies = [
+          sources."path-key-3.1.1"
+          sources."shebang-command-2.0.0"
+          sources."shebang-regex-3.0.0"
+          sources."which-2.0.2"
+        ];
+      })
+      sources."crypto-random-string-2.0.0"
+      sources."csv-streamify-3.0.4"
+      sources."d-1.0.1"
+      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-freeze-0.0.1"
+      sources."deep-is-0.1.3"
+      sources."defaults-1.0.3"
+      sources."defer-to-connect-1.1.3"
+      sources."delayed-stream-1.0.0"
+      sources."delegates-1.0.0"
+      sources."depd-1.1.2"
+      sources."destroy-1.0.4"
+      sources."dot-prop-5.3.0"
+      sources."dotenv-6.2.0"
+      (sources."duplexer2-0.1.4" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      sources."duplexer3-0.1.4"
+      sources."duplexify-4.1.1"
+      sources."ecc-jsbn-0.1.2"
+      sources."ecdsa-sig-formatter-1.0.11"
+      sources."ee-first-1.1.1"
+      sources."emoji-regex-8.0.0"
+      sources."enabled-2.0.0"
+      sources."encodeurl-1.0.2"
+      sources."end-of-stream-1.4.4"
+      sources."env-paths-2.2.0"
+      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."escape-goat-2.1.1"
+      sources."escape-html-1.0.3"
+      sources."escape-string-regexp-1.0.5"
+      sources."esprima-4.0.1"
+      sources."etag-1.8.1"
+      sources."event-emitter-0.3.5"
+      sources."event-target-shim-5.0.1"
+      sources."events-listener-1.1.0"
+      (sources."exegesis-2.5.6" // {
+        dependencies = [
+          sources."semver-7.3.4"
+        ];
+      })
+      sources."exegesis-express-2.0.0"
+      sources."exit-code-1.0.2"
+      (sources."express-4.17.1" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      (sources."ext-1.4.0" // {
+        dependencies = [
+          sources."type-2.1.0"
+        ];
+      })
+      sources."extend-3.0.2"
+      sources."external-editor-3.1.0"
+      sources."extsprintf-1.3.0"
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."fast-safe-stringify-2.0.7"
+      sources."fast-text-encoding-1.0.3"
+      (sources."fast-url-parser-1.1.3" // {
+        dependencies = [
+          sources."punycode-1.4.1"
+        ];
+      })
+      sources."fecha-4.2.0"
+      sources."figures-2.0.0"
+      sources."filesize-3.6.1"
+      sources."fill-range-7.0.1"
+      (sources."finalhandler-1.1.2" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."find-up-4.1.0"
+      (sources."flat-arguments-1.0.2" // {
+        dependencies = [
+          (sources."as-array-1.0.0" // {
+            dependencies = [
+              sources."lodash.isarguments-2.4.1"
+              sources."lodash.isobject-2.4.1"
+            ];
+          })
+          sources."lodash.isobject-3.0.2"
+        ];
+      })
+      sources."fn.name-1.1.0"
+      sources."forever-agent-0.6.1"
+      sources."form-data-2.3.3"
+      sources."forwarded-0.1.2"
+      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-minipass-2.1.0"
+      sources."fs.realpath-1.0.0"
+      sources."fsevents-2.1.3"
+      (sources."fstream-1.0.12" // {
+        dependencies = [
+          sources."rimraf-2.7.1"
+        ];
+      })
+      (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.1.0"
+      sources."gcp-metadata-4.2.1"
+      sources."get-caller-file-2.0.5"
+      sources."get-stream-4.1.0"
+      sources."getpass-0.1.7"
+      sources."glob-7.1.6"
+      sources."glob-parent-5.1.1"
+      sources."glob-slash-1.0.0"
+      sources."glob-slasher-1.0.1"
+      sources."global-dirs-2.1.0"
+      sources."google-auth-library-6.1.3"
+      sources."google-gax-2.9.2"
+      sources."google-p12-pem-3.0.3"
+      sources."got-9.6.0"
+      sources."graceful-fs-4.2.4"
+      (sources."gtoken-5.1.0" // {
+        dependencies = [
+          sources."mime-2.4.7"
+        ];
+      })
+      sources."har-schema-2.0.0"
+      sources."har-validator-5.1.5"
+      (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"
+      sources."home-dir-1.0.0"
+      sources."http-cache-semantics-4.1.0"
+      (sources."http-errors-1.7.2" // {
+        dependencies = [
+          sources."inherits-2.0.3"
+        ];
+      })
+      sources."http-signature-1.2.0"
+      sources."https-proxy-agent-5.0.0"
+      sources."iconv-lite-0.4.24"
+      sources."ieee754-1.2.1"
+      sources."import-lazy-2.1.0"
+      sources."imurmurhash-0.1.4"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."ini-1.3.7"
+      (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-regex-4.2.0"
+      sources."ipaddr.js-1.9.1"
+      sources."is-arrayish-0.3.2"
+      sources."is-binary-path-2.1.0"
+      sources."is-ci-2.0.0"
+      sources."is-extglob-2.1.1"
+      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-glob-4.0.1"
+      sources."is-installed-globally-0.3.2"
+      sources."is-npm-4.0.0"
+      sources."is-number-7.0.0"
+      sources."is-obj-2.0.0"
+      sources."is-path-inside-3.0.2"
+      sources."is-promise-2.2.2"
+      sources."is-stream-2.0.0"
+      sources."is-stream-ended-0.1.4"
+      sources."is-typedarray-1.0.0"
+      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."isarray-1.0.0"
+      sources."isexe-2.0.0"
+      sources."isstream-0.1.2"
+      sources."jju-1.4.0"
+      sources."join-path-1.1.1"
+      sources."js-yaml-3.14.1"
+      sources."jsbn-0.1.1"
+      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-schema-0.2.3"
+      sources."json-schema-traverse-0.4.1"
+      sources."json-stringify-safe-5.0.1"
+      sources."jsonfile-2.4.0"
+      sources."jsonparse-1.3.1"
+      sources."jsonschema-1.4.0"
+      (sources."jsonwebtoken-8.5.1" // {
+        dependencies = [
+          sources."jwa-1.4.1"
+          sources."jws-3.2.2"
+        ];
+      })
+      sources."jsprim-1.4.1"
+      sources."jwa-2.0.0"
+      sources."jws-4.0.0"
+      sources."keyv-3.1.0"
+      sources."kuler-2.0.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."string_decoder-1.1.1"
+        ];
+      })
+      sources."leven-3.1.0"
+      sources."listenercount-1.0.1"
+      sources."locate-path-5.0.0"
+      sources."lodash-4.17.20"
+      sources."lodash._isnative-2.4.1"
+      sources."lodash._objecttypes-2.4.1"
+      sources."lodash._shimkeys-2.4.1"
+      sources."lodash.camelcase-4.3.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.isarguments-3.1.0"
+      sources."lodash.isboolean-3.0.3"
+      sources."lodash.isinteger-4.0.4"
+      sources."lodash.isnumber-3.0.3"
+      sources."lodash.isobject-2.4.1"
+      sources."lodash.isplainobject-4.0.6"
+      sources."lodash.isstring-4.0.1"
+      sources."lodash.keys-2.4.1"
+      sources."lodash.once-4.1.1"
+      sources."lodash.snakecase-4.1.1"
+      sources."lodash.toarray-4.4.0"
+      sources."lodash.union-4.6.0"
+      sources."lodash.values-2.4.1"
+      sources."log-symbols-2.2.0"
+      sources."logform-2.2.0"
+      sources."long-4.0.0"
+      sources."lowercase-keys-1.0.1"
+      sources."lru-cache-6.0.0"
+      sources."lru-queue-0.1.0"
+      (sources."make-dir-3.1.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."marked-0.7.0"
+      sources."marked-terminal-3.3.0"
+      sources."media-typer-0.3.0"
+      sources."memoizee-0.4.14"
+      sources."merge-descriptors-1.0.1"
+      sources."methods-1.1.2"
+      sources."mime-1.6.0"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
+      sources."mimic-fn-1.2.0"
+      sources."mimic-response-1.0.1"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      sources."minipass-3.1.3"
+      sources."minizlib-2.1.2"
+      sources."mkdirp-0.5.5"
+      (sources."morgan-1.10.0" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."depd-2.0.0"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."ms-2.1.2"
+      sources."mute-stream-0.0.7"
+      sources."nan-2.14.2"
+      (sources."nash-3.0.0" // {
+        dependencies = [
+          sources."async-1.5.2"
+        ];
+      })
+      sources."negotiator-0.6.2"
+      sources."next-tick-1.0.0"
+      sources."nice-try-1.0.5"
+      sources."node-emoji-1.10.0"
+      sources."node-fetch-2.6.1"
+      sources."node-forge-0.10.0"
+      (sources."node-gyp-7.1.2" // {
+        dependencies = [
+          sources."mkdirp-1.0.4"
+          sources."semver-7.3.4"
+          sources."tar-6.0.5"
+          sources."which-2.0.2"
+        ];
+      })
+      sources."nopt-5.0.0"
+      sources."normalize-path-3.0.0"
+      sources."normalize-url-4.5.0"
+      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."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."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-limit-2.3.0"
+      sources."p-locate-4.1.0"
+      sources."p-try-2.2.0"
+      (sources."package-json-6.5.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."parseurl-1.3.3"
+      sources."path-exists-4.0.0"
+      sources."path-is-absolute-1.0.1"
+      sources."path-key-2.0.1"
+      sources."path-to-regexp-0.1.7"
+      sources."performance-now-2.1.0"
+      sources."picomatch-2.2.2"
+      sources."plist-3.0.1"
+      (sources."portfinder-1.0.28" // {
+        dependencies = [
+          sources."debug-3.2.7"
+        ];
+      })
+      sources."prepend-http-2.0.0"
+      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.38"
+        ];
+      })
+      sources."proxy-addr-2.0.6"
+      sources."psl-1.8.0"
+      sources."pump-3.0.0"
+      sources."punycode-2.1.1"
+      sources."pupa-2.1.1"
+      sources."qs-6.7.0"
+      sources."range-parser-1.2.1"
+      sources."raw-body-2.4.0"
+      sources."rc-1.2.8"
+      sources."re2-1.15.9"
+      sources."readable-stream-3.6.0"
+      sources."readdirp-3.5.0"
+      sources."redeyed-2.1.1"
+      sources."registry-auth-token-4.2.1"
+      sources."registry-url-5.1.0"
+      (sources."request-2.88.2" // {
+        dependencies = [
+          sources."qs-6.5.2"
+        ];
+      })
+      sources."require-directory-2.1.1"
+      sources."require-main-filename-2.0.0"
+      sources."responselike-1.0.2"
+      sources."restore-cursor-2.0.0"
+      sources."retry-request-4.1.3"
+      sources."rimraf-3.0.2"
+      (sources."router-1.3.5" // {
+        dependencies = [
+          sources."array-flatten-3.0.0"
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+          sources."setprototypeof-1.2.0"
+        ];
+      })
+      sources."rsvp-4.8.5"
+      sources."run-async-2.4.1"
+      (sources."rxjs-6.6.3" // {
+        dependencies = [
+          sources."tslib-1.14.1"
+        ];
+      })
+      sources."safe-buffer-5.2.1"
+      sources."safer-buffer-2.1.2"
+      sources."semver-5.7.1"
+      (sources."semver-diff-3.1.1" // {
+        dependencies = [
+          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."serve-static-1.14.1"
+      sources."set-blocking-2.0.0"
+      sources."setimmediate-1.0.5"
+      sources."setprototypeof-1.1.1"
+      sources."shebang-command-1.2.0"
+      sources."shebang-regex-1.0.0"
+      sources."signal-exit-3.0.3"
+      sources."simple-swizzle-0.2.2"
+      sources."sprintf-js-1.0.3"
+      sources."sshpk-1.16.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-4.2.0"
+      sources."string_decoder-1.3.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."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."supports-color-5.5.0"
+      (sources."supports-hyperlinks-1.0.1" // {
+        dependencies = [
+          sources."has-flag-2.0.0"
+        ];
+      })
+      (sources."tar-4.4.13" // {
+        dependencies = [
+          sources."chownr-1.1.4"
+          sources."fs-minipass-1.2.7"
+          sources."minipass-2.9.0"
+          sources."minizlib-1.3.3"
+          sources."yallist-3.1.1"
+        ];
+      })
+      sources."tar-stream-2.2.0"
+      (sources."tcp-port-used-1.0.2" // {
+        dependencies = [
+          sources."debug-4.3.1"
+        ];
+      })
+      sources."term-size-2.2.1"
+      sources."text-hex-1.0.0"
+      sources."through-2.3.8"
+      (sources."through2-2.0.1" // {
+        dependencies = [
+          sources."process-nextick-args-1.0.7"
+          sources."readable-stream-2.0.6"
+          sources."string_decoder-0.10.31"
+        ];
+      })
+      sources."timers-ext-0.1.7"
+      sources."tmp-0.0.33"
+      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."toxic-1.0.1"
+      sources."traverse-0.3.9"
+      sources."triple-beam-1.3.0"
+      sources."tslib-2.0.3"
+      sources."tunnel-agent-0.6.0"
+      sources."tweetnacl-0.14.5"
+      (sources."tweetsodium-0.0.5" // {
+        dependencies = [
+          sources."tweetnacl-1.0.3"
+        ];
+      })
+      sources."type-1.2.0"
+      sources."type-fest-0.8.1"
+      sources."type-is-1.6.18"
+      sources."typedarray-to-buffer-3.1.5"
+      sources."unique-string-2.0.0"
+      sources."universal-analytics-0.4.23"
+      sources."universalify-0.1.2"
+      sources."unpipe-1.0.0"
+      (sources."unzipper-0.10.11" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      (sources."update-notifier-4.1.3" // {
+        dependencies = [
+          sources."chalk-3.0.0"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."uri-js-4.4.0"
+      sources."url-join-0.0.1"
+      sources."url-parse-lax-3.0.0"
+      sources."util-deprecate-1.0.2"
+      sources."utils-merge-1.0.1"
+      sources."uuid-3.4.0"
+      sources."valid-url-1.0.9"
+      sources."vary-1.1.2"
+      sources."verror-1.10.0"
+      sources."wcwidth-1.0.1"
+      sources."which-1.3.1"
+      sources."which-module-2.0.0"
+      (sources."wide-align-1.1.3" // {
+        dependencies = [
+          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" // {
+        dependencies = [
+          sources."async-3.2.0"
+        ];
+      })
+      (sources."winston-transport-4.4.0" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      sources."wrap-ansi-6.2.0"
+      sources."wrappy-1.0.2"
+      sources."write-file-atomic-3.0.3"
+      sources."ws-7.4.2"
+      sources."xdg-basedir-4.0.0"
+      sources."xmlbuilder-9.0.7"
+      sources."xmldom-0.1.31"
+      sources."xtend-4.0.2"
+      sources."y18n-4.0.1"
+      sources."yallist-4.0.0"
+      sources."yargs-15.4.1"
+      sources."yargs-parser-18.1.3"
+      sources."zip-stream-2.1.3"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Command-Line Interface for Firebase";
+      homepage = https://github.com/firebase/firebase-tools;
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   fixjson = nodeEnv.buildNodePackage {
     name = "fixjson";
     packageName = "fixjson";
@@ -74812,7 +77914,7 @@ in
       sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
       sources."y18n-5.0.5"
-      sources."yargs-16.1.1"
+      sources."yargs-16.2.0"
       sources."yargs-parser-20.2.4"
     ];
     buildInputs = globalBuildInputs;
@@ -74828,14 +77930,14 @@ in
   fkill-cli = nodeEnv.buildNodePackage {
     name = "fkill-cli";
     packageName = "fkill-cli";
-    version = "6.0.1";
+    version = "6.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/fkill-cli/-/fkill-cli-6.0.1.tgz";
-      sha512 = "eJdNdyHofekXmSGI76E2A4GBJ7FAvuAgLV7rAgL6uZXV9+ZKwNoBjt/2hxHWmDZZ9x0EEWM3wHb2b0J7UNGbBw==";
+      url = "https://registry.npmjs.org/fkill-cli/-/fkill-cli-6.1.0.tgz";
+      sha512 = "untVuHgEQjwTXQGiWcwMTi0Uks6ht9R5hb1mDT4AEQitZ/z8UrhvseQsGEC3kVEjfxQ6bdmCMaA/hKTZ5aQDrA==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.4"
-      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/code-frame-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
       (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
@@ -74856,7 +77958,7 @@ in
       sources."astral-regex-2.0.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."chalk-3.0.0"
+      sources."chalk-4.1.0"
       sources."chardet-0.7.0"
       sources."clean-stack-2.2.0"
       sources."cli-cursor-3.1.0"
@@ -74876,34 +77978,22 @@ in
       sources."error-ex-1.3.2"
       sources."esc-exit-2.0.2"
       sources."escape-string-regexp-1.0.5"
-      sources."execa-4.1.0"
+      sources."execa-5.0.0"
       sources."external-editor-3.1.0"
       sources."figures-3.2.0"
       sources."find-up-4.1.0"
-      (sources."fkill-7.0.1" // {
-        dependencies = [
-          sources."ps-list-7.2.0"
-        ];
-      })
+      sources."fkill-7.1.0"
       sources."function-bind-1.1.1"
-      sources."get-stream-5.2.0"
+      sources."get-stream-6.0.0"
       sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
-      sources."hosted-git-info-2.8.8"
-      sources."human-signals-1.1.1"
+      sources."hosted-git-info-3.0.7"
+      sources."human-signals-2.1.0"
       sources."iconv-lite-0.4.24"
       sources."indent-string-4.0.0"
-      (sources."inquirer-7.3.3" // {
-        dependencies = [
-          sources."chalk-4.1.0"
-        ];
-      })
-      (sources."inquirer-autocomplete-prompt-1.3.0" // {
-        dependencies = [
-          sources."chalk-4.1.0"
-        ];
-      })
+      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-fullwidth-code-point-3.0.0"
@@ -74916,11 +78006,11 @@ in
       sources."lines-and-columns-1.1.6"
       sources."locate-path-5.0.0"
       sources."lodash-4.17.20"
-      sources."lru-cache-4.1.5"
+      sources."lru-cache-6.0.0"
       sources."map-obj-4.1.0"
-      (sources."meow-6.1.1" // {
+      (sources."meow-8.1.0" // {
         dependencies = [
-          sources."type-fest-0.13.1"
+          sources."type-fest-0.18.1"
         ];
       })
       sources."merge-stream-2.0.0"
@@ -74932,7 +78022,7 @@ in
         ];
       })
       sources."mute-stream-0.0.8"
-      sources."normalize-package-data-2.5.0"
+      sources."normalize-package-data-3.0.0"
       sources."npm-run-path-4.0.1"
       sources."num-sort-2.1.0"
       sources."once-1.4.0"
@@ -74946,27 +78036,20 @@ in
       sources."path-exists-4.0.0"
       sources."path-key-3.1.1"
       sources."path-parse-1.0.6"
-      (sources."pid-from-port-1.1.3" // {
+      sources."pid-port-0.1.1"
+      (sources."process-exists-4.0.0" // {
         dependencies = [
-          sources."cross-spawn-5.1.0"
-          sources."execa-0.9.0"
-          sources."get-stream-3.0.0"
-          sources."is-stream-1.1.0"
-          sources."npm-run-path-2.0.2"
-          sources."p-finally-1.0.0"
-          sources."path-key-2.0.1"
-          sources."shebang-command-1.2.0"
-          sources."shebang-regex-1.0.0"
-          sources."which-1.3.1"
+          sources."ps-list-6.3.0"
         ];
       })
-      sources."process-exists-4.0.0"
-      sources."ps-list-6.3.0"
-      sources."pseudomap-1.0.2"
+      sources."ps-list-7.2.0"
       sources."pump-3.0.0"
       sources."quick-lru-4.0.1"
       (sources."read-pkg-5.2.0" // {
         dependencies = [
+          sources."hosted-git-info-2.8.8"
+          sources."normalize-package-data-2.5.0"
+          sources."semver-5.7.1"
           sources."type-fest-0.6.0"
         ];
       })
@@ -74981,7 +78064,7 @@ in
       sources."run-async-2.4.1"
       sources."rxjs-6.6.3"
       sources."safer-buffer-2.1.2"
-      sources."semver-5.7.1"
+      sources."semver-7.3.4"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-3.0.3"
@@ -74992,13 +78075,14 @@ in
       sources."spdx-license-ids-3.0.7"
       sources."string-width-4.2.0"
       sources."strip-ansi-6.0.0"
-      sources."strip-eof-1.0.0"
       sources."strip-final-newline-2.0.0"
       sources."strip-indent-3.0.0"
       sources."supports-color-7.2.0"
       (sources."taskkill-3.1.0" // {
         dependencies = [
           sources."execa-3.4.0"
+          sources."get-stream-5.2.0"
+          sources."human-signals-1.1.1"
         ];
       })
       sources."through-2.3.8"
@@ -75009,8 +78093,8 @@ in
       sources."validate-npm-package-license-3.0.4"
       sources."which-2.0.2"
       sources."wrappy-1.0.2"
-      sources."yallist-2.1.2"
-      sources."yargs-parser-18.1.3"
+      sources."yallist-4.0.0"
+      sources."yargs-parser-20.2.4"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -75025,10 +78109,10 @@ in
   flood = nodeEnv.buildNodePackage {
     name = "flood";
     packageName = "flood";
-    version = "4.3.0";
+    version = "4.3.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/flood/-/flood-4.3.0.tgz";
-      sha512 = "+SgygDdGTnKaZA2N0VzaUKVqAV8S4KrisdL9+DtIWweJwP/mYQ7WIhIJVMiJWbyYjtPTGoUqvxYqEP/QiFgfNw==";
+      url = "https://registry.npmjs.org/flood/-/flood-4.3.1.tgz";
+      sha512 = "dq1ModlLpq8eJGJ3oqKLam+HvHfUvcFCcDb464rdzVHOERXeKzPvjMBynXgED9UZxutEoXQGd32Vyoehnodd4Q==";
     };
     dependencies = [
       sources."async-2.6.3"
@@ -75039,7 +78123,7 @@ in
       sources."concat-map-0.0.1"
       sources."fd-slicer-1.1.0"
       sources."fs.realpath-1.0.0"
-      sources."geoip-country-4.0.45"
+      sources."geoip-country-4.0.49"
       sources."glob-7.1.6"
       sources."iconv-lite-0.5.2"
       sources."inflight-1.0.6"
@@ -75213,7 +78297,7 @@ in
       sources."fs.realpath-1.0.0"
       sources."fsevents-1.2.13"
       sources."function-bind-1.1.1"
-      sources."get-intrinsic-1.0.1"
+      sources."get-intrinsic-1.0.2"
       sources."get-value-2.0.6"
       sources."glob-7.1.6"
       (sources."glob-parent-3.1.0" // {
@@ -75233,7 +78317,7 @@ in
       sources."i-0.3.6"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."invert-kv-1.0.0"
       sources."is-accessor-descriptor-1.0.0"
       sources."is-arguments-1.1.0"
@@ -75542,7 +78626,7 @@ in
     };
     dependencies = [
       sources."async-2.6.3"
-      sources."debug-4.3.1"
+      sources."debug-4.3.2"
       sources."lodash-4.17.20"
       sources."lodash.groupby-4.6.0"
       sources."microee-0.0.6"
@@ -75571,10 +78655,10 @@ in
     };
     dependencies = [
       sources."asyncmemo-1.0.0"
-      sources."chloride-2.3.0"
+      sources."chloride-2.4.0"
       sources."chloride-test-1.2.4"
       sources."commander-2.20.3"
-      sources."debug-4.3.1"
+      sources."debug-4.3.2"
       sources."deep-extend-0.6.0"
       sources."diff-3.5.0"
       sources."discontinuous-range-1.0.0"
@@ -75590,10 +78674,9 @@ in
       sources."highlight.js-9.18.5"
       sources."increment-buffer-1.0.1"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."ip-1.1.5"
       sources."is-canonical-base64-1.1.1"
-      sources."is-electron-2.2.0"
       sources."is-my-ip-valid-1.0.0"
       sources."is-my-json-valid-2.20.5"
       sources."is-property-1.0.2"
@@ -75607,19 +78690,19 @@ in
       sources."lodash.get-4.4.2"
       sources."looper-4.0.0"
       sources."lrucache-1.0.3"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."moment-2.29.1"
       sources."moo-0.5.1"
       sources."ms-2.1.2"
       sources."multicb-1.2.2"
-      sources."multiserver-3.6.0"
+      sources."multiserver-3.7.0"
       sources."multiserver-address-1.0.1"
       sources."multiserver-scopes-1.0.0"
       sources."muxrpc-6.5.1"
-      sources."nearley-2.20.0"
+      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"
@@ -75683,7 +78766,7 @@ in
       sources."safe-buffer-5.2.1"
       sources."secret-handshake-1.1.20"
       sources."semver-5.7.1"
-      sources."separator-escape-0.0.0"
+      sources."separator-escape-0.0.1"
       sources."sha.js-2.4.5"
       sources."smart-buffer-4.1.0"
       sources."socks-2.5.1"
@@ -75767,14 +78850,14 @@ in
   gitmoji-cli = nodeEnv.buildNodePackage {
     name = "gitmoji-cli";
     packageName = "gitmoji-cli";
-    version = "3.2.12";
+    version = "3.2.18";
     src = fetchurl {
-      url = "https://registry.npmjs.org/gitmoji-cli/-/gitmoji-cli-3.2.12.tgz";
-      sha512 = "ZL27e8s3lkkrKrGCCQDlwIGnLOihrrehDI1jriWaU+UaVME1IYCtOiYbLp59iITK2s8Ak7e0LSSCyO08bRLAvQ==";
+      url = "https://registry.npmjs.org/gitmoji-cli/-/gitmoji-cli-3.2.18.tgz";
+      sha512 = "2H4Y6kXvYRBdh42FUz8gaLkQ5AvtYYBXRgRElXjX/st4QhG+bgHdnCFGYoTbrVc2uA2vS63HtUS8AJ7SNE6Rew==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.4"
-      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/code-frame-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
       (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
@@ -75804,14 +78887,18 @@ in
       sources."ansi-styles-4.3.0"
       sources."arrify-1.0.1"
       sources."atomically-1.7.0"
+      sources."base64-js-1.5.1"
+      sources."bl-4.0.3"
       (sources."boxen-4.2.0" // {
         dependencies = [
           sources."chalk-3.0.0"
           sources."type-fest-0.8.1"
         ];
       })
+      sources."buffer-5.7.1"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
+          sources."get-stream-5.2.0"
           sources."lowercase-keys-2.0.0"
         ];
       })
@@ -75851,16 +78938,16 @@ in
       sources."error-ex-1.3.2"
       sources."escape-goat-2.1.1"
       sources."escape-string-regexp-1.0.5"
-      sources."execa-4.1.0"
+      sources."execa-5.0.0"
       sources."external-editor-3.1.0"
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."figures-3.2.0"
       sources."find-up-3.0.0"
       sources."function-bind-1.1.1"
-      sources."fuse.js-6.4.3"
-      sources."get-stream-5.2.0"
-      sources."global-dirs-2.0.1"
+      sources."fuse.js-6.4.5"
+      sources."get-stream-6.0.0"
+      sources."global-dirs-2.1.0"
       (sources."got-9.6.0" // {
         dependencies = [
           sources."get-stream-4.1.0"
@@ -75871,14 +78958,16 @@ in
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
       sources."has-yarn-2.1.0"
-      sources."hosted-git-info-2.8.8"
+      sources."hosted-git-info-3.0.7"
       sources."http-cache-semantics-4.1.0"
-      sources."human-signals-1.1.1"
+      sources."human-signals-2.1.0"
       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."ini-1.3.5"
+      sources."inherits-2.0.4"
+      sources."ini-1.3.7"
       sources."inquirer-7.3.3"
       sources."inquirer-autocomplete-prompt-1.3.0"
       sources."is-arrayish-0.2.1"
@@ -75887,7 +78976,7 @@ in
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-installed-globally-0.3.2"
       sources."is-interactive-1.0.0"
-      sources."is-npm-4.0.0"
+      sources."is-npm-5.0.0"
       sources."is-obj-2.0.0"
       sources."is-path-inside-3.0.2"
       sources."is-plain-obj-1.1.0"
@@ -75919,9 +79008,9 @@ in
         ];
       })
       sources."map-obj-4.1.0"
-      (sources."meow-7.1.1" // {
+      (sources."meow-8.1.0" // {
         dependencies = [
-          sources."type-fest-0.13.1"
+          sources."type-fest-0.18.1"
         ];
       })
       sources."merge-stream-2.0.0"
@@ -75932,11 +79021,7 @@ in
       sources."minimist-options-4.1.0"
       sources."mute-stream-0.0.8"
       sources."node-fetch-2.6.1"
-      (sources."normalize-package-data-2.5.0" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
+      sources."normalize-package-data-3.0.0"
       sources."normalize-url-4.5.0"
       sources."npm-run-path-4.0.1"
       sources."once-1.4.0"
@@ -75945,7 +79030,7 @@ in
           sources."mimic-fn-2.1.0"
         ];
       })
-      sources."ora-5.1.0"
+      sources."ora-5.2.0"
       sources."os-tmpdir-1.0.2"
       sources."p-cancelable-1.1.0"
       sources."p-limit-2.3.0"
@@ -75969,6 +79054,9 @@ in
       sources."rc-1.2.8"
       (sources."read-pkg-5.2.0" // {
         dependencies = [
+          sources."hosted-git-info-2.8.8"
+          sources."normalize-package-data-2.5.0"
+          sources."semver-5.7.1"
           sources."type-fest-0.6.0"
         ];
       })
@@ -75980,6 +79068,7 @@ in
           sources."type-fest-0.8.1"
         ];
       })
+      sources."readable-stream-3.6.0"
       sources."redent-3.0.0"
       sources."registry-auth-token-4.2.1"
       sources."registry-url-5.1.0"
@@ -75988,6 +79077,7 @@ in
       sources."restore-cursor-3.1.0"
       sources."run-async-2.4.1"
       sources."rxjs-6.6.3"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."semver-7.3.4"
       (sources."semver-diff-3.1.1" // {
@@ -76003,6 +79093,7 @@ in
       sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.7"
       sources."string-width-4.2.0"
+      sources."string_decoder-1.3.0"
       sources."strip-ansi-6.0.0"
       sources."strip-final-newline-2.0.0"
       sources."strip-indent-3.0.0"
@@ -76017,13 +79108,10 @@ in
       sources."type-fest-0.11.0"
       sources."typedarray-to-buffer-3.1.5"
       sources."unique-string-2.0.0"
-      (sources."update-notifier-4.1.3" // {
-        dependencies = [
-          sources."chalk-3.0.0"
-        ];
-      })
+      sources."update-notifier-5.0.1"
       sources."uri-js-4.4.0"
       sources."url-parse-lax-3.0.0"
+      sources."util-deprecate-1.0.2"
       sources."validate-npm-package-license-3.0.4"
       sources."wcwidth-1.0.1"
       sources."which-2.0.2"
@@ -76032,7 +79120,7 @@ in
       sources."write-file-atomic-3.0.3"
       sources."xdg-basedir-4.0.0"
       sources."yallist-4.0.0"
-      sources."yargs-parser-18.1.3"
+      sources."yargs-parser-20.2.4"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -76054,8 +79142,8 @@ in
     };
     dependencies = [
       sources."@ardatan/aggregate-error-0.0.6"
-      sources."@babel/code-frame-7.10.4"
-      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/code-frame-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
       (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
@@ -76071,39 +79159,39 @@ in
       sources."@graphql-cli/init-4.1.0"
       (sources."@graphql-tools/batch-execute-7.0.0" // {
         dependencies = [
-          sources."@graphql-tools/utils-7.1.4"
+          sources."@graphql-tools/utils-7.2.3"
         ];
       })
-      (sources."@graphql-tools/delegate-7.0.7" // {
+      (sources."@graphql-tools/delegate-7.0.8" // {
         dependencies = [
-          sources."@graphql-tools/utils-7.1.4"
+          sources."@graphql-tools/utils-7.2.3"
         ];
       })
       (sources."@graphql-tools/graphql-file-loader-6.2.6" // {
         dependencies = [
-          sources."@graphql-tools/utils-7.1.4"
+          sources."@graphql-tools/utils-7.2.3"
         ];
       })
       sources."@graphql-tools/import-6.2.5"
       (sources."@graphql-tools/json-file-loader-6.2.6" // {
         dependencies = [
-          sources."@graphql-tools/utils-7.1.4"
+          sources."@graphql-tools/utils-7.2.3"
         ];
       })
       sources."@graphql-tools/load-6.2.4"
       (sources."@graphql-tools/merge-6.2.6" // {
         dependencies = [
-          sources."@graphql-tools/utils-7.1.4"
+          sources."@graphql-tools/utils-7.2.3"
         ];
       })
       (sources."@graphql-tools/schema-7.1.2" // {
         dependencies = [
-          sources."@graphql-tools/utils-7.1.4"
+          sources."@graphql-tools/utils-7.2.3"
         ];
       })
-      (sources."@graphql-tools/url-loader-6.5.0" // {
+      (sources."@graphql-tools/url-loader-6.7.1" // {
         dependencies = [
-          sources."@graphql-tools/utils-7.1.4"
+          sources."@graphql-tools/utils-7.2.3"
         ];
       })
       (sources."@graphql-tools/utils-6.2.4" // {
@@ -76115,19 +79203,19 @@ in
           })
         ];
       })
-      (sources."@graphql-tools/wrap-7.0.4" // {
+      (sources."@graphql-tools/wrap-7.0.5" // {
         dependencies = [
-          sources."@graphql-tools/utils-7.1.4"
+          sources."@graphql-tools/utils-7.2.3"
         ];
       })
       sources."@kwsites/file-exists-1.1.1"
       sources."@kwsites/promise-deferred-1.1.1"
-      sources."@nodelib/fs.scandir-2.1.3"
-      sources."@nodelib/fs.stat-2.0.3"
-      sources."@nodelib/fs.walk-1.2.4"
+      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.10"
+      sources."@types/node-14.14.19"
       sources."@types/parse-json-4.0.0"
       sources."@types/websocket-1.0.1"
       sources."aggregate-error-3.1.0"
@@ -76207,7 +79295,7 @@ in
       sources."cross-spawn-6.0.5"
       sources."dashdash-1.14.1"
       sources."dataloader-2.0.0"
-      sources."debug-4.3.1"
+      sources."debug-4.3.2"
       sources."decompress-response-3.3.0"
       sources."deep-equal-2.0.5"
       sources."deep-extend-0.6.0"
@@ -76230,6 +79318,7 @@ in
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
+      sources."eventsource-1.0.7"
       sources."execa-1.0.0"
       sources."extend-3.0.2"
       (sources."external-editor-3.1.0" // {
@@ -76243,7 +79332,7 @@ in
       sources."fast-glob-3.2.4"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-safe-stringify-2.0.7"
-      sources."fastq-1.9.0"
+      sources."fastq-1.10.0"
       sources."figlet-1.5.0"
       sources."figures-3.2.0"
       sources."fill-range-7.0.1"
@@ -76259,7 +79348,7 @@ in
       sources."fullname-4.0.1"
       sources."function-bind-1.1.1"
       sources."get-caller-file-2.0.5"
-      sources."get-intrinsic-1.0.1"
+      sources."get-intrinsic-1.0.2"
       sources."get-stream-4.1.0"
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
@@ -76280,7 +79369,7 @@ in
       sources."graphql-subscriptions-1.1.0"
       sources."graphql-type-json-0.3.2"
       sources."graphql-upload-11.0.0"
-      sources."graphql-ws-2.0.0"
+      sources."graphql-ws-3.1.0"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-1.0.3"
@@ -76293,7 +79382,7 @@ in
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
       sources."ignore-5.1.8"
-      (sources."import-fresh-3.2.2" // {
+      (sources."import-fresh-3.3.0" // {
         dependencies = [
           sources."resolve-from-4.0.0"
         ];
@@ -76302,7 +79391,7 @@ in
       sources."indent-string-4.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       (sources."inquirer-7.3.3" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
@@ -76316,7 +79405,7 @@ in
       sources."is-arguments-1.1.0"
       sources."is-arrayish-0.2.1"
       sources."is-bigint-1.0.1"
-      sources."is-boolean-object-1.0.1"
+      sources."is-boolean-object-1.1.0"
       sources."is-callable-1.2.2"
       sources."is-date-object-1.0.2"
       sources."is-docker-2.1.1"
@@ -76324,17 +79413,21 @@ in
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
       sources."is-interactive-1.0.0"
-      sources."is-map-2.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-promise-4.0.0"
       sources."is-regex-1.1.1"
-      sources."is-set-2.0.1"
+      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-typed-array-1.1.3"
+      (sources."is-typed-array-1.1.4" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.1"
+        ];
+      })
       sources."is-typedarray-1.0.0"
       sources."is-weakmap-2.0.1"
       sources."is-weakset-2.0.1"
@@ -76391,8 +79484,8 @@ in
       })
       sources."merge2-1.4.1"
       sources."micromatch-4.0.2"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-fn-1.2.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
@@ -76419,7 +79512,7 @@ in
       sources."oas-linter-3.2.1"
       (sources."oas-resolver-2.5.3" // {
         dependencies = [
-          sources."yargs-16.1.1"
+          sources."yargs-16.2.0"
         ];
       })
       sources."oas-schema-walker-1.1.5"
@@ -76445,6 +79538,7 @@ 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.0.0"
@@ -76479,6 +79573,7 @@ in
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
       sources."qs-6.5.2"
+      sources."querystringify-2.2.0"
       sources."rc-1.2.8"
       sources."reftools-1.1.7"
       sources."regexp.prototype.flags-1.3.0"
@@ -76487,6 +79582,7 @@ 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"
@@ -76511,15 +79607,12 @@ in
       sources."should-type-1.4.0"
       sources."should-type-adaptors-1.1.0"
       sources."should-util-1.0.1"
-      (sources."side-channel-1.0.3" // {
-        dependencies = [
-          sources."es-abstract-1.18.0-next.1"
-        ];
-      })
+      sources."side-channel-1.0.4"
       sources."signal-exit-3.0.3"
       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"
@@ -76538,7 +79631,7 @@ in
       sources."supports-color-7.2.0"
       (sources."swagger2openapi-7.0.4" // {
         dependencies = [
-          sources."yargs-16.1.1"
+          sources."yargs-16.2.0"
         ];
       })
       sources."sync-fetch-0.3.0"
@@ -76556,15 +79649,20 @@ in
       sources."universalify-1.0.0"
       sources."unixify-1.0.0"
       sources."uri-js-4.4.0"
+      sources."url-parse-1.4.7"
       sources."url-parse-lax-3.0.0"
       sources."uuid-3.4.0"
       sources."valid-url-1.0.9"
       sources."verror-1.10.0"
       sources."wcwidth-1.0.1"
       sources."which-1.3.1"
-      sources."which-boxed-primitive-1.0.1"
+      sources."which-boxed-primitive-1.0.2"
       sources."which-collection-1.0.1"
-      sources."which-typed-array-1.1.2"
+      (sources."which-typed-array-1.1.4" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.1"
+        ];
+      })
       (sources."wrap-ansi-7.0.0" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
@@ -76572,7 +79670,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-7.4.0"
+      sources."ws-7.4.1"
       sources."y18n-5.0.5"
       sources."yallist-4.0.0"
       sources."yaml-1.10.0"
@@ -76697,7 +79795,7 @@ in
         ];
       })
       sources."homedir-polyfill-1.0.3"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."interpret-1.1.0"
       sources."is-absolute-1.0.0"
       sources."is-accessor-descriptor-1.0.0"
@@ -76923,10 +80021,10 @@ in
   gtop = nodeEnv.buildNodePackage {
     name = "gtop";
     packageName = "gtop";
-    version = "1.0.2";
+    version = "1.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/gtop/-/gtop-1.0.2.tgz";
-      sha512 = "Dn/8Kt57CsFLHd9vJIqWuhzXETpm+J86tD444rOz04uUu0kQBUTEBXmwu7zOVntb+TRr4EuyRxBo2tecJAPFmA==";
+      url = "https://registry.npmjs.org/gtop/-/gtop-1.1.0.tgz";
+      sha512 = "WA8W0HxEsU9gGwpJDBRVv3l8DLUlxun5242vJw7kzv8CeQ29QUTYDfis5wMGwTOAU+curXHLHehFRR/IZflvbQ==";
     };
     dependencies = [
       sources."abbrev-1.1.1"
@@ -76942,13 +80040,22 @@ in
       sources."cardinal-2.1.1"
       sources."chalk-1.1.3"
       sources."charm-0.1.2"
-      sources."cli-table-0.3.1"
+      (sources."cli-table-0.3.4" // {
+        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."has-flag-3.0.0"
+          sources."supports-color-5.5.0"
+        ];
+      })
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."colors-1.0.3"
       sources."core-util-is-1.0.2"
       sources."drawille-blessed-contrib-1.0.0"
       sources."drawille-canvas-blessed-contrib-0.1.3"
+      sources."emoji-regex-8.0.0"
       sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
       (sources."event-stream-0.9.8" // {
@@ -76961,6 +80068,7 @@ in
       sources."has-flag-4.0.0"
       sources."here-0.0.2"
       sources."inherits-2.0.4"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."isarray-0.0.1"
       sources."lodash-4.17.20"
       sources."lodash.toarray-4.4.0"
@@ -76984,6 +80092,12 @@ in
       sources."redeyed-2.1.1"
       sources."sax-1.2.4"
       sources."sparkline-0.1.2"
+      (sources."string-width-4.2.0" // {
+        dependencies = [
+          sources."ansi-regex-5.0.0"
+          sources."strip-ansi-6.0.0"
+        ];
+      })
       sources."string_decoder-0.10.31"
       sources."strip-ansi-3.0.1"
       sources."supports-color-2.0.0"
@@ -76992,7 +80106,7 @@ in
           sources."supports-color-7.2.0"
         ];
       })
-      sources."systeminformation-4.30.11"
+      sources."systeminformation-4.33.5"
       sources."term-canvas-0.0.5"
       sources."type-fest-0.11.0"
       sources."wordwrap-0.0.3"
@@ -77190,7 +80304,7 @@ in
       sources."fsevents-1.2.13"
       sources."function-bind-1.1.1"
       sources."get-caller-file-1.0.3"
-      sources."get-intrinsic-1.0.1"
+      sources."get-intrinsic-1.0.2"
       sources."get-value-2.0.6"
       sources."glob-7.1.6"
       (sources."glob-parent-3.1.0" // {
@@ -77218,7 +80332,7 @@ in
       sources."hosted-git-info-2.8.8"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."interpret-1.4.0"
       sources."invert-kv-1.0.0"
       sources."is-absolute-1.0.0"
@@ -77590,7 +80704,7 @@ in
       sources."fragment-cache-0.2.1"
       sources."function-bind-1.1.1"
       sources."get-caller-file-1.0.3"
-      sources."get-intrinsic-1.0.1"
+      sources."get-intrinsic-1.0.2"
       sources."get-value-2.0.6"
       sources."global-modules-1.0.0"
       sources."global-prefix-1.0.2"
@@ -77608,7 +80722,7 @@ in
       sources."homedir-polyfill-1.0.3"
       sources."hosted-git-info-2.8.8"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."interpret-1.4.0"
       sources."invert-kv-1.0.0"
       sources."is-absolute-1.0.0"
@@ -77869,7 +80983,7 @@ in
       sources."param-case-2.1.1"
       sources."relateurl-0.2.7"
       sources."source-map-0.6.1"
-      sources."uglify-js-3.12.1"
+      sources."uglify-js-3.12.4"
       sources."upper-case-1.1.3"
     ];
     buildInputs = globalBuildInputs;
@@ -77940,8 +81054,8 @@ in
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsprim-1.4.1"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."minimatch-3.0.4"
       sources."oauth-sign-0.9.0"
       sources."once-1.4.0"
@@ -77992,14 +81106,14 @@ in
       sources."debug-3.2.7"
       sources."ecstatic-3.3.2"
       sources."eventemitter3-4.0.7"
-      sources."follow-redirects-1.13.0"
+      sources."follow-redirects-1.13.1"
       sources."he-1.2.0"
       sources."http-proxy-1.18.1"
       sources."lodash-4.17.20"
       sources."mime-1.6.0"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
-      sources."ms-2.1.2"
+      sources."ms-2.1.3"
       sources."opener-1.5.2"
       sources."portfinder-1.0.28"
       sources."qs-6.9.4"
@@ -78180,6 +81294,97 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  ijavascript = nodeEnv.buildNodePackage {
+    name = "ijavascript";
+    packageName = "ijavascript";
+    version = "5.2.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/ijavascript/-/ijavascript-5.2.0.tgz";
+      sha512 = "MIV3R9d2o9uucTmNH5IU5bvXcevljsOrsH7Sv3rmf/uoXjl/iXb8hx4ZnymBpdt48f7U2m0iKmpWlQzxjthtjw==";
+    };
+    dependencies = [
+      sources."ansi-regex-2.1.1"
+      sources."aproba-1.2.0"
+      sources."are-we-there-yet-1.1.5"
+      sources."base64-js-1.5.1"
+      (sources."bl-4.0.3" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+        ];
+      })
+      sources."buffer-5.7.1"
+      sources."chownr-1.1.4"
+      sources."code-point-at-1.1.0"
+      sources."console-control-strings-1.1.0"
+      sources."core-util-is-1.0.2"
+      sources."decompress-response-4.2.1"
+      sources."deep-extend-0.6.0"
+      sources."delegates-1.0.0"
+      sources."detect-libc-1.0.3"
+      sources."end-of-stream-1.4.4"
+      sources."expand-template-2.0.3"
+      sources."fs-constants-1.0.0"
+      sources."gauge-2.7.4"
+      sources."github-from-package-0.0.0"
+      sources."has-unicode-2.0.1"
+      sources."ieee754-1.2.1"
+      sources."inherits-2.0.4"
+      sources."ini-1.3.8"
+      sources."is-fullwidth-code-point-1.0.0"
+      sources."isarray-1.0.0"
+      sources."jmp-2.0.0"
+      sources."jp-kernel-2.0.0"
+      sources."mimic-response-2.1.0"
+      sources."minimist-1.2.5"
+      sources."mkdirp-classic-0.5.3"
+      sources."nan-2.14.2"
+      sources."napi-build-utils-1.0.2"
+      sources."nel-1.2.0"
+      sources."node-abi-2.19.3"
+      sources."noop-logger-0.1.1"
+      sources."npmlog-4.1.2"
+      sources."number-is-nan-1.0.1"
+      sources."object-assign-4.1.1"
+      sources."once-1.4.0"
+      sources."prebuild-install-5.3.6"
+      sources."process-nextick-args-2.0.1"
+      sources."pump-3.0.0"
+      sources."rc-1.2.8"
+      sources."readable-stream-2.3.7"
+      sources."safe-buffer-5.1.2"
+      sources."semver-5.7.1"
+      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."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-fs-2.1.1"
+      (sources."tar-stream-2.2.0" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+        ];
+      })
+      sources."tunnel-agent-0.6.0"
+      sources."util-deprecate-1.0.2"
+      sources."uuid-3.4.0"
+      sources."which-pm-runs-1.0.0"
+      sources."wide-align-1.1.3"
+      sources."wrappy-1.0.2"
+      sources."zeromq-5.2.0"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "IJavascript is a Javascript kernel for the Jupyter notebook";
+      homepage = https://n-riesco.github.io/ijavascript;
+      license = "BSD-3-Clause";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   inliner = nodeEnv.buildNodePackage {
     name = "inliner";
     packageName = "inliner";
@@ -78273,7 +81478,7 @@ in
       sources."imurmurhash-0.1.4"
       sources."infinity-agent-2.0.3"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."is-buffer-1.1.6"
       sources."is-finite-1.1.0"
       sources."is-npm-1.0.0"
@@ -78311,8 +81516,8 @@ in
       sources."longest-1.0.1"
       sources."lowercase-keys-1.0.1"
       sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."ms-2.0.0"
@@ -78495,7 +81700,7 @@ in
       sha512 = "56gjTrj9SMfPkbGANfqtGYeY3G5KmCkpgEYlKkmiDNG+SpQtLT9/53gt/9CbYd5iT9GgP+IvGXwDWplgCz3NnA==";
     };
     dependencies = [
-      sources."@types/jquery-3.5.4"
+      sources."@types/jquery-3.5.5"
       sources."@types/sizzle-2.3.2"
       sources."arch-2.2.0"
       sources."balanced-match-1.0.0"
@@ -78536,7 +81741,7 @@ in
       sources."p-finally-1.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-2.0.1"
-      sources."prismjs-1.22.0"
+      sources."prismjs-1.23.0"
       sources."pump-3.0.0"
       sources."rimraf-2.7.1"
       sources."select-1.1.2"
@@ -78616,7 +81821,7 @@ in
       sources."core-util-is-1.0.2"
       sources."cross-spawn-7.0.3"
       sources."data-uri-to-buffer-3.0.1"
-      sources."debug-4.3.1"
+      sources."debug-4.3.2"
       sources."deep-is-0.1.3"
       sources."degenerator-2.2.0"
       sources."delayed-stream-1.0.0"
@@ -78726,9 +81931,9 @@ in
       sources."lru-cache-5.1.1"
       sources."macos-release-2.4.1"
       sources."methods-1.1.2"
-      sources."mime-2.4.6"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-2.4.7"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-fn-1.2.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -78845,7 +82050,7 @@ in
       })
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
-      sources."ws-7.4.1"
+      sources."ws-7.4.2"
       sources."xregexp-2.0.0"
       sources."yallist-3.1.1"
     ];
@@ -78870,9 +82075,9 @@ in
     };
     dependencies = [
       sources."@iarna/toml-2.2.5"
-      sources."@ot-builder/bin-composite-types-0.10.34"
-      sources."@ot-builder/bin-util-0.10.34"
-      (sources."@ot-builder/cli-help-shower-0.10.34" // {
+      sources."@ot-builder/bin-composite-types-0.10.37"
+      sources."@ot-builder/bin-util-0.10.37"
+      (sources."@ot-builder/cli-help-shower-0.10.37" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-4.1.0"
@@ -78882,7 +82087,7 @@ in
           sources."supports-color-7.2.0"
         ];
       })
-      (sources."@ot-builder/cli-proc-0.10.34" // {
+      (sources."@ot-builder/cli-proc-0.10.37" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-4.1.0"
@@ -78892,7 +82097,7 @@ in
           sources."supports-color-7.2.0"
         ];
       })
-      (sources."@ot-builder/cli-shared-0.10.34" // {
+      (sources."@ot-builder/cli-shared-0.10.37" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-4.1.0"
@@ -78902,35 +82107,35 @@ in
           sources."supports-color-7.2.0"
         ];
       })
-      sources."@ot-builder/common-impl-0.10.34"
-      sources."@ot-builder/errors-0.10.34"
-      sources."@ot-builder/io-bin-cff-0.10.34"
-      sources."@ot-builder/io-bin-encoding-0.10.34"
-      sources."@ot-builder/io-bin-ext-private-0.10.34"
-      sources."@ot-builder/io-bin-font-0.10.34"
-      sources."@ot-builder/io-bin-glyph-store-0.10.34"
-      sources."@ot-builder/io-bin-layout-0.10.34"
-      sources."@ot-builder/io-bin-metadata-0.10.34"
-      sources."@ot-builder/io-bin-metric-0.10.34"
-      sources."@ot-builder/io-bin-name-0.10.34"
-      sources."@ot-builder/io-bin-sfnt-0.10.34"
-      sources."@ot-builder/io-bin-ttf-0.10.34"
-      sources."@ot-builder/ot-0.10.34"
-      sources."@ot-builder/ot-encoding-0.10.34"
-      sources."@ot-builder/ot-ext-private-0.10.34"
-      sources."@ot-builder/ot-glyphs-0.10.34"
-      sources."@ot-builder/ot-layout-0.10.34"
-      sources."@ot-builder/ot-metadata-0.10.34"
-      sources."@ot-builder/ot-name-0.10.34"
-      sources."@ot-builder/ot-sfnt-0.10.34"
-      sources."@ot-builder/ot-standard-glyph-namer-0.10.34"
-      sources."@ot-builder/prelude-0.10.34"
-      sources."@ot-builder/primitive-0.10.34"
-      sources."@ot-builder/rectify-0.10.34"
-      sources."@ot-builder/stat-glyphs-0.10.34"
-      sources."@ot-builder/trace-0.10.34"
-      sources."@ot-builder/var-store-0.10.34"
-      sources."@ot-builder/variance-0.10.34"
+      sources."@ot-builder/common-impl-0.10.37"
+      sources."@ot-builder/errors-0.10.37"
+      sources."@ot-builder/io-bin-cff-0.10.37"
+      sources."@ot-builder/io-bin-encoding-0.10.37"
+      sources."@ot-builder/io-bin-ext-private-0.10.37"
+      sources."@ot-builder/io-bin-font-0.10.37"
+      sources."@ot-builder/io-bin-glyph-store-0.10.37"
+      sources."@ot-builder/io-bin-layout-0.10.37"
+      sources."@ot-builder/io-bin-metadata-0.10.37"
+      sources."@ot-builder/io-bin-metric-0.10.37"
+      sources."@ot-builder/io-bin-name-0.10.37"
+      sources."@ot-builder/io-bin-sfnt-0.10.37"
+      sources."@ot-builder/io-bin-ttf-0.10.37"
+      sources."@ot-builder/ot-0.10.37"
+      sources."@ot-builder/ot-encoding-0.10.37"
+      sources."@ot-builder/ot-ext-private-0.10.37"
+      sources."@ot-builder/ot-glyphs-0.10.37"
+      sources."@ot-builder/ot-layout-0.10.37"
+      sources."@ot-builder/ot-metadata-0.10.37"
+      sources."@ot-builder/ot-name-0.10.37"
+      sources."@ot-builder/ot-sfnt-0.10.37"
+      sources."@ot-builder/ot-standard-glyph-namer-0.10.37"
+      sources."@ot-builder/prelude-0.10.37"
+      sources."@ot-builder/primitive-0.10.37"
+      sources."@ot-builder/rectify-0.10.37"
+      sources."@ot-builder/stat-glyphs-0.10.37"
+      sources."@ot-builder/trace-0.10.37"
+      sources."@ot-builder/var-store-0.10.37"
+      sources."@ot-builder/variance-0.10.37"
       sources."@unicode/unicode-13.0.0-1.0.2"
       sources."abbrev-1.1.1"
       sources."ajv-6.12.6"
@@ -78959,7 +82164,7 @@ in
       sources."chainsaw-0.0.9"
       sources."chalk-2.4.2"
       sources."chownr-1.1.4"
-      sources."cldr-5.7.0"
+      sources."cldr-5.8.0"
       sources."cli-cursor-3.1.0"
       sources."clipper-lib-6.4.2"
       sources."cliui-3.2.0"
@@ -78984,7 +82189,7 @@ in
       sources."emoji-regex-8.0.0"
       sources."error-ex-1.3.2"
       sources."escape-string-regexp-1.0.5"
-      sources."escodegen-1.14.3"
+      sources."escodegen-2.0.0"
       (sources."escope-1.0.3" // {
         dependencies = [
           sources."estraverse-2.0.0"
@@ -79008,7 +82213,7 @@ in
           sources."estraverse-4.1.1"
         ];
       })
-      sources."estraverse-4.3.0"
+      sources."estraverse-5.2.0"
       sources."esutils-2.0.3"
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
@@ -79067,8 +82272,8 @@ in
       sources."lru-cache-2.5.0"
       sources."memoizeasync-1.1.0"
       sources."microbuffer-1.0.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-fn-2.1.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -79105,8 +82310,8 @@ in
       sources."os-locale-1.4.0"
       sources."os-tmpdir-1.0.2"
       sources."osenv-0.1.5"
-      sources."ot-builder-0.10.34"
-      (sources."otb-ttc-bundle-0.10.34" // {
+      sources."ot-builder-0.10.37"
+      (sources."otb-ttc-bundle-0.10.37" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-4.1.0"
@@ -79214,7 +82419,7 @@ in
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."validate-npm-package-license-3.0.4"
-      (sources."verda-1.2.0" // {
+      (sources."verda-1.2.1" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."ansi-styles-4.3.0"
@@ -79247,8 +82452,8 @@ in
       sources."wordwrap-0.0.3"
       sources."wrap-ansi-2.1.0"
       sources."wrappy-1.0.2"
-      sources."xmldom-0.3.0"
-      sources."xpath-0.0.27"
+      sources."xmldom-0.4.0"
+      sources."xpath-0.0.32"
       sources."y18n-3.2.1"
       sources."yallist-4.0.0"
       sources."yargs-6.6.0"
@@ -79364,7 +82569,7 @@ in
           sources."vscode-languageserver-types-3.14.0"
         ];
       })
-      sources."vscode-languageserver-types-3.15.1"
+      sources."vscode-languageserver-types-3.16.0"
       sources."vscode-uri-1.0.8"
       sources."wrappy-1.0.2"
       sources."xorshift-0.2.1"
@@ -79383,24 +82588,26 @@ in
   joplin = nodeEnv.buildNodePackage {
     name = "joplin";
     packageName = "joplin";
-    version = "1.4.9";
+    version = "1.5.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/joplin/-/joplin-1.4.9.tgz";
-      sha512 = "4JjZOpv5WyJ3VbtcxrOf5FYQBYPjbBsrIGLG+DoYNFPLsOWEOJeZH24XO2UnNKb5YopcsCzR+iaTXVCPNQ2tAw==";
+      url = "https://registry.npmjs.org/joplin/-/joplin-1.5.1.tgz";
+      sha512 = "V90a+QTDf5SSW8Il0BcWtdqdtDZYd/YFltqRzXGBRwO2nFggeUAuXcQxs5ZxEhQF3Jzvx3yGfrYioZR7B30D2A==";
     };
     dependencies = [
       sources."@braintree/sanitize-url-3.1.0"
       sources."@cronvel/get-pixels-3.4.0"
-      sources."@joplinapp/fork-htmlparser2-4.1.8"
-      sources."@joplinapp/fork-sax-1.2.12"
-      sources."@joplinapp/lib-1.0.9"
-      (sources."@joplinapp/renderer-1.0.17" // {
+      sources."@joplin/fork-htmlparser2-4.1.14"
+      sources."@joplin/fork-sax-1.2.18"
+      sources."@joplin/lib-1.0.15"
+      (sources."@joplin/renderer-1.0.23" // {
         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.36"
+      sources."@joplin/turndown-plugin-gfm-1.0.18"
       sources."abab-2.0.5"
       sources."abbrev-1.1.1"
       sources."acorn-7.4.1"
@@ -79440,7 +82647,7 @@ in
       sources."async-mutex-0.1.4"
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
-      (sources."aws-sdk-2.804.0" // {
+      (sources."aws-sdk-2.820.0" // {
         dependencies = [
           sources."sax-1.2.1"
           sources."uuid-3.3.2"
@@ -79462,12 +82669,13 @@ in
           sources."readable-stream-3.6.0"
         ];
       })
+      sources."block-stream-0.0.9"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."browser-process-hrtime-1.0.0"
       sources."buffer-4.9.2"
       sources."buffer-from-1.1.1"
-      sources."builtin-modules-3.1.0"
+      sources."builtin-modules-3.2.0"
       sources."camel-case-3.0.0"
       sources."camelcase-4.1.0"
       sources."caseless-0.12.0"
@@ -79488,6 +82696,7 @@ in
       sources."command-line-usage-4.1.0"
       sources."commander-2.17.1"
       sources."compare-version-0.1.2"
+      sources."compare-versions-3.6.0"
       sources."concat-map-0.0.1"
       sources."console-control-strings-1.1.0"
       sources."core-util-is-1.0.2"
@@ -79549,13 +82758,16 @@ in
       sources."delegates-1.0.0"
       sources."depd-1.1.2"
       sources."detect-libc-1.0.3"
-      sources."diacritics-1.3.0"
       sources."diff-match-patch-1.0.5"
-      sources."dom-serializer-1.1.0"
+      (sources."dom-serializer-1.2.0" // {
+        dependencies = [
+          sources."domhandler-4.0.0"
+        ];
+      })
       sources."domelementtype-2.1.0"
       sources."domexception-1.0.1"
       sources."domhandler-3.3.0"
-      (sources."domutils-2.4.3" // {
+      (sources."domutils-2.4.4" // {
         dependencies = [
           sources."domhandler-4.0.0"
         ];
@@ -79596,7 +82808,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.0"
+      sources."follow-redirects-1.13.1"
       sources."font-awesome-filetypes-2.1.0"
       sources."for-each-property-0.0.4"
       sources."for-each-property-deep-0.0.3"
@@ -79612,6 +82824,7 @@ in
       sources."fs-minipass-1.2.7"
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.1.3"
+      sources."fstream-1.0.12"
       (sources."gauge-2.7.4" // {
         dependencies = [
           sources."strip-ansi-3.0.1"
@@ -79632,9 +82845,9 @@ in
       sources."has-flag-4.0.0"
       sources."has-unicode-2.0.1"
       sources."he-1.2.0"
-      sources."highlight.js-10.4.1"
+      sources."highlight.js-10.5.0"
       sources."html-encoding-sniffer-1.0.2"
-      sources."html-entities-1.3.1"
+      sources."html-entities-1.4.0"
       sources."html-minifier-3.5.21"
       (sources."htmlparser2-3.10.1" // {
         dependencies = [
@@ -79665,7 +82878,7 @@ in
       sources."immer-7.0.15"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       (sources."inspect-function-0.2.2" // {
         dependencies = [
           sources."split-skip-0.0.1"
@@ -79719,16 +82932,10 @@ in
       sources."isobject-2.1.0"
       sources."isstream-0.1.2"
       sources."jmespath-0.15.0"
-      sources."joplin-turndown-4.0.30"
-      sources."joplin-turndown-plugin-gfm-1.0.12"
       sources."jpeg-js-0.4.2"
       sources."js-tokens-4.0.0"
       sources."jsbn-0.1.1"
-      (sources."jsdom-15.2.1" // {
-        dependencies = [
-          sources."tough-cookie-3.0.1"
-        ];
-      })
+      sources."jsdom-15.2.1"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
@@ -79739,8 +82946,12 @@ in
           sources."commander-2.20.3"
         ];
       })
-      sources."keytar-7.2.0"
-      sources."khroma-1.1.0"
+      (sources."keytar-7.3.0" // {
+        dependencies = [
+          sources."node-addon-api-3.1.0"
+        ];
+      })
+      sources."khroma-1.1.1"
       sources."klaw-1.3.1"
       sources."lazyness-1.2.0"
       sources."levenshtein-1.0.5"
@@ -79748,7 +82959,7 @@ in
       sources."linkify-it-2.2.0"
       sources."locate-path-2.0.0"
       sources."lodash-4.17.20"
-      sources."lodash-es-4.17.15"
+      sources."lodash-es-4.17.20"
       sources."lodash.padend-4.6.1"
       sources."lodash.repeat-4.1.0"
       sources."lodash.sortby-4.7.0"
@@ -79773,8 +82984,8 @@ in
       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-ins-3.0.0"
-      sources."markdown-it-mark-3.0.0"
+      sources."markdown-it-ins-3.0.1"
+      sources."markdown-it-mark-3.0.1"
       (sources."markdown-it-multimd-table-4.0.3" // {
         dependencies = [
           sources."entities-2.0.3"
@@ -79789,15 +83000,16 @@ in
       sources."md5-file-4.0.0"
       sources."mdurl-1.0.1"
       sources."mermaid-8.8.4"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-response-2.1.0"
       (sources."minify-4.1.3" // {
         dependencies = [
           sources."commander-2.20.3"
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."html-minifier-4.0.0"
-          sources."uglify-js-3.12.1"
+          sources."ms-2.1.2"
+          sources."uglify-js-3.12.4"
         ];
       })
       sources."minimatch-3.0.4"
@@ -79812,29 +83024,36 @@ in
       sources."mkdirp-classic-0.5.3"
       sources."moment-2.29.1"
       sources."moment-mini-2.24.0"
-      sources."ms-2.1.2"
+      sources."ms-2.1.3"
       sources."multiparty-4.2.2"
-      sources."mustache-4.0.1"
-      sources."nan-2.14.2"
+      sources."mustache-4.1.0"
       sources."nanoid-3.1.20"
       sources."napi-build-utils-1.0.2"
       sources."ndarray-1.0.19"
       sources."ndarray-pack-1.2.1"
       sources."needle-2.5.2"
-      sources."nextgen-events-1.3.3"
+      sources."nextgen-events-1.3.4"
       sources."no-case-2.3.2"
       (sources."node-abi-2.19.3" // {
         dependencies = [
           sources."semver-5.7.1"
         ];
       })
-      sources."node-addon-api-3.0.2"
+      sources."node-addon-api-2.0.0"
       sources."node-bitmap-0.0.1"
       sources."node-emoji-1.10.0"
       sources."node-fetch-1.7.3"
-      (sources."node-notifier-8.0.0" // {
+      (sources."node-gyp-3.8.0" // {
+        dependencies = [
+          sources."nopt-3.0.6"
+          sources."semver-5.3.0"
+          sources."tar-2.2.2"
+          sources."which-1.3.1"
+        ];
+      })
+      (sources."node-notifier-8.0.1" // {
         dependencies = [
-          sources."uuid-8.3.1"
+          sources."uuid-8.3.2"
         ];
       })
       sources."node-persist-2.1.0"
@@ -79911,10 +83130,15 @@ in
       (sources."request-2.88.2" // {
         dependencies = [
           sources."form-data-2.3.3"
+          sources."tough-cookie-2.5.0"
         ];
       })
       sources."request-promise-core-1.1.4"
-      sources."request-promise-native-1.0.9"
+      (sources."request-promise-native-1.0.9" // {
+        dependencies = [
+          sources."tough-cookie-2.5.0"
+        ];
+      })
       sources."requires-port-1.0.0"
       sources."reselect-4.0.0"
       sources."resolve-url-0.2.1"
@@ -79930,12 +83154,13 @@ in
       sources."set-blocking-2.0.0"
       sources."setimmediate-1.0.5"
       sources."setprototypeof-1.2.0"
-      sources."seventh-0.7.38"
+      sources."seventh-0.7.40"
       (sources."sharp-0.26.3" // {
         dependencies = [
           sources."color-3.1.3"
           sources."decompress-response-6.0.0"
           sources."mimic-response-3.1.0"
+          sources."node-addon-api-3.1.0"
           sources."simple-get-4.0.0"
         ];
       })
@@ -79957,7 +83182,7 @@ in
       sources."source-map-url-0.4.0"
       sources."split-skip-0.0.2"
       sources."sprintf-js-1.1.2"
-      sources."sqlite3-4.2.0"
+      sources."sqlite3-5.0.0"
       sources."sshpk-1.16.1"
       sources."statuses-1.5.0"
       sources."stealthy-require-1.1.1"
@@ -79990,7 +83215,6 @@ in
       sources."supports-color-7.2.0"
       sources."symbol-observable-1.2.0"
       sources."symbol-tree-3.2.4"
-      sources."syswide-cas-5.3.0"
       sources."table-layout-0.4.5"
       (sources."tar-4.4.13" // {
         dependencies = [
@@ -79998,7 +83222,7 @@ in
         ];
       })
       sources."tar-fs-2.1.1"
-      (sources."tar-stream-2.1.4" // {
+      (sources."tar-stream-2.2.0" // {
         dependencies = [
           sources."readable-stream-3.6.0"
         ];
@@ -80009,7 +83233,7 @@ in
           sources."q-0.9.7"
         ];
       })
-      sources."terminal-kit-1.44.0"
+      sources."terminal-kit-1.44.3"
       (sources."terser-4.8.0" // {
         dependencies = [
           sources."commander-2.20.3"
@@ -80028,7 +83252,7 @@ in
       })
       sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.0"
-      sources."tough-cookie-2.5.0"
+      sources."tough-cookie-3.0.1"
       sources."tr46-1.0.1"
       sources."tree-kit-0.6.2"
       sources."try-catch-2.0.1"
@@ -80082,7 +83306,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-7.4.1"
+      sources."ws-7.4.2"
       sources."xml-name-validator-3.0.0"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
@@ -80120,7 +83344,7 @@ in
       sources."glob-7.1.6"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."lru-cache-4.1.5"
       sources."minimatch-3.0.4"
       sources."mkdirp-1.0.4"
@@ -80147,10 +83371,10 @@ in
   js-yaml = nodeEnv.buildNodePackage {
     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==";
     };
     dependencies = [
       sources."argparse-1.0.10"
@@ -80176,7 +83400,7 @@ in
       sha512 = "znR99e1BHeyEkSvgDDpX0sTiTu+8aQyDl9DawrkOGZTTW8hv0deIFXx87114zJ7gRaDZKVQD/4tr1ifmJp9xhQ==";
     };
     dependencies = [
-      sources."@babel/parser-7.12.7"
+      sources."@babel/parser-7.12.11"
       sources."argparse-1.0.10"
       sources."bluebird-3.7.2"
       sources."catharsis-0.8.11"
@@ -80330,13 +83554,13 @@ in
       sources."graphlib-2.1.8"
       sources."inherits-2.0.4"
       sources."isarray-1.0.0"
-      sources."js-yaml-3.14.0"
+      sources."js-yaml-3.14.1"
       sources."lodash-4.17.20"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
-      sources."ms-2.1.2"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
+      sources."ms-2.1.3"
       sources."native-promise-only-0.8.1"
       sources."path-loader-1.0.10"
       sources."process-nextick-args-2.0.1"
@@ -80440,7 +83664,7 @@ in
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
       sources."express-4.17.1"
-      (sources."express-urlrewrite-1.3.0" // {
+      (sources."express-urlrewrite-1.4.0" // {
         dependencies = [
           sources."path-to-regexp-1.8.0"
         ];
@@ -80450,7 +83674,7 @@ in
       sources."fresh-0.5.2"
       sources."get-caller-file-2.0.5"
       sources."get-stream-4.1.0"
-      sources."global-dirs-2.0.1"
+      sources."global-dirs-2.1.0"
       sources."got-9.6.0"
       sources."graceful-fs-4.2.4"
       sources."has-flag-4.0.0"
@@ -80461,7 +83685,7 @@ in
       sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
       sources."inherits-2.0.3"
-      sources."ini-1.3.5"
+      sources."ini-1.3.7"
       sources."ipaddr.js-1.9.1"
       sources."is-ci-2.0.0"
       sources."is-fullwidth-code-point-2.0.0"
@@ -80497,8 +83721,8 @@ in
       })
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-response-1.0.1"
       sources."minimist-1.2.5"
       (sources."morgan-1.10.0" // {
@@ -80592,7 +83816,7 @@ in
       sources."xdg-basedir-4.0.0"
       sources."y18n-5.0.5"
       sources."yallist-4.0.0"
-      sources."yargs-16.1.1"
+      sources."yargs-16.2.0"
       sources."yargs-parser-20.2.4"
     ];
     buildInputs = globalBuildInputs;
@@ -80685,7 +83909,7 @@ in
       (sources."engine.io-3.4.2" // {
         dependencies = [
           sources."debug-4.1.1"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
       (sources."engine.io-client-3.4.4" // {
@@ -80706,7 +83930,7 @@ in
       sources."finalhandler-1.1.2"
       sources."find-up-4.1.0"
       sources."flatted-2.0.2"
-      sources."follow-redirects-1.13.0"
+      sources."follow-redirects-1.13.1"
       sources."fs-extra-8.1.0"
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.1.3"
@@ -80734,14 +83958,14 @@ in
       sources."lodash-4.17.20"
       (sources."log4js-6.3.0" // {
         dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."ms-2.1.2"
         ];
       })
       sources."media-typer-0.3.0"
-      sources."mime-2.4.6"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-2.4.7"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."minimatch-3.0.4"
       sources."ms-2.0.0"
       sources."negotiator-0.6.2"
@@ -80774,7 +83998,7 @@ in
       (sources."socket.io-2.3.0" // {
         dependencies = [
           sources."debug-4.1.1"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
       sources."socket.io-adapter-1.1.2"
@@ -80782,7 +84006,7 @@ in
         dependencies = [
           sources."base64-arraybuffer-0.1.5"
           sources."debug-4.1.1"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
           (sources."socket.io-parser-3.3.1" // {
             dependencies = [
               sources."component-emitter-1.3.0"
@@ -80795,7 +84019,7 @@ in
       (sources."socket.io-parser-3.4.1" // {
         dependencies = [
           sources."debug-4.1.1"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
       sources."source-map-0.6.1"
@@ -80803,7 +84027,7 @@ in
       (sources."streamroller-2.2.4" // {
         dependencies = [
           sources."date-format-2.1.0"
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."ms-2.1.2"
         ];
       })
@@ -80822,7 +84046,7 @@ in
       sources."which-module-2.0.0"
       sources."wrap-ansi-6.2.0"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.1"
+      sources."ws-7.4.2"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."y18n-4.0.1"
       sources."yargs-15.4.1"
@@ -80868,7 +84092,7 @@ in
       sources."fs-mkdirp-stream-1.0.0"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
-      sources."get-intrinsic-1.0.1"
+      sources."get-intrinsic-1.0.2"
       sources."glob-7.1.6"
       sources."glob-parent-3.1.0"
       sources."glob-stream-6.1.0"
@@ -81028,7 +84252,7 @@ in
       sources."i-0.3.6"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."invert-kv-1.0.0"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-stream-1.1.0"
@@ -81053,8 +84277,8 @@ in
           sources."mimic-fn-2.1.0"
         ];
       })
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-fn-1.2.0"
       sources."minimatch-3.0.4"
       sources."minimist-0.0.8"
@@ -81202,8 +84426,8 @@ in
       sha512 = "vk1lfVRFm+UuEFA7wkLKeSF7Iz13W+N/vFd48aW2yuS7Kv0RbNm2/qcDPV863056LMfkRlsEe+QYOw3palj5Lg==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.4"
-      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/code-frame-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
       sources."@babel/highlight-7.10.4"
       (sources."@evocateur/libnpmaccess-3.1.2" // {
         dependencies = [
@@ -81306,7 +84530,7 @@ in
           sources."universal-user-agent-6.0.0"
         ];
       })
-      sources."@octokit/openapi-types-2.0.0"
+      sources."@octokit/openapi-types-2.0.1"
       sources."@octokit/plugin-enterprise-rest-6.0.1"
       (sources."@octokit/plugin-paginate-rest-1.1.2" // {
         dependencies = [
@@ -81332,11 +84556,11 @@ in
         ];
       })
       sources."@octokit/rest-16.43.2"
-      sources."@octokit/types-6.1.1"
+      sources."@octokit/types-6.1.2"
       sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.3"
       sources."@types/minimist-1.2.1"
-      sources."@types/node-14.14.10"
+      sources."@types/node-14.14.19"
       sources."@types/normalize-package-data-2.4.0"
       sources."@zkochan/cmd-shim-3.1.0"
       sources."JSONStream-1.3.5"
@@ -81456,7 +84680,7 @@ in
         ];
       })
       sources."conventional-changelog-preset-loader-2.3.4"
-      (sources."conventional-changelog-writer-4.0.18" // {
+      (sources."conventional-changelog-writer-4.1.0" // {
         dependencies = [
           sources."readable-stream-3.6.0"
           sources."through2-4.0.2"
@@ -81617,7 +84841,7 @@ in
       })
       sources."genfun-5.0.0"
       sources."get-caller-file-2.0.5"
-      sources."get-intrinsic-1.0.1"
+      sources."get-intrinsic-1.0.2"
       (sources."get-pkg-repo-1.4.0" // {
         dependencies = [
           sources."camelcase-2.1.1"
@@ -81678,7 +84902,7 @@ in
         ];
       })
       sources."git-up-4.0.2"
-      sources."git-url-parse-11.4.0"
+      sources."git-url-parse-11.4.3"
       sources."gitconfiglocal-1.0.0"
       sources."glob-7.1.6"
       sources."glob-parent-5.1.1"
@@ -81728,7 +84952,7 @@ in
       sources."infer-owner-1.0.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       (sources."init-package-json-1.10.3" // {
         dependencies = [
           sources."semver-5.7.1"
@@ -81778,7 +85002,7 @@ in
       sources."isobject-3.0.1"
       sources."isstream-0.1.2"
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.14.0"
+      sources."js-yaml-3.14.1"
       sources."jsbn-0.1.1"
       sources."json-parse-better-errors-1.0.2"
       sources."json-parse-even-better-errors-2.3.1"
@@ -81814,7 +85038,7 @@ in
       sources."map-cache-0.2.2"
       sources."map-obj-4.1.0"
       sources."map-visit-1.0.0"
-      (sources."meow-8.0.0" // {
+      (sources."meow-8.1.0" // {
         dependencies = [
           sources."find-up-4.1.0"
           sources."hosted-git-info-3.0.7"
@@ -81845,8 +85069,8 @@ in
       })
       sources."merge2-1.4.1"
       sources."micromatch-3.1.10"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-fn-1.2.0"
       sources."min-indent-1.0.1"
       sources."minimatch-3.0.4"
@@ -81864,7 +85088,7 @@ in
       sources."mkdirp-promise-5.0.1"
       sources."modify-values-1.0.1"
       sources."move-concurrently-1.0.1"
-      sources."ms-2.1.2"
+      sources."ms-2.1.3"
       sources."multimatch-3.0.0"
       sources."mute-stream-0.0.7"
       sources."mz-2.7.0"
@@ -82153,7 +85377,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."type-fest-0.3.1"
       sources."typedarray-0.0.6"
-      sources."uglify-js-3.12.1"
+      sources."uglify-js-3.12.4"
       sources."uid-number-0.0.6"
       sources."umask-1.1.0"
       sources."union-value-1.0.1"
@@ -82235,18 +85459,21 @@ in
   less = nodeEnv.buildNodePackage {
     name = "less";
     packageName = "less";
-    version = "3.12.2";
+    version = "4.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/less/-/less-3.12.2.tgz";
-      sha512 = "+1V2PCMFkL+OIj2/HrtrvZw0BC0sYLMICJfbQjuj/K8CEnlrFX6R5cKKgzzttsZDHyxQNL1jqMREjKN3ja/E3Q==";
+      url = "https://registry.npmjs.org/less/-/less-4.0.0.tgz";
+      sha512 = "av1eEa2D0xZfF7fjLJS/Dld7zAYSLU7EOEJvuOELeaNI3i6L/81AdjbK5/pytaRkBwi7ZEa0433IDvMLskKCOw==";
     };
     dependencies = [
-      sources."errno-0.1.7"
+      sources."copy-anything-2.0.1"
+      sources."errno-0.1.8"
       sources."graceful-fs-4.2.4"
       sources."image-size-0.5.5"
+      sources."is-what-3.12.0"
       sources."make-dir-2.1.0"
       sources."mime-1.6.0"
       sources."native-request-1.0.8"
+      sources."parse-node-version-1.0.1"
       sources."pify-4.0.1"
       sources."prr-1.0.1"
       sources."semver-5.7.1"
@@ -82424,7 +85651,7 @@ in
           sources."depd-1.1.2"
         ];
       })
-      sources."http-parser-js-0.5.2"
+      sources."http-parser-js-0.5.3"
       sources."inherits-2.0.4"
       sources."is-accessor-descriptor-1.0.0"
       sources."is-binary-path-1.0.1"
@@ -82450,8 +85677,8 @@ in
       sources."map-visit-1.0.0"
       sources."micromatch-3.1.10"
       sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mixin-deep-1.3.2"
       sources."morgan-1.10.0"
       sources."ms-2.0.0"
@@ -82720,7 +85947,7 @@ in
         dependencies = [
           sources."cookie-0.3.1"
           sources."debug-4.1.1"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
       (sources."engine.io-client-3.4.4" // {
@@ -82789,7 +86016,7 @@ in
           sources."kind-of-4.0.0"
         ];
       })
-      sources."html-entities-1.3.1"
+      sources."html-entities-1.4.0"
       sources."http-errors-1.7.2"
       sources."http-signature-1.2.0"
       sources."iconv-lite-0.4.24"
@@ -82853,8 +86080,8 @@ in
       sources."methods-1.1.2"
       sources."micromatch-2.3.11"
       sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."minimist-1.2.5"
       (sources."mixin-deep-1.3.2" // {
         dependencies = [
@@ -83029,7 +86256,7 @@ in
       (sources."socket.io-2.3.0" // {
         dependencies = [
           sources."debug-4.1.1"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
       sources."socket.io-adapter-1.1.2"
@@ -83039,7 +86266,7 @@ in
           sources."component-emitter-1.2.1"
           sources."debug-4.1.1"
           sources."isarray-2.0.1"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
           (sources."socket.io-parser-3.3.1" // {
             dependencies = [
               sources."component-emitter-1.3.0"
@@ -83054,7 +86281,7 @@ in
           sources."component-emitter-1.2.1"
           sources."debug-4.1.1"
           sources."isarray-2.0.1"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
       sources."source-map-0.5.7"
@@ -83117,7 +86344,7 @@ in
       sources."uuid-3.4.0"
       sources."vary-1.1.2"
       sources."verror-1.10.0"
-      sources."ws-7.4.1"
+      sources."ws-7.4.2"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."yeast-0.1.2"
     ];
@@ -83137,32 +86364,32 @@ in
     version = "1.10.1";
     src = ../interpreters/clojurescript/lumo;
     dependencies = [
-      sources."@babel/code-frame-7.10.4"
+      sources."@babel/code-frame-7.12.11"
       sources."@babel/compat-data-7.12.7"
-      sources."@babel/core-7.12.9"
-      sources."@babel/generator-7.12.5"
-      sources."@babel/helper-annotate-as-pure-7.10.4"
+      sources."@babel/core-7.12.10"
+      sources."@babel/generator-7.12.11"
+      sources."@babel/helper-annotate-as-pure-7.12.10"
       sources."@babel/helper-builder-binary-assignment-operator-visitor-7.10.4"
       sources."@babel/helper-compilation-targets-7.12.5"
       sources."@babel/helper-create-class-features-plugin-7.12.1"
       sources."@babel/helper-create-regexp-features-plugin-7.12.7"
       sources."@babel/helper-define-map-7.10.5"
       sources."@babel/helper-explode-assignable-expression-7.12.1"
-      sources."@babel/helper-function-name-7.10.4"
-      sources."@babel/helper-get-function-arity-7.10.4"
+      sources."@babel/helper-function-name-7.12.11"
+      sources."@babel/helper-get-function-arity-7.12.10"
       sources."@babel/helper-hoist-variables-7.10.4"
       sources."@babel/helper-member-expression-to-functions-7.12.7"
       sources."@babel/helper-module-imports-7.12.5"
       sources."@babel/helper-module-transforms-7.12.1"
-      sources."@babel/helper-optimise-call-expression-7.12.7"
+      sources."@babel/helper-optimise-call-expression-7.12.10"
       sources."@babel/helper-plugin-utils-7.10.4"
       sources."@babel/helper-remap-async-to-generator-7.12.1"
-      sources."@babel/helper-replace-supers-7.12.5"
+      sources."@babel/helper-replace-supers-7.12.11"
       sources."@babel/helper-simple-access-7.12.1"
       sources."@babel/helper-skip-transparent-expression-wrappers-7.12.1"
-      sources."@babel/helper-split-export-declaration-7.11.0"
-      sources."@babel/helper-validator-identifier-7.10.4"
-      sources."@babel/helper-validator-option-7.12.1"
+      sources."@babel/helper-split-export-declaration-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
+      sources."@babel/helper-validator-option-7.12.11"
       sources."@babel/helper-wrap-function-7.12.3"
       sources."@babel/helpers-7.12.5"
       (sources."@babel/highlight-7.10.4" // {
@@ -83170,9 +86397,9 @@ in
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.12.7"
+      sources."@babel/parser-7.12.11"
       sources."@babel/plugin-external-helpers-7.8.3"
-      sources."@babel/plugin-proposal-async-generator-functions-7.12.1"
+      sources."@babel/plugin-proposal-async-generator-functions-7.12.12"
       sources."@babel/plugin-proposal-class-properties-7.12.1"
       sources."@babel/plugin-proposal-dynamic-import-7.12.1"
       sources."@babel/plugin-proposal-export-namespace-from-7.12.1"
@@ -83202,7 +86429,7 @@ in
       sources."@babel/plugin-transform-arrow-functions-7.12.1"
       sources."@babel/plugin-transform-async-to-generator-7.12.1"
       sources."@babel/plugin-transform-block-scoped-functions-7.12.1"
-      sources."@babel/plugin-transform-block-scoping-7.12.1"
+      sources."@babel/plugin-transform-block-scoping-7.12.12"
       sources."@babel/plugin-transform-classes-7.12.1"
       sources."@babel/plugin-transform-computed-properties-7.12.1"
       sources."@babel/plugin-transform-destructuring-7.12.1"
@@ -83224,21 +86451,21 @@ in
       sources."@babel/plugin-transform-property-literals-7.12.1"
       sources."@babel/plugin-transform-regenerator-7.12.1"
       sources."@babel/plugin-transform-reserved-words-7.12.1"
-      sources."@babel/plugin-transform-runtime-7.12.1"
+      sources."@babel/plugin-transform-runtime-7.12.10"
       sources."@babel/plugin-transform-shorthand-properties-7.12.1"
       sources."@babel/plugin-transform-spread-7.12.1"
       sources."@babel/plugin-transform-sticky-regex-7.12.7"
       sources."@babel/plugin-transform-template-literals-7.12.1"
-      sources."@babel/plugin-transform-typeof-symbol-7.12.1"
+      sources."@babel/plugin-transform-typeof-symbol-7.12.10"
       sources."@babel/plugin-transform-unicode-escapes-7.12.1"
       sources."@babel/plugin-transform-unicode-regex-7.12.1"
-      sources."@babel/preset-env-7.12.7"
+      sources."@babel/preset-env-7.12.11"
       sources."@babel/preset-modules-0.1.4"
       sources."@babel/preset-stage-2-7.8.3"
       sources."@babel/runtime-7.12.5"
       sources."@babel/template-7.12.7"
-      sources."@babel/traverse-7.12.9"
-      sources."@babel/types-7.12.7"
+      sources."@babel/traverse-7.12.12"
+      sources."@babel/types-7.12.12"
       sources."@cnakazawa/watch-1.0.4"
       sources."@comandeer/babel-plugin-banner-5.0.0"
       sources."@istanbuljs/load-nyc-config-1.1.0"
@@ -83252,18 +86479,18 @@ in
       sources."@types/babel__core-7.1.12"
       sources."@types/babel__generator-7.6.2"
       sources."@types/babel__template-7.4.0"
-      sources."@types/babel__traverse-7.0.16"
+      sources."@types/babel__traverse-7.11.0"
       sources."@types/estree-0.0.45"
       sources."@types/graceful-fs-4.1.4"
       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/json-schema-7.0.6"
-      sources."@types/node-14.14.10"
+      sources."@types/node-14.14.19"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/resolve-0.0.8"
-      sources."@types/yargs-15.0.11"
-      sources."@types/yargs-parser-15.0.0"
+      sources."@types/yargs-15.0.12"
+      sources."@types/yargs-parser-20.2.0"
       sources."@webassemblyjs/ast-1.9.0"
       sources."@webassemblyjs/floating-point-hex-parser-1.9.0"
       sources."@webassemblyjs/helper-api-error-1.9.0"
@@ -83413,12 +86640,12 @@ in
         ];
       })
       sources."browserify-zlib-0.2.0"
-      sources."browserslist-4.15.0"
+      sources."browserslist-4.16.0"
       sources."bser-2.1.1"
       sources."buffer-5.2.1"
       sources."buffer-from-1.1.1"
       sources."buffer-xor-1.0.3"
-      sources."builtin-modules-3.1.0"
+      sources."builtin-modules-3.2.0"
       sources."builtin-status-codes-3.0.0"
       (sources."cacache-12.0.4" // {
         dependencies = [
@@ -83429,7 +86656,7 @@ in
       sources."cached-path-relative-1.0.2"
       sources."call-bind-1.0.0"
       sources."camelcase-5.3.1"
-      sources."caniuse-lite-1.0.30001165"
+      sources."caniuse-lite-1.0.30001171"
       sources."capture-exit-2.0.0"
       sources."caseless-0.12.0"
       (sources."chalk-3.0.0" // {
@@ -83502,7 +86729,7 @@ in
       })
       sources."copy-descriptor-0.1.1"
       sources."core-js-2.6.12"
-      (sources."core-js-compat-3.8.0" // {
+      (sources."core-js-compat-3.8.1" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -83533,7 +86760,7 @@ in
       sources."dash-ast-1.0.0"
       sources."dashdash-1.14.1"
       sources."death-1.1.0"
-      sources."debug-4.3.1"
+      sources."debug-4.3.2"
       sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.0"
       sources."define-properties-1.1.3"
@@ -83553,7 +86780,7 @@ in
       sources."duplexer2-0.1.4"
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
-      sources."electron-to-chromium-1.3.616"
+      sources."electron-to-chromium-1.3.633"
       (sources."elliptic-6.5.3" // {
         dependencies = [
           sources."bn.js-4.11.9"
@@ -83567,7 +86794,7 @@ in
           sources."memory-fs-0.5.0"
         ];
       })
-      sources."errno-0.1.7"
+      sources."errno-0.1.8"
       sources."error-ex-1.3.2"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
@@ -83653,7 +86880,7 @@ in
       sources."gensync-1.0.0-beta.2"
       sources."get-assigned-identifiers-1.2.0"
       sources."get-caller-file-2.0.5"
-      sources."get-intrinsic-1.0.1"
+      sources."get-intrinsic-1.0.2"
       sources."get-package-type-0.1.0"
       sources."get-stream-4.1.0"
       sources."get-value-2.0.6"
@@ -83719,7 +86946,7 @@ in
       sources."infer-owner-1.0.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."inline-source-map-0.6.2"
       sources."insert-module-globals-7.2.1"
       sources."interpret-1.4.0"
@@ -83770,7 +86997,7 @@ in
         ];
       })
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.14.0"
+      sources."js-yaml-3.14.1"
       sources."jsbn-0.1.1"
       sources."jsesc-2.5.2"
       sources."json-parse-better-errors-1.0.2"
@@ -83822,8 +87049,8 @@ in
           sources."bn.js-4.11.9"
         ];
       })
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."minimalistic-assert-1.0.1"
       sources."minimalistic-crypto-utils-1.0.1"
       sources."minimatch-3.0.4"
@@ -84112,7 +87339,7 @@ in
       sources."supports-color-5.5.0"
       sources."syntax-error-1.4.0"
       sources."tapable-1.1.3"
-      (sources."tar-stream-2.1.4" // {
+      (sources."tar-stream-2.2.0" // {
         dependencies = [
           sources."readable-stream-3.6.0"
         ];
@@ -84311,10 +87538,10 @@ in
   markdown-link-check = nodeEnv.buildNodePackage {
     name = "markdown-link-check";
     packageName = "markdown-link-check";
-    version = "3.8.4";
+    version = "3.8.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/markdown-link-check/-/markdown-link-check-3.8.4.tgz";
-      sha512 = "7uIEdppB5S8A/Wla+lUm40HJUg2qvZD7UPx2bSWgChe/my487whvNMf19M1T/j9LQXzRvIIDTYrec7+diJyKqg==";
+      url = "https://registry.npmjs.org/markdown-link-check/-/markdown-link-check-3.8.5.tgz";
+      sha512 = "raCr1YMrIqCUFrBTp90UHDsar/79TPgzlVHA7gSi1DnhM2/BC1lm49V+PGzBd1ZpIYwkmzQ6TYm0AfK7A82/Dw==";
     };
     dependencies = [
       sources."ajv-6.12.6"
@@ -84331,7 +87558,7 @@ in
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."combined-stream-1.0.8"
-      sources."commander-6.2.0"
+      sources."commander-6.2.1"
       sources."core-util-is-1.0.2"
       sources."dashdash-1.14.1"
       sources."delayed-stream-1.0.0"
@@ -84357,13 +87584,13 @@ in
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsprim-1.4.1"
-      sources."link-check-4.5.3"
+      sources."link-check-4.5.4"
       sources."lodash-4.17.20"
       sources."markdown-link-extractor-1.2.6"
-      sources."marked-1.2.5"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
-      sources."ms-2.1.2"
+      sources."marked-1.2.7"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
+      sources."ms-2.1.3"
       sources."oauth-sign-0.9.0"
       sources."performance-now-2.1.0"
       sources."progress-2.0.3"
@@ -84395,10 +87622,10 @@ in
   mastodon-bot = nodeEnv.buildNodePackage {
     name = "mastodon-bot";
     packageName = "mastodon-bot";
-    version = "1.10.2";
+    version = "1.10.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/mastodon-bot/-/mastodon-bot-1.10.2.tgz";
-      sha512 = "0egBr67f661HiYhCi0qGPt9RlMDownALwzGxIa5rfKncgcx16cIyy9Dm+LvN7vPaSwdJCwmrqVK+qXOHEzRJYQ==";
+      url = "https://registry.npmjs.org/mastodon-bot/-/mastodon-bot-1.10.3.tgz";
+      sha512 = "0/oDK4jgCpcQplwWihbT8RNJ2Kz1rb87IcY5/RG8RyFDDgEyXvlfLH5J5x/kRjjnz2E35yOLNQr1jm/0irQ8bg==";
     };
     dependencies = [
       sources."acorn-5.7.4"
@@ -84552,7 +87779,7 @@ in
       sources."isarray-1.0.0"
       sources."isstream-0.1.2"
       sources."js-tokens-3.0.2"
-      sources."js-yaml-3.14.0"
+      sources."js-yaml-3.14.1"
       sources."jsbn-0.1.1"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
@@ -84581,8 +87808,8 @@ in
       sources."lodash.templatesettings-3.1.1"
       sources."mastodon-api-1.3.0"
       sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
@@ -84745,13 +87972,14 @@ in
   "@mermaid-js/mermaid-cli" = nodeEnv.buildNodePackage {
     name = "_at_mermaid-js_slash_mermaid-cli";
     packageName = "@mermaid-js/mermaid-cli";
-    version = "8.8.3-2";
+    version = "8.8.4-1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@mermaid-js/mermaid-cli/-/mermaid-cli-8.8.3-2.tgz";
-      sha512 = "8tXy9R4hcUKgyRS2EOOZzQYlM3jDBIrC04w8YiiTBhTUpm0UuDYpzO+VDjFjxEGBj+KyAzEI3/7oAdV6kYHUMg==";
+      url = "https://registry.npmjs.org/@mermaid-js/mermaid-cli/-/mermaid-cli-8.8.4-1.tgz";
+      sha512 = "4rg3vEBnNMx7cVM4y/pRa6WAbKSoFvPZc4GGUkar4it/pH3PpktOq/wr99mOOu8L/uQEJHpRxed+eRpK75Rn/w==";
     };
     dependencies = [
-      sources."@types/node-14.14.10"
+      sources."@braintree/sanitize-url-3.1.0"
+      sources."@types/node-14.14.19"
       sources."@types/yauzl-2.9.1"
       sources."agent-base-5.1.1"
       sources."ansi-styles-4.3.0"
@@ -84761,15 +87989,58 @@ in
       sources."brace-expansion-1.1.11"
       sources."buffer-5.7.1"
       sources."buffer-crc32-0.2.13"
+      sources."buffer-from-1.1.1"
+      sources."camel-case-3.0.0"
       sources."chalk-4.1.0"
       sources."chownr-1.1.4"
+      sources."clean-css-4.2.3"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."commander-6.2.0"
+      sources."commander-6.2.1"
       sources."concat-map-0.0.1"
-      sources."debug-4.3.1"
+      sources."css-b64-images-0.2.5"
+      sources."d3-5.16.0"
+      sources."d3-array-1.2.4"
+      sources."d3-axis-1.0.12"
+      sources."d3-brush-1.1.6"
+      sources."d3-chord-1.0.6"
+      sources."d3-collection-1.0.7"
+      sources."d3-color-1.4.1"
+      sources."d3-contour-1.3.2"
+      sources."d3-dispatch-1.0.6"
+      sources."d3-drag-1.2.5"
+      (sources."d3-dsv-1.2.0" // {
+        dependencies = [
+          sources."commander-2.20.3"
+        ];
+      })
+      sources."d3-ease-1.0.7"
+      sources."d3-fetch-1.2.0"
+      sources."d3-force-1.2.1"
+      sources."d3-format-1.4.5"
+      sources."d3-geo-1.12.1"
+      sources."d3-hierarchy-1.1.9"
+      sources."d3-interpolate-1.4.0"
+      sources."d3-path-1.0.9"
+      sources."d3-polygon-1.0.6"
+      sources."d3-quadtree-1.0.7"
+      sources."d3-random-1.1.2"
+      sources."d3-scale-2.2.2"
+      sources."d3-scale-chromatic-1.5.0"
+      sources."d3-selection-1.4.2"
+      sources."d3-shape-1.3.7"
+      sources."d3-time-1.1.0"
+      sources."d3-time-format-2.3.0"
+      sources."d3-timer-1.0.10"
+      sources."d3-transition-1.3.2"
+      sources."d3-voronoi-1.1.4"
+      sources."d3-zoom-1.8.3"
+      sources."dagre-0.8.5"
+      sources."dagre-d3-0.6.4"
+      sources."debug-4.3.2"
       sources."devtools-protocol-0.0.818844"
       sources."end-of-stream-1.4.4"
+      sources."entity-decode-2.0.2"
       sources."extract-zip-2.0.1"
       sources."fd-slicer-1.1.0"
       sources."find-up-4.1.0"
@@ -84777,20 +88048,36 @@ in
       sources."fs.realpath-1.0.0"
       sources."get-stream-5.2.0"
       sources."glob-7.1.6"
+      sources."graphlib-2.1.8"
       sources."has-flag-4.0.0"
+      sources."he-1.2.0"
+      (sources."html-minifier-4.0.0" // {
+        dependencies = [
+          sources."commander-2.20.3"
+        ];
+      })
       sources."https-proxy-agent-4.0.0"
+      sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
+      sources."khroma-1.1.1"
       sources."locate-path-5.0.0"
+      sources."lodash-4.17.20"
+      sources."lower-case-1.1.4"
+      sources."mermaid-8.8.4"
+      sources."minify-4.1.3"
       sources."minimatch-3.0.4"
       sources."mkdirp-classic-0.5.3"
+      sources."moment-mini-2.24.0"
       sources."ms-2.1.2"
+      sources."no-case-2.3.2"
       sources."node-fetch-2.6.1"
       sources."once-1.4.0"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
       sources."p-try-2.2.0"
+      sources."param-case-2.1.1"
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
       sources."pend-1.2.0"
@@ -84800,17 +88087,32 @@ in
       sources."pump-3.0.0"
       sources."puppeteer-5.5.0"
       sources."readable-stream-3.6.0"
+      sources."relateurl-0.2.7"
       sources."rimraf-3.0.2"
+      sources."rw-1.3.3"
       sources."safe-buffer-5.2.1"
+      sources."safer-buffer-2.1.2"
+      sources."source-map-0.6.1"
+      sources."source-map-support-0.5.19"
       sources."string_decoder-1.3.0"
+      sources."stylis-3.5.4"
       sources."supports-color-7.2.0"
       sources."tar-fs-2.1.1"
-      sources."tar-stream-2.1.4"
+      sources."tar-stream-2.2.0"
+      (sources."terser-4.8.0" // {
+        dependencies = [
+          sources."commander-2.20.3"
+        ];
+      })
       sources."through-2.3.8"
+      sources."try-catch-2.0.1"
+      sources."try-to-catch-1.1.1"
+      sources."uglify-js-3.12.4"
       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.1"
+      sources."ws-7.4.2"
       sources."yauzl-2.10.0"
     ];
     buildInputs = globalBuildInputs;
@@ -84826,26 +88128,22 @@ in
   mirakurun = nodeEnv.buildNodePackage {
     name = "mirakurun";
     packageName = "mirakurun";
-    version = "3.3.1";
+    version = "3.4.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/mirakurun/-/mirakurun-3.3.1.tgz";
-      sha512 = "uCsn3t7bV3jmy8mcgl19wowBq69Xz/Z/WUkazOC9PXvzzb9j5wvfr+qrwB5GtHkLBFIaBVI59HIX+JJ637jVmA==";
+      url = "https://registry.npmjs.org/mirakurun/-/mirakurun-3.4.1.tgz";
+      sha512 = "ymTdhda+4t6njz8xY8ySZS4nDEDEb+zXhmn1JzzxlribUqELcKZ6FwC8JF8HhHg3tcKeFAwVLzL6kHcaqL+okQ==";
     };
     dependencies = [
       sources."@fluentui/date-time-utilities-7.9.0"
       sources."@fluentui/dom-utilities-1.1.1"
       sources."@fluentui/keyboard-key-0.2.12"
-      sources."@fluentui/react-7.153.4"
-      sources."@fluentui/react-compose-0.19.12"
-      sources."@fluentui/react-focus-7.16.19"
-      sources."@fluentui/react-stylesheets-0.2.4"
-      sources."@fluentui/react-theme-provider-0.18.0"
+      sources."@fluentui/react-7.155.3"
+      sources."@fluentui/react-focus-7.17.0"
       sources."@fluentui/react-window-provider-1.0.1"
       sources."@fluentui/theme-1.7.0"
-      sources."@microsoft/load-themed-styles-1.10.139"
+      sources."@microsoft/load-themed-styles-1.10.141"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@types/classnames-2.2.11"
       sources."@uifabric/foundation-7.9.20"
       sources."@uifabric/icons-7.5.17"
       sources."@uifabric/merge-styles-7.19.1"
@@ -84884,7 +88182,6 @@ in
       })
       sources."chalk-1.1.3"
       sources."chardet-0.4.2"
-      sources."classnames-2.2.6"
       sources."cli-cursor-2.1.0"
       sources."cli-width-2.2.1"
       sources."clone-response-1.0.2"
@@ -84920,7 +88217,7 @@ in
       sources."eventemitter3-4.0.7"
       sources."express-4.17.1"
       sources."express-normalize-query-params-middleware-0.5.1"
-      sources."express-openapi-6.0.0"
+      sources."express-openapi-7.2.0"
       sources."external-editor-2.2.0"
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
@@ -84928,7 +88225,7 @@ in
       sources."finalhandler-1.1.2"
       sources."forwarded-0.1.2"
       sources."fresh-0.5.2"
-      sources."fs-routes-2.0.0"
+      sources."fs-routes-7.0.1"
       sources."fs.realpath-1.0.0"
       sources."get-stream-4.1.0"
       sources."glob-7.1.6"
@@ -84940,7 +88237,7 @@ in
       sources."ieee754-1.2.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.3"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."inquirer-3.0.6"
       sources."ip-1.1.5"
       sources."ipaddr.js-1.9.1"
@@ -84948,7 +88245,7 @@ in
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-stream-1.1.0"
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.14.0"
+      sources."js-yaml-3.14.1"
       sources."json-buffer-3.0.0"
       sources."json-schema-traverse-0.4.1"
       sources."keyv-3.1.0"
@@ -84962,8 +88259,8 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-fn-1.2.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
@@ -84980,28 +88277,20 @@ in
       sources."node-fetch-1.6.3"
       sources."normalize-url-4.5.0"
       sources."object-assign-4.1.1"
-      sources."office-ui-fabric-react-7.153.4"
+      sources."office-ui-fabric-react-7.155.3"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
       sources."onetime-2.0.1"
-      sources."openapi-default-setter-2.1.0"
-      sources."openapi-framework-0.26.0"
-      sources."openapi-jsonschema-parameters-1.2.0"
-      sources."openapi-request-coercer-2.4.0"
-      sources."openapi-request-validator-4.2.0"
-      sources."openapi-response-validator-4.0.0"
-      (sources."openapi-schema-validator-3.0.3" // {
-        dependencies = [
-          sources."openapi-types-1.3.4"
-        ];
-      })
-      (sources."openapi-security-handler-2.0.4" // {
-        dependencies = [
-          sources."openapi-types-1.3.4"
-        ];
-      })
-      sources."openapi-types-1.3.5"
+      sources."openapi-default-setter-7.0.1"
+      sources."openapi-framework-7.2.0"
+      sources."openapi-jsonschema-parameters-7.0.2"
+      sources."openapi-request-coercer-7.1.0"
+      sources."openapi-request-validator-7.2.0"
+      sources."openapi-response-validator-7.0.1"
+      sources."openapi-schema-validator-7.0.1"
+      sources."openapi-security-handler-7.0.1"
+      sources."openapi-types-7.0.1"
       (sources."opencollective-1.0.3" // {
         dependencies = [
           sources."minimist-1.2.0"
@@ -85079,8 +88368,8 @@ 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.37.2"
-      sources."tail-2.0.4"
+      sources."swagger-ui-dist-3.38.0"
+      sources."tail-2.1.1"
       sources."through-2.3.8"
       sources."tmp-0.0.33"
       sources."to-readable-stream-1.0.0"
@@ -85266,7 +88555,7 @@ in
       sources."graphlib-2.1.8"
       sources."inherits-2.0.4"
       sources."isarray-1.0.0"
-      sources."js-yaml-3.14.0"
+      sources."js-yaml-3.14.1"
       (sources."json-refs-3.0.15" // {
         dependencies = [
           sources."commander-4.1.1"
@@ -85275,9 +88564,9 @@ in
       sources."lodash-4.17.20"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
-      sources."ms-2.1.2"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
+      sources."ms-2.1.3"
       sources."native-promise-only-0.8.1"
       sources."path-loader-1.0.10"
       sources."process-nextick-args-2.0.1"
@@ -85335,7 +88624,7 @@ in
       sources."lodash.omit-4.5.0"
       sources."logform-2.2.0"
       sources."lru-cache-6.0.0"
-      sources."ms-2.1.2"
+      sources."ms-2.1.3"
       sources."one-time-0.0.4"
       sources."process-nextick-args-2.0.1"
       sources."readable-stream-3.6.0"
@@ -85370,21 +88659,21 @@ in
   netlify-cli = nodeEnv.buildNodePackage {
     name = "netlify-cli";
     packageName = "netlify-cli";
-    version = "2.69.1";
+    version = "2.69.11";
     src = fetchurl {
-      url = "https://registry.npmjs.org/netlify-cli/-/netlify-cli-2.69.1.tgz";
-      sha512 = "e6C2UT0yt9RblWuLIQKZwR2xzwVcBX5PnDrYTsBnVaBNs6ddorpWjHm/qRx7No7CH5P7ITI8b3W4fQhOsQSo7g==";
+      url = "https://registry.npmjs.org/netlify-cli/-/netlify-cli-2.69.11.tgz";
+      sha512 = "d6yj11oi+4lzS2dkXYGmhzYlU90S+2utjnrkwD2DdIPGuLLax0XISZ7TMdTPdPuhRF7o0Z9U0GcMMd/0VH3ukQ==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.4"
+      sources."@babel/code-frame-7.12.11"
       sources."@babel/compat-data-7.12.7"
-      (sources."@babel/core-7.12.9" // {
+      (sources."@babel/core-7.12.10" // {
         dependencies = [
           sources."semver-5.7.1"
         ];
       })
-      sources."@babel/generator-7.12.5"
-      sources."@babel/helper-annotate-as-pure-7.10.4"
+      sources."@babel/generator-7.12.11"
+      sources."@babel/helper-annotate-as-pure-7.12.10"
       sources."@babel/helper-builder-binary-assignment-operator-visitor-7.10.4"
       (sources."@babel/helper-compilation-targets-7.12.5" // {
         dependencies = [
@@ -85395,26 +88684,26 @@ in
       sources."@babel/helper-create-regexp-features-plugin-7.12.7"
       sources."@babel/helper-define-map-7.10.5"
       sources."@babel/helper-explode-assignable-expression-7.12.1"
-      sources."@babel/helper-function-name-7.10.4"
-      sources."@babel/helper-get-function-arity-7.10.4"
+      sources."@babel/helper-function-name-7.12.11"
+      sources."@babel/helper-get-function-arity-7.12.10"
       sources."@babel/helper-hoist-variables-7.10.4"
       sources."@babel/helper-member-expression-to-functions-7.12.7"
       sources."@babel/helper-module-imports-7.12.5"
       sources."@babel/helper-module-transforms-7.12.1"
-      sources."@babel/helper-optimise-call-expression-7.12.7"
+      sources."@babel/helper-optimise-call-expression-7.12.10"
       sources."@babel/helper-plugin-utils-7.10.4"
       sources."@babel/helper-remap-async-to-generator-7.12.1"
-      sources."@babel/helper-replace-supers-7.12.5"
+      sources."@babel/helper-replace-supers-7.12.11"
       sources."@babel/helper-simple-access-7.12.1"
       sources."@babel/helper-skip-transparent-expression-wrappers-7.12.1"
-      sources."@babel/helper-split-export-declaration-7.11.0"
-      sources."@babel/helper-validator-identifier-7.10.4"
-      sources."@babel/helper-validator-option-7.12.1"
+      sources."@babel/helper-split-export-declaration-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
+      sources."@babel/helper-validator-option-7.12.11"
       sources."@babel/helper-wrap-function-7.12.3"
       sources."@babel/helpers-7.12.5"
       sources."@babel/highlight-7.10.4"
-      sources."@babel/parser-7.12.7"
-      sources."@babel/plugin-proposal-async-generator-functions-7.12.1"
+      sources."@babel/parser-7.12.11"
+      sources."@babel/plugin-proposal-async-generator-functions-7.12.12"
       sources."@babel/plugin-proposal-class-properties-7.12.1"
       sources."@babel/plugin-proposal-dynamic-import-7.12.1"
       sources."@babel/plugin-proposal-export-namespace-from-7.12.1"
@@ -85442,7 +88731,7 @@ in
       sources."@babel/plugin-transform-arrow-functions-7.12.1"
       sources."@babel/plugin-transform-async-to-generator-7.12.1"
       sources."@babel/plugin-transform-block-scoped-functions-7.12.1"
-      sources."@babel/plugin-transform-block-scoping-7.12.1"
+      sources."@babel/plugin-transform-block-scoping-7.12.12"
       sources."@babel/plugin-transform-classes-7.12.1"
       sources."@babel/plugin-transform-computed-properties-7.12.1"
       sources."@babel/plugin-transform-destructuring-7.12.1"
@@ -85468,10 +88757,10 @@ in
       sources."@babel/plugin-transform-spread-7.12.1"
       sources."@babel/plugin-transform-sticky-regex-7.12.7"
       sources."@babel/plugin-transform-template-literals-7.12.1"
-      sources."@babel/plugin-transform-typeof-symbol-7.12.1"
+      sources."@babel/plugin-transform-typeof-symbol-7.12.10"
       sources."@babel/plugin-transform-unicode-escapes-7.12.1"
       sources."@babel/plugin-transform-unicode-regex-7.12.1"
-      (sources."@babel/preset-env-7.12.7" // {
+      (sources."@babel/preset-env-7.12.11" // {
         dependencies = [
           sources."semver-5.7.1"
         ];
@@ -85479,30 +88768,33 @@ in
       sources."@babel/preset-modules-0.1.4"
       sources."@babel/runtime-7.12.5"
       sources."@babel/template-7.12.7"
-      sources."@babel/traverse-7.12.9"
-      sources."@babel/types-7.12.7"
-      sources."@bugsnag/browser-7.5.3"
-      sources."@bugsnag/core-7.5.3"
+      sources."@babel/traverse-7.12.12"
+      sources."@babel/types-7.12.12"
+      sources."@bugsnag/browser-7.5.4"
+      sources."@bugsnag/core-7.5.4"
       sources."@bugsnag/cuid-3.0.0"
-      sources."@bugsnag/js-7.5.3"
-      sources."@bugsnag/node-7.5.3"
+      sources."@bugsnag/js-7.5.4"
+      sources."@bugsnag/node-7.5.4"
       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-5.5.5" // {
+      (sources."@netlify/build-8.0.0" // {
         dependencies = [
+          sources."ansi-styles-4.3.0"
           sources."chalk-3.0.0"
           sources."resolve-2.0.0-next.2"
         ];
       })
       sources."@netlify/cache-utils-1.0.6"
-      (sources."@netlify/config-2.4.1" // {
+      (sources."@netlify/config-2.4.2" // {
         dependencies = [
+          sources."ansi-styles-4.3.0"
           sources."chalk-3.0.0"
+          sources."netlify-5.0.2"
         ];
       })
-      sources."@netlify/functions-utils-1.3.2"
+      sources."@netlify/functions-utils-1.3.3"
       (sources."@netlify/git-utils-1.0.6" // {
         dependencies = [
           sources."braces-3.0.2"
@@ -85514,35 +88806,37 @@ in
       })
       sources."@netlify/open-api-0.18.1"
       sources."@netlify/plugin-edge-handlers-1.10.0"
-      sources."@netlify/plugins-list-2.0.1"
+      sources."@netlify/plugins-list-2.2.0"
       sources."@netlify/run-utils-1.0.5"
       sources."@netlify/traffic-mesh-agent-0.27.0"
       sources."@netlify/traffic-mesh-agent-darwin-x64-0.27.0"
       sources."@netlify/traffic-mesh-agent-linux-x64-0.27.0"
       sources."@netlify/traffic-mesh-agent-win32-x64-0.27.0"
-      (sources."@netlify/zip-it-and-ship-it-1.5.0" // {
+      (sources."@netlify/zip-it-and-ship-it-1.7.0" // {
         dependencies = [
           sources."resolve-2.0.0-next.2"
         ];
       })
-      (sources."@nodelib/fs.scandir-2.1.3" // {
+      (sources."@nodelib/fs.scandir-2.1.4" // {
         dependencies = [
-          sources."@nodelib/fs.stat-2.0.3"
+          sources."@nodelib/fs.stat-2.0.4"
         ];
       })
       sources."@nodelib/fs.stat-1.1.3"
-      sources."@nodelib/fs.walk-1.2.4"
+      sources."@nodelib/fs.walk-1.2.6"
       (sources."@oclif/color-0.1.2" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           (sources."chalk-3.0.0" // {
             dependencies = [
               sources."ansi-styles-4.3.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
               sources."supports-color-7.2.0"
             ];
           })
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
           sources."has-flag-3.0.0"
           sources."strip-ansi-5.2.0"
           sources."supports-color-5.5.0"
@@ -85550,9 +88844,11 @@ in
       })
       (sources."@oclif/command-1.8.0" // {
         dependencies = [
-          sources."@oclif/plugin-help-3.2.0"
+          sources."@oclif/plugin-help-3.2.1"
           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."is-fullwidth-code-point-2.0.0"
           sources."string-width-2.1.1"
           sources."strip-ansi-4.0.0"
@@ -85561,7 +88857,7 @@ in
       })
       (sources."@oclif/config-1.17.0" // {
         dependencies = [
-          sources."@nodelib/fs.stat-2.0.3"
+          sources."@nodelib/fs.stat-2.0.4"
           sources."array-union-2.1.0"
           sources."braces-3.0.2"
           sources."dir-glob-3.0.1"
@@ -85579,6 +88875,7 @@ in
       })
       (sources."@oclif/errors-1.3.4" // {
         dependencies = [
+          sources."ansi-styles-4.3.0"
           sources."clean-stack-3.0.1"
           sources."wrap-ansi-7.0.0"
         ];
@@ -85589,6 +88886,8 @@ in
         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"
@@ -85611,6 +88910,8 @@ in
         dependencies = [
           sources."ansi-styles-3.2.1"
           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"
@@ -85620,11 +88921,20 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      (sources."@oclif/plugin-plugins-1.9.4" // {
+      (sources."@oclif/plugin-plugins-1.9.5" // {
         dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.0"
+          sources."fs-extra-9.0.1"
+          (sources."jsonfile-6.1.0" // {
+            dependencies = [
+              sources."universalify-2.0.0"
+            ];
+          })
           sources."npm-run-path-4.0.1"
           sources."path-key-3.1.1"
           sources."tslib-2.0.3"
+          sources."universalify-1.0.0"
         ];
       })
       sources."@oclif/screen-1.0.4"
@@ -85635,7 +88945,7 @@ in
           sources."universal-user-agent-6.0.0"
         ];
       })
-      sources."@octokit/openapi-types-2.0.0"
+      sources."@octokit/openapi-types-2.0.1"
       (sources."@octokit/plugin-paginate-rest-1.1.2" // {
         dependencies = [
           sources."@octokit/types-2.16.2"
@@ -85660,11 +88970,11 @@ in
         ];
       })
       sources."@octokit/rest-16.43.2"
-      sources."@octokit/types-6.1.1"
+      sources."@octokit/types-6.1.2"
       sources."@rollup/plugin-babel-5.2.2"
       (sources."@rollup/plugin-commonjs-15.1.0" // {
         dependencies = [
-          sources."estree-walker-2.0.1"
+          sources."estree-walker-2.0.2"
         ];
       })
       sources."@rollup/plugin-inject-4.0.2"
@@ -85691,7 +89001,7 @@ in
       sources."@types/istanbul-reports-1.1.2"
       sources."@types/minimatch-3.0.3"
       sources."@types/mkdirp-0.5.2"
-      sources."@types/node-14.14.10"
+      sources."@types/node-14.14.19"
       sources."@types/node-fetch-2.5.7"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/parse5-5.0.3"
@@ -85699,7 +89009,7 @@ in
       sources."@types/semver-5.5.0"
       sources."@types/unist-2.0.3"
       sources."@types/yargs-13.0.11"
-      sources."@types/yargs-parser-15.0.0"
+      sources."@types/yargs-parser-20.2.0"
       sources."@typescript-eslint/typescript-estree-2.34.0"
       sources."@ungap/from-entries-0.2.1"
       (sources."abstract-leveldown-0.12.4" // {
@@ -85720,12 +89030,7 @@ in
       })
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-4.1.0"
-      (sources."ansi-styles-4.3.0" // {
-        dependencies = [
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-        ];
-      })
+      sources."ansi-styles-5.0.0"
       sources."ansicolors-0.3.2"
       sources."anymatch-3.1.1"
       (sources."archive-type-4.0.0" // {
@@ -85733,12 +89038,14 @@ in
           sources."file-type-4.4.0"
         ];
       })
-      (sources."archiver-4.0.2" // {
+      sources."archiver-4.0.2"
+      (sources."archiver-utils-2.1.0" // {
         dependencies = [
-          sources."readable-stream-3.6.0"
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
         ];
       })
-      sources."archiver-utils-2.1.0"
       sources."argparse-1.0.10"
       sources."arr-diff-4.0.0"
       sources."arr-flatten-1.1.0"
@@ -85759,9 +89066,10 @@ in
       sources."ast-module-types-2.7.1"
       sources."async-3.2.0"
       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.804.0" // {
+      (sources."aws-sdk-2.820.0" // {
         dependencies = [
           sources."buffer-4.9.2"
           sources."ieee754-1.1.13"
@@ -85791,11 +89099,13 @@ in
       (sources."body-parser-1.19.0" // {
         dependencies = [
           sources."debug-2.6.9"
+          sources."qs-6.7.0"
           sources."raw-body-2.4.0"
         ];
       })
       (sources."boxen-4.2.0" // {
         dependencies = [
+          sources."ansi-styles-4.3.0"
           sources."chalk-3.0.0"
         ];
       })
@@ -85811,12 +89121,8 @@ in
       sources."browserify-des-1.0.2"
       sources."browserify-fs-1.0.0"
       sources."browserify-rsa-4.1.0"
-      (sources."browserify-sign-4.2.1" // {
-        dependencies = [
-          sources."readable-stream-3.6.0"
-        ];
-      })
-      sources."browserslist-4.15.0"
+      sources."browserify-sign-4.2.1"
+      sources."browserslist-4.16.0"
       sources."btoa-lite-1.0.0"
       sources."buffer-5.7.1"
       sources."buffer-alloc-1.2.0"
@@ -85826,7 +89132,7 @@ in
       sources."buffer-fill-1.0.0"
       sources."buffer-from-1.1.1"
       sources."buffer-xor-1.0.3"
-      sources."builtin-modules-3.1.0"
+      sources."builtin-modules-3.2.0"
       sources."builtins-1.0.3"
       sources."byline-5.0.0"
       sources."bytes-3.1.0"
@@ -85840,13 +89146,15 @@ in
       sources."call-bind-1.0.0"
       sources."call-me-maybe-1.0.1"
       sources."camelcase-5.3.1"
-      sources."caniuse-lite-1.0.30001165"
+      sources."caniuse-lite-1.0.30001171"
       sources."cardinal-2.1.1"
       sources."caw-2.0.1"
       sources."ccount-1.1.0"
       (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."escape-string-regexp-1.0.5"
           sources."has-flag-3.0.0"
           sources."supports-color-5.5.0"
@@ -85892,6 +89200,7 @@ in
       (sources."cli-ux-5.5.1" // {
         dependencies = [
           sources."ansi-escapes-4.3.1"
+          sources."ansi-styles-4.3.0"
           sources."chalk-4.1.0"
           sources."clean-stack-3.0.1"
           sources."extract-stack-2.0.0"
@@ -85905,9 +89214,14 @@ in
       sources."clone-0.1.19"
       sources."clone-response-1.0.2"
       sources."collection-visit-1.0.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.4"
       sources."colorette-1.2.1"
       sources."colors-1.4.0"
@@ -85918,16 +89232,33 @@ 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"
+      (sources."compress-commons-3.0.0" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
       sources."concat-map-0.0.1"
-      sources."concat-stream-1.6.2"
+      (sources."concat-stream-1.6.2" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
       (sources."concordance-4.0.0" // {
         dependencies = [
           sources."semver-5.7.1"
         ];
       })
       sources."config-chain-1.1.12"
-      sources."configstore-5.0.1"
+      (sources."configstore-5.0.1" // {
+        dependencies = [
+          sources."crypto-random-string-2.0.0"
+          sources."unique-string-2.0.0"
+        ];
+      })
       (sources."content-disposition-0.5.3" // {
         dependencies = [
           sources."safe-buffer-5.1.2"
@@ -85945,10 +89276,13 @@ in
       (sources."copy-template-dir-1.4.0" // {
         dependencies = [
           sources."pump-1.0.3"
+          sources."readable-stream-2.3.7"
           sources."readdirp-2.2.1"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
         ];
       })
-      (sources."core-js-compat-3.8.0" // {
+      (sources."core-js-compat-3.8.1" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -85961,11 +89295,7 @@ in
         ];
       })
       sources."crc-3.8.0"
-      (sources."crc32-stream-3.0.1" // {
-        dependencies = [
-          sources."readable-stream-3.6.0"
-        ];
-      })
+      sources."crc32-stream-3.0.1"
       (sources."create-ecdh-4.0.4" // {
         dependencies = [
           sources."bn.js-4.11.9"
@@ -85980,10 +89310,10 @@ in
         ];
       })
       sources."crypto-browserify-3.12.0"
-      sources."crypto-random-string-2.0.0"
+      sources."crypto-random-string-1.0.0"
       sources."cyclist-1.0.1"
       sources."date-time-2.1.0"
-      (sources."debug-4.3.1" // {
+      (sources."debug-4.3.2" // {
         dependencies = [
           sources."ms-2.1.2"
         ];
@@ -86005,6 +89335,9 @@ in
         dependencies = [
           sources."bl-1.2.3"
           sources."file-type-5.2.0"
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
           sources."tar-stream-1.6.2"
         ];
       })
@@ -86090,7 +89423,7 @@ in
       })
       sources."duplexer3-0.1.4"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.616"
+      sources."electron-to-chromium-1.3.633"
       sources."elf-cam-0.1.1"
       (sources."elliptic-6.5.3" // {
         dependencies = [
@@ -86102,11 +89435,9 @@ in
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
       sources."envinfo-7.7.3"
-      sources."errno-0.1.7"
+      sources."errno-0.1.8"
       sources."error-ex-1.3.2"
       sources."error-stack-parser-2.0.6"
-      sources."es-abstract-1.17.7"
-      sources."es-to-primitive-1.2.1"
       sources."escalade-3.1.1"
       sources."escape-goat-2.1.1"
       sources."escape-html-1.0.3"
@@ -86159,6 +89490,7 @@ in
         dependencies = [
           sources."cookie-0.4.0"
           sources."debug-2.6.9"
+          sources."qs-6.7.0"
           sources."safe-buffer-5.1.2"
         ];
       })
@@ -86189,7 +89521,7 @@ in
       sources."fast-levenshtein-2.0.6"
       sources."fast-safe-stringify-2.0.7"
       sources."fast-stringify-1.1.2"
-      sources."fastq-1.9.0"
+      sources."fastq-1.10.0"
       sources."fd-slicer-1.1.0"
       sources."fecha-4.2.0"
       (sources."figures-3.2.0" // {
@@ -86214,21 +89546,23 @@ in
       })
       sources."find-up-4.1.0"
       sources."flatten-1.0.3"
-      (sources."flush-write-stream-2.0.0" // {
-        dependencies = [
-          sources."readable-stream-3.6.0"
-        ];
-      })
+      sources."flush-write-stream-2.0.0"
       sources."fn.name-1.1.0"
       sources."folder-walker-3.2.0"
-      sources."follow-redirects-1.13.0"
+      sources."follow-redirects-1.13.1"
       sources."for-in-1.0.2"
       sources."foreach-2.0.5"
       sources."form-data-3.0.0"
       sources."forwarded-0.1.2"
       sources."fragment-cache-0.2.1"
       sources."fresh-0.5.2"
-      sources."from2-2.3.0"
+      (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."from2-array-0.0.4"
       sources."fs-constants-1.0.0"
       sources."fs-extra-8.1.0"
@@ -86246,7 +89580,7 @@ in
       sources."gensync-1.0.0-beta.2"
       sources."get-amd-module-type-3.0.0"
       sources."get-caller-file-2.0.5"
-      sources."get-intrinsic-1.0.1"
+      sources."get-intrinsic-1.0.2"
       sources."get-port-5.1.1"
       sources."get-proxy-2.1.0"
       sources."get-stream-5.2.0"
@@ -86266,11 +89600,15 @@ in
       })
       sources."glob-to-regexp-0.3.0"
       sources."global-cache-dir-1.0.1"
-      sources."global-dirs-2.0.1"
+      (sources."global-dirs-2.1.0" // {
+        dependencies = [
+          sources."ini-1.3.7"
+        ];
+      })
       sources."globals-11.12.0"
       (sources."globby-10.0.2" // {
         dependencies = [
-          sources."@nodelib/fs.stat-2.0.3"
+          sources."@nodelib/fs.stat-2.0.4"
           sources."array-union-2.1.0"
           sources."braces-3.0.2"
           sources."dir-glob-3.0.1"
@@ -86314,11 +89652,7 @@ in
         ];
       })
       sources."has-yarn-2.1.0"
-      (sources."hash-base-3.1.0" // {
-        dependencies = [
-          sources."readable-stream-3.6.0"
-        ];
-      })
+      sources."hash-base-3.1.0"
       sources."hash.js-1.1.7"
       (sources."hasha-5.2.2" // {
         dependencies = [
@@ -86370,7 +89704,7 @@ in
       sources."indexof-0.0.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       (sources."inquirer-6.5.2" // {
         dependencies = [
           sources."ansi-regex-3.0.0"
@@ -86392,6 +89726,7 @@ in
       (sources."inquirer-autocomplete-prompt-1.3.0" // {
         dependencies = [
           sources."ansi-escapes-4.3.1"
+          sources."ansi-styles-4.3.0"
           sources."chalk-4.1.0"
           sources."type-fest-0.11.0"
         ];
@@ -86403,11 +89738,9 @@ in
       sources."is-arrayish-0.2.1"
       sources."is-binary-path-2.1.0"
       sources."is-buffer-1.1.6"
-      sources."is-callable-1.2.2"
       sources."is-ci-2.0.0"
       sources."is-core-module-2.2.0"
       sources."is-data-descriptor-1.0.0"
-      sources."is-date-object-1.0.2"
       sources."is-descriptor-1.0.2"
       sources."is-docker-2.1.1"
       sources."is-extendable-0.1.1"
@@ -86418,7 +89751,6 @@ in
       sources."is-interactive-1.0.0"
       sources."is-module-1.0.0"
       sources."is-natural-number-4.0.1"
-      sources."is-negative-zero-2.0.1"
       sources."is-npm-4.0.0"
       (sources."is-number-3.0.0" // {
         dependencies = [
@@ -86432,10 +89764,8 @@ in
       sources."is-plain-obj-2.1.0"
       sources."is-plain-object-2.0.4"
       sources."is-reference-1.2.1"
-      sources."is-regex-1.1.1"
       sources."is-retry-allowed-1.2.0"
       sources."is-stream-1.1.0"
-      sources."is-symbol-1.0.3"
       sources."is-typedarray-1.0.0"
       sources."is-url-1.2.4"
       sources."is-windows-1.0.2"
@@ -86457,7 +89787,7 @@ in
       sources."jmespath-0.15.0"
       sources."js-string-escape-1.0.1"
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.14.0"
+      sources."js-yaml-3.14.1"
       sources."jsesc-2.5.2"
       sources."json-buffer-3.0.0"
       sources."json-parse-better-errors-1.0.2"
@@ -86472,11 +89802,17 @@ in
       sources."kuler-2.0.0"
       (sources."lambda-local-1.7.4" // {
         dependencies = [
-          sources."commander-6.2.0"
+          sources."commander-6.2.1"
         ];
       })
       sources."latest-version-5.1.0"
-      sources."lazystream-1.0.0"
+      (sources."lazystream-1.0.0" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
       (sources."level-blobs-0.1.7" // {
         dependencies = [
           sources."isarray-0.0.1"
@@ -86550,13 +89886,14 @@ in
       sources."lodash.uniq-4.5.0"
       (sources."log-process-errors-5.1.2" // {
         dependencies = [
+          sources."ansi-styles-4.3.0"
           sources."chalk-3.0.0"
         ];
       })
       sources."log-symbols-3.0.0"
       (sources."logform-2.2.0" // {
         dependencies = [
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
       sources."lowercase-keys-1.0.1"
@@ -86596,8 +89933,8 @@ in
         ];
       })
       sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-fn-3.1.0"
       sources."mimic-response-1.0.1"
       sources."minimalistic-assert-1.0.1"
@@ -86635,16 +89972,18 @@ in
       sources."natural-orderby-2.0.3"
       sources."negotiator-0.6.2"
       sources."nested-error-stacks-2.1.0"
-      (sources."netlify-4.9.0" // {
+      (sources."netlify-6.0.7" // {
         dependencies = [
-          sources."qs-6.9.4"
+          sources."@netlify/open-api-1.0.0"
         ];
       })
       sources."netlify-plugin-deploy-preview-commenting-0.0.1-alpha.16"
       (sources."netlify-redirect-parser-2.5.0" // {
         dependencies = [
           sources."@netlify/config-0.11.11"
+          sources."ansi-styles-4.3.0"
           sources."chalk-3.0.0"
+          sources."netlify-4.9.0"
         ];
       })
       sources."netlify-redirector-0.2.1"
@@ -86680,16 +90019,10 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.9.0"
       sources."object-keys-1.1.1"
-      sources."object-treeify-1.1.30"
+      sources."object-treeify-1.1.31"
       sources."object-visit-1.0.1"
       sources."object.assign-4.1.2"
-      (sources."object.getownpropertydescriptors-2.1.1" // {
-        dependencies = [
-          sources."es-abstract-1.18.0-next.1"
-        ];
-      })
       sources."object.pick-1.3.0"
       sources."octal-1.0.0"
       sources."octokit-pagination-methods-1.1.0"
@@ -86712,6 +90045,7 @@ in
       sources."optionator-0.8.3"
       (sources."ora-4.1.1" // {
         dependencies = [
+          sources."ansi-styles-4.3.0"
           sources."chalk-3.0.0"
           sources."cli-cursor-3.1.0"
           sources."mute-stream-0.0.8"
@@ -86740,13 +90074,19 @@ in
       sources."p-reduce-2.1.0"
       sources."p-timeout-3.2.0"
       sources."p-try-2.2.0"
-      sources."p-wait-for-3.1.0"
+      sources."p-wait-for-3.2.0"
       (sources."package-json-6.5.0" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."parallel-transform-1.2.0"
+      (sources."parallel-transform-1.2.0" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
       sources."parse-asn1-5.1.6"
       sources."parse-github-repo-url-1.4.1"
       sources."parse-github-url-1.0.2"
@@ -86787,6 +90127,8 @@ in
       (sources."pretty-format-24.9.0" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
         ];
       })
       sources."pretty-ms-5.1.0"
@@ -86805,7 +90147,7 @@ in
       sources."pump-3.0.0"
       sources."punycode-1.3.2"
       sources."pupa-2.1.1"
-      sources."qs-6.7.0"
+      sources."qs-6.9.4"
       sources."query-string-5.1.1"
       sources."querystring-0.2.0"
       sources."random-bytes-1.0.0"
@@ -86826,11 +90168,7 @@ in
         ];
       })
       sources."read-pkg-up-7.0.1"
-      (sources."readable-stream-2.3.7" // {
-        dependencies = [
-          sources."safe-buffer-5.1.2"
-        ];
-      })
+      sources."readable-stream-3.6.0"
       sources."readdirp-3.5.0"
       sources."redeyed-2.1.1"
       sources."regenerate-1.4.2"
@@ -86852,7 +90190,6 @@ in
       sources."remove-trailing-separator-1.1.0"
       sources."repeat-element-1.1.3"
       sources."repeat-string-1.6.1"
-      sources."replace-ext-1.0.0"
       sources."require-directory-2.1.1"
       sources."require-main-filename-2.0.0"
       sources."require-package-name-2.0.1"
@@ -86870,7 +90207,7 @@ in
       sources."reusify-1.0.4"
       sources."rimraf-3.0.2"
       sources."ripemd160-2.0.2"
-      sources."rollup-2.34.1"
+      sources."rollup-2.35.1"
       sources."rollup-plugin-node-builtins-2.1.2"
       sources."rollup-plugin-terser-7.0.2"
       sources."run-async-2.4.1"
@@ -87005,13 +90342,7 @@ in
       sources."strict-uri-encode-1.1.0"
       sources."string-range-1.2.2"
       sources."string-width-4.2.0"
-      sources."string.prototype.trimend-1.0.3"
-      sources."string.prototype.trimstart-1.0.3"
-      (sources."string_decoder-1.1.1" // {
-        dependencies = [
-          sources."safe-buffer-5.1.2"
-        ];
-      })
+      sources."string_decoder-1.3.0"
       sources."stringify-entities-3.1.0"
       (sources."strip-ansi-6.0.0" // {
         dependencies = [
@@ -87040,18 +90371,15 @@ in
           })
         ];
       })
-      (sources."tar-stream-2.1.4" // {
+      (sources."tar-stream-2.2.0" // {
         dependencies = [
           sources."bl-4.0.3"
-          sources."readable-stream-3.6.0"
         ];
       })
       sources."temp-dir-1.0.0"
       (sources."tempy-0.3.0" // {
         dependencies = [
-          sources."crypto-random-string-1.0.0"
           sources."type-fest-0.3.1"
-          sources."unique-string-1.0.0"
         ];
       })
       sources."term-size-2.2.1"
@@ -87062,7 +90390,13 @@ in
       })
       sources."text-hex-1.0.0"
       sources."through-2.3.8"
-      sources."through2-2.0.5"
+      (sources."through2-2.0.5" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
       sources."through2-filter-3.0.0"
       sources."through2-map-3.0.0"
       sources."time-zone-1.0.0"
@@ -87112,7 +90446,7 @@ in
       })
       sources."union-value-1.0.1"
       sources."uniq-1.0.1"
-      sources."unique-string-2.0.0"
+      sources."unique-string-1.0.0"
       sources."unist-util-is-4.0.4"
       sources."unist-util-stringify-position-2.0.3"
       sources."unist-util-visit-2.0.3"
@@ -87137,6 +90471,7 @@ in
       })
       (sources."update-notifier-4.1.3" // {
         dependencies = [
+          sources."ansi-styles-4.3.0"
           sources."chalk-3.0.0"
         ];
       })
@@ -87146,13 +90481,12 @@ in
       sources."url-to-options-1.0.1"
       sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
-      sources."util.promisify-1.0.1"
       sources."utils-merge-1.0.1"
-      sources."uuid-8.3.1"
+      sources."uuid-8.3.2"
       sources."validate-npm-package-license-3.0.4"
       sources."validate-npm-package-name-3.0.0"
       sources."vary-1.1.2"
-      (sources."vfile-4.2.0" // {
+      (sources."vfile-4.2.1" // {
         dependencies = [
           sources."is-buffer-2.0.5"
         ];
@@ -87179,12 +90513,21 @@ in
       (sources."winston-3.3.3" // {
         dependencies = [
           sources."is-stream-2.0.0"
-          sources."readable-stream-3.6.0"
         ];
       })
-      sources."winston-transport-4.4.0"
+      (sources."winston-transport-4.4.0" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
       sources."word-wrap-1.2.3"
-      sources."wrap-ansi-6.2.0"
+      (sources."wrap-ansi-6.2.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+        ];
+      })
       sources."wrappy-1.0.2"
       (sources."write-file-atomic-3.0.3" // {
         dependencies = [
@@ -87201,11 +90544,7 @@ in
       sources."yargs-parser-18.1.3"
       sources."yarn-1.22.10"
       sources."yauzl-2.10.0"
-      (sources."zip-stream-3.0.1" // {
-        dependencies = [
-          sources."readable-stream-3.6.0"
-        ];
-      })
+      sources."zip-stream-3.0.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -87302,8 +90641,8 @@ in
       sources."json-stringify-safe-5.0.1"
       sources."jsprim-1.4.1"
       sources."lru-cache-6.0.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."minimatch-3.0.4"
       sources."minipass-3.1.3"
       sources."minizlib-2.1.2"
@@ -87481,7 +90820,7 @@ in
       sources."indent-string-2.1.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.3"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."invert-kv-1.0.0"
       sources."ipaddr.js-1.9.1"
       sources."is-arrayish-0.2.1"
@@ -87513,8 +90852,8 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
@@ -87674,10 +91013,10 @@ in
   node-pre-gyp = nodeEnv.buildNodePackage {
     name = "node-pre-gyp";
     packageName = "node-pre-gyp";
-    version = "0.16.0";
+    version = "0.17.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.16.0.tgz";
-      sha512 = "4efGA+X/YXAHLi1hN8KaPrILULaUn2nWecFrn1k2I+99HpoyvcOGEbtcOxpDiUwPF2ZANMJDh32qwOUPenuR1g==";
+      url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.17.0.tgz";
+      sha512 = "abzZt1hmOjkZez29ppg+5gGqdPLUuJeAEwVPtHYEJgx0qzttCbcKFpxrCQn2HYbwCv2c+7JwH4BgEzFkUGpn4A==";
     };
     dependencies = [
       sources."abbrev-1.1.1"
@@ -87704,7 +91043,7 @@ in
       sources."ignore-walk-3.0.3"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."is-fullwidth-code-point-1.0.0"
       sources."isarray-1.0.0"
       sources."minimatch-3.0.4"
@@ -87712,7 +91051,7 @@ in
       sources."minipass-2.9.0"
       sources."minizlib-1.3.3"
       sources."mkdirp-0.5.5"
-      sources."ms-2.1.2"
+      sources."ms-2.1.3"
       sources."needle-2.5.2"
       sources."nopt-4.0.3"
       sources."npm-bundled-1.1.1"
@@ -87789,12 +91128,13 @@ in
       sources."accepts-1.3.7"
       (sources."agent-base-6.0.2" // {
         dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."ms-2.1.2"
         ];
       })
       sources."ajv-6.12.6"
-      sources."ansi-regex-2.1.1"
+      sources."ansi-regex-5.0.0"
+      sources."ansi-styles-3.2.1"
       sources."append-field-1.0.0"
       sources."aproba-1.2.0"
       (sources."are-we-there-yet-1.1.5" // {
@@ -87855,12 +91195,14 @@ in
       sources."bytes-3.1.0"
       sources."callback-stream-1.1.0"
       sources."caseless-0.12.0"
+      sources."chalk-2.4.2"
       sources."cheerio-0.22.0"
       sources."chownr-2.0.0"
-      sources."cli-table-0.3.1"
+      sources."cli-table-0.3.4"
       sources."clone-2.1.2"
       sources."code-point-at-1.1.0"
-      sources."colors-1.0.3"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
       sources."combined-stream-1.0.8"
       sources."commist-1.1.0"
       sources."concat-map-0.0.1"
@@ -87911,10 +91253,12 @@ in
       })
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
+      sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
       sources."entities-1.1.2"
       sources."escape-html-1.0.3"
+      sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
       sources."etag-1.8.1"
       (sources."express-4.17.1" // {
@@ -87945,7 +91289,14 @@ in
       sources."fs-minipass-2.1.0"
       sources."fs.notify-0.0.4"
       sources."fs.realpath-1.0.0"
-      sources."gauge-2.7.4"
+      (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."getpass-0.1.7"
       sources."glob-7.1.6"
       sources."glob-parent-3.1.0"
@@ -87960,6 +91311,7 @@ in
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
+      sources."has-flag-3.0.0"
       sources."has-unicode-2.0.1"
       sources."hash-sum-2.0.0"
       sources."help-me-1.1.0"
@@ -87973,7 +91325,7 @@ in
       sources."http-signature-1.2.0"
       (sources."https-proxy-agent-5.0.0" // {
         dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."ms-2.1.2"
         ];
       })
@@ -87983,11 +91335,11 @@ in
       sources."ignore-walk-3.0.3"
       sources."inflight-1.0.6"
       sources."inherits-2.0.3"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."ipaddr.js-1.9.1"
       sources."is-absolute-1.0.0"
       sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-1.0.0"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-3.1.0"
       sources."is-negated-glob-1.0.0"
       sources."is-relative-1.0.0"
@@ -88024,15 +91376,15 @@ in
       sources."media-typer-0.3.0"
       (sources."memorystore-1.6.4" // {
         dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."ms-2.1.2"
         ];
       })
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-2.4.6"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       (sources."minipass-3.1.3" // {
@@ -88051,16 +91403,16 @@ in
       (sources."mqtt-4.2.6" // {
         dependencies = [
           sources."concat-stream-2.0.0"
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."ms-2.1.2"
           sources."readable-stream-3.6.0"
           sources."string_decoder-1.3.0"
-          sources."ws-7.4.1"
+          sources."ws-7.4.2"
         ];
       })
       (sources."mqtt-packet-6.7.0" // {
         dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."ms-2.1.2"
         ];
       })
@@ -88072,7 +91424,7 @@ in
       (sources."needle-2.5.2" // {
         dependencies = [
           sources."debug-3.2.7"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
       sources."negotiator-0.6.2"
@@ -88182,11 +91534,12 @@ in
       sources."statuses-1.5.0"
       sources."stream-shift-1.0.1"
       sources."streamsearch-0.1.2"
-      sources."string-width-1.0.2"
+      sources."string-width-4.2.0"
       sources."string_decoder-0.10.31"
-      sources."strip-ansi-3.0.1"
+      sources."strip-ansi-6.0.0"
       sources."strip-json-comments-2.0.1"
-      sources."tail-2.0.4"
+      sources."supports-color-5.5.0"
+      sources."tail-2.1.1"
       (sources."tar-6.0.5" // {
         dependencies = [
           sources."mkdirp-1.0.4"
@@ -88228,7 +91581,14 @@ in
       sources."vary-1.1.2"
       sources."verror-1.10.0"
       sources."when-3.7.8"
-      sources."wide-align-1.1.3"
+      (sources."wide-align-1.1.3" // {
+        dependencies = [
+          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."wrappy-1.0.2"
       sources."ws-6.2.1"
       sources."xml2js-0.4.23"
@@ -88318,7 +91678,7 @@ in
       sources."http-signature-1.2.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."is-core-module-2.2.0"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-typedarray-1.0.0"
@@ -88330,8 +91690,8 @@ in
       sources."json-stringify-safe-5.0.1"
       sources."jsonfile-1.0.1"
       sources."jsprim-1.4.1"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."minipass-3.1.3"
@@ -88499,7 +91859,7 @@ in
       sources."fsevents-2.1.3"
       sources."get-stream-4.1.0"
       sources."glob-parent-5.1.1"
-      sources."global-dirs-2.0.1"
+      sources."global-dirs-2.1.0"
       sources."got-9.6.0"
       sources."graceful-fs-4.2.4"
       sources."has-flag-3.0.0"
@@ -88508,7 +91868,7 @@ in
       sources."ignore-by-default-1.0.1"
       sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.7"
       sources."is-binary-path-2.1.0"
       sources."is-ci-2.0.0"
       sources."is-extglob-2.1.1"
@@ -88533,7 +91893,7 @@ in
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      sources."ms-2.1.2"
+      sources."ms-2.1.3"
       sources."nopt-1.0.10"
       sources."normalize-path-3.0.0"
       sources."normalize-url-4.5.0"
@@ -88602,13 +91962,537 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  np = nodeEnv.buildNodePackage {
+    name = "np";
+    packageName = "np";
+    version = "7.2.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/np/-/np-7.2.0.tgz";
+      sha512 = "jfMFJXAJlGkCowMPGzA8Ywbmywk7I9hT96DsOcWjDsjq/zP5h6m3VZDcZ1AWYoCBPg4E/lFrJxROmiQH3OWnzA==";
+    };
+    dependencies = [
+      sources."@babel/code-frame-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
+      (sources."@babel/highlight-7.10.4" // {
+        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."escape-string-regexp-1.0.5"
+          sources."has-flag-3.0.0"
+          sources."supports-color-5.5.0"
+        ];
+      })
+      sources."@nodelib/fs.scandir-2.1.4"
+      sources."@nodelib/fs.stat-2.0.4"
+      sources."@nodelib/fs.walk-1.2.6"
+      (sources."@samverschueren/stream-to-observable-0.3.1" // {
+        dependencies = [
+          sources."any-observable-0.3.0"
+        ];
+      })
+      sources."@sindresorhus/is-2.1.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.19"
+      sources."@types/normalize-package-data-2.4.0"
+      sources."@types/parse-json-4.0.0"
+      sources."@types/responselike-1.0.0"
+      sources."aggregate-error-3.1.0"
+      (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-4.3.1"
+      sources."ansi-regex-5.0.0"
+      sources."ansi-styles-4.3.0"
+      sources."any-observable-0.5.1"
+      sources."array-union-2.1.0"
+      sources."arrify-1.0.1"
+      sources."async-exit-hook-2.0.1"
+      sources."balanced-match-1.0.0"
+      (sources."boxen-4.2.0" // {
+        dependencies = [
+          sources."chalk-3.0.0"
+          sources."type-fest-0.8.1"
+        ];
+      })
+      sources."brace-expansion-1.1.11"
+      sources."braces-3.0.2"
+      sources."builtins-1.0.3"
+      sources."cacheable-lookup-2.0.1"
+      (sources."cacheable-request-7.0.1" // {
+        dependencies = [
+          sources."get-stream-5.2.0"
+        ];
+      })
+      sources."callsites-3.1.0"
+      sources."camelcase-5.3.1"
+      sources."camelcase-keys-6.2.2"
+      sources."chalk-4.1.0"
+      sources."chardet-0.7.0"
+      sources."ci-info-2.0.0"
+      sources."clean-stack-2.2.0"
+      sources."cli-boxes-2.2.1"
+      sources."cli-cursor-3.1.0"
+      (sources."cli-truncate-0.2.1" // {
+        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."cli-width-3.0.0"
+      (sources."clone-response-1.0.2" // {
+        dependencies = [
+          sources."mimic-response-1.0.1"
+        ];
+      })
+      sources."code-point-at-1.1.0"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
+      sources."concat-map-0.0.1"
+      (sources."configstore-5.0.1" // {
+        dependencies = [
+          sources."dot-prop-5.3.0"
+        ];
+      })
+      sources."cosmiconfig-7.0.0"
+      sources."cross-spawn-7.0.3"
+      sources."crypto-random-string-2.0.0"
+      sources."date-fns-1.30.1"
+      sources."decamelize-1.2.0"
+      (sources."decamelize-keys-1.1.0" // {
+        dependencies = [
+          sources."map-obj-1.0.1"
+        ];
+      })
+      sources."decompress-response-5.0.0"
+      sources."deep-extend-0.6.0"
+      sources."defer-to-connect-2.0.0"
+      sources."del-6.0.0"
+      sources."dir-glob-3.0.1"
+      sources."dot-prop-6.0.1"
+      sources."duplexer3-0.1.4"
+      sources."elegant-spinner-1.0.1"
+      sources."emoji-regex-8.0.0"
+      sources."end-of-stream-1.4.4"
+      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."external-editor-3.1.0"
+      sources."fast-glob-3.2.4"
+      sources."fastq-1.10.0"
+      (sources."figures-3.2.0" // {
+        dependencies = [
+          sources."escape-string-regexp-1.0.5"
+        ];
+      })
+      sources."fill-range-7.0.1"
+      sources."find-up-4.1.0"
+      sources."fs.realpath-1.0.0"
+      sources."function-bind-1.1.1"
+      sources."get-stream-6.0.0"
+      sources."github-url-from-git-1.5.0"
+      sources."glob-7.1.6"
+      sources."glob-parent-5.1.1"
+      sources."global-dirs-2.1.0"
+      sources."globby-11.0.1"
+      (sources."got-10.7.0" // {
+        dependencies = [
+          sources."get-stream-5.2.0"
+          sources."type-fest-0.10.0"
+        ];
+      })
+      sources."graceful-fs-4.2.4"
+      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-flag-4.0.0"
+      sources."has-yarn-2.1.0"
+      sources."hosted-git-info-3.0.7"
+      sources."http-cache-semantics-4.1.0"
+      sources."human-signals-2.1.0"
+      sources."iconv-lite-0.4.24"
+      sources."ignore-5.1.8"
+      sources."ignore-walk-3.0.3"
+      sources."import-fresh-3.3.0"
+      sources."import-lazy-2.1.0"
+      (sources."import-local-3.0.2" // {
+        dependencies = [
+          sources."pkg-dir-4.2.0"
+        ];
+      })
+      sources."imurmurhash-0.1.4"
+      sources."indent-string-4.0.0"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."ini-1.3.7"
+      sources."inquirer-7.3.3"
+      (sources."inquirer-autosubmit-prompt-0.2.0" // {
+        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."cli-cursor-2.1.0"
+          sources."cli-width-2.2.1"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
+          sources."escape-string-regexp-1.0.5"
+          sources."figures-2.0.0"
+          sources."has-flag-3.0.0"
+          sources."inquirer-6.5.2"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."mute-stream-0.0.7"
+          sources."onetime-2.0.1"
+          sources."restore-cursor-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."supports-color-5.5.0"
+        ];
+      })
+      sources."is-arrayish-0.2.1"
+      sources."is-ci-2.0.0"
+      sources."is-core-module-2.2.0"
+      sources."is-docker-2.1.1"
+      sources."is-extglob-2.1.1"
+      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-glob-4.0.1"
+      sources."is-installed-globally-0.3.2"
+      sources."is-interactive-1.0.0"
+      sources."is-npm-5.0.0"
+      sources."is-number-7.0.0"
+      sources."is-obj-2.0.0"
+      (sources."is-observable-1.1.0" // {
+        dependencies = [
+          sources."symbol-observable-1.2.0"
+        ];
+      })
+      sources."is-path-cwd-2.2.0"
+      sources."is-path-inside-3.0.2"
+      sources."is-plain-obj-1.1.0"
+      sources."is-promise-2.2.2"
+      sources."is-scoped-2.1.0"
+      sources."is-stream-2.0.0"
+      sources."is-typedarray-1.0.0"
+      sources."is-url-superb-4.0.0"
+      sources."is-wsl-2.2.0"
+      sources."is-yarn-global-0.3.0"
+      sources."isexe-2.0.0"
+      sources."issue-regex-3.1.0"
+      sources."js-tokens-4.0.0"
+      sources."json-buffer-3.0.1"
+      sources."json-parse-even-better-errors-2.3.1"
+      sources."keyv-4.0.3"
+      sources."kind-of-6.0.3"
+      sources."latest-version-5.1.0"
+      sources."lines-and-columns-1.1.6"
+      (sources."listr-0.14.3" // {
+        dependencies = [
+          sources."is-stream-1.1.0"
+          sources."p-map-2.1.0"
+        ];
+      })
+      sources."listr-input-0.2.1"
+      sources."listr-silent-renderer-1.1.1"
+      (sources."listr-update-renderer-0.5.0" // {
+        dependencies = [
+          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."figures-1.7.0"
+          sources."indent-string-3.2.0"
+          sources."log-symbols-1.0.2"
+          sources."strip-ansi-3.0.1"
+          sources."supports-color-2.0.0"
+        ];
+      })
+      (sources."listr-verbose-renderer-0.5.0" // {
+        dependencies = [
+          sources."ansi-styles-3.2.1"
+          sources."chalk-2.4.2"
+          sources."cli-cursor-2.1.0"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
+          sources."escape-string-regexp-1.0.5"
+          sources."figures-2.0.0"
+          sources."has-flag-3.0.0"
+          sources."onetime-2.0.1"
+          sources."restore-cursor-2.0.0"
+          sources."supports-color-5.5.0"
+        ];
+      })
+      sources."locate-path-5.0.0"
+      sources."lodash-4.17.20"
+      sources."lodash.isequal-4.5.0"
+      sources."lodash.zip-4.2.0"
+      sources."log-symbols-4.0.0"
+      (sources."log-update-2.3.0" // {
+        dependencies = [
+          sources."ansi-escapes-3.2.0"
+          sources."cli-cursor-2.1.0"
+          sources."onetime-2.0.1"
+          sources."restore-cursor-2.0.0"
+        ];
+      })
+      sources."lowercase-keys-2.0.0"
+      sources."lru-cache-6.0.0"
+      (sources."make-dir-3.1.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."map-age-cleaner-0.1.3"
+      sources."map-obj-4.1.0"
+      (sources."mem-6.1.1" // {
+        dependencies = [
+          sources."mimic-fn-3.1.0"
+        ];
+      })
+      (sources."meow-8.1.0" // {
+        dependencies = [
+          sources."type-fest-0.18.1"
+        ];
+      })
+      sources."merge-stream-2.0.0"
+      sources."merge2-1.4.1"
+      sources."micromatch-4.0.2"
+      sources."mimic-fn-1.2.0"
+      sources."mimic-response-2.1.0"
+      sources."min-indent-1.0.1"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      sources."minimist-options-4.1.0"
+      sources."mute-stream-0.0.8"
+      (sources."new-github-release-url-1.0.0" // {
+        dependencies = [
+          sources."type-fest-0.4.1"
+        ];
+      })
+      sources."normalize-package-data-3.0.0"
+      sources."normalize-url-4.5.0"
+      (sources."npm-name-6.0.1" // {
+        dependencies = [
+          sources."p-map-3.0.0"
+        ];
+      })
+      sources."npm-run-path-4.0.1"
+      sources."number-is-nan-1.0.1"
+      sources."object-assign-4.1.1"
+      sources."once-1.4.0"
+      (sources."onetime-5.1.2" // {
+        dependencies = [
+          sources."mimic-fn-2.1.0"
+        ];
+      })
+      sources."open-7.3.0"
+      sources."org-regex-1.0.0"
+      sources."os-tmpdir-1.0.2"
+      (sources."ow-0.21.0" // {
+        dependencies = [
+          sources."@sindresorhus/is-4.0.0"
+          sources."type-fest-0.20.2"
+        ];
+      })
+      sources."p-cancelable-2.0.0"
+      sources."p-defer-1.0.0"
+      (sources."p-event-4.2.0" // {
+        dependencies = [
+          sources."p-timeout-3.2.0"
+        ];
+      })
+      sources."p-finally-1.0.0"
+      sources."p-limit-2.3.0"
+      sources."p-locate-4.1.0"
+      sources."p-map-4.0.0"
+      (sources."p-memoize-4.0.1" // {
+        dependencies = [
+          sources."mimic-fn-3.1.0"
+        ];
+      })
+      sources."p-timeout-4.1.0"
+      sources."p-try-2.2.0"
+      (sources."package-json-6.5.0" // {
+        dependencies = [
+          sources."@sindresorhus/is-0.14.0"
+          sources."@szmarczak/http-timer-1.1.2"
+          (sources."cacheable-request-6.1.0" // {
+            dependencies = [
+              sources."get-stream-5.2.0"
+              sources."lowercase-keys-2.0.0"
+            ];
+          })
+          sources."decompress-response-3.3.0"
+          sources."defer-to-connect-1.1.3"
+          sources."get-stream-4.1.0"
+          sources."got-9.6.0"
+          sources."json-buffer-3.0.0"
+          sources."keyv-3.1.0"
+          sources."lowercase-keys-1.0.1"
+          sources."mimic-response-1.0.1"
+          sources."p-cancelable-1.1.0"
+          sources."responselike-1.0.2"
+          sources."semver-6.3.0"
+          sources."to-readable-stream-1.0.0"
+        ];
+      })
+      sources."parent-module-1.0.1"
+      sources."parse-json-5.1.0"
+      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-type-4.0.0"
+      sources."picomatch-2.2.2"
+      (sources."pkg-dir-5.0.0" // {
+        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."prepend-http-2.0.0"
+      sources."pump-3.0.0"
+      (sources."pupa-2.1.1" // {
+        dependencies = [
+          sources."escape-goat-2.1.1"
+        ];
+      })
+      sources."quick-lru-4.0.1"
+      sources."rc-1.2.8"
+      (sources."read-pkg-5.2.0" // {
+        dependencies = [
+          sources."hosted-git-info-2.8.8"
+          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."redent-3.0.0"
+      sources."registry-auth-token-4.2.1"
+      sources."registry-url-5.1.0"
+      sources."resolve-1.19.0"
+      (sources."resolve-cwd-3.0.0" // {
+        dependencies = [
+          sources."resolve-from-5.0.0"
+        ];
+      })
+      sources."resolve-from-4.0.0"
+      sources."responselike-2.0.0"
+      sources."restore-cursor-3.1.0"
+      sources."reusify-1.0.4"
+      sources."rimraf-3.0.2"
+      sources."run-async-2.4.1"
+      sources."run-parallel-1.1.10"
+      sources."rxjs-6.6.3"
+      sources."safer-buffer-2.1.2"
+      sources."scoped-regex-2.1.0"
+      sources."semver-7.3.4"
+      (sources."semver-diff-3.1.1" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
+      sources."signal-exit-3.0.3"
+      sources."slash-3.0.0"
+      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."split-1.0.1"
+      sources."string-width-4.2.0"
+      sources."strip-ansi-6.0.0"
+      sources."strip-final-newline-2.0.0"
+      sources."strip-indent-3.0.0"
+      sources."strip-json-comments-2.0.1"
+      sources."supports-color-7.2.0"
+      sources."supports-hyperlinks-2.1.0"
+      sources."symbol-observable-3.0.0"
+      sources."term-size-2.2.1"
+      sources."terminal-link-2.1.1"
+      sources."through-2.3.8"
+      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."tslib-1.14.1"
+      sources."type-fest-0.11.0"
+      sources."typedarray-to-buffer-3.1.5"
+      sources."unique-string-2.0.0"
+      sources."update-notifier-5.0.1"
+      sources."url-parse-lax-3.0.0"
+      sources."vali-date-1.0.0"
+      sources."validate-npm-package-license-3.0.4"
+      sources."validate-npm-package-name-3.0.0"
+      sources."which-2.0.2"
+      sources."widest-line-3.1.0"
+      (sources."wrap-ansi-3.0.1" // {
+        dependencies = [
+          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."wrappy-1.0.2"
+      sources."write-file-atomic-3.0.3"
+      sources."xdg-basedir-4.0.0"
+      sources."yallist-4.0.0"
+      sources."yaml-1.10.0"
+      sources."yargs-parser-20.2.4"
+      sources."yocto-queue-0.1.0"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "A better `npm publish`";
+      homepage = "https://github.com/sindresorhus/np#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   npm = nodeEnv.buildNodePackage {
     name = "npm";
     packageName = "npm";
-    version = "6.14.9";
+    version = "6.14.10";
     src = fetchurl {
-      url = "https://registry.npmjs.org/npm/-/npm-6.14.9.tgz";
-      sha512 = "yHi1+i9LyAZF1gAmgyYtVk+HdABlLy94PMIDoK1TRKWvmFQAt5z3bodqVwKvzY0s6dLqQPVsRLiwhJfNtiHeCg==";
+      url = "https://registry.npmjs.org/npm/-/npm-6.14.10.tgz";
+      sha512 = "FT23Qy/JMA+qxEYReMOr1MY7642fKn8Onn+72LASPi872Owvmw0svm+/DXTHOC3yO9CheEO+EslyXEpdBdRtIA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -88623,10 +92507,10 @@ in
   npm-check-updates = nodeEnv.buildNodePackage {
     name = "npm-check-updates";
     packageName = "npm-check-updates";
-    version = "10.2.2";
+    version = "10.2.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-10.2.2.tgz";
-      sha512 = "xyE1PUTu4xarVDRXCA0HYd92rT3zd87GIixczM/TCkwN12/31yVD/8dOyXtgNA8fpIuvhjrfX7n4cV0OTCa9hg==";
+      url = "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-10.2.5.tgz";
+      sha512 = "R0BN+MqE6T12k0iGivF0WKfn3tuaeQuCai0haVvmsr7GcoPXU+yrlHxl9aFlO2XZ6z4m+pCd107YnbJDcRAf8Q==";
     };
     dependencies = [
       sources."@npmcli/ci-detect-1.3.0"
@@ -88647,12 +92531,13 @@ in
       (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-regex-2.1.1"
+      sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.3.0"
       sources."aproba-1.2.0"
       sources."are-we-there-yet-1.1.5"
@@ -88667,12 +92552,7 @@ in
       sources."bcrypt-pbkdf-1.0.2"
       (sources."boxen-4.2.0" // {
         dependencies = [
-          sources."ansi-regex-5.0.0"
           sources."chalk-3.0.0"
-          sources."emoji-regex-8.0.0"
-          sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.0"
-          sources."strip-ansi-6.0.0"
         ];
       })
       sources."brace-expansion-1.1.11"
@@ -88692,21 +92572,29 @@ in
       sources."cint-8.2.1"
       sources."clean-stack-2.2.0"
       sources."cli-boxes-2.2.1"
-      sources."cli-table-0.3.1"
+      (sources."cli-table-0.3.4" // {
+        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."has-flag-3.0.0"
+          sources."supports-color-5.5.0"
+        ];
+      })
       sources."clone-response-1.0.2"
       sources."code-point-at-1.1.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."colors-1.0.3"
       sources."combined-stream-1.0.8"
-      sources."commander-6.2.0"
+      sources."commander-6.2.1"
       sources."concat-map-0.0.1"
       sources."configstore-5.0.1"
       sources."console-control-strings-1.1.0"
       sources."core-util-is-1.0.2"
       sources."crypto-random-string-2.0.0"
       sources."dashdash-1.14.1"
-      sources."debug-4.3.1"
+      sources."debug-4.3.2"
       sources."debuglog-1.0.1"
       sources."decompress-response-3.3.0"
       sources."deep-extend-0.6.0"
@@ -88718,12 +92606,13 @@ in
       sources."dot-prop-5.3.0"
       sources."duplexer3-0.1.4"
       sources."ecc-jsbn-0.1.2"
-      sources."emoji-regex-7.0.3"
+      sources."emoji-regex-8.0.0"
       sources."encoding-0.1.13"
       sources."end-of-stream-1.4.4"
       sources."env-paths-2.2.0"
       sources."err-code-1.1.2"
       sources."escape-goat-2.1.1"
+      sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
@@ -88736,12 +92625,23 @@ in
       sources."fp-and-or-0.1.3"
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
-      sources."gauge-2.7.4"
+      (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."get-stdin-8.0.0"
       sources."get-stream-4.1.0"
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
-      sources."global-dirs-2.0.1"
+      (sources."global-dirs-2.1.0" // {
+        dependencies = [
+          sources."ini-1.3.7"
+        ];
+      })
       sources."got-9.6.0"
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
@@ -88763,10 +92663,10 @@ in
       sources."infer-owner-1.0.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."ip-1.1.5"
       sources."is-ci-2.0.0"
-      sources."is-fullwidth-code-point-1.0.0"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."is-installed-globally-0.3.2"
       sources."is-lambda-1.0.1"
       sources."is-npm-5.0.0"
@@ -88778,7 +92678,7 @@ in
       sources."isexe-2.0.0"
       sources."isstream-0.1.2"
       sources."jju-1.4.0"
-      sources."js-yaml-3.14.0"
+      sources."js-yaml-3.14.1"
       sources."jsbn-0.1.1"
       sources."json-buffer-3.0.0"
       sources."json-parse-even-better-errors-2.3.1"
@@ -88811,9 +92711,9 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."make-fetch-happen-8.0.10"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."make-fetch-happen-8.0.12"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -88901,9 +92801,9 @@ in
       sources."sprintf-js-1.0.3"
       sources."sshpk-1.16.1"
       sources."ssri-8.0.0"
-      sources."string-width-1.0.2"
+      sources."string-width-4.2.0"
       sources."string_decoder-1.1.1"
-      sources."strip-ansi-3.0.1"
+      sources."strip-ansi-6.0.0"
       sources."strip-json-comments-2.0.1"
       sources."supports-color-7.2.0"
       sources."tar-6.0.5"
@@ -88925,16 +92825,15 @@ in
       sources."validate-npm-package-name-3.0.0"
       sources."verror-1.10.0"
       sources."which-2.0.2"
-      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.0"
-          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."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
       sources."xdg-basedir-4.0.0"
@@ -88984,7 +92883,7 @@ in
       sources."concat-map-0.0.1"
       (sources."config-chain-1.1.12" // {
         dependencies = [
-          sources."ini-1.3.5"
+          sources."ini-1.3.8"
         ];
       })
       sources."console-control-strings-1.1.0"
@@ -89036,8 +92935,8 @@ in
       sources."json-stringify-safe-5.0.1"
       sources."jsonfile-1.0.1"
       sources."jsprim-1.4.1"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.3.5"
@@ -89152,7 +93051,7 @@ in
       sources."vscode-languageclient-4.0.1"
       sources."vscode-languageserver-4.0.0"
       sources."vscode-languageserver-protocol-3.6.0"
-      sources."vscode-languageserver-types-3.15.1"
+      sources."vscode-languageserver-types-3.16.0"
       sources."vscode-uri-1.0.3"
       sources."wrappy-1.0.2"
     ];
@@ -89175,48 +93074,46 @@ in
       sha512 = "G+iZGGiPEXcRzw0fiRxWYCKxdt/F7l9a0xkiU4XbcVRJCSlBnioWEwJMutOCCpoQmaQtjB4RBHDGIHN85AIhLQ==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.4"
+      sources."@babel/code-frame-7.12.11"
       sources."@babel/compat-data-7.12.7"
-      (sources."@babel/core-7.12.9" // {
+      (sources."@babel/core-7.12.10" // {
         dependencies = [
           sources."json5-2.1.3"
           sources."source-map-0.5.7"
         ];
       })
-      (sources."@babel/generator-7.12.5" // {
+      (sources."@babel/generator-7.12.11" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
-      sources."@babel/helper-annotate-as-pure-7.10.4"
+      sources."@babel/helper-annotate-as-pure-7.12.10"
       sources."@babel/helper-builder-binary-assignment-operator-visitor-7.10.4"
-      sources."@babel/helper-builder-react-jsx-7.10.4"
-      sources."@babel/helper-builder-react-jsx-experimental-7.12.4"
       sources."@babel/helper-compilation-targets-7.12.5"
       sources."@babel/helper-create-class-features-plugin-7.12.1"
       sources."@babel/helper-create-regexp-features-plugin-7.12.7"
       sources."@babel/helper-define-map-7.10.5"
       sources."@babel/helper-explode-assignable-expression-7.12.1"
-      sources."@babel/helper-function-name-7.10.4"
-      sources."@babel/helper-get-function-arity-7.10.4"
+      sources."@babel/helper-function-name-7.12.11"
+      sources."@babel/helper-get-function-arity-7.12.10"
       sources."@babel/helper-hoist-variables-7.10.4"
       sources."@babel/helper-member-expression-to-functions-7.12.7"
       sources."@babel/helper-module-imports-7.12.5"
       sources."@babel/helper-module-transforms-7.12.1"
-      sources."@babel/helper-optimise-call-expression-7.12.7"
+      sources."@babel/helper-optimise-call-expression-7.12.10"
       sources."@babel/helper-plugin-utils-7.10.4"
       sources."@babel/helper-remap-async-to-generator-7.12.1"
-      sources."@babel/helper-replace-supers-7.12.5"
+      sources."@babel/helper-replace-supers-7.12.11"
       sources."@babel/helper-simple-access-7.12.1"
       sources."@babel/helper-skip-transparent-expression-wrappers-7.12.1"
-      sources."@babel/helper-split-export-declaration-7.11.0"
-      sources."@babel/helper-validator-identifier-7.10.4"
-      sources."@babel/helper-validator-option-7.12.1"
+      sources."@babel/helper-split-export-declaration-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
+      sources."@babel/helper-validator-option-7.12.11"
       sources."@babel/helper-wrap-function-7.12.3"
       sources."@babel/helpers-7.12.5"
       sources."@babel/highlight-7.10.4"
-      sources."@babel/parser-7.12.7"
-      sources."@babel/plugin-proposal-async-generator-functions-7.12.1"
+      sources."@babel/parser-7.12.11"
+      sources."@babel/plugin-proposal-async-generator-functions-7.12.12"
       sources."@babel/plugin-proposal-class-properties-7.12.1"
       sources."@babel/plugin-proposal-dynamic-import-7.12.1"
       sources."@babel/plugin-proposal-export-namespace-from-7.12.1"
@@ -89246,14 +93143,14 @@ in
       sources."@babel/plugin-transform-arrow-functions-7.12.1"
       sources."@babel/plugin-transform-async-to-generator-7.12.1"
       sources."@babel/plugin-transform-block-scoped-functions-7.12.1"
-      sources."@babel/plugin-transform-block-scoping-7.12.1"
+      sources."@babel/plugin-transform-block-scoping-7.12.12"
       sources."@babel/plugin-transform-classes-7.12.1"
       sources."@babel/plugin-transform-computed-properties-7.12.1"
       sources."@babel/plugin-transform-destructuring-7.12.1"
       sources."@babel/plugin-transform-dotall-regex-7.12.1"
       sources."@babel/plugin-transform-duplicate-keys-7.12.1"
       sources."@babel/plugin-transform-exponentiation-operator-7.12.1"
-      sources."@babel/plugin-transform-flow-strip-types-7.12.1"
+      sources."@babel/plugin-transform-flow-strip-types-7.12.10"
       sources."@babel/plugin-transform-for-of-7.12.1"
       sources."@babel/plugin-transform-function-name-7.12.1"
       sources."@babel/plugin-transform-literals-7.12.1"
@@ -89267,22 +93164,22 @@ in
       sources."@babel/plugin-transform-object-super-7.12.1"
       sources."@babel/plugin-transform-parameters-7.12.1"
       sources."@babel/plugin-transform-property-literals-7.12.1"
-      sources."@babel/plugin-transform-react-jsx-7.12.7"
+      sources."@babel/plugin-transform-react-jsx-7.12.12"
       sources."@babel/plugin-transform-regenerator-7.12.1"
       sources."@babel/plugin-transform-reserved-words-7.12.1"
       sources."@babel/plugin-transform-shorthand-properties-7.12.1"
       sources."@babel/plugin-transform-spread-7.12.1"
       sources."@babel/plugin-transform-sticky-regex-7.12.7"
       sources."@babel/plugin-transform-template-literals-7.12.1"
-      sources."@babel/plugin-transform-typeof-symbol-7.12.1"
+      sources."@babel/plugin-transform-typeof-symbol-7.12.10"
       sources."@babel/plugin-transform-unicode-escapes-7.12.1"
       sources."@babel/plugin-transform-unicode-regex-7.12.1"
-      sources."@babel/preset-env-7.12.7"
+      sources."@babel/preset-env-7.12.11"
       sources."@babel/preset-modules-0.1.4"
       sources."@babel/runtime-7.12.5"
       sources."@babel/template-7.12.7"
-      sources."@babel/traverse-7.12.9"
-      sources."@babel/types-7.12.7"
+      sources."@babel/traverse-7.12.12"
+      sources."@babel/types-7.12.12"
       sources."@iarna/toml-2.2.5"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
@@ -89380,7 +93277,7 @@ in
           sources."pako-1.0.11"
         ];
       })
-      sources."browserslist-4.15.0"
+      sources."browserslist-4.16.0"
       (sources."buffer-4.9.2" // {
         dependencies = [
           sources."isarray-1.0.0"
@@ -89397,7 +93294,7 @@ in
       sources."caller-path-2.0.0"
       sources."callsites-2.0.0"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001165"
+      sources."caniuse-lite-1.0.30001171"
       sources."caseless-0.12.0"
       sources."chalk-2.4.2"
       sources."chokidar-2.1.8"
@@ -89424,7 +93321,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.8.0" // {
+      (sources."core-js-compat-3.8.1" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -89481,7 +93378,7 @@ in
       sources."dashdash-1.14.1"
       sources."data-urls-1.1.0"
       sources."deasync-0.1.21"
-      sources."debug-4.3.1"
+      sources."debug-4.3.2"
       sources."decode-uri-component-0.2.0"
       sources."deep-is-0.1.3"
       (sources."defaults-1.0.3" // {
@@ -89532,7 +93429,7 @@ in
       sources."duplexer2-0.1.4"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.616"
+      sources."electron-to-chromium-1.3.633"
       (sources."elliptic-6.5.3" // {
         dependencies = [
           sources."bn.js-4.11.9"
@@ -89591,7 +93488,7 @@ in
       sources."fsevents-1.2.13"
       sources."function-bind-1.1.1"
       sources."gensync-1.0.0-beta.2"
-      sources."get-intrinsic-1.0.1"
+      sources."get-intrinsic-1.0.2"
       sources."get-port-3.2.0"
       sources."get-value-2.0.6"
       sources."getpass-0.1.7"
@@ -89702,7 +93599,7 @@ in
       sources."isobject-3.0.1"
       sources."isstream-0.1.2"
       sources."js-tokens-4.0.0"
-      (sources."js-yaml-3.14.0" // {
+      (sources."js-yaml-3.14.1" // {
         dependencies = [
           sources."esprima-4.0.1"
         ];
@@ -89756,8 +93653,8 @@ in
         ];
       })
       sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-fn-1.2.0"
       sources."minimalistic-assert-1.0.1"
       sources."minimalistic-crypto-utils-1.0.1"
@@ -90222,7 +94119,7 @@ in
       sources."emoji-regex-7.0.3"
       sources."encodeurl-1.0.2"
       sources."entities-1.1.2"
-      sources."errno-0.1.7"
+      sources."errno-0.1.8"
       sources."escape-html-1.0.3"
       sources."esprima-4.0.1"
       sources."etag-1.8.1"
@@ -90249,7 +94146,7 @@ in
       sources."gelf-stream-1.1.1"
       sources."gelfling-0.3.1"
       sources."get-caller-file-2.0.5"
-      sources."get-intrinsic-1.0.1"
+      sources."get-intrinsic-1.0.2"
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.4"
@@ -90272,7 +94169,7 @@ in
       sources."is-typedarray-1.0.0"
       sources."isarray-1.0.0"
       sources."isstream-0.1.2"
-      sources."js-yaml-3.14.0"
+      sources."js-yaml-3.14.1"
       sources."jsbn-0.1.1"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
@@ -90290,6 +94187,7 @@ in
       sources."locate-path-3.0.0"
       sources."lodash-4.17.20"
       sources."lodash.clone-4.5.0"
+      sources."lodash.clonedeep-4.5.0"
       sources."lru-cache-6.0.0"
       sources."media-typer-0.3.0"
       sources."mediawiki-title-0.6.5"
@@ -90297,8 +94195,8 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
@@ -90369,7 +94267,7 @@ in
         ];
       })
       sources."serve-static-1.14.1"
-      (sources."service-runner-2.8.0" // {
+      (sources."service-runner-2.8.1" // {
         dependencies = [
           sources."semver-7.3.4"
           sources."yargs-14.2.3"
@@ -90392,7 +94290,7 @@ in
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-is-1.6.18"
-      sources."uglify-js-3.12.1"
+      sources."uglify-js-3.12.4"
       sources."unix-dgram-2.0.4"
       sources."unpipe-1.0.0"
       sources."uri-js-4.4.0"
@@ -90796,7 +94694,7 @@ in
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
       sources."get-browser-rtc-1.1.0"
-      sources."get-intrinsic-1.0.1"
+      sources."get-intrinsic-1.0.2"
       sources."get-stdin-4.0.1"
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.4"
@@ -90812,7 +94710,7 @@ in
       sources."indent-string-2.1.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       (sources."inquirer-5.2.0" // {
         dependencies = [
           sources."ansi-regex-3.0.0"
@@ -90855,7 +94753,7 @@ in
       sources."magnet-uri-5.4.0"
       sources."map-obj-1.0.1"
       sources."meow-3.7.0"
-      sources."mime-2.4.6"
+      sources."mime-2.4.7"
       sources."mimic-fn-1.2.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
@@ -91123,7 +95021,7 @@ in
         dependencies = [
           sources."cookie-0.3.1"
           sources."debug-4.1.1"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
       (sources."engine.io-client-3.4.4" // {
@@ -91219,8 +95117,8 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -91320,7 +95218,7 @@ in
       (sources."socket.io-2.3.0" // {
         dependencies = [
           sources."debug-4.1.1"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
       sources."socket.io-adapter-1.1.2"
@@ -91329,7 +95227,7 @@ in
           sources."base64-arraybuffer-0.1.5"
           sources."debug-4.1.1"
           sources."isarray-2.0.1"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
           (sources."socket.io-parser-3.3.1" // {
             dependencies = [
               sources."component-emitter-1.3.0"
@@ -91343,7 +95241,7 @@ in
         dependencies = [
           sources."debug-4.1.1"
           sources."isarray-2.0.1"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
       sources."speedometer-0.1.4"
@@ -91351,7 +95249,7 @@ in
       sources."statuses-1.5.0"
       sources."string2compact-1.3.0"
       sources."string_decoder-1.1.1"
-      sources."tar-stream-2.1.4"
+      sources."tar-stream-2.2.0"
       sources."thirty-two-0.0.2"
       sources."thunky-1.1.0"
       sources."to-array-0.1.4"
@@ -91382,7 +95280,7 @@ in
       sources."verror-1.10.0"
       sources."which-1.3.1"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.1"
+      sources."ws-7.4.2"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."xtend-4.0.2"
       sources."yeast-0.1.2"
@@ -91401,10 +95299,10 @@ in
   pm2 = nodeEnv.buildNodePackage {
     name = "pm2";
     packageName = "pm2";
-    version = "4.5.0";
+    version = "4.5.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pm2/-/pm2-4.5.0.tgz";
-      sha512 = "sXKn0Qsrqj++qgsdGTASEsWfURhM6vSPIqFPwSwk3bK5/QPLxuRmVDW1y82M9wEnlgEjiIryaLhZUp5saLuhPA==";
+      url = "https://registry.npmjs.org/pm2/-/pm2-4.5.1.tgz";
+      sha512 = "gEOYugy4vEGazszDtjbZcWnZhHpBLKl0JiYhEnIJqmMj576a0D5LNCmd9grJswB1ziZim+9YInqFrG3FQTxvEg==";
     };
     dependencies = [
       (sources."@opencensus/core-0.0.9" // {
@@ -91498,7 +95396,11 @@ in
       sources."cron-1.8.2"
       sources."data-uri-to-buffer-1.2.0"
       sources."dayjs-1.8.36"
-      sources."debug-4.3.1"
+      (sources."debug-4.3.2" // {
+        dependencies = [
+          sources."ms-2.1.2"
+        ];
+      })
       sources."deep-is-0.1.3"
       sources."degenerator-1.0.4"
       sources."depd-1.1.2"
@@ -91578,7 +95480,7 @@ in
       sources."module-details-from-path-1.0.3"
       sources."moment-2.29.1"
       sources."moment-timezone-0.5.32"
-      sources."ms-2.1.2"
+      sources."ms-2.1.3"
       sources."mute-stream-0.0.8"
       (sources."needle-2.4.0" // {
         dependencies = [
@@ -91627,7 +95529,7 @@ in
         ];
       })
       sources."readdirp-3.5.0"
-      sources."require-in-the-middle-5.0.3"
+      sources."require-in-the-middle-5.1.0"
       sources."resolve-1.19.0"
       sources."run-series-1.1.9"
       sources."safe-buffer-5.1.2"
@@ -91655,7 +95557,7 @@ in
       sources."statuses-1.5.0"
       sources."string_decoder-0.10.31"
       sources."supports-color-7.2.0"
-      sources."systeminformation-4.30.11"
+      sources."systeminformation-4.33.5"
       sources."thunkify-2.1.2"
       sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.0"
@@ -91690,10 +95592,10 @@ in
   pnpm = nodeEnv.buildNodePackage {
     name = "pnpm";
     packageName = "pnpm";
-    version = "5.13.5";
+    version = "5.14.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pnpm/-/pnpm-5.13.5.tgz";
-      sha512 = "EJO8eYZyNpOvW+JhjBnLtxD2xcC6YlrzH8jxjETj8bevLATFa9vnGq614ada6o1XOIMq31JWtj1WyPJNogAzLA==";
+      url = "https://registry.npmjs.org/pnpm/-/pnpm-5.14.1.tgz";
+      sha512 = "zxdmGEMcvJq5JU4lb3s48xbDnT9C7PHk/aOO7kefgA2LklOuEakRx2sKyGyWRykyQMtOS7h1rD4kdCWsOrh6Hg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -91736,14 +95638,14 @@ in
   postcss-cli = nodeEnv.buildNodePackage {
     name = "postcss-cli";
     packageName = "postcss-cli";
-    version = "8.3.0";
+    version = "8.3.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/postcss-cli/-/postcss-cli-8.3.0.tgz";
-      sha512 = "GqWohD9VmH+LCe+xsv6VCdcgNylNBmsrbxJlyXUGteGGdcmazj2YxSiJMUmQpg8pE6LRox9idtsTB7JZq5a+rw==";
+      url = "https://registry.npmjs.org/postcss-cli/-/postcss-cli-8.3.1.tgz";
+      sha512 = "leHXsQRq89S3JC9zw/tKyiVV2jAhnfQe0J8VI4eQQbUjwIe0XxVqLrR+7UsahF1s9wi4GlqP6SJ8ydf44cgF2Q==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.4"
-      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/code-frame-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
       (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
@@ -91754,9 +95656,9 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."@nodelib/fs.scandir-2.1.3"
-      sources."@nodelib/fs.stat-2.0.3"
-      sources."@nodelib/fs.walk-1.2.4"
+      sources."@nodelib/fs.scandir-2.1.4"
+      sources."@nodelib/fs.stat-2.0.4"
+      sources."@nodelib/fs.walk-1.2.6"
       sources."@types/parse-json-4.0.0"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.3.0"
@@ -91780,7 +95682,7 @@ in
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
       sources."fast-glob-3.2.4"
-      sources."fastq-1.9.0"
+      sources."fastq-1.10.0"
       sources."fill-range-7.0.1"
       sources."fs-extra-9.0.1"
       sources."fsevents-2.1.3"
@@ -91792,7 +95694,7 @@ in
       sources."has-flag-4.0.0"
       sources."ignore-5.1.8"
       sources."import-cwd-3.0.0"
-      sources."import-fresh-3.2.2"
+      sources."import-fresh-3.3.0"
       (sources."import-from-3.0.0" // {
         dependencies = [
           sources."resolve-from-5.0.0"
@@ -91843,7 +95745,7 @@ in
       sources."wrap-ansi-7.0.0"
       sources."y18n-5.0.5"
       sources."yaml-1.10.0"
-      sources."yargs-16.1.1"
+      sources."yargs-16.2.0"
       sources."yargs-parser-20.2.4"
     ];
     buildInputs = globalBuildInputs;
@@ -92188,11 +96090,11 @@ in
       sources."isexe-2.0.0"
       sources."shell-quote-1.7.2"
       sources."uuid-3.4.0"
-      sources."vscode-jsonrpc-5.0.1"
+      sources."vscode-jsonrpc-6.0.0"
       sources."vscode-languageserver-6.1.1"
-      sources."vscode-languageserver-protocol-3.15.3"
+      sources."vscode-languageserver-protocol-3.16.0"
       sources."vscode-languageserver-textdocument-1.0.1"
-      sources."vscode-languageserver-types-3.15.1"
+      sources."vscode-languageserver-types-3.16.0"
       sources."vscode-uri-2.1.2"
       sources."which-2.0.2"
     ];
@@ -92245,10 +96147,10 @@ in
   pyright = nodeEnv.buildNodePackage {
     name = "pyright";
     packageName = "pyright";
-    version = "1.1.92";
+    version = "1.1.98";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pyright/-/pyright-1.1.92.tgz";
-      sha512 = "kL6c2wafnJgbXmG2Svz9isAhAMWARnmMiUGBRytcdVsse11crLDzaWusegA4P6sTweoHMcT3+P8fmLv2Av1u/Q==";
+      url = "https://registry.npmjs.org/pyright/-/pyright-1.1.98.tgz";
+      sha512 = "zDynNde59nDGs58/FpOSndAAxbFTq0x3/RUHng+rN2Ir3Y9CUnYg1vH29q4RnMlwCT/ERrQbmOTxBeD9edUBvQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -92260,6 +96162,227 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  quicktype = nodeEnv.buildNodePackage {
+    name = "quicktype";
+    packageName = "quicktype";
+    version = "15.0.258";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/quicktype/-/quicktype-15.0.258.tgz";
+      sha512 = "nTDC6LmwsFNJU1qY9+t09e4k1J1PosVDhZKRizkRinQzRVITFOzKSMuFBD3UJ1yaO9Irn7QKBlm9rae+9p+Cdg==";
+    };
+    dependencies = [
+      sources."@mark.probst/typescript-json-schema-0.32.0"
+      sources."@mark.probst/unicode-properties-1.1.0"
+      sources."acorn-7.4.1"
+      sources."ansi-regex-3.0.0"
+      sources."ansi-styles-3.2.1"
+      sources."array-back-2.0.0"
+      sources."balanced-match-1.0.0"
+      sources."brace-expansion-1.1.11"
+      sources."brfs-1.6.1"
+      sources."browser-or-node-1.3.0"
+      sources."buffer-equal-0.0.1"
+      sources."buffer-from-1.1.1"
+      sources."camelcase-5.3.1"
+      sources."chalk-2.4.2"
+      sources."cliui-4.1.0"
+      sources."code-point-at-1.1.0"
+      sources."collection-utils-1.0.1"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."command-line-args-4.0.7"
+      sources."command-line-usage-5.0.5"
+      sources."concat-map-0.0.1"
+      sources."concat-stream-1.6.2"
+      sources."convert-source-map-1.7.0"
+      sources."core-util-is-1.0.2"
+      sources."cross-spawn-6.0.5"
+      sources."decamelize-1.2.0"
+      sources."deep-extend-0.6.0"
+      sources."deep-is-0.1.3"
+      sources."duplexer2-0.1.4"
+      sources."encoding-0.1.13"
+      sources."end-of-stream-1.4.4"
+      sources."escape-string-regexp-1.0.5"
+      sources."escodegen-1.9.1"
+      sources."esprima-3.1.3"
+      sources."estraverse-4.3.0"
+      sources."esutils-2.0.3"
+      sources."execa-1.0.0"
+      sources."falafel-2.2.4"
+      sources."fast-levenshtein-2.0.6"
+      (sources."find-replace-1.0.3" // {
+        dependencies = [
+          sources."array-back-1.0.4"
+        ];
+      })
+      sources."find-up-3.0.0"
+      sources."foreach-2.0.5"
+      sources."fs.realpath-1.0.0"
+      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."graphql-0.11.7"
+      sources."has-1.0.3"
+      sources."has-flag-3.0.0"
+      sources."iconv-lite-0.6.2"
+      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-fullwidth-code-point-1.0.0"
+      sources."is-stream-1.1.0"
+      sources."is-url-1.2.4"
+      sources."isarray-2.0.5"
+      sources."isexe-2.0.0"
+      sources."isomorphic-fetch-2.2.1"
+      sources."iterall-1.1.3"
+      sources."js-base64-2.6.4"
+      sources."json-stable-stringify-1.0.1"
+      sources."jsonify-0.0.0"
+      sources."lcid-2.0.0"
+      sources."levn-0.3.0"
+      sources."locate-path-3.0.0"
+      sources."lodash-4.17.20"
+      sources."lodash.padend-4.6.1"
+      sources."magic-string-0.22.5"
+      sources."map-age-cleaner-0.1.3"
+      sources."mem-4.3.0"
+      (sources."merge-source-map-1.0.4" // {
+        dependencies = [
+          sources."source-map-0.5.7"
+        ];
+      })
+      sources."mimic-fn-2.1.0"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      sources."moment-2.29.1"
+      sources."nice-try-1.0.5"
+      sources."node-fetch-1.7.3"
+      sources."npm-run-path-2.0.2"
+      sources."number-is-nan-1.0.1"
+      sources."object-inspect-1.4.1"
+      sources."object-keys-1.1.1"
+      sources."once-1.4.0"
+      sources."optionator-0.8.3"
+      sources."os-locale-3.1.0"
+      sources."p-defer-1.0.0"
+      sources."p-finally-1.0.0"
+      sources."p-is-promise-2.1.0"
+      sources."p-limit-2.3.0"
+      sources."p-locate-3.0.0"
+      sources."p-try-2.2.0"
+      sources."pako-1.0.11"
+      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."pluralize-7.0.0"
+      sources."prelude-ls-1.1.2"
+      sources."process-nextick-args-2.0.1"
+      sources."pump-3.0.0"
+      sources."quote-stream-1.0.2"
+      (sources."readable-stream-2.3.0" // {
+        dependencies = [
+          sources."isarray-1.0.0"
+          sources."process-nextick-args-1.0.7"
+          sources."string_decoder-1.0.3"
+        ];
+      })
+      sources."reduce-flatten-1.0.1"
+      sources."require-directory-2.1.1"
+      sources."require-main-filename-1.0.1"
+      sources."resolve-1.19.0"
+      sources."safe-buffer-5.1.2"
+      sources."safer-buffer-2.1.2"
+      sources."semver-5.7.1"
+      sources."set-blocking-2.0.0"
+      sources."shallow-copy-0.0.1"
+      sources."shebang-command-1.2.0"
+      sources."shebang-regex-1.0.0"
+      sources."signal-exit-3.0.3"
+      sources."source-map-0.6.1"
+      (sources."static-eval-2.1.0" // {
+        dependencies = [
+          sources."escodegen-1.14.3"
+          sources."esprima-4.0.1"
+        ];
+      })
+      (sources."static-module-2.2.5" // {
+        dependencies = [
+          sources."isarray-1.0.0"
+          sources."readable-stream-2.3.7"
+        ];
+      })
+      sources."stream-chain-2.2.4"
+      sources."stream-json-1.1.3"
+      sources."string-to-stream-1.1.1"
+      (sources."string-width-2.1.1" // {
+        dependencies = [
+          sources."is-fullwidth-code-point-2.0.0"
+        ];
+      })
+      sources."string_decoder-1.1.1"
+      sources."strip-ansi-4.0.0"
+      sources."strip-eof-1.0.0"
+      sources."supports-color-5.5.0"
+      sources."table-layout-0.4.5"
+      (sources."test-value-2.1.0" // {
+        dependencies = [
+          sources."array-back-1.0.4"
+        ];
+      })
+      (sources."through2-2.0.5" // {
+        dependencies = [
+          sources."isarray-1.0.0"
+          sources."readable-stream-2.3.7"
+        ];
+      })
+      sources."tiny-inflate-1.0.3"
+      sources."type-check-0.3.2"
+      sources."typedarray-0.0.6"
+      sources."typescript-3.2.4"
+      sources."typical-2.6.1"
+      (sources."unicode-trie-0.3.1" // {
+        dependencies = [
+          sources."pako-0.2.9"
+        ];
+      })
+      sources."urijs-1.19.5"
+      sources."util-deprecate-1.0.2"
+      sources."uuid-3.4.0"
+      sources."vlq-0.2.3"
+      sources."whatwg-fetch-3.5.0"
+      sources."which-1.3.1"
+      sources."which-module-2.0.0"
+      sources."word-wrap-1.2.3"
+      sources."wordwrap-1.0.0"
+      sources."wordwrapjs-3.0.0"
+      (sources."wrap-ansi-2.1.0" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."string-width-1.0.2"
+          sources."strip-ansi-3.0.1"
+        ];
+      })
+      sources."wrappy-1.0.2"
+      sources."xtend-4.0.2"
+      sources."y18n-4.0.1"
+      sources."yaml-1.10.0"
+      sources."yargs-12.0.5"
+      sources."yargs-parser-11.1.1"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "![](https://raw.githubusercontent.com/quicktype/quicktype/master/quicktype-logo.svg?sanitize=true)";
+      homepage = "https://github.com/quicktype/quicktype#readme";
+      license = "Apache-2.0";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   react-native-cli = nodeEnv.buildNodePackage {
     name = "react-native-cli";
     packageName = "react-native-cli";
@@ -92291,7 +96414,7 @@ in
       sources."foreach-2.0.5"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
-      sources."get-intrinsic-1.0.1"
+      sources."get-intrinsic-1.0.2"
       sources."glob-7.1.6"
       sources."has-1.0.3"
       sources."has-ansi-2.0.0"
@@ -92301,17 +96424,21 @@ in
       sources."inherits-2.0.4"
       sources."is-arguments-1.1.0"
       sources."is-bigint-1.0.1"
-      sources."is-boolean-object-1.0.1"
+      sources."is-boolean-object-1.1.0"
       sources."is-callable-1.2.2"
       sources."is-date-object-1.0.2"
-      sources."is-map-2.0.1"
+      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.1"
-      sources."is-set-2.0.1"
+      sources."is-set-2.0.2"
       sources."is-string-1.0.5"
       sources."is-symbol-1.0.3"
-      sources."is-typed-array-1.1.3"
+      (sources."is-typed-array-1.1.4" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.1"
+        ];
+      })
       sources."is-weakmap-2.0.1"
       sources."is-weakset-2.0.1"
       sources."isarray-2.0.5"
@@ -92334,20 +96461,20 @@ in
       sources."revalidator-0.1.8"
       sources."rimraf-2.7.1"
       sources."semver-5.7.1"
-      (sources."side-channel-1.0.3" // {
-        dependencies = [
-          sources."es-abstract-1.18.0-next.1"
-        ];
-      })
+      sources."side-channel-1.0.4"
       sources."stack-trace-0.0.10"
       sources."string.prototype.trimend-1.0.3"
       sources."string.prototype.trimstart-1.0.3"
       sources."strip-ansi-3.0.1"
       sources."supports-color-2.0.0"
       sources."utile-0.2.1"
-      sources."which-boxed-primitive-1.0.1"
+      sources."which-boxed-primitive-1.0.2"
       sources."which-collection-1.0.1"
-      sources."which-typed-array-1.1.2"
+      (sources."which-typed-array-1.1.4" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.1"
+        ];
+      })
       (sources."winston-0.8.3" // {
         dependencies = [
           sources."pkginfo-0.3.1"
@@ -92491,8 +96618,8 @@ in
       sources."levn-0.3.0"
       sources."lodash-4.17.20"
       sources."lodash.sortby-4.7.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."minimist-1.2.5"
       sources."nwsapi-2.2.0"
       sources."oauth-sign-0.9.0"
@@ -92536,7 +96663,7 @@ in
       sources."whatwg-mimetype-2.3.0"
       sources."whatwg-url-8.4.0"
       sources."word-wrap-1.2.3"
-      sources."ws-7.4.1"
+      sources."ws-7.4.2"
       sources."xml-name-validator-3.0.0"
       sources."xmlchars-2.2.0"
     ];
@@ -92559,31 +96686,31 @@ in
       sha512 = "AQHx67+fJ+7PZUGf0Vl24XO02isSLHU7fh/OXu6wreFm6B1+xrVhcehV9um2nk63Zq9GFenjnv2GoXEyMSGc7Q==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.4"
-      (sources."@babel/generator-7.12.5" // {
+      sources."@babel/code-frame-7.12.11"
+      (sources."@babel/generator-7.12.11" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
-      sources."@babel/helper-annotate-as-pure-7.10.4"
-      sources."@babel/helper-function-name-7.10.4"
-      sources."@babel/helper-get-function-arity-7.10.4"
+      sources."@babel/helper-annotate-as-pure-7.12.10"
+      sources."@babel/helper-function-name-7.12.11"
+      sources."@babel/helper-get-function-arity-7.12.10"
       sources."@babel/helper-module-imports-7.12.5"
-      sources."@babel/helper-split-export-declaration-7.11.0"
-      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/helper-split-export-declaration-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
       sources."@babel/highlight-7.10.4"
-      sources."@babel/parser-7.12.7"
+      sources."@babel/parser-7.12.11"
       sources."@babel/runtime-7.12.5"
       sources."@babel/template-7.12.7"
-      sources."@babel/traverse-7.12.9"
-      sources."@babel/types-7.12.7"
+      sources."@babel/traverse-7.12.12"
+      sources."@babel/types-7.12.12"
       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/react-dropdown-aria-2.0.11"
-      sources."@types/node-13.13.34"
+      sources."@types/node-13.13.38"
       sources."ajv-5.5.2"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
@@ -92641,7 +96768,7 @@ in
       sources."color-name-1.1.3"
       sources."console-browserify-1.2.0"
       sources."constants-browserify-1.0.0"
-      sources."core-js-3.8.0"
+      sources."core-js-3.8.1"
       sources."core-util-is-1.0.2"
       (sources."create-ecdh-4.0.4" // {
         dependencies = [
@@ -92653,7 +96780,7 @@ in
       sources."crypto-browserify-3.12.0"
       sources."css-color-keywords-1.0.0"
       sources."css-to-react-native-3.0.0"
-      sources."debug-4.3.1"
+      sources."debug-4.3.2"
       sources."decamelize-1.2.0"
       sources."decko-1.2.0"
       sources."delegate-3.2.0"
@@ -92664,7 +96791,7 @@ in
         ];
       })
       sources."domain-browser-1.2.0"
-      sources."dompurify-2.2.2"
+      sources."dompurify-2.2.6"
       (sources."elliptic-6.5.3" // {
         dependencies = [
           sources."bn.js-4.11.9"
@@ -92717,7 +96844,7 @@ in
       sources."is-number-7.0.0"
       sources."isarray-2.0.5"
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.14.0"
+      sources."js-yaml-3.14.1"
       sources."jsesc-2.5.2"
       sources."json-pointer-0.6.1"
       sources."json-schema-ref-parser-6.1.0"
@@ -92755,7 +96882,7 @@ in
       sources."oas-linter-3.2.1"
       (sources."oas-resolver-2.5.3" // {
         dependencies = [
-          sources."yargs-16.1.1"
+          sources."yargs-16.2.0"
         ];
       })
       sources."oas-schema-walker-1.1.5"
@@ -92776,7 +96903,7 @@ in
       sources."picomatch-2.2.2"
       sources."polished-3.6.7"
       sources."postcss-value-parser-4.1.0"
-      sources."prismjs-1.22.0"
+      sources."prismjs-1.23.0"
       sources."process-0.11.10"
       sources."process-nextick-args-2.0.1"
       sources."prop-types-15.7.2"
@@ -92793,7 +96920,7 @@ in
       sources."react-16.14.0"
       sources."react-dom-16.14.0"
       sources."react-is-16.13.1"
-      sources."react-tabs-3.1.1"
+      sources."react-tabs-3.1.2"
       (sources."readable-stream-2.3.7" // {
         dependencies = [
           sources."inherits-2.0.4"
@@ -92842,7 +96969,7 @@ in
       sources."to-regex-range-5.0.1"
       sources."tslib-2.0.3"
       sources."tty-browserify-0.0.0"
-      sources."uglify-js-3.12.1"
+      sources."uglify-js-3.12.4"
       (sources."url-0.11.0" // {
         dependencies = [
           sources."punycode-1.3.2"
@@ -92912,10 +97039,10 @@ in
   rollup = nodeEnv.buildNodePackage {
     name = "rollup";
     packageName = "rollup";
-    version = "2.34.1";
+    version = "2.35.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/rollup/-/rollup-2.34.1.tgz";
-      sha512 = "tGveB6NU5x4MS/iXaIsjfUkEv4hxzJJ4o0FRy5LO62Ndx3R2cmE1qsLYlSfRkvHUUPqWiFoxEm8pRftzh1a5HA==";
+      url = "https://registry.npmjs.org/rollup/-/rollup-2.35.1.tgz";
+      sha512 = "q5KxEyWpprAIcainhVy6HfRttD9kutQpHbeqDTWnqAFNJotiojetK6uqmcydNMymBEtC4I8bCYR+J3mTMqeaUA==";
     };
     dependencies = [
       sources."fsevents-2.1.3"
@@ -92936,8 +97063,8 @@ in
     version = "0.4.0-dev";
     src = ../../misc/vscode-extensions/rust-analyzer/build-deps;
     dependencies = [
-      sources."@babel/code-frame-7.10.4"
-      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/code-frame-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
       (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."chalk-2.4.2"
@@ -92956,7 +97083,7 @@ in
       sources."@types/node-12.7.12"
       sources."@types/node-fetch-2.5.7"
       sources."@types/resolve-1.17.1"
-      sources."@types/vscode-1.51.0"
+      sources."@types/vscode-1.52.0"
       (sources."@typescript-eslint/eslint-plugin-3.10.1" // {
         dependencies = [
           sources."semver-7.3.4"
@@ -92981,7 +97108,7 @@ in
       sources."ansi-styles-3.2.1"
       sources."anymatch-3.1.1"
       sources."argparse-1.0.10"
-      sources."astral-regex-1.0.0"
+      sources."astral-regex-2.0.0"
       sources."asynckit-0.4.0"
       sources."azure-devops-node-api-7.2.0"
       sources."balanced-match-1.0.0"
@@ -92991,7 +97118,7 @@ in
       sources."braces-3.0.2"
       sources."browser-stdout-1.3.1"
       sources."buffer-crc32-0.2.13"
-      sources."builtin-modules-3.1.0"
+      sources."builtin-modules-3.2.0"
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       (sources."chalk-4.1.0" // {
@@ -93003,11 +97130,15 @@ in
           sources."supports-color-7.2.0"
         ];
       })
-      sources."cheerio-1.0.0-rc.3"
+      sources."cheerio-1.0.0-rc.5"
+      sources."cheerio-select-tmp-0.1.1"
       sources."chokidar-3.4.3"
       (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"
         ];
       })
@@ -93019,9 +97150,9 @@ in
       sources."commondir-1.0.1"
       sources."concat-map-0.0.1"
       sources."cross-spawn-7.0.3"
-      sources."css-select-1.2.0"
-      sources."css-what-2.1.3"
-      sources."debug-4.3.1"
+      sources."css-select-3.1.2"
+      sources."css-what-4.0.0"
+      sources."debug-4.3.2"
       sources."decamelize-1.2.0"
       sources."deep-freeze-0.0.1"
       sources."deep-is-0.1.3"
@@ -93030,10 +97161,10 @@ in
       sources."denodeify-1.2.1"
       sources."diff-4.0.2"
       sources."doctrine-3.0.0"
-      sources."dom-serializer-0.1.1"
-      sources."domelementtype-1.3.1"
-      sources."domhandler-2.4.2"
-      sources."domutils-1.5.1"
+      sources."dom-serializer-1.2.0"
+      sources."domelementtype-2.1.0"
+      sources."domhandler-4.0.0"
+      sources."domutils-2.4.4"
       (sources."editorconfig-0.15.3" // {
         dependencies = [
           sources."lru-cache-4.1.5"
@@ -93041,13 +97172,13 @@ in
           sources."yallist-2.1.2"
         ];
       })
-      sources."emoji-regex-7.0.3"
+      sources."emoji-regex-8.0.0"
       sources."enquirer-2.3.6"
-      sources."entities-1.1.2"
+      sources."entities-2.1.0"
       sources."es6-promise-4.2.8"
       sources."es6-promisify-5.0.0"
       sources."escape-string-regexp-1.0.5"
-      (sources."eslint-7.15.0" // {
+      (sources."eslint-7.17.0" // {
         dependencies = [
           sources."eslint-visitor-keys-2.0.0"
           sources."semver-7.3.4"
@@ -93094,7 +97225,7 @@ in
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
       sources."he-1.2.0"
-      sources."htmlparser2-3.10.1"
+      sources."htmlparser2-6.0.0"
       (sources."http-proxy-agent-2.1.0" // {
         dependencies = [
           sources."debug-3.1.0"
@@ -93107,14 +97238,14 @@ in
         ];
       })
       sources."ignore-4.0.6"
-      sources."import-fresh-3.2.2"
+      sources."import-fresh-3.3.0"
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."is-binary-path-2.1.0"
       sources."is-core-module-2.2.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-module-1.0.0"
       sources."is-number-7.0.0"
@@ -93122,7 +97253,7 @@ in
       sources."is-reference-1.2.1"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.14.0"
+      sources."js-yaml-3.14.1"
       sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-without-jsonify-1.0.1"
       sources."leven-3.1.0"
@@ -93140,14 +97271,15 @@ in
       })
       sources."mdurl-1.0.1"
       sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."minimatch-3.0.4"
       (sources."mocha-8.2.1" // {
         dependencies = [
           sources."debug-4.2.0"
           sources."escape-string-regexp-4.0.0"
           sources."has-flag-4.0.0"
+          sources."js-yaml-3.14.0"
           sources."supports-color-7.2.0"
         ];
       })
@@ -93157,7 +97289,7 @@ in
       sources."natural-compare-1.4.0"
       sources."node-fetch-2.6.1"
       sources."normalize-path-3.0.0"
-      sources."nth-check-1.0.2"
+      sources."nth-check-2.0.0"
       sources."once-1.4.0"
       sources."optionator-0.9.1"
       sources."os-0.1.1"
@@ -93173,7 +97305,8 @@ in
           sources."semver-5.7.1"
         ];
       })
-      sources."parse5-3.0.3"
+      sources."parse5-6.0.1"
+      sources."parse5-htmlparser2-tree-adapter-6.0.1"
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
@@ -93186,15 +97319,15 @@ in
       sources."punycode-2.1.1"
       sources."randombytes-2.1.0"
       sources."read-1.0.7"
-      sources."readable-stream-3.6.0"
       sources."readdirp-3.5.0"
       sources."regexpp-3.1.0"
       sources."require-directory-2.1.1"
+      sources."require-from-string-2.0.2"
       sources."require-main-filename-2.0.0"
       sources."resolve-1.19.0"
       sources."resolve-from-4.0.0"
       sources."rimraf-3.0.2"
-      sources."rollup-2.34.1"
+      sources."rollup-2.35.1"
       sources."safe-buffer-5.2.1"
       sources."semver-6.3.0"
       sources."serialize-javascript-5.0.1"
@@ -93202,20 +97335,25 @@ in
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."sigmund-1.0.1"
-      sources."slice-ansi-2.1.0"
-      sources."sourcemap-codec-1.4.8"
-      sources."sprintf-js-1.0.3"
-      (sources."string-width-3.1.0" // {
+      (sources."slice-ansi-4.0.0" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."strip-ansi-5.2.0"
+          sources."ansi-styles-4.3.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
         ];
       })
-      sources."string_decoder-1.3.0"
+      sources."sourcemap-codec-1.4.8"
+      sources."sprintf-js-1.0.3"
+      sources."string-width-4.2.0"
       sources."strip-ansi-6.0.0"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-5.5.0"
-      sources."table-5.4.6"
+      (sources."table-6.0.6" // {
+        dependencies = [
+          sources."ajv-7.0.3"
+          sources."json-schema-traverse-1.0.0"
+        ];
+      })
       sources."text-table-0.2.0"
       sources."tmp-0.0.29"
       sources."to-regex-range-5.0.1"
@@ -93235,12 +97373,11 @@ in
       sources."underscore-1.8.3"
       sources."uri-js-4.4.0"
       sources."url-join-1.1.0"
-      sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-2.2.0"
-      (sources."vsce-1.81.1" // {
+      (sources."vsce-1.83.0" // {
         dependencies = [
           sources."chalk-2.4.2"
-          sources."commander-6.2.0"
+          sources."commander-6.2.1"
           sources."semver-5.7.1"
         ];
       })
@@ -93258,6 +97395,7 @@ in
       (sources."wide-align-1.1.3" // {
         dependencies = [
           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"
         ];
@@ -93267,6 +97405,9 @@ in
       (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"
         ];
       })
@@ -93275,11 +97416,16 @@ in
       sources."yallist-4.0.0"
       (sources."yargs-13.3.2" // {
         dependencies = [
+          sources."ansi-regex-4.1.0"
+          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-limit-2.3.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"
@@ -93334,7 +97480,7 @@ in
       sources."crc-0.2.0"
       sources."crypto-0.0.3"
       sources."dashdash-1.14.1"
-      sources."debug-4.3.1"
+      sources."debug-4.3.2"
       sources."delayed-stream-1.0.0"
       sources."ecc-jsbn-0.1.2"
       sources."events.node-0.4.9"
@@ -93380,8 +97526,8 @@ in
       sources."keypress-0.1.0"
       sources."methods-0.1.0"
       sources."mime-1.2.11"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mkdirp-0.3.5"
       sources."ms-2.1.2"
       sources."multiparty-2.2.0"
@@ -93435,10 +97581,10 @@ in
   sass = nodeEnv.buildNodePackage {
     name = "sass";
     packageName = "sass";
-    version = "1.30.0";
+    version = "1.32.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/sass/-/sass-1.30.0.tgz";
-      sha512 = "26EUhOXRLaUY7+mWuRFqGeGGNmhB1vblpTENO1Z7mAzzIZeVxZr9EZoaY1kyGLFWdSOZxRMAufiN2mkbO6dAlw==";
+      url = "https://registry.npmjs.org/sass/-/sass-1.32.0.tgz";
+      sha512 = "fhyqEbMIycQA4blrz/C0pYhv2o4x2y6FYYAH0CshBw3DXh5D5wyERgxw0ptdau1orc/GhNrhF7DFN2etyOCEng==";
     };
     dependencies = [
       sources."anymatch-3.1.1"
@@ -93538,14 +97684,14 @@ in
       })
       sources."get-stream-3.0.0"
       sources."has-flag-3.0.0"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-stream-1.1.0"
       sources."isexe-2.0.0"
       sources."json-schema-traverse-0.4.1"
       sources."lru-cache-4.1.5"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."ms-2.0.0"
@@ -93598,23 +97744,23 @@ in
   serverless = nodeEnv.buildNodePackage {
     name = "serverless";
     packageName = "serverless";
-    version = "2.15.0";
+    version = "2.17.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/serverless/-/serverless-2.15.0.tgz";
-      sha512 = "lgLFdmjcTJAP3v/BlZkE3EyE1ZkIfcoBcL/J/z9dF8er71w6UJ0pixbnJ4CYSOgqS5DK7MphaP+hTTY12Aw6OQ==";
+      url = "https://registry.npmjs.org/serverless/-/serverless-2.17.0.tgz";
+      sha512 = "OVlrvBESW0aQB3G/SrZQ3WFmALhHRU9qUJ/LLoyFlpddAY4hr0APOixWehiHvf4aI7Vuo04lP9zffttjhviOPA==";
     };
     dependencies = [
       sources."2-thenable-1.0.0"
       (sources."@kwsites/file-exists-1.1.1" // {
         dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."ms-2.1.2"
         ];
       })
       sources."@kwsites/promise-deferred-1.1.1"
-      sources."@nodelib/fs.scandir-2.1.3"
-      sources."@nodelib/fs.stat-2.0.3"
-      sources."@nodelib/fs.walk-1.2.4"
+      sources."@nodelib/fs.scandir-2.1.4"
+      sources."@nodelib/fs.stat-2.0.4"
+      sources."@nodelib/fs.walk-1.2.6"
       sources."@protobufjs/aspromise-1.1.2"
       sources."@protobufjs/base64-1.1.2"
       sources."@protobufjs/codegen-2.0.4"
@@ -93646,14 +97792,14 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."@serverless/enterprise-plugin-4.2.0"
+      sources."@serverless/enterprise-plugin-4.4.1"
       sources."@serverless/event-mocks-1.1.1"
       sources."@serverless/platform-client-3.1.4"
       sources."@serverless/platform-client-china-2.0.9"
       (sources."@serverless/platform-sdk-2.3.2" // {
         dependencies = [
           sources."chalk-2.4.2"
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."https-proxy-agent-4.0.0"
           sources."is-docker-1.1.0"
           sources."ms-2.1.2"
@@ -93663,12 +97809,12 @@ in
         ];
       })
       sources."@serverless/template-1.1.4"
-      (sources."@serverless/utils-2.0.0" // {
+      (sources."@serverless/utils-2.1.0" // {
         dependencies = [
           sources."write-file-atomic-3.0.3"
         ];
       })
-      sources."@serverless/utils-china-1.0.11"
+      sources."@serverless/utils-china-1.0.12"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@tencent-sdk/capi-1.1.8"
@@ -93676,9 +97822,9 @@ in
       sources."@types/caseless-0.12.2"
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/keyv-3.1.1"
-      sources."@types/lodash-4.14.165"
+      sources."@types/lodash-4.14.167"
       sources."@types/long-4.0.1"
-      sources."@types/node-14.14.10"
+      sources."@types/node-14.14.19"
       sources."@types/request-2.48.5"
       sources."@types/request-promise-native-1.0.17"
       sources."@types/responselike-1.0.0"
@@ -93709,7 +97855,7 @@ in
         dependencies = [
           sources."async-3.2.0"
           sources."bl-4.0.3"
-          sources."tar-stream-2.1.4"
+          sources."tar-stream-2.2.0"
         ];
       })
       (sources."archiver-utils-2.1.0" // {
@@ -93735,7 +97881,7 @@ in
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
-      (sources."aws-sdk-2.804.0" // {
+      (sources."aws-sdk-2.820.0" // {
         dependencies = [
           sources."buffer-4.9.2"
           sources."ieee754-1.1.13"
@@ -93794,8 +97940,8 @@ in
       sources."buffer-from-1.1.1"
       sources."buffermaker-1.2.1"
       sources."buffers-0.1.1"
-      sources."builtin-modules-3.1.0"
-      sources."cacheable-lookup-5.0.3"
+      sources."builtin-modules-3.2.0"
+      sources."cacheable-lookup-5.0.4"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
           sources."get-stream-5.2.0"
@@ -93868,7 +98014,7 @@ in
         ];
       })
       sources."dashdash-1.14.1"
-      sources."dayjs-1.9.7"
+      sources."dayjs-1.9.8"
       sources."debug-3.1.0"
       sources."decode-uri-component-0.2.0"
       sources."decompress-4.2.1"
@@ -93967,7 +98113,7 @@ in
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-safe-stringify-2.0.7"
       sources."fastest-levenshtein-1.0.12"
-      sources."fastq-1.9.0"
+      sources."fastq-1.10.0"
       sources."fd-slicer-1.1.0"
       sources."fecha-4.2.0"
       sources."figures-3.2.0"
@@ -94018,7 +98164,7 @@ in
       sources."glob-7.1.6"
       sources."glob-parent-5.1.1"
       sources."globby-11.0.1"
-      (sources."got-11.8.0" // {
+      (sources."got-11.8.1" // {
         dependencies = [
           sources."@sindresorhus/is-4.0.0"
           sources."@szmarczak/http-timer-4.0.5"
@@ -94054,7 +98200,7 @@ in
       (sources."https-proxy-agent-5.0.0" // {
         dependencies = [
           sources."agent-base-6.0.2"
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."ms-2.1.2"
         ];
       })
@@ -94066,7 +98212,7 @@ in
       sources."indexof-0.0.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       (sources."inquirer-7.3.3" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
@@ -94098,7 +98244,7 @@ in
       sources."isstream-0.1.2"
       sources."isurl-1.0.0"
       sources."jmespath-0.15.0"
-      sources."js-yaml-3.14.0"
+      sources."js-yaml-3.14.1"
       sources."jsbn-0.1.1"
       sources."json-buffer-3.0.0"
       sources."json-cycle-1.3.0"
@@ -94149,7 +98295,7 @@ in
       })
       (sources."logform-2.2.0" // {
         dependencies = [
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
       sources."long-1.1.2"
@@ -94166,8 +98312,8 @@ in
       sources."methods-1.1.2"
       sources."micromatch-4.0.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
@@ -94200,7 +98346,7 @@ in
       sources."number-is-nan-1.0.1"
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
-      sources."object-hash-2.0.3"
+      sources."object-hash-2.1.1"
       sources."once-1.4.0"
       sources."one-time-0.0.4"
       sources."onetime-5.1.2"
@@ -94250,7 +98396,7 @@ in
       sources."promise-queue-2.2.5"
       (sources."protobufjs-6.10.2" // {
         dependencies = [
-          sources."@types/node-13.13.34"
+          sources."@types/node-13.13.38"
           sources."long-4.0.0"
         ];
       })
@@ -94300,9 +98446,9 @@ in
       sources."signal-exit-3.0.3"
       sources."simple-concat-1.0.1"
       sources."simple-get-2.8.1"
-      (sources."simple-git-2.24.0" // {
+      (sources."simple-git-2.31.0" // {
         dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."ms-2.1.2"
         ];
       })
@@ -94354,7 +98500,7 @@ in
           sources."chalk-2.4.2"
           sources."cli-cursor-2.1.0"
           sources."cli-width-2.2.1"
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."figures-2.0.0"
           sources."inquirer-6.5.2"
           sources."is-fullwidth-code-point-2.0.0"
@@ -94421,7 +98567,7 @@ in
       sources."url-to-options-1.0.1"
       sources."urlencode-1.1.0"
       sources."util-deprecate-1.0.2"
-      sources."uuid-8.3.1"
+      sources."uuid-8.3.2"
       sources."verror-1.10.0"
       sources."which-1.3.1"
       sources."which-pm-runs-1.0.0"
@@ -94444,7 +98590,7 @@ in
       })
       sources."wrappy-1.0.2"
       sources."write-file-atomic-2.4.3"
-      sources."ws-7.4.1"
+      sources."ws-7.4.2"
       sources."xml2js-0.4.19"
       sources."xmlbuilder-9.0.7"
       sources."xmlhttprequest-ssl-1.5.5"
@@ -94593,8 +98739,8 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."moment-2.7.0"
@@ -94709,6 +98855,8 @@ in
       sha512 = "8XJnwCFR4DatLz1s0nGFe6IJPJ+5pjRFhoBuBKq8SLgFI40eD7ak6jOXpzeG0tmIpyOc1zCs9bjKAxMFm1451A==";
     };
     dependencies = [
+      sources."ansi-regex-5.0.0"
+      sources."ansi-styles-3.2.1"
       sources."arr-diff-4.0.0"
       sources."arr-flatten-1.1.0"
       sources."arr-union-3.1.0"
@@ -94727,6 +98875,7 @@ in
         ];
       })
       sources."cache-base-1.0.1"
+      sources."chalk-2.4.2"
       (sources."class-utils-0.3.6" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -94744,9 +98893,10 @@ in
           sources."kind-of-5.1.0"
         ];
       })
-      sources."cli-table-0.3.1"
+      sources."cli-table-0.3.4"
       sources."collection-visit-1.0.0"
-      sources."colors-1.0.3"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
       sources."commander-2.9.0"
       sources."component-emitter-1.3.0"
       sources."copy-descriptor-0.1.1"
@@ -94754,6 +98904,8 @@ in
       sources."debug-2.6.9"
       sources."decode-uri-component-0.2.0"
       sources."define-property-2.0.2"
+      sources."emoji-regex-8.0.0"
+      sources."escape-string-regexp-1.0.5"
       (sources."expand-brackets-2.1.4" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -94793,6 +98945,7 @@ in
       sources."get-value-2.0.6"
       sources."graceful-fs-4.2.4"
       sources."graceful-readlink-1.0.1"
+      sources."has-flag-3.0.0"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
         dependencies = [
@@ -94805,6 +98958,7 @@ in
       sources."is-data-descriptor-1.0.0"
       sources."is-descriptor-1.0.2"
       sources."is-extendable-0.1.1"
+      sources."is-fullwidth-code-point-3.0.0"
       (sources."is-number-3.0.0" // {
         dependencies = [
           sources."kind-of-3.2.2"
@@ -94907,7 +99061,10 @@ in
           sources."kind-of-5.1.0"
         ];
       })
+      sources."string-width-4.2.0"
       sources."string_decoder-1.1.1"
+      sources."strip-ansi-6.0.0"
+      sources."supports-color-5.5.0"
       (sources."to-object-path-0.3.0" // {
         dependencies = [
           sources."kind-of-3.2.2"
@@ -95095,10 +99252,10 @@ in
   snyk = nodeEnv.buildNodePackage {
     name = "snyk";
     packageName = "snyk";
-    version = "1.434.2";
+    version = "1.437.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/snyk/-/snyk-1.434.2.tgz";
-      sha512 = "DPU3c0ixrefM7Rh7klUn9fTTTaiee3J3SKVn4zU7LxDREKlxPB+A+xiGkEbkRsLqIZK1xJtP6KopwWOSYjZ+Ow==";
+      url = "https://registry.npmjs.org/snyk/-/snyk-1.437.3.tgz";
+      sha512 = "DFcYz8Q8LT/XNCNxaeEoGahazvkEhWS//JWJTfr6W1d5jMnORQauPxxj4RR3WGjKewSDl2eElwK1jhi5RNOP9g==";
     };
     dependencies = [
       sources."@sindresorhus/is-2.1.1"
@@ -95112,7 +99269,12 @@ in
       sources."@snyk/dep-graph-1.21.0"
       sources."@snyk/docker-registry-v2-client-1.13.9"
       sources."@snyk/gemfile-1.2.0"
-      sources."@snyk/java-call-graph-builder-1.16.2"
+      (sources."@snyk/java-call-graph-builder-1.18.0" // {
+        dependencies = [
+          sources."rimraf-3.0.2"
+          sources."tmp-0.2.1"
+        ];
+      })
       sources."@snyk/rpm-parser-2.2.1"
       (sources."@snyk/snyk-cocoapods-plugin-2.5.1" // {
         dependencies = [
@@ -95132,7 +99294,7 @@ in
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/js-yaml-3.12.5"
       sources."@types/keyv-3.1.1"
-      sources."@types/node-14.14.10"
+      sources."@types/node-14.14.19"
       sources."@types/responselike-1.0.0"
       sources."@types/semver-5.5.0"
       sources."@yarnpkg/lockfile-1.1.0"
@@ -95186,7 +99348,7 @@ in
       sources."buffer-5.7.1"
       sources."buffer-from-1.1.1"
       sources."bytes-3.1.0"
-      sources."cacheable-lookup-5.0.3"
+      sources."cacheable-lookup-5.0.4"
       (sources."cacheable-request-7.0.1" // {
         dependencies = [
           sources."get-stream-5.2.0"
@@ -95215,7 +99377,7 @@ in
       })
       sources."crypto-random-string-2.0.0"
       sources."data-uri-to-buffer-1.2.0"
-      sources."debug-4.3.1"
+      sources."debug-4.3.2"
       (sources."decompress-response-6.0.0" // {
         dependencies = [
           sources."mimic-response-3.1.0"
@@ -95279,7 +99441,7 @@ in
         ];
       })
       sources."glob-7.1.6"
-      sources."global-dirs-2.0.1"
+      sources."global-dirs-2.1.0"
       sources."got-11.4.0"
       sources."graceful-fs-4.2.4"
       sources."graphlib-2.1.8"
@@ -95313,7 +99475,7 @@ in
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.7"
       (sources."inquirer-7.3.3" // {
         dependencies = [
           sources."ansi-escapes-4.3.1"
@@ -95343,7 +99505,7 @@ in
       sources."is-yarn-global-0.3.0"
       sources."isarray-0.0.1"
       sources."isexe-2.0.0"
-      sources."js-yaml-3.14.0"
+      sources."js-yaml-3.14.1"
       sources."json-buffer-3.0.1"
       (sources."jszip-3.5.0" // {
         dependencies = [
@@ -95391,7 +99553,7 @@ in
       sources."nice-try-1.0.5"
       sources."normalize-url-4.5.0"
       sources."npm-run-path-2.0.2"
-      sources."object-hash-2.0.3"
+      sources."object-hash-2.1.1"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
       sources."open-7.3.0"
@@ -95484,22 +99646,21 @@ in
           sources."tslib-2.0.3"
         ];
       })
-      (sources."snyk-docker-plugin-4.12.0" // {
+      (sources."snyk-docker-plugin-4.13.1" // {
         dependencies = [
           sources."rimraf-3.0.2"
           sources."tmp-0.2.1"
-          sources."uuid-8.3.1"
+          sources."uuid-8.3.2"
         ];
       })
       sources."snyk-go-parser-1.4.1"
-      (sources."snyk-go-plugin-1.16.2" // {
+      (sources."snyk-go-plugin-1.16.4" // {
         dependencies = [
-          sources."@snyk/dep-graph-1.19.4"
           sources."rimraf-3.0.2"
           sources."tmp-0.2.1"
         ];
       })
-      (sources."snyk-gradle-plugin-3.10.3" // {
+      (sources."snyk-gradle-plugin-3.11.0" // {
         dependencies = [
           (sources."@snyk/cli-interface-2.9.1" // {
             dependencies = [
@@ -95543,7 +99704,7 @@ in
       })
       (sources."snyk-nodejs-lockfile-parser-1.30.1" // {
         dependencies = [
-          sources."uuid-8.3.1"
+          sources."uuid-8.3.2"
         ];
       })
       (sources."snyk-nuget-plugin-1.19.4" // {
@@ -95633,7 +99794,7 @@ in
       sources."strip-eof-1.0.0"
       sources."strip-json-comments-2.0.1"
       sources."supports-color-5.5.0"
-      (sources."tar-stream-2.1.4" // {
+      (sources."tar-stream-2.2.0" // {
         dependencies = [
           sources."readable-stream-3.6.0"
           sources."safe-buffer-5.2.1"
@@ -95677,7 +99838,7 @@ in
       sources."url-parse-lax-3.0.0"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
-      sources."vscode-languageserver-types-3.15.1"
+      sources."vscode-languageserver-types-3.16.0"
       sources."which-1.3.1"
       sources."widest-line-3.1.0"
       sources."windows-release-3.3.3"
@@ -95713,41 +99874,34 @@ in
   "socket.io" = nodeEnv.buildNodePackage {
     name = "socket.io";
     packageName = "socket.io";
-    version = "3.0.3";
+    version = "3.0.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/socket.io/-/socket.io-3.0.3.tgz";
-      sha512 = "TC1GnSXhDVmd3bHji5aG7AgWB8UL7E6quACbKra8uFXBqlMwEDbrJFK+tjuIY5Pe9N0L+MAPPDv3pycnn0000A==";
+      url = "https://registry.npmjs.org/socket.io/-/socket.io-3.0.4.tgz";
+      sha512 = "Vj1jUoO75WGc9txWd311ZJJqS9Dr8QtNJJ7gk2r7dcM/yGe9sit7qOijQl3GAwhpBOz/W8CwkD7R6yob07nLbA==";
     };
     dependencies = [
-      sources."@types/body-parser-1.19.0"
       sources."@types/component-emitter-1.2.10"
-      sources."@types/connect-3.4.33"
       sources."@types/cookie-0.4.0"
-      sources."@types/cors-2.8.8"
-      sources."@types/express-4.17.9"
-      sources."@types/express-serve-static-core-4.17.14"
-      sources."@types/mime-2.0.3"
-      sources."@types/node-14.14.10"
-      sources."@types/qs-6.9.5"
-      sources."@types/range-parser-1.2.3"
-      sources."@types/serve-static-1.13.8"
+      sources."@types/cors-2.8.9"
+      sources."@types/node-14.14.19"
       sources."accepts-1.3.7"
+      sources."base64-arraybuffer-0.1.4"
       sources."base64id-2.0.0"
       sources."component-emitter-1.3.0"
       sources."cookie-0.4.1"
       sources."cors-2.8.5"
       sources."debug-4.1.1"
-      sources."engine.io-4.0.4"
-      sources."engine.io-parser-4.0.1"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
-      sources."ms-2.1.2"
+      sources."engine.io-4.0.5"
+      sources."engine.io-parser-4.0.2"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
+      sources."ms-2.1.3"
       sources."negotiator-0.6.2"
       sources."object-assign-4.1.1"
       sources."socket.io-adapter-2.0.3"
       sources."socket.io-parser-4.0.2"
       sources."vary-1.1.2"
-      sources."ws-7.4.1"
+      sources."ws-7.4.2"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -95823,7 +99977,7 @@ in
       sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
       sources."indent-string-3.2.0"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."is-arrayish-0.2.1"
       sources."is-ci-1.2.1"
       sources."is-core-module-2.2.0"
@@ -96000,7 +100154,7 @@ in
       sources."character-entities-legacy-1.1.4"
       sources."character-reference-invalid-1.1.4"
       sources."charwise-3.0.1"
-      sources."chloride-2.3.0"
+      sources."chloride-2.4.0"
       sources."chloride-test-1.2.4"
       sources."chokidar-1.7.0"
       (sources."class-utils-0.3.6" // {
@@ -96048,7 +100202,7 @@ in
       sources."copy-descriptor-0.1.1"
       sources."core-util-is-1.0.2"
       sources."cross-spawn-6.0.5"
-      sources."debug-4.3.1"
+      sources."debug-4.3.2"
       sources."decode-uri-component-0.2.0"
       sources."deep-equal-1.1.1"
       sources."deep-extend-0.6.0"
@@ -96078,7 +100232,7 @@ in
         ];
       })
       sources."epidemic-broadcast-trees-7.0.0"
-      sources."errno-0.1.7"
+      sources."errno-0.1.8"
       sources."es-abstract-1.17.7"
       (sources."es-get-iterator-1.1.1" // {
         dependencies = [
@@ -96146,7 +100300,7 @@ in
       sources."fs.realpath-1.0.0"
       sources."fsevents-1.2.13"
       sources."function-bind-1.1.1"
-      sources."get-intrinsic-1.0.1"
+      sources."get-intrinsic-1.0.2"
       sources."get-value-2.0.6"
       sources."glob-6.0.4"
       sources."glob-base-0.3.0"
@@ -96183,7 +100337,7 @@ in
       sources."increment-buffer-1.0.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."int53-1.0.0"
       sources."ip-1.1.5"
       sources."irregular-plurals-1.4.0"
@@ -96197,7 +100351,7 @@ in
       sources."is-arguments-1.1.0"
       sources."is-bigint-1.0.1"
       sources."is-binary-path-1.0.1"
-      sources."is-boolean-object-1.0.1"
+      sources."is-boolean-object-1.1.0"
       sources."is-buffer-1.1.6"
       sources."is-callable-1.2.2"
       sources."is-canonical-base64-1.1.1"
@@ -96214,14 +100368,13 @@ in
         ];
       })
       sources."is-dotfile-1.0.3"
-      sources."is-electron-2.2.0"
       sources."is-equal-shallow-0.1.3"
       sources."is-extendable-0.1.1"
       sources."is-extglob-1.0.0"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-glob-2.0.1"
       sources."is-hexadecimal-1.0.4"
-      sources."is-map-2.0.1"
+      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"
@@ -96233,10 +100386,14 @@ in
       sources."is-posix-bracket-0.1.1"
       sources."is-primitive-2.0.0"
       sources."is-regex-1.1.1"
-      sources."is-set-2.0.1"
+      sources."is-set-2.0.2"
       sources."is-string-1.0.5"
       sources."is-symbol-1.0.3"
-      sources."is-typed-array-1.1.3"
+      (sources."is-typed-array-1.1.4" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.1"
+        ];
+      })
       sources."is-typedarray-1.0.0"
       sources."is-valid-domain-0.0.17"
       sources."is-weakmap-2.0.1"
@@ -96300,7 +100457,7 @@ in
       sources."multiblob-1.13.7"
       sources."multiblob-http-1.0.0"
       sources."multicb-1.2.2"
-      sources."multiserver-3.6.0"
+      sources."multiserver-3.7.0"
       sources."multiserver-address-1.0.1"
       sources."multiserver-scopes-1.0.0"
       sources."mutexify-1.3.1"
@@ -96323,7 +100480,7 @@ in
       })
       sources."napi-macros-2.0.0"
       sources."ncp-2.0.0"
-      sources."nearley-2.20.0"
+      sources."nearley-2.20.1"
       sources."nice-try-1.0.5"
       sources."node-gyp-build-4.2.3"
       sources."non-private-ip-1.4.4"
@@ -96541,7 +100698,7 @@ in
       sources."secret-handshake-1.1.20"
       sources."secret-stack-6.3.1"
       sources."semver-5.7.1"
-      sources."separator-escape-0.0.0"
+      sources."separator-escape-0.0.1"
       (sources."set-value-2.0.1" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
@@ -96551,11 +100708,7 @@ in
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."shellsubstitute-1.2.0"
-      (sources."side-channel-1.0.3" // {
-        dependencies = [
-          sources."es-abstract-1.18.0-next.1"
-        ];
-      })
+      sources."side-channel-1.0.4"
       sources."smart-buffer-4.1.0"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
@@ -96731,9 +100884,13 @@ in
       sources."vfile-sort-1.0.0"
       sources."ware-1.3.0"
       sources."which-1.3.1"
-      sources."which-boxed-primitive-1.0.1"
+      sources."which-boxed-primitive-1.0.2"
       sources."which-collection-1.0.1"
-      sources."which-typed-array-1.1.2"
+      (sources."which-typed-array-1.1.4" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.1"
+        ];
+      })
       sources."word-wrap-1.2.3"
       sources."wrap-fn-0.1.5"
       sources."wrappy-1.0.2"
@@ -96837,7 +100994,7 @@ in
       sources."async-1.5.2"
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
-      (sources."aws-sdk-2.804.0" // {
+      (sources."aws-sdk-2.820.0" // {
         dependencies = [
           sources."uuid-3.3.2"
         ];
@@ -96977,7 +101134,7 @@ in
         dependencies = [
           sources."cookie-0.3.1"
           sources."debug-4.1.1"
-          sources."ws-7.4.1"
+          sources."ws-7.4.2"
         ];
       })
       (sources."engine.io-client-3.4.4" // {
@@ -97025,7 +101182,7 @@ in
       sources."fd-slicer-1.1.0"
       sources."finalhandler-1.1.2"
       sources."find-up-3.0.0"
-      sources."follow-redirects-1.13.0"
+      sources."follow-redirects-1.13.1"
       sources."forever-agent-0.6.1"
       sources."form-data-2.1.4"
       sources."formidable-1.2.2"
@@ -97119,7 +101276,7 @@ in
       (sources."json-refs-2.1.7" // {
         dependencies = [
           sources."esprima-4.0.1"
-          sources."js-yaml-3.14.0"
+          sources."js-yaml-3.14.1"
           sources."punycode-2.1.1"
           sources."uri-js-3.0.2"
         ];
@@ -97196,8 +101353,8 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-fn-2.1.0"
       sources."minicap-prebuilt-2.3.0"
       sources."minimatch-3.0.4"
@@ -97205,7 +101362,7 @@ in
       sources."minitouch-prebuilt-1.2.0"
       sources."mkdirp-0.5.5"
       sources."moment-2.29.1"
-      sources."ms-2.1.2"
+      sources."ms-2.1.3"
       sources."multer-1.4.2"
       sources."mustache-2.3.2"
       sources."mv-2.1.1"
@@ -97447,7 +101604,7 @@ in
       (sources."swagger-node-runner-0.7.3" // {
         dependencies = [
           sources."esprima-4.0.1"
-          sources."js-yaml-3.14.0"
+          sources."js-yaml-3.14.1"
           sources."lodash-3.10.1"
           sources."qs-6.9.4"
         ];
@@ -97457,7 +101614,7 @@ in
         dependencies = [
           sources."esprima-4.0.1"
           sources."isarray-0.0.1"
-          sources."js-yaml-3.14.0"
+          sources."js-yaml-3.14.1"
           sources."path-to-regexp-1.8.0"
         ];
       })
@@ -97620,32 +101777,32 @@ in
       sha512 = "iHH3dv3UI23SLDrH4zMQDjLT9/dDIz/IpoFeuNxZmEx86KtfpjDOscxLTFioQyv+2vQjPlRZnK0UoJtfxLICXQ==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.4"
-      sources."@babel/core-7.12.9"
-      sources."@babel/generator-7.12.5"
-      sources."@babel/helper-function-name-7.10.4"
-      sources."@babel/helper-get-function-arity-7.10.4"
+      sources."@babel/code-frame-7.12.11"
+      sources."@babel/core-7.12.10"
+      sources."@babel/generator-7.12.11"
+      sources."@babel/helper-function-name-7.12.11"
+      sources."@babel/helper-get-function-arity-7.12.10"
       sources."@babel/helper-member-expression-to-functions-7.12.7"
       sources."@babel/helper-module-imports-7.12.5"
       sources."@babel/helper-module-transforms-7.12.1"
-      sources."@babel/helper-optimise-call-expression-7.12.7"
-      sources."@babel/helper-replace-supers-7.12.5"
+      sources."@babel/helper-optimise-call-expression-7.12.10"
+      sources."@babel/helper-replace-supers-7.12.11"
       sources."@babel/helper-simple-access-7.12.1"
-      sources."@babel/helper-split-export-declaration-7.11.0"
-      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/helper-split-export-declaration-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
       sources."@babel/helpers-7.12.5"
       (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.12.7"
+      sources."@babel/parser-7.12.11"
       sources."@babel/template-7.12.7"
-      sources."@babel/traverse-7.12.9"
-      sources."@babel/types-7.12.7"
-      sources."@nodelib/fs.scandir-2.1.3"
-      sources."@nodelib/fs.stat-2.0.3"
-      sources."@nodelib/fs.walk-1.2.4"
+      sources."@babel/traverse-7.12.12"
+      sources."@babel/types-7.12.12"
+      sources."@nodelib/fs.scandir-2.1.4"
+      sources."@nodelib/fs.stat-2.0.4"
+      sources."@nodelib/fs.walk-1.2.6"
       sources."@stylelint/postcss-css-in-js-0.37.2"
       sources."@stylelint/postcss-markdown-0.36.2"
       sources."@types/mdast-3.0.3"
@@ -97653,7 +101810,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-6.12.6"
+      sources."ajv-7.0.3"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
       sources."array-union-2.1.0"
@@ -97664,11 +101821,11 @@ in
       sources."balanced-match-1.0.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."browserslist-4.15.0"
+      sources."browserslist-4.16.0"
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001165"
+      sources."caniuse-lite-1.0.30001171"
       (sources."chalk-4.1.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -97689,7 +101846,7 @@ in
       sources."convert-source-map-1.7.0"
       sources."cosmiconfig-7.0.0"
       sources."cssesc-3.0.0"
-      sources."debug-4.3.1"
+      sources."debug-4.3.2"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
         dependencies = [
@@ -97706,7 +101863,7 @@ in
       sources."domelementtype-1.3.1"
       sources."domhandler-2.4.2"
       sources."domutils-1.7.0"
-      sources."electron-to-chromium-1.3.616"
+      sources."electron-to-chromium-1.3.633"
       sources."emoji-regex-8.0.0"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
@@ -97716,9 +101873,8 @@ in
       sources."extend-3.0.2"
       sources."fast-deep-equal-3.1.3"
       sources."fast-glob-3.2.4"
-      sources."fast-json-stable-stringify-2.1.0"
       sources."fastest-levenshtein-1.0.12"
-      sources."fastq-1.9.0"
+      sources."fastq-1.10.0"
       sources."file-entry-cache-6.0.0"
       sources."fill-range-7.0.1"
       sources."find-up-4.1.0"
@@ -97743,7 +101899,7 @@ in
       sources."html-tags-3.1.0"
       sources."htmlparser2-3.10.1"
       sources."ignore-5.1.8"
-      (sources."import-fresh-3.2.2" // {
+      (sources."import-fresh-3.3.0" // {
         dependencies = [
           sources."resolve-from-4.0.0"
         ];
@@ -97754,7 +101910,7 @@ in
       sources."indexes-of-1.0.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."is-alphabetical-1.0.4"
       sources."is-alphanumerical-1.0.4"
       sources."is-arrayish-0.2.1"
@@ -97773,7 +101929,7 @@ in
       sources."js-tokens-4.0.0"
       sources."jsesc-2.5.2"
       sources."json-parse-even-better-errors-2.3.1"
-      sources."json-schema-traverse-0.4.1"
+      sources."json-schema-traverse-1.0.0"
       sources."json5-2.1.3"
       sources."kind-of-6.0.3"
       sources."known-css-properties-0.20.0"
@@ -97785,16 +101941,12 @@ in
       sources."lru-cache-6.0.0"
       sources."map-obj-4.1.0"
       sources."mathml-tag-names-2.1.3"
-      sources."mdast-util-from-markdown-0.8.1"
-      (sources."mdast-util-to-markdown-0.5.4" // {
-        dependencies = [
-          sources."mdast-util-to-string-2.0.0"
-        ];
-      })
-      sources."mdast-util-to-string-1.1.0"
-      sources."meow-8.0.0"
+      sources."mdast-util-from-markdown-0.8.4"
+      sources."mdast-util-to-markdown-0.6.2"
+      sources."mdast-util-to-string-2.0.0"
+      sources."meow-8.1.0"
       sources."merge2-1.4.1"
-      sources."micromark-2.10.1"
+      sources."micromark-2.11.2"
       sources."micromatch-4.0.2"
       sources."min-indent-1.0.1"
       sources."minimatch-3.0.4"
@@ -97865,9 +102017,9 @@ in
       sources."redent-3.0.0"
       sources."remark-13.0.0"
       sources."remark-parse-9.0.0"
-      sources."remark-stringify-9.0.0"
+      sources."remark-stringify-9.0.1"
       sources."repeat-string-1.6.1"
-      sources."replace-ext-1.0.0"
+      sources."require-from-string-2.0.2"
       sources."resolve-1.19.0"
       sources."resolve-from-5.0.0"
       sources."reusify-1.0.4"
@@ -97902,7 +102054,7 @@ in
       sources."sugarss-2.0.0"
       sources."supports-color-5.5.0"
       sources."svg-tags-1.0.0"
-      sources."table-6.0.4"
+      sources."table-6.0.6"
       sources."to-fast-properties-2.0.0"
       sources."to-regex-range-5.0.1"
       sources."trim-newlines-3.0.0"
@@ -97918,7 +102070,7 @@ in
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-2.2.0"
       sources."validate-npm-package-license-3.0.4"
-      sources."vfile-4.2.0"
+      sources."vfile-4.2.1"
       sources."vfile-message-2.0.4"
       sources."which-1.3.1"
       sources."wrappy-1.0.2"
@@ -97980,7 +102132,7 @@ in
       sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
       sources."function-bind-1.1.1"
-      sources."get-intrinsic-1.0.1"
+      sources."get-intrinsic-1.0.2"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
       sources."has-symbols-1.0.1"
@@ -97989,7 +102141,7 @@ in
       sources."is-negative-zero-2.0.1"
       sources."is-regex-1.1.1"
       sources."is-symbol-1.0.3"
-      sources."js-yaml-3.14.0"
+      sources."js-yaml-3.14.1"
       sources."mdn-data-2.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
@@ -98257,7 +102409,7 @@ in
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."inquirer-0.10.1"
       sources."is-accessor-descriptor-1.0.0"
       sources."is-binary-path-1.0.1"
@@ -98300,7 +102452,7 @@ in
         ];
       })
       sources."js-string-escape-1.0.1"
-      sources."js-yaml-3.14.0"
+      sources."js-yaml-3.14.1"
       sources."json-refs-2.1.7"
       (sources."json-schema-deref-sync-0.6.0" // {
         dependencies = [
@@ -98352,8 +102504,8 @@ in
       sources."methods-1.1.2"
       sources."micromatch-3.1.10"
       sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."minimatch-3.0.4"
       sources."minimist-0.0.8"
       sources."mixin-deep-1.3.2"
@@ -98380,7 +102532,7 @@ in
       (sources."nodemon-1.19.4" // {
         dependencies = [
           sources."debug-3.2.7"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
           sources."supports-color-5.5.0"
         ];
       })
@@ -98418,7 +102570,7 @@ in
       (sources."path-loader-1.0.10" // {
         dependencies = [
           sources."debug-3.2.7"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
           sources."qs-6.9.4"
           sources."superagent-3.8.3"
         ];
@@ -98596,7 +102748,7 @@ in
       sources."truncate-utf8-bytes-1.0.2"
       sources."type-is-1.6.18"
       sources."typedarray-0.0.6"
-      sources."uglify-js-3.12.1"
+      sources."uglify-js-3.12.4"
       sources."undefsafe-2.0.3"
       (sources."union-value-1.0.1" // {
         dependencies = [
@@ -98686,7 +102838,7 @@ in
       sources."combined-stream-1.0.8"
       sources."core-util-is-1.0.2"
       sources."dashdash-1.14.1"
-      sources."debug-4.3.1"
+      sources."debug-4.3.2"
       sources."decamelize-1.2.0"
       sources."delayed-stream-1.0.0"
       sources."discord.js-11.6.4"
@@ -98708,7 +102860,7 @@ in
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
-      sources."js-yaml-3.14.0"
+      sources."js-yaml-3.14.1"
       sources."jsbn-0.1.1"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
@@ -98716,9 +102868,9 @@ in
       sources."jsprim-1.4.1"
       sources."locate-path-3.0.0"
       sources."long-4.0.0"
-      sources."mime-2.4.6"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-2.4.7"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."minimist-1.2.5"
       sources."module-alias-2.2.2"
       sources."moment-2.29.1"
@@ -98793,7 +102945,7 @@ in
       sources."concat-map-0.0.1"
       sources."core-util-is-1.0.2"
       sources."enhanced-resolve-2.3.0"
-      sources."errno-0.1.7"
+      sources."errno-0.1.8"
       sources."fs.realpath-1.0.0"
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.4"
@@ -98828,28 +102980,28 @@ in
   textlint = nodeEnv.buildNodePackage {
     name = "textlint";
     packageName = "textlint";
-    version = "11.7.6";
+    version = "11.7.7";
     src = fetchurl {
-      url = "https://registry.npmjs.org/textlint/-/textlint-11.7.6.tgz";
-      sha512 = "o9nhbylWjOErba1gq2bMoJzughp9JK2VbENR+NCiMsNNEiaJ1P8jbnrL3ES86D6e0QMxziR79w5l7VmmdmLjCw==";
+      url = "https://registry.npmjs.org/textlint/-/textlint-11.7.7.tgz";
+      sha512 = "YSF2xLyvX5odEb142kqU2x0oUmL6yj4+mDolKb+ul5y7/HKEUgjq2G4GwkEtIOij1B52mbvS+MApI4Fx5VhhMA==";
     };
     dependencies = [
       sources."@azu/format-text-1.0.1"
       sources."@azu/style-format-1.0.0"
-      sources."@textlint/ast-node-types-4.3.4"
-      sources."@textlint/ast-tester-2.2.4"
-      sources."@textlint/ast-traverse-2.2.5"
-      sources."@textlint/feature-flag-3.2.4"
-      sources."@textlint/fixer-formatter-3.2.5"
-      sources."@textlint/kernel-3.3.6"
-      sources."@textlint/linter-formatter-3.2.5"
-      sources."@textlint/markdown-to-ast-6.2.5"
-      sources."@textlint/module-interop-1.1.4"
-      sources."@textlint/text-to-ast-3.2.4"
-      sources."@textlint/textlint-plugin-markdown-5.2.6"
-      sources."@textlint/textlint-plugin-text-4.2.6"
-      sources."@textlint/types-1.4.5"
-      sources."@textlint/utils-1.1.4"
+      sources."@textlint/ast-node-types-4.3.5"
+      sources."@textlint/ast-tester-2.2.5"
+      sources."@textlint/ast-traverse-2.2.6"
+      sources."@textlint/feature-flag-3.2.5"
+      sources."@textlint/fixer-formatter-3.2.6"
+      sources."@textlint/kernel-3.3.7"
+      sources."@textlint/linter-formatter-3.2.6"
+      sources."@textlint/markdown-to-ast-6.2.6"
+      sources."@textlint/module-interop-1.1.5"
+      sources."@textlint/text-to-ast-3.2.5"
+      sources."@textlint/textlint-plugin-markdown-5.2.7"
+      sources."@textlint/textlint-plugin-text-4.2.7"
+      sources."@textlint/types-1.4.6"
+      sources."@textlint/utils-1.1.5"
       sources."ajv-4.11.8"
       sources."ajv-keywords-1.5.1"
       sources."ansi-regex-2.1.1"
@@ -98877,7 +103029,7 @@ in
       sources."concat-stream-1.6.2"
       sources."core-util-is-1.0.2"
       sources."crypt-0.0.2"
-      sources."debug-4.3.1"
+      sources."debug-4.3.2"
       sources."deep-equal-1.1.1"
       sources."deep-is-0.1.3"
       sources."define-properties-1.1.3"
@@ -98897,7 +103049,7 @@ in
       sources."format-0.2.2"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
-      sources."get-intrinsic-1.0.1"
+      sources."get-intrinsic-1.0.2"
       sources."get-stdin-5.0.1"
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.4"
@@ -98926,12 +103078,12 @@ in
       sources."is-whitespace-character-1.0.4"
       sources."is-word-character-1.0.4"
       sources."isarray-1.0.0"
-      sources."js-yaml-3.14.0"
+      sources."js-yaml-3.14.1"
       sources."json-parse-better-errors-1.0.2"
       sources."json-stable-stringify-1.0.1"
       sources."json5-2.1.3"
       sources."jsonify-0.0.0"
-      sources."levn-0.3.0"
+      sources."levn-0.4.1"
       sources."load-json-file-1.1.0"
       sources."locate-path-2.0.0"
       sources."lodash-4.17.20"
@@ -98950,7 +103102,7 @@ in
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
       sources."once-1.4.0"
-      sources."optionator-0.8.3"
+      sources."optionator-0.9.1"
       sources."p-limit-1.3.0"
       sources."p-locate-2.0.0"
       sources."p-try-1.0.0"
@@ -98965,7 +103117,7 @@ in
       sources."pinkie-2.0.4"
       sources."pinkie-promise-2.0.1"
       sources."pluralize-2.0.0"
-      sources."prelude-ls-1.1.2"
+      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"
@@ -99027,7 +103179,7 @@ in
       sources."trim-trailing-lines-1.1.4"
       sources."trough-1.0.5"
       sources."try-resolve-1.0.1"
-      sources."type-check-0.3.2"
+      sources."type-check-0.4.0"
       sources."typedarray-0.0.6"
       sources."unherit-1.1.3"
       sources."unified-6.2.0"
@@ -99068,7 +103220,7 @@ in
       sha1 = "9139c65b8da891c983b368a50a286338cd76777a";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-4.3.4"
+      sources."@textlint/ast-node-types-4.3.5"
       sources."txt-to-ast-3.0.3"
     ];
     buildInputs = globalBuildInputs;
@@ -99095,7 +103247,7 @@ in
       sources."es-abstract-1.17.7"
       sources."es-to-primitive-1.2.1"
       sources."function-bind-1.1.1"
-      sources."get-intrinsic-1.0.1"
+      sources."get-intrinsic-1.0.2"
       sources."has-1.0.3"
       sources."has-symbols-1.0.1"
       sources."is-callable-1.2.2"
@@ -99129,13 +103281,13 @@ in
       sha512 = "z/Xo1WHxAn7eueUbRLXoMNew+R3dzGENPG/yiCt/KT2WgAfRuQ7GeF855kLcnCCqdTnl6W7sYq8TKy+/DLpiqQ==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.4"
-      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/code-frame-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
       sources."@babel/highlight-7.10.4"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@textlint/ast-node-types-4.3.4"
-      sources."@textlint/types-1.4.5"
+      sources."@textlint/ast-node-types-4.3.5"
+      sources."@textlint/types-1.4.6"
       sources."@types/hast-2.3.1"
       sources."@types/minimist-1.2.1"
       sources."@types/normalize-package-data-2.4.0"
@@ -99202,7 +103354,7 @@ in
       sources."core-util-is-1.0.2"
       sources."crypto-random-string-2.0.0"
       sources."cuss-1.21.0"
-      sources."debug-4.3.1"
+      sources."debug-4.3.2"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
         dependencies = [
@@ -99239,7 +103391,11 @@ in
       sources."git-diff-tree-1.1.0"
       sources."git-spawned-stream-1.0.1"
       sources."glob-7.1.6"
-      sources."global-dirs-2.0.1"
+      (sources."global-dirs-2.1.0" // {
+        dependencies = [
+          sources."ini-1.3.7"
+        ];
+      })
       sources."got-9.6.0"
       sources."graceful-fs-4.2.4"
       sources."hard-rejection-2.1.0"
@@ -99265,7 +103421,7 @@ in
       sources."indent-string-4.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."is-alphabetical-1.0.4"
       sources."is-alphanumeric-1.0.0"
       sources."is-alphanumerical-1.0.4"
@@ -99288,7 +103444,7 @@ in
       sources."is-yarn-global-0.3.0"
       sources."isarray-0.0.1"
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.14.0"
+      sources."js-yaml-3.14.1"
       sources."json-buffer-3.0.0"
       sources."json-parse-even-better-errors-2.3.1"
       sources."keyv-3.1.0"
@@ -99388,7 +103544,6 @@ in
       sources."remark-retext-4.0.0"
       sources."remark-stringify-8.1.1"
       sources."repeat-string-1.6.1"
-      sources."replace-ext-1.0.0"
       sources."resolve-1.19.0"
       sources."resolve-from-5.0.0"
       sources."responselike-1.0.2"
@@ -99473,13 +103628,13 @@ in
           sources."is-plain-obj-2.1.0"
         ];
       })
-      sources."unified-diff-3.0.1"
+      sources."unified-diff-3.1.0"
       (sources."unified-engine-8.0.0" // {
         dependencies = [
           sources."is-plain-obj-2.1.0"
         ];
       })
-      sources."unified-message-control-3.0.1"
+      sources."unified-message-control-3.0.2"
       sources."unique-string-2.0.0"
       sources."unist-util-inspect-5.0.1"
       sources."unist-util-is-4.0.4"
@@ -99503,11 +103658,11 @@ in
       sources."url-parse-lax-3.0.0"
       sources."util-deprecate-1.0.2"
       sources."validate-npm-package-license-3.0.4"
-      sources."vfile-4.2.0"
+      sources."vfile-4.2.1"
       sources."vfile-find-up-5.0.1"
       sources."vfile-location-3.2.0"
       sources."vfile-message-2.0.4"
-      (sources."vfile-reporter-6.0.1" // {
+      (sources."vfile-reporter-6.0.2" // {
         dependencies = [
           sources."supports-color-6.1.0"
         ];
@@ -99662,8 +103817,8 @@ in
       sha512 = "HydBbkWjnMn4KrnlpnusY1BGjIG+64UySxRCvRphUAIiuJL2nbkdrIIiOjwfQhllKUa7Sf33bs6RAcbEWjZVfg==";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-4.3.4"
-      sources."@textlint/types-1.4.5"
+      sources."@textlint/ast-node-types-4.3.5"
+      sources."@textlint/types-1.4.6"
       sources."boundary-1.0.1"
       sources."buffer-from-1.1.1"
       sources."call-bind-1.0.0"
@@ -99672,7 +103827,7 @@ in
       sources."es-abstract-1.18.0-next.1"
       sources."es-to-primitive-1.2.1"
       sources."function-bind-1.1.1"
-      sources."get-intrinsic-1.0.1"
+      sources."get-intrinsic-1.0.2"
       sources."has-1.0.3"
       sources."has-symbols-1.0.1"
       sources."inherits-2.0.4"
@@ -99728,7 +103883,7 @@ in
       sources."es-abstract-1.17.7"
       sources."es-to-primitive-1.2.1"
       sources."function-bind-1.1.1"
-      sources."get-intrinsic-1.0.1"
+      sources."get-intrinsic-1.0.2"
       sources."has-1.0.3"
       sources."has-symbols-1.0.1"
       sources."is-callable-1.2.2"
@@ -99760,8 +103915,8 @@ in
       sha512 = "wBG1K2HfmQaHEjxMddRB9canjBbX6xaztVB5d0cgOBVj9NTvPVWf4z9OuTfYUEmIt84wAvQ6XxsIA9YTJ+N5Fg==";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-4.3.4"
-      sources."@textlint/types-1.4.5"
+      sources."@textlint/ast-node-types-4.3.5"
+      sources."@textlint/types-1.4.6"
       sources."boundary-1.0.1"
       sources."lodash-4.17.20"
       sources."split-lines-2.0.0"
@@ -99790,8 +103945,8 @@ in
       sha512 = "kLw4qL8RwY2lCNqgKveHc5sjCDlS5Tdw2TXWOrHvSvQxqaVOwsv3+51oMIQLGfJzQrhFSMlSlw5MvfaOerBvPQ==";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-4.3.4"
-      sources."@textlint/types-1.4.5"
+      sources."@textlint/ast-node-types-4.3.5"
+      sources."@textlint/types-1.4.6"
       sources."boundary-1.0.1"
       sources."lodash-4.17.20"
       sources."strip-json-comments-3.1.1"
@@ -99826,7 +103981,7 @@ in
       sources."es-abstract-1.18.0-next.1"
       sources."es-to-primitive-1.2.1"
       sources."function-bind-1.1.1"
-      sources."get-intrinsic-1.0.1"
+      sources."get-intrinsic-1.0.2"
       sources."has-1.0.3"
       sources."has-symbols-1.0.1"
       sources."is-callable-1.2.2"
@@ -99861,15 +104016,15 @@ in
       sha1 = "3c79b04091319d4e8be5fb442c596bf500e8493e";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-4.3.4"
-      sources."@textlint/types-1.4.5"
+      sources."@textlint/ast-node-types-4.3.5"
+      sources."@textlint/types-1.4.6"
       sources."adverb-where-0.0.9"
       sources."boundary-1.0.1"
       sources."call-bind-1.0.0"
       sources."define-properties-1.1.3"
       sources."e-prime-0.10.4"
       sources."function-bind-1.1.1"
-      sources."get-intrinsic-1.0.1"
+      sources."get-intrinsic-1.0.2"
       sources."has-1.0.3"
       sources."has-symbols-1.0.1"
       sources."no-cliches-0.1.1"
@@ -99911,7 +104066,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.10"
+      sources."@types/node-14.14.19"
       sources."@types/responselike-1.0.0"
       sources."abbrev-1.1.1"
       sources."abstract-logging-2.0.1"
@@ -99919,7 +104074,7 @@ in
       sources."after-0.8.2"
       (sources."agent-base-6.0.2" // {
         dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."ms-2.1.2"
         ];
       })
@@ -99961,7 +104116,7 @@ in
       sources."buffer-equal-constant-time-1.0.1"
       sources."busboy-0.3.1"
       sources."bytes-3.1.0"
-      sources."cacheable-lookup-5.0.3"
+      sources."cacheable-lookup-5.0.4"
       sources."cacheable-request-7.0.1"
       sources."callsite-1.0.0"
       sources."caseless-0.12.0"
@@ -99987,7 +104142,7 @@ in
       sources."content-type-1.0.4"
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.8.0"
+      sources."core-js-3.8.1"
       sources."core-util-is-1.0.2"
       sources."css-select-1.2.0"
       sources."css-what-2.1.3"
@@ -100020,7 +104175,7 @@ in
         dependencies = [
           sources."cookie-0.3.1"
           sources."debug-4.1.1"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
       (sources."engine.io-client-3.4.4" // {
@@ -100084,7 +104239,7 @@ in
       sources."http_ece-1.1.0"
       (sources."https-proxy-agent-5.0.0" // {
         dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."ms-2.1.2"
         ];
       })
@@ -100094,7 +104249,7 @@ in
       sources."indexof-0.0.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."ipaddr.js-1.9.1"
       (sources."irc-framework-4.9.0" // {
         dependencies = [
@@ -100145,7 +104300,7 @@ in
       (sources."needle-2.5.2" // {
         dependencies = [
           sources."debug-3.2.7"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
       sources."negotiator-0.6.2"
@@ -100257,7 +104412,7 @@ in
       (sources."socket.io-2.3.0" // {
         dependencies = [
           sources."debug-4.1.1"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
       sources."socket.io-adapter-1.1.2"
@@ -100265,7 +104420,7 @@ in
         dependencies = [
           sources."base64-arraybuffer-0.1.5"
           sources."debug-4.1.1"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
           (sources."socket.io-parser-3.3.1" // {
             dependencies = [
               sources."component-emitter-1.3.0"
@@ -100278,7 +104433,7 @@ in
       (sources."socket.io-parser-3.4.1" // {
         dependencies = [
           sources."debug-4.1.1"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
       (sources."socksjs-0.5.0" // {
@@ -100326,7 +104481,7 @@ in
       sources."wide-align-1.1.3"
       sources."with-open-file-0.1.7"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.1"
+      sources."ws-7.4.2"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."yallist-3.1.1"
       sources."yarn-1.22.4"
@@ -100345,10 +104500,10 @@ in
   three = nodeEnv.buildNodePackage {
     name = "three";
     packageName = "three";
-    version = "0.123.0";
+    version = "0.124.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/three/-/three-0.123.0.tgz";
-      sha512 = "KNnx/IbilvoHRkxOtL0ouozoDoElyuvAXhFB21RK7F5IPWSmqyFelICK6x3hJerLNSlAdHxR0hkuvMMhH9pqXg==";
+      url = "https://registry.npmjs.org/three/-/three-0.124.0.tgz";
+      sha512 = "ROXp1Ly7YyF+jC910DQyAWj++Qlw2lQv0qwYLNQwdDbjk4bsOXAfGO92wYTMPNei1GMJUmCxSxc3MjGBTS09Rg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -100363,10 +104518,10 @@ in
   tiddlywiki = nodeEnv.buildNodePackage {
     name = "tiddlywiki";
     packageName = "tiddlywiki";
-    version = "5.1.22";
+    version = "5.1.23";
     src = fetchurl {
-      url = "https://registry.npmjs.org/tiddlywiki/-/tiddlywiki-5.1.22.tgz";
-      sha512 = "Iav0iC9SnwN6HTYGRfEI7kYDoq+hlKr9fw9o8aTs0wxMp0UzqlvthGwlK1JwrdVIRL92no1lpVGhQQj16ncSQQ==";
+      url = "https://registry.npmjs.org/tiddlywiki/-/tiddlywiki-5.1.23.tgz";
+      sha512 = "U5P6CdVncHqfoMRAYGj8NxqbP2JJICdLre+jAlXzV8nhllRL9ZFIE0y80wASXc6xip6++TA67Pam7+FJ73A1Vw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -100447,8 +104602,8 @@ in
       sources."keypress-0.2.1"
       sources."lodash-4.17.20"
       sources."lru-cache-6.0.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."minimatch-3.0.4"
       (sources."node-appc-1.1.2" // {
         dependencies = [
@@ -100481,7 +104636,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."universalify-1.0.0"
       sources."uri-js-4.4.0"
-      sources."uuid-8.3.1"
+      sources."uuid-8.3.2"
       sources."verror-1.10.0"
       (sources."winston-2.4.5" // {
         dependencies = [
@@ -100507,10 +104662,10 @@ in
   triton = nodeEnv.buildNodePackage {
     name = "triton";
     packageName = "triton";
-    version = "7.11.0";
+    version = "7.12.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/triton/-/triton-7.11.0.tgz";
-      sha512 = "NycwGp9drvi9uJUo7PCmET470f+ZWzvzJ7d06hcI+Y0LZSLtZN+gxFz+YjLpt14Zifqs/751IcEhp7cCGThBxA==";
+      url = "https://registry.npmjs.org/triton/-/triton-7.12.0.tgz";
+      sha512 = "ArYQDI90SwshcxQBE8ogpY1UHMwm5aiZ4GtqzGZG+wn9F5jHUbkDwNXfbVIGQZrFcg/vDtzhscUzI7UIphjJMA==";
     };
     dependencies = [
       sources."asn1-0.2.4"
@@ -100777,10 +104932,10 @@ in
   typescript = nodeEnv.buildNodePackage {
     name = "typescript";
     packageName = "typescript";
-    version = "4.1.2";
+    version = "4.1.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz";
-      sha512 = "thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==";
+      url = "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz";
+      sha512 = "B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -100812,10 +104967,10 @@ in
       sources."tempy-0.2.1"
       sources."unique-string-1.0.0"
       sources."universalify-0.1.2"
-      sources."vscode-jsonrpc-5.0.1"
+      sources."vscode-jsonrpc-6.0.0"
       sources."vscode-languageserver-5.3.0-next.10"
-      sources."vscode-languageserver-protocol-3.15.3"
-      sources."vscode-languageserver-types-3.15.1"
+      sources."vscode-languageserver-protocol-3.16.0"
+      sources."vscode-languageserver-types-3.16.0"
       sources."vscode-textbuffer-1.0.0"
       sources."vscode-uri-1.0.8"
     ];
@@ -100831,10 +104986,10 @@ in
   uglify-js = nodeEnv.buildNodePackage {
     name = "uglify-js";
     packageName = "uglify-js";
-    version = "3.12.1";
+    version = "3.12.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.12.1.tgz";
-      sha512 = "o8lHP20KjIiQe5b/67Rh68xEGRrc2SRsCuuoYclXXoC74AfSRGblU1HKzJWH3HxPZ+Ort85fWHpSX7KwBUC9CQ==";
+      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.12.4.tgz";
+      sha512 = "L5i5jg/SHkEqzN18gQMTWsZk3KelRsfD1wUVNqtq0kzqWQqcJjyL8yc1o8hJgRrWqrAl2mUFbhfznEIoi7zi2A==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -100867,28 +105022,20 @@ in
   ungit = nodeEnv.buildNodePackage {
     name = "ungit";
     packageName = "ungit";
-    version = "1.5.14";
+    version = "1.5.15";
     src = fetchurl {
-      url = "https://registry.npmjs.org/ungit/-/ungit-1.5.14.tgz";
-      sha512 = "F8dtwD2lV3ey0zIZfZXqcBaOweZ/iEVx0RQxjDgGWEsKBnnbXLxNlTNqzrhUuFuskJNVv6Se2QzyBWVMn2mbuA==";
+      url = "https://registry.npmjs.org/ungit/-/ungit-1.5.15.tgz";
+      sha512 = "jisiuRjEd8HfBLQxATHzyWnvSljsKwBs+YEPl50yg91ZQiie7tQWBlw/wKxfFfVzN52HYIqKvOEWYqJYJgpP8A==";
     };
     dependencies = [
       sources."@dabh/diagnostics-2.0.2"
-      sources."@primer/octicons-11.1.0"
+      sources."@primer/octicons-11.2.0"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@types/body-parser-1.19.0"
       sources."@types/component-emitter-1.2.10"
-      sources."@types/connect-3.4.33"
       sources."@types/cookie-0.4.0"
-      sources."@types/cors-2.8.8"
-      sources."@types/express-4.17.9"
-      sources."@types/express-serve-static-core-4.17.14"
-      sources."@types/mime-2.0.3"
-      sources."@types/node-14.14.10"
-      sources."@types/qs-6.9.5"
-      sources."@types/range-parser-1.2.3"
-      sources."@types/serve-static-1.13.8"
+      sources."@types/cors-2.8.9"
+      sources."@types/node-14.14.19"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
       sources."ansi-regex-5.0.0"
@@ -100901,6 +105048,7 @@ in
       sources."array-flatten-1.1.1"
       sources."async-3.2.0"
       sources."balanced-match-1.0.0"
+      sources."base64-arraybuffer-0.1.4"
       sources."base64id-2.0.0"
       sources."blueimp-md5-2.18.0"
       sources."body-parser-1.19.0"
@@ -100939,7 +105087,7 @@ in
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
       sources."diff-4.0.2"
-      sources."diff2html-3.1.15"
+      sources."diff2html-3.1.18"
       sources."dnd-page-scroll-0.0.4"
       sources."duplexer3-0.1.4"
       sources."ee-first-1.1.1"
@@ -100947,14 +105095,14 @@ in
       sources."enabled-2.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
-      (sources."engine.io-4.0.4" // {
+      (sources."engine.io-4.0.5" // {
         dependencies = [
           sources."cookie-0.4.1"
           sources."debug-4.1.1"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
-      sources."engine.io-parser-4.0.1"
+      sources."engine.io-parser-4.0.2"
       sources."escalade-3.1.1"
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
@@ -100990,7 +105138,7 @@ in
       sources."ignore-5.1.8"
       sources."inflight-1.0.6"
       sources."inherits-2.0.3"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."ipaddr.js-1.9.1"
       sources."is-arrayish-0.3.2"
       sources."is-docker-2.1.1"
@@ -101010,7 +105158,7 @@ in
       sources."lodash-4.17.20"
       (sources."logform-2.2.0" // {
         dependencies = [
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
       sources."lowercase-keys-1.0.1"
@@ -101018,15 +105166,15 @@ in
       sources."media-typer-0.3.0"
       (sources."memorystore-1.6.4" // {
         dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."ms-2.1.2"
         ];
       })
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -101092,17 +105240,17 @@ in
       sources."signals-1.0.0"
       sources."simple-swizzle-0.2.2"
       sources."snapsvg-0.5.1"
-      (sources."socket.io-3.0.3" // {
+      (sources."socket.io-3.0.4" // {
         dependencies = [
           sources."debug-4.1.1"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
       sources."socket.io-adapter-2.0.3"
       (sources."socket.io-parser-4.0.2" // {
         dependencies = [
           sources."debug-4.1.1"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
       sources."stack-trace-0.0.10"
@@ -101141,10 +105289,10 @@ in
       })
       sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.1"
+      sources."ws-7.4.2"
       sources."y18n-5.0.5"
       sources."yallist-2.1.2"
-      sources."yargs-16.1.1"
+      sources."yargs-16.2.0"
       sources."yargs-parser-20.2.4"
     ];
     buildInputs = globalBuildInputs;
@@ -101160,10 +105308,10 @@ in
   vega-cli = nodeEnv.buildNodePackage {
     name = "vega-cli";
     packageName = "vega-cli";
-    version = "5.17.0";
+    version = "5.17.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/vega-cli/-/vega-cli-5.17.0.tgz";
-      sha512 = "IMsPOtAnagoKK0czFoVdeVfDsGAKb8fPyDON68kEeWp9Jql71QAninG1ZqdjR2yHQy66szfP7ou9ksIIWyKGJw==";
+      url = "https://registry.npmjs.org/vega-cli/-/vega-cli-5.17.3.tgz";
+      sha512 = "gxLAxIxFmq+36eB0ETCo4F29+/gWFfGftLxpCs8/fVKW9ILfJnEBd3M+7qdQKRHhVbImqsPetaKzwtIYH7/EPw==";
     };
     dependencies = [
       sources."abbrev-1.1.1"
@@ -101190,7 +105338,7 @@ in
       sources."concat-map-0.0.1"
       sources."console-control-strings-1.1.0"
       sources."core-util-is-1.0.2"
-      sources."d3-array-2.9.0"
+      sources."d3-array-2.9.1"
       sources."d3-color-2.0.0"
       sources."d3-delaunay-5.3.0"
       sources."d3-dispatch-2.0.0"
@@ -101228,7 +105376,7 @@ in
       sources."ignore-walk-3.0.3"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."is-core-module-2.2.0"
       sources."is-fullwidth-code-point-1.0.0"
       sources."isarray-1.0.0"
@@ -101238,7 +105386,7 @@ in
       sources."minipass-2.9.0"
       sources."minizlib-1.3.3"
       sources."mkdirp-0.5.5"
-      sources."ms-2.1.2"
+      sources."ms-2.1.3"
       sources."nan-2.14.2"
       sources."needle-2.5.2"
       sources."node-fetch-2.6.1"
@@ -101278,33 +105426,33 @@ in
       sources."tar-4.4.13"
       sources."topojson-client-3.1.0"
       sources."util-deprecate-1.0.2"
-      sources."vega-5.17.0"
+      sources."vega-5.17.3"
       sources."vega-canvas-1.2.6"
       sources."vega-crossfilter-4.0.5"
       sources."vega-dataflow-5.7.3"
       sources."vega-encode-4.8.3"
       sources."vega-event-selector-2.0.6"
-      sources."vega-expression-3.0.0"
+      sources."vega-expression-4.0.1"
       sources."vega-force-4.0.7"
       sources."vega-format-1.0.4"
-      sources."vega-functions-5.8.0"
-      sources."vega-geo-4.3.7"
+      sources."vega-functions-5.10.0"
+      sources."vega-geo-4.3.8"
       sources."vega-hierarchy-4.0.9"
       sources."vega-label-1.0.0"
       sources."vega-loader-4.4.0"
-      sources."vega-parser-6.1.0"
+      sources."vega-parser-6.1.2"
       sources."vega-projection-1.4.5"
       sources."vega-regression-1.0.9"
       sources."vega-runtime-6.1.3"
       sources."vega-scale-7.1.1"
       sources."vega-scenegraph-4.9.2"
-      sources."vega-selections-5.1.4"
+      sources."vega-selections-5.1.5"
       sources."vega-statistics-1.7.9"
       sources."vega-time-2.0.4"
       sources."vega-transforms-4.9.3"
-      sources."vega-typings-0.19.1"
+      sources."vega-typings-0.19.2"
       sources."vega-util-1.16.0"
-      sources."vega-view-5.9.0"
+      sources."vega-view-5.9.2"
       sources."vega-view-transforms-4.5.8"
       sources."vega-voronoi-4.1.5"
       sources."vega-wordcloud-4.1.3"
@@ -101320,7 +105468,7 @@ in
       sources."wrappy-1.0.2"
       sources."y18n-5.0.5"
       sources."yallist-3.1.1"
-      (sources."yargs-16.1.1" // {
+      (sources."yargs-16.2.0" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."is-fullwidth-code-point-3.0.0"
@@ -101370,7 +105518,7 @@ in
       sources."strip-ansi-6.0.0"
       sources."tslib-2.0.3"
       sources."vega-event-selector-2.0.6"
-      sources."vega-expression-3.0.0"
+      sources."vega-expression-3.0.1"
       sources."vega-util-1.16.0"
       sources."wrap-ansi-7.0.0"
       sources."y18n-5.0.5"
@@ -101415,11 +105563,11 @@ in
     };
     dependencies = [
       sources."vscode-css-languageservice-3.0.13"
-      sources."vscode-jsonrpc-5.0.1"
+      sources."vscode-jsonrpc-6.0.0"
       sources."vscode-languageserver-4.4.2"
-      sources."vscode-languageserver-protocol-3.15.3"
+      sources."vscode-languageserver-protocol-3.16.0"
       sources."vscode-languageserver-protocol-foldingprovider-2.0.1"
-      sources."vscode-languageserver-types-3.15.1"
+      sources."vscode-languageserver-types-3.16.0"
       sources."vscode-nls-4.1.2"
       sources."vscode-uri-1.0.8"
     ];
@@ -101453,11 +105601,11 @@ in
           sources."vscode-nls-4.1.2"
         ];
       })
-      sources."vscode-jsonrpc-5.0.1"
+      sources."vscode-jsonrpc-6.0.0"
       sources."vscode-languageserver-4.4.2"
-      sources."vscode-languageserver-protocol-3.15.3"
+      sources."vscode-languageserver-protocol-3.16.0"
       sources."vscode-languageserver-protocol-foldingprovider-2.0.1"
-      sources."vscode-languageserver-types-3.15.1"
+      sources."vscode-languageserver-types-3.16.0"
       sources."vscode-nls-3.2.5"
       sources."vscode-uri-1.0.8"
     ];
@@ -101572,7 +105720,7 @@ in
       sources."@types/json5-0.0.30"
       sources."@types/mocha-7.0.2"
       sources."@types/node-8.10.66"
-      sources."@types/vscode-1.51.0"
+      sources."@types/vscode-1.52.0"
       sources."@types/yauzl-2.9.1"
       sources."@webassemblyjs/ast-1.9.0"
       sources."@webassemblyjs/floating-point-hex-parser-1.9.0"
@@ -101674,7 +105822,8 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."cheerio-1.0.0-rc.3"
+      sources."cheerio-1.0.0-rc.5"
+      sources."cheerio-select-tmp-0.1.1"
       sources."chokidar-3.3.0"
       sources."chownr-1.1.4"
       sources."chrome-trace-event-1.0.2"
@@ -101707,7 +105856,7 @@ in
       sources."collection-visit-1.0.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."commander-6.2.0"
+      sources."commander-6.2.1"
       sources."commondir-1.0.1"
       sources."component-emitter-1.3.0"
       sources."concat-map-0.0.1"
@@ -101732,8 +105881,8 @@ in
       sources."create-hmac-1.1.7"
       sources."cross-spawn-6.0.5"
       sources."crypto-browserify-3.12.0"
-      sources."css-select-1.2.0"
-      sources."css-what-2.1.3"
+      sources."css-select-3.1.2"
+      sources."css-what-4.0.0"
       sources."cyclist-1.0.1"
       sources."debug-3.2.6"
       sources."decamelize-1.2.0"
@@ -101749,11 +105898,11 @@ in
           sources."bn.js-4.11.9"
         ];
       })
-      sources."dom-serializer-0.1.1"
+      sources."dom-serializer-1.2.0"
       sources."domain-browser-1.2.0"
-      sources."domelementtype-1.3.1"
-      sources."domhandler-2.4.2"
-      sources."domutils-1.5.1"
+      sources."domelementtype-2.1.0"
+      sources."domhandler-4.0.0"
+      sources."domutils-2.4.4"
       (sources."duplexify-3.7.1" // {
         dependencies = [
           sources."isarray-1.0.0"
@@ -101770,8 +105919,8 @@ in
       sources."emojis-list-3.0.0"
       sources."end-of-stream-1.4.4"
       sources."enhanced-resolve-4.3.0"
-      sources."entities-1.1.2"
-      sources."errno-0.1.7"
+      sources."entities-2.1.0"
+      sources."errno-0.1.8"
       (sources."es-abstract-1.18.0-next.1" // {
         dependencies = [
           sources."object.assign-4.1.2"
@@ -101864,7 +106013,7 @@ in
       sources."fsevents-2.1.3"
       sources."function-bind-1.1.1"
       sources."get-caller-file-2.0.5"
-      sources."get-intrinsic-1.0.1"
+      sources."get-intrinsic-1.0.2"
       sources."get-value-2.0.6"
       sources."glob-7.1.3"
       sources."glob-parent-5.1.1"
@@ -101902,13 +106051,7 @@ in
       sources."he-1.2.0"
       sources."hmac-drbg-1.0.1"
       sources."homedir-polyfill-1.0.3"
-      (sources."htmlparser2-3.10.1" // {
-        dependencies = [
-          sources."readable-stream-3.6.0"
-          sources."safe-buffer-5.2.1"
-          sources."string_decoder-1.3.0"
-        ];
-      })
+      sources."htmlparser2-6.0.0"
       sources."https-browserify-1.0.0"
       sources."ieee754-1.2.1"
       sources."iferr-0.1.5"
@@ -101917,7 +106060,7 @@ in
       sources."infer-owner-1.0.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."interpret-1.4.0"
       sources."is-accessor-descriptor-1.0.0"
       sources."is-binary-path-2.1.0"
@@ -102016,7 +106159,7 @@ in
         ];
       })
       sources."normalize-path-3.0.0"
-      sources."nth-check-1.0.2"
+      sources."nth-check-2.0.0"
       sources."object-assign-4.1.1"
       (sources."object-copy-0.1.0" // {
         dependencies = [
@@ -102058,7 +106201,8 @@ in
       sources."parse-asn1-5.1.6"
       sources."parse-passwd-1.0.0"
       sources."parse-semver-1.1.1"
-      sources."parse5-3.0.3"
+      sources."parse5-6.0.1"
+      sources."parse5-htmlparser2-tree-adapter-6.0.1"
       sources."pascalcase-0.1.1"
       sources."path-browserify-0.0.1"
       sources."path-dirname-1.0.2"
@@ -102281,7 +106425,7 @@ in
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-2.2.0"
       sources."vm-browserify-1.1.2"
-      sources."vsce-1.81.1"
+      sources."vsce-1.83.0"
       sources."vscode-debugadapter-testsupport-1.43.0"
       sources."vscode-debugprotocol-1.43.0"
       (sources."watchpack-1.7.5" // {
@@ -102507,7 +106651,7 @@ in
       sources."ieee754-1.2.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."inquirer-6.5.2"
       sources."is-3.3.0"
       sources."is-extendable-0.1.1"
@@ -102522,7 +106666,7 @@ in
       sources."isarray-1.0.0"
       sources."isstream-0.1.2"
       sources."isurl-1.0.0"
-      sources."js-yaml-3.14.0"
+      sources."js-yaml-3.14.1"
       sources."jsbn-0.1.1"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
@@ -102547,8 +106691,8 @@ in
           sources."supports-color-2.0.0"
         ];
       })
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-fn-1.2.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -102633,7 +106777,7 @@ in
       sources."tslib-1.14.1"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."uglify-js-3.12.1"
+      sources."uglify-js-3.12.4"
       sources."uid-0.0.2"
       sources."unbzip2-stream-1.4.3"
       sources."unyield-0.0.1"
@@ -102674,8 +106818,8 @@ in
       sha512 = "/dd2bJLxOmX8Ie0EPTlmU+F8cxAekn/1m8K9OAFoijm4fc8SdHznFUUEKuz2RMMhsaL5+rccj8xLFAJELYNbaA==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.4"
-      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/code-frame-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
       sources."@babel/highlight-7.10.4"
       sources."@emmetio/extract-abbreviation-0.1.6"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
@@ -102692,7 +106836,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.10"
+      sources."@types/node-14.14.19"
       sources."@types/unist-2.0.3"
       sources."@types/vfile-3.0.2"
       sources."@types/vfile-message-2.0.0"
@@ -102880,17 +107024,19 @@ in
       (sources."eslint-5.16.0" // {
         dependencies = [
           sources."cross-spawn-6.0.5"
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."ignore-4.0.6"
+          sources."ms-2.1.2"
         ];
       })
       (sources."eslint-plugin-vue-6.2.2" // {
         dependencies = [
           sources."acorn-7.4.1"
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."eslint-scope-5.1.1"
           sources."espree-6.2.1"
-          sources."vue-eslint-parser-7.2.0"
+          sources."ms-2.1.2"
+          sources."vue-eslint-parser-7.3.0"
         ];
       })
       sources."eslint-scope-4.0.3"
@@ -103016,7 +107162,7 @@ in
       sources."http-cache-semantics-4.1.0"
       sources."iconv-lite-0.4.24"
       sources."ignore-3.3.10"
-      (sources."import-fresh-3.2.2" // {
+      (sources."import-fresh-3.3.0" // {
         dependencies = [
           sources."resolve-from-4.0.0"
         ];
@@ -103026,7 +107172,7 @@ in
       sources."indent-string-3.2.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       (sources."inquirer-6.5.2" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -103079,7 +107225,7 @@ in
         ];
       })
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.14.0"
+      sources."js-yaml-3.14.1"
       sources."json-buffer-3.0.0"
       sources."json-parse-better-errors-1.0.2"
       sources."json-schema-traverse-0.4.1"
@@ -103142,7 +107288,7 @@ in
       })
       sources."mkdirp-0.5.5"
       sources."mout-0.5.0"
-      sources."ms-2.1.2"
+      sources."ms-2.1.3"
       sources."mute-stream-0.0.7"
       sources."nanomatch-1.2.13"
       sources."natural-compare-1.4.0"
@@ -103522,9 +107668,9 @@ 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.0"
+      sources."vfile-4.2.1"
       sources."vfile-message-2.0.4"
-      (sources."vfile-reporter-6.0.1" // {
+      (sources."vfile-reporter-6.0.2" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."emoji-regex-8.0.0"
@@ -103543,17 +107689,18 @@ in
         ];
       })
       sources."vscode-emmet-helper-1.2.17"
-      sources."vscode-jsonrpc-5.0.1"
+      sources."vscode-jsonrpc-6.0.0"
       sources."vscode-languageserver-5.3.0-next.10"
-      sources."vscode-languageserver-protocol-3.15.3"
+      sources."vscode-languageserver-protocol-3.16.0"
       sources."vscode-languageserver-textdocument-1.0.1"
-      sources."vscode-languageserver-types-3.15.1"
+      sources."vscode-languageserver-types-3.16.0"
       sources."vscode-nls-5.0.0"
       sources."vscode-textbuffer-1.0.0"
       sources."vscode-uri-1.0.8"
       (sources."vue-eslint-parser-6.0.5" // {
         dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
+          sources."ms-2.1.2"
         ];
       })
       sources."vue-onsenui-helper-json-1.0.2"
@@ -103600,14 +107747,14 @@ in
   web-ext = nodeEnv.buildNodePackage {
     name = "web-ext";
     packageName = "web-ext";
-    version = "5.4.0";
+    version = "5.4.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/web-ext/-/web-ext-5.4.0.tgz";
-      sha512 = "95MVrsCRtmmu7YNTA8OconwTB7Y7rS6T5ABpv9c90A5tLfDV1+6/dRn8JhAMAi/UfIq0ZT5wklHwvRzDmD6cBA==";
+      url = "https://registry.npmjs.org/web-ext/-/web-ext-5.4.1.tgz";
+      sha512 = "AnTjSFtvidZfmVYzvceM/XixsigiWU3l66UzcxgXxXhOoEQU5ZHlXFGVJdHEYfkI5SnEyDG+WlhsdTUHNLOXJw==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.4"
-      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/code-frame-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
       (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
@@ -103627,33 +107774,25 @@ in
       sources."@devicefarmer/adbkit-monkey-1.0.1"
       (sources."@eslint/eslintrc-0.2.2" // {
         dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."ms-2.1.2"
         ];
       })
-      sources."@mdn/browser-compat-data-2.0.5"
-      sources."@sindresorhus/is-0.7.0"
+      sources."@mdn/browser-compat-data-2.0.7"
+      sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@types/decompress-4.2.3"
-      sources."@types/download-6.2.4"
-      sources."@types/got-8.3.5"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.14.10"
+      sources."@types/node-14.14.19"
       sources."@types/yauzl-2.9.1"
       sources."JSONSelect-0.2.1"
-      sources."accepts-1.3.7"
       sources."acorn-7.4.1"
       sources."acorn-jsx-5.3.1"
-      (sources."addons-linter-2.12.0" // {
-        dependencies = [
-          sources."yargs-16.1.0"
-        ];
-      })
-      (sources."addons-scanner-utils-3.0.0" // {
+      (sources."addons-linter-2.13.1" // {
         dependencies = [
-          sources."upath-2.0.0"
+          sources."yargs-16.1.1"
         ];
       })
+      sources."addons-scanner-utils-4.0.0"
       sources."adm-zip-0.4.16"
       sources."ajv-6.12.6"
       sources."ajv-merge-patch-4.1.0"
@@ -103671,28 +107810,24 @@ in
       sources."ansi-styles-4.3.0"
       sources."any-promise-1.3.0"
       sources."anymatch-3.1.1"
-      (sources."archive-type-4.0.0" // {
+      (sources."archiver-5.0.2" // {
         dependencies = [
-          sources."file-type-4.4.0"
+          sources."async-3.2.0"
         ];
       })
-      (sources."archiver-5.0.2" // {
+      (sources."archiver-utils-2.1.0" // {
         dependencies = [
-          sources."async-3.2.0"
-          sources."bl-4.0.3"
-          sources."inherits-2.0.4"
-          sources."readable-stream-3.6.0"
-          sources."tar-stream-2.1.4"
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
         ];
       })
-      sources."archiver-utils-2.1.0"
       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-differ-3.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"
       sources."array-union-2.1.0"
@@ -103714,16 +107849,14 @@ in
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
-          sources."isobject-3.0.1"
         ];
       })
       sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."binary-extensions-2.1.0"
       sources."bindings-1.5.0"
-      sources."bl-1.2.3"
+      sources."bl-4.0.3"
       sources."bluebird-2.9.34"
-      sources."body-parser-1.19.0"
       sources."boolbase-1.0.0"
       (sources."boxen-4.2.0" // {
         dependencies = [
@@ -103734,23 +107867,14 @@ in
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."buffer-5.7.1"
-      sources."buffer-alloc-1.2.0"
-      sources."buffer-alloc-unsafe-1.1.0"
       sources."buffer-crc32-0.2.13"
       sources."buffer-equal-constant-time-1.0.1"
-      sources."buffer-fill-1.0.0"
       sources."buffer-from-1.1.1"
       sources."bunyan-1.8.14"
-      sources."bytes-3.1.0"
-      (sources."cache-base-1.0.1" // {
-        dependencies = [
-          sources."isobject-3.0.1"
-        ];
-      })
-      (sources."cacheable-request-2.1.4" // {
+      sources."cache-base-1.0.1"
+      (sources."cacheable-request-6.1.0" // {
         dependencies = [
-          sources."get-stream-3.0.0"
-          sources."lowercase-keys-1.0.0"
+          sources."lowercase-keys-2.0.0"
         ];
       })
       sources."call-bind-1.0.0"
@@ -103785,7 +107909,6 @@ in
             ];
           })
           sources."is-descriptor-0.1.6"
-          sources."isobject-3.0.1"
           sources."kind-of-5.1.0"
         ];
       })
@@ -103808,32 +107931,21 @@ in
       sources."commander-2.20.3"
       sources."common-tags-1.8.0"
       sources."component-emitter-1.3.0"
-      (sources."compress-commons-4.0.2" // {
-        dependencies = [
-          sources."readable-stream-3.6.0"
-        ];
-      })
+      sources."compress-commons-4.0.2"
       sources."concat-map-0.0.1"
-      sources."concat-stream-1.6.2"
-      (sources."configstore-5.0.1" // {
+      (sources."concat-stream-1.6.2" // {
         dependencies = [
-          sources."make-dir-3.1.0"
-          sources."semver-6.3.0"
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
         ];
       })
-      sources."content-disposition-0.5.3"
-      sources."content-type-1.0.4"
-      sources."cookie-0.4.0"
-      sources."cookie-signature-1.0.6"
+      sources."configstore-5.0.1"
       sources."copy-descriptor-0.1.1"
       sources."core-js-2.6.12"
       sources."core-util-is-1.0.2"
       sources."crc-32-1.2.0"
-      (sources."crc32-stream-4.0.1" // {
-        dependencies = [
-          sources."readable-stream-3.6.0"
-        ];
-      })
+      sources."crc32-stream-4.0.1"
       sources."cross-spawn-7.0.3"
       sources."crypto-random-string-2.0.0"
       sources."css-select-1.2.0"
@@ -103843,39 +107955,7 @@ in
       sources."debug-2.6.9"
       sources."decamelize-4.0.0"
       sources."decode-uri-component-0.2.0"
-      (sources."decompress-4.2.1" // {
-        dependencies = [
-          (sources."make-dir-1.3.0" // {
-            dependencies = [
-              sources."pify-3.0.0"
-            ];
-          })
-          sources."pify-2.3.0"
-        ];
-      })
       sources."decompress-response-3.3.0"
-      (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" // {
-        dependencies = [
-          sources."file-type-5.2.0"
-        ];
-      })
-      (sources."decompress-unzip-4.0.1" // {
-        dependencies = [
-          sources."file-type-3.9.0"
-          sources."get-stream-2.3.1"
-          sources."pify-2.3.0"
-        ];
-      })
       sources."deep-equal-1.1.1"
       sources."deep-extend-0.6.0"
       sources."deep-is-0.1.3"
@@ -103884,14 +107964,8 @@ in
       sources."defaults-1.0.3"
       sources."defer-to-connect-1.1.3"
       sources."define-properties-1.1.3"
-      (sources."define-property-2.0.2" // {
-        dependencies = [
-          sources."isobject-3.0.1"
-        ];
-      })
+      sources."define-property-2.0.2"
       sources."delayed-stream-1.0.0"
-      sources."depd-1.1.2"
-      sources."destroy-1.0.4"
       (sources."dispensary-0.59.0" // {
         dependencies = [
           sources."async-3.2.0"
@@ -103904,14 +107978,11 @@ in
       sources."domhandler-2.4.2"
       sources."domutils-1.5.1"
       sources."dot-prop-5.3.0"
-      sources."download-8.0.0"
       sources."dtrace-provider-0.8.8"
       sources."duplexer3-0.1.4"
       sources."ecc-jsbn-0.1.2"
       sources."ecdsa-sig-formatter-1.0.11"
-      sources."ee-first-1.1.1"
       sources."emoji-regex-8.0.0"
-      sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
       sources."enquirer-2.3.6"
       sources."entities-1.1.2"
@@ -103923,12 +107994,11 @@ in
       sources."es6-promisify-6.1.1"
       sources."escalade-3.1.1"
       sources."escape-goat-2.1.1"
-      sources."escape-html-1.0.3"
       sources."escape-string-regexp-1.0.5"
-      (sources."eslint-7.13.0" // {
+      (sources."eslint-7.14.0" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."ms-2.1.2"
           sources."strip-ansi-6.0.0"
         ];
@@ -103959,14 +108029,8 @@ in
       })
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
-      sources."etag-1.8.1"
       sources."event-to-promise-0.8.0"
-      (sources."execa-4.1.0" // {
-        dependencies = [
-          sources."get-stream-5.2.0"
-          sources."is-stream-2.0.0"
-        ];
-      })
+      sources."execa-4.1.0"
       sources."exit-on-epipe-1.0.1"
       (sources."expand-brackets-2.1.4" // {
         dependencies = [
@@ -103986,9 +108050,6 @@ in
           sources."kind-of-5.1.0"
         ];
       })
-      sources."express-4.17.1"
-      sources."ext-list-2.2.2"
-      sources."ext-name-5.0.0"
       sources."extend-3.0.2"
       (sources."extend-shallow-3.0.2" // {
         dependencies = [
@@ -104014,12 +108075,8 @@ in
       sources."fast-safe-stringify-2.0.7"
       sources."fd-slicer-1.1.0"
       sources."file-entry-cache-5.0.1"
-      sources."file-type-11.1.0"
       sources."file-uri-to-path-1.0.0"
-      sources."filename-reserved-regex-2.0.0"
-      sources."filenamify-3.0.0"
       sources."fill-range-7.0.1"
-      sources."finalhandler-1.1.2"
       sources."find-up-4.1.0"
       (sources."firefox-profile-4.0.0" // {
         dependencies = [
@@ -104035,10 +108092,7 @@ in
       sources."for-in-1.0.2"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."forwarded-0.1.2"
       sources."fragment-cache-0.2.1"
-      sources."fresh-0.5.2"
-      sources."from2-2.3.0"
       sources."fs-constants-1.0.0"
       (sources."fs-extra-9.0.1" // {
         dependencies = [
@@ -104062,18 +108116,21 @@ in
         ];
       })
       sources."get-caller-file-2.0.5"
-      sources."get-intrinsic-1.0.1"
-      sources."get-stream-4.1.0"
+      sources."get-intrinsic-1.0.2"
+      sources."get-stream-5.2.0"
       sources."get-value-2.0.6"
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
       sources."glob-parent-5.1.1"
-      sources."global-dirs-2.0.1"
+      (sources."global-dirs-2.1.0" // {
+        dependencies = [
+          sources."ini-1.3.7"
+        ];
+      })
       sources."globals-12.4.0"
-      (sources."got-8.3.2" // {
+      (sources."got-9.6.0" // {
         dependencies = [
-          sources."get-stream-3.0.0"
-          sources."pify-3.0.0"
+          sources."get-stream-4.1.0"
         ];
       })
       sources."graceful-fs-4.2.4"
@@ -104083,14 +108140,8 @@ in
       sources."har-validator-5.1.5"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
-      sources."has-symbol-support-x-1.4.2"
       sources."has-symbols-1.0.1"
-      sources."has-to-string-tag-x-1.4.1"
-      (sources."has-value-1.0.0" // {
-        dependencies = [
-          sources."isobject-3.0.1"
-        ];
-      })
+      sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
         dependencies = [
           (sources."is-number-3.0.0" // {
@@ -104102,27 +108153,19 @@ in
         ];
       })
       sources."has-yarn-2.1.0"
-      (sources."htmlparser2-3.10.1" // {
-        dependencies = [
-          sources."readable-stream-3.6.0"
-        ];
-      })
-      sources."http-cache-semantics-3.8.1"
-      sources."http-errors-1.7.2"
+      sources."htmlparser2-3.10.1"
+      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."import-fresh-3.2.1"
       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.5"
-      sources."into-stream-3.1.0"
+      sources."inherits-2.0.4"
+      sources."ini-1.3.8"
       sources."invert-kv-3.0.1"
-      sources."ipaddr.js-1.9.1"
       sources."is-absolute-0.1.7"
       sources."is-accessor-descriptor-1.0.0"
       sources."is-arguments-1.1.0"
@@ -104141,22 +108184,14 @@ in
       sources."is-glob-4.0.1"
       sources."is-installed-globally-0.3.2"
       sources."is-mergeable-object-1.1.1"
-      sources."is-natural-number-4.0.1"
       sources."is-npm-5.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.2"
-      sources."is-plain-obj-1.1.0"
-      (sources."is-plain-object-2.0.4" // {
-        dependencies = [
-          sources."isobject-3.0.1"
-        ];
-      })
+      sources."is-plain-object-2.0.4"
       sources."is-regex-1.1.1"
       sources."is-relative-0.1.3"
-      sources."is-retry-allowed-1.2.0"
-      sources."is-stream-1.1.0"
+      sources."is-stream-2.0.0"
       sources."is-symbol-1.0.3"
       sources."is-typedarray-1.0.0"
       sources."is-utf8-0.2.1"
@@ -104165,14 +108200,13 @@ in
       sources."is-yarn-global-0.3.0"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
-      sources."isobject-2.1.0"
+      sources."isobject-3.0.1"
       sources."isstream-0.1.2"
-      sources."isurl-1.0.0"
       sources."jed-1.1.1"
       sources."jetpack-id-1.0.0"
       sources."js-select-0.6.0"
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.14.0"
+      sources."js-yaml-3.14.1"
       sources."jsbn-0.1.1"
       sources."json-buffer-3.0.0"
       sources."json-merge-patch-0.2.3"
@@ -104185,7 +108219,7 @@ in
       sources."jsonify-0.0.0"
       (sources."jsonwebtoken-8.5.1" // {
         dependencies = [
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
           sources."semver-5.7.1"
         ];
       })
@@ -104193,14 +108227,19 @@ in
       sources."jszip-2.6.1"
       sources."jwa-1.4.1"
       sources."jws-3.2.2"
-      sources."keyv-3.0.0"
+      sources."keyv-3.1.0"
       sources."kind-of-6.0.3"
       sources."latest-version-5.1.0"
-      sources."lazystream-1.0.0"
+      (sources."lazystream-1.0.0" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
       sources."lcid-3.1.1"
       sources."levn-0.4.1"
       sources."lighthouse-logger-1.2.0"
-      sources."line-column-1.0.2"
       sources."lines-and-columns-1.1.6"
       sources."locate-path-5.0.0"
       sources."lodash-4.17.20"
@@ -104217,24 +108256,17 @@ in
       sources."lodash.sortby-4.7.0"
       sources."lodash.union-4.6.0"
       sources."lowercase-keys-1.0.1"
-      (sources."make-dir-2.1.0" // {
+      (sources."make-dir-3.1.0" // {
         dependencies = [
-          sources."semver-5.7.1"
+          sources."semver-6.3.0"
         ];
       })
       sources."map-age-cleaner-0.1.3"
       sources."map-cache-0.2.2"
       sources."map-visit-1.0.0"
       sources."marky-1.2.1"
-      sources."media-typer-0.3.0"
-      (sources."mem-5.1.1" // {
-        dependencies = [
-          sources."p-is-promise-2.1.0"
-        ];
-      })
-      sources."merge-descriptors-1.0.1"
+      sources."mem-5.1.1"
       sources."merge-stream-2.0.0"
-      sources."methods-1.1.2"
       (sources."micromatch-3.1.10" // {
         dependencies = [
           (sources."braces-2.3.2" // {
@@ -104252,13 +108284,11 @@ in
               sources."kind-of-3.2.2"
             ];
           })
-          sources."isobject-3.0.1"
           sources."to-regex-range-2.1.1"
         ];
       })
-      sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
@@ -104286,21 +108316,16 @@ in
       sources."natural-compare-1.4.0"
       sources."natural-compare-lite-1.4.0"
       sources."ncp-2.0.0"
-      sources."negotiator-0.6.2"
       sources."neo-async-2.6.2"
       sources."next-tick-1.1.0"
       sources."node-forge-0.10.0"
       (sources."node-notifier-8.0.0" // {
         dependencies = [
-          sources."uuid-8.3.1"
+          sources."uuid-8.3.2"
         ];
       })
       sources."normalize-path-3.0.0"
-      (sources."normalize-url-2.0.1" // {
-        dependencies = [
-          sources."sort-keys-2.0.0"
-        ];
-      })
+      sources."normalize-url-4.5.0"
       sources."npm-run-path-4.0.1"
       sources."nth-check-1.0.2"
       sources."oauth-sign-0.9.0"
@@ -104321,43 +108346,23 @@ in
       sources."object-inspect-1.9.0"
       sources."object-is-1.1.4"
       sources."object-keys-1.1.1"
-      (sources."object-visit-1.0.1" // {
-        dependencies = [
-          sources."isobject-3.0.1"
-        ];
-      })
+      sources."object-visit-1.0.1"
       sources."object.assign-4.1.2"
-      (sources."object.pick-1.3.0" // {
-        dependencies = [
-          sources."isobject-3.0.1"
-        ];
-      })
-      sources."on-finished-2.3.0"
+      sources."object.pick-1.3.0"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
       sources."open-7.3.0"
       sources."optionator-0.9.1"
       sources."os-locale-5.0.0"
       sources."os-shim-0.1.3"
-      sources."p-cancelable-0.4.1"
+      sources."p-cancelable-1.1.0"
       sources."p-defer-1.0.0"
-      sources."p-event-2.3.1"
-      sources."p-finally-1.0.0"
-      sources."p-is-promise-1.1.0"
+      sources."p-is-promise-2.1.0"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
-      sources."p-timeout-2.0.1"
       sources."p-try-2.2.0"
       (sources."package-json-6.5.0" // {
         dependencies = [
-          sources."@sindresorhus/is-0.14.0"
-          sources."cacheable-request-6.1.0"
-          sources."get-stream-5.2.0"
-          sources."got-9.6.0"
-          sources."http-cache-semantics-4.1.0"
-          sources."lowercase-keys-2.0.0"
-          sources."normalize-url-4.5.0"
-          sources."p-cancelable-1.1.0"
           sources."semver-6.3.0"
         ];
       })
@@ -104365,45 +108370,36 @@ in
       sources."parent-module-1.0.1"
       sources."parse-json-5.0.1"
       sources."parse5-3.0.3"
-      sources."parseurl-1.3.3"
       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-key-3.1.1"
-      sources."path-to-regexp-0.1.7"
       sources."pend-1.2.0"
       sources."performance-now-2.1.0"
       sources."picomatch-2.2.2"
-      sources."pify-4.0.1"
-      sources."pinkie-2.0.4"
-      sources."pinkie-promise-2.0.1"
       sources."pino-6.7.0"
       sources."pino-std-serializers-2.5.0"
       sources."posix-character-classes-0.1.1"
-      sources."postcss-8.1.7"
+      sources."postcss-8.1.10"
       sources."prelude-ls-1.2.1"
       sources."prepend-http-2.0.0"
       sources."printj-1.1.2"
       sources."probe-image-size-5.0.0"
       sources."process-nextick-args-2.0.1"
       sources."progress-2.0.3"
-      sources."proxy-addr-2.0.6"
       sources."psl-1.8.0"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
       sources."pupa-2.1.1"
-      sources."qs-6.7.0"
-      sources."query-string-5.1.1"
+      sources."qs-6.5.2"
       sources."quick-format-unescaped-4.0.1"
-      sources."range-parser-1.2.1"
-      sources."raw-body-2.4.0"
       (sources."rc-1.2.8" // {
         dependencies = [
           sources."strip-json-comments-2.0.1"
         ];
       })
-      sources."readable-stream-2.3.7"
+      sources."readable-stream-3.6.0"
       sources."readdir-glob-1.1.1"
       sources."readdirp-3.5.0"
       sources."regenerator-runtime-0.13.7"
@@ -104425,11 +108421,7 @@ in
       sources."remove-trailing-separator-1.1.0"
       sources."repeat-element-1.1.3"
       sources."repeat-string-1.6.1"
-      (sources."request-2.88.2" // {
-        dependencies = [
-          sources."qs-6.5.2"
-        ];
-      })
+      sources."request-2.88.2"
       sources."require-directory-2.1.1"
       sources."require-main-filename-2.0.0"
       sources."resolve-from-4.0.0"
@@ -104437,32 +108429,23 @@ in
       sources."responselike-1.0.2"
       sources."ret-0.1.15"
       sources."rimraf-2.6.3"
-      sources."safe-buffer-5.1.2"
-      sources."safe-compare-1.1.4"
+      sources."safe-buffer-5.2.1"
       sources."safe-json-stringify-1.2.0"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
-      sources."seek-bzip-1.0.6"
       sources."semver-7.3.2"
       (sources."semver-diff-3.1.1" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      (sources."send-0.17.1" // {
-        dependencies = [
-          sources."ms-2.1.1"
-        ];
-      })
-      sources."serve-static-1.14.1"
       sources."set-blocking-2.0.0"
       (sources."set-value-2.0.1" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."setprototypeof-1.1.1"
       sources."sha.js-2.4.11"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
@@ -104504,7 +108487,6 @@ in
       (sources."snapdragon-node-2.1.1" // {
         dependencies = [
           sources."define-property-1.0.0"
-          sources."isobject-3.0.1"
         ];
       })
       (sources."snapdragon-util-3.0.1" // {
@@ -104513,8 +108495,6 @@ in
         ];
       })
       sources."sonic-boom-1.3.0"
-      sources."sort-keys-1.1.2"
-      sources."sort-keys-length-1.0.1"
       sources."source-map-0.6.1"
       sources."source-map-resolve-0.5.3"
       sources."source-map-support-0.5.19"
@@ -104541,11 +108521,9 @@ in
           sources."kind-of-5.1.0"
         ];
       })
-      sources."statuses-1.5.0"
       sources."stream-parser-0.3.1"
       sources."stream-to-array-2.3.0"
       sources."stream-to-promise-3.0.0"
-      sources."strict-uri-encode-1.1.0"
       (sources."string-width-4.2.0" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
@@ -104554,15 +108532,13 @@ in
       })
       sources."string.prototype.trimend-1.0.3"
       sources."string.prototype.trimstart-1.0.3"
-      sources."string_decoder-1.1.1"
+      sources."string_decoder-1.3.0"
       sources."strip-ansi-3.0.1"
       sources."strip-bom-4.0.0"
       sources."strip-bom-buf-2.0.0"
       sources."strip-bom-stream-4.0.0"
-      sources."strip-dirs-2.1.0"
       sources."strip-final-newline-2.0.0"
       sources."strip-json-comments-3.1.1"
-      sources."strip-outer-1.0.1"
       sources."supports-color-7.2.0"
       (sources."table-5.4.6" // {
         dependencies = [
@@ -104573,19 +108549,17 @@ in
           sources."strip-ansi-5.2.0"
         ];
       })
-      sources."tar-stream-1.6.2"
+      sources."tar-stream-2.2.0"
       sources."term-size-2.2.1"
       sources."text-table-0.2.0"
       sources."thenify-3.3.1"
       sources."thenify-all-1.6.0"
       sources."through-2.3.8"
-      sources."timed-out-4.0.1"
       (sources."tmp-0.2.1" // {
         dependencies = [
           sources."rimraf-3.0.2"
         ];
       })
-      sources."to-buffer-1.1.1"
       (sources."to-object-path-0.3.0" // {
         dependencies = [
           sources."kind-of-3.2.2"
@@ -104594,25 +108568,20 @@ in
       sources."to-readable-stream-1.0.0"
       sources."to-regex-3.0.2"
       sources."to-regex-range-5.0.1"
-      sources."toidentifier-1.0.0"
       sources."tosource-1.0.0"
       sources."tough-cookie-2.5.0"
       sources."tr46-2.0.2"
       sources."traverse-0.4.6"
-      sources."trim-repeated-1.0.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."typedarray-0.0.6"
       sources."typedarray-to-buffer-3.1.5"
-      sources."unbzip2-stream-1.4.3"
       sources."union-value-1.0.1"
       sources."unique-string-2.0.0"
       sources."universalify-0.1.2"
-      sources."unpipe-1.0.0"
       (sources."unset-value-1.0.0" // {
         dependencies = [
           (sources."has-value-0.3.1" // {
@@ -104621,7 +108590,6 @@ in
             ];
           })
           sources."has-values-0.1.4"
-          sources."isobject-3.0.1"
         ];
       })
       sources."upath-2.0.1"
@@ -104629,14 +108597,12 @@ in
       sources."uri-js-4.4.0"
       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."util-deprecate-1.0.2"
-      sources."utils-merge-1.0.1"
       sources."uuid-3.4.0"
       sources."v8-compile-cache-2.2.0"
-      sources."vary-1.1.2"
       sources."verror-1.10.0"
+      sources."vfile-location-3.2.0"
       sources."watchpack-1.7.4"
       (sources."watchpack-chokidar2-2.0.1" // {
         dependencies = [
@@ -104651,10 +108617,12 @@ in
           sources."is-binary-path-1.0.1"
           sources."is-glob-3.1.0"
           sources."is-number-3.0.0"
-          sources."isobject-3.0.1"
           sources."kind-of-3.2.2"
           sources."normalize-path-2.1.1"
+          sources."readable-stream-2.3.7"
           sources."readdirp-2.2.1"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
           sources."to-regex-range-2.1.1"
           sources."upath-1.2.0"
         ];
@@ -104685,7 +108653,6 @@ in
       sources."xdg-basedir-4.0.0"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
-      sources."xtend-4.0.2"
       sources."y18n-5.0.5"
       (sources."yargs-15.4.1" // {
         dependencies = [
@@ -104706,11 +108673,7 @@ in
           sources."async-1.5.2"
         ];
       })
-      (sources."zip-stream-4.0.4" // {
-        dependencies = [
-          sources."readable-stream-3.6.0"
-        ];
-      })
+      sources."zip-stream-4.0.4"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -104725,48 +108688,48 @@ in
   webpack = nodeEnv.buildNodePackage {
     name = "webpack";
     packageName = "webpack";
-    version = "5.10.0";
+    version = "5.11.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webpack/-/webpack-5.10.0.tgz";
-      sha512 = "P0bHAXmIz0zsNcHNLqFmLY1ZtrT+jtBr7FqpuDtA2o7GiHC+zBsfhgK7SmJ1HG7BAEb3G9JoMdSVi7mEDvG3Zg==";
+      url = "https://registry.npmjs.org/webpack/-/webpack-5.11.1.tgz";
+      sha512 = "tNUIdAmYJv+nupRs/U/gqmADm6fgrf5xE+rSlSsf2PgsGO7j2WG7ccU6AWNlOJlHFl+HnmXlBmHIkiLf+XA9mQ==";
     };
     dependencies = [
       sources."@types/eslint-7.2.6"
       sources."@types/eslint-scope-3.7.0"
       sources."@types/estree-0.0.45"
       sources."@types/json-schema-7.0.6"
-      sources."@types/node-14.14.10"
-      sources."@webassemblyjs/ast-1.9.0"
-      sources."@webassemblyjs/floating-point-hex-parser-1.9.0"
-      sources."@webassemblyjs/helper-api-error-1.9.0"
-      sources."@webassemblyjs/helper-buffer-1.9.0"
-      sources."@webassemblyjs/helper-code-frame-1.9.0"
-      sources."@webassemblyjs/helper-fsm-1.9.0"
-      sources."@webassemblyjs/helper-module-context-1.9.0"
-      sources."@webassemblyjs/helper-wasm-bytecode-1.9.0"
-      sources."@webassemblyjs/helper-wasm-section-1.9.0"
-      sources."@webassemblyjs/ieee754-1.9.0"
-      sources."@webassemblyjs/leb128-1.9.0"
-      sources."@webassemblyjs/utf8-1.9.0"
-      sources."@webassemblyjs/wasm-edit-1.9.0"
-      sources."@webassemblyjs/wasm-gen-1.9.0"
-      sources."@webassemblyjs/wasm-opt-1.9.0"
-      sources."@webassemblyjs/wasm-parser-1.9.0"
-      sources."@webassemblyjs/wast-parser-1.9.0"
-      sources."@webassemblyjs/wast-printer-1.9.0"
+      sources."@types/node-14.14.19"
+      sources."@webassemblyjs/ast-1.9.1"
+      sources."@webassemblyjs/floating-point-hex-parser-1.9.1"
+      sources."@webassemblyjs/helper-api-error-1.9.1"
+      sources."@webassemblyjs/helper-buffer-1.9.1"
+      sources."@webassemblyjs/helper-code-frame-1.9.1"
+      sources."@webassemblyjs/helper-fsm-1.9.1"
+      sources."@webassemblyjs/helper-module-context-1.9.1"
+      sources."@webassemblyjs/helper-wasm-bytecode-1.9.1"
+      sources."@webassemblyjs/helper-wasm-section-1.9.1"
+      sources."@webassemblyjs/ieee754-1.9.1"
+      sources."@webassemblyjs/leb128-1.9.1"
+      sources."@webassemblyjs/utf8-1.9.1"
+      sources."@webassemblyjs/wasm-edit-1.9.1"
+      sources."@webassemblyjs/wasm-gen-1.9.1"
+      sources."@webassemblyjs/wasm-opt-1.9.1"
+      sources."@webassemblyjs/wasm-parser-1.9.1"
+      sources."@webassemblyjs/wast-parser-1.9.1"
+      sources."@webassemblyjs/wast-printer-1.9.1"
       sources."@xtuc/ieee754-1.2.0"
       sources."@xtuc/long-4.2.2"
       sources."acorn-8.0.4"
       sources."ajv-6.12.6"
       sources."ajv-keywords-3.5.2"
-      sources."browserslist-4.15.0"
+      sources."browserslist-4.16.0"
       sources."buffer-from-1.1.1"
-      sources."caniuse-lite-1.0.30001165"
+      sources."caniuse-lite-1.0.30001171"
       sources."chrome-trace-event-1.0.2"
       sources."colorette-1.2.1"
       sources."commander-2.20.3"
-      sources."electron-to-chromium-1.3.616"
-      sources."enhanced-resolve-5.4.0"
+      sources."electron-to-chromium-1.3.633"
+      sources."enhanced-resolve-5.4.1"
       sources."escalade-3.1.1"
       sources."eslint-scope-5.1.1"
       (sources."esrecurse-4.3.0" // {
@@ -104788,8 +108751,8 @@ in
       sources."loader-runner-4.1.0"
       sources."locate-path-6.0.0"
       sources."merge-stream-2.0.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."neo-async-2.6.2"
       sources."node-releases-1.1.67"
       sources."p-limit-3.1.0"
@@ -104814,7 +108777,7 @@ in
       sources."terser-webpack-plugin-5.0.3"
       sources."tslib-1.14.1"
       sources."uri-js-4.4.0"
-      sources."watchpack-2.0.1"
+      sources."watchpack-2.1.0"
       sources."webpack-sources-2.2.0"
       sources."yocto-queue-0.1.0"
     ];
@@ -104831,48 +108794,38 @@ in
   webpack-cli = nodeEnv.buildNodePackage {
     name = "webpack-cli";
     packageName = "webpack-cli";
-    version = "4.2.0";
+    version = "4.3.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.2.0.tgz";
-      sha512 = "EIl3k88vaF4fSxWSgtAQR+VwicfLMTZ9amQtqS4o+TDPW9HGaEpbFBbAZ4A3ZOT5SOnMxNOzROsSTPiE8tBJPA==";
+      url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.3.1.tgz";
+      sha512 = "/F4+9QNZM/qKzzL9/06Am8NXIkGV+/NqQ62Dx7DSqudxxpAgBqYn6V7+zp+0Y7JuWksKUbczRY3wMTd+7Uj6OA==";
     };
     dependencies = [
-      sources."@webpack-cli/info-1.1.0"
-      sources."@webpack-cli/serve-1.1.0"
+      sources."@discoveryjs/json-ext-0.5.2"
+      sources."@webpack-cli/info-1.2.1"
+      sources."@webpack-cli/serve-1.2.1"
       sources."ansi-colors-4.1.1"
-      sources."ansi-styles-3.2.1"
-      sources."array-back-4.0.1"
-      sources."chalk-2.4.2"
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
       sources."colorette-1.2.1"
-      sources."command-line-usage-6.1.1"
-      sources."commander-6.2.0"
+      sources."commander-6.2.1"
       sources."cross-spawn-7.0.3"
-      sources."deep-extend-0.6.0"
-      sources."end-of-stream-1.4.4"
       sources."enquirer-2.3.6"
       sources."envinfo-7.7.3"
-      sources."escape-string-regexp-1.0.5"
-      sources."execa-4.1.0"
+      sources."execa-5.0.0"
+      sources."fastest-levenshtein-1.0.12"
       sources."find-up-4.1.0"
       sources."function-bind-1.1.1"
-      sources."get-stream-5.2.0"
+      sources."get-stream-6.0.0"
       sources."has-1.0.3"
-      sources."has-flag-3.0.0"
-      sources."human-signals-1.1.1"
+      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-stream-2.0.0"
       sources."isexe-2.0.0"
-      sources."leven-3.1.0"
       sources."locate-path-5.0.0"
       sources."lodash-4.17.20"
       sources."merge-stream-2.0.0"
       sources."mimic-fn-2.1.0"
       sources."npm-run-path-4.0.1"
-      sources."once-1.4.0"
       sources."onetime-5.1.2"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
@@ -104881,9 +108834,7 @@ in
       sources."path-key-3.1.1"
       sources."path-parse-1.0.6"
       sources."pkg-dir-4.2.0"
-      sources."pump-3.0.0"
       sources."rechoir-0.7.0"
-      sources."reduce-flatten-2.0.0"
       sources."resolve-1.19.0"
       sources."resolve-cwd-3.0.0"
       sources."resolve-from-5.0.0"
@@ -104891,14 +108842,9 @@ in
       sources."shebang-regex-3.0.0"
       sources."signal-exit-3.0.3"
       sources."strip-final-newline-2.0.0"
-      sources."supports-color-5.5.0"
-      sources."table-layout-1.0.1"
-      sources."typical-5.2.0"
       sources."v8-compile-cache-2.2.0"
       sources."webpack-merge-4.2.2"
       sources."which-2.0.2"
-      sources."wordwrapjs-4.0.0"
-      sources."wrappy-1.0.2"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -104913,15 +108859,15 @@ in
   webpack-dev-server = nodeEnv.buildNodePackage {
     name = "webpack-dev-server";
     packageName = "webpack-dev-server";
-    version = "3.11.0";
+    version = "3.11.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz";
-      sha512 = "PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==";
+      url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.1.tgz";
+      sha512 = "u4R3mRzZkbxQVa+MBWi2uVpB5W59H3ekZAJsQlKUTdl7Elcah2EhygTPLmeFXybQkf9i2+L0kn7ik9SnXa6ihQ==";
     };
     dependencies = [
       sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.14.10"
+      sources."@types/node-14.14.19"
       sources."accepts-1.3.7"
       sources."ajv-6.12.6"
       sources."ajv-errors-1.0.1"
@@ -105027,7 +108973,7 @@ in
           sources."semver-5.7.1"
         ];
       })
-      (sources."debug-4.3.1" // {
+      (sources."debug-4.3.2" // {
         dependencies = [
           sources."ms-2.1.2"
         ];
@@ -105049,7 +108995,7 @@ in
       sources."emoji-regex-7.0.3"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
-      sources."errno-0.1.7"
+      sources."errno-0.1.8"
       sources."es-abstract-1.17.7"
       sources."es-to-primitive-1.2.1"
       sources."escape-html-1.0.3"
@@ -105094,7 +109040,7 @@ in
       })
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
-      sources."faye-websocket-0.10.0"
+      sources."faye-websocket-0.11.3"
       sources."file-uri-to-path-1.0.0"
       (sources."fill-range-4.0.0" // {
         dependencies = [
@@ -105108,7 +109054,7 @@ in
         ];
       })
       sources."find-up-3.0.0"
-      sources."follow-redirects-1.13.0"
+      sources."follow-redirects-1.13.1"
       sources."for-in-1.0.2"
       sources."forwarded-0.1.2"
       sources."fragment-cache-0.2.1"
@@ -105117,7 +109063,7 @@ in
       sources."fsevents-1.2.13"
       sources."function-bind-1.1.1"
       sources."get-caller-file-2.0.5"
-      sources."get-intrinsic-1.0.1"
+      sources."get-intrinsic-1.0.2"
       sources."get-stream-4.1.0"
       sources."get-value-2.0.6"
       sources."glob-7.1.6"
@@ -105143,13 +109089,14 @@ in
         ];
       })
       sources."hpack.js-2.1.6"
-      sources."html-entities-1.3.1"
+      sources."html-entities-1.4.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"
       sources."iconv-lite-0.4.24"
@@ -105205,8 +109152,8 @@ in
       sources."methods-1.1.2"
       sources."micromatch-3.1.10"
       sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."minimalistic-assert-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -105269,7 +109216,7 @@ in
       (sources."portfinder-1.0.28" // {
         dependencies = [
           sources."debug-3.2.7"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
       sources."posix-character-classes-0.1.1"
@@ -105374,12 +109321,11 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."sockjs-0.3.20"
-      (sources."sockjs-client-1.4.0" // {
+      sources."sockjs-0.3.21"
+      (sources."sockjs-client-1.5.0" // {
         dependencies = [
           sources."debug-3.2.7"
-          sources."faye-websocket-0.11.3"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
       sources."source-map-0.5.7"
@@ -105467,13 +109413,13 @@ in
       sources."uuid-3.4.0"
       sources."vary-1.1.2"
       sources."wbuf-1.7.3"
-      (sources."webpack-dev-middleware-3.7.2" // {
+      (sources."webpack-dev-middleware-3.7.3" // {
         dependencies = [
-          sources."mime-2.4.6"
+          sources."mime-2.4.7"
         ];
       })
       sources."webpack-log-2.0.0"
-      sources."websocket-driver-0.6.5"
+      sources."websocket-driver-0.7.4"
       sources."websocket-extensions-0.1.4"
       sources."which-1.3.1"
       sources."which-module-2.0.0"
@@ -105502,106 +109448,54 @@ in
   copy-webpack-plugin = nodeEnv.buildNodePackage {
     name = "copy-webpack-plugin";
     packageName = "copy-webpack-plugin";
-    version = "6.3.2";
+    version = "7.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.3.2.tgz";
-      sha512 = "MgJ1uouLIbDg4ST1GzqrGQyKoXY5iPqi6fghFqarijam7FQcBa/r6Rg0VkoIuzx75Xq8iAMghyOueMkWUQ5OaA==";
+      url = "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-7.0.0.tgz";
+      sha512 = "SLjQNa5iE3BoCP76ESU9qYo9ZkEWtXoZxDurHoqPchAFRblJ9g96xTeC560UXBMre1Nx6ixIIUfiY3VcjpJw3g==";
     };
     dependencies = [
-      sources."@nodelib/fs.scandir-2.1.3"
-      sources."@nodelib/fs.stat-2.0.3"
-      sources."@nodelib/fs.walk-1.2.4"
-      sources."@npmcli/move-file-1.0.1"
+      sources."@nodelib/fs.scandir-2.1.4"
+      sources."@nodelib/fs.stat-2.0.4"
+      sources."@nodelib/fs.walk-1.2.6"
       sources."@types/json-schema-7.0.6"
-      sources."aggregate-error-3.1.0"
       sources."ajv-6.12.6"
       sources."ajv-keywords-3.5.2"
       sources."array-union-2.1.0"
-      sources."balanced-match-1.0.0"
       sources."big.js-5.2.2"
-      sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."cacache-15.0.5"
-      sources."chownr-2.0.0"
-      sources."clean-stack-2.2.0"
-      sources."commondir-1.0.1"
-      sources."concat-map-0.0.1"
       sources."dir-glob-3.0.1"
       sources."emojis-list-3.0.0"
       sources."fast-deep-equal-3.1.3"
       sources."fast-glob-3.2.4"
       sources."fast-json-stable-stringify-2.1.0"
-      sources."fastq-1.9.0"
+      sources."fastq-1.10.0"
       sources."fill-range-7.0.1"
-      sources."find-cache-dir-3.3.1"
-      sources."find-up-4.1.0"
-      sources."fs-minipass-2.1.0"
-      sources."fs.realpath-1.0.0"
-      sources."glob-7.1.6"
       sources."glob-parent-5.1.1"
       sources."globby-11.0.1"
       sources."ignore-5.1.8"
-      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."is-extglob-2.1.1"
       sources."is-glob-4.0.1"
       sources."is-number-7.0.0"
       sources."json-schema-traverse-0.4.1"
       sources."json5-2.1.3"
       sources."loader-utils-2.0.0"
-      sources."locate-path-5.0.0"
-      sources."lru-cache-6.0.0"
-      sources."make-dir-3.1.0"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.2"
-      sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      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."mkdirp-1.0.4"
       sources."normalize-path-3.0.0"
-      sources."once-1.4.0"
       sources."p-limit-3.1.0"
-      (sources."p-locate-4.1.0" // {
-        dependencies = [
-          sources."p-limit-2.3.0"
-        ];
-      })
-      sources."p-map-4.0.0"
-      sources."p-try-2.2.0"
-      sources."path-exists-4.0.0"
-      sources."path-is-absolute-1.0.1"
       sources."path-type-4.0.0"
       sources."picomatch-2.2.2"
-      sources."pkg-dir-4.2.0"
-      sources."promise-inflight-1.0.1"
       sources."punycode-2.1.1"
       sources."randombytes-2.1.0"
       sources."reusify-1.0.4"
-      sources."rimraf-3.0.2"
       sources."run-parallel-1.1.10"
       sources."safe-buffer-5.2.1"
       sources."schema-utils-3.0.0"
-      sources."semver-6.3.0"
       sources."serialize-javascript-5.0.1"
       sources."slash-3.0.0"
-      sources."source-list-map-2.0.1"
-      sources."source-map-0.6.1"
-      sources."ssri-8.0.0"
-      sources."tar-6.0.5"
       sources."to-regex-range-5.0.1"
-      sources."unique-filename-1.1.1"
-      sources."unique-slug-2.0.2"
       sources."uri-js-4.4.0"
-      sources."webpack-sources-1.4.3"
-      sources."wrappy-1.0.2"
-      sources."yallist-4.0.0"
       sources."yocto-queue-0.1.0"
     ];
     buildInputs = globalBuildInputs;
@@ -105634,7 +109528,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.34"
+      sources."@types/node-13.13.38"
       sources."addr-to-ip-port-1.5.1"
       sources."airplay-js-0.3.0"
       sources."balanced-match-1.0.0"
@@ -105645,26 +109539,26 @@ in
       sources."bitfield-4.0.0"
       (sources."bittorrent-dht-10.0.0" // {
         dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."ms-2.1.2"
         ];
       })
       (sources."bittorrent-lsd-1.1.0" // {
         dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."ms-2.1.2"
         ];
       })
       sources."bittorrent-peerid-1.3.3"
       (sources."bittorrent-protocol-3.2.0" // {
         dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."ms-2.1.2"
         ];
       })
       (sources."bittorrent-tracker-9.15.0" // {
         dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."decompress-response-6.0.0"
           sources."mimic-response-3.1.0"
           sources."ms-2.1.2"
@@ -105685,7 +109579,7 @@ in
       sources."bufferutil-4.0.2"
       (sources."castv2-0.1.10" // {
         dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."ms-2.1.2"
         ];
       })
@@ -105775,7 +109669,7 @@ in
       sources."mdns-js-packet-0.2.0"
       sources."mediasource-2.4.0"
       sources."memory-chunk-store-1.3.0"
-      sources."mime-2.4.6"
+      sources."mime-2.4.7"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -105832,7 +109726,7 @@ in
       sources."record-cache-1.1.0"
       (sources."render-media-4.1.0" // {
         dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."ms-2.1.2"
         ];
       })
@@ -105848,14 +109742,14 @@ in
       sources."simple-get-2.8.1"
       (sources."simple-peer-9.9.3" // {
         dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."ms-2.1.2"
         ];
       })
       sources."simple-sha1-3.0.1"
       (sources."simple-websocket-8.1.1" // {
         dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."ms-2.1.2"
         ];
       })
@@ -105877,7 +109771,7 @@ in
       sources."to-arraybuffer-1.0.1"
       (sources."torrent-discovery-9.4.0" // {
         dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."ms-2.1.2"
         ];
       })
@@ -105892,7 +109786,7 @@ in
       sources."url-join-4.0.1"
       (sources."ut_metadata-3.5.2" // {
         dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."ms-2.1.2"
         ];
       })
@@ -105904,7 +109798,7 @@ in
       sources."vlc-command-1.2.0"
       (sources."webtorrent-0.112.0" // {
         dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."decompress-response-6.0.0"
           sources."get-stdin-8.0.0"
           sources."magnet-uri-6.1.0"
@@ -105916,7 +109810,7 @@ in
       })
       sources."winreg-1.2.4"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.1"
+      sources."ws-7.4.2"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
       sources."xmldom-0.1.31"
@@ -105952,10 +109846,10 @@ in
   write-good = nodeEnv.buildNodePackage {
     name = "write-good";
     packageName = "write-good";
-    version = "1.0.3";
+    version = "1.0.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/write-good/-/write-good-1.0.3.tgz";
-      sha512 = "8n5k4h00o91iYlzudpO8VqmeEjJ2qfMtVA+rhYUVYmibEOEoOXN+YGxB7CY7BZbN2Pv8aDK4oiLSN0a3pAwwOQ==";
+      url = "https://registry.npmjs.org/write-good/-/write-good-1.0.4.tgz";
+      sha512 = "NA7P2MQ2yw4k+SYq9NQMB0GLchzoprbMRoJgMquLoWzucTozni8k/3hvXvldyDQbgPpPZObzOGvcB6UgqzggzQ==";
     };
     dependencies = [
       sources."adverb-where-0.2.1"
@@ -105993,7 +109887,7 @@ in
       sources."esprima-4.0.1"
       sources."http-proxy-agent-2.1.0"
       sources."https-proxy-agent-2.2.4"
-      sources."js-yaml-3.14.0"
+      sources."js-yaml-3.14.1"
       sources."jsonc-parser-2.3.1"
       sources."ms-2.0.0"
       sources."request-light-0.2.5"
@@ -106017,7 +109911,7 @@ in
         ];
       })
       sources."vscode-languageserver-textdocument-1.0.1"
-      sources."vscode-languageserver-types-3.15.1"
+      sources."vscode-languageserver-types-3.16.0"
       sources."vscode-nls-4.1.2"
       sources."vscode-uri-2.1.2"
       sources."yaml-language-server-parser-0.1.1"
@@ -106058,8 +109952,8 @@ in
       sha512 = "GFg4QC1xi3gkbHGGUFme8/8XPg3kDISu/qJfx56X207yuv1FSevGY/eKuym7kh0bniCB4n3rseWW+QZXPH8LIw==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.4"
-      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/code-frame-7.12.11"
+      sources."@babel/helper-validator-identifier-7.12.11"
       sources."@babel/highlight-7.10.4"
       sources."@babel/runtime-7.12.5"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
@@ -106067,7 +109961,7 @@ in
       sources."@sindresorhus/is-0.7.0"
       sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.14.10"
+      sources."@types/node-14.14.19"
       sources."@types/normalize-package-data-2.4.0"
       sources."JSONStream-1.3.5"
       sources."aggregate-error-3.1.0"
@@ -106164,7 +110058,14 @@ in
       sources."cli-boxes-1.0.0"
       sources."cli-cursor-2.1.0"
       sources."cli-list-0.2.0"
-      sources."cli-table-0.3.1"
+      (sources."cli-table-0.3.4" // {
+        dependencies = [
+          sources."ansi-regex-5.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.0"
+          sources."strip-ansi-6.0.0"
+        ];
+      })
       sources."cli-width-2.2.1"
       sources."clone-2.1.2"
       sources."clone-buffer-1.0.0"
@@ -106177,7 +110078,6 @@ in
       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."commondir-1.0.1"
       sources."component-emitter-1.3.0"
@@ -106187,7 +110087,7 @@ in
       sources."config-chain-1.1.12"
       sources."configstore-3.1.5"
       sources."copy-descriptor-0.1.1"
-      sources."core-js-3.8.0"
+      sources."core-js-3.8.1"
       sources."core-util-is-1.0.2"
       sources."create-error-class-3.0.2"
       sources."cross-spawn-6.0.5"
@@ -106371,7 +110271,7 @@ in
       sources."indent-string-4.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.5"
+      sources."ini-1.3.8"
       sources."inquirer-6.5.2"
       sources."insight-0.10.3"
       sources."interpret-1.4.0"
@@ -106505,8 +110405,8 @@ in
       sources."merge-stream-2.0.0"
       sources."merge2-1.4.1"
       sources."micromatch-3.1.10"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.45.0"
+      sources."mime-types-2.1.28"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
@@ -106609,7 +110509,7 @@ in
       sources."pkg-up-2.0.0"
       sources."posix-character-classes-0.1.1"
       sources."prepend-http-2.0.0"
-      sources."pretty-bytes-5.4.1"
+      sources."pretty-bytes-5.5.0"
       sources."process-nextick-args-2.0.1"
       sources."proto-list-1.2.4"
       sources."pseudomap-1.0.2"
@@ -106934,7 +110834,7 @@ in
           })
           sources."is-fullwidth-code-point-3.0.0"
           sources."is-stream-2.0.0"
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
           sources."mute-stream-0.0.8"
           sources."npm-run-path-4.0.1"
           sources."onetime-5.1.2"
@@ -106960,7 +110860,7 @@ in
       })
       (sources."yeoman-generator-4.12.0" // {
         dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.2"
           sources."diff-4.0.2"
           sources."dir-glob-2.2.2"
           sources."ejs-3.1.5"
diff --git a/pkgs/development/ocaml-modules/arp/default.nix b/pkgs/development/ocaml-modules/arp/default.nix
new file mode 100644
index 00000000000..518f1c9f424
--- /dev/null
+++ b/pkgs/development/ocaml-modules/arp/default.nix
@@ -0,0 +1,57 @@
+{ lib, buildDunePackage, fetchurl
+, cstruct, ipaddr, macaddr, logs, lwt, duration
+, mirage-time, mirage-protocols, mirage-profile
+, alcotest, ethernet, fmt, mirage-vnetif, mirage-random
+, mirage-random-test, mirage-clock-unix, mirage-time-unix
+, bisect_ppx
+}:
+
+buildDunePackage rec {
+  pname = "arp";
+  version = "2.3.1";
+
+  minimumOCamlVersion = "4.06";
+
+  useDune2 = true;
+
+  src = fetchurl {
+    url = "https://github.com/mirage/${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
+    sha256 = "1nzm3fbkvz702g8f60fs49736lpffwchy64i1l1raxm9b4lmdk3p";
+  };
+
+  nativeBuildInputs = [
+    bisect_ppx
+  ];
+
+  propagatedBuildInputs = [
+    cstruct
+    ipaddr
+    macaddr
+    logs
+    mirage-time
+    mirage-protocols
+    lwt
+    duration
+    mirage-profile
+  ];
+
+  doCheck = true;
+  checkInputs = [
+    alcotest
+    mirage-profile
+    mirage-random
+    mirage-random-test
+    mirage-vnetif
+    mirage-clock-unix
+    mirage-random
+    mirage-time-unix
+    ethernet
+  ];
+
+  meta = with lib; {
+    description = "Address Resolution Protocol purely in OCaml";
+    license = licenses.isc;
+    homepage = "https://github.com/mirage/arp";
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/biocaml/default.nix b/pkgs/development/ocaml-modules/biocaml/default.nix
index b7cab4cef6d..c85886c73de 100644
--- a/pkgs/development/ocaml-modules/biocaml/default.nix
+++ b/pkgs/development/ocaml-modules/biocaml/default.nix
@@ -4,25 +4,19 @@
 
 buildDunePackage rec {
   pname = "biocaml";
-  version = "0.10.1";
+  version = "0.11.1";
 
   useDune2 = true;
 
-  minimumOCamlVersion = "4.07";
+  minimumOCamlVersion = "4.08";
 
   src = fetchFromGitHub {
     owner = "biocaml";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "1f19nc8ld0iv45jjnsvaah3ddj88s2n9wj8mrz726kzg85cfr8xj";
+    sha256 = "1il84vvypgkhdyc2j5fmgh14a58069s6ijbd5dvyl2i7jdxaazji";
   };
 
-  # fix compilation without and disable -unsafe-string, needed for Ocaml 4.10:
-  patches = [ (fetchpatch {
-      url = "https://github.com/biocaml/biocaml/commit/597fa7b0d203684e45ffe03f56c74335b6173ffc.patch";
-      sha256 = "0b8jdg215cv2k4y3ww7vak2ag5v6v9w8b76qjivr5d1qxz47mqxv";
-  }) ];
-
   buildInputs = [ ppx_jane ppx_sexp_conv ];
   checkInputs = [ ounit ];
   propagatedBuildInputs = [ async base64 camlzip cfstream core rresult uri xmlm ];
diff --git a/pkgs/development/ocaml-modules/bisect_ppx-ocamlbuild/default.nix b/pkgs/development/ocaml-modules/bisect_ppx-ocamlbuild/default.nix
deleted file mode 100644
index 6a98267d89a..00000000000
--- a/pkgs/development/ocaml-modules/bisect_ppx-ocamlbuild/default.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ buildDunePackage, bisect_ppx, ocamlbuild }:
-
-buildDunePackage {
-  minimumOCamlVersion = "4.02";
-  inherit (bisect_ppx) version src meta;
-  pname = "bisect_ppx-ocamlbuild";
-  propagatedBuildInputs = [ ocamlbuild ];
-}
diff --git a/pkgs/development/ocaml-modules/bisect_ppx/default.nix b/pkgs/development/ocaml-modules/bisect_ppx/default.nix
index ce52c427cd0..eba01081994 100644
--- a/pkgs/development/ocaml-modules/bisect_ppx/default.nix
+++ b/pkgs/development/ocaml-modules/bisect_ppx/default.nix
@@ -1,24 +1,27 @@
-{ stdenv, fetchFromGitHub, buildDunePackage, ocaml-migrate-parsetree, ppx_tools_versioned }:
+{ lib, fetchFromGitHub, buildDunePackage, cmdliner, ocaml-migrate-parsetree, ppx_tools_versioned }:
 
 buildDunePackage rec {
   pname = "bisect_ppx";
-  version = "1.4.0";
+  version = "2.5.0";
+
+  useDune2 = true;
 
   src = fetchFromGitHub {
     owner = "aantron";
     repo = "bisect_ppx";
     rev = version;
-    sha256 = "1plhm4pvrhpapz5zaks194ji1fgzmp13y942g10pbn9m7kgkqg4h";
+    sha256 = "0w2qd1myvh333jvkf8hgrqzl8ns4xgfggk4frf1ij3jyc7qc0868";
   };
 
   buildInputs = [
+    cmdliner
     ocaml-migrate-parsetree
     ppx_tools_versioned
   ];
 
   meta = {
     description = "Code coverage for OCaml";
-    license = stdenv.lib.licenses.mpl20;
+    license = lib.licenses.mit;
     homepage = "https://github.com/aantron/bisect_ppx";
   };
 }
diff --git a/pkgs/development/ocaml-modules/bistro/default.nix b/pkgs/development/ocaml-modules/bistro/default.nix
index 78ca63ab90c..197a3eaf69d 100644
--- a/pkgs/development/ocaml-modules/bistro/default.nix
+++ b/pkgs/development/ocaml-modules/bistro/default.nix
@@ -15,15 +15,22 @@ buildDunePackage rec {
     sha256 = "114gq48cpj2mvycypa9lfyqqb26wa2gkdfwkcqhnx7m6sdwv9a38";
   };
 
+  patches = [
   # The following patch adds support for core.v0.13
-  patches = [(fetchpatch {
+  (fetchpatch {
     url = "https://github.com/pveber/bistro/commit/0931db43a146ad7829dff5120161a775f732a878.patch";
     sha256 = "06y0sxbbab1mssc1xfjjv12lpv4rny5iqv9qkdqyzrvzpl1bdvnd";
-  })];
+  })
+  # The following patch adds support for core.v0.14
+  (fetchpatch {
+    url = "https://github.com/pveber/bistro/commit/afbdcb2af7777ef7711c7f3c45dff605350a27b2.patch";
+    sha256 = "0ix6lx9qjnn3vqp0164c6l5an8b4rq69h2mxrg89piyk2g1yv0zg";
+  })
+  ];
 
   propagatedBuildInputs = [ base64 bos core lwt_react ocamlgraph rresult tyxml ];
 
-  minimumOCamlVersion = "4.07";
+  minimumOCamlVersion = "4.08";
 
   meta = {
     inherit (src.meta) homepage;
diff --git a/pkgs/development/ocaml-modules/camlzip/default.nix b/pkgs/development/ocaml-modules/camlzip/default.nix
index 7de8968e061..1e6e0e8f8fa 100644
--- a/pkgs/development/ocaml-modules/camlzip/default.nix
+++ b/pkgs/development/ocaml-modules/camlzip/default.nix
@@ -4,30 +4,36 @@ let
   param =
     if stdenv.lib.versionAtLeast ocaml.version "4.02"
     then {
-      version = "1.07";
-      url = "https://github.com/xavierleroy/camlzip/archive/rel107.tar.gz";
-      sha256 = "1pdz3zyiczm6c46zfgag2frwq3ljlq044p3a2y4wm2wb4pgz8k9g";
+      version = "1.10";
+      url = "https://github.com/xavierleroy/camlzip/archive/rel110.tar.gz";
+      sha256 = "X0YcczaQ3lFeJEiTIgjSSZ1zi32KFMtmZsP0FFpyfbI=";
       patches = [];
-      installTargets = [ "install-findlib" ];
+      postPatchInit = ''
+        cp META-zip META-camlzip
+        echo 'directory="../zip"' >> META-camlzip
+      '';
     } else {
       version = "1.05";
       download_id = "1037";
       url = "http://forge.ocamlcore.org/frs/download.php/${param.download_id}/camlzip-${param.version}.tar.gz";
       sha256 = "930b70c736ab5a7ed1b05220102310a0a2241564786657abe418e834a538d06b";
       patches = [./makefile_1_05.patch];
-      installTargets = [ "install" ];
+      postPatchInit = ''
+        substitute ${./META} META --subst-var-by VERSION "${param.version}"
+      '';
     };
 in
 
 stdenv.mkDerivation {
-  name = "camlzip-${param.version}";
+  pname = "camlzip";
+  version = param.version;
 
   src = fetchurl {
     inherit (param) url;
     inherit (param) sha256;
   };
 
-  buildInputs = [ocaml findlib];
+  buildInputs = [ ocaml findlib ];
 
   propagatedBuildInputs = [zlib];
 
@@ -35,8 +41,7 @@ stdenv.mkDerivation {
 
   createFindlibDestdir = true;
 
-  postPatch = ''
-    substitute ${./META} META --subst-var-by VERSION "${param.version}"
+  postPatch = param.postPatchInit + ''
     substituteInPlace Makefile \
       --subst-var-by ZLIB_LIBDIR "${zlib.out}/lib" \
       --subst-var-by ZLIB_INCLUDE "${zlib.dev}/include"
@@ -44,13 +49,11 @@ stdenv.mkDerivation {
 
   buildFlags = [ "all" "allopt" ];
 
-  inherit (param) installTargets;
-
   postInstall = ''
     ln -s $out/lib/ocaml/${ocaml.version}/site-lib/{,caml}zip
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = "http://cristal.inria.fr/~xleroy/software.html#camlzip";
     description = "A library for handling ZIP and GZIP files in OCaml";
     longDescription = ''
@@ -60,8 +63,6 @@ stdenv.mkDerivation {
     '';
     license = "LGPL+linking exceptions";
     platforms = ocaml.meta.platforms or [];
-    maintainers = [
-      stdenv.lib.maintainers.maggesi
-    ];
+    maintainers = with maintainers; [ maggesi ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/cfstream/default.nix b/pkgs/development/ocaml-modules/cfstream/default.nix
index 0ec1949f562..d0fcf5be83c 100644
--- a/pkgs/development/ocaml-modules/cfstream/default.nix
+++ b/pkgs/development/ocaml-modules/cfstream/default.nix
@@ -4,6 +4,8 @@ buildDunePackage rec {
   pname = "cfstream";
   version = "1.3.1";
 
+  useDune2 = true;
+
   minimumOCamlVersion = "4.04.1";
 
   src = fetchFromGitHub {
diff --git a/pkgs/development/ocaml-modules/csv/default.nix b/pkgs/development/ocaml-modules/csv/default.nix
index 2d017b9a916..60496ad28da 100644
--- a/pkgs/development/ocaml-modules/csv/default.nix
+++ b/pkgs/development/ocaml-modules/csv/default.nix
@@ -4,6 +4,8 @@ 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";
diff --git a/pkgs/development/ocaml-modules/csv/lwt.nix b/pkgs/development/ocaml-modules/csv/lwt.nix
index 2fa9296d7e4..b0f771209aa 100644
--- a/pkgs/development/ocaml-modules/csv/lwt.nix
+++ b/pkgs/development/ocaml-modules/csv/lwt.nix
@@ -6,7 +6,7 @@ else
 
 buildDunePackage {
   pname = "csv-lwt";
-  inherit (csv) src version meta;
+  inherit (csv) src version useDune2 meta;
 
   propagatedBuildInputs = [ csv ocaml_lwt ];
 
diff --git a/pkgs/development/ocaml-modules/diet/default.nix b/pkgs/development/ocaml-modules/diet/default.nix
new file mode 100644
index 00000000000..0d4229c03ea
--- /dev/null
+++ b/pkgs/development/ocaml-modules/diet/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildDunePackage, fetchurl, stdlib-shims, ounit }:
+
+buildDunePackage rec {
+  pname = "diet";
+  version = "0.4";
+
+  src = fetchurl {
+    url =
+      "https://github.com/mirage/ocaml-diet/releases/download/v${version}/diet-v${version}.tbz";
+    sha256 = "96acac2e4fdedb5f47dd8ad2562e723d85ab59cd1bd85554df21ec907b071741";
+  };
+
+  minimumOCamlVersion = "4.03";
+
+  propagatedBuildInputs = [ stdlib-shims ];
+
+  doCheck = true;
+  checkInputs = [ ounit ];
+
+  meta = with lib; {
+    homepage = "https://github.com/mirage/ocaml-diet";
+    description = "Simple implementation of Discrete Interval Encoding Trees";
+    license = licenses.isc;
+    maintainers = with maintainers; [ ehmry ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/dns/certify.nix b/pkgs/development/ocaml-modules/dns/certify.nix
new file mode 100644
index 00000000000..1835114d707
--- /dev/null
+++ b/pkgs/development/ocaml-modules/dns/certify.nix
@@ -0,0 +1,33 @@
+{ 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
+}:
+
+buildDunePackage {
+  pname = "dns-certify";
+
+  inherit (dns) version src useDune2 minimumOCamlVersion;
+
+  propagatedBuildInputs = [
+    dns
+    dns-tsig
+    dns-mirage
+    randomconv
+    x509
+    mirage-random
+    mirage-time
+    mirage-clock
+    mirage-stack
+    logs
+    mirage-crypto-pk
+    mirage-crypto-rng
+    tls
+    lwt
+  ];
+
+  doCheck = true;
+
+  meta = dns.meta // {
+    description = "MirageOS let's encrypt certificate retrieval";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/dns/cli.nix b/pkgs/development/ocaml-modules/dns/cli.nix
new file mode 100644
index 00000000000..6e149180642
--- /dev/null
+++ b/pkgs/development/ocaml-modules/dns/cli.nix
@@ -0,0 +1,48 @@
+{ buildDunePackage, dns, dns-tsig, dns-client, dns-server, dns-certify
+, rresult, bos, cmdliner, fpath, x509, mirage-crypto, mirage-crypto-pk
+, mirage-crypto-rng, hex, ptime, mtime, logs, fmt, ipaddr, lwt
+, randomconv, alcotest
+}:
+
+buildDunePackage {
+  pname = "dns-cli";
+
+  minimumOCamlVersion = "4.08";
+
+  inherit (dns) version src useDune2;
+
+  # no need to propagate as this is primarily
+  # an executable package
+  buildInputs = [
+    dns
+    dns-tsig
+    dns-client
+    dns-server
+    dns-certify
+    rresult
+    bos
+    cmdliner
+    fpath
+    x509
+    mirage-crypto
+    mirage-crypto-pk
+    mirage-crypto-rng
+    hex
+    ptime
+    mtime
+    logs
+    fmt
+    ipaddr
+    lwt
+    randomconv
+  ];
+
+  doCheck = true;
+  checkInputs = [
+    alcotest
+  ];
+
+  meta = dns.meta // {
+    description = "Unix command line utilities using uDNS";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/dns/mirage.nix b/pkgs/development/ocaml-modules/dns/mirage.nix
new file mode 100644
index 00000000000..4a45abba68e
--- /dev/null
+++ b/pkgs/development/ocaml-modules/dns/mirage.nix
@@ -0,0 +1,18 @@
+{ buildDunePackage, dns, mirage-stack, ipaddr, lwt }:
+
+buildDunePackage {
+  pname = "dns-mirage";
+
+  inherit (dns) version src useDune2 minimumOCamlVersion;
+
+  propagatedBuildInputs = [
+    dns
+    mirage-stack
+    ipaddr
+    lwt
+  ];
+
+  meta = dns.meta // {
+    description = "An opinionated Domain Name System (DNS) library";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/dns/resolver.nix b/pkgs/development/ocaml-modules/dns/resolver.nix
new file mode 100644
index 00000000000..121ecb588d0
--- /dev/null
+++ b/pkgs/development/ocaml-modules/dns/resolver.nix
@@ -0,0 +1,32 @@
+{ buildDunePackage, dns, dns-server, dns-mirage, lru, duration
+, randomconv, lwt, mirage-time, mirage-clock, mirage-random
+, alcotest
+}:
+
+buildDunePackage {
+  pname = "dns-resolver";
+
+  inherit (dns) version src useDune2 minimumOCamlVersion;
+
+  propagatedBuildInputs = [
+    dns
+    dns-server
+    dns-mirage
+    lru
+    duration
+    randomconv
+    lwt
+    mirage-time
+    mirage-clock
+    mirage-random
+  ];
+
+  doCheck = true;
+  checkInputs = [
+    alcotest
+  ];
+
+  meta = dns.meta // {
+    description = "DNS resolver business logic";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/dns/server.nix b/pkgs/development/ocaml-modules/dns/server.nix
new file mode 100644
index 00000000000..1dc001f5f80
--- /dev/null
+++ b/pkgs/development/ocaml-modules/dns/server.nix
@@ -0,0 +1,34 @@
+{ buildDunePackage, dns, dns-mirage, randomconv, duration, lwt
+, mirage-time, mirage-clock, mirage-stack, metrics
+, alcotest, mirage-crypto-rng, dns-tsig, base64
+}:
+
+buildDunePackage {
+  pname = "dns-server";
+
+  inherit (dns) version src useDune2 minimumOCamlVersion;
+
+  propagatedBuildInputs = [
+    dns
+    dns-mirage
+    randomconv
+    duration
+    lwt
+    mirage-time
+    mirage-clock
+    mirage-stack
+    metrics
+  ];
+
+  doCheck = true;
+  checkInputs = [
+    alcotest
+    mirage-crypto-rng
+    dns-tsig
+    base64
+  ];
+
+  meta = dns.meta // {
+    description = "DNS server, primary and secondary";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/dns/stub.nix b/pkgs/development/ocaml-modules/dns/stub.nix
new file mode 100644
index 00000000000..dfe623f1c50
--- /dev/null
+++ b/pkgs/development/ocaml-modules/dns/stub.nix
@@ -0,0 +1,33 @@
+{ buildDunePackage, dns, dns-client, dns-mirage, dns-resolver, dns-tsig
+, dns-server, duration, randomconv, lwt, mirage-time, mirage-clock
+, mirage-random, mirage-stack, metrics
+}:
+
+buildDunePackage {
+  pname = "dns-stub";
+
+  inherit (dns) version src useDune2 minimumOCamlVersion;
+
+  propagatedBuildInputs = [
+    dns
+    dns-client
+    dns-mirage
+    dns-resolver
+    dns-tsig
+    dns-server
+    duration
+    randomconv
+    lwt
+    mirage-time
+    mirage-clock
+    mirage-random
+    mirage-stack
+    metrics
+  ];
+
+  doCheck = true;
+
+  meta = dns.meta // {
+    description = "DNS stub resolver";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/dns/tsig.nix b/pkgs/development/ocaml-modules/dns/tsig.nix
new file mode 100644
index 00000000000..11786a21e0d
--- /dev/null
+++ b/pkgs/development/ocaml-modules/dns/tsig.nix
@@ -0,0 +1,22 @@
+{ buildDunePackage, dns, mirage-crypto, base64, alcotest }:
+
+buildDunePackage {
+  pname = "dns-tsig";
+
+  inherit (dns) version src useDune2 minimumOCamlVersion;
+
+  propagatedBuildInputs = [
+    mirage-crypto
+    dns
+    base64
+  ];
+
+  doCheck = true;
+  checkInputs = [
+    alcotest
+  ];
+
+  meta = dns.meta // {
+    description = "TSIG support for DNS";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/ethernet/default.nix b/pkgs/development/ocaml-modules/ethernet/default.nix
new file mode 100644
index 00000000000..bc4f4a47544
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ethernet/default.nix
@@ -0,0 +1,42 @@
+{ lib, buildDunePackage, fetchurl
+, rresult, cstruct, ppx_cstruct, mirage-net, mirage-protocols
+, mirage-profile, macaddr, fmt, lwt, logs
+}:
+
+buildDunePackage rec {
+  pname = "ethernet";
+  version = "2.2.0";
+
+  minimumOCamlVersion = "4.06";
+
+  # necessary due to cstruct
+  useDune2 = true;
+
+  src = fetchurl {
+    url = "https://github.com/mirage/${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
+    sha256 = "0qzisqibx2gd8rh330n642mk5wz229199rnlrs7x8cr5pnymif7z";
+  };
+
+  nativeBuildInputs = [
+    ppx_cstruct
+  ];
+
+  propagatedBuildInputs = [
+    rresult
+    cstruct
+    mirage-net
+    mirage-protocols
+    macaddr
+    mirage-profile
+    fmt
+    lwt
+    logs
+  ];
+
+  meta = with lib; {
+    description = "OCaml Ethernet (IEEE 802.3) layer, used in MirageOS";
+    homepage = "https://github.com/mirage/ethernet";
+    license = licenses.isc;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/irmin/chunk.nix b/pkgs/development/ocaml-modules/irmin/chunk.nix
new file mode 100644
index 00000000000..7a2ad0ec7df
--- /dev/null
+++ b/pkgs/development/ocaml-modules/irmin/chunk.nix
@@ -0,0 +1,18 @@
+{ lib, buildDunePackage, irmin, irmin-mem, irmin-test }:
+
+buildDunePackage rec {
+
+  pname = "irmin-chunk";
+  inherit (irmin) version src useDune2;
+
+  propagatedBuildInputs = [ irmin ];
+
+  doCheck = true;
+  checkInputs = [ irmin-mem irmin-test ];
+
+  meta = irmin.meta // {
+    description = "Irmin backend which allow to store values into chunks";
+  };
+
+}
+
diff --git a/pkgs/development/ocaml-modules/janestreet/0.13.nix b/pkgs/development/ocaml-modules/janestreet/0.13.nix
deleted file mode 100644
index 9ab45aa5b30..00000000000
--- a/pkgs/development/ocaml-modules/janestreet/0.13.nix
+++ /dev/null
@@ -1,601 +0,0 @@
-{ janePackage
-, ctypes
-, dune-configurator
-, num
-, octavius
-, ppxlib
-, re
-, openssl
-, zarith
-}:
-
-rec {
-
-  ocaml-compiler-libs = janePackage {
-    pname = "ocaml-compiler-libs";
-    version = "0.12.1";
-    hash = "0hpk54fcsfcjp536fgwr80mjjf88hjk58q7jwnyrhk2ljd8xzgiv";
-    meta.description = "OCaml compiler libraries repackaged";
-  };
-
-  sexplib0 = janePackage {
-    pname = "sexplib0";
-    hash = "1b1bk0xs1hqa12qs5y4h1yl3mq6xml4ya2570dyhdn1j0fbw4g3y";
-    meta.description = "Library containing the definition of S-expressions and some base converters";
-  };
-
-  base = janePackage {
-    pname = "base";
-    version = "0.13.1";
-    hash = "08a5aymcgr5svvm8v0v20msd5cad64m6maakfbhz4172g7kd9jzw";
-    meta.description = "Full standard library replacement for OCaml";
-    propagatedBuildInputs = [ sexplib0 ];
-  };
-
-  stdio = janePackage {
-    pname = "stdio";
-    hash = "1hkj9vh8n8p3n5pvx7053xis1pfmqd8p7shjyp1n555xzimfxzgh";
-    meta.description = "Standard IO library for OCaml";
-    propagatedBuildInputs = [ base ];
-  };
-
-  ppx_sexp_conv = janePackage {
-    pname = "ppx_sexp_conv";
-    hash = "0jkhwmkrfq3ss6bv6i3m871alcr4xpngs6ci6bmzv3yfl7s8bwdf";
-    meta.description = "[@@deriving] plugin to generate S-expression conversion functions";
-    propagatedBuildInputs = [ ppxlib ];
-  };
-
-  ppx_here = janePackage {
-    pname = "ppx_here";
-    hash = "1ahidrrjsyi0al06bhv5h6aqmdk7ryz8dybfhqjsn1zp9q056q35";
-    meta.description = "Expands [%here] into its location";
-    propagatedBuildInputs = [ ppxlib ];
-  };
-
-  ppx_compare = janePackage {
-    pname = "ppx_compare";
-    hash = "14pnqa47gsvq93z1b8wb5pyq8zw90aaw71j4pwlyid4s86px454j";
-    meta.description = "Generation of comparison functions from types";
-    propagatedBuildInputs = [ ppxlib ];
-  };
-
-  ppx_cold = janePackage {
-    pname = "ppx_cold";
-    hash = "0wnfwsgbzk4i5aqjlcaqp6lkvrq5345vazryvx2klbbrd4759h9f";
-    meta.description = "Expands [@cold] into [@inline never][@specialise never][@local never]";
-    propagatedBuildInputs = [ ppxlib ];
-  };
-
-  ppx_assert = janePackage {
-    pname = "ppx_assert";
-    hash = "08dada2xcp3w5mir90z56qrdyd317lygml4qlfssj897534bwiqr";
-    meta.description = "Assert-like extension nodes that raise useful errors on failure";
-    propagatedBuildInputs = [ ppx_cold ppx_compare ppx_here ppx_sexp_conv ];
-  };
-
-  ppx_inline_test = janePackage {
-    pname = "ppx_inline_test";
-    hash = "135qzbhqy33lmigbq1rakr9i3y59y3pczh4laanqjyss9b9kfs60";
-    meta.description = "Syntax extension for writing in-line tests in ocaml code";
-    propagatedBuildInputs = [ ppxlib ];
-  };
-
-  ppx_custom_printf = janePackage {
-    pname = "ppx_custom_printf";
-    hash = "0kvfkdk4wg2z8x705bajvl1f8wiyy3aya203wdzc9425h73nqm5p";
-    meta.description = "Printf-style format-strings for user-defined string conversion";
-    propagatedBuildInputs = [ ppx_sexp_conv ];
-  };
-
-  fieldslib = janePackage {
-    pname = "fieldslib";
-    hash = "0nsl0i9vjk73pr70ksxqa65rd5v84jzdaazryfdy6i4a5sfg7bxa";
-    meta.description = "Syntax extension to define first class values representing record fields, to get and set record fields, iterate and fold over all fields of a record and create new record values";
-    propagatedBuildInputs = [ base ];
-  };
-
-  ppx_fields_conv = janePackage {
-    pname = "ppx_fields_conv";
-    hash = "0biw0fgphj522bj9wgjk263i2w92vnpaabzr5zn0grihp4yqy8w4";
-    meta.description = "Generation of accessor and iteration functions for ocaml records";
-    propagatedBuildInputs = [ fieldslib ppxlib ];
-  };
-
-  variantslib = janePackage {
-    pname = "variantslib";
-    hash = "04nps65v1n0nv9n1c1kj5k9jyqsfsxb6h2w3vf6cibhjr5m7z8xc";
-    meta.description = "Part of Jane Street's Core library";
-    propagatedBuildInputs = [ base ];
-  };
-
-  ppx_variants_conv = janePackage {
-    pname = "ppx_variants_conv";
-    hash = "1ssinizz11bws06qzjky486cj1zrflij1f7hi16d02j40qmyjz7b";
-    meta.description = "Generation of accessor and iteration functions for ocaml variant types";
-    propagatedBuildInputs = [ variantslib ppxlib ];
-  };
-
-  ppx_expect = janePackage {
-    pname = "ppx_expect";
-    hash = "1hhcga960wjvhcx5pk7rcywl1p9n2ycvqa294n24m8dhzqia6i47";
-    meta.description = "Cram like framework for OCaml";
-    propagatedBuildInputs = [ ppx_assert ppx_custom_printf ppx_fields_conv ppx_inline_test ppx_variants_conv re ];
-  };
-
-  ppx_enumerate = janePackage {
-    pname = "ppx_enumerate";
-    hash = "0hsg6f2nra1mb35jdgym5rf7spm642bs6qqifbikm9hg8f7z3ql4";
-    meta.description = "Generate a list containing all values of a finite type";
-    propagatedBuildInputs = [ ppxlib ];
-  };
-
-  ppx_hash = janePackage {
-    pname = "ppx_hash";
-    hash = "1f7mfyx4wgk67hchi57w3142m61ka3vgy1969cbkwr3akv6ifly2";
-    meta.description = "A ppx rewriter that generates hash functions from type expressions and definitions";
-    propagatedBuildInputs = [ ppx_compare ppx_sexp_conv ];
-  };
-
-  ppx_js_style = janePackage {
-    pname = "ppx_js_style";
-    hash = "1zlhcn0an5k9xjymk5z5m2vqi8zajy6nvcbl5sdn19pjl3zv645x";
-    meta.description = "Code style checker for Jane Street Packages";
-    propagatedBuildInputs = [ octavius ppxlib ];
-  };
-
-  ppx_base = janePackage {
-    pname = "ppx_base";
-    hash = "0dkqc85x7bgbb6lgx9rghvj1q4dpdgy9qgjl88ywi4c8l9rgnnkz";
-    meta.description = "Base set of ppx rewriters";
-    propagatedBuildInputs = [ ppx_cold ppx_enumerate ppx_hash ppx_js_style ];
-  };
-
-  ppx_bench = janePackage {
-    pname = "ppx_bench";
-    hash = "0snmy05d3jgihmppixx3dzamkykijqa2v43vpd7q4z8dpnip620g";
-    meta.description = "Syntax extension for writing in-line benchmarks in ocaml code";
-    propagatedBuildInputs = [ ppx_inline_test ];
-  };
-
-  ppx_sexp_message = janePackage {
-    pname = "ppx_sexp_message";
-    hash = "03jhx3ajcv22iwxkg1jf1jjvd14gyrwi1yc6c5ryqi5ha0fywfw6";
-    meta.description = "A ppx rewriter for easy construction of s-expressions";
-    propagatedBuildInputs = [ ppx_here ppx_sexp_conv ];
-  };
-
-  splittable_random = janePackage {
-    pname = "splittable_random";
-    hash = "1kgcd6k31vsd7638g8ip77bp1b7vzgkbvgvij4jm2igl09132r85";
-    meta.description = "PRNG that can be split into independent streams";
-    propagatedBuildInputs = [ base ppx_assert ppx_bench ppx_sexp_message ];
-  };
-
-  ppx_let = janePackage {
-    pname = "ppx_let";
-    hash = "0qplsvbv10h7kwf6dhhgvi001gfphv1v66s83zjr5zbypyaarg5y";
-    meta.description = "Monadic let-bindings";
-    propagatedBuildInputs = [ ppxlib ];
-  };
-
-  base_quickcheck = janePackage {
-    pname = "base_quickcheck";
-    hash = "0ik8llm01m2xap4gia0vpsh7yq311hph7a2kf5109ag4988s8p0w";
-    meta.description = "Randomized testing framework, designed for compatibility with Base";
-    propagatedBuildInputs = [ ppx_base ppx_fields_conv ppx_let splittable_random ];
-  };
-
-  ppx_stable = janePackage {
-    pname = "ppx_stable";
-    hash = "0h7ls1bs0bsd8c4na4aj0nawwhvfy50ybm7sza7yz3qli9jammjk";
-    meta.description = "Stable types conversions generator";
-    propagatedBuildInputs = [ ppxlib ];
-  };
-
-  bin_prot = janePackage {
-    pname = "bin_prot";
-    hash = "1nnr21rljlfglmhiji27d7c1d6gg5fk4cc5rl3750m98w28mfdjw";
-    meta.description = "A binary protocol generator";
-    propagatedBuildInputs = [ ppx_compare ppx_custom_printf ppx_fields_conv ppx_variants_conv ];
-  };
-
-  ppx_bin_prot = janePackage {
-    pname = "ppx_bin_prot";
-    hash = "14nfjgqisdqqg8wg4qzvc859zil82y0qpr8fm4nhq05mgxp37iyc";
-    meta.description = "Generation of bin_prot readers and writers from types";
-    propagatedBuildInputs = [ bin_prot ppx_here ];
-  };
-
-  ppx_fail = janePackage {
-    pname = "ppx_fail";
-    hash = "165mikjg4a1lahq3n9q9y2h36jbln5g3l2hapx17irvf0l0c3vn5";
-    meta.description = "Add location to calls to failwiths";
-    propagatedBuildInputs = [ ppx_here ];
-  };
-
-  jst-config = janePackage {
-    pname = "jst-config";
-    hash = "15lj6f83hz555xhjy9aayl3adqwgl1blcjnja693a1ybi3ca8w0y";
-    meta.description = "Compile-time configuration for Jane Street libraries";
-    buildInputs = [ ppx_assert ];
-  };
-
-  ppx_optcomp = janePackage {
-    pname = "ppx_optcomp";
-    hash = "13db395swqf7v87pgl9qiyj4igmvj57hpl8blx3kkrzj6ddh38a8";
-    meta.description = "Optional compilation for OCaml";
-    propagatedBuildInputs = [ ppxlib ];
-  };
-
-  jane-street-headers = janePackage {
-    pname = "jane-street-headers";
-    hash = "1qjg2ari0xn40dlbk0h9xkwr37k97ldkxpkv792fbl6wc2jlv3x5";
-    meta.description = "Jane Street C header files";
-  };
-
-  time_now = janePackage {
-    pname = "time_now";
-    hash = "1if234kz1ssmv22c0vh1cwhbivab6yy3xvy37ny1q4k5ibjc3v0n";
-    meta.description = "Reports the current time";
-    buildInputs = [ jst-config ppx_optcomp ];
-    propagatedBuildInputs = [ jane-street-headers base ppx_base ];
-  };
-
-  ppx_module_timer = janePackage {
-    pname = "ppx_module_timer";
-    hash = "13kv5fzwf41wsaksj41hnvcpx8pnbmzcainlq6f5shj9671hpnhb";
-    meta.description = "Ppx rewriter that records top-level module startup times";
-    propagatedBuildInputs = [ time_now ];
-  };
-
-  ppx_optional = janePackage {
-    pname = "ppx_optional";
-    hash = "1nwb9jvmszxddj9wxgv9g02qhr10yymm2q1w1gjfqd97m2m1mx4n";
-    meta.description = "Pattern matching on flat options";
-    propagatedBuildInputs = [ ppxlib ];
-  };
-
-  ppx_pipebang = janePackage {
-    pname = "ppx_pipebang";
-    hash = "0ybj0flsi95pf13ayzz1lcrqhqvkv1lm2dz6y8w49f12583496mc";
-    meta.description = "A ppx rewriter that inlines reverse application operators `|>` and `|!`";
-    propagatedBuildInputs = [ ppxlib ];
-  };
-
-  ppx_sexp_value = janePackage {
-    pname = "ppx_sexp_value";
-    hash = "18k5015awv9yjl44cvdmp3pn894cgsxmn5s7picxapm9675xqcg9";
-    meta.description = "A ppx rewriter that simplifies building s-expressions from ocaml values";
-    propagatedBuildInputs = [ ppx_here ppx_sexp_conv ];
-  };
-
-  typerep = janePackage {
-    pname = "typerep";
-    hash = "116hlifww2cqq1i9vwpl7ziwkc1na7p9icqi9srpdxnvn8ibcsas";
-    meta.description = "Typerep is a library for runtime types";
-    propagatedBuildInputs = [ base ];
-  };
-
-  ppx_typerep_conv = janePackage {
-    pname = "ppx_typerep_conv";
-    hash = "1jlmga9i79inr412l19n4vvmgafzp1bznqxwhy42x309wblbhxx9";
-    meta.description = "Generation of runtime types from type declarations";
-    propagatedBuildInputs = [ ppxlib typerep ];
-  };
-
-  ppx_jane = janePackage {
-    pname = "ppx_jane";
-    hash = "1a86rvnry8lvjhsg2k73f5bgz7l2962k5i49yzmzn8w66kj0yz60";
-    meta.description = "Standard Jane Street ppx rewriters";
-    propagatedBuildInputs = [ base_quickcheck ppx_bench ppx_bin_prot ppx_expect ppx_fail ppx_module_timer ppx_optcomp ppx_optional ppx_pipebang ppx_sexp_value ppx_stable ppx_typerep_conv ];
-  };
-
-  base_bigstring = janePackage {
-    pname = "base_bigstring";
-    hash = "1i3zr8bn71l442vl5rrvjpwphx20frp2vaw1qc05d348j76sxfp7";
-    meta.description = "String type based on [Bigarray], for use in I/O and C-bindings";
-    propagatedBuildInputs = [ ppx_jane ];
-  };
-
-  parsexp = janePackage {
-    pname = "parsexp";
-    hash = "0fsxy5lpsvfadj8m2337j8iprs294dfikqxjcas7si74nskx6l38";
-    meta.description = "S-expression parsing library";
-    propagatedBuildInputs = [ base sexplib0 ];
-  };
-
-  sexplib = janePackage {
-    pname = "sexplib";
-    hash = "059ypcyirw00x6dqa33x49930pwxcr3i72qz5pf220js2ai2nzhn";
-    meta.description = "Library for serializing OCaml values to and from S-expressions";
-    propagatedBuildInputs = [ num parsexp ];
-  };
-
-  core_kernel = janePackage {
-    version = "0.13.1";
-    pname = "core_kernel";
-    hash = "1ynyz6jkf23q0cwbn6kv06mgyjd644qxb0qkrydq0cglcaa4kjhp";
-    meta.description = "System-independent part of Core";
-    buildInputs = [ jst-config ];
-    propagatedBuildInputs = [ base_bigstring sexplib ];
-  };
-
-  spawn = janePackage {
-    pname = "spawn";
-    hash = "1w003k1kw1lmyiqlk58gkxx8rac7dchiqlz6ah7aj7bh49b36ppf";
-    meta.description = "Spawning sub-processes";
-    buildInputs = [ ppx_expect ];
-  };
-
-  core = janePackage {
-    pname = "core";
-    hash = "1i5z9myl6i7axd8dz4b71gdsz9la6k07ib9njr4bn12yn0y76b1m";
-    meta.description = "System-independent part of Core";
-    buildInputs = [ jst-config ];
-    propagatedBuildInputs = [ core_kernel spawn ];
-  };
-
-  async_kernel = janePackage {
-    pname = "async_kernel";
-    hash = "1rrbyy3pyh31qwv0jiarhpgdyq2z2gx6axmaplgpxshk4qx6gsld";
-    meta.description = "Monadic concurrency library";
-    propagatedBuildInputs = [ core_kernel ];
-  };
-
-  protocol_version_header = janePackage {
-    pname = "protocol_version_header";
-    hash = "19wscd81jlj355f9din1sg21m3af456a0id2a37bx38r390wrghc";
-    meta.description = "Protocol versioning";
-    propagatedBuildInputs = [ core_kernel ];
-  };
-
-  async_rpc_kernel = janePackage {
-    pname = "async_rpc_kernel";
-    hash = "1k3f2psyd1xcf7nkk0q1fq57yyhfqbzyynsz821n7mrnm37simac";
-    meta.description = "Platform-independent core of Async RPC library";
-    propagatedBuildInputs = [ async_kernel protocol_version_header ];
-  };
-
-  async_unix = janePackage {
-    pname = "async_unix";
-    version = "0.13.1";
-    hash = "1sb8grbj4bv6ih3yfdihxhn5c9rqczr56b5bhl85wy2mi92m17xv";
-    meta.description = "Monadic concurrency library";
-    propagatedBuildInputs = [ async_kernel core ];
-  };
-
-  async_extra = janePackage {
-    pname = "async_extra";
-    hash = "06q1farx7dwi4h490xi1azq7ym57ih2d23sq17g2jfvw889kf4n1";
-    meta.description = "Monadic concurrency library";
-    propagatedBuildInputs = [ async_rpc_kernel async_unix ];
-  };
-
-  textutils = janePackage {
-    pname = "textutils";
-    hash = "1wnyqj9dzfgl0kddmdl4n9rkl16hwy432dd2i4ksvk2z5g9kkb0d";
-    meta.description = "Text output utilities";
-    propagatedBuildInputs = [ core ];
-  };
-
-  async = janePackage {
-    pname = "async";
-    hash = "002j9yxpw0ghi12a84163vaqa3n9h8j35f4i72nbxnilxwvy95sr";
-    meta.description = "Monadic concurrency library";
-    propagatedBuildInputs = [ async_rpc_kernel async_unix textutils ];
-  };
-
-  async_find = janePackage {
-    pname = "async_find";
-    hash = "0l8cfhyrx2rb2avdcfx5m70aj6rx2d57qxqvfycad5afqz4xx2n9";
-    meta.description = "Directory traversal with Async";
-    propagatedBuildInputs = [ async ];
-  };
-
-  async_interactive = janePackage {
-    pname = "async_interactive";
-    hash = "1ma24pi3hqzrs1k12sc0aarhf42fap8nl1h7id6k01wp6s3yqi5d";
-    meta.description = "Utilities for building simple command-line based user interfaces";
-    propagatedBuildInputs = [ async ];
-  };
-
-  re2 = janePackage {
-    pname = "re2";
-    hash = "0hmizznlzilynn5kh6149bbpkfw2l0xi7zi1y1fxfww2ma3wpim0";
-    meta.description = "OCaml bindings for RE2, Google's regular expression library";
-    propagatedBuildInputs = [ core_kernel ];
-    prePatch = ''
-      substituteInPlace src/re2_c/dune --replace 'CXX=g++' 'CXX=c++'
-      substituteInPlace src/dune --replace '(cxx_flags (:standard \ -pedantic) (-I re2_c/libre2))' '(cxx_flags (:standard \ -pedantic) (-I re2_c/libre2) (-x c++))'
-    '';
-  };
-
-  shell = janePackage {
-    pname = "shell";
-    hash = "190ymhm0z9b7hngbcpg88wwrfxwfcdh339d7rd2xhmrhi4z99r18";
-    meta.description = "Yet another implementation of fork&exec and related functionality";
-    buildInputs = [ jst-config ];
-    propagatedBuildInputs = [ re2 textutils ];
-  };
-
-  async_shell = janePackage {
-    pname = "async_shell";
-    hash = "0bfxyvdmyv23zfr49pb4c3bgfkjr4s3nb3z07xrw6szia3j1kp4j";
-    meta.description = "Shell helpers for Async";
-    propagatedBuildInputs = [ async shell ];
-  };
-
-  async_ssl = janePackage {
-    pname = "async_ssl";
-    useDune2 = true;
-    hash = "0z5dbiam5k7ipx9ph4r8nqv0a1ldx1ymxw3xjxgrdjda90lmwf2k";
-    meta.description = "Async wrappers for SSL";
-    buildInputs = [ dune-configurator ];
-    propagatedBuildInputs = [ async ctypes openssl ];
-  };
-
-  core_bench = janePackage {
-    pname = "core_bench";
-    hash = "1nk0i3z8rqrljbf4bc7ljp71g0a4361nh85s2ang0lgxri74zacm";
-    meta.description = "Benchmarking library";
-    propagatedBuildInputs = [ textutils ];
-  };
-
-  core_extended = janePackage {
-    pname = "core_extended";
-    hash = "0zh1wwkg5cxkz633dl9zbbl65aksvzb5mss1q8f7w6i1sv3n0135";
-    meta.description = "Extra components that are not as closely vetted or as stable as Core";
-    propagatedBuildInputs = [ core ];
-  };
-
-  sexp_pretty = janePackage {
-    pname = "sexp_pretty";
-    hash = "1a59xc9frmvi7n0i32dzs8gpf5ral80xkwv97a13zv5cyg8l6216";
-    meta.description = "S-expression pretty-printer";
-    propagatedBuildInputs = [ ppx_base re sexplib ];
-  };
-
-  expect_test_helpers_kernel = janePackage {
-    pname = "expect_test_helpers_kernel";
-    hash = "11m0i7mj6b1cmqnwhmsrqdc814s0lk3sip8rh97k75grngazmjvn";
-    meta.description = "Helpers for writing expectation tests";
-    buildInputs = [ ppx_jane ];
-    propagatedBuildInputs = [ core_kernel sexp_pretty ];
-  };
-
-  expect_test_helpers = janePackage {
-    pname = "expect_test_helpers";
-    hash = "0sw9yam8d9hdam8p194q0hgc4i26vvwj5qi2cba1jxfhdzhy8jdd";
-    meta.description = "Async helpers for writing expectation tests";
-    propagatedBuildInputs = [ async expect_test_helpers_kernel ];
-  };
-
-  patience_diff = janePackage {
-    pname = "patience_diff";
-    hash = "012rlbnw21yq2lsbfk3f7l4m4qq3jdx238146z36v54vnhhs6r2r";
-    meta.description = "Diff library using Bram Cohen's patience diff algorithm";
-    propagatedBuildInputs = [ core_kernel ];
-  };
-
-  ecaml = janePackage {
-    pname = "ecaml";
-    hash = "0jmmsi1m7d4cl5mnw6v9h4ng29anwxy73a6qfi28lgpzafn452bc";
-    meta.description = "Library for writing Emacs plugin in OCaml";
-    propagatedBuildInputs = [ async expect_test_helpers_kernel ];
-  };
-
-  posixat = janePackage {
-    pname = "posixat";
-    hash = "122fmd6v7fhiiivkxra539b5w3p5xkkd8mcjzvyb2msyq5zc6xa2";
-    propagatedBuildInputs = [ ppx_optcomp ppx_sexp_conv ];
-    meta.description = "Binding to the posix *at functions";
-  };
-
-  shexp = janePackage {
-    pname = "shexp";
-    hash = "0zdcyix0gdn4xmvbjzhbig63xw9jnw8ixj3ngs6g4k2vk77rs0gk";
-    propagatedBuildInputs = [ posixat spawn ];
-    meta.description = "Process library and s-expression based shell";
-  };
-
-  csvfields = janePackage {
-    pname = "csvfields";
-    hash = "19pnq9m9lkdgqfy9l21w779d6c8djr1dvvjq7r9kbgfwb04symmr";
-    propagatedBuildInputs = [ core expect_test_helpers ];
-    meta.description = "Runtime support for ppx_xml_conv and ppx_csv_conv";
-  };
-
-  sexp_diff_kernel = janePackage {
-    pname = "sexp_diff_kernel";
-    hash = "125gssd24vfcfbkpjlqbxijlc4jyw2n0wv1cnddcfvpn1f7cghzb";
-    propagatedBuildInputs = [ core_kernel ];
-    meta.description = "Code for computing the diff of two sexps";
-  };
-
-  sexp_macro = janePackage {
-    pname = "sexp_macro";
-    hash = "1rqs2r2ihwsqzgnqsdr0db6dqzz4q6s9hi1hvnwf0cb2vnkhsjln";
-    propagatedBuildInputs = [ async sexplib ];
-    meta.description = "Sexp macros";
-  };
-
-  sexp_select = janePackage {
-    pname = "sexp_select";
-    hash = "02yckmin937scqs2i45r2qqp56rqa6j2q04nfhnnxvn3bkb0qnb1";
-    propagatedBuildInputs = [ base ppx_jane ];
-    meta.description = "A library to use CSS-style selectors to traverse sexp trees";
-  };
-
-  sexp = janePackage {
-    pname = "sexp";
-    hash = "0cqp6syc4ap2nxgg1mvwwz2pmib48kp3gigzpjwh20wr38qq0p1r";
-    propagatedBuildInputs = [
-      async
-      core
-      csvfields
-      re2
-      sexp_diff_kernel
-      sexp_macro
-      sexp_pretty
-      sexp_select
-    ];
-    patches = ./sexp.patch;
-    meta.description = "S-expression swiss knife";
-  };
-
-  zarith_stubs_js = janePackage {
-    pname = "zarith_stubs_js";
-    hash = "0dldnf85rfyx8z63qjly9n8plj8nnkw4i5zrj5vbm7s2wjcfjzj1";
-    meta.description = "Javascripts stubs for the Zarith library";
-  };
-
-  bignum = janePackage {
-    pname = "bignum";
-    hash = "0qldyl5mhlffnyps7n9y8qykm0ylrdiw5ii8zlww82zmmpp8zv5x";
-    propagatedBuildInputs = [ core_kernel zarith zarith_stubs_js ];
-    meta.description = "Core-flavoured wrapper around zarith's arbitrary-precision rationals";
-  };
-
-  delimited_parsing = janePackage {
-    pname = "delimited_parsing";
-    hash = "0siz746q28241wk0sv435lfvvips7sl151z5a1sbqanr3lm4s17w";
-    propagatedBuildInputs = [ async core_extended ];
-    meta.description = "Parsing of character (e.g., comma) separated and fixed-width values";
-  };
-
-  ### Packages at version 0.11, with dependencies at version 0.12
-
-  configurator = janePackage {
-    pname = "configurator";
-    version = "0.11.0";
-    hash = "0h686630cscav7pil8c3w0gbh6rj4b41dvbnwmicmlkc746q5bfk";
-    propagatedBuildInputs = [ stdio ];
-    meta.description = "Helper library for gathering system configuration";
-  };
-
-  ppx_core = janePackage {
-    pname = "ppx_core";
-    version = "0.11.0";
-    hash = "11hgm9mxig4cm3c827f6dns9mjv3pf8g6skf10x0gw9xnp1dmzmx";
-    propagatedBuildInputs = [ ppxlib ];
-    meta.description = "Deprecated (see ppxlib)";
-  };
-
-  ppx_driver = janePackage {
-    pname = "ppx_driver";
-    version = "0.11.0";
-    hash = "00kfx6js2kxk57k4v7hiqvwk7h35whgjihnxf75m82rnaf4yzvfi";
-    propagatedBuildInputs = [ ppxlib ];
-    meta.description = "Deprecated (see ppxlib)";
-  };
-
-  ppx_type_conv = janePackage {
-    pname = "ppx_type_conv";
-    version = "0.11.0";
-    hash = "04dbrglqqhkas25cpjz8xhjcbpk141c35qggzw66bn69izczfmaf";
-    propagatedBuildInputs = [ ppxlib ];
-    meta.description = "Deprecated (see ppxlib)";
-  };
-
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/0.14.nix b/pkgs/development/ocaml-modules/janestreet/0.14.nix
new file mode 100644
index 00000000000..29b18e0bf98
--- /dev/null
+++ b/pkgs/development/ocaml-modules/janestreet/0.14.nix
@@ -0,0 +1,857 @@
+{ janePackage
+, alcotest
+, angstrom
+, angstrom-async
+, base64
+, cryptokit
+, ctypes
+, dune-configurator
+, faraday
+, inotify
+, js_of_ocaml
+, js_of_ocaml-ppx
+, lambdasoup
+, magic-mime
+, num
+, octavius
+, ppxlib
+, re
+, tyxml
+, uri-sexp
+, zarith
+, openssl
+, ounit
+, zstd
+}:
+
+rec {
+
+  accessor = janePackage {
+    pname = "accessor";
+    version = "0.14.1";
+    minimumOCamlVersion = "4.09";
+    hash = "0wm2081kzd5zsqs516cn3f975bnnmnyynv8fa818gmfa65i6mxm8";
+    meta.description = "A library that makes it nicer to work with nested functional data structures";
+    propagatedBuildInputs = [ higher_kinded ];
+  };
+
+  accessor_async = janePackage {
+    pname = "accessor_async";
+    version = "0.14.1";
+    minimumOCamlVersion = "4.09";
+    hash = "1193hzvlzm7vcl9p67fs8al2pvkw9n2wz009m2l3lp35mrx8aq1w";
+    meta.description = "Accessors for Async types, for use with the Accessor library";
+    propagatedBuildInputs = [ accessor_core async_kernel ];
+  };
+
+  accessor_base = janePackage {
+    pname = "accessor_base";
+    version = "0.14.1";
+    minimumOCamlVersion = "4.09";
+    hash = "1xjbvvijkyw4dlys47x4896y3kqm2zn0yg60cqrp57i2dwxg0nsj";
+    meta.description = "Accessors for Base types, for use with the Accessor library";
+    propagatedBuildInputs = [ ppx_accessor ];
+  };
+
+  accessor_core = janePackage {
+    minimumOCamlVersion = "4.09";
+    pname = "accessor_core";
+    version = "0.14.1";
+    hash = "1cdkv34m6czhacivpbb2sasj83fgcid6gnqk30ig9i84z8nh2gw2";
+    meta.description = "Accessors for Core types, for use with the Accessor library";
+    propagatedBuildInputs = [ accessor_base core_kernel ];
+  };
+
+  async = janePackage {
+    pname = "async";
+    hash = "086v93div4h9l02n7wzv3xx3i6xvddazydm9qlfa72ad55x3vzy0";
+    meta.description = "Monadic concurrency library";
+    propagatedBuildInputs = [ async_rpc_kernel async_unix textutils ];
+    doCheck = false; # we don't have netkit_sockets
+  };
+
+  async_extra = janePackage {
+    pname = "async_extra";
+    hash = "16cnz9h4jkc3b0837s5z0iv92q7n5nw77g8qshq8pwq639y8ail4";
+    meta.description = "Monadic concurrency library";
+    propagatedBuildInputs = [ async_kernel ];
+  };
+
+  async_find = janePackage {
+    pname = "async_find";
+    hash = "0vlcpdr15bgrwrmixvs6ij88kvk8vzzrijz3zm0svxih0naf8ylx";
+    meta.description = "Directory traversal with Async";
+    propagatedBuildInputs = [ async ];
+  };
+
+  async_inotify = janePackage {
+    pname = "async_inotify";
+    hash = "0i0hf7nsir316ijixdj43qf0p3b6yapvcm2jzp7bhpf4r2kxislv";
+    meta.description = "Async wrapper for inotify";
+    propagatedBuildInputs = [ async_find inotify ];
+  };
+
+  async_interactive = janePackage {
+    pname = "async_interactive";
+    hash = "1cnmv9mipa6k6xd303ngdbxmiab2202f3w3pgq8l1970w8hb78il";
+    meta.description = "Utilities for building simple command-line based user interfaces";
+    propagatedBuildInputs = [ async ];
+  };
+
+  async_js = janePackage {
+    pname = "async_js";
+    hash = "0rld8792lfwbinn9rhrgacivz49vppgy29smpqnvpga89wchjv0v";
+    meta.description = "A small library that provide Async support for JavaScript platforms";
+    buildInputs = [ js_of_ocaml-ppx ];
+    propagatedBuildInputs = [ async_rpc_kernel js_of_ocaml uri-sexp ];
+  };
+
+  async_kernel = janePackage {
+    pname = "async_kernel";
+    hash = "17giakwl0xhyxvxrkn12dwjdghc53q8px81z7cc3k6f102bsbdy6";
+    meta.description = "Monadic concurrency library";
+    propagatedBuildInputs = [ core_kernel ];
+  };
+
+  async_rpc_kernel = janePackage {
+    pname = "async_rpc_kernel";
+    hash = "1bwq3gkq057dd1fhrqz9kqq8a956nn87zaxvr0qcpiczzjv3zmvm";
+    meta.description = "Platform-independent core of Async RPC library";
+    propagatedBuildInputs = [ async_kernel protocol_version_header ];
+  };
+
+  async_sendfile = janePackage {
+    pname = "async_sendfile";
+    hash = "1w3gwwpgfzqjhblxnxh64g64q6kgjzzxx90inswfhycc88pnvdna";
+    meta.description = "Thin wrapper around [Linux_ext.sendfile] to send full files";
+    propagatedBuildInputs = [ async_unix ];
+  };
+
+  async_shell = janePackage {
+    pname = "async_shell";
+    hash = "1r00z620nqv2jxz2xrp2gsyc30h8dd2w9qsnys2fkqbgpxlbgdc7";
+    meta.description = "Shell helpers for Async";
+    propagatedBuildInputs = [ async shell ];
+  };
+
+  async_smtp = janePackage {
+    pname = "async_smtp";
+    hash = "1xf3illn7vikdxldpnc29n4z8sv9f0wsdgdvl4iv93qlvjk8gzck";
+    meta.description = "SMTP client and server";
+    propagatedBuildInputs = [ async_extra async_inotify async_sendfile async_shell async_ssl email_message resource_cache re2_stable sexp_macro ];
+  };
+
+  async_ssl = janePackage {
+    pname = "async_ssl";
+    hash = "0ykys3ckpsx5crfgj26v2q3gy6wf684aq0bfb4q8p92ivwznvlzy";
+    meta.description = "Async wrappers for SSL";
+    buildInputs = [ dune-configurator ];
+    propagatedBuildInputs = [ async ctypes openssl ];
+  };
+
+  async_unix = janePackage {
+    pname = "async_unix";
+    hash = "1wgnr0vdsknqrfnf6irmwnvyngndsnvvl1sfnj3v6fhwk4nswnrs";
+    meta.description = "Monadic concurrency library";
+    propagatedBuildInputs = [ async_kernel core ];
+  };
+
+  base = janePackage {
+    pname = "base";
+    hash = "1d5ynzzq58g9qammhba5dasrg734p9vndq28a7kg80bdxb8gh3kp";
+    minimumOCamlVersion = "4.07";
+    meta.description = "Full standard library replacement for OCaml";
+    buildInputs = [ dune-configurator ];
+    propagatedBuildInputs = [ sexplib0 ];
+    checkInputs = [ alcotest ];
+  };
+
+  base_bigstring = janePackage {
+    pname = "base_bigstring";
+    hash = "1ald2m7qywhxbygv58dzpgaj54p38zn0aiqd1z7i95kf3bsnsjqa";
+    minimumOCamlVersion = "4.07";
+    meta.description = "String type based on [Bigarray], for use in I/O and C-bindings";
+    propagatedBuildInputs = [ ppx_jane ];
+  };
+
+  base_quickcheck = janePackage {
+    pname = "base_quickcheck";
+    hash = "1lmp1h68g0gqiw8m6gqcbrp0fn76nsrlsqrwxp20d7jhh0693f3j";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Randomized testing framework, designed for compatibility with Base";
+    propagatedBuildInputs = [ ppx_base ppx_fields_conv ppx_let ppx_sexp_value splittable_random ];
+  };
+
+  bignum = janePackage {
+    pname = "bignum";
+    hash = "009ygr64q810p9iq4mykzz4ci00i5mzgpmq35jiyaiqm27bjam21";
+    propagatedBuildInputs = [ core_kernel zarith zarith_stubs_js ];
+    meta.description = "Core-flavoured wrapper around zarith's arbitrary-precision rationals";
+  };
+
+  bin_prot = janePackage {
+    pname = "bin_prot";
+    hash = "1qyqbfp4zdc2jb87370cdgancisqffhf9x60zgh2m31kqik8annr";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "A binary protocol generator";
+    propagatedBuildInputs = [ ppx_compare ppx_custom_printf ppx_fields_conv ppx_optcomp ppx_variants_conv ];
+  };
+
+  bonsai = janePackage {
+    pname = "bonsai";
+    hash = "0k4grabwqc9sy4shzp77bgfvyajvvc0l8qq89ia7cvlwvly7gv6a";
+    meta.description = "A library for building dynamic webapps, using Js_of_ocaml";
+    buildInputs = [ ppx_pattern_bind ];
+    propagatedBuildInputs = [ incr_dom ];
+  };
+
+  cinaps = janePackage {
+    pname = "cinaps";
+    hash = "0ms1j2kh7i5slyw9v4w9kdz52dkwl5gqcnvn89prgimhk2vmichj";
+    minimumOCamlVersion = "4.07";
+    meta.description = "Trivial metaprogramming tool";
+    propagatedBuildInputs = [ re ];
+    checkInputs = [ ppx_jane ];
+  };
+
+  core = janePackage {
+    pname = "core";
+    hash = "1m9h73pk9590m8ngs1yf4xrw61maiqmi9glmlrl12qhi0wcja5f3";
+    meta.description = "System-independent part of Core";
+    buildInputs = [ jst-config ];
+    propagatedBuildInputs = [ core_kernel spawn timezone ];
+    doCheck = false; # we don't have quickcheck_deprecated
+  };
+
+  core_bench = janePackage {
+    pname = "core_bench";
+    hash = "04h6hzxk347pqyrrbgqrw9576sq4yf70fgq9xam3kajrqwdh3dhx";
+    meta.description = "Benchmarking library";
+    propagatedBuildInputs = [ textutils ];
+  };
+
+  core_extended = janePackage {
+    pname = "core_extended";
+    hash = "1pbm6xbc3h0fhrymyr1yb9b1jk7n88gfi3pylqz2cs8haxr2pb3a";
+    meta.description = "Extra components that are not as closely vetted or as stable as Core";
+    propagatedBuildInputs = [ core ];
+  };
+
+  core_kernel = janePackage {
+    pname = "core_kernel";
+    hash = "012sp02v35j41lzkvf073620602fgiswz2n224j06mk3bm8jmjms";
+    meta.description = "System-independent part of Core";
+    buildInputs = [ jst-config ];
+    propagatedBuildInputs = [ base_bigstring sexplib ];
+    doCheck = false; # we don't have quickcheck_deprecated
+  };
+
+  csvfields = janePackage {
+    pname = "csvfields";
+    hash = "09jmz6y6nwd96dcx6g8ydicxssi72v1ks276phbc9n19wwg9hkaz";
+    propagatedBuildInputs = [ core num ];
+    meta.description = "Runtime support for ppx_xml_conv and ppx_csv_conv";
+  };
+
+  delimited_parsing = janePackage {
+    pname = "delimited_parsing";
+    hash = "1dnr5wqacryx1kj38i9iifc3457pchr887xphzz2nhlbizq3d7qa";
+    propagatedBuildInputs = [ async core_extended ];
+    meta.description = "Parsing of character (e.g., comma) separated and fixed-width values";
+  };
+
+  ecaml = janePackage {
+    pname = "ecaml";
+    hash = "052qglpwzrx3c4gy3zr6dmsmfbi5gj4fs2jhx9yrsqb9hj8g36mj";
+    meta.description = "Library for writing Emacs plugin in OCaml";
+    propagatedBuildInputs = [ async expect_test_helpers_core ];
+  };
+
+  email_message = janePackage {
+    pname = "email_message";
+    hash = "0k8hjkq91ikl7wjxs04k523jbkhl6q4abj6v0lzlbjiybmrpp69n";
+    meta.description = "E-mail message parser";
+    propagatedBuildInputs = [ angstrom async base64 cryptokit magic-mime re2 ];
+  };
+
+  expect_test_helpers_async = janePackage {
+    pname = "expect_test_helpers_async";
+    hash = "175sjkx3b10d8vacp369rv53nxbiaxw1xhwy832g7ffk1by8l2m1";
+    meta.description = "Async helpers for writing expectation tests";
+    propagatedBuildInputs = [ async expect_test_helpers_core ];
+  };
+
+  expect_test_helpers_core = janePackage {
+    pname = "expect_test_helpers_core";
+    hash = "1drl15akp4jz4wf26dr2y2nblvnhz14xsnb3ai8dg45y711svs2i";
+    meta.description = "Helpers for writing expectation tests";
+    propagatedBuildInputs = [ core_kernel sexp_pretty ];
+  };
+
+  fieldslib = janePackage {
+    pname = "fieldslib";
+    hash = "0nxx35lrb4f6zfs5l80a7cg7azf19c6g31vn9qjjpaxf6lgkck2n";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Syntax extension to define first class values representing record fields, to get and set record fields, iterate and fold over all fields of a record and create new record values";
+    propagatedBuildInputs = [ base ];
+  };
+
+  higher_kinded = janePackage {
+    pname = "higher_kinded";
+    version = "0.14.1";
+    minimumOCamlVersion = "4.09";
+    hash = "05jvxgqsx3j2v8rqpd91ah76dgc1q2dz38kjklmx0vms4r4gvlsx";
+    meta.description = "A library with an encoding of higher kinded types in OCaml";
+    propagatedBuildInputs = [ base ppx_jane ];
+  };
+
+  incr_dom = janePackage {
+    pname = "incr_dom";
+    hash = "0mi98cwi4npdh5vvcz0pb4sbb9j9dydl52s51rswwc3kn8mipxfx";
+    meta.description = "A library for building dynamic webapps, using Js_of_ocaml";
+    buildInputs = [ js_of_ocaml-ppx ];
+    propagatedBuildInputs = [ async_js incr_map incr_select virtual_dom ];
+  };
+
+  incr_map = janePackage {
+    pname = "incr_map";
+    hash = "0s0s7qfydvvvnqby4v5by5jdnd5kxqsdr65mhm11w4fn125skryz";
+    meta.description = "Helpers for incremental operations on map like data structures";
+    buildInputs = [ ppx_pattern_bind ];
+    propagatedBuildInputs = [ incremental ];
+  };
+
+  incr_select = janePackage {
+    pname = "incr_select";
+    hash = "18ril6z57mw89gzc9zhz6p1phwm1xr6phppicvqpqmi0skvvnrg6";
+    meta.description = "Handling of large set of incremental outputs from a single input";
+    propagatedBuildInputs = [ incremental ];
+  };
+
+  incremental = janePackage {
+    pname = "incremental";
+    hash = "0nyaiy7r2spvn2ij9z5rghd5gbjk1y3ai4jn0i8q81arp7cf6zc7";
+    meta.description = "Library for incremental computations";
+    propagatedBuildInputs = [ core_kernel ];
+  };
+
+  jane-street-headers = janePackage {
+    pname = "jane-street-headers";
+    hash = "12n40mlgjnc09fxc0hp0npsxdlxja2w828683zpb32nrzqkg6z4c";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Jane Street C header files";
+  };
+
+  jst-config = janePackage {
+    pname = "jst-config";
+    hash = "0hzw0crgj0kjxsvr10wng7gqy948v98hnijh30lgq3v62jdsjra8";
+    meta.description = "Compile-time configuration for Jane Street libraries";
+    buildInputs = [ dune-configurator ppx_assert stdio ];
+  };
+
+  ocaml-compiler-libs = janePackage {
+    pname = "ocaml-compiler-libs";
+    version = "0.12.3";
+    minimumOCamlVersion = "4.04.1";
+    hash = "00nrar7h2pyflbdiq6wwwrb4k5jh9iff0jllihzm6ms8d5pspsg5";
+    meta.description = "OCaml compiler libraries repackaged";
+  };
+
+  parsexp = janePackage {
+    pname = "parsexp";
+    hash = "0rvbrf8ggh2imsbhqi15jzyyqbi3m5hzvy2iy2r4skx6m102mzpd";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "S-expression parsing library";
+    propagatedBuildInputs = [ base sexplib0 ];
+  };
+
+  patience_diff = janePackage {
+    pname = "patience_diff";
+    hash = "1np88s226ndhbwynpdqygrycahp8m1mx28f1xk54kvds8znnq2i0";
+    meta.description = "Diff library using Bram Cohen's patience diff algorithm";
+    propagatedBuildInputs = [ core_kernel ];
+  };
+
+  posixat = janePackage {
+    pname = "posixat";
+    hash = "0aana1lzq4514kna7hr301b5iv6gcg6zhgrx8s8vaad1q38yfp6c";
+    minimumOCamlVersion = "4.07";
+    propagatedBuildInputs = [ ppx_optcomp ppx_sexp_conv ];
+    meta.description = "Binding to the posix *at functions";
+  };
+
+  ppx_accessor = janePackage {
+    pname = "ppx_accessor";
+    version = "0.14.2";
+    minimumOCamlVersion = "4.09";
+    hash = "01nifsh7gap28cpvff6i569lqr1gmyhrklkisgri538cp4pf1wq1";
+    meta.description = "[@@deriving] plugin to generate accessors for use with the Accessor libraries";
+    propagatedBuildInputs = [ accessor ];
+  };
+
+  ppx_assert = janePackage {
+    pname = "ppx_assert";
+    hash = "03mzgm4smrczp5dg3mpr6zc2v6a54n0r01k4ww820yrr25hcf8ip";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Assert-like extension nodes that raise useful errors on failure";
+    propagatedBuildInputs = [ ppx_cold ppx_compare ppx_here ppx_sexp_conv ];
+  };
+
+  ppx_base = janePackage {
+    pname = "ppx_base";
+    hash = "1wv3q0qyghm0c5izq03y97lv3czqk116059mg62wx6valn22a000";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Base set of ppx rewriters";
+    propagatedBuildInputs = [ ppx_cold ppx_enumerate ppx_hash ppx_js_style ];
+  };
+
+  ppx_bench = janePackage {
+    pname = "ppx_bench";
+    version = "0.14.1";
+    hash = "12r7jgqgpb4i4cry3rgyl2nmxcscs5w7mmk06diz7i49r27p96im";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Syntax extension for writing in-line benchmarks in ocaml code";
+    propagatedBuildInputs = [ ppx_inline_test ];
+  };
+
+  ppx_bin_prot = janePackage {
+    pname = "ppx_bin_prot";
+    hash = "1qryjxhyz3kn5jz5wm62j59lhjhd1mp7nbsj0np9qnbpapnnr1zg";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Generation of bin_prot readers and writers from types";
+    propagatedBuildInputs = [ bin_prot ppx_here ];
+    doCheck = false; # circular dependency with ppx_jane
+  };
+
+  ppx_cold = janePackage {
+    pname = "ppx_cold";
+    hash = "0ciqs6f9ab73gq4krj14xzzba4ydcxph214m87i1s0xp25hwxr8v";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Expands [@cold] into [@inline never][@specialise never][@local never]";
+    propagatedBuildInputs = [ ppxlib ];
+  };
+
+  ppx_compare = janePackage {
+    pname = "ppx_compare";
+    hash = "11pj76dimx2f7l8m85myzp6yzx9xcg0bqi97s7ayssvkckm57390";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Generation of comparison functions from types";
+    propagatedBuildInputs = [ ppxlib base ];
+    doCheck = false; # test build rule broken
+  };
+
+  ppx_custom_printf = janePackage {
+    pname = "ppx_custom_printf";
+    hash = "0p9hgx0krxqw8hlzfv2bg2m3zi5nxsnzhyp0fj5936rapad02hc5";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Printf-style format-strings for user-defined string conversion";
+    propagatedBuildInputs = [ ppx_sexp_conv ];
+  };
+
+  ppx_enumerate = janePackage {
+    pname = "ppx_enumerate";
+    hash = "1sriid4vh10p80wwvn46v1g16m646qw5r5xzwlymyz5gbvq2zf40";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Generate a list containing all values of a finite type";
+    propagatedBuildInputs = [ ppxlib ];
+  };
+
+  ppx_expect = janePackage {
+    pname = "ppx_expect";
+    hash = "05v6jzn1nbmwk3vzxxnb3380wzg2nb28jpb3v5m5c4ikn0jrhcwn";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Cram like framework for OCaml";
+    propagatedBuildInputs = [ ppx_here ppx_inline_test re ];
+    doCheck = false; # circular dependency with ppx_jane
+  };
+
+  ppx_fields_conv = janePackage {
+    pname = "ppx_fields_conv";
+    version = "0.14.2";
+    hash = "1zwirwqry24b48bg7d4yc845hvcirxyymzbw95aaxdcck84d30n8";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Generation of accessor and iteration functions for ocaml records";
+    propagatedBuildInputs = [ fieldslib ppxlib ];
+  };
+
+  ppx_fixed_literal = janePackage {
+    pname = "ppx_fixed_literal";
+    hash = "0s7rb4dhz4ibhh42a9sfxjj3zbwfyfmaihr92hpdv5j9xqn3n8mi";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Simpler notation for fixed point literals";
+    propagatedBuildInputs = [ ppxlib ];
+  };
+
+  ppx_hash = janePackage {
+    pname = "ppx_hash";
+    hash = "1zf03xdrg4jig7pdcrdpbabyjkdpifb31z2z1bf9wfdawybdhwkq";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "A ppx rewriter that generates hash functions from type expressions and definitions";
+    propagatedBuildInputs = [ ppx_compare ppx_sexp_conv ];
+  };
+
+  ppx_here = janePackage {
+    pname = "ppx_here";
+    hash = "09zcyigaalqccs9s0h7n0535clgfmqb9s4p1jbgcqji9zj8w426s";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Expands [%here] into its location";
+    propagatedBuildInputs = [ ppxlib ];
+    doCheck = false; # test build rules broken
+  };
+
+  ppx_inline_test = janePackage {
+    pname = "ppx_inline_test";
+    version = "0.14.1";
+    hash = "1ajdna1m9l1l3nfigyy33zkfa3yarfr6s086jdw2pcfwlq1fhhl4";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Syntax extension for writing in-line tests in ocaml code";
+    propagatedBuildInputs = [ ppxlib time_now ];
+    doCheck = false; # test build rules broken
+  };
+
+  ppx_jane = janePackage {
+    pname = "ppx_jane";
+    hash = "1kk238fvrcylymwm7xwc7llbyspmx1y662ypq00vy70g112rir7j";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Standard Jane Street ppx rewriters";
+    propagatedBuildInputs = [ base_quickcheck ppx_bin_prot ppx_expect ppx_fixed_literal ppx_module_timer ppx_optcomp ppx_optional ppx_pipebang ppx_stable ppx_string ppx_typerep_conv ppx_variants_conv ];
+  };
+
+  ppx_js_style = janePackage {
+    pname = "ppx_js_style";
+    hash = "1ahk4mv63s9cw8ji62598ggw6b3lqpaljqa2ya7w91lify3lb76q";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Code style checker for Jane Street Packages";
+    propagatedBuildInputs = [ octavius ppxlib ];
+  };
+
+  ppx_let = janePackage {
+    pname = "ppx_let";
+    hash = "1jq3g88xv9g6y9im67hiig3cfn5anwwnq09mp7yn7a86ha5r9w3i";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Monadic let-bindings";
+    propagatedBuildInputs = [ ppxlib ];
+  };
+
+  ppx_module_timer = janePackage {
+    pname = "ppx_module_timer";
+    hash = "163q1rpblwv82fxwyf0p4j9zpsj0jzvkfmzb03r0l49gqhn89mp6";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Ppx rewriter that records top-level module startup times";
+    propagatedBuildInputs = [ time_now ];
+  };
+
+  ppx_optcomp = janePackage {
+    pname = "ppx_optcomp";
+    hash = "1wav3zgh4244x1ll562g735cwwrzyk5jj72niq9jgz9qjlpsprlk";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Optional compilation for OCaml";
+    propagatedBuildInputs = [ ppxlib ];
+  };
+
+  ppx_optional = janePackage {
+    pname = "ppx_optional";
+    hash = "1d7rsdqiccxp2w4ykb9klarddm2qrrym3brbnhzx2hm78iyj3hzv";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Pattern matching on flat options";
+    propagatedBuildInputs = [ ppxlib ];
+  };
+
+  ppx_pattern_bind = janePackage {
+    pname = "ppx_pattern_bind";
+    hash = "0yxkwnn30nxgrspi191zma95bgrh134aqh2bnpj3wg0245ki55zv";
+    minimumOCamlVersion = "4.07";
+    meta.description = "A ppx for writing fast incremental bind nodes in a pattern match";
+    propagatedBuildInputs = [ ppx_let ];
+  };
+
+  ppx_pipebang = janePackage {
+    pname = "ppx_pipebang";
+    hash = "0450b3p2rpnnn5yyvbkcd3c33jr2z0dp8blwxddaj2lv7nzl5dzf";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "A ppx rewriter that inlines reverse application operators `|>` and `|!`";
+    propagatedBuildInputs = [ ppxlib ];
+  };
+
+  ppx_sexp_conv = janePackage {
+    pname = "ppx_sexp_conv";
+    version = "0.14.1";
+    minimumOCamlVersion = "4.04.2";
+    hash = "04bx5id99clrgvkg122nx03zig1m7igg75piphhyx04w33shgkz2";
+    meta.description = "[@@deriving] plugin to generate S-expression conversion functions";
+    propagatedBuildInputs = [ ppxlib sexplib0 base ];
+  };
+
+  ppx_sexp_message = janePackage {
+    pname = "ppx_sexp_message";
+    hash = "17xnq345xwfkl9ydn05ljsg37m2glh3alnspayl3fgbhmcjmav3i";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "A ppx rewriter for easy construction of s-expressions";
+    propagatedBuildInputs = [ ppx_here ppx_sexp_conv ];
+  };
+
+  ppx_sexp_value = janePackage {
+    pname = "ppx_sexp_value";
+    hash = "1d1c92pyypqkd9473d59j0sfppxvcxggbc62w8bkqnbxrdmvirn9";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "A ppx rewriter that simplifies building s-expressions from ocaml values";
+    propagatedBuildInputs = [ ppx_here ppx_sexp_conv ];
+  };
+
+  ppx_stable = janePackage {
+    pname = "ppx_stable";
+    version = "0.14.1";
+    hash = "1sp1kn23qr0pfypa4ilvhqq5y11y13xpfygfl582ra9kik5xqfa1";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Stable types conversions generator";
+    propagatedBuildInputs = [ ppxlib ];
+  };
+
+  ppx_string = janePackage {
+    pname = "ppx_string";
+    version = "0.14.1";
+    minimumOCamlVersion = "4.04.2";
+    hash = "0a8khmg0y32kyn3q6idwgh0d6d1s6ms1w75gj3dzng0v7y4h6jx4";
+    meta.description = "Ppx extension for string interpolation";
+    propagatedBuildInputs = [ ppx_base ppxlib stdio ];
+  };
+
+  ppx_typerep_conv = janePackage {
+    pname = "ppx_typerep_conv";
+    version = "0.14.1";
+    minimumOCamlVersion = "4.04.2";
+    hash = "1r0z7qlcpaicas5hkymy2q0gi207814wlay4hys7pl5asd59wcdh";
+    meta.description = "Generation of runtime types from type declarations";
+    propagatedBuildInputs = [ ppxlib typerep ];
+  };
+
+  ppx_variants_conv = janePackage {
+    pname = "ppx_variants_conv";
+    version = "0.14.1";
+    minimumOCamlVersion = "4.04.2";
+    hash = "0q6a43zrwqzdz7aja0k44a2llyjjj5xzi2kigwhsnww3g0r5ig84";
+    meta.description = "Generation of accessor and iteration functions for ocaml variant types";
+    propagatedBuildInputs = [ variantslib ppxlib ];
+  };
+
+  protocol_version_header = janePackage {
+    pname = "protocol_version_header";
+    hash = "0lfblv2yqw01bl074ga6vxii0p9mqwlqw1g9b9z7pfdva9wqilrd";
+    meta.description = "Protocol versioning";
+    propagatedBuildInputs = [ core_kernel ];
+  };
+
+  re2 = janePackage {
+    pname = "re2";
+    hash = "1j7dizls6lkz3i9dgf8nq2fm382mfbrmz72ci066zl3hkgdq8xwc";
+    meta.description = "OCaml bindings for RE2, Google's regular expression library";
+    propagatedBuildInputs = [ core_kernel ];
+    prePatch = ''
+      substituteInPlace src/re2_c/dune --replace 'CXX=g++' 'CXX=c++'
+      substituteInPlace src/dune --replace '(cxx_flags (:standard \ -pedantic) (-I re2_c/libre2))' '(cxx_flags (:standard \ -pedantic) (-I re2_c/libre2) (-x c++))'
+    '';
+  };
+
+  re2_stable = janePackage {
+    pname = "re2_stable";
+    hash = "0kjc0ff6b3509s3b9n4q8ilb06d5fngdh3z58cm95vg7zkcas9w3";
+    meta.description = "Re2_stable adds an incomplete but stable serialization of Re2";
+    propagatedBuildInputs = [ core re2 ];
+  };
+
+  resource_cache = janePackage {
+    pname = "resource_cache";
+    hash = "197z9s535q74h00365ydhggg7hyzpyqvislgwwyi69sl1vy6dr0j";
+    meta.description = "General resource cache";
+    propagatedBuildInputs = [ async_rpc_kernel ];
+  };
+
+  sexp = janePackage {
+    pname = "sexp";
+    hash = "1x08pyrkd78233kgj70wxlc79w6jjhfrjdamm2xr7jzdc8ycfigf";
+    propagatedBuildInputs = [
+      async
+      core
+      csvfields
+      re2
+      sexp_diff_kernel
+      sexp_macro
+      sexp_pretty
+      sexp_select
+    ];
+    patches = ./sexp.patch;
+    meta.description = "S-expression swiss knife";
+  };
+
+  sexp_diff_kernel = janePackage {
+    pname = "sexp_diff_kernel";
+    hash = "1pljcs019hs2ffhhb7rjh3xz7cbrk8vsv967jzmip3rv9w21c9kh";
+    propagatedBuildInputs = [ core_kernel ];
+    meta.description = "Code for computing the diff of two sexps";
+  };
+
+  sexp_macro = janePackage {
+    pname = "sexp_macro";
+    hash = "1ih1g7vpb1j8vhzm9a5mjrrzgqrhjqdhf6vjrg8kxfqg5i5b8nyx";
+    propagatedBuildInputs = [ async sexplib ];
+    meta.description = "Sexp macros";
+  };
+
+  sexp_pretty = janePackage {
+    pname = "sexp_pretty";
+    hash = "0dax0wm511zgvr7p6kcd5gygi58118by7hsv7hymy8ldfcky5cwd";
+    minimumOCamlVersion = "4.07";
+    meta.description = "S-expression pretty-printer";
+    propagatedBuildInputs = [ ppx_base re sexplib ];
+  };
+
+  sexp_select = janePackage {
+    pname = "sexp_select";
+    hash = "1lchhfqw4afw38fnarwylqc2qp7k6xwx3j7m9gy8ygjgd0vgd729";
+    minimumOCamlVersion = "4.07";
+    propagatedBuildInputs = [ base ppx_jane ];
+    meta.description = "A library to use CSS-style selectors to traverse sexp trees";
+  };
+
+  sexplib0 = janePackage {
+    pname = "sexplib0";
+    hash = "06sb3zqhb3dwqsmn15d769hfgqwqhxnm52iqim9l767gvlwpmibb";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Library containing the definition of S-expressions and some base converters";
+  };
+
+  sexplib = janePackage {
+    pname = "sexplib";
+    hash = "03c3j1ihx4pjbb0x3arrcif3wvp3iva2ivnywhiak4mbbslgsnzr";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Library for serializing OCaml values to and from S-expressions";
+    propagatedBuildInputs = [ num parsexp ];
+  };
+
+  shell = janePackage {
+    pname = "shell";
+    hash = "1c4zmpf6s1lk7nficip32c324if6zhm62h9h03d84zgvhvymi0r1";
+    meta.description = "Yet another implementation of fork&exec and related functionality";
+    buildInputs = [ jst-config ];
+    propagatedBuildInputs = [ textutils ];
+    checkInputs = [ ounit ];
+  };
+
+  shexp = janePackage {
+    pname = "shexp";
+    hash = "1h6hsnbg6bk32f8iv6kd6im4mv2pjsjpd1mjsfx80p1n9273xack";
+    minimumOCamlVersion = "4.07";
+    propagatedBuildInputs = [ posixat spawn ];
+    meta.description = "Process library and s-expression based shell";
+  };
+
+  spawn = janePackage {
+    pname = "spawn";
+    version = "0.13.0";
+    minimumOCamlVersion = "4.02.3";
+    hash = "1w003k1kw1lmyiqlk58gkxx8rac7dchiqlz6ah7aj7bh49b36ppf";
+    meta.description = "Spawning sub-processes";
+    buildInputs = [ ppx_expect ];
+    doCheck = false; # tests are broken on NixOS (absolute paths)
+  };
+
+  splay_tree = janePackage {
+    pname = "splay_tree";
+    hash = "1xbzzbqb054hl1v1zcgfwdgzqihni3a0dmvrric9xggmgn4ycmqq";
+    meta.description = "A splay tree implementation";
+    propagatedBuildInputs = [ core_kernel ];
+  };
+
+  splittable_random = janePackage {
+    pname = "splittable_random";
+    hash = "0ax988b1wc7km8khg4s6iphbz16y1rssh7baigxfyw3ldp0agk14";
+    meta.description = "PRNG that can be split into independent streams";
+    propagatedBuildInputs = [ base ppx_assert ppx_bench ppx_sexp_message ];
+  };
+
+  stdio = janePackage {
+    pname = "stdio";
+    hash = "0vv6d8absy4hvjd1babv7avpsdlvjpnd5hq691h39d0h3pvs6l98";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Standard IO library for OCaml";
+    propagatedBuildInputs = [ base ];
+  };
+
+  textutils = janePackage {
+    pname = "textutils";
+    hash = "1ggd0530lc5dkc419y3xw1wb52b4b5j3z78991gn5yxf2s50a8d4";
+    meta.description = "Text output utilities";
+    propagatedBuildInputs = [ core ];
+  };
+
+  time_now = janePackage {
+    pname = "time_now";
+    hash = "1lyq8zdz93hvpi4hpxh88kds30k5ljil8js9clcqyxrldp5n9mw0";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Reports the current time";
+    buildInputs = [ jst-config ppx_optcomp ];
+    propagatedBuildInputs = [ jane-street-headers base ppx_base ];
+  };
+
+  timezone = janePackage {
+    pname = "timezone";
+    hash = "0zf075k94nk2wxnzpxia7pnm655damwp1b58xf2s9disia1ydxg7";
+    meta.description = "Time-zone handling";
+    propagatedBuildInputs = [ core_kernel ];
+  };
+
+  topological_sort = janePackage {
+    pname = "topological_sort";
+    hash = "17iz7956zln31p0xnm3jlhj863zi84bcx41jylzf7gk23qsm95m8";
+    meta.description = "Topological sort algorithm";
+    propagatedBuildInputs = [ ppx_jane stdio ];
+  };
+
+  typerep = janePackage {
+    pname = "typerep";
+    hash = "0wc7h853ka3s3lxxgm61ypidl0lzgc9abdkil6f72anl0c417y90";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Typerep is a library for runtime types";
+    propagatedBuildInputs = [ base ];
+  };
+
+  variantslib = janePackage {
+    pname = "variantslib";
+    hash = "0vy0hpiaawmydh08nqlwjx52pasp74383yi0pshwbdxin99n9mxd";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Part of Jane Street's Core library";
+    propagatedBuildInputs = [ base ];
+  };
+
+  vcaml = janePackage {
+    pname = "vcaml";
+    hash = "0ykwrn8bvwx26ad4wb36jw9xnlwsdpnnx88396laxvcfimrp13qs";
+    meta.description = "OCaml bindings for the Neovim API";
+    propagatedBuildInputs = [ angstrom-async async_extra faraday ];
+  };
+
+  virtual_dom = janePackage {
+    pname = "virtual_dom";
+    hash = "0vcydxx0jhbd5hbriahgp947mc7n3xymyrsfny1c4adk6aaq3c5w";
+    meta.description = "OCaml bindings for the virtual-dom library";
+    buildInputs = [ js_of_ocaml-ppx ];
+    propagatedBuildInputs = [ core_kernel js_of_ocaml lambdasoup tyxml ];
+  };
+
+  zarith_stubs_js = janePackage {
+    pname = "zarith_stubs_js";
+    hash = "16p4bn5spkrx31fr4np945v9mwdq55706v3wl19s5fy6x83gvb86";
+    minimumOCamlVersion = "4.04.2";
+    meta.description = "Javascripts stubs for the Zarith library";
+    doCheck = false; # requires workspace with zarith
+  };
+
+  zstandard = janePackage {
+    pname = "zstandard";
+    hash = "1vf76v5m9wsh5f77w9z4i8sxm05wr5digyi95x4wvzdi7q3qg6m8";
+    meta.description = "OCaml bindings to Zstandard";
+    buildInputs = [ ppx_jane ];
+    propagatedBuildInputs = [ core ctypes zstd ];
+  };
+
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/janePackage_0_13.nix b/pkgs/development/ocaml-modules/janestreet/janePackage_0_14.nix
index b92bcead95c..9675c8d019a 100644
--- a/pkgs/development/ocaml-modules/janestreet/janePackage_0_13.nix
+++ b/pkgs/development/ocaml-modules/janestreet/janePackage_0_14.nix
@@ -1,11 +1,17 @@
-{ lib, fetchFromGitHub, buildDunePackage, defaultVersion ? "0.13.0" }:
+{ lib, fetchFromGitHub, buildDunePackage, defaultVersion ? "0.14.0" }:
 
-{ pname, version ? defaultVersion, hash, ...}@args:
+{ pname
+, version ? defaultVersion
+, hash
+, minimumOCamlVersion ? "4.08"
+, doCheck ? true
+, ...}@args:
 
 buildDunePackage (args // {
+  useDune2 = true;
   inherit version;
 
-  minimumOCamlVersion = "4.08";
+  inherit minimumOCamlVersion;
 
   src = fetchFromGitHub {
     owner = "janestreet";
@@ -14,6 +20,8 @@ buildDunePackage (args // {
     sha256 = hash;
   };
 
+  inherit doCheck;
+
   meta.license = lib.licenses.mit;
   meta.homepage = "https://github.com/janestreet/${pname}";
 })
diff --git a/pkgs/development/ocaml-modules/jingoo/default.nix b/pkgs/development/ocaml-modules/jingoo/default.nix
index d7bcd201c54..ec25e8e7f41 100644
--- a/pkgs/development/ocaml-modules/jingoo/default.nix
+++ b/pkgs/development/ocaml-modules/jingoo/default.nix
@@ -3,7 +3,9 @@
 
 buildDunePackage rec {
   pname = "jingoo";
-  version = "1.4.1";
+  version = "1.4.2";
+
+  useDune2 = true;
 
   minimumOCamlVersion = "4.04";
 
@@ -11,7 +13,7 @@ buildDunePackage rec {
     owner = "tategakibunko";
     repo = "jingoo";
     rev = "v${version}";
-    sha256 = "16wzggwi3ri13v93mjk8w7zxwp65qmi1rnng2kpk9vffx5g1kv6f";
+    sha256 = "0q947aik4i4z5wjllhwlkxh60qczwgra21yyrrzwhi9y5bnf8346";
   };
 
   buildInputs = [ menhir ];
diff --git a/pkgs/development/ocaml-modules/lambda-term/default.nix b/pkgs/development/ocaml-modules/lambda-term/default.nix
index f02ff4d2996..0d5babad042 100644
--- a/pkgs/development/ocaml-modules/lambda-term/default.nix
+++ b/pkgs/development/ocaml-modules/lambda-term/default.nix
@@ -1,16 +1,19 @@
-{ stdenv, fetchurl, libev, buildDunePackage, zed, lwt_log, lwt_react }:
+{ lib, fetchFromGitHub, buildDunePackage, zed, lwt_log, lwt_react, mew_vi }:
 
 buildDunePackage rec {
   pname = "lambda-term";
-  version = "2.0.3";
+  version = "3.1.0";
 
-  src = fetchurl {
-    url = "https://github.com/ocaml-community/lambda-term/releases/download/${version}/lambda-term-${version}.tbz";
-    sha256 = "1n1b3ffj41a1lm2315hh870yj9h8gg8g9jcxha6dr3xx8r84np3v";
+  useDune2 = true;
+
+  src = fetchFromGitHub {
+    owner = "ocaml-community";
+    repo = pname;
+    rev = version;
+    sha256 = "1k0ykiz0vhpyyj9fkss29ajas4fh1xh449j702xkvayqipzj1mkg";
   };
 
-  buildInputs = [ libev ];
-  propagatedBuildInputs = [ zed lwt_log lwt_react ];
+  propagatedBuildInputs = [ zed lwt_log lwt_react mew_vi ];
 
   meta = { description = "Terminal manipulation library for OCaml";
     longDescription = ''
@@ -28,10 +31,10 @@ buildDunePackage rec {
     console applications.
     '';
 
-    homepage = "https://github.com/diml/lambda-term";
-    license = stdenv.lib.licenses.bsd3;
+    inherit (src.meta) homepage;
+    license = lib.licenses.bsd3;
     maintainers = [
-      stdenv.lib.maintainers.gal_bolle
+      lib.maintainers.gal_bolle
     ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/lwt-dllist/default.nix b/pkgs/development/ocaml-modules/lwt-dllist/default.nix
new file mode 100644
index 00000000000..59e13330e58
--- /dev/null
+++ b/pkgs/development/ocaml-modules/lwt-dllist/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildDunePackage, fetchurl, lwt }:
+
+buildDunePackage rec {
+  pname = "lwt-dllist";
+  version = "1.0.0";
+
+  minimumOCamlVersion = "4.03";
+
+  src = fetchurl {
+    url = "https://github.com/mirage/${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
+    sha256 = "0g111f8fq9k1hwccpkhylkp83f73mlz4xnxxr3rf9xpi2f8fh7j9";
+  };
+
+  propagatedBuildInputs = [
+    lwt
+  ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "Mutable doubly-linked list with Lwt iterators";
+    homepage = "https://github.com/mirage/lwt-dllist";
+    license = licenses.mit;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/mew/default.nix b/pkgs/development/ocaml-modules/mew/default.nix
new file mode 100644
index 00000000000..819bb020050
--- /dev/null
+++ b/pkgs/development/ocaml-modules/mew/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildDunePackage, fetchFromGitHub
+, result, trie
+}:
+
+buildDunePackage rec {
+  pname = "mew";
+  version = "0.1.0";
+
+  useDune2 = true;
+
+  src = fetchFromGitHub {
+    owner = "kandu";
+    repo = pname;
+    rev = version;
+    sha256 = "0417xsghj92v3xa5q4dk4nzf2r4mylrx2fd18i7cg3nzja65nia2";
+  };
+
+  propagatedBuildInputs = [ result trie ];
+
+  meta = {
+    inherit (src.meta) homepage;
+    license = lib.licenses.mit;
+    description = "Modal Editing Witch";
+    maintainers = [ lib.maintainers.vbgl ];
+  };
+
+}
diff --git a/pkgs/development/ocaml-modules/mew_vi/default.nix b/pkgs/development/ocaml-modules/mew_vi/default.nix
new file mode 100644
index 00000000000..39228585fe3
--- /dev/null
+++ b/pkgs/development/ocaml-modules/mew_vi/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildDunePackage, fetchFromGitHub
+, mew, react
+}:
+
+buildDunePackage rec {
+  pname = "mew_vi";
+  version = "0.5.0";
+
+  useDune2 = true;
+
+  src = fetchFromGitHub {
+    owner = "kandu";
+    repo = pname;
+    rev = version;
+    sha256 = "0lihbf822k5zasl60w5mhwmdkljlq49c9saayrws7g4qc1j353r8";
+  };
+
+  propagatedBuildInputs = [ mew react ];
+
+  meta = {
+    inherit (src.meta) homepage;
+    license = lib.licenses.mit;
+    description = "Modal Editing Witch, VI interpreter";
+    maintainers = [ lib.maintainers.vbgl ];
+  };
+
+}
diff --git a/pkgs/development/ocaml-modules/mirage-block-ramdisk/default.nix b/pkgs/development/ocaml-modules/mirage-block-ramdisk/default.nix
new file mode 100644
index 00000000000..1dcc769abb6
--- /dev/null
+++ b/pkgs/development/ocaml-modules/mirage-block-ramdisk/default.nix
@@ -0,0 +1,29 @@
+{ lib, fetchurl, buildDunePackage, io-page, io-page-unix, mirage-block, alcotest
+, mirage-block-combinators }:
+
+buildDunePackage rec {
+  pname = "mirage-block-ramdisk";
+  version = "0.5";
+
+  useDune2 = true;
+
+  src = fetchurl {
+    url =
+      "https://github.com/mirage/mirage-block-ramdisk/releases/download/${version}/mirage-block-ramdisk-${version}.tbz";
+    sha256 = "cc0e814fd54efe7a5b7a8c5eb1c04e2dece751b7d8dee2d95908a0768896e8af";
+  };
+
+  minimumOCamlVersion = "4.06";
+
+  propagatedBuildInputs = [ io-page mirage-block ];
+
+  doCheck = true;
+  checkInputs = [ alcotest io-page-unix mirage-block-combinators ];
+
+  meta = with lib; {
+    description = "In-memory BLOCK device for MirageOS";
+    homepage = "https://github.com/mirage/mirage-block-ramdisk";
+    license = licenses.isc;
+    maintainers = with maintainers; [ ehmry ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/mirage-block-unix/default.nix b/pkgs/development/ocaml-modules/mirage-block-unix/default.nix
new file mode 100644
index 00000000000..a24c4c9e821
--- /dev/null
+++ b/pkgs/development/ocaml-modules/mirage-block-unix/default.nix
@@ -0,0 +1,29 @@
+{ lib, fetchurl, buildDunePackage, cstruct-lwt, diet, io-page-unix, logs
+, mirage-block, ounit, rresult, uri }:
+
+buildDunePackage rec {
+  pname = "mirage-block-unix";
+  version = "2.12.1";
+
+  useDune2 = true;
+
+  src = fetchurl {
+    url =
+      "https://github.com/mirage/mirage-block-unix/releases/download/v${version}/mirage-block-unix-v${version}.tbz";
+    sha256 = "4fc0ccea3c06c654e149c0f0e1c2a6f19be4e3fe1afd293c6a0dba1b56b3b8c4";
+  };
+
+  minimumOCamlVersion = "4.06";
+
+  propagatedBuildInputs = [ cstruct-lwt logs mirage-block rresult uri ];
+
+  doCheck = true;
+  checkInputs = [ diet io-page-unix ounit ];
+
+  meta = with lib; {
+    description = "MirageOS disk block driver for Unix";
+    homepage = "https://github.com/mirage/mirage-block-unix";
+    license = licenses.isc;
+    maintainers = with maintainers; [ ehmry ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/mirage-block/combinators.nix b/pkgs/development/ocaml-modules/mirage-block/combinators.nix
new file mode 100644
index 00000000000..9d0cdd435cb
--- /dev/null
+++ b/pkgs/development/ocaml-modules/mirage-block/combinators.nix
@@ -0,0 +1,17 @@
+{ buildDunePackage, mirage-block, io-page, logs }:
+
+buildDunePackage rec {
+  pname = "mirage-block-combinators";
+  inherit (mirage-block) version src useDune2;
+
+  propagatedBuildInputs = [ mirage-block io-page logs ];
+
+  meta = mirage-block.meta // {
+    description = "Block signatures and implementations for MirageOS using Lwt";
+    longDescription = ''
+      This repo contains generic operations over Mirage `BLOCK` devices.
+      This package is specialised to the Lwt concurrency library for IO.
+    '';
+  };
+
+}
diff --git a/pkgs/development/ocaml-modules/mirage-console/default.nix b/pkgs/development/ocaml-modules/mirage-console/default.nix
index ccde5c5f2ae..986084c3f54 100644
--- a/pkgs/development/ocaml-modules/mirage-console/default.nix
+++ b/pkgs/development/ocaml-modules/mirage-console/default.nix
@@ -4,13 +4,15 @@
 
 buildDunePackage rec {
   pname = "mirage-console";
-  version = "3.0.2";
+  version = "4.0.0";
+
+  minimumOCamlVersion = "4.08";
 
   useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/mirage/mirage-console/releases/download/v${version}/mirage-console-v${version}.tbz";
-    sha256 = "1fygk7pvlmwx6vd0h4cv9935xxhi64k2dgym41wf6qfkxgpp31lm";
+    sha256 = "11nwfd4kmmdzkrkhbakdi3cxhk8vi98l17960rgcf85c602gw6vp";
   };
 
   propagatedBuildInputs = [ lwt mirage-device mirage-flow ];
diff --git a/pkgs/development/ocaml-modules/mirage-console/unix.nix b/pkgs/development/ocaml-modules/mirage-console/unix.nix
new file mode 100644
index 00000000000..dea613511a2
--- /dev/null
+++ b/pkgs/development/ocaml-modules/mirage-console/unix.nix
@@ -0,0 +1,17 @@
+{ buildDunePackage, mirage-console, lwt, cstruct, cstruct-lwt }:
+
+buildDunePackage {
+  pname = "mirage-console-unix";
+
+  inherit (mirage-console) version src useDune2 minimumOCamlVersion;
+
+  propagatedBuildInputs = [
+    mirage-console
+    cstruct
+    cstruct-lwt
+  ];
+
+  meta = mirage-console.meta // {
+    description = "Implementation of Mirage consoles for Unix";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/mirage-crypto/default.nix b/pkgs/development/ocaml-modules/mirage-crypto/default.nix
index f963e8e15d0..c2ede31dd3f 100644
--- a/pkgs/development/ocaml-modules/mirage-crypto/default.nix
+++ b/pkgs/development/ocaml-modules/mirage-crypto/default.nix
@@ -4,11 +4,11 @@ buildDunePackage rec {
   minimumOCamlVersion = "4.08";
 
   pname = "mirage-crypto";
-  version = "0.8.7";
+  version = "0.8.8";
 
   src = fetchurl {
     url = "https://github.com/mirage/mirage-crypto/releases/download/v${version}/mirage-crypto-v${version}.tbz";
-    sha256 = "1gx86h6kk39zq3kvl854jc2ap2755paalp1f7iv8r9js2xnbxfxy";
+    sha256 = "19czylfyakckfzzcbqgv9ygl243wix7ak8zkbdcb9hcl2k2shswb";
   };
 
   useDune2 = true;
diff --git a/pkgs/development/ocaml-modules/mirage-crypto/rng-async.nix b/pkgs/development/ocaml-modules/mirage-crypto/rng-async.nix
new file mode 100644
index 00000000000..e8c8dd06eab
--- /dev/null
+++ b/pkgs/development/ocaml-modules/mirage-crypto/rng-async.nix
@@ -0,0 +1,25 @@
+{ lib, buildDunePackage
+, mirage-crypto, mirage-crypto-rng
+, dune-configurator, async, logs
+}:
+
+buildDunePackage {
+  pname = "mirage-crypto-rng-async";
+
+  inherit (mirage-crypto) useDune2 version minimumOCamlVersion src;
+
+  nativeBuildInputs = [
+    dune-configurator
+  ];
+
+  propagatedBuildInputs = [
+    async
+    logs
+    mirage-crypto
+    mirage-crypto-rng
+  ];
+
+  meta = mirage-crypto.meta // {
+    description = "Feed the entropy source in an Async-friendly way";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/mirage-crypto/rng-mirage.nix b/pkgs/development/ocaml-modules/mirage-crypto/rng-mirage.nix
index 473704d7ea2..5152d3c8ecd 100644
--- a/pkgs/development/ocaml-modules/mirage-crypto/rng-mirage.nix
+++ b/pkgs/development/ocaml-modules/mirage-crypto/rng-mirage.nix
@@ -1,5 +1,7 @@
 { buildDunePackage, mirage-crypto-rng, duration, cstruct, mirage-runtime
-, mirage-time, mirage-clock, mirage-unix, mirage-time-unix, mirage-clock-unix }:
+, mirage-time, mirage-clock, mirage-unix, mirage-time-unix, mirage-clock-unix
+, logs, lwt
+}:
 
 buildDunePackage {
   pname = "mirage-crypto-rng-mirage";
@@ -10,7 +12,7 @@ buildDunePackage {
   checkInputs = [ mirage-unix mirage-clock-unix mirage-time-unix ];
 
   propagatedBuildInputs = [ duration cstruct mirage-crypto-rng mirage-runtime
-                            mirage-time mirage-clock ];
+                            mirage-time mirage-clock logs lwt ];
 
   meta = mirage-crypto-rng.meta // {
     description = "Entropy collection for a cryptographically secure PRNG";
diff --git a/pkgs/development/ocaml-modules/mirage-nat/default.nix b/pkgs/development/ocaml-modules/mirage-nat/default.nix
new file mode 100644
index 00000000000..5edf8a347ad
--- /dev/null
+++ b/pkgs/development/ocaml-modules/mirage-nat/default.nix
@@ -0,0 +1,50 @@
+{ lib, buildDunePackage, fetchurl
+, ipaddr, cstruct, lwt, rresult, logs, lru
+, tcpip, ethernet, stdlib-shims
+, alcotest, mirage-clock-unix
+, ppx_deriving
+}:
+
+buildDunePackage rec {
+  pname = "mirage-nat";
+  version = "2.2.3";
+
+  minimumOCamlVersion = "4.06";
+
+  # due to cstruct
+  useDune2 = true;
+
+  src = fetchurl {
+    url = "https://github.com/mirage/${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
+    sha256 = "0cy95j184hi8fm1h6z6x1brjfrmbq3zjy2mqz99m8ys9vwkb63ma";
+  };
+
+  nativeBuildInputs = [
+    ppx_deriving
+  ];
+
+  propagatedBuildInputs = [
+    ipaddr
+    cstruct
+    lwt
+    rresult
+    logs
+    lru
+    tcpip
+    ethernet
+    stdlib-shims
+  ];
+
+  doCheck = true;
+  checkInputs = [
+    alcotest
+    mirage-clock-unix
+  ];
+
+  meta = with lib; {
+    description = "Mirage-nat is a library for network address translation to be used with MirageOS";
+    homepage = "https://github.com/mirage/${pname}";
+    license = licenses.isc;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/mirage-random-test/default.nix b/pkgs/development/ocaml-modules/mirage-random-test/default.nix
new file mode 100644
index 00000000000..81d75db7725
--- /dev/null
+++ b/pkgs/development/ocaml-modules/mirage-random-test/default.nix
@@ -0,0 +1,30 @@
+{ lib, buildDunePackage, fetchurl
+, cstruct, mirage-random
+}:
+
+buildDunePackage rec {
+  pname = "mirage-random-test";
+  version = "0.1.0";
+
+  minimumOCamlVersion = "4.06";
+
+  # due to cstruct
+  useDune2 = true;
+
+  src = fetchurl {
+    url = "https://github.com/mirage/${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
+    sha256 = "1jmjyb9a4v7l0xxgdwpr9zshzr8xk3hybra6y2dp51anbwk8kv46";
+  };
+
+  propagatedBuildInputs = [
+    cstruct
+    mirage-random
+  ];
+
+  meta = with lib; {
+    description = "Stub random device implementation for testing";
+    homepage = "https://github.com/mirage/mirage-random";
+    license = licenses.isc;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/mirage-vnetif/default.nix b/pkgs/development/ocaml-modules/mirage-vnetif/default.nix
new file mode 100644
index 00000000000..876bc1a9817
--- /dev/null
+++ b/pkgs/development/ocaml-modules/mirage-vnetif/default.nix
@@ -0,0 +1,40 @@
+{ lib, buildDunePackage, fetchurl
+, lwt, mirage-time, mirage-clock, mirage-net
+, cstruct, ipaddr, macaddr, mirage-profile
+, duration, logs
+}:
+
+buildDunePackage rec {
+  pname = "mirage-vnetif";
+  version = "0.5.0";
+
+  minimumOCamlVersion = "4.06";
+
+  # due to cstruct
+  useDune2 = true;
+
+  src = fetchurl {
+    url = "https://github.com/mirage/${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
+    sha256 = "0cpqwf51v2cpz41dfqxabf3bsabwyl6a0h0v2ncrn33q58i60m5q";
+  };
+
+  propagatedBuildInputs = [
+    lwt
+    mirage-net
+    mirage-time
+    mirage-clock
+    cstruct
+    ipaddr
+    macaddr
+    mirage-profile
+    duration
+    logs
+  ];
+
+  meta = with lib; {
+    description = "Virtual network interface and software switch for Mirage";
+    homepage = "https://github.com/mirage/${pname}";
+    license = licenses.isc;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/mirage/default.nix b/pkgs/development/ocaml-modules/mirage/default.nix
index 9a4d3f21cb8..6b8bcb1fbe9 100644
--- a/pkgs/development/ocaml-modules/mirage/default.nix
+++ b/pkgs/development/ocaml-modules/mirage/default.nix
@@ -1,16 +1,32 @@
-{ lib, buildDunePackage, ocaml
-, functoria, mirage-runtime
+{ lib, buildDunePackage, ocaml, alcotest
+, functoria, mirage-runtime, bos
+, ipaddr, astring, logs, stdlib-shims
 }:
 
 buildDunePackage rec {
   pname = "mirage";
   inherit (mirage-runtime) version src;
 
+  minimumOCamlVersion = "4.08";
+
   useDune2 = true;
 
   outputs = [ "out" "dev" ];
 
-  propagatedBuildInputs = [ functoria mirage-runtime ];
+  propagatedBuildInputs = [
+    ipaddr
+    functoria
+    mirage-runtime
+    bos
+    astring
+    logs
+    stdlib-shims
+  ];
+
+  doCheck = true;
+  checkInputs = [
+    alcotest
+  ];
 
   installPhase = ''
     runHook preInstall
@@ -21,5 +37,4 @@ buildDunePackage rec {
   meta = mirage-runtime.meta // {
     description = "The MirageOS library operating system";
   };
-
 }
diff --git a/pkgs/development/ocaml-modules/ocaml-lsp/default.nix b/pkgs/development/ocaml-modules/ocaml-lsp/default.nix
index 0db0164589c..0391498c37a 100644
--- a/pkgs/development/ocaml-modules/ocaml-lsp/default.nix
+++ b/pkgs/development/ocaml-modules/ocaml-lsp/default.nix
@@ -2,6 +2,8 @@
 , stdlib-shims
 , ppx_yojson_conv_lib
 , ocaml-syntax-shims
+, yojson
+, result
 , omd
 , octavius
 , dune-build-info
@@ -12,10 +14,10 @@
 , lib
 }:
 let
-  version = "1.1.0";
+  version = "1.4.0";
   src = fetchzip {
-    url = "https://github.com/ocaml/ocaml-lsp/releases/download/${version}/ocaml-lsp-server-${version}.tbz";
-    sha256 = "0al89waw43jl80k9z06kh44byhjhwb5hmzx07sddwi1kr1vc6jrb";
+    url = "https://github.com/ocaml/ocaml-lsp/releases/download/${version}/jsonrpc-${version}.tbz";
+    sha256 = "16vvwq3d9xmr91r6yv5i2gyqcdliji7asyq4g6iygi617233fa33";
   };
 
   # unvendor some (not all) dependencies.
@@ -23,7 +25,7 @@ let
   # ocaml-lsp without messing with your opam switch, but nix should prevent
   # this type of problems without resorting to vendoring.
   preBuild = ''
-    rm -r vendor/{octavius,uutf,ocaml-syntax-shims,omd,cmdliner}
+    rm -r ocaml-lsp-server/vendor/{octavius,uutf,ocaml-syntax-shims,omd,cmdliner}
   '';
 
   buildInputs = [
@@ -36,6 +38,7 @@ let
     dune-build-info
     omd
     cmdliner
+    jsonrpc
   ];
 
   lsp = buildDunePackage {
@@ -47,6 +50,15 @@ let
     inherit buildInputs preBuild;
   };
 
+  jsonrpc = buildDunePackage {
+    pname = "jsonrpc";
+    inherit version src;
+    useDune2 = true;
+    minimumOCamlVersion = "4.06";
+
+    buildInputs = [ yojson stdlib-shims ocaml-syntax-shims ppx_yojson_conv_lib result ];
+  };
+
 in
 buildDunePackage {
   pname = "ocaml-lsp-server";
diff --git a/pkgs/development/ocaml-modules/ocaml-monadic/default.nix b/pkgs/development/ocaml-modules/ocaml-monadic/default.nix
index 0420e95b12b..69fa4cba851 100644
--- a/pkgs/development/ocaml-modules/ocaml-monadic/default.nix
+++ b/pkgs/development/ocaml-modules/ocaml-monadic/default.nix
@@ -6,6 +6,8 @@ buildDunePackage rec {
   pname = "ocaml-monadic";
   version = "0.4.1";
 
+  useDune2 = true;
+
   src = fetchFromGitHub {
     owner = "zepalmer";
     repo = pname;
diff --git a/pkgs/development/ocaml-modules/ocaml-r/default.nix b/pkgs/development/ocaml-modules/ocaml-r/default.nix
index 71e77b24ce4..d76a98fc05c 100644
--- a/pkgs/development/ocaml-modules/ocaml-r/default.nix
+++ b/pkgs/development/ocaml-modules/ocaml-r/default.nix
@@ -1,14 +1,20 @@
-{ lib, fetchFromGitHub, buildDunePackage, pkg-config, configurator, stdio, R }:
+{ lib, fetchFromGitHub, buildDunePackage, pkg-config, dune-configurator, stdio, R
+, alcotest
+}:
 
 buildDunePackage rec {
   pname = "ocaml-r";
-  version = "0.2.0";
+  version = "0.4.0";
+
+  useDune2 = true;
+
+  minimumOCamlVersion = "4.08";
 
   src = fetchFromGitHub {
     owner = "pveber";
     repo = pname;
     rev = "v${version}";
-    sha256 = "09gljccwjsw9693m1hm9hcyvgp3p2fvg3cfn18yyidpc2f81a4fy";
+    sha256 = "10is2s148kfh3g0pwniyzp5mh48k57ldvn8gm86469zvgxyij1ri";
   };
 
   # Without the following patch, stub generation fails with:
@@ -17,9 +23,14 @@ buildDunePackage rec {
     substituteInPlace stubgen/stubgen.ml --replace  \
     'failwithf "not supported: %s" name ()' \
     'sprintf "(* not supported: %s *)" name'
+    substituteInPlace lib/config/discover.ml --replace \
+    ' libRmath"' '"'
   '';
 
-  buildInputs = [ configurator pkg-config R stdio ];
+  buildInputs = [ pkg-config R dune-configurator stdio ];
+
+  doCheck = true;
+  checkInputs = [ alcotest ];
 
   meta = {
     description = "OCaml bindings for the R interpreter";
diff --git a/pkgs/development/ocaml-modules/opam-format/default.nix b/pkgs/development/ocaml-modules/opam-format/default.nix
index 422729e6d0d..fdb8ba33d5e 100644
--- a/pkgs/development/ocaml-modules/opam-format/default.nix
+++ b/pkgs/development/ocaml-modules/opam-format/default.nix
@@ -3,6 +3,8 @@
 buildDunePackage rec {
   pname = "opam-format";
 
+  useDune2 = true;
+
   inherit (opam-core) src version;
 
   minimumOCamlVersion = "4.02.3";
diff --git a/pkgs/development/ocaml-modules/opam-repository/default.nix b/pkgs/development/ocaml-modules/opam-repository/default.nix
index 1801a9e1c86..1480a7d5915 100644
--- a/pkgs/development/ocaml-modules/opam-repository/default.nix
+++ b/pkgs/development/ocaml-modules/opam-repository/default.nix
@@ -5,6 +5,8 @@ buildDunePackage rec {
 
   minimumOCamlVersion = "4.02";
 
+  useDune2 = true;
+
   inherit (opam-format) src version;
 
   patches = [ ./download-tool.patch ];
diff --git a/pkgs/development/ocaml-modules/opam-state/default.nix b/pkgs/development/ocaml-modules/opam-state/default.nix
index 156976a4a5a..d841631dfd0 100644
--- a/pkgs/development/ocaml-modules/opam-state/default.nix
+++ b/pkgs/development/ocaml-modules/opam-state/default.nix
@@ -5,6 +5,8 @@ buildDunePackage rec {
 
   inherit (opam) src version;
 
+  useDune2 = true;
+
   # get rid of check for curl at configure time
   # opam-state does not call curl at run time
   configureFlags = [ "--disable-checks" ];
diff --git a/pkgs/development/ocaml-modules/ounit2/default.nix b/pkgs/development/ocaml-modules/ounit2/default.nix
index 708c9a6c19e..52676a1c88d 100644
--- a/pkgs/development/ocaml-modules/ounit2/default.nix
+++ b/pkgs/development/ocaml-modules/ounit2/default.nix
@@ -1,18 +1,21 @@
-{ lib, buildDunePackage, fetchurl, stdlib-shims }:
+{ lib, ocaml, buildDunePackage, fetchurl, stdlib-shims, ncurses }:
 
 buildDunePackage rec {
   minimumOCamlVersion = "4.04";
 
   pname = "ounit2";
-  version = "2.2.3";
+  version = "2.2.4";
 
   src = fetchurl {
     url = "https://github.com/gildor478/ounit/releases/download/v${version}/ounit-v${version}.tbz";
-    sha256 = "1naahh24lbyxmrnzpfz8karniqbf1nknivf96mrvsr6zlx5ad072";
+    sha256 = "0i9kiqbf2dp12c4qcvbn4abdpdp6h4g5z54ycsh0q8jpv6jnkh5m";
   };
 
   propagatedBuildInputs = [ stdlib-shims ];
 
+  doCheck = true;
+  checkInputs = lib.optional (lib.versionOlder ocaml.version "4.07") ncurses;
+
   meta = with lib; {
     homepage = "https://github.com/gildor478/ounit";
     description = "A unit test framework for OCaml";
diff --git a/pkgs/development/ocaml-modules/pcap-format/default.nix b/pkgs/development/ocaml-modules/pcap-format/default.nix
new file mode 100644
index 00000000000..f8bb6f4f6b2
--- /dev/null
+++ b/pkgs/development/ocaml-modules/pcap-format/default.nix
@@ -0,0 +1,41 @@
+{ lib, buildDunePackage, fetchurl
+, ppx_cstruct, ppx_tools
+, cstruct, ounit, mmap
+}:
+
+buildDunePackage rec {
+  pname = "pcap-format";
+  version = "0.5.2";
+
+  minimumOCamlVersion = "4.03";
+
+  # due to cstruct
+  useDune2 = true;
+
+  src = fetchurl {
+    url = "https://github.com/mirage/ocaml-pcap/releases/download/${version}/${pname}-${version}.tbz";
+    sha256 = "14c5rpgglyz41jic0fg0xa22d2w1syb86kva22y9fi7aqj9vm31f";
+  };
+
+  nativeBuildInputs = [
+    ppx_tools
+    ppx_cstruct
+  ];
+
+  propagatedBuildInputs = [
+    cstruct
+  ];
+
+  doCheck = true;
+  checkInputs = [
+    ounit
+    mmap
+  ];
+
+  meta = with lib; {
+    description = "Decode and encode PCAP (packet capture) files";
+    homepage = "https://mirage.github.io/ocaml-pcap";
+    license = licenses.isc;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/phylogenetics/default.nix b/pkgs/development/ocaml-modules/phylogenetics/default.nix
index 1873a4e0c58..27b6ed3f986 100644
--- a/pkgs/development/ocaml-modules/phylogenetics/default.nix
+++ b/pkgs/development/ocaml-modules/phylogenetics/default.nix
@@ -1,23 +1,24 @@
 { stdenv, buildDunePackage, fetchFromGitHub, ppx_deriving
-, alcotest, biocaml, gnuplot, lacaml, menhir, ocaml-r, owl, printbox }:
+, alcotest, angstrom-unix, biocaml, gnuplot, gsl, lacaml, menhir, owl, printbox }:
 
 buildDunePackage rec {
   pname = "phylogenetics";
-  version = "unstable-2020-01-25";
+  version = "unstable-2020-11-23";
 
   useDune2 = true;
 
   src = fetchFromGitHub {
     owner  = "biocaml";
     repo   = pname;
-    rev    = "752a7d0324709ba919ef43630a270afd45d6b734";
-    sha256 = "1zsxpl1yjbw6y6n1q7qk3h0l7c0lxhh8yp8bkxlwnpzlkqq28ycg";
+    rev    = "e6e10efa0a3a8fd61bf4ab69e91a09549cc1ded6";
+    sha256 = "0pmypzp0rvlpzm8zpbcfkphwnhrpyfwfv44kshvx2f8nslmksh8c";
   };
 
   minimumOCamlVersion = "4.08";  # e.g., uses Float.min
 
   checkInputs = [ alcotest ];
-  propagatedBuildInputs = [ biocaml gnuplot lacaml menhir ocaml-r owl ppx_deriving printbox ];
+  buildInputs = [ menhir ];
+  propagatedBuildInputs = [ angstrom-unix biocaml gnuplot gsl lacaml owl ppx_deriving printbox ];
 
   doCheck = false;  # many tests require bppsuite
 
diff --git a/pkgs/development/ocaml-modules/ppx_blob/default.nix b/pkgs/development/ocaml-modules/ppx_blob/default.nix
index a64ff9cbef2..ac96e56d04e 100644
--- a/pkgs/development/ocaml-modules/ppx_blob/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_blob/default.nix
@@ -1,18 +1,18 @@
-{ lib, fetchurl, buildDunePackage, ocaml, alcotest, ocaml-migrate-parsetree }:
+{ lib, fetchurl, buildDunePackage, ocaml, alcotest, ppxlib }:
 
 buildDunePackage rec {
   pname = "ppx_blob";
-  version = "0.7.1";
+  version = "0.7.2";
 
   useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/johnwhitington/${pname}/releases/download/${version}/ppx_blob-${version}.tbz";
-    sha256 = "0m616ri6kmawflphiwm6j4djds27v0fjvi8xjz1fq5ydc1sq8d0l";
+    sha256 = "00haz1cmplk3j9ysh6j656zrldy60585fmlndmfhpd5332mxrfdw";
   };
 
   checkInputs = [ alcotest ];
-  buildInputs = [ ocaml-migrate-parsetree ];
+  propagatedBuildInputs = [ ppxlib ];
   doCheck = lib.versionAtLeast ocaml.version "4.05";
 
   meta = with lib; {
diff --git a/pkgs/development/ocaml-modules/ppx_import/default.nix b/pkgs/development/ocaml-modules/ppx_import/default.nix
index f4977992759..b5651a8cec2 100644
--- a/pkgs/development/ocaml-modules/ppx_import/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_import/default.nix
@@ -1,24 +1,27 @@
 { lib, fetchurl, buildDunePackage, ocaml
 , ounit, ppx_deriving, ppx_tools_versioned
+, ppxlib, ocaml-migrate-parsetree
 }:
 
-if !lib.versionAtLeast ocaml.version "4.04"
-then throw "ppx_import is not available for OCaml ${ocaml.version}"
-else
-
 buildDunePackage rec {
   pname = "ppx_import";
   version = "1.7.1";
 
+  useDune2 = true;
+
+  minimumOCamlVersion = "4.04";
+
   src = fetchurl {
     url = "https://github.com/ocaml-ppx/ppx_import/releases/download/v${version}/ppx_import-v${version}.tbz";
     sha256 = "16dyxfb7syz659rqa7yq36ny5vzl7gkqd7f4m6qm2zkjc1gc8j4v";
   };
 
-  buildInputs = [ ounit ppx_deriving ];
-  propagatedBuildInputs = [ ppx_tools_versioned ];
+  propagatedBuildInputs = [
+    ppxlib ppx_tools_versioned ocaml-migrate-parsetree
+  ];
 
   doCheck = true;
+  checkInputs = [ ounit ppx_deriving ];
 
   meta = {
     description = "A syntax extension that allows to pull in types or signatures from other compiled interface files";
diff --git a/pkgs/development/ocaml-modules/ppxlib/default.nix b/pkgs/development/ocaml-modules/ppxlib/default.nix
index 8821e562129..d5b09b1ddc2 100644
--- a/pkgs/development/ocaml-modules/ppxlib/default.nix
+++ b/pkgs/development/ocaml-modules/ppxlib/default.nix
@@ -1,24 +1,34 @@
 { lib, fetchFromGitHub, buildDunePackage, ocaml
-, legacy ? false
+, version ? if lib.versionAtLeast ocaml.version "4.07" then "0.15.0" else "0.13.0"
 , ocaml-compiler-libs, ocaml-migrate-parsetree, ppx_derivers, stdio
+, stdlib-shims
 }:
 
-let param =
-  if legacy then {
-    version = "0.8.1";
+let param = {
+  "0.8.1" = {
     sha256 = "0vm0jajmg8135scbg0x60ivyy5gzv4abwnl7zls2mrw23ac6kml6";
-  } else {
-    version = "0.12.0";
-    sha256 = "1cg0is23c05k1rc94zcdz452p9zn11dpqxm1pnifwx5iygz3w0a1";
-  }; in
+    max_version = "4.10";
+  };
+  "0.13.0" = {
+    sha256 = "0c54g22pm6lhfh3f7s5wbah8y48lr5lj3cqsbvgi99bly1b5vqvl";
+  };
+  "0.15.0" = {
+    sha256 = "1p037kqj5858xrhh0dps6vbf4fnijla6z9fjz5zigvnqp4i2xkrn";
+    min_version = "4.07";
+    useDune2 = true;
+  };
+}."${version}"; in
 
-if lib.versionAtLeast ocaml.version "4.10" && legacy
-then throw "ppxlib-${param.version} is not available for OCaml ${ocaml.version}"
+if param ? max_version && lib.versionAtLeast ocaml.version param.max_version
+|| param ? min_version && !lib.versionAtLeast ocaml.version param.min_version
+then throw "ppxlib-${version} is not available for OCaml ${ocaml.version}"
 else
 
 buildDunePackage rec {
   pname = "ppxlib";
-  inherit (param) version;
+  inherit version;
+
+  useDune2 = param.useDune2 or false;
 
   src = fetchFromGitHub {
     owner = "ocaml-ppx";
@@ -29,6 +39,7 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [
     ocaml-compiler-libs ocaml-migrate-parsetree ppx_derivers stdio
+    stdlib-shims
   ];
 
   meta = {
diff --git a/pkgs/development/ocaml-modules/sedlex/2.nix b/pkgs/development/ocaml-modules/sedlex/2.nix
index b1a892d5b80..927acc1819e 100644
--- a/pkgs/development/ocaml-modules/sedlex/2.nix
+++ b/pkgs/development/ocaml-modules/sedlex/2.nix
@@ -14,28 +14,33 @@ then throw "sedlex is not available for OCaml ${ocaml.version}"
 else
 
 let
+  unicodeVersion = "12.1.0";
+  baseUrl = "https://www.unicode.org/Public/${unicodeVersion}";
+
   DerivedCoreProperties = fetchurl {
-    url = "https://www.unicode.org/Public/12.1.0/ucd/DerivedCoreProperties.txt";
+    url = "${baseUrl}/ucd/DerivedCoreProperties.txt";
     sha256 = "0s6sn1yr9qmb2i6gf8dir2zpsbjv1frdfzy3i2yjylzvf637msx6";
   };
   DerivedGeneralCategory = fetchurl {
-    url = "https://www.unicode.org/Public/12.1.0/ucd/extracted/DerivedGeneralCategory.txt";
+    url = "${baseUrl}/ucd/extracted/DerivedGeneralCategory.txt";
     sha256 = "1rifzq9ba6c58dn0lrmcb5l5k4ksx3zsdkira3m5p6h4i2wriy3q";
   };
   PropList = fetchurl {
-    url = "https://www.unicode.org/Public/12.1.0/ucd/PropList.txt";
+    url = "${baseUrl}/ucd/PropList.txt";
     sha256 = "0gsb1jpj3mnqbjgbavi4l95gl6g4agq58j82km22fdfg63j3w3fk";
   };
 in
 buildDunePackage rec {
   pname = "sedlex";
-  version = "2.1";
+  version = "2.2";
+
+  useDune2 = true;
 
   src = fetchFromGitHub {
     owner = "ocaml-community";
     repo = "sedlex";
     rev = "v${version}";
-    sha256 = "05f6qa8x3vhpdz1fcnpqk37fpnyyq13icqsk2gww5idjnh6kng26";
+    sha256 = "18dwl2is5j26z6b1c47b81wvcpxw44fasppdadsrs9vsw63rwcm3";
   };
 
   propagatedBuildInputs = [
@@ -43,6 +48,7 @@ buildDunePackage rec {
   ];
 
   preBuild = ''
+    rm src/generator/data/dune
     ln -s ${DerivedCoreProperties} src/generator/data/DerivedCoreProperties.txt
     ln -s ${DerivedGeneralCategory} src/generator/data/DerivedGeneralCategory.txt
     ln -s ${PropList} src/generator/data/PropList.txt
diff --git a/pkgs/development/ocaml-modules/sqlexpr/default.nix b/pkgs/development/ocaml-modules/sqlexpr/default.nix
deleted file mode 100644
index df6b6f0854d..00000000000
--- a/pkgs/development/ocaml-modules/sqlexpr/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ stdenv, fetchurl, buildDunePackage, ocaml_lwt
-, lwt_ppx, ocaml-migrate-parsetree, ppx_tools_versioned, csv, ocaml_sqlite3
-}:
-
-buildDunePackage rec {
-  pname = "sqlexpr";
-  version = "0.9.0";
-
-  src = fetchurl {
-  url = "https://github.com/mfp/ocaml-sqlexpr/releases/download/${version}/ocaml-sqlexpr-${version}.tar.gz";
-  sha256 = "0z0bkzi1mh0m39alzr2ds7hjpfxffx6azpfsj2wpaxrg64ks8ypd";
-  };
-
-  buildInputs = [ lwt_ppx ocaml-migrate-parsetree ppx_tools_versioned ];
-  propagatedBuildInputs = [ ocaml_lwt csv ocaml_sqlite3 ];
-  doCheck = true;
-
-  preBuild = "rm META.sqlexpr";
-
-  meta = {
-    description = "Type-safe, convenient SQLite database access";
-    homepage = "https://github.com/mfp/ocaml-sqlexpr";
-    license = stdenv.lib.licenses.lgpl21;
-    maintainers = [ stdenv.lib.maintainers.vbgl ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/sqlexpr/ppx.nix b/pkgs/development/ocaml-modules/sqlexpr/ppx.nix
deleted file mode 100644
index 572ff593615..00000000000
--- a/pkgs/development/ocaml-modules/sqlexpr/ppx.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ buildDunePackage, sqlexpr, ounit
-, ppxlib, ppx_tools_versioned, re, lwt_ppx
-}:
-
-buildDunePackage {
-  pname = "ppx_sqlexpr";
-  inherit (sqlexpr) version src meta;
-
-  minimumOCamlVersion = "4.06";
-
-  postPatch = ''
-    substituteInPlace src/ppx/jbuild --replace ppx_core ppxlib
-  '';
-
-  buildInputs = [ sqlexpr ounit ppxlib ppx_tools_versioned re lwt_ppx ];
-  doCheck = true;
-}
diff --git a/pkgs/development/ocaml-modules/syslog-message/default.nix b/pkgs/development/ocaml-modules/syslog-message/default.nix
new file mode 100644
index 00000000000..ba967d87446
--- /dev/null
+++ b/pkgs/development/ocaml-modules/syslog-message/default.nix
@@ -0,0 +1,35 @@
+{ lib, buildDunePackage, fetchurl
+, astring, ptime, rresult, qcheck
+}:
+
+buildDunePackage rec {
+  pname = "syslog-message";
+  version = "1.1.0";
+
+  minimumOCamlVersion = "4.03";
+
+  useDune2 = true;
+
+  src = fetchurl {
+    url = "https://github.com/verbosemode/${pname}/releases/download/${version}/${pname}-${version}.tbz";
+    sha256 = "0vy4dkl2q2fa6rzyfsvjyc9r1b9ymfqd6j35z2kp5vdc4r87053g";
+  };
+
+  propagatedBuildInputs = [
+    astring
+    ptime
+    rresult
+  ];
+
+  doCheck = true;
+  checkInputs = [
+    qcheck
+  ];
+
+  meta = with lib; {
+    description = "Syslog message parser";
+    homepage = "https://github.com/verbosemode/syslog-message";
+    license = licenses.bsd2;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/tcpip/default.nix b/pkgs/development/ocaml-modules/tcpip/default.nix
new file mode 100644
index 00000000000..80fa01066f1
--- /dev/null
+++ b/pkgs/development/ocaml-modules/tcpip/default.nix
@@ -0,0 +1,70 @@
+{ lib, buildDunePackage, fetchurl
+, bisect_ppx, ppx_cstruct
+, rresult, cstruct, cstruct-lwt, mirage-net, mirage-clock
+, mirage-random, mirage-stack, mirage-protocols, mirage-time
+, ipaddr, macaddr, macaddr-cstruct, mirage-profile, fmt
+, lwt, lwt-dllist, logs, duration, randomconv, ethernet
+, alcotest, mirage-flow, mirage-vnetif, pcap-format
+, mirage-clock-unix, arp, ipaddr-cstruct, mirage-random-test
+, lru
+}:
+
+buildDunePackage rec {
+  pname = "tcpip";
+  version = "6.0.0";
+
+  useDune2 = true;
+
+  src = fetchurl {
+    url = "https://github.com/mirage/mirage-${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
+    sha256 = "0wbrs8jz1vw3zdrqmqcwawxh4yhc2gy30rw7gz4w116cblkvnb8s";
+  };
+
+  nativeBuildInputs = [
+    bisect_ppx
+    ppx_cstruct
+  ];
+
+  propagatedBuildInputs = [
+    rresult
+    cstruct
+    cstruct-lwt
+    mirage-net
+    mirage-clock
+    mirage-random
+    mirage-random-test
+    mirage-stack
+    mirage-protocols
+    mirage-time
+    ipaddr
+    macaddr
+    macaddr-cstruct
+    mirage-profile
+    fmt
+    lwt
+    lwt-dllist
+    logs
+    duration
+    randomconv
+    ethernet
+    lru
+  ];
+
+  doCheck = true;
+  checkInputs = [
+    alcotest
+    mirage-flow
+    mirage-vnetif
+    pcap-format
+    mirage-clock-unix
+    arp
+    ipaddr-cstruct
+  ];
+
+  meta = with lib; {
+    description = "OCaml TCP/IP networking stack, used in MirageOS";
+    homepage = "https://github.com/mirage/mirage-tcpip";
+    maintainers = [ maintainers.sternenseemann ];
+    license = licenses.isc;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/trie/default.nix b/pkgs/development/ocaml-modules/trie/default.nix
new file mode 100644
index 00000000000..935f71a5e22
--- /dev/null
+++ b/pkgs/development/ocaml-modules/trie/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildDunePackage, fetchFromGitHub }:
+
+buildDunePackage rec {
+  pname = "trie";
+  version = "1.0.0";
+
+  useDune2 = true;
+
+  src = fetchFromGitHub {
+    owner = "kandu";
+    repo = pname;
+    rev = version;
+    sha256 = "0s7p9swjqjsqddylmgid6cv263ggq7pmb734z4k84yfcrgb6kg4g";
+  };
+
+  meta = {
+    inherit (src.meta) homepage;
+    license = lib.licenses.mit;
+    description = "Strict impure trie tree";
+    maintainers = [ lib.maintainers.vbgl ];
+  };
+
+}
diff --git a/pkgs/development/ocaml-modules/zarith/default.nix b/pkgs/development/ocaml-modules/zarith/default.nix
index f9996eb6af6..175004c71bb 100644
--- a/pkgs/development/ocaml-modules/zarith/default.nix
+++ b/pkgs/development/ocaml-modules/zarith/default.nix
@@ -6,9 +6,9 @@
 let source =
   if stdenv.lib.versionAtLeast ocaml.version "4.02"
   then {
-    version = "1.10";
-    url = "https://github.com/ocaml/Zarith/archive/release-1.10.tar.gz";
-    sha256 = "1qxrl0v2mk9wghc1iix3n0vfz2jbg6k5wpn1z7p02m2sqskb0zhb";
+    version = "1.11";
+    url = "https://github.com/ocaml/Zarith/archive/release-1.11.tar.gz";
+    sha256 = "111n33flg4aq5xp5jfksqm4yyz6mzxx9ps9a4yl0dz8h189az5pr";
   } else {
     version = "1.3";
     url = "http://forge.ocamlcore.org/frs/download.php/1471/zarith-1.3.tgz";
diff --git a/pkgs/development/php-packages/imagick/default.nix b/pkgs/development/php-packages/imagick/default.nix
index 504e15ae16d..8f9eed0c1c3 100644
--- a/pkgs/development/php-packages/imagick/default.nix
+++ b/pkgs/development/php-packages/imagick/default.nix
@@ -12,9 +12,14 @@ buildPecl {
       url = "https://github.com/Imagick/imagick/pull/336.patch";
       sha256 = "nuRdh02qaMx0s/5OzlfWjyYgZG1zgrYnAjsZ/UVIrUM=";
     })
+    # Fix detection of ImageMagick 7.
+    (fetchpatch {
+      url = "https://github.com/Imagick/imagick/commit/09551fbf38c16cdaf4ade7c08744501cd82d2747.patch";
+      sha256 = "qUeQHP08kKOzuQdEpR8RSZ18Yhi0U9z24KwQcAx1UVg=";
+    })
   ];
 
-  configureFlags = [ "--with-imagick=${pkgs.imagemagick.dev}" ];
+  configureFlags = [ "--with-imagick=${pkgs.imagemagick7.dev}" ];
   nativeBuildInputs = [ pkgs.pkgconfig ];
   buildInputs = [ pcre' ];
 
diff --git a/pkgs/development/python-modules/HAP-python/default.nix b/pkgs/development/python-modules/HAP-python/default.nix
index 267fcccd8d4..3cd211db755 100644
--- a/pkgs/development/python-modules/HAP-python/default.nix
+++ b/pkgs/development/python-modules/HAP-python/default.nix
@@ -1,16 +1,16 @@
 { lib, buildPythonPackage, fetchFromGitHub, isPy3k, curve25519-donna, ed25519
-, cryptography, ecdsa, zeroconf, pytest }:
+, cryptography, ecdsa, zeroconf, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "HAP-python";
-  version = "3.0.0";
+  version = "3.1.0";
 
   # pypi package does not include tests
   src = fetchFromGitHub {
     owner = "ikalchev";
     repo = pname;
     rev = "v${version}";
-    sha256 = "07s1kjm9cz4m4ksj506la1ks3dq2b5mk412rjj9rpj98b0mxrr84";
+    sha256 = "1qg38lfjby2xfm09chzc40a7i3b84kgyfs7g4xq8f5m8s39hg6d7";
   };
 
   disabled = !isPy3k;
@@ -23,20 +23,20 @@ buildPythonPackage rec {
     zeroconf
   ];
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytestCheckHook ];
 
-  #disable tests needing network
-  checkPhase = ''
-    pytest -k 'not test_persist \
-    and not test_setup_endpoints \
-    and not test_auto_add_aid_mac \
-    and not test_service_callbacks \
-    and not test_send_events \
-    and not test_not_standalone_aid \
-    and not test_start_stop_async_acc \
-    and not test_external_zeroconf \
-    and not test_start_stop_sync_acc'
-  '';
+  disabledTests = [
+    #disable tests needing network
+    "test_persist"
+    "test_setup_endpoints"
+    "test_auto_add_aid_mac"
+    "test_service_callbacks"
+    "test_send_events"
+    "test_not_standalone_aid"
+    "test_start_stop_async_acc"
+    "test_external_zeroconf"
+    "test_start_stop_sync_acc"
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/ikalchev/HAP-python";
diff --git a/pkgs/development/python-modules/JPype1/default.nix b/pkgs/development/python-modules/JPype1/default.nix
index 11ac2b7599b..1a58562ab06 100644
--- a/pkgs/development/python-modules/JPype1/default.nix
+++ b/pkgs/development/python-modules/JPype1/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "JPype1";
-  version = "1.1.2";
+  version = "1.2.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c6e36de9f7ef826ff27f6d5260acc710ebc585a534c12cbac905db088ab1d992";
+    sha256 = "62ca03e7f7963ba4ac1065ee48ff661f752b3db3c23549ed8933ab40196a3157";
   };
 
   propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [
diff --git a/pkgs/development/python-modules/WSME/default.nix b/pkgs/development/python-modules/WSME/default.nix
index c1c6395ab25..50e90ded762 100644
--- a/pkgs/development/python-modules/WSME/default.nix
+++ b/pkgs/development/python-modules/WSME/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonAtLeast
 , pbr
 , six
 , simplegeneric
@@ -23,6 +24,8 @@ buildPythonPackage rec {
   pname = "WSME";
   version = "0.10.0";
 
+  disabled = pythonAtLeast "3.9";
+
   src = fetchPypi {
     inherit pname version;
     sha256 = "965b9ce48161e5c50d84aedcf50dca698f05bf07e9d489201bccaec3141cd304";
diff --git a/pkgs/development/python-modules/abodepy/default.nix b/pkgs/development/python-modules/abodepy/default.nix
index eb0de74e791..e6ad75eb389 100644
--- a/pkgs/development/python-modules/abodepy/default.nix
+++ b/pkgs/development/python-modules/abodepy/default.nix
@@ -3,7 +3,7 @@
 
 buildPythonPackage rec {
   pname = "abodepy";
-  version = "1.2.0";
+  version = "1.2.1";
 
   disabled = !isPy3k;
 
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     owner = "MisterWil";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0m2cm90yy7fq7yrjyd999m48gqri65ifi7f6hc0s3pv2hfj89yj0";
+    sha256 = "0n8gczsml6y6anin1zi8j33sjk1bv9ka02zxpksn2fi1v1h0smap";
   };
 
   propagatedBuildInputs = [ colorlog lomond requests ];
diff --git a/pkgs/development/python-modules/acme/default.nix b/pkgs/development/python-modules/acme/default.nix
index e9156b5c6af..e63a26e5f74 100644
--- a/pkgs/development/python-modules/acme/default.nix
+++ b/pkgs/development/python-modules/acme/default.nix
@@ -1,6 +1,5 @@
 { buildPythonPackage
 , certbot
-, pytest
 , cryptography
 , pyasn1
 , pyopenssl
@@ -25,7 +24,9 @@ buildPythonPackage rec {
     werkzeug mock ndg-httpsclient josepy
   ];
 
-  checkInputs = [ pytest ];
+  # does not contain any tests
+  doCheck = false;
+  pythonImportsCheck = [ "acme" ];
 
   sourceRoot = "source/${pname}";
 
diff --git a/pkgs/development/python-modules/adb-shell/default.nix b/pkgs/development/python-modules/adb-shell/default.nix
index 9b2de53201b..9cd3fe36233 100644
--- a/pkgs/development/python-modules/adb-shell/default.nix
+++ b/pkgs/development/python-modules/adb-shell/default.nix
@@ -3,7 +3,7 @@
 
 buildPythonPackage rec {
   pname = "adb-shell";
-  version = "0.2.3";
+  version = "0.3.0";
 
   disabled = !isPy3k;
 
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     owner = "JeffLIrion";
     repo = "adb_shell";
     rev = "v${version}";
-    sha256 = "1ay598avmg656cxnc9phdx43z1plsrfjf9png9jwjwyhyjjiqxil";
+    sha256 = "0qnlhcd58zxh39cd5xzdx8yc5hc0pf8kix4rbn4avsapwb0l75n2";
   };
 
   propagatedBuildInputs = [ aiofiles cryptography libusb1 pyasn1 rsa ];
diff --git a/pkgs/development/python-modules/adblock/default.nix b/pkgs/development/python-modules/adblock/default.nix
new file mode 100644
index 00000000000..de6d72a61ec
--- /dev/null
+++ b/pkgs/development/python-modules/adblock/default.nix
@@ -0,0 +1,63 @@
+{ stdenv
+, lib
+, rustPlatform
+, fetchFromGitHub
+, pipInstallHook
+, pythonImportsCheckHook
+, maturin
+, pkg-config
+, openssl
+, publicsuffix-list
+, isPy27
+, CoreFoundation
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "adblock";
+  version = "0.4.0";
+  disabled = isPy27;
+
+  # Pypi only has binary releases
+  src = fetchFromGitHub {
+    owner = "ArniDagur";
+    repo = "python-adblock";
+    rev = version;
+    sha256 = "10d6ks2fyzbizq3kb69q478idj0h86k6ygjb6wl3zq3mf65ma4zg";
+  };
+  format = "pyproject";
+
+  cargoSha256 = "0di05j942rrm2crpdpp9czhh65fmidyrvdp2n3pipgnagy7nchc0";
+
+  nativeBuildInputs = [ pipInstallHook maturin pkg-config pythonImportsCheckHook ];
+
+  buildInputs = [ openssl ]
+    ++ lib.optionals stdenv.isDarwin [ CoreFoundation Security ];
+
+  PSL_PATH = "${publicsuffix-list}/share/publicsuffix/public_suffix_list.dat";
+
+  buildPhase = ''
+    runHook preBuild
+    maturin build --release --manylinux off --strip
+    runHook postBuild
+  '';
+
+  # There are no rust tests
+  doCheck = false;
+  pythonImportsCheck = [ "adblock" ];
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm644 -t dist target/wheels/*.whl
+    pipInstallPhase
+    runHook postInstall
+  '';
+
+  passthru.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 ];
+    license = with licenses; [ asl20 mit ];
+    platforms = with platforms; [ all ];
+  };
+}
diff --git a/pkgs/development/python-modules/aenum/default.nix b/pkgs/development/python-modules/aenum/default.nix
index 66a95500538..32b26a5e035 100644
--- a/pkgs/development/python-modules/aenum/default.nix
+++ b/pkgs/development/python-modules/aenum/default.nix
@@ -22,11 +22,10 @@ buildPythonPackage rec {
   runHook postCheck
   '';
 
-
   meta = {
     description = "Advanced Enumerations (compatible with Python's stdlib Enum), NamedTuples, and NamedConstants";
     maintainers = with stdenv.lib.maintainers; [ vrthra ];
     license = with stdenv.lib.licenses; [ bsd3 ];
-    homepage = "https://bitbucket.org/stoneleaf/aenum";
+    homepage = "https://github.com/ethanfurman/aenum";
   };
 }
diff --git a/pkgs/development/python-modules/aiobotocore/default.nix b/pkgs/development/python-modules/aiobotocore/default.nix
new file mode 100644
index 00000000000..30821986539
--- /dev/null
+++ b/pkgs/development/python-modules/aiobotocore/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, pytestrunner
+, typing-extensions
+, wrapt
+, aioitertools
+, aiohttp
+, botocore
+}:
+
+buildPythonPackage rec {
+  pname = "aiobotocore";
+  version = "1.1.2";
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1fn9hgcg3qr9f7srjxc21bzkiix4al9308531slwlm99r0x3xcjl";
+  };
+
+  # 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'
+  '';
+
+  propagatedBuildInputs = [ wrapt aiohttp aioitertools botocore ];
+
+  # tests not distributed on pypi
+  doCheck = false;
+  pythonImportsCheck = [ "aiobotocore" ];
+
+  meta = with lib; {
+    description = "Async client for amazon services using botocore and aiohttp/asyncio.";
+    license = licenses.asl20;
+    homepage = "https://github.com/aio-libs/aiobotocore";
+    maintainers = with maintainers; [ teh ];
+  };
+}
diff --git a/pkgs/development/python-modules/aioitertools/default.nix b/pkgs/development/python-modules/aioitertools/default.nix
new file mode 100644
index 00000000000..1c5ce1e2fae
--- /dev/null
+++ b/pkgs/development/python-modules/aioitertools/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, typing-extensions
+, coverage
+, python
+, toml
+}:
+
+buildPythonPackage rec {
+  pname = "aioitertools";
+  version = "0.7.1";
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "18ql6k2j1839jf2rmmmm29v6fb7mr59l75z8nlf0sadmydy6r9al";
+  };
+
+  propagatedBuildInputs = [ typing-extensions ];
+  checkInputs = [ coverage toml ];
+
+  checkPhase = ''
+    ${python.interpreter} -m coverage run -m aioitertools.tests
+  '';
+
+  meta = with lib; {
+    description = "Implementation of itertools, builtins, and more for AsyncIO and mixed-type iterables.";
+    license = licenses.mit;
+    homepage = "https://pypi.org/project/aioitertools/";
+    maintainers = with maintainers; [ teh ];
+  };
+}
diff --git a/pkgs/development/python-modules/aiomultiprocess/default.nix b/pkgs/development/python-modules/aiomultiprocess/default.nix
new file mode 100644
index 00000000000..9b648d59537
--- /dev/null
+++ b/pkgs/development/python-modules/aiomultiprocess/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "aiomultiprocess";
+  version = "0.8.0";
+
+  src = fetchFromGitHub {
+    owner = "omnilib";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0vkj1vgvlv828pi3sn0hjzdy9f0j63gljs2ylibbsaixa7mbkpvy";
+  };
+
+  checkInputs = [ pytestCheckHook ];
+
+  pytestFlagsArray = [ "aiomultiprocess/tests/*.py" ];
+  pythonImportsCheck = [ "aiomultiprocess" ];
+
+  meta = with lib; {
+    description = "Python module to improve performance";
+    longDescription = ''
+      aiomultiprocess presents a simple interface, while running a full
+      AsyncIO event loop on each child process, enabling levels of
+      concurrency never before seen in a Python application. Each child
+      process can execute multiple coroutines at once, limited only by
+      the workload and number of cores available.
+    '';
+    homepage = "https://github.com/omnilib/aiomultiprocess";
+    license = with licenses; [ mit ];
+    maintainers = [ maintainers.fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/aiomysql/default.nix b/pkgs/development/python-modules/aiomysql/default.nix
index 4de8eaba3d8..803f642406c 100644
--- a/pkgs/development/python-modules/aiomysql/default.nix
+++ b/pkgs/development/python-modules/aiomysql/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "PyMySQL>=0.9,<=0.9.2" "PyMySQL"
+      --replace "PyMySQL>=0.9,<=0.9.3" "PyMySQL"
   '';
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/aiopulse/default.nix b/pkgs/development/python-modules/aiopulse/default.nix
new file mode 100644
index 00000000000..3df005d1790
--- /dev/null
+++ b/pkgs/development/python-modules/aiopulse/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, async-timeout
+}:
+
+buildPythonPackage rec {
+  pname = "aiopulse";
+  version = "0.4.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0fnscm27l77c8cd7jhbn35axyalq61kksy3fcqzv21fz55lklsm0";
+  };
+
+  propagatedBuildInputs = [
+    async-timeout
+  ];
+
+  # tests are not present
+  doCheck = false;
+
+  pythonImportsCheck = [ "aiopulse" ];
+
+  meta = with lib; {
+    description = "Python Rollease Acmeda Automate Pulse hub protocol implementation";
+    longDescription = ''
+      The Rollease Acmeda Pulse Hub is a WiFi hub that communicates with
+      Rollease Acmeda Automate roller blinds via a proprietary RF protocol.
+      This module communicates over a local area network using a propriatery
+      binary protocol to issues commands to the Pulse Hub.
+    '';
+    homepage = "https://github.com/atmurray/aiopulse";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/ambiclimate/default.nix b/pkgs/development/python-modules/ambiclimate/default.nix
new file mode 100644
index 00000000000..e375d347f2a
--- /dev/null
+++ b/pkgs/development/python-modules/ambiclimate/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, aiohttp
+, async-timeout
+}:
+
+buildPythonPackage rec {
+  pname = "ambiclimate";
+  version = "0.2.1";
+
+  src = fetchPypi {
+    pname = "Ambiclimate";
+    inherit version;
+    sha256 = "0vhmpazc2n7qyyh7wqsz635w0f8afk2i5d592ikb84bgnfn83483";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    async-timeout
+  ];
+
+  # tests are not present
+  doCheck = false;
+
+  pythonImportsCheck = [ "ambiclimate" ];
+
+  meta = with lib; {
+    description = "Python library to communicate with ambiclimate";
+    homepage = "https://github.com/Danielhiversen/pyAmbiclimate";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/ansi2html/default.nix b/pkgs/development/python-modules/ansi2html/default.nix
index 76775acb163..df115cf7c47 100644
--- a/pkgs/development/python-modules/ansi2html/default.nix
+++ b/pkgs/development/python-modules/ansi2html/default.nix
@@ -4,6 +4,8 @@ buildPythonPackage rec {
   pname = "ansi2html";
   version = "1.6.0";
 
+  disabled = !isPy3k;
+
   src = fetchPypi {
     inherit pname version;
     sha256 = "0f124ea7efcf3f24f1f9398e527e688c9ae6eab26b0b84e1299ef7f94d92c596";
@@ -22,6 +24,5 @@ buildPythonPackage rec {
     homepage = "https://github.com/ralphbean/ansi2html";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ davidtwco ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/python-modules/aplpy/default.nix b/pkgs/development/python-modules/aplpy/default.nix
index a6eedb3b7a4..e253c610c21 100644
--- a/pkgs/development/python-modules/aplpy/default.nix
+++ b/pkgs/development/python-modules/aplpy/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, fetchpatch
 , numpy
 , astropy
 , astropy-helpers
@@ -18,6 +19,7 @@
 buildPythonPackage rec {
   pname = "aplpy";
   version = "2.0.3";
+  format = "pyproject";
 
   src = fetchPypi {
     pname = "APLpy";
@@ -25,6 +27,15 @@ buildPythonPackage rec {
     sha256 = "239f3d83635ca4251536aeb577df7c60df77fc4d658097b92094719739aec3f3";
   };
 
+  patches = [ (fetchpatch {
+      # Can be removed in next release after 2.0.3
+      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" ];
+    })
+  ];
+
   propagatedBuildInputs = [
     numpy
     astropy
@@ -38,18 +49,10 @@ buildPythonPackage rec {
   ];
 
   nativeBuildInputs = [ astropy-helpers ];
-
   checkInputs = [ pytest pytest-astropy ];
 
-  # 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
   checkPhase = ''
-    cd build/lib
-    pytest
+    OPENMP_EXPECTED=0 pytest aplpy
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/asdf/default.nix b/pkgs/development/python-modules/asdf/default.nix
index 474329ed0b7..4006a034d48 100644
--- a/pkgs/development/python-modules/asdf/default.nix
+++ b/pkgs/development/python-modules/asdf/default.nix
@@ -17,18 +17,13 @@ buildPythonPackage rec {
   pname = "asdf";
   version = "2.7.1";
   disabled = isPy27;
+  format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "4ba2e31cb24b974a10dfae3edee23db2e6bea2d00608604d062366aa3af6e81a";
   };
 
-  postPatch = ''
-    substituteInPlace setup.cfg \
-      --replace "semantic_version>=2.3.1,<=2.6.0" "semantic_version>=2.3.1" \
-      --replace "doctest_plus = enabled" ""
-  '';
-
   checkInputs = [
     pytest-astropy
     astropy
@@ -45,7 +40,7 @@ buildPythonPackage rec {
   ];
 
   checkPhase = ''
-    pytest
+    PY_IGNORE_IMPORTMISMATCH=1 pytest
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/asgiref/default.nix b/pkgs/development/python-modules/asgiref/default.nix
index 3537736f77f..dc7b160b943 100644
--- a/pkgs/development/python-modules/asgiref/default.nix
+++ b/pkgs/development/python-modules/asgiref/default.nix
@@ -1,25 +1,31 @@
-{ stdenv, buildPythonPackage, pythonOlder, fetchFromGitHub, async-timeout, pytest, pytest-asyncio }:
+{ stdenv
+, async-timeout
+, buildPythonPackage
+, fetchFromGitHub
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+}:
+
 buildPythonPackage rec {
-  version = "3.2.10";
+  version = "3.3.1";
   pname = "asgiref";
 
   disabled = pythonOlder "3.5";
 
-  # PyPI tarball doesn't include tests directory
   src = fetchFromGitHub {
     owner = "django";
     repo = pname;
     rev = version;
-    sha256 = "1sj4yy2injaskwfi5pkb542jl8s6ljijnyra81gpw0pgd3d0bgxv";
+    sha256 = "00r4l9x425wkbac6b6c2ksm2yjinrvvdf0ajizrzq32h0jg82016";
   };
 
   propagatedBuildInputs = [ async-timeout ];
 
-  checkInputs = [ pytest pytest-asyncio ];
-
-  checkPhase = ''
-    py.test
-  '';
+  checkInputs = [
+    pytestCheckHook
+    pytest-asyncio
+  ];
 
   meta = with stdenv.lib; {
     description = "Reference ASGI adapters and channel layers";
diff --git a/pkgs/development/python-modules/astropy-extension-helpers/default.nix b/pkgs/development/python-modules/astropy-extension-helpers/default.nix
new file mode 100644
index 00000000000..bd9dca338fc
--- /dev/null
+++ b/pkgs/development/python-modules/astropy-extension-helpers/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "extension-helpers";
+  version = "0.1";
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "10iqjzmya2h4sk765dlm1pbqypwlqyh8rw59a5m9i63d3klnz2mc";
+  };
+
+  patches = [ ./permissions.patch ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [
+    "extension_helpers"
+  ];
+
+  meta = with lib; {
+    description = "Utilities for building and installing packages in the Astropy ecosystem";
+    homepage = "https://github.com/astropy/extension-helpers";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.rmcgibbo ];
+  };
+}
diff --git a/pkgs/development/python-modules/astropy-extension-helpers/permissions.patch b/pkgs/development/python-modules/astropy-extension-helpers/permissions.patch
new file mode 100644
index 00000000000..cef74b33603
--- /dev/null
+++ b/pkgs/development/python-modules/astropy-extension-helpers/permissions.patch
@@ -0,0 +1,20 @@
+diff --git a/extension_helpers/_setup_helpers.py b/extension_helpers/_setup_helpers.py
+index ec3e547..e2419f7 100644
+--- a/extension_helpers/_setup_helpers.py
++++ b/extension_helpers/_setup_helpers.py
+@@ -79,8 +79,13 @@ def get_extensions(srcdir='.'):
+     if len(ext_modules) > 0:
+         main_package_dir = min(packages, key=len)
+         src_path = os.path.join(os.path.dirname(__file__), 'src')
+-        shutil.copy(os.path.join(src_path, 'compiler.c'),
+-                    os.path.join(srcdir, main_package_dir, '_compiler.c'))
++        a = os.path.join(src_path, 'compiler.c')
++        b = os.path.join(srcdir, main_package_dir, '_compiler.c')
++        try:
++            os.unlink(b)
++        except OSError:
++            pass
++        shutil.copy(a, b)
+         ext = Extension(main_package_dir + '.compiler_version',
+                         [os.path.join(main_package_dir, '_compiler.c')])
+         ext_modules.append(ext)
diff --git a/pkgs/development/python-modules/astropy/default.nix b/pkgs/development/python-modules/astropy/default.nix
index 2fe59e53d9c..9ffcba63954 100644
--- a/pkgs/development/python-modules/astropy/default.nix
+++ b/pkgs/development/python-modules/astropy/default.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchPypi
+, setuptools_scm
 , buildPythonPackage
 , isPy3k
 , cython
@@ -8,11 +9,14 @@
 , pytest
 , pytest-astropy
 , astropy-helpers
+, astropy-extension-helpers
+, pyerfa
 }:
 
 buildPythonPackage rec {
   pname = "astropy";
   version = "4.2";
+  format = "pyproject";
 
   disabled = !isPy3k; # according to setup.py
 
@@ -21,15 +25,12 @@ buildPythonPackage rec {
     sha256 = "2c194f8a429b8399de64a413a06881ea49f0525cabaa2d78fc132b9e970adc6a";
   };
 
-  nativeBuildInputs = [ astropy-helpers cython jinja2 ];
-
-  propagatedBuildInputs = [ numpy pytest ]; # yes it really has pytest in install_requires
-
+  nativeBuildInputs = [ setuptools_scm astropy-helpers astropy-extension-helpers cython jinja2 ];
+  propagatedBuildInputs = [ numpy pyerfa ];
   checkInputs = [ pytest pytest-astropy ];
 
-  # Disable automatic update of the astropy-helper module
-  postPatch = ''
-    substituteInPlace setup.cfg --replace "auto_use = True" "auto_use = False"
+  preBuild = ''
+    export SETUPTOOLS_SCM_PRETEND_VERSION="${version}"
   '';
 
   # Tests must be run from the build directory.  astropy/samp tests
@@ -42,15 +43,14 @@ buildPythonPackage rec {
   '';
 
   # 368 failed, 10889 passed, 978 skipped, 69 xfailed in 196.24s
+  # doCheck = false;
   doCheck = false;
 
-  meta = {
+  meta = with lib; {
     description = "Astronomy/Astrophysics library for Python";
     homepage = "https://www.astropy.org";
-    license = lib.licenses.bsd3;
-    platforms = lib.platforms.all;
-    maintainers = with lib.maintainers; [ kentjames ];
+    license = licenses.bsd3;
+    platforms = platforms.all;
+    maintainers = [ maintainers.kentjames ];
   };
 }
-
-
diff --git a/pkgs/development/python-modules/astroquery/default.nix b/pkgs/development/python-modules/astroquery/default.nix
index e82dca3e955..f7764149a66 100644
--- a/pkgs/development/python-modules/astroquery/default.nix
+++ b/pkgs/development/python-modules/astroquery/default.nix
@@ -15,6 +15,7 @@
 buildPythonPackage rec {
   pname = "astroquery";
   version = "0.4.1";
+  format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
@@ -31,11 +32,6 @@ buildPythonPackage rec {
   doCheck = false;
   checkInputs = [ pytest pytest-astropy ];
 
-  # 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. The tests create files
   # in $HOME/.astropy so we need to set HOME to $TMPDIR.
   checkPhase = ''
diff --git a/pkgs/development/python-modules/asyncio-dgram/default.nix b/pkgs/development/python-modules/asyncio-dgram/default.nix
new file mode 100644
index 00000000000..9edc215abcf
--- /dev/null
+++ b/pkgs/development/python-modules/asyncio-dgram/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pytest-asyncio
+}:
+
+buildPythonPackage rec {
+  pname = "asyncio-dgram";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "jsbronder";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1zkmjvq47zw2fsbnzhr5mh9rsazx0z1f8m528ash25jrxsza5crm";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+    pytest-asyncio  
+  ];
+
+  disabledTests = [ "test_protocol_pause_resume" ];
+  pythonImportsCheck = [ "asyncio_dgram" ];
+
+  meta = with lib; {
+    description = "Python support for higher level Datagram";
+    homepage = "https://github.com/jsbronder/asyncio-dgram";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/asyncssh/default.nix b/pkgs/development/python-modules/asyncssh/default.nix
index 44b769636ca..dc990325bfe 100644
--- a/pkgs/development/python-modules/asyncssh/default.nix
+++ b/pkgs/development/python-modules/asyncssh/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "asyncssh";
-  version = "2.4.2";
+  version = "2.5.0";
   disabled = pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1c4a697d05a5e3d8d16ea18526115e84d8f015ba4c8b721a0d84062b6b244ef4";
+    sha256 = "0b65e2af73a2e39a271bd627abbe4f7e4b0345486ed403e65987d79c72fcb70b";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/asyncwhois/default.nix b/pkgs/development/python-modules/asyncwhois/default.nix
new file mode 100644
index 00000000000..a6ec6049ca2
--- /dev/null
+++ b/pkgs/development/python-modules/asyncwhois/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, aiodns
+, tldextract
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "asyncwhois";
+  version = "0.2.2";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "59ed35fbe646491b6c3e1dcf6db9b4870c3d44c6c023a1c3badd6226551d7b7e";
+  };
+
+  propagatedBuildInputs = [
+    aiodns
+    tldextract
+  ];
+
+  # tests are only present at GitHub but not the released source tarballs
+  # https://github.com/pogzyb/asyncwhois/issues/10
+  doCheck = false;
+  pythonImportsCheck = [ "asyncwhois" ];
+
+  meta = with lib; {
+    description = "Python module for retrieving WHOIS information";
+    homepage = "https://github.com/pogzyb/asyncwhois";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/auth0-python/default.nix b/pkgs/development/python-modules/auth0-python/default.nix
index 2af445b48c5..79844afe318 100644
--- a/pkgs/development/python-modules/auth0-python/default.nix
+++ b/pkgs/development/python-modules/auth0-python/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "auth0-python";
-  version = "3.13.0";
+  version = "3.14.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2e968d01364c8c94fbe85154ab77ebe9e51a3f8282405bb33748071452063004";
+    sha256 = "ac7808d00676c5e7ffa9eaa228807ca1f8db7a0f4dc115337c80fb6d7eb2b50a";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/autobahn/default.nix b/pkgs/development/python-modules/autobahn/default.nix
index 909fb65996b..12aa86774d8 100644
--- a/pkgs/development/python-modules/autobahn/default.nix
+++ b/pkgs/development/python-modules/autobahn/default.nix
@@ -4,11 +4,11 @@
 }:
 buildPythonPackage rec {
   pname = "autobahn";
-  version = "20.7.1";
+  version = "20.12.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "86bbce30cdd407137c57670993a8f9bfdfe3f8e994b889181d85e844d5aa8dfb";
+    sha256 = "15b8zm7jalwisfwc08szxy3bh2bnn0hd41dbsnswi0lqwbh962j1";
   };
 
   propagatedBuildInputs = [ six txaio twisted zope_interface cffi cryptography pynacl ] ++
diff --git a/pkgs/development/python-modules/avea/default.nix b/pkgs/development/python-modules/avea/default.nix
new file mode 100644
index 00000000000..10674ca667d
--- /dev/null
+++ b/pkgs/development/python-modules/avea/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, bluepy
+}:
+
+buildPythonPackage rec {
+  pname = "avea";
+  version = "1.5.1";
+
+  src = fetchFromGitHub {
+    owner = "k0rventen";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "13s21dnhbh10dd60xq2cklp5jyv46rpl3nivn1imcswp02930ihz";
+  };
+
+  propagatedBuildInputs = [
+    bluepy
+  ];
+
+  # no tests are present
+  doCheck = false;
+  pythonImportsCheck = [ "avea" ];
+
+  meta = with lib; {
+    description = "Python module for interacting with Elgato's Avea bulb";
+    homepage = "https://github.com/k0rventen/avea";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/awkward/default.nix b/pkgs/development/python-modules/awkward/default.nix
index 6a919c768c7..9b9ca52b947 100644
--- a/pkgs/development/python-modules/awkward/default.nix
+++ b/pkgs/development/python-modules/awkward/default.nix
@@ -1,34 +1,35 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, cmake
+, numba
 , numpy
-, pandas
-, pytestrunner
-, pytest
-, h5py
+, pytestCheckHook
+, rapidjson
 }:
 
 buildPythonPackage rec {
   pname = "awkward";
-  version = "0.14.0";
+  version = "1.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6a3878f46e8bc2acf28a0b9feb69d354ad2fee2a2a0f65c48c115aa74f245204";
+    sha256 = "d856b4a166ae054363368aed2e4a44338fec069baa4242e7d567c8323ebcc1eb";
   };
 
-  nativeBuildInputs = [ pytestrunner ];
-  checkInputs = [ pandas pytest h5py ];
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ rapidjson ];
   propagatedBuildInputs = [ numpy ];
 
-  checkPhase = ''
-    py.test
-  '';
+  dontUseCmakeConfigure = true;
+
+  checkInputs = [ pytestCheckHook numba ];
+  dontUseSetuptoolsCheck = true;
 
   meta = with lib; {
-    description = "Manipulate jagged, chunky, and/or bitmasked arrays as easily as Numpy";
-    homepage = "https://github.com/scikit-hep/awkward-array";
+    description = "Manipulate JSON-like data with NumPy-like idioms";
+    homepage = "https://github.com/scikit-hep/awkward-1.0";
     license = licenses.bsd3;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ veprbl ];
   };
 }
diff --git a/pkgs/development/python-modules/awkward0/default.nix b/pkgs/development/python-modules/awkward0/default.nix
new file mode 100644
index 00000000000..4441d131e63
--- /dev/null
+++ b/pkgs/development/python-modules/awkward0/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, numpy
+, pandas
+, pytestrunner
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "awkward0";
+  version = "0.15.1";
+
+  src = fetchFromGitHub {
+    owner = "scikit-hep";
+    repo = "awkward-0.x";
+    rev = version;
+    sha256 = "17zrw25h6g5m4ik1c5piqb7q2bxrshfm4hm3lzfz4s8gi0xjm5gz";
+  };
+
+  nativeBuildInputs = [ pytestrunner ];
+
+  propagatedBuildInputs = [ numpy ];
+
+  checkInputs = [ pandas pytestCheckHook ];
+
+  checkPhase = ''
+    # Almost all tests in this file fail
+    rm tests/test_persist.py
+    py.test
+  '';
+
+  meta = with lib; {
+    description = "Manipulate jagged, chunky, and/or bitmasked arrays as easily as Numpy";
+    homepage = "https://github.com/scikit-hep/awkward-array";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ costrouc SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/development/python-modules/awkward1/default.nix b/pkgs/development/python-modules/awkward1/default.nix
deleted file mode 100644
index dae8a235d80..00000000000
--- a/pkgs/development/python-modules/awkward1/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cmake
-, numba
-, numpy
-, pytestCheckHook
-, rapidjson
-}:
-
-buildPythonPackage rec {
-  pname = "awkward1";
-  version = "0.4.5";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "8c786d1641343e9887c21794f9a3bf51716b00ed3b182491f1acbc9e389b31bb";
-  };
-
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [ rapidjson ];
-  propagatedBuildInputs = [ numpy ];
-
-  dontUseCmakeConfigure = true;
-
-  checkInputs = [ pytestCheckHook numba ];
-  dontUseSetuptoolsCheck = true;
-
-  meta = with lib; {
-    description = "Manipulate JSON-like data with NumPy-like idioms";
-    homepage = "https://github.com/scikit-hep/awkward-1.0";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ veprbl ];
-  };
-}
diff --git a/pkgs/development/python-modules/azure-mgmt-cdn/default.nix b/pkgs/development/python-modules/azure-mgmt-cdn/default.nix
index 41d0387da2f..b204add2b5e 100644
--- a/pkgs/development/python-modules/azure-mgmt-cdn/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-cdn/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-cdn";
-  version = "5.2.0";
+  version = "6.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "3e470ba07918a4f97dadb6f50c6f64068da423b735fad38d31d9535c56f06881";
+    sha256 = "590cd35c9f1556a2d93d93a88b5c5661f716de094f22db30f4d05dc58a131c84";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-databoxedge/default.nix b/pkgs/development/python-modules/azure-mgmt-databoxedge/default.nix
new file mode 100644
index 00000000000..317019844cb
--- /dev/null
+++ b/pkgs/development/python-modules/azure-mgmt-databoxedge/default.nix
@@ -0,0 +1,32 @@
+{ lib, buildPythonPackage, fetchPypi
+, msrestazure
+, azure-common
+}:
+
+buildPythonPackage rec {
+  pname = "azure-mgmt-databoxedge";
+  version = "0.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "g8BtUpIGOse8Jrws48gQ/o7sgymlgX0XIxl1ThHS3XA=";
+  };
+
+  propagatedBuildInputs = [
+    msrestazure
+    azure-common
+  ];
+
+  # no tests in pypi tarball
+  doCheck = false;
+
+  pythonImportsCheck = [ "azure.mgmt.databoxedge" ];
+
+  meta = with lib; {
+    description = "Microsoft Azure Databoxedge Management Client Library for Python";
+    homepage = "https://github.com/Azure/azure-sdk-for-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix b/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix
index 08b9e73e66d..08915244fc4 100644
--- a/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix
@@ -5,13 +5,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.0.0";
+  version = "2.1.0";
   pname = "azure-mgmt-hdinsight";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fd47029f2423e45ec4d311f651dc972043b98e960f186f5c6508c6fdf6eb2fe8";
+    sha256 = "ed55df52d35fc03a9c7ca060af1ec0faf7b5510381d2a5e74b73f59ac0d79028";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix b/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix
index 525a72a7009..e6fd01f7347 100644
--- a/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix
@@ -7,16 +7,17 @@
 , msrestazure
 , azure-common
 , azure-mgmt-nspkg
+, azure-mgmt-core
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-loganalytics";
-  version = "2.0.0";
+  version = "7.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "947cada6e52fea6ecae7011d7532cf8edbe90250753a58749c473b863331fcc6";
+    sha256 = "e603f9fc61b8d2f93d8814bcca012a8b425cf0c0320ddf1e84462929cf34d1af";
   };
 
   propagatedBuildInputs = [
@@ -24,6 +25,7 @@ buildPythonPackage rec {
     msrestazure
     azure-common
     azure-mgmt-nspkg
+    azure-mgmt-core
   ];
 
   pythonNamespaces = [ "azure.mgmt" ];
diff --git a/pkgs/development/python-modules/azure-mgmt-recoveryservices/default.nix b/pkgs/development/python-modules/azure-mgmt-recoveryservices/default.nix
index 7f4de1a463b..a0ee8f3ce9c 100644
--- a/pkgs/development/python-modules/azure-mgmt-recoveryservices/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-recoveryservices/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-recoveryservices";
-  version = "0.5.0";
+  version = "0.6.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "3c90e6b2e358dbe6d5c6d7204955bdf52c3e977c6f8b727cbbb8811427d7fd52";
+    sha256 = "203ebbd6b698a99975092a72d6d47285646a0264b9085fecef1e7b7c98c5d52e";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-synapse/default.nix b/pkgs/development/python-modules/azure-mgmt-synapse/default.nix
index 2135853ff9d..22b6281fa76 100644
--- a/pkgs/development/python-modules/azure-mgmt-synapse/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-synapse/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-synapse";
-  version = "0.5.0";
+  version = "0.6.0";
   disabled = pythonOlder "3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4eb76230c38525b71eb1addefebd265bc3d9b68ba7ff60ce5356d39f68ed2837";
+    sha256 = "f81cb52b220774aab93ffcf25bdc17e03fd84b6916836640789f86fbf636b984";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/azure-synapse-artifacts/default.nix b/pkgs/development/python-modules/azure-synapse-artifacts/default.nix
index 85ec70f704c..f33df1fdbe8 100644
--- a/pkgs/development/python-modules/azure-synapse-artifacts/default.nix
+++ b/pkgs/development/python-modules/azure-synapse-artifacts/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "azure-synapse-artifacts";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "0p43zmw96fh3wp75phf3fcqdfb36adqvxfc945yfda6fi555nw1a";
+    sha256 = "09fd9cf8c25c901d2daf7e436062065ada866f212f371f9d66f394d39ccaa23b";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-synapse-spark/default.nix b/pkgs/development/python-modules/azure-synapse-spark/default.nix
index fb724e6dbfb..571f3f9d08d 100644
--- a/pkgs/development/python-modules/azure-synapse-spark/default.nix
+++ b/pkgs/development/python-modules/azure-synapse-spark/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "azure-synapse-spark";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fcfe559e30a2e159f07e371af28d18dc635dc55174fb3457be7210ce8e7e7559";
+    sha256 = "7f5881fda4108363c8c6fdee0494fa067ba81e60f038883859d23fc197f5f286";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/backports_unittest-mock/default.nix b/pkgs/development/python-modules/backports_unittest-mock/default.nix
index a55eeff511f..b85c642787e 100644
--- a/pkgs/development/python-modules/backports_unittest-mock/default.nix
+++ b/pkgs/development/python-modules/backports_unittest-mock/default.nix
@@ -13,9 +13,14 @@ buildPythonPackage rec {
 
   buildInputs = [ setuptools_scm ];
 
+  # does not contain tests
+  doCheck = false;
+  pythonImportsCheck = [ "backports.unittest_mock" ];
+
   meta = with stdenv.lib; {
     description = "Provides a function install() which makes the mock module";
     homepage = "https://github.com/jaraco/backports.unittest_mock";
     license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/bids-validator/default.nix b/pkgs/development/python-modules/bids-validator/default.nix
index b139a88820e..22807bb3535 100644
--- a/pkgs/development/python-modules/bids-validator/default.nix
+++ b/pkgs/development/python-modules/bids-validator/default.nix
@@ -4,12 +4,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.5.7";
+  version = "1.5.8";
   pname = "bids-validator";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "624fade609636c64e7829ff072bdf12f93512948a803059b059e5c90df894be2";
+    sha256 = "5b8c3b9047d2e00e25746d55f56f62071f0a82dd2de59371a1ee589fe28b2852";
   };
 
   # needs packages which are not available in nixpkgs
diff --git a/pkgs/development/python-modules/billiard/default.nix b/pkgs/development/python-modules/billiard/default.nix
index 5bccf792452..ff87ba2e669 100644
--- a/pkgs/development/python-modules/billiard/default.nix
+++ b/pkgs/development/python-modules/billiard/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPyPy, pytest, case, psutil }:
+{ stdenv, buildPythonPackage, fetchPypi, isPyPy, pytestCheckHook, case, psutil, fetchpatch }:
 
 buildPythonPackage rec {
   pname = "billiard";
@@ -9,11 +9,15 @@ buildPythonPackage rec {
     inherit pname version;
     sha256 = "0spssl3byzqsplra166d59jx8iqfxyzvcbx7vybkmwr5ck72a5yr";
   };
+  patches = [(fetchpatch {
+    # Add Python 3.9 support to spawnv_passfds()
+    # Should be included in next release after 3.6.3.0
+    url = "https://github.com/celery/billiard/pull/310/commits/a508ebafadcfe2e25554b029593f3e66d01ede6c.patch";
+    sha256 = "05zsr1bvjgi01qg7r274c0qvbn65iig3clyz14c08mpfyn38h84i";
+    excludes = [ "tox.ini" ];
+  })];
 
-  checkInputs = [ pytest case psutil ];
-  checkPhase = ''
-    pytest
-  '';
+  checkInputs = [ pytestCheckHook case psutil ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/celery/billiard";
diff --git a/pkgs/development/python-modules/bleak/default.nix b/pkgs/development/python-modules/bleak/default.nix
index 09ba8f7b5f5..91d94fcd72d 100644
--- a/pkgs/development/python-modules/bleak/default.nix
+++ b/pkgs/development/python-modules/bleak/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "bleak";
-  version = "0.9.1";
+  version = "0.10.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f81b0069e5c1570883144c1910b884e5cefe16d3c2ed09e579b6d8f853f08588";
+    sha256 = "5c3a873965f2910865895e572e7a4f10533d6e150e6ba17936397426bf8d1eee";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/blockchain/default.nix b/pkgs/development/python-modules/blockchain/default.nix
new file mode 100644
index 00000000000..e6d523c3c7b
--- /dev/null
+++ b/pkgs/development/python-modules/blockchain/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, future
+}:
+
+buildPythonPackage rec {
+  pname = "blockchain";
+  version = "1.4.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1qpbmz6dk5gx1996dswpipwhj6sp5j0dlfap012l46zqnvmkxanv";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py --replace "enum-compat" ""
+  '';
+
+  propagatedBuildInputs = [
+    future
+  ];
+
+  # tests are interacting with the API and not mocking the calls
+  doCheck = false;
+
+  pythonImportsCheck = [ "blockchain" ];
+
+  meta = with lib; {
+    description = "Python client Blockchain Bitcoin Developer API";
+    homepage = "https://github.com/blockchain/api-v1-client-python";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/bluepy/default.nix b/pkgs/development/python-modules/bluepy/default.nix
index 8d247b41d27..a26cdb9dd35 100644
--- a/pkgs/development/python-modules/bluepy/default.nix
+++ b/pkgs/development/python-modules/bluepy/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     description = "Python interface to Bluetooth LE on Linux";
     homepage = "https://github.com/IanHarvey/bluepy";
     maintainers = with maintainers; [ georgewhewell ];
+    platforms = platforms.linux;
     license = licenses.gpl2;
   };
-
 }
diff --git a/pkgs/development/python-modules/boto3/default.nix b/pkgs/development/python-modules/boto3/default.nix
index 8af7b6b04c5..f08501e2a0b 100644
--- a/pkgs/development/python-modules/boto3/default.nix
+++ b/pkgs/development/python-modules/boto3/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname =  "boto3";
-  version = "1.16.37"; # N.B: if you change this, change botocore too
+  version = "1.16.49"; # N.B: if you change this, change botocore too
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "01d4mk1q37dc5l5jmsxm7fijmhq7678ka1bd4p8a8yj57mmw51pf";
+    sha256 = "sha256-Tcj3YQmJHZFriUIJhl9Nlo5kqv+kySFH/wJ89NVXrGw=";
   };
 
   propagatedBuildInputs = [ botocore jmespath s3transfer ] ++ lib.optionals (!isPy3k) [ futures ];
diff --git a/pkgs/development/python-modules/botocore/default.nix b/pkgs/development/python-modules/botocore/default.nix
index eabb8873fd2..877e52d3a37 100644
--- a/pkgs/development/python-modules/botocore/default.nix
+++ b/pkgs/development/python-modules/botocore/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "botocore";
-  version = "1.19.37"; # N.B: if you change this, change boto3 and awscli to a matching version
+  version = "1.19.49"; # N.B: if you change this, change boto3 and awscli to a matching version
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "14bl9sklilrz0fsch4zw1rx8zdq6h9va2786wxn36yax8n2i5gv7";
+    sha256 = "sha256-7sxhHtOG3sjkfKCH9F5lwTN5RsS1szr3EyXvmkmucN0=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/branca/default.nix b/pkgs/development/python-modules/branca/default.nix
index 7884ff65f28..4251c88058c 100644
--- a/pkgs/development/python-modules/branca/default.nix
+++ b/pkgs/development/python-modules/branca/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "branca";
-  version = "0.4.1";
+  version = "0.4.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1f7drarwiw8fh17hpq8b3p4mfqgjbh3k045dvpx5z12d3a0zg7ca";
+    sha256 = "c111453617b17ab2bda60a4cd71787d6f2b59c85cdf71ab160a737606ac66c31";
   };
 
   checkInputs = [ pytest selenium ];
diff --git a/pkgs/development/python-modules/breathe/default.nix b/pkgs/development/python-modules/breathe/default.nix
index 729b9f9f24a..e283c9ee6be 100644
--- a/pkgs/development/python-modules/breathe/default.nix
+++ b/pkgs/development/python-modules/breathe/default.nix
@@ -1,13 +1,13 @@
 { lib, fetchPypi, buildPythonPackage, docutils, six, sphinx, isPy3k, isPy27 }:
 
 buildPythonPackage rec {
-  version = "4.24.1";
+  version = "4.25.1";
   pname = "breathe";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d8e47ba4b975f3228a13daf481762f784f87d1e6e87a01619360d59e558d2fc0";
+    sha256 = "bf81658ed31f8f586247d203923479fcde6c3797d376c804bdafa7e56ffd43b5";
   };
 
   propagatedBuildInputs = [ docutils six sphinx ];
diff --git a/pkgs/development/python-modules/buildbot/default.nix b/pkgs/development/python-modules/buildbot/default.nix
index 31a342b7621..84476a2ca36 100644
--- a/pkgs/development/python-modules/buildbot/default.nix
+++ b/pkgs/development/python-modules/buildbot/default.nix
@@ -25,11 +25,11 @@ let
 
   package = buildPythonPackage rec {
     pname = "buildbot";
-    version = "2.9.2";
+    version = "2.10.0";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "019xfxjnyfi69d5sm3alvib24g8giqlvc102p8hqg8mfm7hc9z2v";
+      sha256 = "06fgp5gpacyx1sqh1f6590r792d5lhzspwmjli592ajx69ckzzwf";
     };
 
     propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/buildbot/pkg.nix b/pkgs/development/python-modules/buildbot/pkg.nix
index 70073eb5c9a..90c2f099197 100644
--- a/pkgs/development/python-modules/buildbot/pkg.nix
+++ b/pkgs/development/python-modules/buildbot/pkg.nix
@@ -6,7 +6,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "01s58zi72drv4lwn6jg6i5mrpf3mpq74761z6iwx5hsdnqg1hxai";
+    sha256 = "1wr8fxa80c6vq55zv7k9rf61r805flrhd2v28qfl05jz1inghysb";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/buildbot/plugins.nix b/pkgs/development/python-modules/buildbot/plugins.nix
index 43bc8717e59..92e78f940d5 100644
--- a/pkgs/development/python-modules/buildbot/plugins.nix
+++ b/pkgs/development/python-modules/buildbot/plugins.nix
@@ -7,7 +7,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "1z5sca2ksbr1j6p0kr8i9a61c46mdmbbd6hvc6407c3z5393mp30";
+      sha256 = "0bzn00qqx0xd9r4rrz01y9zmiwjlhcanrs13r1yzp2mycn9q5865";
     };
 
     # Remove unneccessary circular dependency on buildbot
@@ -34,7 +34,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "1kz54zlc2yr9cjvw7rihcx7hfk245r6yh4mfyala38jby3hd68p0";
+      sha256 = "0yh0dpg27gl3pk3nimj1yb6rw7kxvsv1bvzc6hbcfx3a9qdajicj";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -56,7 +56,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "0ac0dzldxl4j9cb4kpmhjwf5m1zjjvcg0hx9kghallab0sk1198p";
+      sha256 = "0b9fffr53wfq328csrqgdinafbs1v5s7yn4ky8faw6sqyd8l197v";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -78,7 +78,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "1m41l2d6yb4mbg1ybn7q6wmkfvwssmfb4inmpwyvy55bcvgyixcm";
+      sha256 = "0pz1kmq731ap79l05l13f10r81lzgif5aydpsfz3k5fa9flvxjxs";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -100,7 +100,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "1g58kr2zc7k94k0avly0vyyryg18gpsbick8mj5cz81s2pfmmyfq";
+      sha256 = "1jf72dzmgwrkqbr2f8s2dvf0zpvl3vbdq0qsf0g8xal272l7cmca";
     };
 
     buildInputs = [ buildbot-pkg ];
diff --git a/pkgs/development/python-modules/buildbot/worker.nix b/pkgs/development/python-modules/buildbot/worker.nix
index 942c82f15a0..bf5e1e6ae98 100644
--- a/pkgs/development/python-modules/buildbot/worker.nix
+++ b/pkgs/development/python-modules/buildbot/worker.nix
@@ -7,7 +7,7 @@ buildPythonPackage (rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1salrdirny1jpm53shb9dhzs1w7rbp5q7z2qpzrg1nmsh2kcd6ap";
+    sha256 = "1s51ycgnvjbxc2y358vw6rnw8xsx9grj6pxzfxjrph784igy22r0";
   };
 
   propagatedBuildInputs = [ twisted future ];
diff --git a/pkgs/development/python-modules/bumps/default.nix b/pkgs/development/python-modules/bumps/default.nix
index 37ddae15036..e2938e0f32e 100644
--- a/pkgs/development/python-modules/bumps/default.nix
+++ b/pkgs/development/python-modules/bumps/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "bumps";
-  version = "0.7.18";
+  version = "0.8.0";
 
   propagatedBuildInputs = [six];
 
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3217d4fd3ec767448d742f3b6ff527cc3817f2421b9a9a8456e1d8ee4a9b1087";
+    sha256 = "9f92c05effd8175763799d19ca55592e89b053318f611148a6725159aea41d67";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/cadquery/default.nix b/pkgs/development/python-modules/cadquery/default.nix
index 886224d1691..e1566baff6b 100644
--- a/pkgs/development/python-modules/cadquery/default.nix
+++ b/pkgs/development/python-modules/cadquery/default.nix
@@ -1,25 +1,25 @@
 { lib
-  , buildPythonPackage
-  , isPy3k
-  , pythonOlder
-  , pythonAtLeast
-  , fetchFromGitHub
-  , pyparsing
-  , opencascade
-  , stdenv
-  , python
-  , cmake
-  , swig
-  , ninja
-  , smesh
-  , freetype
-  , libGL
-  , libGLU
-  , libX11
-  , six
-  , pytest
-  , makeFontsConf
-  , freefont_ttf
+, buildPythonPackage
+, isPy3k
+, pythonOlder
+, pythonAtLeast
+, fetchFromGitHub
+, pyparsing
+, opencascade
+, stdenv
+, python
+, cmake
+, swig
+, smesh
+, freetype
+, libGL
+, libGLU
+, libX11
+, six
+, pytest
+, makeFontsConf
+, freefont_ttf
+, Cocoa
 }:
 
 let
@@ -38,7 +38,6 @@ let
     nativeBuildInputs = [
       cmake
       swig
-      ninja
     ];
 
     buildInputs = [
@@ -49,7 +48,7 @@ let
       libGL
       libGLU
       libX11
-    ];
+    ] ++ stdenv.lib.optionals stdenv.isDarwin [ Cocoa ];
 
     propagatedBuildInputs = [
       six
diff --git a/pkgs/development/python-modules/casbin/default.nix b/pkgs/development/python-modules/casbin/default.nix
index 646e111d4bc..6633657d186 100644
--- a/pkgs/development/python-modules/casbin/default.nix
+++ b/pkgs/development/python-modules/casbin/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "casbin";
-  version = "0.13.0";
+  version = "0.15.0";
 
   disabled = isPy27;
 
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = "pycasbin";
     rev = "v${version}";
-    sha256 = "1im5j3wsjh916v2mp1bfi53m6k6w9s3sr5ja4anrz4b9izc65m0j";
+    sha256 = "0w34xs9qpf1x4rq2ri4fhx3yi8h4inzavv9hjsx8mlkzid7gdx1b";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cfn-lint/default.nix b/pkgs/development/python-modules/cfn-lint/default.nix
index b79bf761317..f55042c58d2 100644
--- a/pkgs/development/python-modules/cfn-lint/default.nix
+++ b/pkgs/development/python-modules/cfn-lint/default.nix
@@ -14,25 +14,25 @@
 , requests
 , setuptools
 , six
-# Test inputs
-, pytestCheckHook
 , mock
 , pydot
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "cfn-lint";
-  version = "0.35.1";
+  version = "0.42.0";
 
   src = fetchFromGitHub {
     owner = "aws-cloudformation";
-    repo  = "cfn-python-lint";
+    repo = "cfn-python-lint";
     rev = "v${version}";
-    sha256 = "1ajb0412hw9fg9m4b3xbpfbp8cixmnpjxrkaks6k749xinzsv7qk";
+    sha256 = "0cqpq7pxpslpd7am6mp6nmwhsb2p2a5lq3hjjxi8imv3wv7zql98";
   };
 
   postPatch = ''
-    substituteInPlace setup.py --replace 'importlib_resources~=1.4;python_version<"3.7" and python_version!="3.4"' 'importlib_resources;python_version<"3.7"'
+    substituteInPlace setup.py \
+      --replace 'importlib_resources~=1.4;python_version<"3.7" and python_version!="3.4"' 'importlib_resources;python_version<"3.7"'
   '';
 
   propagatedBuildInputs = [
@@ -48,6 +48,27 @@ buildPythonPackage rec {
     six
   ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata importlib-resources ];
 
+  checkInputs = [
+    mock
+    pydot
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    export PATH=$out/bin:$PATH
+  '';
+
+  disabledTests = [
+    # These tests depend on the current date, for example because of issues like this.
+    # This makes it possible for them to succeed on hydra and then begin to fail without
+    # any code changes.
+    # https://github.com/aws-cloudformation/cfn-python-lint/issues/1705
+    # See also: https://github.com/NixOS/nixpkgs/issues/108076
+    "TestQuickStartTemplates"
+    # requires git directory
+    "test_update_docs"
+  ];
+
   pythonImportsCheck = [
     "cfnlint"
     "cfnlint.conditions"
@@ -64,9 +85,6 @@ buildPythonPackage rec {
     "cfnlint.transform"
   ];
 
-  checkInputs = [ pytestCheckHook mock pydot ];
-  preCheck = "export PATH=$out/bin:$PATH";
-
   meta = with lib; {
     description = "Checks cloudformation for practices and behaviour that could potentially be improved";
     homepage = "https://github.com/aws-cloudformation/cfn-python-lint";
diff --git a/pkgs/development/python-modules/chalice/default.nix b/pkgs/development/python-modules/chalice/default.nix
index 42018661f74..224ff33d5f0 100644
--- a/pkgs/development/python-modules/chalice/default.nix
+++ b/pkgs/development/python-modules/chalice/default.nix
@@ -22,11 +22,11 @@
 
 buildPythonPackage rec {
   pname = "chalice";
-  version = "1.21.6";
+  version = "1.21.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b7a17583e0553caa0e44d23186b4aad069f7665c24a473104d1f04e62cc4cb07";
+    sha256 = "22512bccb9b881b8d5a33bd45c7ad539dee60f2f8685a5ed8afd5000a962b0f8";
   };
 
   checkInputs = [ watchdog pytest hypothesis mock ];
diff --git a/pkgs/development/python-modules/channels-redis/default.nix b/pkgs/development/python-modules/channels-redis/default.nix
index fb0774478a0..a43a8ce7d0a 100644
--- a/pkgs/development/python-modules/channels-redis/default.nix
+++ b/pkgs/development/python-modules/channels-redis/default.nix
@@ -1,51 +1,42 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonOlder
-, redis, channels, msgpack, aioredis, hiredis, asgiref
-# , fetchFromGitHub, async_generator, async-timeout, cryptography, pytest, pytest-asyncio
+{ stdenv
+, aioredis
+, asgiref
+, buildPythonPackage
+, channels
+, fetchPypi
+, hiredis
+, msgpack
+, pythonOlder
+, redis
 }:
 
 buildPythonPackage rec {
   pname = "channels-redis";
-  version = "2.4.0";
+  version = "3.2.0";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit version;
     pname = "channels_redis";
-    sha256 = "1g4izdf8237pwxn85bv5igc2bajrvck1p2a7q448qmjfznrbrk5p";
+    sha256 = "1rjs9irnq59yr6zwc9k6nnw6xrmr48dakrm25m0gcwskn1iimcrg";
   };
 
   buildInputs = [ redis hiredis ];
 
   propagatedBuildInputs = [ channels msgpack aioredis asgiref ];
 
-  # Fetch from github (no tests files on pypi)
-  # src = fetchFromGitHub {
-  #   rev = version;
-  #   owner = "django";
-  #   repo = "channels_redis";
-  #   sha256 = "05niaqjv790mnrvca26kbnvb50fgnk2zh0k4np60cn6ilp4nl0kc";
-  # };
-  #
-  # checkInputs = [
-  #   async_generator
-  #   async-timeout
-  #   cryptography
-  #   pytest
-  #   pytest-asyncio
-  # ];
-  #
-  # # Fails with : ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 6379)
-  # # (even with a local redis instance running)
-  # checkPhase = ''
-  #   pytest -p no:django tests/
-  # '';
+  # Fails with : ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 6379)
+  # (even with a local Redis instance running)
+  doCheck = false;
 
   postPatch = ''
     sed -i "s/msgpack~=0.6.0/msgpack/" setup.py
     sed -i "s/aioredis~=1.0/aioredis/" setup.py
   '';
 
+  pythonImportsCheck = [ "channels_redis" ];
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/django/channels_redis/";
     description = "Redis-backed ASGI channel layer implementation";
diff --git a/pkgs/development/python-modules/channels/default.nix b/pkgs/development/python-modules/channels/default.nix
index 63b1699101d..20e470d8c70 100644
--- a/pkgs/development/python-modules/channels/default.nix
+++ b/pkgs/development/python-modules/channels/default.nix
@@ -3,11 +3,11 @@
 }:
 buildPythonPackage rec {
   pname = "channels";
-  version = "3.0.2";
+  version = "3.0.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f50a6e79757a64c1e45e95e144a2ac5f1e99ee44a0718ab182c501f5e5abd268";
+    sha256 = "056b72e51080a517a0f33a0a30003e03833b551d75394d6636c885d4edb8188f";
   };
 
   # Files are missing in the distribution
diff --git a/pkgs/development/python-modules/cheroot/default.nix b/pkgs/development/python-modules/cheroot/default.nix
index 6c99b7bbf66..c9d3094d595 100644
--- a/pkgs/development/python-modules/cheroot/default.nix
+++ b/pkgs/development/python-modules/cheroot/default.nix
@@ -1,4 +1,5 @@
 { lib, stdenv, fetchPypi, buildPythonPackage, isPy3k
+, jaraco_functools
 , jaraco_text
 , more-itertools
 , portend
@@ -23,12 +24,17 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1089c28a9c320d19fdf9a4b0ed6ace23a0948db1c171a36ac985f3741bc62865";
+    sha256 = "0r98qqdp9ww5r5ma6wf1n66r9813rrmfvc54z7yij39jkj5c528h";
   };
 
   nativeBuildInputs = [ setuptools_scm setuptools-scm-git-archive ];
 
-  propagatedBuildInputs = [ more-itertools six ];
+  propagatedBuildInputs = [
+    # install_requires
+    jaraco_functools
+
+    more-itertools six
+  ];
 
   checkInputs = [
     jaraco_text
diff --git a/pkgs/development/python-modules/ciscomobilityexpress/default.nix b/pkgs/development/python-modules/ciscomobilityexpress/default.nix
new file mode 100644
index 00000000000..86a2bd8aa88
--- /dev/null
+++ b/pkgs/development/python-modules/ciscomobilityexpress/default.nix
@@ -0,0 +1,20 @@
+{ buildPythonPackage, fetchPypi, lib, requests }:
+
+buildPythonPackage rec {
+  pname = "ciscomobilityexpress";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "fd3fe893d8a44f5ac1d46580af88e07f1066e73744763aca4ef2226f87d575ff";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  meta = {
+    description = "Module to interact with Cisco Mobility Express APIs to fetch connected devices";
+    homepage = "https://pypi.python.org/pypi/${pname}/";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ uvnikita ];
+  };
+}
diff --git a/pkgs/development/python-modules/clickhouse-driver/default.nix b/pkgs/development/python-modules/clickhouse-driver/default.nix
index 9cb88b5cbc9..a1addcfc97a 100644
--- a/pkgs/development/python-modules/clickhouse-driver/default.nix
+++ b/pkgs/development/python-modules/clickhouse-driver/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "clickhouse-driver";
-  version = "0.1.5";
+  version = "0.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1827cm5z2zd6mxn9alq54bbzw6vhz4a30a54vacqn7nz691qs1gd";
+    sha256 = "62d37f93872d5a13eb6b0d52bab2b593ed0e14cf9200949aa2d02f9801064c0f";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/clifford/default.nix b/pkgs/development/python-modules/clifford/default.nix
index 9fe60ba55da..68ac9e45bb4 100644
--- a/pkgs/development/python-modules/clifford/default.nix
+++ b/pkgs/development/python-modules/clifford/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, fetchpatch
 , isPy27
 , future
 , h5py
@@ -21,6 +22,12 @@ buildPythonPackage rec {
     inherit pname version;
     sha256 = "ade11b20d0631dfc9c2f18ce0149f1e61e4baf114108b27cfd68e5c1619ecc0c";
   };
+  patches = [ (fetchpatch {
+    # Compatibility with h5py 3.
+    # Will be included in the next releasse after 1.3.1
+    url = "https://github.com/pygae/clifford/pull/388/commits/955d141662c68d3d61aa50a162b39e656684c208.patch";
+    sha256 = "00m8ias58xycn5n78sy9wywf4wck1v0gb8gzmg40inzdiha93jyz";
+  }) ];
 
   propagatedBuildInputs = [
     future
diff --git a/pkgs/development/python-modules/cloudflare/default.nix b/pkgs/development/python-modules/cloudflare/default.nix
index a7b6d204f19..a21faa492df 100644
--- a/pkgs/development/python-modules/cloudflare/default.nix
+++ b/pkgs/development/python-modules/cloudflare/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "cloudflare";
-  version = "2.8.14";
+  version = "2.8.15";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5787892fdee3a6408b4290de0371426ab778a7ebf44decad9d843cab1ef0a1ac";
+    sha256 = "1f47bd324f80e91487dea2c79be934b1dc612bcfa63e784dcf74c6a2f52a41cc";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/confuse/default.nix b/pkgs/development/python-modules/confuse/default.nix
new file mode 100644
index 00000000000..8f1c1754056
--- /dev/null
+++ b/pkgs/development/python-modules/confuse/default.nix
@@ -0,0 +1,27 @@
+{ buildPythonPackage
+, enum34
+, fetchPypi
+, isPy27
+, lib
+, pathlib
+, pyyaml
+}:
+
+buildPythonPackage rec {
+  pname = "confuse";
+  version = "1.4.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-kvwEUcbiwnMqw2PQ9Z1+pgir3b7QYt2o6Y6ajJhs5GQ=";
+  };
+
+  propagatedBuildInputs = [ pyyaml ] ++ lib.optionals isPy27 [ enum34 pathlib ] ;
+
+  meta = with lib; {
+    description = "Confuse is a configuration library for Python that uses YAML.";
+    homepage = "https://github.com/beetbox/confuse";
+    license = licenses.mit;
+    maintainers = with maintainers; [ lovesegfault ];
+  };
+}
diff --git a/pkgs/development/python-modules/connect_box/default.nix b/pkgs/development/python-modules/connect_box/default.nix
new file mode 100644
index 00000000000..6c92ac025d8
--- /dev/null
+++ b/pkgs/development/python-modules/connect_box/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, aiohttp
+, attrs
+, defusedxml
+}:
+
+buildPythonPackage rec {
+  pname = "connect-box";
+  version = "0.2.8";
+
+  src = fetchPypi {
+    pname = "connect_box";
+    inherit version;
+    sha256 = "1lvz7g2f0a9ifnjczmbavn105miirdgyayr4sixhzgdgadcdhz3l";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    attrs
+    defusedxml
+  ];
+
+  # no tests are present
+  doCheck = false;
+
+  pythonImportsCheck = [ "connect_box" ];
+
+  meta = with lib; {
+    description = "Interact with a Compal CH7465LG cable modem/router";
+    longDescription = ''
+      Python Client for interacting with the cable modem/router Compal
+      CH7465LG which is provided under different names by various ISP
+      in Europe, e.g., UPC Connect Box (CH), Irish Virgin Media Super
+      Hub 3.0 (IE), Ziggo Connectbox (NL) or Unitymedia Connect Box (DE).
+    '';
+    homepage = "https://github.com/home-assistant-ecosystem/python-connect-box";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/coveralls/default.nix b/pkgs/development/python-modules/coveralls/default.nix
index 68cf993a5a8..55032864c3f 100644
--- a/pkgs/development/python-modules/coveralls/default.nix
+++ b/pkgs/development/python-modules/coveralls/default.nix
@@ -36,6 +36,10 @@ buildPythonPackage rec {
     pytestrunner
   ];
 
+  postPatch = ''
+    sed -i "s/'coverage>=\([^,]\+\),.*',$/'coverage>=\1',/" setup.py
+  '';
+
   # FIXME: tests requires .git directory to be present
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/croniter/default.nix b/pkgs/development/python-modules/croniter/default.nix
index a8ae7574688..30807035579 100644
--- a/pkgs/development/python-modules/croniter/default.nix
+++ b/pkgs/development/python-modules/croniter/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "croniter";
-  version = "0.3.36";
+  version = "0.3.37";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9d3098e50f7edc7480470455d42f09c501fa1bb7e2fc113526ec6e90b068f32c";
+    sha256 = "12ced475dfc107bf7c6c1440af031f34be14cd97bbbfaf0f62221a9c11e86404";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cryptography/default.nix b/pkgs/development/python-modules/cryptography/default.nix
index 41802f0d065..0bee19c3f4f 100644
--- a/pkgs/development/python-modules/cryptography/default.nix
+++ b/pkgs/development/python-modules/cryptography/default.nix
@@ -22,11 +22,11 @@
 
 buildPythonPackage rec {
   pname = "cryptography";
-  version = "3.2.1"; # Also update the hash in vectors.nix
+  version = "3.3.1"; # Also update the hash in vectors.nix
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1qxz02kfsrihq1h4afyqwcsv9nh3s9mmrr6y9lhi4angw05y3mfk";
+    sha256 = "1ribd1vxq9wwz564mg60dzcy699gng54admihjjkgs9dx95pw5vy";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/python-modules/cryptography/vectors.nix b/pkgs/development/python-modules/cryptography/vectors.nix
index 567ce23783e..94526c8268e 100644
--- a/pkgs/development/python-modules/cryptography/vectors.nix
+++ b/pkgs/development/python-modules/cryptography/vectors.nix
@@ -7,7 +7,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "12dq1grn0bjj7c6sj6apd6328525n7xq4kbbmww63sn3x7081vls";
+    sha256 = "192wix3sr678x21brav5hgc6j93l7ab1kh69p2scr3fsblq9qy03";
   };
 
   # No tests included
diff --git a/pkgs/development/python-modules/cypari2/default.nix b/pkgs/development/python-modules/cypari2/default.nix
index 4b0d4691809..ee2c9ded18d 100644
--- a/pkgs/development/python-modules/cypari2/default.nix
+++ b/pkgs/development/python-modules/cypari2/default.nix
@@ -11,11 +11,11 @@
 buildPythonPackage rec {
   pname = "cypari2";
   # upgrade may break sage, please test the sage build or ping @timokau on upgrade
-  version = "2.1.2";
+  version = "2.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03cd45edab8716ebbfdb754e65fea72e873c73dc91aec098fe4a01e35324ac7a";
+    sha256 = "df1ef62e771ec36e5a456f5fc8b51bc6745b70f0efdd0c7a30c3f0b5f1fb93db";
   };
 
   # This differs slightly from the default python installPhase in that it pip-installs
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     export PYTHONPATH="$out/${python.sitePackages}:$PYTHONPATH"
 
     # install "." instead of "*.whl"
-    ${python.pythonForBuild.pkgs.bootstrapped-pip}/bin/pip install --no-index --prefix=$out --no-cache --build=tmpdir .
+    ${python.pythonForBuild.pkgs.bootstrapped-pip}/bin/pip install . --no-index --no-warn-script-location --prefix="$out" --no-cache
   '';
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/daphne/default.nix b/pkgs/development/python-modules/daphne/default.nix
index 80fa1c35d63..cbd80333b2f 100644
--- a/pkgs/development/python-modules/daphne/default.nix
+++ b/pkgs/development/python-modules/daphne/default.nix
@@ -4,7 +4,7 @@
 }:
 buildPythonPackage rec {
   pname = "daphne";
-  version = "2.5.0";
+  version = "3.0.1";
 
   disabled = !isPy3k;
 
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     owner = "django";
     repo = pname;
     rev = version;
-    sha256 = "0qkhmblj3a5s3z65cgz46xsvq1b6x4m3kr6aljjnxnv7hcwib02n";
+    sha256 = "1bkxhzvaqwz760c11nhaiwvsq1d1csmk5dz2a1j1ynypjprhvhsk";
   };
 
   nativeBuildInputs = [ pytestrunner ];
diff --git a/pkgs/development/python-modules/dask/default.nix b/pkgs/development/python-modules/dask/default.nix
index 19c6962c575..2fb39303583 100644
--- a/pkgs/development/python-modules/dask/default.nix
+++ b/pkgs/development/python-modules/dask/default.nix
@@ -59,6 +59,7 @@ buildPythonPackage rec {
     "test_count_nonzero_str"
     "rolling_methods"  # floating percision error ~0.1*10^8 small
     "num_workers_config" # flaky
+    "test_2args_with_array[pandas1-darray1-ldexp]"  # flaky
   ];
 
   meta = {
diff --git a/pkgs/development/python-modules/datasets/default.nix b/pkgs/development/python-modules/datasets/default.nix
index 4214304a9c9..fc349cdc277 100644
--- a/pkgs/development/python-modules/datasets/default.nix
+++ b/pkgs/development/python-modules/datasets/default.nix
@@ -35,6 +35,10 @@ buildPythonPackage rec {
     xxhash
   ];
 
+  postPatch = ''
+    substituteInPlace setup.py --replace '"tqdm>=4.27,<4.50.0"' '"tqdm>=4.27"'
+  '';
+
   # Tests require pervasive internet access.
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/datasette/default.nix b/pkgs/development/python-modules/datasette/default.nix
index 3ae21421816..2e0039b2317 100644
--- a/pkgs/development/python-modules/datasette/default.nix
+++ b/pkgs/development/python-modules/datasette/default.nix
@@ -14,6 +14,7 @@
 , python-baseconv
 , pyyaml
 , uvicorn
+, httpx
 # Check Inputs
 , pytestCheckHook
 , pytestrunner
@@ -26,13 +27,13 @@
 
 buildPythonPackage rec {
   pname = "datasette";
-  version = "0.46";
+  version = "0.53";
 
   src = fetchFromGitHub {
     owner = "simonw";
     repo = "datasette";
     rev = version;
-    sha256 = "0g4dfq5ykifa9628cb4i7gvx98p8hvb99gzfxk3bkvq1v9p4kcqq";
+    sha256 = "1rsgxkvav1qy2ia2csm1jvabd8klh3ly8719979gdlx2il1cjjkz";
   };
 
   nativeBuildInputs = [ pytestrunner ];
@@ -52,6 +53,8 @@ buildPythonPackage rec {
     pyyaml
     uvicorn
     setuptools
+    httpx
+    asgiref
   ];
 
   checkInputs = [
@@ -59,7 +62,6 @@ buildPythonPackage rec {
     pytest-asyncio
     aiohttp
     beautifulsoup4
-    asgiref
   ];
 
   postConfigure = ''
@@ -75,9 +77,9 @@ buildPythonPackage rec {
 
   # 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
-  # just run the messages tests, as this should give some indictation of correctness
+  # just run the csv tests, as this should give some indictation of correctness
   pytestFlagsArray = [
-    "tests/test_messages.py"
+    "tests/test_csv.py"
   ];
   disabledTests = [
     "facet"
diff --git a/pkgs/development/python-modules/datashader/default.nix b/pkgs/development/python-modules/datashader/default.nix
index 233aac688ab..c49e2e30b80 100644
--- a/pkgs/development/python-modules/datashader/default.nix
+++ b/pkgs/development/python-modules/datashader/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, fetchpatch
 , dask
 , distributed
 , bokeh
@@ -36,6 +37,12 @@ buildPythonPackage rec {
     inherit pname version;
     sha256 = "b1f80415f72f92ccb660aaea7b2881ddd35d07254f7c44101709d42e819d6be6";
   };
+  patches = [ (fetchpatch {
+    # Unpins pyct==0.46 (Sep. 11, 2020).
+    # Will be incorporated into the next datashader release after 0.11.1
+    url = "https://github.com/holoviz/datashader/pull/960/commits/d7a462fa399106c34fd0d44505a8a73789dbf874.patch";
+    sha256 = "1wqsk9dpxnkxr49fa7y5q6ahin80cvys05lnirs2w2p1dja35y4x";
+  })];
 
   propagatedBuildInputs = [
     dask
diff --git a/pkgs/development/python-modules/dbutils/default.nix b/pkgs/development/python-modules/dbutils/default.nix
new file mode 100644
index 00000000000..ec57e8ada05
--- /dev/null
+++ b/pkgs/development/python-modules/dbutils/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, buildPythonPackage, fetchPypi, pytestCheckHook }:
+
+buildPythonPackage rec {
+  version = "2.0";
+  pname = "dbutils";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "DBUtils";
+    sha256 = "131ifm2c2a7bipij597i8fvjka0dk2qv1xr2ghcvbc30jlkvag2g";
+  };
+
+  checkInputs = [ pytestCheckHook ];
+
+  meta = with stdenv.lib; {
+    description = "Database connections for multi-threaded environments";
+    homepage = "https://webwareforpython.github.io/DBUtils/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/development/python-modules/denonavr/default.nix b/pkgs/development/python-modules/denonavr/default.nix
index 58099a98bdc..b02e1e498b9 100644
--- a/pkgs/development/python-modules/denonavr/default.nix
+++ b/pkgs/development/python-modules/denonavr/default.nix
@@ -1,24 +1,28 @@
 { lib, buildPythonPackage, fetchFromGitHub, isPy27, requests, netifaces
-, pytest, testtools, requests-mock }:
+, pytestCheckHook, testtools, requests-mock }:
 
 buildPythonPackage rec {
   pname = "denonavr";
-  version = "0.9.3";
+  version = "0.9.10";
+  disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "scarface-4711";
     repo = "denonavr";
     rev = version;
-    sha256 = "0s8v918n6xn44r2mrq5hqbf0znpz64clq7a1jakkgz9py8bi6vnn";
+    sha256 = "sha256-3ap8F3ayBTpaR98md+gT0+hkIWlFBNxStTGWT5AL//A=";
   };
 
-  propagatedBuildInputs = [ requests netifaces ];
+  propagatedBuildInputs = [
+    requests
+    netifaces
+  ];
 
-  doCheck = !isPy27;
-  checkInputs = [ pytest testtools requests-mock ];
-  checkPhase = ''
-    pytest tests
-  '';
+  checkInputs = [
+    pytestCheckHook
+    testtools
+    requests-mock
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/scarface-4711/denonavr";
diff --git a/pkgs/development/python-modules/discordpy/default.nix b/pkgs/development/python-modules/discordpy/default.nix
index e2a4625c60e..4f784642537 100644
--- a/pkgs/development/python-modules/discordpy/default.nix
+++ b/pkgs/development/python-modules/discordpy/default.nix
@@ -23,8 +23,8 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ aiohttp websockets ];
   patchPhase = ''
     substituteInPlace "requirements.txt" \
-      --replace "aiohttp>=3.6.0,<3.7.0" "aiohttp~=3.6.0" \
-      --replace "websockets>=6.0,!=7.0,!=8.0,!=8.0.1,<9.0" "websockets>=6"
+      --replace "aiohttp>=3.6.0,<3.7.0" "aiohttp" \
+      --replace "websockets>=6.0,!=7.0,!=8.0,!=8.0.1,<9.0" "websockets"
   '' + lib.optionalString withVoice ''
     substituteInPlace "discord/opus.py" \
       --replace "ctypes.util.find_library('opus')" "'${libopus}/lib/libopus.so.0'"
diff --git a/pkgs/development/python-modules/django-cors-headers/default.nix b/pkgs/development/python-modules/django-cors-headers/default.nix
index 6dc4ad3402b..313ae32f04e 100644
--- a/pkgs/development/python-modules/django-cors-headers/default.nix
+++ b/pkgs/development/python-modules/django-cors-headers/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "django-cors-headers";
-  version = "3.5.0";
+  version = "3.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "db82b2840f667d47872ae3e4a4e0a0d72fbecb42779b8aa233fa8bb965f7836a";
+    sha256 = "5665fc1b1aabf1b678885cf6f8f8bd7da36ef0a978375e767d491b48d3055d8f";
   };
 
   propagatedBuildInputs = [ django ];
diff --git a/pkgs/development/python-modules/django-storages/default.nix b/pkgs/development/python-modules/django-storages/default.nix
index c0467bbba70..bdf7c21514c 100644
--- a/pkgs/development/python-modules/django-storages/default.nix
+++ b/pkgs/development/python-modules/django-storages/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "django-storages";
-  version = "1.10.1";
+  version = "1.11.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "652275ab7844538c462b62810276c0244866f345878256a9e0e86f5b1283ae18";
+    sha256 = "c823dbf56c9e35b0999a13d7e05062b837bae36c518a40255d522fbe3750fbb4";
   };
 
   propagatedBuildInputs = [ django ];
diff --git a/pkgs/development/python-modules/django/3.nix b/pkgs/development/python-modules/django/3.nix
index c3644d6946f..77dcb48235a 100644
--- a/pkgs/development/python-modules/django/3.nix
+++ b/pkgs/development/python-modules/django/3.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "Django";
-  version = "3.1.4";
+  version = "3.1.5";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "edb10b5c45e7e9c0fb1dc00b76ec7449aca258a39ffd613dbd078c51d19c9f03";
+    sha256 = "2d78425ba74c7a1a74b196058b261b9733a8570782f4e2828974777ccca7edf7";
   };
 
   patches = stdenv.lib.optional withGdal
diff --git a/pkgs/development/python-modules/django_contrib_comments/default.nix b/pkgs/development/python-modules/django_contrib_comments/default.nix
index 303d6d95a46..3f5371e397a 100644
--- a/pkgs/development/python-modules/django_contrib_comments/default.nix
+++ b/pkgs/development/python-modules/django_contrib_comments/default.nix
@@ -2,19 +2,18 @@
 , buildPythonPackage
 , fetchPypi
 , django
-, six
 }:
 
 buildPythonPackage rec {
   pname = "django-contrib-comments";
-  version = "1.9.2";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d1232bade3094de07dcc205fc833204384e71ba9d30caadcb5bb2882ce8e8d31";
+    sha256 = "26350b2c353816570a74b7fb19c558ce00288625ac32886a5274f4f931c098f9";
   };
 
-  propagatedBuildInputs = [ django six ];
+  propagatedBuildInputs = [ django ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/django/django-contrib-comments";
diff --git a/pkgs/development/python-modules/dnachisel/default.nix b/pkgs/development/python-modules/dnachisel/default.nix
new file mode 100644
index 00000000000..465f1bb5b4d
--- /dev/null
+++ b/pkgs/development/python-modules/dnachisel/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, biopython
+, docopt
+, flametree
+, numpy
+, proglog
+, python-codon-tables
+ }:
+
+buildPythonPackage rec {
+  pname = "dnachisel";
+  version = "3.2.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "35301c5eda0baca5902403504e0b5a22eb65da92c2bbd23199d95c4a6bf0ef37";
+  };
+
+  propagatedBuildInputs = [
+    biopython
+    docopt
+    flametree
+    numpy
+    proglog
+    python-codon-tables
+  ];
+
+  # no tests in tarball
+  doCheck = false;
+
+  pythonImportsCheck = [ "dnachisel" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/Edinburgh-Genome-Foundry/DnaChisel";
+    description = "Optimize DNA sequences under constraints";
+    license = licenses.mit;
+    maintainers = with maintainers; [ prusnak ];
+  };
+}
diff --git a/pkgs/development/python-modules/docplex/default.nix b/pkgs/development/python-modules/docplex/default.nix
index 9b32bab7d6b..0fa202addb9 100644
--- a/pkgs/development/python-modules/docplex/default.nix
+++ b/pkgs/development/python-modules/docplex/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "docplex";
-  version = "2.18.200";
+  version = "2.19.202";
 
   # No source available from official repo
   src = fetchPypi {
     inherit pname version;
-    sha256 = "340848e67e1389b32b44d16a100aed1ebb0a6f0519b0f3cbce7cd0de6478fd6c";
+    sha256 = "2b606dc645f99feae67dfc528620dddc773ecef5d59bcaeae68bba601f25162b";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/drms/default.nix b/pkgs/development/python-modules/drms/default.nix
index 561ec9a7a98..613d2444d73 100644
--- a/pkgs/development/python-modules/drms/default.nix
+++ b/pkgs/development/python-modules/drms/default.nix
@@ -4,13 +4,15 @@
 , numpy
 , pandas
 , six
-, pytest
-, python
+, astropy
+, pytestCheckHook
+, pytest-doctestplus
 }:
 
 buildPythonPackage rec {
   pname = "drms";
   version = "0.6.0";
+  format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
@@ -24,13 +26,11 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    pytest
+    astropy
+    pytestCheckHook
+    pytest-doctestplus
   ];
 
-  checkPhase = ''
-    ${python.interpreter} -m drms.tests
-  '';
-
   meta = with lib; {
     description = "Access HMI, AIA and MDI data with Python";
     homepage = "https://github.com/sunpy/drms";
diff --git a/pkgs/development/python-modules/elementpath/default.nix b/pkgs/development/python-modules/elementpath/default.nix
index 9b9597c98be..27040526312 100644
--- a/pkgs/development/python-modules/elementpath/default.nix
+++ b/pkgs/development/python-modules/elementpath/default.nix
@@ -1,7 +1,7 @@
 { lib, buildPythonPackage, fetchFromGitHub, isPy27 }:
 
 buildPythonPackage rec {
-  version = "2.0.4";
+  version = "2.1.0";
   pname = "elementpath";
   disabled = isPy27; # uses incompatible class syntax
 
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     owner = "sissaschool";
     repo = "elementpath";
     rev = "v${version}";
-    sha256 = "0812il5xn7cq0qa0vmkszrvprakfpyxmilk7s918l9kavdy4al8x";
+    sha256 = "17a0gcwmv87kikirgkgr305f5c7wz34hf7djssx4xbk9lfq9m2lg";
   };
 
   # avoid circular dependency with xmlschema which directly depends on this
diff --git a/pkgs/development/python-modules/extension-helpers/default.nix b/pkgs/development/python-modules/extension-helpers/default.nix
deleted file mode 100644
index 0c23a69a89c..00000000000
--- a/pkgs/development/python-modules/extension-helpers/default.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy27
-, pytestCheckHook
-, setuptools_scm
-}:
-
-buildPythonPackage rec {
-  pname = "extension-helpers";
-  version = "0.1";
-  disabled = isPy27;
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "10iqjzmya2h4sk765dlm1pbqypwlqyh8rw59a5m9i63d3klnz2mc";
-  };
-
-  nativeBuildInputs = [
-    setuptools_scm
-  ];
-
-  propagatedBuildInputs = [
-    pytestCheckHook
-  ];
-
-  # avoid importing local module
-  preCheck = ''
-    cd extension_helpers
-  '';
-
-  # assumes setup.py is in pwd
-  disabledTests = [ "compiler_module" ];
-
-  meta = with lib; {
-    description = "Helpers to assist with building packages with compiled C/Cython extensions";
-    homepage = "https://github.com/astropy/extension-helpers";
-    license = licenses.bsd3;
-    maintainers = [ ];
-  };
-}
diff --git a/pkgs/development/python-modules/eyed3/default.nix b/pkgs/development/python-modules/eyed3/default.nix
index 321c26542d1..d8ccb299fcc 100644
--- a/pkgs/development/python-modules/eyed3/default.nix
+++ b/pkgs/development/python-modules/eyed3/default.nix
@@ -12,13 +12,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.9.5";
+  version = "0.9.6";
   pname    = "eyeD3";
   disabled = isPyPy;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "faf5806197f2093e82c2830d41f2378f07b3a9da07a16fafb14fc6fbdebac50a";
+    sha256 = "4b5064ec0fb3999294cca0020d4a27ffe4f29149e8292fdf7b2de9b9cabb7518";
   };
 
   # requires special test data:
diff --git a/pkgs/development/python-modules/fastparquet/default.nix b/pkgs/development/python-modules/fastparquet/default.nix
index 47c7d506309..07922ee19ef 100644
--- a/pkgs/development/python-modules/fastparquet/default.nix
+++ b/pkgs/development/python-modules/fastparquet/default.nix
@@ -3,22 +3,19 @@ thrift, pytest, python-snappy, lz4, zstd }:
 
 buildPythonPackage rec {
   pname = "fastparquet";
-  version = "0.4.1";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "dask";
     repo = pname;
     rev = version;
-    sha256 = "ViZRGEv227/RgCBYAQN8F3Z0m8WrNUT5KUdyFosjg9s=";
+    sha256 = "17i091kky34m2xivk29fqsyxxxa7v4352n79w01n7ni93za6wana";
   };
 
   postPatch = ''
     # FIXME: package zstandard
     # removing the test dependency for now
     substituteInPlace setup.py --replace "'zstandard'," ""
-
-    # workaround for https://github.com/dask/fastparquet/issues/517
-    rm fastparquet/test/test_partition_filters_specialstrings.py
   '';
 
   nativeBuildInputs = [ pytestrunner ];
diff --git a/pkgs/development/python-modules/fiona/default.nix b/pkgs/development/python-modules/fiona/default.nix
index 0e90bb10f95..665bb0c8df0 100644
--- a/pkgs/development/python-modules/fiona/default.nix
+++ b/pkgs/development/python-modules/fiona/default.nix
@@ -41,9 +41,7 @@ buildPythonPackage rec {
   checkPhase = ''
     rm -r fiona # prevent importing local fiona
     # Some tests access network, others test packaging
-    pytest -k "not test_*_http \
-           and not test_*_https \
-           and not test_*_wheel"
+    pytest -k "not (http or https or wheel)"
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/fixtures/default.nix b/pkgs/development/python-modules/fixtures/default.nix
index 3042acbbe84..9f1549e98f9 100644
--- a/pkgs/development/python-modules/fixtures/default.nix
+++ b/pkgs/development/python-modules/fixtures/default.nix
@@ -5,6 +5,7 @@
 , testtools
 , mock
 , python
+, isPy39
 }:
 
 buildPythonPackage rec {
@@ -26,5 +27,6 @@ buildPythonPackage rec {
     description = "Reusable state for writing clean tests and more";
     homepage = "https://pypi.python.org/pypi/fixtures";
     license = lib.licenses.asl20;
+    broken = isPy39; # see https://github.com/testing-cabal/fixtures/issues/44
   };
 }
diff --git a/pkgs/development/python-modules/flametree/default.nix b/pkgs/development/python-modules/flametree/default.nix
new file mode 100644
index 00000000000..d4cba69afcb
--- /dev/null
+++ b/pkgs/development/python-modules/flametree/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "flametree";
+  version = "0.1.11";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "c8eb81dea8c7f8261a2aa03d2bac98b1d21ebceec9c67efaac423f7c1b4fe061";
+  };
+
+  # no tests in tarball
+  doCheck = false;
+
+  pythonImportsCheck = [ "flametree" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/Edinburgh-Genome-Foundry/Flametree";
+    description = "Python file and zip operations made easy";
+    license = licenses.mit;
+    maintainers = with maintainers; [ prusnak ];
+  };
+}
diff --git a/pkgs/development/python-modules/flask-socketio/default.nix b/pkgs/development/python-modules/flask-socketio/default.nix
index 80f6edb79d3..496676600fc 100644
--- a/pkgs/development/python-modules/flask-socketio/default.nix
+++ b/pkgs/development/python-modules/flask-socketio/default.nix
@@ -1,18 +1,21 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, coverage
+, fetchFromGitHub
 , flask
+, pytestCheckHook
 , python-socketio
-, coverage
 }:
 
 buildPythonPackage rec {
   pname = "Flask-SocketIO";
-  version = "4.3.2";
+  version = "5.0.1";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "37001b3507f2fa5d1c8d9c8e211dd88da6c5286ff0ebce16f27cb1b467d25d68";
+  src = fetchFromGitHub {
+    owner = "miguelgrinberg";
+    repo = "Flask-SocketIO";
+    rev = "v${version}";
+    sha256 = "01zf6cy95pgc4flgn0740z2my90l7rxwliahp6rb2xbp7rh32cng";
   };
 
   propagatedBuildInputs = [
@@ -20,9 +23,12 @@ buildPythonPackage rec {
     python-socketio
   ];
 
-  checkInputs = [ coverage ];
-  # tests only on github, but lates release there is not tagged
-  doCheck = false;
+  checkInputs = [
+    coverage
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "flask_socketio" ];
 
   meta = with lib; {
     description = "Socket.IO integration for Flask applications";
diff --git a/pkgs/development/python-modules/flask-testing/default.nix b/pkgs/development/python-modules/flask-testing/default.nix
index feb3766067b..24e2e6343a2 100644
--- a/pkgs/development/python-modules/flask-testing/default.nix
+++ b/pkgs/development/python-modules/flask-testing/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "Flask-Testing";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1rkkqgmrzmhpv6y1xysqh0ij03xniic8h631yvghksqwxd9vyjfq";
+    sha256 = "0a734d7b68e63a9410b413cd7b1f96456f9a858bd09a6222d465650cc782eb01";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/flower/default.nix b/pkgs/development/python-modules/flower/default.nix
index b31cbc7424d..605d08d1258 100644
--- a/pkgs/development/python-modules/flower/default.nix
+++ b/pkgs/development/python-modules/flower/default.nix
@@ -22,6 +22,7 @@ buildPythonPackage rec {
     # rely on using example programs (flowers/examples/tasks.py) which
     # are not part of the distribution
     rm tests/load.py
+    substituteInPlace  requirements/default.txt --replace "prometheus_client==0.8.0" "prometheus_client>=0.8.0"
   '';
 
   propagatedBuildInputs = [
@@ -39,5 +40,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/mher/flower";
     license = licenses.bsdOriginal;
     maintainers = [ maintainers.arnoldfarkas ];
+    broken = (celery.version == "5.0.2"); # currently broken with celery>=5.0 by https://github.com/mher/flower/pull/1021
   };
 }
diff --git a/pkgs/development/python-modules/flufl/i18n.nix b/pkgs/development/python-modules/flufl/i18n.nix
index b980449661e..8b0c9863550 100644
--- a/pkgs/development/python-modules/flufl/i18n.nix
+++ b/pkgs/development/python-modules/flufl/i18n.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "flufl.i18n";
-  version = "3.1.3";
+  version = "3.1.4";
 
   propagatedBuildInputs = [ atpublic ];
 
@@ -12,6 +12,6 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dcca738be27f2c43ddf6f9307667a17478353190071f38a9f92c9af8d2252ba4";
+    sha256 = "e19036292a825a69f0e0a87566d1628830c69eecd3b0295d22f582039477a6bb";
   };
 }
diff --git a/pkgs/development/python-modules/fontparts/default.nix b/pkgs/development/python-modules/fontparts/default.nix
index 43fdae8ccaf..c694c15f557 100644
--- a/pkgs/development/python-modules/fontparts/default.nix
+++ b/pkgs/development/python-modules/fontparts/default.nix
@@ -1,19 +1,21 @@
 { lib, buildPythonPackage, fetchPypi, python
 , fonttools, lxml, fs, unicodedata2
 , defcon, fontpens, fontmath, booleanoperations
-, pytest
+, pytest, setuptools_scm
 }:
 
 buildPythonPackage rec {
   pname = "fontParts";
-  version = "0.9.6";
+  version = "0.9.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0q8ilc1ypmasci2x1nq69hnfsnvbi1czaxgsb3zgqd8777bn5v9z";
+    sha256 = "183y1y11bqd4ky4anyv40qbvsm6i90gnydqzrjg7syspjsqvfqgy";
     extension = "zip";
   };
 
+  nativeBuildInputs = [ setuptools_scm ];
+
   propagatedBuildInputs = [
     booleanoperations
     fonttools
diff --git a/pkgs/development/python-modules/fonttools/default.nix b/pkgs/development/python-modules/fonttools/default.nix
index a1433d08bd0..cd91eb08be0 100644
--- a/pkgs/development/python-modules/fonttools/default.nix
+++ b/pkgs/development/python-modules/fonttools/default.nix
@@ -12,6 +12,7 @@
 , sympy
 , matplotlib
 , reportlab
+, sphinx
 , pytest
 , pytest-randomly
 , glibcLocales
@@ -19,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "fonttools";
-  version = "4.14.0";
+  version = "4.18.2";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner  = pname;
     repo   = pname;
     rev    = version;
-    sha256 = "0aiaxjg2v2391gxnhp4nvmgfb3ygm6x7n080s5mnkfjq2bq319in";
+    sha256 = "0h750gvwpsp7fpmgfwkx93gkaf0m1s698g6r7n4xlaji563nlkiv";
   };
 
   # all dependencies are optional, but
@@ -53,6 +54,7 @@ buildPythonPackage rec {
     matplotlib
     # pens
     reportlab
+    sphinx
   ];
 
   preCheck = ''
diff --git a/pkgs/development/python-modules/geopandas/default.nix b/pkgs/development/python-modules/geopandas/default.nix
index 200dfffa562..bd38d2663bc 100644
--- a/pkgs/development/python-modules/geopandas/default.nix
+++ b/pkgs/development/python-modules/geopandas/default.nix
@@ -1,6 +1,6 @@
 { stdenv, buildPythonPackage, fetchFromGitHub, isPy27
 , pandas, shapely, fiona, descartes, pyproj
-, pytest, Rtree, fetchpatch }:
+, pytestCheckHook, Rtree, fetchpatch }:
 
 buildPythonPackage rec {
   pname = "geopandas";
@@ -20,13 +20,18 @@ buildPythonPackage rec {
       url = "https://github.com/geopandas/geopandas/pull/1544/commits/6ce868a33a2f483b071089d51e178030fa4414d0.patch";
       sha256 = "1sjgxrqgbhz5krx51hrv230ywszcdl6z8q3bj6830kfad8n8b5dq";
     })
+    # Fix GeoJSON for Fiona>=1.8.16 (Sep. 7, 2020).
+    # https://github.com/geopandas/geopandas/issues/1606
+    # Will be included in next upstream release after 0.8.1
+    (fetchpatch {
+      url = "https://github.com/geopandas/geopandas/commit/72427d3d8c128039bfce1d54a76c0b652887b276.patch";
+      sha256 = "1726mrpddgmba0ngff73a5bsb6ywpsg63a2pdd2grp9339bgvi4a";
+    })
   ];
 
-  checkInputs = [ pytest Rtree ];
-
-  checkPhase = ''
-    py.test geopandas -m "not web"
-  '';
+  checkInputs = [ pytestCheckHook Rtree ];
+  disabledTests = [ "web" ];
+  pytestFlagsArray = [ "geopandas" ];
 
   propagatedBuildInputs = [
     pandas
diff --git a/pkgs/development/python-modules/glances-api/default.nix b/pkgs/development/python-modules/glances-api/default.nix
new file mode 100644
index 00000000000..23e152c300f
--- /dev/null
+++ b/pkgs/development/python-modules/glances-api/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, aiohttp
+, async-timeout
+}:
+
+buildPythonPackage rec {
+  pname = "glances-api";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "home-assistant-ecosystem";
+    repo = "python-glances-api";
+    rev = version;
+    sha256 = "0rgv77n0lvr7d3vk4qc8svipxafmm6s4lfxrl976hsygrhaqidch";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    async-timeout
+  ];
+
+  # no tests are present
+  doCheck = false;
+  pythonImportsCheck = [ "glances_api" ];
+
+  meta = with lib; {
+    description = "Python Wrapper for interacting with the Volkszahler API";
+    homepage = "https://github.com/home-assistant-ecosystem/python-glances-api";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/globus-sdk/default.nix b/pkgs/development/python-modules/globus-sdk/default.nix
index 7956a31492c..20d47dfe7e9 100644
--- a/pkgs/development/python-modules/globus-sdk/default.nix
+++ b/pkgs/development/python-modules/globus-sdk/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "globus-sdk";
-  version = "1.9.1";
+  version = "1.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "883a862ddd17b0f4868ec55d6697a64c13d91c41b9fa5103198d2140053abac2";
+    sha256 = "b33021b58edacc16bf2ba8453efbb26a8b04242ee3f4d62dcdaa3c6e199f136f";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/gmpy2/default.nix b/pkgs/development/python-modules/gmpy2/default.nix
index 1f7975abe5c..cfc481a90af 100644
--- a/pkgs/development/python-modules/gmpy2/default.nix
+++ b/pkgs/development/python-modules/gmpy2/default.nix
@@ -10,7 +10,7 @@
 
 let
   pname = "gmpy2";
-  version = "2.1a4";
+  version = "2.1.0b5";
 in
 
 buildPythonPackage {
@@ -22,20 +22,9 @@ buildPythonPackage {
     owner = "aleaxit";
     repo = "gmpy";
     rev = "gmpy2-${version}";
-    sha256 = "1wg4w4q2l7n26ksrdh4rwqmifgfm32n7x29cgdvmmbv5lmilb5hz";
+    sha256 = "1mqzyp7qwqqyk6jbicgx22svdy2106xwhmhfvdf0vpnmwswcxclb";
   };
 
-  patches = [
-    # Backport of two bugfixes (including a segfault):
-    # https://github.com/aleaxit/gmpy/pull/217
-    # https://github.com/aleaxit/gmpy/pull/218
-    (fetchpatch {
-      name = "bugfixes.patch";
-      url = "https://git.sagemath.org/sage.git/plain/build/pkgs/gmpy2/patches/PR217_PR218_conversion_methods.patch?id=b7fbb9a4dac5d6882f6b83a57447dd79ecafb84c";
-      sha256 = "1x3gwvqac36k4ypclxq37fcvi6p790k4xdpm2bj2b3xsvjb80ycz";
-    })
-  ];
-
   buildInputs = [ gmp mpfr libmpc ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/google_cloud_bigquery/default.nix b/pkgs/development/python-modules/google_cloud_bigquery/default.nix
index cea0608c3f7..3255475fbf5 100644
--- a/pkgs/development/python-modules/google_cloud_bigquery/default.nix
+++ b/pkgs/development/python-modules/google_cloud_bigquery/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery";
-  version = "2.4.0";
+  version = "2.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2d53d6fed1c25c9c0ce361dad1c64203c96b2344f7156357a501630d1cb08445";
+    sha256 = "1f99fd0c0c5bde999e056a1be666e5d5bbf392f62c9e730dfcbaf6e8408d44ef";
   };
 
   disabled = pythonOlder "3.6";
diff --git a/pkgs/development/python-modules/google_cloud_resource_manager/default.nix b/pkgs/development/python-modules/google_cloud_resource_manager/default.nix
index a4b310797a7..815ecc118f9 100644
--- a/pkgs/development/python-modules/google_cloud_resource_manager/default.nix
+++ b/pkgs/development/python-modules/google_cloud_resource_manager/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-resource-manager";
-  version = "0.30.2";
+  version = "0.30.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "de7eba5235df61deee2291a2fe70b904154df613a334109488afdea7a4c0011f";
+    sha256 = "3577bbf38f2c7c2f42306b8dfdeffbb0eedf45aaec947fd513d51937f72046d1";
   };
 
   disabled = pythonOlder "3.5";
diff --git a/pkgs/development/python-modules/google_cloud_runtimeconfig/default.nix b/pkgs/development/python-modules/google_cloud_runtimeconfig/default.nix
index 80bdcd1b83c..d4fb4c59a18 100644
--- a/pkgs/development/python-modules/google_cloud_runtimeconfig/default.nix
+++ b/pkgs/development/python-modules/google_cloud_runtimeconfig/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-runtimeconfig";
-  version = "0.32.0";
+  version = "0.32.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3d125c01817d5bef2b644095b044d22b03b9d8d4591088cadd8e97851f7a150a";
+    sha256 = "57143ec3c5ed3e0bee590a98857eec06c68aa2eacbce477403226a0d2e85a8ad";
   };
 
   disabled = pythonOlder "3.5";
diff --git a/pkgs/development/python-modules/gpy/default.nix b/pkgs/development/python-modules/gpy/default.nix
index dbc5791ac33..e4a20bc83d7 100644
--- a/pkgs/development/python-modules/gpy/default.nix
+++ b/pkgs/development/python-modules/gpy/default.nix
@@ -1,5 +1,14 @@
-{ stdenv, buildPythonPackage, fetchPypi
-, numpy, scipy, six, paramz, nose, matplotlib, cython }:
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, numpy
+, scipy
+, six
+, paramz
+, matplotlib
+, cython
+, nose
+}:
 
 buildPythonPackage rec {
   pname = "GPy";
@@ -10,21 +19,35 @@ buildPythonPackage rec {
     sha256 = "04faf0c24eacc4dea60727c50a48a07ddf9b5751a3b73c382105e2a31657c7ed";
   };
 
-  # running tests produces "ImportError: cannot import name 'linalg_cython'"
-  # even though Cython has run
-  checkPhase = "nosetests -d";
-  doCheck = false;
-
+  buildInputs = [ cython ];
+  propagatedBuildInputs = [ numpy scipy six paramz matplotlib ];
   checkInputs = [ nose ];
 
-  buildInputs = [ cython ];
+  # $ nosetests GPy/testing/*.py
+  # => Ran 483 tests in 112.146s (on 8 cores)
+  # So instead, run shorter set of tests
+  checkPhase = ''
+    nosetests GPy/testing/linalg_test.py
+  '';
 
-  propagatedBuildInputs = [ numpy scipy six paramz matplotlib ];
+  # Rebuild cython-generated .c files since the included
+  # ones were built with an older version of cython that is
+  # incompatible with python3.9
+  preBuild = ''
+    for fn in $(find . -name '*.pyx'); do
+      echo $fn | sed 's/\.\.pyx$/\.c/' | xargs ${cython}/bin/cython -3
+    done
+  '';
+
+  pythonImportsCheck = [
+    "GPy"
+  ];
 
   meta = with stdenv.lib; {
     description = "Gaussian process framework in Python";
     homepage = "https://sheffieldml.github.io/GPy";
     license = licenses.bsd3;
     maintainers = with maintainers; [ bcdarwin ];
+    broken = stdenv.isDarwin;  # See inscrutable error message here: https://github.com/NixOS/nixpkgs/pull/107653#issuecomment-751527547
   };
 }
diff --git a/pkgs/development/python-modules/hmmlearn/default.nix b/pkgs/development/python-modules/hmmlearn/default.nix
index 909606c25eb..3f601eacc42 100644
--- a/pkgs/development/python-modules/hmmlearn/default.nix
+++ b/pkgs/development/python-modules/hmmlearn/default.nix
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   checkInputs = [ pytest ];
 
   checkPhase = ''
-    pytest --doctest-modules --pyargs hmmlearn
+    pytest --pyargs hmmlearn
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/hole/default.nix b/pkgs/development/python-modules/hole/default.nix
new file mode 100644
index 00000000000..87c63be32e8
--- /dev/null
+++ b/pkgs/development/python-modules/hole/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, aiohttp
+, async-timeout
+}:
+
+buildPythonPackage rec {
+  pname = "hole";
+  version = "0.5.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "065fxc0l16j8xkjd0y0qar9cmqmjyp8jcshakbakldkfscpx3s5m";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    async-timeout
+  ];
+
+  # no tests are present
+  doCheck = false;
+
+  pythonImportsCheck = [ "hole" ];
+
+  meta = with lib; {
+    description = "Python API for interacting with a Pihole instance.";
+    homepage = "https://github.com/home-assistant-ecosystem/python-hole";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/howdoi/default.nix b/pkgs/development/python-modules/howdoi/default.nix
index 5b8cb6cecb9..cc6003fa952 100644
--- a/pkgs/development/python-modules/howdoi/default.nix
+++ b/pkgs/development/python-modules/howdoi/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "howdoi";
-  version = "2.0.7";
+  version = "2.0.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "09362f7390119dffd83c61a942801ad4d19aee499340ef7e8d5871167391d3d6";
+    sha256 = "9b7cabab87cd614e26b408653bc8937ec27b79ca2fde6b9457da55d2541f75fb";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/hstspreload/default.nix b/pkgs/development/python-modules/hstspreload/default.nix
index 99612882814..7562e36e4d9 100644
--- a/pkgs/development/python-modules/hstspreload/default.nix
+++ b/pkgs/development/python-modules/hstspreload/default.nix
@@ -6,19 +6,21 @@
 
 buildPythonPackage rec {
   pname = "hstspreload";
-  version = "2020.6.9";
+  version = "2020.12.22";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "sethmlarson";
     repo = pname;
     rev = version;
-    sha256 = "12js2xcj4979jklc19hjmv5p2b6689p18p4w9swhjc6cgcwm4jy2";
+    sha256 = "1jzcw4clmpbyw67pzskms5rq5b7285iwh42jzc4ly6jz9amggdzc";
   };
 
   # tests require network connection
   doCheck = false;
 
+  pythonImportsCheck = [ "hstspreload" ];
+
   meta = with lib; {
     description = "Chromium HSTS Preload list as a Python package and updated daily";
     homepage = "https://github.com/sethmlarson/hstspreload";
diff --git a/pkgs/development/python-modules/htmltreediff/default.nix b/pkgs/development/python-modules/htmltreediff/default.nix
deleted file mode 100644
index cd742606f8b..00000000000
--- a/pkgs/development/python-modules/htmltreediff/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ buildPythonPackage, fetchFromGitHub, isPy3k, lxml, html5lib, nose, stdenv }:
-
-buildPythonPackage rec {
-  version = "0.1.2";
-  pname = "htmltreediff";
-
-  disabled = isPy3k;
-
-  src = fetchFromGitHub {
-    owner = "christian-oudard";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "16mqp2jyznrw1mgd3qzybq28h2k5wz7vmmz1m6xpgscazyjhvvd1";
-  };
-
-  propagatedBuildInputs = [ lxml html5lib ];
-
-  checkInputs = [ nose ];
-
-  meta = with stdenv.lib; {
-    description = " Structure-aware diff for html and xml documents";
-    homepage = "https://github.com/christian-oudard/htmltreediff";
-    license = licenses.bsdOriginal;
-    maintainers = with maintainers; [ ma27 ];
-  };
-}
diff --git a/pkgs/development/python-modules/hvac/default.nix b/pkgs/development/python-modules/hvac/default.nix
index a3cd4d5ec4d..9ce859c9b76 100644
--- a/pkgs/development/python-modules/hvac/default.nix
+++ b/pkgs/development/python-modules/hvac/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "hvac";
-  version = "0.10.5";
+  version = "0.10.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "87dc2a3183c1d4595990203e752b430155d7582a60850dfe0756189a233d4b57";
+    sha256 = "b0561dbdfecc6a6d7b0cc226d75a800ae9bbc93313a6ad526a1adc97be51eada";
   };
 
   propagatedBuildInputs = [ requests six ];
diff --git a/pkgs/development/python-modules/imageio-ffmpeg/default.nix b/pkgs/development/python-modules/imageio-ffmpeg/default.nix
index d9991ee7845..db59ba70bb2 100644
--- a/pkgs/development/python-modules/imageio-ffmpeg/default.nix
+++ b/pkgs/development/python-modules/imageio-ffmpeg/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, fetchpatch
 , isPy3k
 }:
 
@@ -9,9 +10,15 @@ buildPythonPackage rec {
   version = "0.4.2";
 
   src = fetchPypi {
-    sha256 = "13b05b17a941a9f4a90b16910b1ffac159448cff051a153da8ba4b4343ffa195";
     inherit pname version;
+    sha256 = "13b05b17a941a9f4a90b16910b1ffac159448cff051a153da8ba4b4343ffa195";
   };
+  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;
 
diff --git a/pkgs/development/python-modules/imbalanced-learn/default.nix b/pkgs/development/python-modules/imbalanced-learn/default.nix
index 1cb3dc2a7b9..21018518ca2 100644
--- a/pkgs/development/python-modules/imbalanced-learn/default.nix
+++ b/pkgs/development/python-modules/imbalanced-learn/default.nix
@@ -1,7 +1,6 @@
 { stdenv, buildPythonPackage, fetchPypi, isPy27
-, nose
 , pandas
-, pytest
+, pytestCheckHook
 , scikitlearn
 , tensorflow
 }:
@@ -17,16 +16,17 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [ scikitlearn ];
-  checkInputs = [ nose pytest pandas ];
-  checkPhase = ''
+  checkInputs = [ pytestCheckHook pandas ];
+  preCheck = ''
     export HOME=$TMPDIR
-    # skip some tests that fail because of minimal rounding errors
-    # or very large dependencies (keras + tensorflow)
-    py.test imblearn -k 'not estimator \
-                         and not classification \
-                         and not _generator \
-                         and not show_versions'
   '';
+  disabledTests = [
+    "estimator"
+    "classification"
+    "_generator"
+    "show_versions"
+    "test_make_imbalanced_iris"
+  ];
 
   meta = with stdenv.lib; {
     description = "Library offering a number of re-sampling techniques commonly used in datasets showing strong between-class imbalance";
diff --git a/pkgs/development/python-modules/impacket/default.nix b/pkgs/development/python-modules/impacket/default.nix
index dee40a6dbba..15d148f168f 100644
--- a/pkgs/development/python-modules/impacket/default.nix
+++ b/pkgs/development/python-modules/impacket/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k }:
+{ lib, buildPythonPackage, fetchPypi, flask, ldapdomaindump, pycryptodomex, pyasn1, pyopenssl }:
 
 buildPythonPackage rec {
   pname = "impacket";
@@ -9,16 +9,18 @@ buildPythonPackage rec {
     sha256 = "4bf7e7b595356585599b4b2773b8a463d7b9765c97012dcd5a44eb6d547f6a1d";
   };
 
-  disabled = isPy3k;
+  propagatedBuildInputs = [ flask ldapdomaindump pycryptodomex pyasn1 pyopenssl ];
 
-  # no tests
+  # fail with:
+  # RecursionError: maximum recursion depth exceeded
   doCheck = false;
+  pythonImportsCheck = [ "impacket" ];
 
   meta = with lib; {
     description = "Network protocols Constructors and Dissectors";
     homepage = "https://github.com/CoreSecurity/impacket";
     # Modified Apache Software License, Version 1.1
     license = licenses.free;
-    maintainers = with maintainers; [ peterhoeg ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/influxdb-client/default.nix b/pkgs/development/python-modules/influxdb-client/default.nix
index 141412d5bd3..bc2f39ad217 100644
--- a/pkgs/development/python-modules/influxdb-client/default.nix
+++ b/pkgs/development/python-modules/influxdb-client/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "influxdb-client";
-  version = "1.12.0";
+  version = "1.13.0";
 
   disabled = pythonOlder "3.6"; # requires python version >=3.6
 
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "influxdata";
     repo = "influxdb-client-python";
     rev = "v${version}";
-    sha256 = "0b4xr8nwrnikj2rnyrrcl6pym2il8iirr9f9cyg6vzfgx8l8brk9";
+    sha256 = "0g7jhjnag8jx8zbjh6xlqds42alpj87a4dpqc37xqa4ir55m3c2q";
   };
 
   # makes test not reproducible
diff --git a/pkgs/development/python-modules/ircstates/default.nix b/pkgs/development/python-modules/ircstates/default.nix
index 3e54451eb36..b5404febfa3 100644
--- a/pkgs/development/python-modules/ircstates/default.nix
+++ b/pkgs/development/python-modules/ircstates/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "ircstates";
-  version = "0.11.6";
+  version = "0.11.7";
   disabled = pythonOlder "3.6";  # f-strings
 
   src = fetchFromGitHub {
     owner = "jesopo";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0yhrd1nmf9fjwknbga8wspy3bab40lgp4qqnr7w75x9wq5ivmqhg";
+    sha256 = "00dyd6mry10na98x1gs92xnfpjf1wd9zpblx1wcx8ggv5rqvgqrm";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/jc/default.nix b/pkgs/development/python-modules/jc/default.nix
index cc74076b6c7..ba96f8ccfb9 100644
--- a/pkgs/development/python-modules/jc/default.nix
+++ b/pkgs/development/python-modules/jc/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "jc";
-  version = "1.13.4";
+  version = "1.14.0";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "kellyjonbrazil";
     repo = "jc";
     rev = "v${version}";
-    sha256 = "0rwvyyrdnw43pixp8h51rncq2inc9pbbj1j2191y5si00pjw34zr";
+    sha256 = "0js3mqp6xxg45qsz8wnyyqf4m0wj1kz67bkmvirhdy7s01zhd5hq";
   };
 
   propagatedBuildInputs = [ ruamel_yaml xmltodict pygments ];
diff --git a/pkgs/development/python-modules/jinja2/default.nix b/pkgs/development/python-modules/jinja2/default.nix
index 45178377026..33d6003cae7 100644
--- a/pkgs/development/python-modules/jinja2/default.nix
+++ b/pkgs/development/python-modules/jinja2/default.nix
@@ -4,7 +4,7 @@
 , fetchPypi
 , pytest
 , markupsafe
-, setuptools 
+, setuptools
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/jsonfield/default.nix b/pkgs/development/python-modules/jsonfield/default.nix
new file mode 100644
index 00000000000..e9887b47379
--- /dev/null
+++ b/pkgs/development/python-modules/jsonfield/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchPypi, buildPythonPackage, django, pytestCheckHook, pytest-django }:
+
+buildPythonPackage rec {
+  pname = "jsonfield";
+  version = "3.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0yl828cd0m8jsyr4di6hcjdqmi31ijh5vk57mbpfl7p2gmcq8kky";
+  };
+
+  checkInputs = [ pytestCheckHook pytest-django ];
+
+  preCheck = "export DJANGO_SETTINGS_MODULE=tests.settings";
+
+  propagatedBuildInputs = [ django ];
+
+  meta = with stdenv.lib; {
+    description = "Reusable model field that allows you to store validated JSON, automatically handling serialization to and from the database";
+    homepage = "https://github.com/rpkilby/jsonfield/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mrmebelman ];
+  };
+}
diff --git a/pkgs/development/python-modules/jupyterlab-git/default.nix b/pkgs/development/python-modules/jupyterlab-git/default.nix
index d8ab5093ec2..1c6c9a5b9e3 100644
--- a/pkgs/development/python-modules/jupyterlab-git/default.nix
+++ b/pkgs/development/python-modules/jupyterlab-git/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab_git";
-  version = "0.23.2";
+  version = "0.23.3";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2c4c55c5bc651a670b13e89064f7aba7422b72ad6b3f2b3890ac72cc9a2d4089";
+    sha256 = "20a4954d8d1b1eb6f9111cd15d6a598bd7ff72b08797cf5e86c5a55827c85a1d";
   };
 
   propagatedBuildInputs = [ notebook nbdime git ];
diff --git a/pkgs/development/python-modules/keepkey/default.nix b/pkgs/development/python-modules/keepkey/default.nix
index f43c7618b13..82391d37750 100644
--- a/pkgs/development/python-modules/keepkey/default.nix
+++ b/pkgs/development/python-modules/keepkey/default.nix
@@ -3,13 +3,13 @@
 
 buildPythonPackage rec {
   pname = "keepkey";
-  version = "6.0.3";
+  version = "6.6.0";
 
   src = fetchFromGitHub {
     owner = "keepkey";
     repo = "python-keepkey";
     rev = "v${version}";
-    sha256 = "0jnkh1nin1lwnx32ak6sv8gzmpnkvcy6vm23wzm1ymzfndxk6rnm";
+    sha256 = "1v0ns26ykskn0dpbvz9g6lz4q740qmahvddj3pc3rfbjvg43p3vh";
   };
 
   propagatedBuildInputs = [ protobuf hidapi trezor ];
diff --git a/pkgs/development/python-modules/ldapdomaindump/default.nix b/pkgs/development/python-modules/ldapdomaindump/default.nix
new file mode 100644
index 00000000000..3e1358cd8f2
--- /dev/null
+++ b/pkgs/development/python-modules/ldapdomaindump/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchPypi, dnspython, future, ldap3 }:
+
+buildPythonPackage rec {
+  pname = "ldapdomaindump";
+  version = "0.9.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "10cis8cllpa9qi5qil9k7521ag3921mxwg2wj9nyn0lk41rkjagc";
+  };
+
+  propagatedBuildInputs = [ dnspython future ldap3 ];
+
+  # requires ldap server
+  doCheck = false;
+  pythonImportsCheck = [ "ldapdomaindump" ];
+
+  meta = with lib; {
+    description = "Active Directory information dumper via LDAP";
+    homepage = "https://github.com/dirkjanm/ldapdomaindump/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/development/python-modules/libusb1/default.nix b/pkgs/development/python-modules/libusb1/default.nix
index f756790e288..63a97652381 100644
--- a/pkgs/development/python-modules/libusb1/default.nix
+++ b/pkgs/development/python-modules/libusb1/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "libusb1";
-  version = "1.9";
+  version = "1.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256:0l7vj04xm0i5ikxjdqrr5939q7amh0hfp0fqifkcvyjv9fvhyz65";
+    sha256 = "14ljk7rywy3fiv23dpayvk14y1ywma729r3b1x2cxf68919g2gnh";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/lightgbm/default.nix b/pkgs/development/python-modules/lightgbm/default.nix
index e9bcd0ed895..eae2e4208d1 100644
--- a/pkgs/development/python-modules/lightgbm/default.nix
+++ b/pkgs/development/python-modules/lightgbm/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "lightgbm";
-  version = "3.1.0";
+  version = "3.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0d0abcb1035a7f50226412a78993d61830621e16fd6fa685bbf178c97b0d6e82";
+    sha256 = "babece2e3613e97748a67ed45387bb0e984bdb1f4126e39f010fbfe7503c7b20";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/liquidctl/default.nix b/pkgs/development/python-modules/liquidctl/default.nix
new file mode 100644
index 00000000000..888f09dba95
--- /dev/null
+++ b/pkgs/development/python-modules/liquidctl/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, docopt
+, hidapi
+, pyusb
+, smbus-cffi
+}:
+
+buildPythonPackage rec {
+  pname = "liquidctl";
+  version = "1.4.2";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner  = pname;
+    repo   = pname;
+    rev    = "v${version}";
+    sha256 = "1h5kqpvlx7xppd2wli986lkslqkcrlz1wixv7fvrppzjc2nfz5d4";
+  };
+
+  propagatedBuildInputs = [
+    docopt
+    hidapi
+    pyusb
+    smbus-cffi
+  ];
+
+  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 ];
+  };
+}
diff --git a/pkgs/development/python-modules/macropy/default.nix b/pkgs/development/python-modules/macropy/default.nix
index 9048166773e..9345573e9a2 100644
--- a/pkgs/development/python-modules/macropy/default.nix
+++ b/pkgs/development/python-modules/macropy/default.nix
@@ -3,6 +3,7 @@
 , fetchFromGitHub
 , python
 , isPy27
+, pythonAtLeast
 , pinqSupport ? false, sqlalchemy
 , pyxlSupport ? false, pyxl3
 }:
@@ -34,5 +35,6 @@ buildPythonPackage rec {
     description = "Macros in Python: quasiquotes, case classes, LINQ and more";
     license = licenses.mit;
     maintainers = [ maintainers.costrouc ];
+    broken = pythonAtLeast "3.8"; # see https://github.com/lihaoyi/macropy/issues/103
   };
 }
diff --git a/pkgs/development/python-modules/mautrix/default.nix b/pkgs/development/python-modules/mautrix/default.nix
index 7cfd8e83dbf..0944d5fa4cf 100644
--- a/pkgs/development/python-modules/mautrix/default.nix
+++ b/pkgs/development/python-modules/mautrix/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "mautrix";
-  version = "0.8.5";
+  version = "0.8.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "564ffe240fd9a29978959c7d7827610cf4d8ff02ed612c3fd8067e2fba2cba59";
+    sha256 = "e28d89cb8297ec36d78ef79507613c45ab3ab0bc709f1944ca5be349797f8f6b";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/mediafile/default.nix b/pkgs/development/python-modules/mediafile/default.nix
new file mode 100644
index 00000000000..5d11d253b6d
--- /dev/null
+++ b/pkgs/development/python-modules/mediafile/default.nix
@@ -0,0 +1,44 @@
+{ buildPythonPackage
+, enum34
+, fetchpatch
+, fetchPypi
+, isPy27
+, lib
+, mutagen
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "mediafile";
+  version = "0.6.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-o/tSAHu8FTr6LZoMHvegr9uCZovNLHS9KkP2U9y4uko=";
+  };
+
+  propagatedBuildInputs = [ mutagen six ] ++ lib.optional isPy27 enum34;
+
+  # NB: Remove in the next release
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/beetbox/mediafile/commit/0ff753d493a1a7f406cb3378545ffe2c85a9afa3.patch";
+      sha256 = "sha256-AQ7YedoYPmLqt4a/odgghIKOY61i9YfA0To0RVFqlk8=";
+    })
+    (fetchpatch {
+      url = "https://github.com/beetbox/mediafile/commit/f0fb4e5111d9dfaa3b38d196ec41fcd237d97953.patch";
+      sha256 = "sha256-5O6RiAqkQEz3Bvqjwwv/LOS33nSIBnT2H/vasGGVrpI=";
+    })
+    (fetchpatch {
+      url = "https://github.com/beetbox/mediafile/commit/d2fc3b59f77c515b02dfe7ad936f89264375d2b4.patch";
+      sha256 = "sha256-SMH0XhCaKLDNB4M8VmZWfGuuelfY5xladZyQYtXtP18=";
+    })
+  ];
+
+  meta = with lib; {
+    description = "MediaFile is a simple interface to the metadata tags for many audio file formats.";
+    homepage = "https://github.com/beetbox/mediafile";
+    license = licenses.mit;
+    maintainers = with maintainers; [ lovesegfault ];
+  };
+}
diff --git a/pkgs/development/python-modules/micawber/default.nix b/pkgs/development/python-modules/micawber/default.nix
index 5129fe253c7..0240a21aca3 100644
--- a/pkgs/development/python-modules/micawber/default.nix
+++ b/pkgs/development/python-modules/micawber/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "micawber";
-  version = "0.5.1";
+  version = "0.5.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5e1e6fbab5bfc1edc6d575b900707c24a3484c51cf2e01f059a7e070724a3633";
+    sha256 = "ac2d737d8ff27ed01ea3825ed8806970e8137d7b342cef37b39b6dd17e6eb3a4";
   };
 
   propagatedBuildInputs = [ beautifulsoup4 ];
diff --git a/pkgs/development/python-modules/mocket/default.nix b/pkgs/development/python-modules/mocket/default.nix
index 60b32665ca8..f7e97bb955c 100644
--- a/pkgs/development/python-modules/mocket/default.nix
+++ b/pkgs/development/python-modules/mocket/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "mocket";
-  version = "3.9.4";
+  version = "3.9.35";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0b3nx8qa66isfl7rm3ljgxflr087qwabnf0a2xa1l5s28rikfj04";
+    sha256 = "d822a2adfd8e028a2856785fbfe78e7dd8c7a3b623516298aef6d42a4c9149d1";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/python-modules/modeled/default.nix b/pkgs/development/python-modules/modeled/default.nix
index e4cdec7766d..66fe63e3daf 100644
--- a/pkgs/development/python-modules/modeled/default.nix
+++ b/pkgs/development/python-modules/modeled/default.nix
@@ -5,7 +5,7 @@
 , six
 , moretools
 , pathpy
-, pytest
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -15,31 +15,19 @@ buildPythonPackage rec {
   src = fetchPypi {
     extension = "zip";
     inherit pname version;
-    sha256 = "64934c68cfcdb75ed4a1ccadcfd5d2a46bf1b8e8e81dde89ef0f042c401e94f1";
+    sha256 = "1wcl3r02q10gxy4xw7g8x2wg2sx4sbawzbfcl7a5xdydrxl4r4v4";
   };
 
-  buildInputs = [
-    zetup
-  ];
+  buildInputs = [ zetup ];
 
-  propagatedBuildInputs = [
-    six
-    moretools
-    pathpy
-  ];
+  propagatedBuildInputs = [ six moretools pathpy ];
 
-  checkInputs = [
-    pytest
-  ];
-
-  checkPhase = ''
-    pytest test
-  '';
+  checkInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Universal data modeling for Python";
     homepage = "https://bitbucket.org/userzimmermann/python-modeled";
-    license = licenses.lgpl3;
+    license = licenses.lgpl3Only;
     maintainers = [ maintainers.costrouc ];
   };
 }
diff --git a/pkgs/development/python-modules/mpd2/default.nix b/pkgs/development/python-modules/mpd2/default.nix
index 95ee5c5001a..5503ec2e139 100644
--- a/pkgs/development/python-modules/mpd2/default.nix
+++ b/pkgs/development/python-modules/mpd2/default.nix
@@ -1,18 +1,20 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
 , python
 , mock
 }:
 
 buildPythonPackage rec {
   pname = "python-mpd2";
-  version = "1.0.0";
+  version = "3.0.1";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    extension = "tar.bz2";
-    sha256 = "772fa6861273bb9f363a97987c2c45ca3965eb770570f1f02566efec9c89fc5f";
+    sha256 = "0fxssbmnv44m03shjyvbqslc69b0160702j2s0flgvdxjggrnbjj";
   };
 
   buildInputs = [ mock ];
diff --git a/pkgs/development/python-modules/msgpack/default.nix b/pkgs/development/python-modules/msgpack/default.nix
index 70a52dfe994..262e5d5ecd0 100644
--- a/pkgs/development/python-modules/msgpack/default.nix
+++ b/pkgs/development/python-modules/msgpack/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "msgpack";
-  version = "1.0.0";
+  version = "1.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1h5mxh84rcw04dvxy1qbfn2hisavfqgilh9k09rgyjhd936dad4m";
+    sha256 = "1109s2yynrahwi64ikax68hx0mbclz8p35afmpphw5dwynb49q7s";
   };
 
   checkPhase = ''
@@ -22,6 +22,7 @@ buildPythonPackage rec {
   meta = {
     homepage = "https://github.com/msgpack/msgpack-python";
     description = "MessagePack serializer implementation for Python";
+    changelog = "https://github.com/msgpack/msgpack-python/blob/master/ChangeLog.rst";
     license = lib.licenses.asl20;
     # maintainers =  ?? ;
   };
diff --git a/pkgs/development/python-modules/mwparserfromhell/default.nix b/pkgs/development/python-modules/mwparserfromhell/default.nix
index e52e033cdb0..791ffe0b1ea 100644
--- a/pkgs/development/python-modules/mwparserfromhell/default.nix
+++ b/pkgs/development/python-modules/mwparserfromhell/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "mwparserfromhell";
-  version = "0.5.4";
+  version = "0.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "aaf5416ab9b75e99e286f8a4216f77a2f7d834afd4c8f81731e701e59bf99305";
+    sha256 = "75787b6ab140ab267b313d37d045f3276f5dc6a9741074eddfbabc1635cb2efc";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/mypy/default.nix b/pkgs/development/python-modules/mypy/default.nix
index 2e751c6f48d..1b8d763eb6f 100644
--- a/pkgs/development/python-modules/mypy/default.nix
+++ b/pkgs/development/python-modules/mypy/default.nix
@@ -1,16 +1,22 @@
-{ stdenv, fetchPypi, buildPythonPackage, typed-ast, psutil, isPy3k
+{ stdenv, fetchFromGitHub, buildPythonPackage, typed-ast, psutil, isPy3k
 , mypy-extensions
 , typing-extensions
+, fetchpatch
 }:
-
 buildPythonPackage rec {
   pname = "mypy";
   version = "0.790";
   disabled = !isPy3k;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "sha256-KyG6Ra2e8uLriM5K6t0BEtD1AmQYMkF2/UlKaCS3SXU=";
+  # Fetch 0.790 from GitHub temporarily because mypyc.analysis is missing from
+  # the Pip package (see also https://github.com/python/mypy/issues/9584). It
+  # should be possible to move back to Pypi for the next release.
+  src = fetchFromGitHub {
+    owner = "python";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0zq3lpdf9hphcklk40wz444h8w3dkhwa12mqba5j9lmg11klnhz7";
+    fetchSubmodules = true;
   };
 
   propagatedBuildInputs = [ typed-ast psutil mypy-extensions typing-extensions ];
@@ -24,8 +30,32 @@ buildPythonPackage rec {
     "mypy.api"
     "mypy.fastparse"
     "mypy.report"
+    "mypyc"
+    "mypyc.analysis"
+  ];
+
+  # These three patches are required to make compilation with mypyc work for
+  # 0.790, see also https://github.com/python/mypy/issues/9584.
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/python/mypy/commit/f6522ae646a8d87ce10549f29fcf961dc014f154.patch";
+      sha256 = "0d3jp4d0b7vdc0prk07grhajsy7x3wcynn2xysnszawiww93bfrh";
+    })
+    (fetchpatch {
+      url = "https://github.com/python/mypy/commit/acd603496237a78b109ca9d89991539633cbbb99.patch";
+      sha256 = "0ry1rxpz2ws7zzrmq09pra9dlzxb84zhs8kxwf5xii1k1bgmrljr";
+    })
+    (fetchpatch {
+      url = "https://github.com/python/mypy/commit/81818b23b5d53f31caf3515d6f0b54e3c018d790.patch";
+      sha256 = "002y24kfscywkw4mz9lndsps543j4xhr2kcnfbrqr4i0yxlvdbca";
+    })
   ];
 
+  # Compile mypy with mypyc, which makes mypy about 4 times faster. The compiled
+  # version is also the default in the wheels on Pypi that include binaries.
+  # is64bit: unfortunately the build would exhaust all possible memory on i686-linux.
+  MYPY_USE_MYPYC = stdenv.buildPlatform.is64bit;
+
   meta = with stdenv.lib; {
     description = "Optional static typing for Python";
     homepage    = "http://www.mypy-lang.org";
diff --git a/pkgs/development/python-modules/mysqlclient/default.nix b/pkgs/development/python-modules/mysqlclient/default.nix
index bc924000ed1..b844d9e2c02 100644
--- a/pkgs/development/python-modules/mysqlclient/default.nix
+++ b/pkgs/development/python-modules/mysqlclient/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "mysqlclient";
-  version = "2.0.2";
+  version = "2.0.3";
 
   nativeBuildInputs = [
     libmysqlclient
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8df057b08fc27d8f7106bfa997d0a21e2acef017f905f06d6fb0aa6a20d4d2b2";
+    sha256 = "f6ebea7c008f155baeefe16c56cd3ee6239f7a5a9ae42396c2f1860f08a7c432";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/netcdf4/default.nix b/pkgs/development/python-modules/netcdf4/default.nix
index 432603d6205..33c7d307b03 100644
--- a/pkgs/development/python-modules/netcdf4/default.nix
+++ b/pkgs/development/python-modules/netcdf4/default.nix
@@ -3,13 +3,13 @@
 }:
 buildPythonPackage rec {
   pname = "netCDF4";
-  version = "1.5.5";
+  version = "1.5.5.1";
 
   disabled = isPyPy;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "910b0c9d1ca7bef9c5796c45e2f5f30b91df70997ac655c51a58073eff2634f9";
+    sha256 = "d957e55a667d1fc651ddef22fea10ded0f142b7d9dbbf4d08c0012d32f445abd";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/netdata/default.nix b/pkgs/development/python-modules/netdata/default.nix
new file mode 100644
index 00000000000..f4e625b12b4
--- /dev/null
+++ b/pkgs/development/python-modules/netdata/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, aiohttp
+, async-timeout
+}:
+
+buildPythonPackage rec {
+  pname = "netdata";
+  version = "0.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "14kyjp1q3clizs1bqx4rp31d2awjmi5v65z8sarr2ycgwqqmkrzw";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    async-timeout
+  ];
+
+  # no tests are present
+  doCheck = false;
+
+  pythonImportsCheck = [ "netdata" ];
+
+  meta = with lib; {
+    description = "Python API for interacting with Netdata";
+    homepage = "https://github.com/home-assistant-ecosystem/python-netdata";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/nocaselist/default.nix b/pkgs/development/python-modules/nocaselist/default.nix
index 055b55da45d..e7947eba92a 100644
--- a/pkgs/development/python-modules/nocaselist/default.nix
+++ b/pkgs/development/python-modules/nocaselist/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "nocaselist";
-  version = "1.0.3";
+  version = "1.0.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fm3st9hVY7kESRPJCH70tpG8PaTXrR2IlozepAlVMyY=";
+    sha256 = "73a9c0659e7135c66e46a6ab06e2cb637ce9248d73c690ebd31afb72a4e03ac0";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/numexpr/default.nix b/pkgs/development/python-modules/numexpr/default.nix
index 046f0a5bd5d..e5a36fe454f 100644
--- a/pkgs/development/python-modules/numexpr/default.nix
+++ b/pkgs/development/python-modules/numexpr/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "numexpr";
-  version = "2.7.1";
+  version = "2.7.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1c82z0zx0542j9df6ckjz6pn1g13b21hbza4hghcw6vyhbckklmh";
+    sha256 = "1ai3i5n07csnzfsxf2dxp8cpdk6ajl5iv8rv0fj6n9ag7qphixac";
   };
 
   # Remove existing site.cfg, use the one we built for numpy.
diff --git a/pkgs/development/python-modules/opensensemap-api/default.nix b/pkgs/development/python-modules/opensensemap-api/default.nix
new file mode 100644
index 00000000000..d9f4cb6b1ad
--- /dev/null
+++ b/pkgs/development/python-modules/opensensemap-api/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, aiohttp
+, async-timeout
+}:
+
+buildPythonPackage rec {
+  pname = "opensensemap-api";
+  version = "0.1.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1f3iqwl8ynvrkdd961v2hjsbldwbr217pv5pay2m5f0m974bhblx";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    async-timeout
+  ];
+
+  # no tests are present
+  doCheck = false;
+
+  pythonImportsCheck = [ "opensensemap_api" ];
+
+  meta = with lib; {
+    description = "OpenSenseMap API Python client";
+    longDescription = ''
+      Python Client for interacting with the openSenseMap API. All
+      available information from the sensor can be retrieved.
+    '';
+    homepage = "https://github.com/home-assistant-ecosystem/python-opensensemap-api";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/openwrt-luci-rpc/default.nix b/pkgs/development/python-modules/openwrt-luci-rpc/default.nix
index 935a64b4186..2e7666d3ab0 100644
--- a/pkgs/development/python-modules/openwrt-luci-rpc/default.nix
+++ b/pkgs/development/python-modules/openwrt-luci-rpc/default.nix
@@ -10,11 +10,11 @@ with lib;
 
 buildPythonPackage rec {
   pname = "openwrt-luci-rpc";
-  version = "1.1.6";
+  version = "1.1.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "841c7fc956ad42825a2f2cd0cb2aa02005c3482b200ff7aaccd390345c9f3e18";
+    sha256 = "8074c1ed24cdd1fadc5a99bd63d9313a0a44703714473ed781ed11e7fb45c96f";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/ovito/default.nix b/pkgs/development/python-modules/ovito/default.nix
index 5e5847dce03..d813d2ac47f 100644
--- a/pkgs/development/python-modules/ovito/default.nix
+++ b/pkgs/development/python-modules/ovito/default.nix
@@ -15,26 +15,25 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "3.3.1";
+  version = "3.3.5";
   pname = "ovito";
 
   src = fetchFromGitLab {
     owner = "stuko";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0rm1qxa0fanaaqg0idr6rf2s2xlbyn1dzjzwh3rddy9mgl60lj2h";
+    sha256 = "2tptLK0RU0afSFFE7uzL8bZ5j+nyRyh97ujJAHFh0wQ=";
   };
 
-  buildInputs = [ cmake ffmpeg netcdf qscintilla zlib boost zlib git fftw hdf5 libssh qt5.qtbase qt5.qtsvg ];
+  nativeBuildInputs = [ cmake git ];
+  buildInputs = [ ffmpeg netcdf qscintilla zlib boost zlib fftw hdf5 libssh qt5.qtbase qt5.qtsvg ];
 
   propagatedBuildInputs = with python.pkgs; [ sphinx numpy sip pyqt5 matplotlib ase ];
 
-  enableParallelBuilding = true;
-
   meta = with stdenv.lib; {
     description = "Scientific visualization and analysis software for atomistic simulation data";
     homepage = "https://www.ovito.org";
-    license = licenses.gpl3;
+    license = with licenses; [ gpl3Only mit ];
     maintainers = with maintainers; [ costrouc ];
     # ensures not built on hydra
     # https://github.com/NixOS/nixpkgs/pull/46846#issuecomment-436388048
diff --git a/pkgs/development/python-modules/owslib/default.nix b/pkgs/development/python-modules/owslib/default.nix
index c82668008ea..92a78ce0cf3 100644
--- a/pkgs/development/python-modules/owslib/default.nix
+++ b/pkgs/development/python-modules/owslib/default.nix
@@ -1,11 +1,11 @@
 { lib, buildPythonPackage, fetchPypi, dateutil, requests, pytz, pyproj , pytest, pyyaml } :
 buildPythonPackage rec {
   pname = "OWSLib";
-  version = "0.20.0";
+  version = "0.21.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "334988857b260c8cdf1f6698d07eab61839c51acb52ee10eed1275439200a40e";
+    sha256 = "408d40b3a6a210bcb3f3609b607960eeedaa63ffd574dde7896906691c354814";
   };
 
   buildInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/paho-mqtt/default.nix b/pkgs/development/python-modules/paho-mqtt/default.nix
index 977ba3cdeb8..92f8f5d90f1 100644
--- a/pkgs/development/python-modules/paho-mqtt/default.nix
+++ b/pkgs/development/python-modules/paho-mqtt/default.nix
@@ -3,14 +3,14 @@
 
 buildPythonPackage rec {
   pname = "paho-mqtt";
-  version = "1.5.0";
+  version = "1.5.1";
 
   # No tests in PyPI tarball
   src = fetchFromGitHub {
     owner = "eclipse";
     repo = "paho.mqtt.python";
     rev = "v${version}";
-    sha256 = "1fq5z53g2k18iiqnz5qq87vzjpppfza072nx0dwllmhimm2dskh5";
+    sha256 = "1y537i6zxkjkmi80w5rvd18npz1jm5246i2x8p3q7ycx94i8ixs0";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/paramz/default.nix b/pkgs/development/python-modules/paramz/default.nix
index 430d91a60ec..63014647880 100644
--- a/pkgs/development/python-modules/paramz/default.nix
+++ b/pkgs/development/python-modules/paramz/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, numpy, scipy, six, decorator }:
+{ stdenv, buildPythonPackage, fetchPypi, numpy, scipy, six, decorator, nose }:
 
 buildPythonPackage rec {
   pname = "paramz";
@@ -10,6 +10,12 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [ numpy scipy six decorator ];
+  checkInputs = [ nose ];
+
+  # Ran 113 tests in 3.082s
+  checkPhase = ''
+      nosetests -v paramz/tests
+  '';
 
   meta = with stdenv.lib; {
     description = "Parameterization framework for parameterized model creation and handling";
diff --git a/pkgs/development/python-modules/parsimonious/default.nix b/pkgs/development/python-modules/parsimonious/default.nix
index 69e6d1d2bb2..25d87a7f2f1 100644
--- a/pkgs/development/python-modules/parsimonious/default.nix
+++ b/pkgs/development/python-modules/parsimonious/default.nix
@@ -17,6 +17,9 @@ buildPythonPackage rec {
   checkInputs = [ nose ];
   propagatedBuildInputs = [ six ];
 
+  # performance tests tend to fail sometimes
+  NOSE_EXCLUDE = "test_benchmarks";
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/erikrose/parsimonious";
     description = "Fast arbitrary-lookahead parser written in pure Python";
diff --git a/pkgs/development/python-modules/paste/default.nix b/pkgs/development/python-modules/paste/default.nix
index 5b12f04b2e5..6bed8144a21 100644
--- a/pkgs/development/python-modules/paste/default.nix
+++ b/pkgs/development/python-modules/paste/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "paste";
-  version = "3.4.1";
+  version = "3.5.0";
 
   src = fetchPypi {
     pname = "Paste";
     inherit version;
-    sha256 = "1csqn7g9b05hp3fgd82355k4pb5rv12k9x6p2mdw2v01m385171p";
+    sha256 = "17f3zppjjprs2jnklvzkz23mh9jdn6b1f445mvrjdm4ivi15q28v";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/patator/default.nix b/pkgs/development/python-modules/patator/default.nix
index 81d9e50b28f..b876e913e3c 100644
--- a/pkgs/development/python-modules/patator/default.nix
+++ b/pkgs/development/python-modules/patator/default.nix
@@ -1,22 +1,28 @@
-{ stdenv, buildPythonPackage, isPy3k, fetchPypi,
-  paramiko, pycurl, ajpy, pyopenssl, cx_oracle, mysqlclient,
-  psycopg2, pycrypto, dnspython, ipy, pysnmp, pyasn1 }:
+{ stdenv, buildPythonPackage, isPy27, fetchPypi
+, paramiko, pycurl, ajpy, impacket, pyopenssl, cx_oracle, mysqlclient
+, psycopg2, pycrypto, dnspython, ipy, pysnmp, pyasn1, pysqlcipher3 }:
 
 
 buildPythonPackage rec {
   pname = "patator";
   version = "0.9";
-  disabled = !(isPy3k);
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "68cb24bdc3042ee0d47a288b19a8b99a6c54bdbd4ddf0c5817d9b9ac0a0d8a15";
   };
 
+  postPatch = ''
+    substituteInPlace requirements.txt \
+      --replace psycopg2-binary psycopg2
+  '';
+
   propagatedBuildInputs = [
     paramiko
     pycurl
     ajpy
+    impacket
     pyopenssl
     cx_oracle
     mysqlclient
@@ -26,15 +32,16 @@ buildPythonPackage rec {
     ipy
     pysnmp
     pyasn1
+    pysqlcipher3
   ];
 
-  # No tests provided by patator
+  # tests require docker-compose and vagrant
   doCheck = false;
 
   meta = with stdenv.lib; {
     description = "multi-purpose brute-forcer";
     homepage = "https://github.com/lanjelot/patator";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ y0no ];
+    maintainers = with maintainers; [ y0no SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/pipx/default.nix b/pkgs/development/python-modules/pipx/default.nix
index 3b35b67bf09..122f34edb60 100644
--- a/pkgs/development/python-modules/pipx/default.nix
+++ b/pkgs/development/python-modules/pipx/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pipx";
-  version = "0.15.5.1";
+  version = "0.15.6.0";
 
   disabled = pythonOlder "3.6";
 
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "pipxproject";
     repo = pname;
     rev = version;
-    sha256 = "0lq8dfkq4ji11r4k5csqzyv0757fbxiax6ixn94f9747zrikssf6";
+    sha256 = "1yffswayjfkmq86ygisja0mkg55pqj9pdml5nc0z05222sfnvn1a";
   };
 
   propagatedBuildInputs = [ userpath argcomplete packaging ];
@@ -40,6 +40,8 @@ buildPythonPackage rec {
     "internet"
     "runpip"
     "upgrade"
+    "suffix"
+    "legacy_venv"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pkgconfig/default.nix b/pkgs/development/python-modules/pkgconfig/default.nix
index 05f13e8878a..1b03f720fbc 100644
--- a/pkgs/development/python-modules/pkgconfig/default.nix
+++ b/pkgs/development/python-modules/pkgconfig/default.nix
@@ -1,10 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, nose, pkgconfig }:
+{ lib, buildPythonPackage, fetchPypi, pkg-config }:
 
 buildPythonPackage rec {
   pname = "pkgconfig";
   version = "1.5.1";
 
-  inherit (pkgconfig)
+  inherit (pkg-config)
     setupHooks
     wrapperName
     suffixSalt
@@ -17,19 +17,18 @@ buildPythonPackage rec {
     sha256 = "97bfe3d981bab675d5ea3ef259045d7919c93897db7d3b59d4e8593cba8d354f";
   };
 
-  checkInputs = [ nose ];
 
-  nativeBuildInputs = [ pkgconfig ];
+  propagatedNativeBuildInputs = [ pkg-config ];
 
-  checkPhase = ''
-    nosetests
-  '';
+  doCheck = false;
 
   patches = [ ./executable.patch ];
   postPatch = ''
-    substituteInPlace pkgconfig/pkgconfig.py --replace 'PKG_CONFIG_EXE = "pkg-config"' 'PKG_CONFIG_EXE = "${pkgconfig}/bin/${pkgconfig.targetPrefix}pkg-config"'
+    substituteInPlace pkgconfig/pkgconfig.py --replace 'PKG_CONFIG_EXE = "pkg-config"' 'PKG_CONFIG_EXE = "${pkg-config}/bin/${pkg-config.targetPrefix}pkg-config"'
   '';
 
+  pythonImportsCheck = [ "pkgconfig" ];
+
   meta = with lib; {
     description = "Interface Python with pkg-config";
     homepage = "https://github.com/matze/pkgconfig";
diff --git a/pkgs/development/python-modules/progressbar2/default.nix b/pkgs/development/python-modules/progressbar2/default.nix
index 789828b7143..55590f8bd06 100644
--- a/pkgs/development/python-modules/progressbar2/default.nix
+++ b/pkgs/development/python-modules/progressbar2/default.nix
@@ -2,15 +2,7 @@
 , python
 , buildPythonPackage
 , fetchPypi
-, pytest
 , python-utils
-, sphinx
-, flake8
-, pytest-flakes
-, pytestcov
-, pytestcache
-, pytestrunner
-, freezegun
 }:
 
 buildPythonPackage rec {
@@ -23,17 +15,12 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [ python-utils ];
-  nativeBuildInputs = [ pytestrunner ];
-  checkInputs = [
-    pytest sphinx flake8 pytest-flakes pytestcov
-    pytestcache freezegun
-  ];
-  # ignore tests on the nix wrapped setup.py
-  checkPhase = ''
-    runHook preCheck
-    ${python.interpreter} setup.py test
-    runHook postCheck
-  '';
+
+  # depends on unmaintained pytest-pep8
+  # https://github.com/WoLpH/python-progressbar/issues/241
+  doCheck = false;
+
+  pythonImportsCheck = [ "progressbar" ];
 
   meta = with stdenv.lib; {
     homepage = "https://progressbar-2.readthedocs.io/en/latest/";
diff --git a/pkgs/development/python-modules/psautohint/default.nix b/pkgs/development/python-modules/psautohint/default.nix
index 61828ddff00..68d15133670 100644
--- a/pkgs/development/python-modules/psautohint/default.nix
+++ b/pkgs/development/python-modules/psautohint/default.nix
@@ -1,12 +1,13 @@
 { lib, buildPythonPackage, fetchFromGitHub, pythonOlder
-, fonttools, lxml, fs
+, fonttools
+, lxml, fs # for fonttools extras
 , setuptools_scm
 , pytestCheckHook, pytest_5, pytestcov, pytest_xdist
 }:
 
 buildPythonPackage rec {
   pname = "psautohint";
-  version = "2.1.2";
+  version = "2.2.0";
 
   disabled = pythonOlder "3.6";
 
@@ -14,7 +15,7 @@ buildPythonPackage rec {
     owner = "adobe-type-tools";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1s2l54gzn11y07zaggprwif7r3ia244qijjhkbvjdx4jsgc5df8n";
+    sha256 = "0gsgfr190xy2rnjf1gf7688xrh13ihgq10s19s4rv5hp6pmg9iaa";
     fetchSubmodules = true; # data dir for tests
   };
 
diff --git a/pkgs/development/python-modules/pulp/default.nix b/pkgs/development/python-modules/pulp/default.nix
index 73d367f5eb1..590fc022d66 100644
--- a/pkgs/development/python-modules/pulp/default.nix
+++ b/pkgs/development/python-modules/pulp/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "PuLP";
-  version = "2.3.1";
+  version = "2.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5bbe53f854fb3b689e4faacac5bdb5fa576cb270fc12c78edef827dd46a4fb50";
+    sha256 = "b2aff10989b3692e3a59301a0cb0acddeb25dcea378f8804c86007075eae55b5";
   };
 
   propagatedBuildInputs = [ pyparsing amply ];
diff --git a/pkgs/development/python-modules/py-air-control-exporter/default.nix b/pkgs/development/python-modules/py-air-control-exporter/default.nix
index 150198a65aa..b5ffc1fc0a5 100644
--- a/pkgs/development/python-modules/py-air-control-exporter/default.nix
+++ b/pkgs/development/python-modules/py-air-control-exporter/default.nix
@@ -1,20 +1,23 @@
-{ buildPythonPackage, fetchPypi, flask, isPy27, lib, prometheus_client
-, py-air-control, pytestCheckHook, pytestcov, pytestrunner, setuptools_scm }:
+{ buildPythonPackage, fetchPypi, flask, isPy27, lib, nixosTests
+, prometheus_client, py-air-control, pytestCheckHook, pytestcov, pytestrunner
+, setuptools_scm }:
 
 buildPythonPackage rec {
   pname = "py-air-control-exporter";
-  version = "0.2.0";
+  version = "0.3.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2c1bce2423b7452388e35756bef098c123b3cd4a38e8b1302f7297a08e0a9eaa";
+    sha256 = "ece2e446273542e5c0352c9d6e80d8279132c6ada3649c59e87a711448801a3b";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
   checkInputs = [ pytestCheckHook pytestcov pytestrunner ];
   propagatedBuildInputs = [ flask prometheus_client py-air-control ];
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) py-air-control; };
+
   meta = with lib; {
     description = "Exports Air Quality Metrics to Prometheus.";
     homepage = "https://github.com/urbas/py-air-control-exporter";
diff --git a/pkgs/development/python-modules/pyatv/default.nix b/pkgs/development/python-modules/pyatv/default.nix
index adec3bd07b3..647866b143f 100644
--- a/pkgs/development/python-modules/pyatv/default.nix
+++ b/pkgs/development/python-modules/pyatv/default.nix
@@ -18,12 +18,12 @@
 
 buildPythonPackage rec {
   pname = "pyatv";
-  version = "0.7.4";
+  version = "0.7.5";
   src = fetchFromGitHub {
     owner = "postlund";
     repo = pname;
     rev = "v${version}";
-    sha256 = "17gsamn4aibsx4w50r9dwr5kr9anc7dd0f0dvmdl717rkgh13zyi";
+    sha256 = "06qj6r9kcal2nimg8rpjfid8rnlz43l7hn0v9v1mpayjmv2fl8sp";
   };
 
   nativeBuildInputs = [ pytestrunner];
diff --git a/pkgs/development/python-modules/pyaxmlparser/default.nix b/pkgs/development/python-modules/pyaxmlparser/default.nix
index 045cf19c8c0..372d2feff15 100644
--- a/pkgs/development/python-modules/pyaxmlparser/default.nix
+++ b/pkgs/development/python-modules/pyaxmlparser/default.nix
@@ -30,6 +30,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/appknox/pyaxmlparser";
     # Files from Androguard are licensed ASL 2.0
     license = with licenses; [ mit asl20 ];
-    maintainers = with maintainers; [ ma27 ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/pybullet/default.nix b/pkgs/development/python-modules/pybullet/default.nix
index aaf703f5394..554a6ab0b02 100644
--- a/pkgs/development/python-modules/pybullet/default.nix
+++ b/pkgs/development/python-modules/pybullet/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "pybullet";
-  version = "3.0.7";
+  version = "3.0.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "47e55d2b0c565a968406f314faad7c002be6d8b0afc8ad2c437d07b7b7d2f590";
+    sha256 = "623061d305bd5513a911abb2cbd0e37670be166a270123b43ca757bf78e4b438";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/pycapnp/default.nix b/pkgs/development/python-modules/pycapnp/default.nix
index 1997021ce01..0d8dc6b53d8 100644
--- a/pkgs/development/python-modules/pycapnp/default.nix
+++ b/pkgs/development/python-modules/pycapnp/default.nix
@@ -1,34 +1,35 @@
 { stdenv
 , buildPythonPackage
-, fetchPypi
 , capnproto
 , cython
+, fetchFromGitHub
+, isPy27
 , isPyPy
-, isPy3k
+, pkgconfig
 }:
 
 buildPythonPackage rec {
   pname = "pycapnp";
   version = "1.0.0";
-  disabled = isPyPy || isPy3k;
+  disabled = isPyPy || isPy27;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "9f6fcca349ebf2ec04ca7eacb076aea3e4fcdc010ac33c98b54f0a19d4e5d3e0";
+  src = fetchFromGitHub {
+    owner = "capnproto";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1n6dq2fbagi3wvrpkyb7wx4y15nkm2grln4y75hrqgmnli8ggi9v";
   };
 
-  buildInputs = [ capnproto cython ];
+  buildInputs = [ capnproto cython pkgconfig ];
 
-  # import setuptools as soon as possible, to minimize monkeypatching mayhem.
-  postConfigure = ''
-    sed -i '3iimport setuptools' setup.py
-  '';
+  # Tests disabled due to dependency on jinja and various other libraries.
+  doCheck = false;
+
+  pythonImportsCheck = [ "capnp" ];
 
   meta = with stdenv.lib; {
-    maintainers = with maintainers; [ cstrahan ];
+    maintainers = with maintainers; [ cstrahan lukeadams ];
     license = licenses.bsd2;
-    homepage = "http://jparyani.github.io/pycapnp/index.html";
-    broken = true; # 2018-04-11
+    homepage = "https://capnproto.github.io/pycapnp/";
   };
-
 }
diff --git a/pkgs/development/python-modules/pychromecast/default.nix b/pkgs/development/python-modules/pychromecast/default.nix
index ce72850fffd..6e45eb2a626 100644
--- a/pkgs/development/python-modules/pychromecast/default.nix
+++ b/pkgs/development/python-modules/pychromecast/default.nix
@@ -2,20 +2,22 @@
 
 buildPythonPackage rec {
   pname = "PyChromecast";
-  version = "7.5.1";
+  version = "7.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cf2e9fa795ea1e9d0d180adfbdccefd6b4f532eae56f41f15d1a75b323096f51";
+    sha256 = "09mdz1y1bfwkszxsawffwy1mr7lc1j2rma571qkb60sk76107zfn";
   };
 
   disabled = !isPy3k;
 
   propagatedBuildInputs = [ requests zeroconf protobuf casttube ];
 
+  pythonImportsCheck = [ "pychromecast" ];
+
   meta = with lib; {
-    description = "Library for Python 3.4+ to communicate with the Google Chromecast";
-    homepage    = "https://github.com/balloob/pychromecast";
+    description = "Library for Python to communicate with the Google Chromecast";
+    homepage    = "https://github.com/home-assistant-libs/pychromecast";
     license     = licenses.mit;
     maintainers = with maintainers; [ abbradar ];
     platforms   = platforms.unix;
diff --git a/pkgs/development/python-modules/pyclipper/default.nix b/pkgs/development/python-modules/pyclipper/default.nix
index bc910cea580..6096f30181a 100644
--- a/pkgs/development/python-modules/pyclipper/default.nix
+++ b/pkgs/development/python-modules/pyclipper/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "pyclipper";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "0irs5sn6ldpg70630nfndghjnpxv8jldk61zyczfzp1jcz53b43s";
+    sha256 = "ca3751e93559f0438969c46f17459d07f983281dac170c3479de56492e152855";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pydantic/default.nix b/pkgs/development/python-modules/pydantic/default.nix
index 371bfba2f0f..9bf4bede1fa 100644
--- a/pkgs/development/python-modules/pydantic/default.nix
+++ b/pkgs/development/python-modules/pydantic/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
 , ujson
 , email_validator
 , typing-extensions
@@ -9,28 +8,21 @@
 , isPy3k
 , pytest
 , pytestcov
+, pytest-mock
 }:
 
 buildPythonPackage rec {
   pname = "pydantic";
-  version = "1.5.1";
+  version = "1.7.3";
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "samuelcolvin";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0fwrx7p6d5vskg9ibganahiz9y9299idvdmzhjw62jy84gn1vrb4";
+    sha256 = "xihEDmly0vprmA+VdeCoGXg9PjWRPmBWAwk/9f2DLts=";
   };
 
-  # fix tests, remove on next version bump
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/samuelcolvin/pydantic/commit/a5b0e741e585040a0ab8b0be94dd9dc2dd3afcc7.patch";
-      sha256 = "0v91ac3dw23rm73370s2ns84vi0xqbfzpvj84zb7xdiicx8fhmf1";
-    })
-  ];
-
   propagatedBuildInputs = [
     ujson
     email_validator
@@ -40,6 +32,7 @@ buildPythonPackage rec {
   checkInputs = [
     pytest
     pytestcov
+    pytest-mock
   ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/pydicom/default.nix b/pkgs/development/python-modules/pydicom/default.nix
index 24186c09dcd..450a6a3c049 100644
--- a/pkgs/development/python-modules/pydicom/default.nix
+++ b/pkgs/development/python-modules/pydicom/default.nix
@@ -1,29 +1,55 @@
 { stdenv
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , isPy27
-, pytest
 , pytestrunner
 , pytestCheckHook
 , numpy
 , pillow
 }:
 
-buildPythonPackage rec {
-  version = "2.1.1";
+let
   pname = "pydicom";
-  disabled = isPy27;
+  version = "2.1.2";
+
+  src = fetchFromGitHub {
+    owner = "${pname}";
+    repo = "${pname}";
+    rev = "v${version}";
+    sha256 = "sha256-iExy+mUs1uqs/u9N6btlqyP6/TvoPVsuOuzs56zZAS8=";
+  };
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "72a11086f6a277c1529a552583fde73e03256a912173f15e9bc256e5b28f28f1";
+  # Pydicom needs pydicom-data to run some tests. If these files are downloaded
+  # before the package creation, it'll try to download during the checkPhase.
+  test_data = fetchFromGitHub {
+    owner = "${pname}";
+    repo = "${pname}-data";
+    rev = "bbb723879690bb77e077a6d57657930998e92bd5";
+    sha256 = "sha256-dCI1temvpNWiWJYVfQZKy/YJ4ad5B0e9hEKHJnEeqzk=";
   };
 
+in
+buildPythonPackage {
+  inherit pname version src;
+  disabled = isPy27;
+
   propagatedBuildInputs = [ numpy pillow ];
 
-  checkInputs = [ pytest pytestrunner pytestCheckHook ];
-  disabledTests = [ "test_invalid_bit_depth_raises" ];
-  # harmless failure; see https://github.com/pydicom/pydicom/issues/1119
+  checkInputs = [ pytestrunner pytestCheckHook ];
+
+  # Setting $HOME to prevent pytest to try to create a folder inside
+  # /homeless-shelter which is read-only.
+  # Linking pydicom-data dicom files to $HOME/.pydicom/data
+  preCheck = ''
+    export HOME=$TMP/test-home
+    mkdir -p $HOME/.pydicom/
+    ln -s ${test_data}/data_store/data $HOME/.pydicom/data
+  '';
+
+  # This test try to remove a dicom inside $HOME/.pydicom/data/ and download it again.
+  disabledTests = [
+    "test_fetch_data_files"
+  ];
 
   meta = with stdenv.lib; {
     homepage = "https://pydicom.github.io";
diff --git a/pkgs/development/python-modules/pyerfa/default.nix b/pkgs/development/python-modules/pyerfa/default.nix
new file mode 100644
index 00000000000..26a61ddca54
--- /dev/null
+++ b/pkgs/development/python-modules/pyerfa/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, liberfa
+, packaging
+, numpy
+}:
+
+buildPythonPackage rec {
+  pname = "pyerfa";
+  format = "pyproject";
+  version = "1.7.1.1";
+
+  doCheck = false;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "09i2qcsvxd3q04a5yaf6fwzg79paaslpksinan9d8smj7viql15i";
+  };
+
+  nativeBuildInputs = [ packaging ];
+  propagatedBuildInputs = [ liberfa numpy ];
+  preBuild = ''
+    export PYERFA_USE_SYSTEM_LIBERFA=1
+  '';
+
+  meta = with lib; {
+    description = "Python bindings for ERFA routines";
+    longDescription = ''
+        PyERFA is the Python wrapper for the ERFA library (Essential Routines
+        for Fundamental Astronomy), a C library containing key algorithms for
+        astronomy, which is based on the SOFA library published by the
+        International Astronomical Union (IAU). All C routines are wrapped as
+        Numpy universal functions, so that they can be called with scalar or
+        array inputs.
+    '';
+    homepage = "https://github.com/liberfa/pyerfa";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.rmcgibbo ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyeverlights/default.nix b/pkgs/development/python-modules/pyeverlights/default.nix
new file mode 100644
index 00000000000..00b9f8fb015
--- /dev/null
+++ b/pkgs/development/python-modules/pyeverlights/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+}:
+
+buildPythonPackage rec {
+  pname = "pyeverlights";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "joncar";
+    repo = pname;
+    rev = version;
+    sha256 = "16xpq933j8yydq78fnf4f7ivyw5a45ix4mfycpmm91aj549p6pm0";
+  };
+
+  propagatedBuildInputs = [ aiohttp ];
+
+  # no tests are present
+  doCheck = false;
+  pythonImportsCheck = [ "pyeverlights" ];
+
+  meta = with lib; {
+    description = "Python module for interfacing with an EverLights control box";
+    homepage = "https://github.com/joncar/pyeverlights";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyftdi/default.nix b/pkgs/development/python-modules/pyftdi/default.nix
index 4cb6138d5eb..71253a894e7 100644
--- a/pkgs/development/python-modules/pyftdi/default.nix
+++ b/pkgs/development/python-modules/pyftdi/default.nix
@@ -1,24 +1,39 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder, pyusb, pyserial }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pyserial
+, pythonOlder
+, pyusb
+}:
 
 buildPythonPackage rec {
   pname = "pyftdi";
-  version = "0.51.2";
+  version = "0.52.0";
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "eblot";
     repo = pname;
     rev = "v${version}";
-    sha256 = "14mkwk44bgm6s4kqagz7nm6p6gsygmksl2628jaqh7ppblxca9as";
+    sha256 = "0nm4z7v9qcb9mxqbl21jgzica4faldnpy5qmbkrc6scnx55pxfm9";
   };
 
   propagatedBuildInputs = [ pyusb pyserial ];
 
+  # tests requires access to the serial port
+  doCheck = false;
+
   pythonImportsCheck = [ "pyftdi" ];
 
-  meta = {
+  meta = with lib; {
     description = "User-space driver for modern FTDI devices";
+    longDescription = ''
+      PyFtdi aims at providing a user-space driver for popular FTDI devices.
+      This includes UART, GPIO and multi-serial protocols (SPI, I2C, JTAG)
+      bridges.
+    '';
     homepage = "https://github.com/eblot/pyftdi";
-    license = lib.licenses.bsd3;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/pygal/default.nix b/pkgs/development/python-modules/pygal/default.nix
index b02b6043425..617f5fa3fd5 100644
--- a/pkgs/development/python-modules/pygal/default.nix
+++ b/pkgs/development/python-modules/pygal/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, fetchpatch
 , isPyPy
 , flask
 , pyquery
@@ -16,12 +17,20 @@ buildPythonPackage rec {
   pname = "pygal";
   version = "2.4.0";
 
-  doCheck = !isPyPy;  # one check fails with pypy
+  doCheck = !isPyPy; # one check fails with pypy
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "9204f05380b02a8a32f9bf99d310b51aa2a932cba5b369f7a4dc3705f0a4ce83";
   };
+  patches = [
+    # Fixes compatibility with latest pytest. October 12, 2020.
+    # Should be included in the next release after 2.4.0
+    (fetchpatch {
+      url = "https://github.com/Kozea/pygal/commit/19e5399be18a054b3b293f4a8a2777d2df4f9c18.patch";
+      sha256 = "1j0hpcvd2mhi449wmlr0ml9gw4cakqk3av1j79bi2qy86dyrss2l";
+    })
+  ];
 
   buildInputs = [
     flask
@@ -51,7 +60,7 @@ buildPythonPackage rec {
   meta = with stdenv.lib; {
     description = "Sexy and simple python charting";
     homepage = "http://www.pygal.org";
-    license = licenses.lgpl3;
+    license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ sjourdois ];
   };
 
diff --git a/pkgs/development/python-modules/pygame/default.nix b/pkgs/development/python-modules/pygame/default.nix
index 673b14bfe4f..333312d6aa0 100644
--- a/pkgs/development/python-modules/pygame/default.nix
+++ b/pkgs/development/python-modules/pygame/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "pygame";
-  version = "2.0.0";
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "63b038da116a643046181b02173fd894d87d2f85ecfd6aa7d5ece73c6ef501e9";
+    sha256 = "8b1e7b63f47aafcdd8849933b206778747ef1802bd3d526aca45ed77141e4001";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyhomematic/default.nix b/pkgs/development/python-modules/pyhomematic/default.nix
index 0dab202a79a..9534762f4e4 100644
--- a/pkgs/development/python-modules/pyhomematic/default.nix
+++ b/pkgs/development/python-modules/pyhomematic/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "pyhomematic";
-  version = "0.1.70";
+  version = "0.1.71";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1c9ae61c870e37348483966f6aa46f650f339f5f1169e5beb19d681c6434c247";
+    sha256 = "0z09bw2mlhg7n9jyqmcyir306wpxr5nw1qsp5ps2iaw1qnyz5s9n";
   };
 
   # PyPI tarball does not include tests/ directory
diff --git a/pkgs/development/python-modules/pyi2cflash/default.nix b/pkgs/development/python-modules/pyi2cflash/default.nix
new file mode 100644
index 00000000000..7ac3aa5af08
--- /dev/null
+++ b/pkgs/development/python-modules/pyi2cflash/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pyftdi
+}:
+
+buildPythonPackage rec {
+  pname = "pyi2cflash";
+  version = "0.2.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1nkazgf7pajz7jym5rfy2df71lyfp4skxqbrg5ch0h4dwjdwllx1";
+  };
+
+  propagatedBuildInputs = [
+    pyftdi
+  ];
+
+  # tests are not shipped with the PyPI source
+  doCheck = false;
+
+  pythonImportsCheck = [ "i2cflash" ];
+
+  meta = with lib; {
+    description = "I2C eeprom device drivers in Python";
+    homepage = "https://github.com/eblot/pyi2cflash";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pykka/default.nix b/pkgs/development/python-modules/pykka/default.nix
index 6f76ca9850f..075b607c772 100644
--- a/pkgs/development/python-modules/pykka/default.nix
+++ b/pkgs/development/python-modules/pykka/default.nix
@@ -1,27 +1,21 @@
-{ stdenv
-, buildPythonPackage
-, fetchFromGitHub
-}:
+{ lib, buildPythonPackage, fetchPypi, pytestCheckHook, pytest-mock }:
 
 buildPythonPackage rec {
-  pname = "pykka";
-  version = "2.0.1";
+  pname = "Pykka";
+  version = "2.0.3";
 
-  src = fetchFromGitHub {
-    owner = "jodal";
-    repo = pname;
-    rev = "refs/tags/v${version}";
-    sha256 = "011rvv3vzj9rpwaq6vfpz9hfwm6gx1jmad4iri6z12g8nnlpydhs";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "4b9d2363365b3455a0204bf163f09bd351d24b938c618c79d975a9510e128e95";
   };
 
-  # There are no tests
-  doCheck = false;
+  checkInputs = [ pytestCheckHook pytest-mock ];
 
-  meta = with stdenv.lib; {
-    homepage = "http://www.pykka.org";
+  meta = with lib; {
+    homepage = "https://www.pykka.org/";
     description = "A Python implementation of the actor model";
+    changelog = "https://github.com/jodal/pykka/blob/v${version}/docs/changes.rst";
+    maintainers = [ maintainers.marsam ];
     license = licenses.asl20;
-    maintainers = [];
   };
-
 }
diff --git a/pkgs/development/python-modules/pylast/default.nix b/pkgs/development/python-modules/pylast/default.nix
index 12fac476f63..3faf8d70fdf 100644
--- a/pkgs/development/python-modules/pylast/default.nix
+++ b/pkgs/development/python-modules/pylast/default.nix
@@ -4,13 +4,13 @@
 
 buildPythonPackage rec {
   pname = "pylast";
-  version = "4.0.0";
+  version = "4.1.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8ec555d6c4c1b474e9b3c96c3786abd38303a1a5716d928b0f3cfdcb4499b093";
+    sha256 = "ad084aec1bf7e307bc42d7cc1a003851f5bee1ad24fb697a9fdc300bbfe63932";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
diff --git a/pkgs/development/python-modules/pyppeteer/default.nix b/pkgs/development/python-modules/pyppeteer/default.nix
index 09d2415f8e0..a15f7aadb88 100644
--- a/pkgs/development/python-modules/pyppeteer/default.nix
+++ b/pkgs/development/python-modules/pyppeteer/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pyppeteer";
-  version = "0.2.2";
+  version = "0.2.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1s92izan7s3iffc85wpwi1qv9brcq0rlfqyi84wmpmg1dxk64g0m";
+    sha256 = "d1bcc61575ff788249d3bcaee696d856fa1153401a5428cb7376d826dd68dd9b";
   };
 
   # tests want to write to /homeless-shelter
diff --git a/pkgs/development/python-modules/pyqt/5.x.nix b/pkgs/development/python-modules/pyqt/5.x.nix
index 5b971c48d78..0c32985cfaa 100644
--- a/pkgs/development/python-modules/pyqt/5.x.nix
+++ b/pkgs/development/python-modules/pyqt/5.x.nix
@@ -30,12 +30,12 @@ let
 
 in buildPythonPackage rec {
   pname = "PyQt5";
-  version = "5.15.1";
+  version = "5.15.2";
   format = "other";
 
   src = pythonPackages.fetchPypi {
     inherit pname version;
-    sha256 = "18grs2p698ihjgi8agksv6sajakciywyr29ihslqvl260a2np9yr";
+    sha256 = "1z74295i69cha52llsqffzhb5zz7qnbjc64h8qg21l91jgf0harp";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/python-modules/pyro4/default.nix b/pkgs/development/python-modules/pyro4/default.nix
index 713b257a195..508722e70fb 100644
--- a/pkgs/development/python-modules/pyro4/default.nix
+++ b/pkgs/development/python-modules/pyro4/default.nix
@@ -32,20 +32,26 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [ pytestCheckHook ];
+
   # add testsupport.py to PATH
   preCheck = "PYTHONPATH=tests/PyroTests:$PYTHONPATH";
+
   # ignore network related tests, which fail in sandbox
   pytestFlagsArray = [ "--ignore=tests/PyroTests/test_naming.py" ];
+
   disabledTests = [
     "StartNSfunc"
     "Broadcast"
     "GetIP"
   ];
 
+  # otherwise the tests hang the build
+  __darwinAllowLocalNetworking = true;
+
   meta = with stdenv.lib; {
     description = "Distributed object middleware for Python (RPC)";
     homepage = "https://github.com/irmen/Pyro4";
     license = licenses.mit;
     maintainers = with maintainers; [ prusnak ];
-    };
+  };
 }
diff --git a/pkgs/development/python-modules/pyrsistent/default.nix b/pkgs/development/python-modules/pyrsistent/default.nix
index a343db4f554..7da3239f3e7 100644
--- a/pkgs/development/python-modules/pyrsistent/default.nix
+++ b/pkgs/development/python-modules/pyrsistent/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , six
 , pytest_4
 , hypothesis_4
@@ -11,6 +12,8 @@ buildPythonPackage rec {
   pname = "pyrsistent";
   version = "0.17.3";
 
+  disabled = isPy27;
+
   src = fetchPypi {
     inherit pname version;
     sha256 = "2e636185d9eb976a18a8a8e96efce62f2905fea90041958d8cc2a189756ebf3e";
diff --git a/pkgs/development/python-modules/pyscreenshot/default.nix b/pkgs/development/python-modules/pyscreenshot/default.nix
index ec67b7649ea..3ca096332ae 100644
--- a/pkgs/development/python-modules/pyscreenshot/default.nix
+++ b/pkgs/development/python-modules/pyscreenshot/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "pyscreenshot";
-  version = "2.2";
+  version = "2.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dec8517cb18faf4f983dd2ee6636924e472a5644da1480ae871786dfcac244e9";
+    sha256 = "bfdc311bd6ec1ee9e3c25ece75b24a749673ad5d5f89ee02950080023054ffd5";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyspiflash/default.nix b/pkgs/development/python-modules/pyspiflash/default.nix
new file mode 100644
index 00000000000..fcab563b5ab
--- /dev/null
+++ b/pkgs/development/python-modules/pyspiflash/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pyftdi
+}:
+
+buildPythonPackage rec {
+  pname = "pyspiflash";
+  version = "0.6.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0ifnw1qm4nssb03af93qw6vpa92rmyc2hisw9m4043pm9ryqcmpc";
+  };
+
+  propagatedBuildInputs = [
+    pyftdi
+  ];
+
+  # tests are not shipped with the PyPI source
+  doCheck = false;
+
+  pythonImportsCheck = [ "spiflash" ];
+
+  meta = with lib; {
+    description = "SPI data flash device drivers in Python";
+    homepage = "https://github.com/eblot/pyspiflash";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pysqlcipher3/default.nix b/pkgs/development/python-modules/pysqlcipher3/default.nix
new file mode 100644
index 00000000000..ab3f949cf1e
--- /dev/null
+++ b/pkgs/development/python-modules/pysqlcipher3/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchPypi, pythonAtLeast, sqlcipher }:
+
+buildPythonPackage rec {
+  pname = "pysqlcipher3";
+  version = "1.0.3";
+
+  disabled = pythonAtLeast "3.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0c54m18h52llwkfc9zaag3qkmfzzp5a1w9jzsm5hd2nfdsxmnkk9";
+  };
+
+  buildInputs = [ sqlcipher ];
+
+  pythonImportsCheck = [ "pysqlcipher3" ];
+
+  meta = with lib; {
+    description = "Python 3 bindings for SQLCipher";
+    homepage = "https://github.com/rigglemania/pysqlcipher3/";
+    license = licenses.zlib;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/development/python-modules/pysvn/default.nix b/pkgs/development/python-modules/pysvn/default.nix
index d56c10a9591..0fca57cb292 100644
--- a/pkgs/development/python-modules/pysvn/default.nix
+++ b/pkgs/development/python-modules/pysvn/default.nix
@@ -60,11 +60,11 @@ buildPythonPackage rec {
     sed -i "s|/bin/bash|${bash}/bin/bash|" ../Tests/test-*.sh
     make -C ../Tests
 
+    ${python.interpreter} -c "import pysvn"
+
     runHook postCheck
   '';
 
-  pythonImportCheck = [ "pysvn" ];
-
   installPhase = ''
     dest=$(toPythonPath $out)/pysvn
     mkdir -p $dest
@@ -80,5 +80,4 @@ buildPythonPackage rec {
     homepage = "http://pysvn.tigris.org/";
     license = licenses.asl20;
   };
-
 }
diff --git a/pkgs/development/python-modules/pysychonaut/default.nix b/pkgs/development/python-modules/pysychonaut/default.nix
new file mode 100644
index 00000000000..ae05070e76d
--- /dev/null
+++ b/pkgs/development/python-modules/pysychonaut/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildPythonPackage, fetchPypi, requests, requests-cache, beautifulsoup4 }:
+
+buildPythonPackage rec {
+  pname = "PySychonaut";
+  version = "0.6.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1wgk445gmi0x7xmd8qvnyxy1ka0n72fr6nrhzdm29q6687dqyi7h";
+  };
+
+  preConfigure = ''
+    substituteInPlace setup.py --replace "bs4" "beautifulsoup4"
+  '';
+
+  propagatedBuildInputs = [ requests requests-cache beautifulsoup4 ];
+
+  # No tests available
+  doCheck = false;
+  pythonImportsCheck = [ "pysychonaut" ];
+
+  meta = with lib; {
+    description = "Unofficial python api for Erowid, PsychonautWiki and AskTheCaterpillar";
+    homepage = "https://github.com/OpenJarbas/PySychonaut";
+    maintainers = [ maintainers.ivar ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/python-modules/pytest-astropy-header/default.nix b/pkgs/development/python-modules/pytest-astropy-header/default.nix
index 05c6135a4b9..4b40280ed70 100644
--- a/pkgs/development/python-modules/pytest-astropy-header/default.nix
+++ b/pkgs/development/python-modules/pytest-astropy-header/default.nix
@@ -1,21 +1,36 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, fetchpatch
 , pytest
 , pytestcov
 , pytestCheckHook
 , numpy
 , astropy
+, scipy
+, h5py
+, scikitimage
 }:
 
 buildPythonPackage rec {
   pname = "pytest-astropy-header";
   version = "0.1.2";
+  format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "1y87agr324p6x5gvhziymxjlw54pyn4gqnd49papbl941djpkp5g";
   };
+  patches = [ (fetchpatch {
+      url = "https://github.com/astropy/pytest-astropy-header/pull/16.patch";
+      sha256 = "11ln63zq0kgsdx1jw3prlzpcdbxmc99p9cwr18s0x6apy0k6df31";
+    })
+    (fetchpatch {
+      url = "https://github.com/astropy/pytest-astropy-header/pull/29.patch";
+      sha256 = "18l434c926r5z1iq3b6lpnp0lrssszars9y1y9hs6216r60jgjpl";
+    })
+  ];
+
 
   propagatedBuildInputs = [
     pytest
@@ -25,6 +40,9 @@ buildPythonPackage rec {
     pytestCheckHook
     pytestcov
     numpy
+    scipy
+    h5py
+    scikitimage
     astropy
   ];
 
diff --git a/pkgs/development/python-modules/pytest-black/default.nix b/pkgs/development/python-modules/pytest-black/default.nix
index 20b2483c9d1..6f23c00baf3 100644
--- a/pkgs/development/python-modules/pytest-black/default.nix
+++ b/pkgs/development/python-modules/pytest-black/default.nix
@@ -18,6 +18,8 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ black pytest toml ];
 
+  # does not contain tests
+  doCheck = false;
   pythonImportsCheck = [ "pytest_black" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pytest-datafiles/default.nix b/pkgs/development/python-modules/pytest-datafiles/default.nix
index 7a6e3f7d931..2fafdcd1aaa 100644
--- a/pkgs/development/python-modules/pytest-datafiles/default.nix
+++ b/pkgs/development/python-modules/pytest-datafiles/default.nix
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   meta = with stdenv.lib; {
     license = licenses.mit;
-    homepage = "https://pypi.python.org/pypi/pytest-catchlog/";
+    homepage = "https://github.com/omarkohl/pytest-datafiles";
     description = "py.test plugin to create a 'tmpdir' containing predefined files/directories.";
   };
 }
diff --git a/pkgs/development/python-modules/pytest-mypy/default.nix b/pkgs/development/python-modules/pytest-mypy/default.nix
index 2d2a3264e74..9062284d5df 100644
--- a/pkgs/development/python-modules/pytest-mypy/default.nix
+++ b/pkgs/development/python-modules/pytest-mypy/default.nix
@@ -17,8 +17,13 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [ setuptools_scm ];
+
   propagatedBuildInputs = [ pytest mypy filelock ];
 
+  # does not contain tests
+  doCheck = false;
+  pythonImportsCheck = [ "pytest_mypy" ];
+
   meta = with lib; {
     description = "Mypy static type checker plugin for Pytest";
     homepage = "https://github.com/dbader/pytest-mypy";
diff --git a/pkgs/development/python-modules/pytest-trio/default.nix b/pkgs/development/python-modules/pytest-trio/default.nix
index 923fe14cfac..7bf05013f21 100644
--- a/pkgs/development/python-modules/pytest-trio/default.nix
+++ b/pkgs/development/python-modules/pytest-trio/default.nix
@@ -3,14 +3,14 @@
 
 buildPythonPackage rec {
   pname = "pytest-trio";
-  version = "0.6.0";
-  disabled = pythonOlder "3.5";
+  version = "0.7.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "python-trio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "09v2031yxm8ryhq12205ldcck76n3wwqhjjsgfmn6dxfiqb0vbw9";
+    sha256 = "0bhh2nknhp14jzsx4zzpqm4qnfaihyi65cjf6kf6qgdhc0ax6nf4";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/python-codon-tables/default.nix b/pkgs/development/python-modules/python-codon-tables/default.nix
new file mode 100644
index 00000000000..4c1ec6a3a20
--- /dev/null
+++ b/pkgs/development/python-modules/python-codon-tables/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "python-codon-tables";
+  version = "0.1.10";
+
+  src = fetchPypi {
+    pname = "python_codon_tables";
+    inherit version;
+    sha256 = "265beac928cbb77c6745bc728471adc7ffef933b794be303d272ecb9ad37d3d4";
+  };
+
+  # no tests in tarball
+  doCheck = false;
+
+  pythonImportsCheck = [ "python_codon_tables" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/Edinburgh-Genome-Foundry/codon-usage-tables";
+    description = "Codon Usage Tables for Python, from kazusa.or.jp";
+    license = licenses.mit;
+    maintainers = with maintainers; [ prusnak ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-engineio/default.nix b/pkgs/development/python-modules/python-engineio/default.nix
index a74ee0455f2..ecbdb73abc0 100644
--- a/pkgs/development/python-modules/python-engineio/default.nix
+++ b/pkgs/development/python-modules/python-engineio/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
 , aiohttp
 , eventlet
 , iana-etc
@@ -14,19 +16,15 @@
 
 buildPythonPackage rec {
   pname = "python-engineio";
-  version = "3.13.2";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "miguelgrinberg";
     repo = "python-engineio";
     rev = "v${version}";
-    sha256 = "1hn5nnxp7y2dpf52vrwdxza2sqmzj8admcnwgjkmcxk65s2dhvy1";
+    sha256 = "00x9pmmnl1yd59wd96ivkiqh4n5nphl8cwk43hf4nqr0icgsyhar";
   };
 
-  propagatedBuildInputs = [
-    six
-  ];
-
   checkInputs = [
     aiohttp
     eventlet
@@ -47,11 +45,16 @@ buildPythonPackage rec {
 
   # somehow effective log level does not change?
   disabledTests = [ "test_logger" ];
+  pythonImportsCheck = [ "engineio" ];
 
   meta = with stdenv.lib; {
-    description = "Engine.IO server";
+    description = "Python based Engine.IO client and server";
+    longDescription = ''
+      Engine.IO is a lightweight transport protocol that enables real-time
+      bidirectional event-based communication between clients and a server.
+    '';
     homepage = "https://github.com/miguelgrinberg/python-engineio/";
-    license = licenses.mit;
-    maintainers = [ maintainers.mic92 ];
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ mic92 ];
   };
 }
diff --git a/pkgs/development/python-modules/python-mystrom/default.nix b/pkgs/development/python-modules/python-mystrom/default.nix
new file mode 100644
index 00000000000..ccda98b2eb1
--- /dev/null
+++ b/pkgs/development/python-modules/python-mystrom/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, aiohttp
+, click
+, requests
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "python-mystrom";
+  version = "2.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "050dkx29wrmdd8z7pmyk36k2ihpapqi4qmyb70bm6xl5l4jh4k7j";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    click
+    requests
+    setuptools
+  ];
+
+  # no tests are present
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pymystrom.bulb"
+    "pymystrom.pir"
+    "pymystrom.switch"
+  ];
+
+  meta = with lib; {
+    description = "Python API client for interacting with myStrom devices";
+    longDescription = ''
+      Asynchronous Python API client for interacting with myStrom devices.
+      There is support for bulbs, motion sensors, plugs and buttons.
+    '';
+    homepage = "https://github.com/home-assistant-ecosystem/python-mystrom";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-opendata-transport/default.nix b/pkgs/development/python-modules/python-opendata-transport/default.nix
new file mode 100644
index 00000000000..634ccea371e
--- /dev/null
+++ b/pkgs/development/python-modules/python-opendata-transport/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, aiohttp
+, async-timeout
+, urllib3
+}:
+
+buildPythonPackage rec {
+  pname = "python-opendata-transport";
+  version = "0.2.1";
+
+  src = fetchPypi {
+    pname = "python_opendata_transport";
+    inherit version;
+    sha256 = "0pxs9zqk00vn1s74cx1416mqmixrr74wb0jb0j6b1c3xpvzlfbks";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    async-timeout
+    urllib3
+  ];
+
+  # no tests are present
+  doCheck = false;
+
+  pythonImportsCheck = [ "opendata_transport" ];
+
+  meta = with lib; {
+    description = "Python client for interacting with transport.opendata.ch";
+    homepage = "https://github.com/home-assistant-ecosystem/python-opendata-transport";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-socketio/default.nix b/pkgs/development/python-modules/python-socketio/default.nix
index cfa26020571..64386e83f69 100644
--- a/pkgs/development/python-modules/python-socketio/default.nix
+++ b/pkgs/development/python-modules/python-socketio/default.nix
@@ -1,33 +1,43 @@
-{ lib
+{ stdenv
+, bidict
 , buildPythonPackage
-, fetchPypi
-, six
-, python-engineio
+, fetchFromGitHub
 , mock
+, pytestCheckHook
+, python-engineio
 }:
 
 buildPythonPackage rec {
   pname = "python-socketio";
-  version = "4.6.1";
+  version = "5.0.4";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "cd1f5aa492c1eb2be77838e837a495f117e17f686029ebc03d62c09e33f4fa10";
+  src = fetchFromGitHub {
+    owner = "miguelgrinberg";
+    repo = "python-socketio";
+    rev = "v${version}";
+    sha256 = "0mpqr53mrdzk9ki24y1inpsfvjlvm7pvxf8q4d52m80i5pcd5v5q";
   };
 
   propagatedBuildInputs = [
-    six
+    bidict
     python-engineio
   ];
 
-  checkInputs = [ mock ];
-  # tests only on github, but latest github release not tagged
-  doCheck = false;
+  checkInputs = [
+    mock
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "socketio" ];
 
-  meta = with lib; {
-    description = "Socket.IO server";
-    homepage = "https://github.com/miguelgrinberg/python-socketio/";
-    license = licenses.mit;
-    maintainers = [ maintainers.mic92 ];
+  meta = with stdenv.lib; {
+    description = "Python Socket.IO server and client";
+    longDescription = ''
+      Socket.IO is a lightweight transport protocol that enables real-time
+      bidirectional event-based communication between clients and a server.
+    '';
+    homepage = "https://github.com/miguelgrinberg/python-engineio/";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ mic92 ];
   };
 }
diff --git a/pkgs/development/python-modules/python-tado/default.nix b/pkgs/development/python-modules/python-tado/default.nix
new file mode 100644
index 00000000000..98c03b89309
--- /dev/null
+++ b/pkgs/development/python-modules/python-tado/default.nix
@@ -0,0 +1,26 @@
+{ buildPythonPackage, fetchFromGitHub, lib, pytestCheckHook, pythonOlder, requests }:
+
+buildPythonPackage rec {
+  pname = "python-tado";
+  version = "0.9.0";
+
+  disabled = pythonOlder "3.5";
+
+  src = fetchFromGitHub {
+    owner = "wmalgadey";
+    repo = "PyTado";
+    rev = version;
+    sha256 = "0cr5sxdvjgdrrlhl32rs8pwyay8liyi6prm37y66dn00b41cb5l3";
+  };
+
+  propagatedBuildInputs = [ requests ];
+  checkInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    description =
+      "Python binding for Tado web API. Pythonize your central heating!";
+    homepage = "https://github.com/wmalgadey/PyTado";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ jamiemagee ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-whois/default.nix b/pkgs/development/python-modules/python-whois/default.nix
new file mode 100644
index 00000000000..c4d163100ca
--- /dev/null
+++ b/pkgs/development/python-modules/python-whois/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, future
+, nose
+, pytestCheckHook
+, simplejson
+}:
+
+buildPythonPackage rec {
+  pname = "python-whois";
+  version = "0.7.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "05jaxbnlw5wck0hl124py364jqrx7a4mmv0hy3d2jzvmp0012sk5";
+  };
+
+  propagatedBuildInputs = [ future ];
+
+  checkInputs = [
+    nose
+    pytestCheckHook
+    simplejson
+  ];
+
+  # Exclude tests that require network access
+  disabledTests = [
+    "test_dk_parse"
+    "test_ipv4"
+    "test_ipv6"
+  ];
+  pythonImportsCheck = [ "whois" ];
+
+  meta = with lib; {
+    description = "Python module to produce parsed WHOIS data";
+    homepage = "https://github.com/richardpenman/whois";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pythonix/default.nix b/pkgs/development/python-modules/pythonix/default.nix
index 6ed150d1239..4ed0fb79127 100644
--- a/pkgs/development/python-modules/pythonix/default.nix
+++ b/pkgs/development/python-modules/pythonix/default.nix
@@ -1,23 +1,31 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, ninja, boost, meson, pkgconfig, nix, isPy3k }:
+{ stdenv, buildPythonPackage, fetchFromGitHub, ninja, boost, meson, pkg-config, nix, isPy3k, python }:
 
 buildPythonPackage rec {
   pname = "pythonix";
-  version = "0.1.6";
+  version = "0.1.7";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "pythonix";
     rev = "v${version}";
-    sha256 = "1qzcrpn333hsgn6fj1m1s3cvaf0ny8qpygamcrazqv57xmwyr8h5";
+    sha256 = "1wxqv3i4bva2qq9mx670bcx0g0irjn68fvk28dwvhay9ndwcspqf";
   };
 
   disabled = !isPy3k;
 
-  nativeBuildInputs = [ meson ninja pkgconfig ];
+  nativeBuildInputs = [ meson ninja pkg-config ];
 
   buildInputs = [ nix boost ];
 
+  postInstall = ''
+    # This is typically set by pipInstallHook/eggInstallHook,
+    # so we have to do so manually when using meson
+    export PYTHONPATH=$out/${python.sitePackages}:$PYTHONPATH
+  '';
+
+  pythonImportsCheck = [ "nix" ];
+
   meta = with stdenv.lib; {
     description = ''
        Eval nix code from python.
diff --git a/pkgs/development/python-modules/pythonocc-core/default.nix b/pkgs/development/python-modules/pythonocc-core/default.nix
index b3a9cfe82ee..96c79a45b27 100644
--- a/pkgs/development/python-modules/pythonocc-core/default.nix
+++ b/pkgs/development/python-modules/pythonocc-core/default.nix
@@ -1,5 +1,6 @@
-{ stdenv, python, fetchFromGitHub, cmake, swig, ninja,
-  opencascade, smesh, freetype, libGL, libGLU, libX11 }:
+{ stdenv, python, fetchFromGitHub, cmake, swig, ninja
+, opencascade, smesh, freetype, libGL, libGLU, libX11
+, Cocoa }:
 
 stdenv.mkDerivation rec {
   pname = "pythonocc-core";
@@ -12,11 +13,17 @@ stdenv.mkDerivation rec {
     sha256 = "1jk4y7f75z9lyawffpfkr50qw5452xzi1imcdlw9pdvf4i0y86k3";
   };
 
-  nativeBuildInputs = [ cmake swig ninja ];
+  postPatch = ''
+    substituteInPlace CMakeLists.txt \
+    --replace "/usr/X11R6/lib/libGL.dylib" "${libGL}/lib/libGL.dylib" \
+    --replace "/usr/X11R6/lib/libGLU.dylib" "${libGLU}/lib/libGLU.dylib"
+  '';
+
+  nativeBuildInputs = [ cmake swig ];
   buildInputs = [
     python opencascade smesh
     freetype libGL libGLU libX11
-  ];
+  ] ++ stdenv.lib.optionals stdenv.isDarwin [ Cocoa ];
 
   cmakeFlags = [
     "-Wno-dev"
diff --git a/pkgs/development/python-modules/pytun/default.nix b/pkgs/development/python-modules/pytun/default.nix
index fed78cea96f..b37dbf26fb7 100644
--- a/pkgs/development/python-modules/pytun/default.nix
+++ b/pkgs/development/python-modules/pytun/default.nix
@@ -5,15 +5,16 @@
 
 buildPythonPackage rec {
   pname = "pytun";
-  version = "2.2.1";
+  version = "2.3.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "montag451";
     repo = "pytun";
-    sha256 = "1bxk0z0v8m0b01xg94f039j3bsclkshb7girvjqfzk5whbd2nryh";
+    sha256 = "1cqq8aci38058fjh4a0xf21wac177fw576p2yjl2b8jd9rnsqbl5";
   };
 
+  # Test directory contains examples, not tests.
   doCheck = false;
 
   meta = with stdenv.lib; {
@@ -23,5 +24,4 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ montag451 ];
     platforms = platforms.linux;
   };
-
 }
diff --git a/pkgs/development/python-modules/pyvcd/default.nix b/pkgs/development/python-modules/pyvcd/default.nix
index 11fe52d553a..3684fee0d22 100644
--- a/pkgs/development/python-modules/pyvcd/default.nix
+++ b/pkgs/development/python-modules/pyvcd/default.nix
@@ -8,13 +8,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.2.3";
+  version = "0.2.4";
   pname = "pyvcd";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c0fd7321143e821033f59dd41fc6b0350d1533ddccd4c8fc1d1f76e21cd667de";
+    sha256 = "071e51a8362908ad5a2a12f078185639b98b20b653a56f01679de169d0fa425d";
   };
 
   buildInputs = [ setuptools_scm ];
diff --git a/pkgs/development/python-modules/pyvips/default.nix b/pkgs/development/python-modules/pyvips/default.nix
index 5853538610a..1a01eda244b 100644
--- a/pkgs/development/python-modules/pyvips/default.nix
+++ b/pkgs/development/python-modules/pyvips/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "pyvips";
-  version = "2.1.13";
+  version = "2.1.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4f1f6fa19893048bf6b950eb7eb2d4cdfeb8b940a9defaca5d4f79e5acd5085f";
+    sha256 = "244e79c625be65237677c79424d4476de6c406805910015d4adbd0186c64a6a2";
   };
 
   nativeBuildInputs = [ pytestrunner pkgconfig pkg-config ];
diff --git a/pkgs/development/python-modules/pywilight/default.nix b/pkgs/development/python-modules/pywilight/default.nix
new file mode 100644
index 00000000000..66bdcca4793
--- /dev/null
+++ b/pkgs/development/python-modules/pywilight/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, ifaddr
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "pywilight";
+  version = "0.0.65";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1bldhg81lal9mbf55ky3gj2ndlplr0vfjp1bamd0mz5d9icas8nf";
+  };
+
+  propagatedBuildInputs = [
+    ifaddr
+    requests
+  ];
+
+  # no tests are present
+  doCheck = false;
+  pythonImportsCheck = [ "pywilight" ];
+
+  meta = with lib; {
+    description = "Python API for WiLight device";
+    homepage = "https://github.com/leofig-rj/pywilight";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pywizlight/default.nix b/pkgs/development/python-modules/pywizlight/default.nix
new file mode 100644
index 00000000000..32baa25e52e
--- /dev/null
+++ b/pkgs/development/python-modules/pywizlight/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, asyncio-dgram
+, click
+}:
+
+buildPythonPackage rec {
+  pname = "pywizlight";
+  version = "0.4.1";
+
+  src = fetchFromGitHub {
+    owner = "sbidy";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0kyhyda28zbni9sjv6kvky6wlhqldl47niddgpbjsv5dlb9xvxns";
+  };
+
+  propagatedBuildInputs = [
+    asyncio-dgram
+    click
+  ];
+
+  # no tests are present
+  doCheck = false;
+  pythonImportsCheck = [ "pywizlight" ];
+
+  meta = with lib; {
+    description = "Python connector for WiZ light bulbs";
+    homepage = "https://github.com/sbidy/pywizlight";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/quandl/default.nix b/pkgs/development/python-modules/quandl/default.nix
index 33fc54241d9..56b80a4676b 100644
--- a/pkgs/development/python-modules/quandl/default.nix
+++ b/pkgs/development/python-modules/quandl/default.nix
@@ -1,11 +1,10 @@
-{
-  lib, fetchPypi, buildPythonPackage, isPy3k, pythonOlder,
-  # runtime dependencies
-  pandas, numpy, requests, inflection, python-dateutil, six, more-itertools, importlib-metadata,
-  # test suite dependencies
-  nose, unittest2, flake8, httpretty, mock, jsondate, parameterized, faker, factory_boy,
-  # additional runtime dependencies are required on Python 2.x
-  pyOpenSSL ? null, ndg-httpsclient ? null, pyasn1 ? null
+{ lib, fetchPypi, buildPythonPackage, isPy3k, pythonOlder
+# runtime dependencies
+, pandas, numpy, requests, inflection, python-dateutil, six, more-itertools, importlib-metadata
+# test suite dependencies
+, nose, unittest2, flake8, httpretty, mock, jsondate, parameterized, faker, factory_boy
+# additional runtime dependencies are required on Python 2.x
+, pyopenssl, ndg-httpsclient, pyasn1
 }:
 
 buildPythonPackage rec {
@@ -19,8 +18,6 @@ buildPythonPackage rec {
     sha256 = "0zpw0nwqr4g56l9z4my0fahfgpcmfx74acbmv6nfx1dmq5ggraf3";
   };
 
-  doCheck = true;
-
   checkInputs = [
     nose
     unittest2
@@ -42,7 +39,7 @@ buildPythonPackage rec {
     six
     more-itertools
   ] ++ lib.optionals (!isPy3k) [
-    pyOpenSSL
+    pyopenssl
     ndg-httpsclient
     pyasn1
   ] ++ lib.optionals (pythonOlder "3.8") [
diff --git a/pkgs/development/python-modules/reflink/default.nix b/pkgs/development/python-modules/reflink/default.nix
new file mode 100644
index 00000000000..e9b8beadd16
--- /dev/null
+++ b/pkgs/development/python-modules/reflink/default.nix
@@ -0,0 +1,33 @@
+{ buildPythonPackage
+, cffi
+, fetchPypi
+, lib
+, pytestCheckHook
+, pytestrunner
+}:
+
+buildPythonPackage rec {
+  pname = "reflink";
+  version = "0.2.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-ySU1gtskQTv9cDq/wbKkneePMbSQcjnyhumhkpoebjo=";
+  };
+
+  propagatedBuildInputs = [ cffi pytestrunner ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  # FIXME: These do not work, and I have been unable to figure out why.
+  doCheck = false;
+
+  pythonImportsCheck = [ "reflink" ];
+
+  meta = with lib; {
+    description = "Python reflink wraps around platform specific reflink implementations";
+    homepage = "https://gitlab.com/rubdos/pyreflink";
+    license = licenses.mit;
+    maintainers = with maintainers; [ lovesegfault ];
+  };
+}
diff --git a/pkgs/development/python-modules/reproject/default.nix b/pkgs/development/python-modules/reproject/default.nix
index ccc76734461..98bed15cfa0 100644
--- a/pkgs/development/python-modules/reproject/default.nix
+++ b/pkgs/development/python-modules/reproject/default.nix
@@ -6,7 +6,7 @@
 , astropy
 , astropy-healpix
 , astropy-helpers
-, extension-helpers
+, astropy-extension-helpers
 , scipy
 , pytest
 , pytest-astropy
@@ -23,15 +23,16 @@ buildPythonPackage rec {
     sha256 = "1jsc3ad518vyys5987fr1achq8qvnz8rm80zp5an9qxlwr4zmh4m";
   };
 
-  propagatedBuildInputs = [ numpy astropy astropy-healpix astropy-helpers scipy ];
-
-  nativeBuildInputs = [ astropy-helpers cython extension-helpers setuptools_scm ];
-
-  # Disable automatic update of the astropy-helper module
-  postPatch = ''
-    substituteInPlace setup.cfg --replace "auto_use = True" "auto_use = False"
-  '';
+  patches = [ (fetchpatch {
+      # Can be removed in next release after 0.7.1
+      # See https://github.com/astropy/reproject/issues/246
+      url = "https://github.com/astropy/reproject/pull/243.patch";
+      sha256 = "0dq3ii39hsrks0b9v306dlqf07dx0hqad8rwajmzw6rfda9m3c2a";
+    })
+  ];
 
+  propagatedBuildInputs = [ numpy astropy astropy-healpix astropy-helpers scipy ];
+  nativeBuildInputs = [ astropy-helpers cython astropy-extension-helpers setuptools_scm ];
   checkInputs = [ pytest pytest-astropy ];
 
   # Tests must be run in the build directory
diff --git a/pkgs/development/python-modules/requests-hawk/default.nix b/pkgs/development/python-modules/requests-hawk/default.nix
index 9641ee9d12c..188e66b5c7a 100644
--- a/pkgs/development/python-modules/requests-hawk/default.nix
+++ b/pkgs/development/python-modules/requests-hawk/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "requests-hawk";
-  version = "1.0.1";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1qcga289yr6qlkmc6fjk0ia6l5cg0galklpdzpslf1y8ky9zb7rl";
+    sha256 = "1a5e61cab14627f1b5ba7de0e3fb2b681007ff7b2a49110d504e5cd6d7fd62d6";
   };
 
   propagatedBuildInputs = [ mohawk requests ];
diff --git a/pkgs/development/python-modules/runway-python/default.nix b/pkgs/development/python-modules/runway-python/default.nix
index 9c7f89585d8..69b928aad08 100644
--- a/pkgs/development/python-modules/runway-python/default.nix
+++ b/pkgs/development/python-modules/runway-python/default.nix
@@ -19,11 +19,11 @@
 
 buildPythonPackage rec {
   pname = "runway-python";
-  version = "0.6.0";
+  version = "0.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "695d78f8edeb6a7ca98d8351adb36948d56cceeffe8a84896c9fbfd349fc4cb8";
+    sha256 = "66cf1517dd817bf6db3792608920274f964dd0ced8dabecd925b8bc17aa95740";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/s3fs/default.nix b/pkgs/development/python-modules/s3fs/default.nix
index 9c900610e03..739b32ec70d 100644
--- a/pkgs/development/python-modules/s3fs/default.nix
+++ b/pkgs/development/python-modules/s3fs/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, docutils, boto3, fsspec }:
+{ stdenv, buildPythonPackage, fetchPypi, docutils, aiobotocore, fsspec }:
 
 buildPythonPackage rec {
   pname = "s3fs";
@@ -10,7 +10,7 @@ buildPythonPackage rec {
   };
 
   buildInputs = [ docutils ];
-  propagatedBuildInputs = [ boto3 fsspec ];
+  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
diff --git a/pkgs/development/python-modules/sane/default.nix b/pkgs/development/python-modules/sane/default.nix
new file mode 100644
index 00000000000..d45c736d8d0
--- /dev/null
+++ b/pkgs/development/python-modules/sane/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, saneBackends
+}:
+
+buildPythonPackage rec {
+  pname = "sane";
+  version = "2.9.1";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "python-sane";
+    sha256 = "JAmOuDxujhsBEm5q16WwR5wHsBPF0iBQm1VYkv5JJd4=";
+  };
+
+  buildInputs = [
+    saneBackends
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/python-pillow/Sane";
+    description = "Python interface to the SANE scanner and frame grabber ";
+    license = licenses.mit;
+    maintainers = with maintainers; [ doronbehar ];
+  };
+}
diff --git a/pkgs/development/python-modules/schiene/default.nix b/pkgs/development/python-modules/schiene/default.nix
new file mode 100644
index 00000000000..8f479500a13
--- /dev/null
+++ b/pkgs/development/python-modules/schiene/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, requests
+, beautifulsoup4
+}:
+
+buildPythonPackage rec {
+  pname = "schiene";
+  version = "0.23";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "014aaxmk7yxyml1xgfk3zqallyb5zi04m0v7jgqjkbjqq4n4j3ck";
+  };
+
+  propagatedBuildInputs = [
+    requests
+    beautifulsoup4
+  ];
+
+  # tests are not present
+  doCheck = false;
+
+  pythonImportsCheck = [ "schiene" ];
+
+  meta = with lib; {
+    description = "Python library for interacting with Bahn.de";
+    homepage = "https://github.com/kennell/schiene";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/seaborn/default.nix b/pkgs/development/python-modules/seaborn/default.nix
index 9438320c1ad..b3bf8fce0fc 100644
--- a/pkgs/development/python-modules/seaborn/default.nix
+++ b/pkgs/development/python-modules/seaborn/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "seaborn";
-  version = "0.11.0";
+  version = "0.11.1";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "390f8437b14f5ce845062f2865ad51656464c306d09bb97d7764c6cba1dd607c";
+    sha256 = "44e78eaed937c5a87fc7a892c329a7cc091060b67ebd1d0d306b446a74ba01ad";
   };
 
   checkInputs = [ nose ];
diff --git a/pkgs/development/python-modules/setuptools-scm-git-archive/default.nix b/pkgs/development/python-modules/setuptools-scm-git-archive/default.nix
index 9c08871339a..d2b46405496 100644
--- a/pkgs/development/python-modules/setuptools-scm-git-archive/default.nix
+++ b/pkgs/development/python-modules/setuptools-scm-git-archive/default.nix
@@ -14,6 +14,9 @@ buildPythonPackage rec {
 
   checkInputs = [ pytest ];
 
+  doCheck = false;
+  pythonImportsCheck = [ "setuptools_scm_git_archive" ];
+
   meta = with stdenv.lib; {
     description = "setuptools_scm plugin for git archives";
     homepage = "https://github.com/Changaco/setuptools_scm_git_archive";
diff --git a/pkgs/development/python-modules/shapely/default.nix b/pkgs/development/python-modules/shapely/default.nix
index eb3b5b9e44d..e2b738c479e 100644
--- a/pkgs/development/python-modules/shapely/default.nix
+++ b/pkgs/development/python-modules/shapely/default.nix
@@ -29,8 +29,7 @@ buildPythonPackage rec {
     (substituteAll {
       src = ./library-paths.patch;
       libgeos_c = GEOS_LIBRARY_PATH;
-      libc = "${stdenv.cc.libc}/lib/libc${stdenv.hostPlatform.extensions.sharedLibrary}"
-               + stdenv.lib.optionalString (!stdenv.isDarwin) ".6";
+      libc = stdenv.lib.optionalString (!stdenv.isDarwin) "${stdenv.cc.libc}/lib/libc${stdenv.hostPlatform.extensions.sharedLibrary}.6";
     })
   ];
 
diff --git a/pkgs/development/python-modules/shapely/library-paths.patch b/pkgs/development/python-modules/shapely/library-paths.patch
index 319eb8a72db..7681fb1d9bb 100644
--- a/pkgs/development/python-modules/shapely/library-paths.patch
+++ b/pkgs/development/python-modules/shapely/library-paths.patch
@@ -2,7 +2,7 @@ diff --git a/shapely/geos.py b/shapely/geos.py
 index d5a67d2..19b7ffc 100644
 --- a/shapely/geos.py
 +++ b/shapely/geos.py
-@@ -61,127 +61,10 @@ def load_dll(libname, fallbacks=None, mode=DEFAULT_MODE):
+@@ -61,127 +61,17 @@ def load_dll(libname, fallbacks=None, mode=DEFAULT_MODE):
              "Could not find lib {} or load any of its variants {}.".format(
                  libname, fallbacks or []))
  
@@ -128,7 +128,14 @@ index d5a67d2..19b7ffc 100644
 -    free.argtypes = [c_void_p]
 -    free.restype = None
 +_lgeos = CDLL('@libgeos_c@')
-+free = CDLL('@libc@').free
++if sys.platform == 'darwin':
++    # ctypes.CDLL(None) internally calls dlopen(NULL), and as the dlopen
++    # manpage says, "If filename is NULL, then the returned handle is for the
++    # main program". This way we can let the linker do the work to figure out
++    # which libc Python is actually using.
++    free = CDLL(None).free
++else:
++    free = CDLL('@libc@').free
 +free.argtypes = [c_void_p]
 +free.restype = None
  
diff --git a/pkgs/development/python-modules/slixmpp/default.nix b/pkgs/development/python-modules/slixmpp/default.nix
index 2fd7d92e3d7..012a49eb323 100644
--- a/pkgs/development/python-modules/slixmpp/default.nix
+++ b/pkgs/development/python-modules/slixmpp/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "slixmpp";
-  version = "1.5.2";
+  version = "1.6.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0c5g4r5c6zm5fgvk6dd0dbx9gl3ws2swajc5knlacnpfykwzp5b4";
+    sha256 = "0jamly1jv31ragpv8yn52av1m48iwl4i7f9knb67vmk8c22rjdwa";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/smart_open/default.nix b/pkgs/development/python-modules/smart_open/default.nix
index ba57d081658..3a1c890f048 100644
--- a/pkgs/development/python-modules/smart_open/default.nix
+++ b/pkgs/development/python-modules/smart_open/default.nix
@@ -13,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "smart_open";
-  version = "4.0.1";
+  version = "4.1.0";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "49396d86de8e0d609ec40422c59f837dd944dcdf727feed6f2ff8cbdc0e3bc8e";
+    sha256 = "26af5c1a3f2b76aab8c3200310f0fc783790ec5a231ffeec102e620acdd6262e";
   };
 
   # nixpkgs version of moto is >=1.2.0, remove version pin to fix build
diff --git a/pkgs/development/python-modules/spectral-cube/default.nix b/pkgs/development/python-modules/spectral-cube/default.nix
index b0b3e4b8f65..d2f79c18348 100644
--- a/pkgs/development/python-modules/spectral-cube/default.nix
+++ b/pkgs/development/python-modules/spectral-cube/default.nix
@@ -1,7 +1,8 @@
 { lib
-, fetchFromGitHub
+, fetchPypi
 , buildPythonPackage
 , aplpy
+, joblib
 , astropy
 , radio_beam
 , pytest
@@ -11,31 +12,20 @@
 
 buildPythonPackage rec {
   pname = "spectral-cube";
-  version = "0.4.5";
+  version = "0.5.0";
+  format = "pyproject";
 
-  # Fetch from GitHub instead of PyPi, as 0.4.5 isn't available in PyPi
-  src = fetchFromGitHub {
-    owner = "radio-astro-tools";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "1xc1m6vpl0bm600fx9vypa7zcvwg7yvhgn0w89y6v9d1vl0qcs7z";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "17zisr26syfb8kn89xj17lrdycm0hsmy5yp5zrn236wgd8rjriki";
   };
 
-  propagatedBuildInputs = [ astropy radio_beam ];
-
   nativeBuildInputs = [ astropy-helpers ];
-
+  propagatedBuildInputs = [ astropy radio_beam joblib ];
   checkInputs = [ aplpy pytest pytest-astropy ];
 
-  # 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
   checkPhase = ''
-    cd build/lib
-    pytest
+    pytest spectral_cube
   '';
 
   meta = {
diff --git a/pkgs/development/python-modules/spyder-kernels/0.x.nix b/pkgs/development/python-modules/spyder-kernels/0.x.nix
index 63ed0604fe5..a760033c915 100644
--- a/pkgs/development/python-modules/spyder-kernels/0.x.nix
+++ b/pkgs/development/python-modules/spyder-kernels/0.x.nix
@@ -1,20 +1,19 @@
-{
-  lib
-  , buildPythonPackage
-  , fetchFromGitHub
-  , cloudpickle
-  , ipykernel
-  , wurlitzer
-  , jupyter_client
-  , pyzmq
-  , numpy
-  , pandas
-  , scipy
-  , matplotlib
-  , xarray
-  , pytest
-  , flaky
-  , isPy3k
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, cloudpickle
+, ipykernel
+, wurlitzer
+, jupyter_client
+, pyzmq
+, numpy
+, pandas
+, scipy
+, matplotlib
+, xarray
+, pytestCheckHook
+, flaky
+, isPy3k
 }:
 
 buildPythonPackage rec {
@@ -24,7 +23,7 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "spyder-ide";
     repo = "spyder-kernels";
-    rev = "v0.5.2";
+    rev = "v${version}";
     sha256 = "1yan589g0470y61bcyjy3wj13i94ndyffckqdyrg97vw2qhfrisb";
   };
 
@@ -45,23 +44,23 @@ buildPythonPackage rec {
     scipy
     matplotlib
     xarray
-    pytest
+    pytestCheckHook
     flaky
   ];
 
+  preCheck = ''
+    export JUPYTER_RUNTIME_DIR=$(mktemp -d)
+  '';
+
   # skipped tests:
   # turtle requires graphics
   # cython test fails, I don't think this can ever access cython?
   # umr pathlist test assumes standard directories, not compatible with nix
-  checkPhase = ''
-    export JUPYTER_RUNTIME_DIR=$(mktemp -d)
-    pytest -x -vv -k '\
-      not test_turtle_launch \
-      and not test_umr_skip_cython \
-      and not test_umr_pathlist' \
-      -W 'ignore::DeprecationWarning' \
-      spyder_kernels
-  '';
+  disabledTests = [
+    "test_turtle_launc"
+    "test_umr_skip_cython"
+    "test_umr_pathlist"
+  ];
 
   meta = with lib; {
     description = "Jupyter kernels for Spyder's console";
diff --git a/pkgs/development/python-modules/sqlalchemy-migrate/default.nix b/pkgs/development/python-modules/sqlalchemy-migrate/default.nix
index c64d8f61f79..1f5c893c6db 100644
--- a/pkgs/development/python-modules/sqlalchemy-migrate/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy-migrate/default.nix
@@ -5,11 +5,11 @@
 }:
 buildPythonPackage rec {
   pname = "sqlalchemy-migrate";
-  version = "0.12.0";
+  version = "0.13.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1bngmbcry97kwhrxwm0d74zg9qg7gmiws6rd78xshyfgpcqdmylc";
+    sha256 = "1y0lcqii7b4vp7yh9dyxrl4i77hi8jkkw7d06mgdw2h458ljxh0b";
   };
 
   # See: https://review.openstack.org/#/c/608382/
diff --git a/pkgs/development/python-modules/sqlite-fts4/default.nix b/pkgs/development/python-modules/sqlite-fts4/default.nix
new file mode 100644
index 00000000000..4342eb6e206
--- /dev/null
+++ b/pkgs/development/python-modules/sqlite-fts4/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, isPy3k
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "sqlite-fts4";
+  version = "1.0.1";
+  disabled = !isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "simonw";
+    repo = pname;
+    rev = version;
+    sha256 = "15r1mijk306fpm61viry5wjhqyxlbqqdk4nfcd901qarx7vqypgy";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Custom Python functions for working with SQLite FTS4";
+    homepage = "https://github.com/simonw/sqlite-fts4";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ meatcar ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/sqlite-utils/default.nix b/pkgs/development/python-modules/sqlite-utils/default.nix
index 6e17fc4f38e..99a6369de55 100644
--- a/pkgs/development/python-modules/sqlite-utils/default.nix
+++ b/pkgs/development/python-modules/sqlite-utils/default.nix
@@ -1,28 +1,32 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, isPy3k
+, pythonOlder
 , click
 , click-default-group
+, sqlite-fts4
 , tabulate
 , pytestCheckHook
 , pytestrunner
 , black
+, hypothesis
+, sqlite
 }:
 
 buildPythonPackage rec {
   pname = "sqlite-utils";
-  version = "3.0";
-  disabled = !isPy3k;
+  version = "3.2";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a158265fde85a6757b7f09b568b1f7d6eaf75eaae208be27336f09dc048e5bcf";
+    sha256 = "83d60e0f0de5e4a367e2ad414dc008c0602e2af35325b09e41c7b2c69808dcc1";
   };
 
   propagatedBuildInputs = [
     click
     click-default-group
+    sqlite-fts4
     tabulate
   ];
 
@@ -30,13 +34,19 @@ buildPythonPackage rec {
     pytestCheckHook
     pytestrunner
     black
+    hypothesis
+  ];
+
+  # disabled until upstream updates tests
+  disabledTests = lib.optionals (lib.versionAtLeast sqlite.version "3.34.0") [
+    "test_optimize"
   ];
 
   meta = with lib; {
     description = "Python CLI utility and library for manipulating SQLite databases";
     homepage = "https://github.com/simonw/sqlite-utils";
     license = licenses.asl20;
-    maintainers = [ maintainers.meatcar ];
+    maintainers = with maintainers; [ meatcar ];
   };
 
 }
diff --git a/pkgs/development/python-modules/sqlmap/default.nix b/pkgs/development/python-modules/sqlmap/default.nix
index fe17c909efa..940dbdab989 100644
--- a/pkgs/development/python-modules/sqlmap/default.nix
+++ b/pkgs/development/python-modules/sqlmap/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "sqlmap";
-  version = "1.4.11";
+  version = "1.4.12";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5c91d13f090c8e891201c7b924cc2b2feccf12042b42075a5623b4986b9c9ee7";
+    sha256 = "166adazdrv92azx4p0qng0cm3va6i301vfsr4yyf0azj3sdg0waj";
   };
 
   postPatch = ''
@@ -26,6 +26,8 @@ buildPythonPackage rec {
   # No tests in archive
   doCheck = false;
 
+  pythonImportsCheck = [ "sqlmap" ];
+
   meta = with lib; {
     homepage = "http://sqlmap.org";
     license = licenses.gpl2;
diff --git a/pkgs/development/python-modules/sunpy/default.nix b/pkgs/development/python-modules/sunpy/default.nix
index 6830c7c1343..6a455ce49eb 100644
--- a/pkgs/development/python-modules/sunpy/default.nix
+++ b/pkgs/development/python-modules/sunpy/default.nix
@@ -1,12 +1,12 @@
 { stdenv
 , lib
 , buildPythonPackage
-, fetchFromGitHub
+, fetchPypi
 , pythonOlder
-
 , asdf
 , astropy
 , astropy-helpers
+, astropy-extension-helpers
 , beautifulsoup4
 , drms
 , glymur
@@ -29,16 +29,18 @@
 
 buildPythonPackage rec {
   pname = "sunpy";
-  version = "1.0.6";
+  version = "2.0.6";
   disabled = pythonOlder "3.6";
 
-  src = fetchFromGitHub {
-    owner = "sunpy";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "0j2yfhfxgi95rig8cfp9lvszb7694gq90jvs0xrb472hwnzgh2sk";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "109flghca42yhsm2w5xicqhyx1mc8c3vlwvadbn65fz3lhysqj67";
   };
 
+  nativeBuildInputs = [
+    astropy-extension-helpers
+  ];
+
   propagatedBuildInputs = [
     numpy
     scipy
@@ -66,16 +68,11 @@ buildPythonPackage rec {
     pytest-mock
   ];
 
-  preBuild = ''
-    export SETUPTOOLS_SCM_PRETEND_VERSION="${version}"
-    export HOME=$(mktemp -d)
-  '';
-
   # darwin has write permission issues
   doCheck = stdenv.isLinux;
   # ignore documentation tests
   checkPhase = ''
-    pytest sunpy -k 'not rst'
+    PY_IGNORE_IMPORTMISMATCH=1 HOME=$(mktemp -d) pytest sunpy -k 'not rst'
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/sympy/default.nix b/pkgs/development/python-modules/sympy/default.nix
index 9c3353aa2e7..c935176e0d5 100644
--- a/pkgs/development/python-modules/sympy/default.nix
+++ b/pkgs/development/python-modules/sympy/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "sympy";
-  version = "1.6.2";
+  version = "1.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1cfadcc80506e4b793f5b088558ca1fcbeaec24cd6fc86f1fdccaa3ee1d48708";
+    sha256 = "sha256-o96SYel1Nbg7uGB7DaLH0DEmZQ+v6isniWV7Ipwkay4=";
   };
 
   checkInputs = [ glibcLocales ];
diff --git a/pkgs/development/python-modules/tasklib/default.nix b/pkgs/development/python-modules/tasklib/default.nix
index 319dd98234d..591f4cdabe9 100644
--- a/pkgs/development/python-modules/tasklib/default.nix
+++ b/pkgs/development/python-modules/tasklib/default.nix
@@ -8,11 +8,11 @@ wsl_stub = writeShellScriptBin "wsl" "true";
 
 in buildPythonPackage rec {
   pname = "tasklib";
-  version = "2.2.1";
+  version = "2.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "21525a34469928876b64edf8abf79cf788bb3fa796d4554ba22a68bc1f0693f5";
+    sha256 = "7fe8676acb4559129c4e958be7704c12dccdbae302fff47c5398bc0dd1c9e563";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/telethon/default.nix b/pkgs/development/python-modules/telethon/default.nix
index 4772c13d9c3..dbf0f26c3a3 100644
--- a/pkgs/development/python-modules/telethon/default.nix
+++ b/pkgs/development/python-modules/telethon/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, async_generator, rsa, pyaes, pythonOlder }:
+{ lib, buildPythonPackage, fetchPypi, openssl, async_generator, rsa, pyaes, pythonOlder }:
 
 buildPythonPackage rec {
   pname = "telethon";
@@ -10,6 +10,11 @@ buildPythonPackage rec {
     sha256 = "1v1rgr030z8s1ldv5lm1811znyd568c22pmlrzzf3ls972xk514m";
   };
 
+  patchPhase = ''
+    substituteInPlace telethon/crypto/libssl.py --replace \
+      "ctypes.util.find_library('ssl')" "'${openssl.out}/lib/libssl.so'"
+  '';
+
   propagatedBuildInputs = [
     rsa
     pyaes
diff --git a/pkgs/development/python-modules/tensorflow/1/default.nix b/pkgs/development/python-modules/tensorflow/1/default.nix
index 599f809f864..4dd30e4687a 100644
--- a/pkgs/development/python-modules/tensorflow/1/default.nix
+++ b/pkgs/development/python-modules/tensorflow/1/default.nix
@@ -258,6 +258,11 @@ let
 
       substituteInPlace tensorflow/tools/pip_package/setup.py \
         --replace "numpy >= 1.16.0, < 1.19.0" "numpy >= 1.16.0"
+
+      # glibc 2.31+ does not have sys/sysctl.h
+      # see https://github.com/tensorflow/tensorflow/issues/45861
+      substituteInPlace third_party/hwloc/BUILD.bazel\
+        --replace "#define HAVE_SYS_SYSCTL_H 1" "#undef HAVE_SYS_SYSCTL_H"
     '';
 
     preConfigure = let
diff --git a/pkgs/development/python-modules/tld/default.nix b/pkgs/development/python-modules/tld/default.nix
index 43a2e46dcfb..c3333aef9e1 100644
--- a/pkgs/development/python-modules/tld/default.nix
+++ b/pkgs/development/python-modules/tld/default.nix
@@ -2,11 +2,11 @@
 
 python.pkgs.buildPythonPackage rec {
   pname   = "tld";
-  version = "0.12.3";
+  version = "0.12.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1959d0db03b7644f5528748f348d5eecdcd27120a8bb4ef00d932b1b1acdf13d";
+    sha256 = "0976g7jcpi3jv7snawmfis5ybb6737cv2xw7wlanlfkyqljip24x";
   };
 
   propagatedBuildInputs = with python.pkgs; [ six ];
diff --git a/pkgs/development/python-modules/tlslite-ng/default.nix b/pkgs/development/python-modules/tlslite-ng/default.nix
index 244444a276f..7c8bb17b8b7 100644
--- a/pkgs/development/python-modules/tlslite-ng/default.nix
+++ b/pkgs/development/python-modules/tlslite-ng/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "tlslite-ng";
-  version = "0.7.5";
+  version = "0.7.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1aw7j50byzab0xwp50m5w5c14fzdzwk2law5a5bn6dn3i5fc6fw2";
+    sha256 = "6ab56f0e9629ce3d807eb528c9112defa9f2e00af2b2961254e8429ca5c1ff00";
   };
 
   buildInputs = [ ecdsa ];
diff --git a/pkgs/development/python-modules/toggl-cli/default.nix b/pkgs/development/python-modules/toggl-cli/default.nix
index 89c612abfef..c004c4a5d9f 100644
--- a/pkgs/development/python-modules/toggl-cli/default.nix
+++ b/pkgs/development/python-modules/toggl-cli/default.nix
@@ -19,13 +19,13 @@
 
 buildPythonPackage rec {
   pname = "toggl-cli";
-  version = "2.2.1";
+  version = "2.4.1";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     pname = "togglCli";
     inherit version;
-    sha256 = "1izsxag98lvivkwf7724g2ak6icjak9jdqphaq1a79kwdnqprx1m";
+    sha256 = "19lry8adcznzmzbvghyid3yl4j05db6931bw38af5vrkkyzyf62i";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/toposort/default.nix b/pkgs/development/python-modules/toposort/default.nix
index eddd6ac4fd1..f1767862ad3 100644
--- a/pkgs/development/python-modules/toposort/default.nix
+++ b/pkgs/development/python-modules/toposort/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "toposort";
-  version = "1.5";
+  version = "1.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dba5ae845296e3bf37b042c640870ffebcdeb8cd4df45adaa01d8c5476c557dd";
+    sha256 = "a7428f56ef844f5055bb9e9e44b343983773ae6dce0fe5b101e08e27ffbd50ac";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/torchvision/default.nix b/pkgs/development/python-modules/torchvision/default.nix
index 4d371579099..ea702a78fe1 100644
--- a/pkgs/development/python-modules/torchvision/default.nix
+++ b/pkgs/development/python-modules/torchvision/default.nix
@@ -1,30 +1,50 @@
-{ buildPythonPackage
-, fetchPypi
-, six
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, ninja
+, which
+, libjpeg_turbo
+, libpng
 , numpy
+, scipy
 , pillow
 , pytorch
-, lib
+, pytest
 }:
 
 buildPythonPackage rec {
-  version = "0.2.1";
-  pname   = "torchvision";
+  pname = "torchvision";
+  version = "0.8.2";
 
-  format = "wheel";
-
-  src = fetchPypi {
-    inherit pname version;
-    format = "wheel";
-    sha256 = "18gvdabkmzfjg47ns0lw38mf85ry28nq1mas5rzlwvb4l5zmw2ms";
+  src = fetchFromGitHub {
+    owner = "pytorch";
+    repo = "vision";
+    rev = "v${version}";
+    sha256 = "0yhpbq7linrk2qp5jxsvlgkmwa5bn38s9kcswy4jzvmx1fjbkpq0";
   };
 
-  propagatedBuildInputs = [ six numpy pillow pytorch ];
+  nativeBuildInputs = [ libpng ninja which ];
+
+  TORCHVISION_INCLUDE = "${libjpeg_turbo.dev}/include/";
+  TORCHVISION_LIBRARY = "${libjpeg_turbo}/lib/";
+
+  buildInputs = [ libjpeg_turbo libpng ];
+
+  propagatedBuildInputs = [ numpy pillow pytorch scipy ];
+
+  # tries to download many datasets for tests
+  doCheck = false;
+
+  checkPhase = ''
+    HOME=$TMPDIR py.test test --ignore=test/test_datasets_download.py
+  '';
+
+  checkInputs = [ pytest ];
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "PyTorch vision library";
-    homepage    = "https://pytorch.org/";
-    license     = lib.licenses.bsd3;
-    maintainers = with lib.maintainers; [ ericsagnes ];
+    homepage = "https://pytorch.org/";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ ericsagnes SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/tqdm/default.nix b/pkgs/development/python-modules/tqdm/default.nix
index 5df20826dc7..ba40723e7dd 100644
--- a/pkgs/development/python-modules/tqdm/default.nix
+++ b/pkgs/development/python-modules/tqdm/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "tqdm";
-  version = "4.54.0";
+  version = "4.54.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5c0d04e06ccc0da1bd3fa5ae4550effcce42fcad947b4a6cafa77bdc9b09ff22";
+    sha256 = "1x9chlh3msikddmq8p8p5s5kgqqs48bclxgzz3vb9ygcwjimidiq";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/transformers/default.nix b/pkgs/development/python-modules/transformers/default.nix
index 49fbd953d53..bd9040668c0 100644
--- a/pkgs/development/python-modules/transformers/default.nix
+++ b/pkgs/development/python-modules/transformers/default.nix
@@ -7,6 +7,7 @@
 , regex
 , requests
 , numpy
+, pandas
 , parameterized
 , protobuf
 , sacremoses
@@ -18,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "transformers";
-  version = "4.0.1";
+  version = "4.1.1";
   disabled = isPy39;
 
   src = fetchFromGitHub {
     owner = "huggingface";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1h53a3n6fdrx3ns1h1ip273hzd9pkm9m1qh41si75csb8mi1dq3d";
+    sha256 = "1l1gxdsakjmzsgggypq45pnwm87brhlccjfzafs43460pz0wbd6k";
   };
 
   propagatedBuildInputs = [
@@ -41,6 +42,7 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
+    pandas
     parameterized
     pytestCheckHook
     timeout-decorator
diff --git a/pkgs/development/python-modules/trimesh/default.nix b/pkgs/development/python-modules/trimesh/default.nix
index 940618545e8..b157e32ed87 100644
--- a/pkgs/development/python-modules/trimesh/default.nix
+++ b/pkgs/development/python-modules/trimesh/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "trimesh";
-  version = "3.8.18";
+  version = "3.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "89f9ec5f1abe7e829f7f1cb9a7aa3f3eb768482272beb2c8987e933d9c068110";
+    sha256 = "d19cbdb830a17297aa218ba6ce4955fc11b4b553414289cfd71f58f8144cc91f";
   };
 
   propagatedBuildInputs = [ numpy ];
diff --git a/pkgs/development/python-modules/trytond/default.nix b/pkgs/development/python-modules/trytond/default.nix
index 781604fb9b0..7db53969402 100644
--- a/pkgs/development/python-modules/trytond/default.nix
+++ b/pkgs/development/python-modules/trytond/default.nix
@@ -25,12 +25,12 @@ with stdenv.lib;
 
 buildPythonApplication rec {
   pname = "trytond";
-  version = "5.8.1";
+  version = "5.8.2";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9c1afca73b13ede07680015d69f611c7dec33b8c22565de70f0cbbf0464b8db7";
+    sha256 = "dea7d11ec0b4584a438fab7a1acb56864b32cc9e7d6ffa166572f75a2b033dc0";
   };
 
   # Tells the tests which database to use
diff --git a/pkgs/development/python-modules/typing-inspect/default.nix b/pkgs/development/python-modules/typing-inspect/default.nix
index 849b56d2d0c..569096cb466 100644
--- a/pkgs/development/python-modules/typing-inspect/default.nix
+++ b/pkgs/development/python-modules/typing-inspect/default.nix
@@ -3,6 +3,7 @@
 , fetchPypi
 , typing-extensions
 , mypy-extensions
+, isPy39
 }:
 
 buildPythonPackage rec {
@@ -25,5 +26,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/ilevkivskyi/typing_inspect";
     license = licenses.mit;
     maintainers = with maintainers; [ albakham ];
+    broken = isPy39;  # see https://github.com/ilevkivskyi/typing_inspect/issues/65
   };
 }
diff --git a/pkgs/development/python-modules/ufonormalizer/default.nix b/pkgs/development/python-modules/ufonormalizer/default.nix
index 770407736a0..e2790482a3c 100644
--- a/pkgs/development/python-modules/ufonormalizer/default.nix
+++ b/pkgs/development/python-modules/ufonormalizer/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "ufonormalizer";
-  version = "0.5.0";
+  version = "0.5.3";
 
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1qc3389i2y16n1hjg4dzk821klzjipbh9c9yci70z51pp21mwwh5";
+    sha256 = "0ijc697nv9rff9j1nhbf5vnyaryxlndq13msi94px8aq9gzxfrbi";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/uproot-methods/default.nix b/pkgs/development/python-modules/uproot-methods/default.nix
deleted file mode 100644
index 3c268ed7ed4..00000000000
--- a/pkgs/development/python-modules/uproot-methods/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, numpy
-, awkward
-}:
-
-buildPythonPackage rec {
-  version = "0.9.1";
-  pname = "uproot-methods";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "accb4392c59a1485ce3ee6d78a6fd163731ade8b9b5208e7bde8fa1767aef097";
-  };
-
-  propagatedBuildInputs = [ numpy awkward ];
-
-  # No tests on PyPi
-  doCheck = false;
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/scikit-hep/uproot-methods";
-    description = "Pythonic mix-ins for ROOT classes";
-    license = licenses.bsd3;
-    maintainers = [ maintainers.costrouc ];
-  };
-}
diff --git a/pkgs/development/python-modules/uproot/default.nix b/pkgs/development/python-modules/uproot/default.nix
deleted file mode 100644
index eadd6c36de1..00000000000
--- a/pkgs/development/python-modules/uproot/default.nix
+++ /dev/null
@@ -1,59 +0,0 @@
-{ lib, fetchPypi, buildPythonPackage, isPy27
-, awkward
-, backports_lzma
-, cachetools
-, lz4
-, pandas
-, pytestrunner
-, pytest
-, pkgconfig
-, mock
-, numpy
-, requests
-, uproot-methods
-, xxhash
-}:
-
-buildPythonPackage rec {
-  pname = "uproot";
-  version = "3.13.1";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "099b0b274dc000faf724df835579c76306e60200a5ba7b600a0c4b76dabbf344";
-  };
-
-  nativeBuildInputs = [ pytestrunner ];
-
-  checkInputs = [
-    lz4
-    mock
-    pandas
-    pkgconfig
-    pytest
-    requests
-    xxhash
-  ] ++ lib.optional isPy27 backports_lzma;
-
-  propagatedBuildInputs = [
-    numpy
-    cachetools
-    uproot-methods
-    awkward
-  ];
-
-  # skip tests which do network calls
-  # test_compression.py is missing zstandard package
-  checkPhase = ''
-    pytest tests -k 'not hist_in_tree \
-      and not branch_auto_interpretation' \
-      --ignore=tests/test_compression.py
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/scikit-hep/uproot";
-    description = "ROOT I/O in pure Python and Numpy";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ ktf ];
-  };
-}
diff --git a/pkgs/development/python-modules/uproot3-methods/default.nix b/pkgs/development/python-modules/uproot3-methods/default.nix
new file mode 100644
index 00000000000..3a9457a574b
--- /dev/null
+++ b/pkgs/development/python-modules/uproot3-methods/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, numpy
+, awkward0
+}:
+
+buildPythonPackage rec {
+  version = "0.10.0";
+  pname = "uproot3-methods";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1rk9i1ra3panli96ghz80ddpqk77xb1kpxs3wf8rw0jy5d88pc26";
+  };
+
+  nativeBuildInputs = [ awkward0 ];
+
+  propagatedBuildInputs = [ numpy awkward0 ];
+
+  # No tests on PyPi
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/scikit-hep/uproot3-methods";
+    description = "Pythonic mix-ins for ROOT classes";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ costrouc SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/development/python-modules/uproot3/default.nix b/pkgs/development/python-modules/uproot3/default.nix
new file mode 100644
index 00000000000..0d0c2365b63
--- /dev/null
+++ b/pkgs/development/python-modules/uproot3/default.nix
@@ -0,0 +1,44 @@
+{ lib, fetchFromGitHub, buildPythonPackage, isPy27
+, awkward0, backports_lzma, cachetools, lz4, pandas
+, pytestCheckHook, pytestrunner, pkgconfig, mock
+, numpy, requests, uproot3-methods, xxhash, zstandard
+}:
+
+buildPythonPackage rec {
+  pname = "uproot3";
+  version = "3.14.1";
+
+  src = fetchFromGitHub {
+    owner = "scikit-hep";
+    repo = "uproot3";
+    rev = version;
+    sha256 = "1npwh4l96wg3m24jhfc8i84nfwfc18flrmymf80fx101wmpi2qz8";
+  };
+
+  nativeBuildInputs = [ pytestrunner ];
+
+  propagatedBuildInputs = [
+    awkward0
+    cachetools
+    lz4
+    numpy
+    uproot3-methods
+    xxhash
+    zstandard
+  ] ++ lib.optional isPy27 backports_lzma;
+
+  checkInputs = [
+    mock
+    pandas
+    pkgconfig
+    pytestCheckHook
+    requests
+  ] ++ lib.optional isPy27 backports_lzma;
+
+  meta = with lib; {
+    homepage = "https://github.com/scikit-hep/uproot3";
+    description = "ROOT I/O in pure Python and Numpy";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ ktf SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/development/python-modules/vcver/default.nix b/pkgs/development/python-modules/vcver/default.nix
index 74b44cddc46..a328cb104bc 100644
--- a/pkgs/development/python-modules/vcver/default.nix
+++ b/pkgs/development/python-modules/vcver/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   # circular dependency on test tool uranium https://pypi.org/project/uranium/
   doCheck = false;
 
-  pythonImportTests = [ "vcver" ];
+  pythonImportsCheck = [ "vcver" ];
 
   meta = with lib; {
     description = "Reference Implementation of vcver";
diff --git a/pkgs/development/python-modules/volkszaehler/default.nix b/pkgs/development/python-modules/volkszaehler/default.nix
new file mode 100644
index 00000000000..fdd3e1923a3
--- /dev/null
+++ b/pkgs/development/python-modules/volkszaehler/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, aiohttp
+, async-timeout
+}:
+
+buildPythonPackage rec {
+  pname = "volkszaehler";
+  version = "0.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "087gw1k3f81lm859r0j65cjia8c2dcy4cx8c7s3mb5msb1csdh0x";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    async-timeout
+  ];
+
+  # no tests are present
+  doCheck = false;
+
+  pythonImportsCheck = [ "volkszaehler" ];
+
+  meta = with lib; {
+    description = "Python Wrapper for interacting with the Volkszahler API";
+    homepage = "https://github.com/home-assistant-ecosystem/python-volkszaehler";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/weasyprint/default.nix b/pkgs/development/python-modules/weasyprint/default.nix
index c1eaa1fd754..06f7a9f1011 100644
--- a/pkgs/development/python-modules/weasyprint/default.nix
+++ b/pkgs/development/python-modules/weasyprint/default.nix
@@ -23,7 +23,7 @@
 
 buildPythonPackage rec {
   pname = "weasyprint";
-  version = "50";
+  version = "52";
   disabled = !isPy3k;
 
   # excluded test needs the Ahem font
@@ -59,7 +59,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     inherit version;
     pname = "WeasyPrint";
-    sha256 = "0invs96zvmcr6wh5klj52jrcnr9qg150v9wpmbhcsf3vv1d1hbcw";
+    sha256 = "0rwf43111ws74m8b1alkkxzz57g0np3vmd8as74adwnxslfcg4gs";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/weasyprint/library-paths.patch b/pkgs/development/python-modules/weasyprint/library-paths.patch
index eabbdbdcd6e..c6eb87c9458 100644
--- a/pkgs/development/python-modules/weasyprint/library-paths.patch
+++ b/pkgs/development/python-modules/weasyprint/library-paths.patch
@@ -1,8 +1,8 @@
 diff --git a/weasyprint/fonts.py b/weasyprint/fonts.py
-index 377716c1..2016e01c 100644
+index 79e3b5b..4438eb4 100644
 --- a/weasyprint/fonts.py
 +++ b/weasyprint/fonts.py
-@@ -48,11 +48,8 @@ else:
+@@ -45,11 +45,8 @@ else:
      # with OSError: dlopen() failed to load a library: cairo / cairo-2
      # So let's hope we find the same file as cairo already did ;)
      # Same applies to pangocairo requiring pangoft2
@@ -10,26 +10,26 @@ index 377716c1..2016e01c 100644
 -                        'libfontconfig-1.dll',
 -                        'libfontconfig.so.1', 'libfontconfig-1.dylib')
 -    pangoft2 = dlopen(ffi, 'pangoft2-1.0', 'libpangoft2-1.0-0',
--                      'libpangoft2-1.0.so', 'libpangoft2-1.0.dylib')
+-                      'libpangoft2-1.0.so.0', 'libpangoft2-1.0.dylib')
 +    fontconfig = dlopen(ffi, '@fontconfig@')
 +    pangoft2 = dlopen(ffi, '@pangoft2@')
  
      ffi.cdef('''
          // FontConfig
 diff --git a/weasyprint/text.py b/weasyprint/text.py
-index 035074e9..08e40395 100644
+index 1dc5e4d..b070bad 100644
 --- a/weasyprint/text.py
 +++ b/weasyprint/text.py
-@@ -243,12 +243,9 @@ def dlopen(ffi, *names):
+@@ -255,12 +255,9 @@ def dlopen(ffi, *names):
      return ffi.dlopen(names[0])  # pragma: no cover
  
  
--gobject = dlopen(ffi, 'gobject-2.0', 'libgobject-2.0-0', 'libgobject-2.0.so',
+-gobject = dlopen(ffi, 'gobject-2.0', 'libgobject-2.0-0', 'libgobject-2.0.so.0',
 -                 'libgobject-2.0.dylib')
--pango = dlopen(ffi, 'pango-1.0', 'libpango-1.0-0', 'libpango-1.0.so',
+-pango = dlopen(ffi, 'pango-1.0', 'libpango-1.0-0', 'libpango-1.0.so.0',
 -               'libpango-1.0.dylib')
 -pangocairo = dlopen(ffi, 'pangocairo-1.0', 'libpangocairo-1.0-0',
--                    'libpangocairo-1.0.so', 'libpangocairo-1.0.dylib')
+-                    'libpangocairo-1.0.so.0', 'libpangocairo-1.0.dylib')
 +gobject = dlopen(ffi, '@gobject@')
 +pango = dlopen(ffi, '@pango@')
 +pangocairo = dlopen(ffi, '@pangocairo@')
diff --git a/pkgs/development/python-modules/web/default.nix b/pkgs/development/python-modules/web/default.nix
index 769ac6d2e5f..ab91d80b8c7 100644
--- a/pkgs/development/python-modules/web/default.nix
+++ b/pkgs/development/python-modules/web/default.nix
@@ -1,19 +1,26 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, isPy3k
+{ stdenv, buildPythonPackage, fetchPypi, pytestCheckHook
+, cheroot
+, dbutils, mysqlclient, pymysql, mysql-connector, psycopg2
 }:
 
 buildPythonPackage rec {
   version = "0.62";
   pname = "web.py";
-  disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "5ce684caa240654cae5950da8b4b7bc178812031e08f990518d072bd44ab525e";
   };
 
+  propagatedBuildInputs = [ cheroot ];
+
+  # requires multiple running databases
+  doCheck = false;
+
+  pythonImportsCheck = [ "web" ];
+
+  checkInputs = [ pytestCheckHook dbutils mysqlclient pymysql mysql-connector psycopg2 ];
+
   meta = with stdenv.lib; {
     description = "Makes web apps";
     longDescription = ''
@@ -22,7 +29,7 @@ buildPythonPackage rec {
     '';
     homepage = "https://webpy.org/";
     license = licenses.publicDomain;
-    maintainers = with maintainers; [ layus ];
+    maintainers = with maintainers; [ layus SuperSandro2000 ];
   };
 
 }
diff --git a/pkgs/development/python-modules/webthing/default.nix b/pkgs/development/python-modules/webthing/default.nix
new file mode 100644
index 00000000000..92e4ea5a8fb
--- /dev/null
+++ b/pkgs/development/python-modules/webthing/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, ifaddr
+, jsonschema
+, pyee
+, tornado
+, zeroconf
+}:
+
+buildPythonPackage rec {
+  pname = "webthing";
+  version = "0.15.0";
+
+  src = fetchFromGitHub {
+    owner = "WebThingsIO";
+    repo = "webthing-python";
+    rev = "v${version}";
+    sha256 = "06264rwchy4qmbn7lv7m00qg864y7aw3rngcqqcr9nvaqz4rb0fg";
+  };
+
+  propagatedBuildInputs = [
+    ifaddr
+    jsonschema
+    pyee
+    tornado
+    zeroconf
+  ];
+
+  # no tests are present
+  doCheck = false;
+  pythonImportsCheck = [ "webthing" ];
+
+  meta = with lib; {
+    description = "Python implementation of a Web Thing server";
+    homepage = "https://github.com/WebThingsIO/webthing-python";
+    license = with licenses; [ mpl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/whois/default.nix b/pkgs/development/python-modules/whois/default.nix
new file mode 100644
index 00000000000..759bc0cd8ee
--- /dev/null
+++ b/pkgs/development/python-modules/whois/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, inetutils
+}:
+
+buildPythonPackage rec {
+  pname = "whois";
+  version = "0.9.7";
+
+  src = fetchFromGitHub {
+    owner = "DannyCork";
+    repo = "python-whois";
+    rev = version;
+    sha256 = "1rbc4xif4dn455vc8dhxdvwszrb0nik5q9fy12db6mxfx6zikb7z";
+  };
+
+  # whois is needed
+  propagatedBuildInputs = [ inetutils ];
+
+  # tests require network access
+  doCheck = false;
+  pythonImportsCheck = [ "whois" ];
+
+  meta = with lib; {
+    description = "Python module/library for retrieving WHOIS information";
+    homepage = "https://github.com/DannyCork/python-whois/";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/wordcloud/default.nix b/pkgs/development/python-modules/wordcloud/default.nix
index d005527b4c3..6ed44c1e0c2 100644
--- a/pkgs/development/python-modules/wordcloud/default.nix
+++ b/pkgs/development/python-modules/wordcloud/default.nix
@@ -3,31 +3,42 @@
 , mock
 , numpy
 , pillow
-, pytest
+, cython
 , pytestcov
+, pytest
+, fetchpatch
 }:
 
 buildPythonPackage rec {
   pname = "word_cloud";
-  version = "1.6.0";
+  version = "1.8.1";
 
   # tests are not included in pypi tarball
   src = fetchFromGitHub {
     owner = "amueller";
     repo = pname;
     rev = version;
-    sha256 = "1ncjr90m3w3b4zi23kw6ai11gxahdyah96x8jb2yn2x4573022x2";
+    sha256 = "sha256-4EFQfv+Jn9EngUAyDoJP0yv9zr9Tnbrdwq1YzDacB9Q=";
   };
 
+  nativeBuildInputs = [ cython ];
   propagatedBuildInputs = [ matplotlib numpy pillow ];
 
   # Tests require extra dependencies
   checkInputs = [ mock pytest pytestcov ];
-  # skip tests which make assumptions about installation
+
   checkPhase = ''
-    pytest -k 'not cli_as_executable'
+    PATH=$out/bin:$PATH pytest test
   '';
 
+  patches = [
+    (fetchpatch {
+      # https://github.com/amueller/word_cloud/pull/616
+      url = "https://github.com/amueller/word_cloud/commit/858a8ac4b5b08494c1d25d9e0b35dd995151a1e5.patch";
+      sha256 = "sha256-+aDTMPtOibVwjPrRLxel0y4JFD5ERB2bmJi4zRf/asg=";
+    })
+  ];
+
   meta = with stdenv.lib; {
     description = "A little word cloud generator in Python";
     homepage = "https://github.com/amueller/word_cloud";
diff --git a/pkgs/development/python-modules/wsnsimpy/default.nix b/pkgs/development/python-modules/wsnsimpy/default.nix
new file mode 100644
index 00000000000..febb66605c8
--- /dev/null
+++ b/pkgs/development/python-modules/wsnsimpy/default.nix
@@ -0,0 +1,31 @@
+{ buildPythonPackage, fetchPypi, isPy27, lib, setuptools, simpy, tkinter
+# GUI-based visualization of the simulation is optional
+, enableVisualization ? true }:
+
+buildPythonPackage rec {
+  pname = "wsnsimpy";
+  version = "0.2.5";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1b7fdqwc2v9alfwf2fr0aqr8rf2pb5lpm4anpilmvrh2lhjar4i2";
+  };
+
+  propagatedBuildInputs = [ setuptools simpy ]
+    ++ lib.optional enableVisualization tkinter;
+
+  # No test cases are included, thus unittest tries to run the examples, which
+  # fail because no DISPLAYs are available.
+  doCheck = false;
+
+  pythonImportsCheck = [ "wsnsimpy" ]
+    ++ lib.optional enableVisualization "wsnsimpy.wsnsimpy_tk";
+
+  meta = with lib; {
+    description = "SimPy-based WSN Simulator";
+    homepage = "https://pypi.org/project/wsnsimpy/";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ dmrauh ];
+  };
+}
diff --git a/pkgs/development/python-modules/xdot/default.nix b/pkgs/development/python-modules/xdot/default.nix
index e8b95e5d09c..75d090699a4 100644
--- a/pkgs/development/python-modules/xdot/default.nix
+++ b/pkgs/development/python-modules/xdot/default.nix
@@ -1,5 +1,5 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k
-, wrapGAppsHook, gobject-introspection, pygobject3, graphviz, gtk3 }:
+{ lib, buildPythonPackage, fetchPypi, isPy3k, python3, xvfb_run, stdenv
+, wrapGAppsHook, gobject-introspection, pygobject3, graphviz, gtk3, numpy }:
 
 buildPythonPackage rec {
   pname = "xdot";
@@ -11,9 +11,16 @@ buildPythonPackage rec {
   };
 
   disabled = !isPy3k;
-
   nativeBuildInputs = [ wrapGAppsHook ];
-  propagatedBuildInputs = [ gobject-introspection pygobject3 graphviz gtk3 ];
+  propagatedBuildInputs = [ gobject-introspection pygobject3 graphviz gtk3 numpy ];
+  checkInputs = [ xvfb_run ];
+
+  checkPhase = ''
+    xvfb-run -s '-screen 0 800x600x24' ${python3.interpreter} nix_run_setup test
+  '';
+
+  # https://github.com/NixOS/nixpkgs/pull/107872#issuecomment-752175866
+  doCheck = stdenv.isLinux;
 
   meta = with lib; {
     description = "An interactive viewer for graphs written in Graphviz's dot";
diff --git a/pkgs/development/python-modules/xkcdpass/default.nix b/pkgs/development/python-modules/xkcdpass/default.nix
index d21142f5dc0..8cb5b5f0777 100644
--- a/pkgs/development/python-modules/xkcdpass/default.nix
+++ b/pkgs/development/python-modules/xkcdpass/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "xkcdpass";
-  version = "1.17.3";
+  version = "1.17.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "95cf3fd41130606ba64ec7edb9efac7c5d61efe21abab51a2c21ccbbebc48bb6";
+    sha256 = "0ghsjs5bxl996pap910q9s21nywb26mfpjd92rbfywbnj8f2k2cy";
   };
 
   # No tests included
diff --git a/pkgs/development/python-modules/xml2rfc/default.nix b/pkgs/development/python-modules/xml2rfc/default.nix
index 9f32a6de2d8..1a1ac6fc6d2 100644
--- a/pkgs/development/python-modules/xml2rfc/default.nix
+++ b/pkgs/development/python-modules/xml2rfc/default.nix
@@ -1,11 +1,11 @@
-{ lib, fetchPypi, buildPythonPackage, intervaltree, pyflakes, requests, lxml, google-i18n-address
-, pycountry, html5lib, six, kitchen, pypdf2, dict2xml, weasyprint, pyyaml, jinja2
-, stdenv
+{ stdenv, fetchPypi, buildPythonPackage, pythonAtLeast, intervaltree, pyflakes, requests, lxml, google-i18n-address
+, pycountry, html5lib, six, kitchen, pypdf2, dict2xml, weasyprint, pyyaml, jinja2, ConfigArgParse, appdirs
 }:
 
 buildPythonPackage rec {
   pname = "xml2rfc";
   version = "3.5.0";
+  disabled = pythonAtLeast "3.9";
 
   src = fetchPypi {
     inherit pname version;
@@ -27,6 +27,8 @@ buildPythonPackage rec {
     pypdf2
     dict2xml
     weasyprint
+    ConfigArgParse
+    appdirs
   ];
 
   preCheck = ''
@@ -35,8 +37,9 @@ buildPythonPackage rec {
 
   # lxml tries to fetch from the internet
   doCheck = false;
+  pythonImportsCheck = [ "xml2rfc" ];
 
-  meta = with lib; {
+  meta = with stdenv.lib; {
     description = "Tool generating IETF RFCs and drafts from XML sources";
     homepage = "https://tools.ietf.org/tools/xml2rfc/trac/";
     # Well, parts might be considered unfree, if being strict; see:
diff --git a/pkgs/development/python-modules/xmodem/default.nix b/pkgs/development/python-modules/xmodem/default.nix
index 48d658ba49b..7e0a25709fb 100644
--- a/pkgs/development/python-modules/xmodem/default.nix
+++ b/pkgs/development/python-modules/xmodem/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "xmodem";
-  version = "0.4.5";
+  version = "0.4.6";
 
   src = fetchFromGitHub {
     owner = "tehmaze";
     repo = "xmodem";
     rev = version;
-    sha256 = "0nz2gxwaq3ys1knpw6zlz3xrc3ziambcirg3fmp3nvzjdq8ma3h0";
+    sha256 = "1xx7wd8bnswxa1fv3bfim2gcamii79k7qmwg7dbxbjvrhbcjjc0l";
   };
 
   checkInputs = [ pytest which lrzsz ];
diff --git a/pkgs/development/python-modules/yowsup/default.nix b/pkgs/development/python-modules/yowsup/default.nix
index 0436fe8a0f0..c1f6b6632aa 100644
--- a/pkgs/development/python-modules/yowsup/default.nix
+++ b/pkgs/development/python-modules/yowsup/default.nix
@@ -30,6 +30,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/tgalal/yowsup";
     description = "The python WhatsApp library";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ ma27 ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/yq/default.nix b/pkgs/development/python-modules/yq/default.nix
index b3e651fd2b0..83f9c7a9980 100644
--- a/pkgs/development/python-modules/yq/default.nix
+++ b/pkgs/development/python-modules/yq/default.nix
@@ -1,6 +1,8 @@
 { lib
+, nixosTests
 , buildPythonPackage
 , fetchPypi
+, substituteAll
 , pkgs
 , argcomplete
 , pyyaml
@@ -22,6 +24,13 @@ buildPythonPackage rec {
     sha256 = "1q4rky0a6n4izmq7slb91a54g8swry1xrbfqxwc8lkd3hhvlxxkl";
   };
 
+  patches = [
+    (substituteAll {
+      src = ./jq-path.patch;
+      jq = "${lib.getBin pkgs.jq}/bin/jq";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace test/test.py --replace "expect_exit_codes={0} if sys.stdin.isatty() else {2}" "expect_exit_codes={0}"
   '';
@@ -38,7 +47,6 @@ buildPythonPackage rec {
    pytest
    coverage
    flake8
-   pkgs.jq
    toml
   ];
 
@@ -46,6 +54,8 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "yq" ];
 
+  passthru.tests = { inherit (nixosTests) yq; };
+
   meta = with lib; {
     description = "Command-line YAML processor - jq wrapper for YAML documents";
     homepage = "https://github.com/kislyuk/yq";
diff --git a/pkgs/development/python-modules/yq/jq-path.patch b/pkgs/development/python-modules/yq/jq-path.patch
new file mode 100644
index 00000000000..784a28feaf1
--- /dev/null
+++ b/pkgs/development/python-modules/yq/jq-path.patch
@@ -0,0 +1,26 @@
+diff --git a/test/test.py b/test/test.py
+index a81f41b..9e80f04 100755
+--- a/test/test.py
++++ b/test/test.py
+@@ -112,7 +112,7 @@ class TestYq(unittest.TestCase):
+                 tf2.seek(0)
+                 self.assertEqual(self.run_yq("", ["-y", arg, tf.name, self.fd_path(tf2)]), '1\n...\n')
+ 
+-    @unittest.skipIf(subprocess.check_output(["jq", "--version"]) < b"jq-1.6", "Test options introduced in jq 1.6")
++    @unittest.skipIf(subprocess.check_output(["@jq@", "--version"]) < b"jq-1.6", "Test options introduced in jq 1.6")
+     def test_jq16_arg_passthrough(self):
+         self.assertEqual(self.run_yq("{}", ["--indentless", "-y", ".a=$ARGS.positional", "--args", "a", "b"]),
+                          "a:\n- a\n- b\n")
+diff --git a/yq/__init__.py b/yq/__init__.py
+index afeb42c..a0d7970 100755
+--- a/yq/__init__.py
++++ b/yq/__init__.py
+@@ -146,7 +146,7 @@ def yq(input_streams=None, output_stream=None, input_format="yaml", output_forma
+ 
+     try:
+         # Note: universal_newlines is just a way to induce subprocess to make stdin a text buffer and encode it for us
+-        jq = subprocess.Popen(["jq"] + list(jq_args),
++        jq = subprocess.Popen(["@jq@"] + list(jq_args),
+                               stdin=subprocess.PIPE,
+                               stdout=subprocess.PIPE if converting_output else None,
+                               universal_newlines=True)
diff --git a/pkgs/development/python-modules/zstandard/default.nix b/pkgs/development/python-modules/zstandard/default.nix
index 126fe1377f5..fc5f8c3161e 100755
--- a/pkgs/development/python-modules/zstandard/default.nix
+++ b/pkgs/development/python-modules/zstandard/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "zstandard";
-  version = "0.14.1";
+  version = "0.15.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5dd700e52ec28c64d43f681ccde76b6436c8f89a332d6c9e22a6b629f28daeb5";
+    sha256 = "cb7c6a6f7d62350b9f5539045da54422975630e34dd9069584cc776b9917115f";
   };
 
   propagatedBuildInputs = [ cffi ];
diff --git a/pkgs/development/python-modules/zstd/default.nix b/pkgs/development/python-modules/zstd/default.nix
index d57416ac18a..95626c802ba 100644
--- a/pkgs/development/python-modules/zstd/default.nix
+++ b/pkgs/development/python-modules/zstd/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "zstd";
-  version = "1.4.5.1";
+  version = "1.4.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2a1806d625bd2d8944ead4b3018fc6444a31467fa09935e9c1d4296275f024c6";
+    sha256 = "b62b21eb850abd6b8c0046bfc1c5c773c873eeb94f1904ef1ff304e98b62b80e";
   };
 
   postPatch = ''
diff --git a/pkgs/development/tools/analysis/clang-analyzer/0001-Fix-scan-build-to-use-NIX_CFLAGS_COMPILE.patch b/pkgs/development/tools/analysis/clang-analyzer/0001-Fix-scan-build-to-use-NIX_CFLAGS_COMPILE.patch
index bcb3ac1d146..16470740877 100644
--- a/pkgs/development/tools/analysis/clang-analyzer/0001-Fix-scan-build-to-use-NIX_CFLAGS_COMPILE.patch
+++ b/pkgs/development/tools/analysis/clang-analyzer/0001-Fix-scan-build-to-use-NIX_CFLAGS_COMPILE.patch
@@ -1,22 +1,24 @@
-From 6ab08bc1c889e4fb9a39432b1a654eaa19ee65eb Mon Sep 17 00:00:00 2001
-From: Austin Seipp <aseipp@pobox.com>
-Date: Fri, 2 May 2014 12:28:23 -0500
-Subject: [PATCH] Fix scan-build to use NIX_CFLAGS_COMPILE
+From 40239d92957f1969652cdd41d6d2749c41ac4338 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
+Date: Fri, 31 Jul 2020 09:22:03 +0100
+Subject: [PATCH] [PATCH] Fix scan-build to use NIX_CFLAGS_COMPILE
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
 
-Signed-off-by: Austin Seipp <aseipp@pobox.com>
+Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
 ---
- tools/scan-build/ccc-analyzer | 9 +++++++++
- 1 file changed, 9 insertions(+)
+ tools/scan-build/libexec/ccc-analyzer | 8 ++++++++
+ 1 file changed, 8 insertions(+)
 
-diff --git a/tools/scan-build/ccc-analyzer b/tools/scan-build/ccc-analyzer
-index b463ec0..9d39dd0 100755
---- a/tools/scan-build/ccc-analyzer
-+++ b/tools/scan-build/ccc-analyzer
-@@ -207,6 +207,15 @@ sub Analyze {
-       push @Args, "-Xclang", "-analyzer-viz-egraph-ubigraph";
+diff --git a/tools/scan-build/libexec/ccc-analyzer b/tools/scan-build/libexec/ccc-analyzer
+index 800f38b5..0fb50fb3 100755
+--- a/tools/scan-build/libexec/ccc-analyzer
++++ b/tools/scan-build/libexec/ccc-analyzer
+@@ -246,6 +246,14 @@ sub Analyze {
+       push @Args, "-target", $AnalyzerTarget;
      }
  
-+
 +    # Add Nix flags to analysis
 +    if (defined $ENV{'NIX_CFLAGS_COMPILE'}) {
 +      my @nixArgs = split(/\s+/, $ENV{'NIX_CFLAGS_COMPILE'});
@@ -25,9 +27,9 @@ index b463ec0..9d39dd0 100755
 +      }
 +    }
 +
-     my $AnalysisArgs = GetCCArgs("--analyze", \@Args);
+     my $AnalysisArgs = GetCCArgs($HtmlDir, "--analyze", \@Args);
      @CmdArgs = @$AnalysisArgs;
    }
 -- 
-1.8.3.2
+2.27.0
 
diff --git a/pkgs/development/tools/analysis/clang-analyzer/default.nix b/pkgs/development/tools/analysis/clang-analyzer/default.nix
index 6b0c1b401f6..43b32052bf3 100644
--- a/pkgs/development/tools/analysis/clang-analyzer/default.nix
+++ b/pkgs/development/tools/analysis/clang-analyzer/default.nix
@@ -1,26 +1,24 @@
-{ stdenv, fetchurl, clang, llvmPackages, perl, makeWrapper }:
+{ stdenv, fetchurl, clang, llvmPackages, perl, makeWrapper, python3 }:
 
 stdenv.mkDerivation rec {
   pname = "clang-analyzer";
-  version = "3.4";
-
-  src = fetchurl {
-    url    = "http://llvm.org/releases/${version}/clang-${version}.src.tar.gz";
-    sha256 = "06rb4j1ifbznl3gfhl98s7ilj0ns01p7y7zap4p7ynmqnc6pia92";
-  };
+  inherit (llvmPackages.clang-unwrapped) src version;
 
   patches = [ ./0001-Fix-scan-build-to-use-NIX_CFLAGS_COMPILE.patch ];
-  buildInputs = [ clang llvmPackages.clang perl makeWrapper ];
+  buildInputs = [ clang llvmPackages.clang perl python3 ];
+  nativeBuildInputs = [ makeWrapper ];
 
   dontBuild = true;
 
   installPhase = ''
-    mkdir -p $out/bin $out/libexec
-    cp -R tools/scan-view  $out/libexec
-    cp -R tools/scan-build $out/libexec
+    mkdir -p $out/share/scan-view $out/bin
+    cp -R tools/scan-view/share/* $out/share/scan-view
+    cp -R tools/scan-view/bin/* $out/bin/scan-view
+    cp -R tools/scan-build/* $out
+
+    rm $out/bin/*.bat $out/libexec/*.bat $out/CMakeLists.txt
 
-    makeWrapper $out/libexec/scan-view/scan-view $out/bin/scan-view
-    makeWrapper $out/libexec/scan-build/scan-build $out/bin/scan-build \
+    wrapProgram $out/bin/scan-build \
       --add-flags "--use-cc=${clang}/bin/clang" \
       --add-flags "--use-c++=${clang}/bin/clang++" \
       --add-flags "--use-analyzer='${llvmPackages.clang}/bin/clang'"
diff --git a/pkgs/development/tools/analysis/flow/default.nix b/pkgs/development/tools/analysis/flow/default.nix
index 2d4f58aef49..80731a2106e 100644
--- a/pkgs/development/tools/analysis/flow/default.nix
+++ b/pkgs/development/tools/analysis/flow/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "flow";
-  version = "0.139.0";
+  version = "0.141.0";
 
   src = fetchFromGitHub {
     owner  = "facebook";
     repo   = "flow";
     rev    = "refs/tags/v${version}";
-    sha256 = "0ix98dq7g13jdfxgq0d8v2cvfnl2l2gz04j8h05sqzahbpxqv97w";
+    sha256 = "1hbq55gi834zapmly0gmg3kpqa1zwxcw4gll4g6vgzr0pfa0bwb2";
   };
 
   installPhase = ''
diff --git a/pkgs/development/tools/analysis/lcov/default.nix b/pkgs/development/tools/analysis/lcov/default.nix
index 6ac778180b7..c6faeaa72f2 100644
--- a/pkgs/development/tools/analysis/lcov/default.nix
+++ b/pkgs/development/tools/analysis/lcov/default.nix
@@ -1,24 +1,16 @@
- {stdenv, fetchurl, fetchpatch, perl, perlPackages, makeWrapper }:
+ {stdenv, fetchFromGitHub, perl, perlPackages, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  name = "lcov-1.14";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/ltp/${name}.tar.gz";
-    sha256 = "06h7ixyznf6vz1qvksjgy5f3q2nw9akf6zx59npf0h3l32cmd68l";
+  pname = "lcov";
+  version = "1.15";
+
+  src = fetchFromGitHub {
+    owner = "linux-test-project";
+    repo = "lcov";
+    rev = "v${version}";
+    sha256 = "1kvc7fkp45w48f0bxwbxvxkicnjrrydki0hllg294n1wrp80zzyk";
   };
 
-  patches =
-    [ (fetchpatch {
-        url = "https://github.com/linux-test-project/lcov/commit/ebfeb3e179e450c69c3532f98cd5ea1fbf6ccba7.patch";
-        sha256 = "0dalkqbjb6a4vp1lcsxd39dpn5fzdf7ihsjbiviq285s15nxdj1j";
-      })
-      (fetchpatch {
-        url = "https://github.com/linux-test-project/lcov/commit/75fbae1cfc5027f818a0bb865bf6f96fab3202da.patch";
-        sha256 = "0v1hn0511dxqbf50ppwasc6vmg0m6rns7ydbdy2rdbn0j7gxw30x";
-      })
-    ];
-
   buildInputs = [ perl makeWrapper ];
 
   preBuild = ''
@@ -28,6 +20,7 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     wrapProgram $out/bin/lcov --set PERL5LIB ${perlPackages.makeFullPerlPath [ perlPackages.PerlIOgzip perlPackages.JSON ]}
+    wrapProgram $out/bin/genpng --set PERL5LIB ${perlPackages.makeFullPerlPath [ perlPackages.GD ]}
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/analysis/tflint/default.nix b/pkgs/development/tools/analysis/tflint/default.nix
index 1011bcb5cc0..c8bd6223e92 100644
--- a/pkgs/development/tools/analysis/tflint/default.nix
+++ b/pkgs/development/tools/analysis/tflint/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "tflint";
-  version = "0.22.0";
+  version = "0.23.0";
 
   src = fetchFromGitHub {
     owner = "terraform-linters";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0wbxlh2lwgdhhw902lqy6p2vh8adfq4yaa507js8an3byy26ls3d";
+    sha256 = "1j6a956cbmsc9fy500sl5z6l7q5sc4fna772v5m10w0hq0vw6sk5";
   };
 
-  vendorSha256 = "0yk9xsb0s4kymfb3p14irks6b30b53r0mz7irgcmx9jxz8vyffqg";
+  vendorSha256 = "1x7gxjl98i36vsch6b3w6iqyq6q8mj4x9gylk2fihq50c3qq4mk4";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/analysis/tfsec/default.nix b/pkgs/development/tools/analysis/tfsec/default.nix
index e10052203ed..7d66264564b 100644
--- a/pkgs/development/tools/analysis/tfsec/default.nix
+++ b/pkgs/development/tools/analysis/tfsec/default.nix
@@ -2,21 +2,21 @@
 
 buildGoPackage rec {
   pname = "tfsec";
-  version = "0.27.0";
+  version = "0.36.10";
 
   src = fetchFromGitHub {
-    owner = "liamg";
+    owner = "tfsec";
     repo = pname;
     rev = "v${version}";
-    sha256 = "12n6l18g0kg28clzyzwc2lq9rnch3vshp07isgvfp7193bhf8hyv";
+    sha256 = "11kv13d4cw515r79azfha1ksmvsha1rvg0jak9nvz9ggivyn0s7a";
   };
 
-  goPackagePath = "github.com/liamg/tfsec";
+  goPackagePath = "github.com/tfsec/tfsec";
 
   buildFlagsArray = [ "-ldflags=-s -w -X ${goPackagePath}/version.Version=${version}" ];
 
   meta = with lib; {
-    homepage = "https://github.com/liamg/tfsec";
+    homepage = "https://github.com/tfsec/tfsec";
     description = "Static analysis powered security scanner for your terraform code";
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
diff --git a/pkgs/development/tools/build-managers/bazel/buildtools/default.nix b/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
index 43a70c6a765..66560e768d2 100644
--- a/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "bazel-buildtools";
-  version = "3.3.0";
+  version = "3.5.0";
 
   goPackagePath = "github.com/bazelbuild/buildtools";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "bazelbuild";
     repo = "buildtools";
     rev = version;
-    sha256 = "0g411gjbm02qd5b50iy6kk81kx2n5zw5x1m6i6g7nrmh38p3pn9k";
+    sha256 = "179k0kwh7i2azkhk8dw7ac50a05q7n3i29pqaf69yw7jrpbf8k85";
   };
 
   goDeps = ./deps.nix;
diff --git a/pkgs/development/tools/build-managers/cmake/default.nix b/pkgs/development/tools/build-managers/cmake/default.nix
index ef8a5324487..d38f42e4b33 100644
--- a/pkgs/development/tools/build-managers/cmake/default.nix
+++ b/pkgs/development/tools/build-managers/cmake/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, pkgconfig, fetchpatch
+{ stdenv, lib, fetchurl, pkgconfig
 , bzip2, curl, expat, libarchive, xz, zlib, libuv, rhash
 , buildPackages
 # darwin attributes
@@ -20,12 +20,12 @@ stdenv.mkDerivation rec {
           + lib.optionalString useNcurses "-cursesUI"
           + lib.optionalString withQt5 "-qt5UI"
           + lib.optionalString useQt4 "-qt4UI";
-  version = "3.19.1";
+  version = "3.19.2";
 
   src = fetchurl {
     url = "${meta.homepage}files/v${lib.versions.majorMinor version}/cmake-${version}.tar.gz";
     # compare with https://cmake.org/files/v${lib.versions.majorMinor version}/cmake-${version}-SHA-256.txt
-    sha256 = "1fisi9rlijw9wd0yjzk1c6j7ljnb2yiq5iqnrz6m1xkflyinw9hx";
+    sha256 = "1w67w0ak6vf37501dlz9yhnzlvvpw1w10n2nm3hi7yxp4cxzvq73";
   };
 
   patches = [
diff --git a/pkgs/development/tools/build-managers/dub/default.nix b/pkgs/development/tools/build-managers/dub/default.nix
index 44c91e93609..2668eca4569 100644
--- a/pkgs/development/tools/build-managers/dub/default.nix
+++ b/pkgs/development/tools/build-managers/dub/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "dub";
-  version = "1.14.0";
+  version = "1.23.0";
 
   enableParallelBuilding = true;
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "dlang";
     repo = "dub";
     rev = "v${version}";
-    sha256 = "070kfkyrkr98y1hbhcf85842c0x7l95w1ambrkdgajpb6kcmpf84";
+    sha256 = "06a4whsl1m600k096nwif83n7za3vr7pj1xwapncy5fcad1gmady";
   };
 
   postUnpack = ''
@@ -41,18 +41,25 @@ stdenv.mkDerivation rec {
     export HOME=$TMP
 
     rm -rf test/issue502-root-import
-    rm test/issue990-download-optional-selected.sh
-    rm test/timeout.sh
     rm test/issue674-concurrent-dub.sh
     rm test/issue672-upgrade-optional.sh
+    rm test/issue990-download-optional-selected.sh
+    rm test/issue877-auto-fetch-package-on-run.sh
+    rm test/issue1037-better-dependency-messages.sh
+    rm test/issue1040-run-with-ver.sh
+    rm test/issue1416-maven-repo-pkg-supplier.sh
+    rm test/issue1180-local-cache-broken.sh
     rm test/issue1574-addcommand.sh
     rm test/issue1524-maven-upgrade-dependency-tree.sh
-    rm test/issue1416-maven-repo-pkg-supplier.sh
-    rm test/issue1037-better-dependency-messages.sh
-    rm test/interactive-remove.sh
+    rm test/issue1773-lint.sh
+
+    rm test/ddox.sh
     rm test/fetchzip.sh
     rm test/feat663-search.sh
-    rm test/ddox.sh
+    rm -rf test/git-dependency
+    rm test/interactive-remove.sh
+    rm test/timeout.sh
+    rm test/version-spec.sh
     rm test/0-init-multi.sh
     rm test/0-init-multi-json.sh
 
diff --git a/pkgs/development/tools/build-managers/leiningen/default.nix b/pkgs/development/tools/build-managers/leiningen/default.nix
index 713f499ce2b..f1445970f6a 100644
--- a/pkgs/development/tools/build-managers/leiningen/default.nix
+++ b/pkgs/development/tools/build-managers/leiningen/default.nix
@@ -3,17 +3,17 @@
 
 stdenv.mkDerivation rec {
   pname = "leiningen";
-  version = "2.9.1";
+  version = "2.9.5";
 
   src = fetchurl {
     url = "https://raw.github.com/technomancy/leiningen/${version}/bin/lein-pkg";
-    sha256 = "1h0gpzpr7xk6hvmrrq41bcp2k9aai348baf8ad9bxvci01n4zb12";
+    sha256 = "12kv3286a2vkm3qpm2msiks87mkspxddgl7bwiacdias9dfda09n";
   };
 
   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 = "1y2mva5s2w2szzn1b9rhz0dvkffls4ravii677ybcf2w9wd86z7a";
+    sha256 = "1shyvg1471sc3bv4h3ax51626xw8a8w05f43bny6gmp8pyc0qjfz";
   };
 
   JARNAME = "${pname}-${version}-standalone.jar";
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     description = "Project automation for Clojure";
     license = stdenv.lib.licenses.epl10;
     platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
+    maintainers = with stdenv.lib.maintainers; [ thiagokokada ];
   };
 }
diff --git a/pkgs/development/tools/build-managers/meson/default.nix b/pkgs/development/tools/build-managers/meson/default.nix
index cd506b970f6..890c457da05 100644
--- a/pkgs/development/tools/build-managers/meson/default.nix
+++ b/pkgs/development/tools/build-managers/meson/default.nix
@@ -4,6 +4,7 @@
 , writeTextDir
 , substituteAll
 , fetchpatch
+, installShellFiles
 }:
 
 python3.pkgs.buildPythonApplication rec {
@@ -77,6 +78,13 @@ python3.pkgs.buildPythonApplication rec {
     rm $out/nix-support/propagated-build-inputs
   '';
 
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    installShellCompletion --zsh data/shell-completions/zsh/_meson
+    installShellCompletion --bash data/shell-completions/bash/meson
+  '';
+
   meta = with lib; {
     homepage = "https://mesonbuild.com";
     description = "SCons-like build system that use python as a front-end language and Ninja as a building backend";
diff --git a/pkgs/development/tools/build-managers/rocm-cmake/default.nix b/pkgs/development/tools/build-managers/rocm-cmake/default.nix
index 8f01b9aca31..1dd931981da 100644
--- a/pkgs/development/tools/build-managers/rocm-cmake/default.nix
+++ b/pkgs/development/tools/build-managers/rocm-cmake/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "rocm-cmake";
-  version = "3.10.0";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "RadeonOpenCompute";
diff --git a/pkgs/development/tools/build-managers/sbt-extras/default.nix b/pkgs/development/tools/build-managers/sbt-extras/default.nix
index 3b433ea5e77..24c2bdd2af3 100644
--- a/pkgs/development/tools/build-managers/sbt-extras/default.nix
+++ b/pkgs/development/tools/build-managers/sbt-extras/default.nix
@@ -4,14 +4,14 @@
 
 stdenv.mkDerivation rec {
   pname = "sbt-extras";
-  rev = "be2f5d98f13884a18eaf5205458f985575dbe13a";
-  version = "2020-11-23";
+  rev = "4db8d5c27413f69297adfffac57485d88d73c60e";
+  version = "2020-12-26";
 
   src = fetchFromGitHub {
     owner = "paulp";
     repo = "sbt-extras";
     inherit rev;
-    sha256 = "00acnj357fcwx7w25axaj0l5ync97ixsixg8s55r7hwibkxn0fa7";
+    sha256 = "B8abzdohkw3aPhbENJ2vxZFLWhIpf0HF/uv+WJbVRYg=";
   };
 
   dontBuild = true;
diff --git a/pkgs/development/tools/build-managers/sbt/default.nix b/pkgs/development/tools/build-managers/sbt/default.nix
index 39832109d99..a9314cef0cc 100644
--- a/pkgs/development/tools/build-managers/sbt/default.nix
+++ b/pkgs/development/tools/build-managers/sbt/default.nix
@@ -3,12 +3,12 @@
 
 stdenv.mkDerivation rec {
   pname = "sbt";
-  version = "1.4.5";
+  version = "1.4.6";
 
   src = fetchurl {
     url =
       "https://github.com/sbt/sbt/releases/download/v${version}/sbt-${version}.tgz";
-    sha256 = "wFxv20NfMMcw4yP8wbmLow8189jExDxkSIRqK2Ix/6U=";
+    sha256 = "sha256-hqbyjnmWYHQQEGarGqGSZ9DI1E6uIdqpPJxgVspvnaQ=";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/tools/build-managers/shards/default.nix b/pkgs/development/tools/build-managers/shards/default.nix
index dc990af910f..cf422fc2e07 100644
--- a/pkgs/development/tools/build-managers/shards/default.nix
+++ b/pkgs/development/tools/build-managers/shards/default.nix
@@ -3,13 +3,9 @@
 , crystal_0_34
 , crystal_0_35
 }:
-
 let
-  generic = (
-    { version
-    , sha256
-    , crystal
-    }:
+  generic =
+    { version, sha256, crystal }:
 
     crystal.buildCrystalPackage {
       pname = "shards";
@@ -17,12 +13,12 @@ let
 
       src = fetchFromGitHub {
         owner = "crystal-lang";
-        repo  = "shards";
-        rev   = "v${version}";
+        repo = "shards";
+        rev = "v${version}";
         inherit sha256;
       };
 
-      # we cannot use `make` here as it would introduce a dependency on itself
+      # we cannot use `make` or `shards` here as it would introduce a cyclical dependency
       format = "crystal";
       shardsFile = ./shards.nix;
       crystalBinaries.shards.src = "./src/shards.cr";
@@ -36,10 +32,10 @@ let
         maintainers = with maintainers; [ peterhoeg ];
         inherit (crystal.meta) homepage platforms;
       };
-    }
-  );
+    };
 
-in rec {
+in
+rec {
   shards_0_11 = generic {
     version = "0.11.1";
     sha256 = "05qnhc23xbmicdl4fwyxfpcvd8jq4inzh6v7jsjjw4n76vzb1f71";
diff --git a/pkgs/development/tools/build-managers/wafHook/default.nix b/pkgs/development/tools/build-managers/wafHook/default.nix
index 4184bd5fe8c..2131caede3c 100644
--- a/pkgs/development/tools/build-managers/wafHook/default.nix
+++ b/pkgs/development/tools/build-managers/wafHook/default.nix
@@ -1,7 +1,6 @@
-{ lib, stdenv, pkgs, python, makeSetupHook, waf }:
+{ lib, stdenv, pkgs, makeSetupHook, waf }:
 
 makeSetupHook {
-  deps = [ python ];
   substitutions = {
     inherit waf;
     crossFlags = lib.optionalString (stdenv.hostPlatform.system != stdenv.targetPlatform.system)
diff --git a/pkgs/development/tools/cargo-flamegraph/default.nix b/pkgs/development/tools/cargo-flamegraph/default.nix
index feaa3c312f4..3bdbb086d1d 100644
--- a/pkgs/development/tools/cargo-flamegraph/default.nix
+++ b/pkgs/development/tools/cargo-flamegraph/default.nix
@@ -1,19 +1,19 @@
-{ lib, stdenv, fetchFromGitHub, rustPlatform, makeWrapper, perf
+{ lib, stdenv, fetchFromGitHub, rustPlatform, makeWrapper, perf, nix-update-script
 , Security
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-flamegraph";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "flamegraph-rs";
     repo = "flamegraph";
     rev = "v${version}";
-    sha256 = "0d6k2qr76p93na39j4zbcpc9kaswd806wrqhcwisqxdrcxrjbwhk";
+    sha256 = "sha256-IpmvFUWNaFQ1ls7u625vvj1TnRYXR+X1mAGdBcwRFLk=";
   };
 
-  cargoSha256 = "1qz4a1b58j3bv3akqvc3bcgvqq4bi8cbm3gzws6a52dz7ycrgq46";
+  cargoSha256 = "sha256-2YHkEQZqjKEvg4h9kIVhqmgq+SMF1c3r8UbSQivZh7w=";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ makeWrapper ];
   buildInputs = lib.optionals stdenv.isDarwin [
@@ -22,11 +22,15 @@ rustPlatform.buildRustPackage rec {
 
   postFixup = lib.optionalString stdenv.isLinux ''
     wrapProgram $out/bin/cargo-flamegraph \
-      --suffix PATH ':' ${perf}/bin
+      --set-default PERF ${perf}/bin/perf
     wrapProgram $out/bin/flamegraph \
-      --suffix PATH ':' ${perf}/bin
+      --set-default PERF ${perf}/bin/perf
   '';
 
+  passthru.updateScript = nix-update-script {
+    attrPath = pname;
+  };
+
   meta = with lib; {
     description = "Easy flamegraphs for Rust projects and everything else, without Perl or pipes <3";
     homepage = "https://github.com/ferrous-systems/flamegraph";
diff --git a/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix b/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix
index 223b814708d..82ac1556574 100644
--- a/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix
+++ b/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix
@@ -4,8 +4,6 @@ buildGoModule rec {
   name = "buildkite-agent-${version}";
   version = "3.26.0";
 
-  goPackagePath = "github.com/buildkite/agent";
-
   src = fetchFromGitHub {
     owner = "buildkite";
     repo = "agent";
diff --git a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
index db2d228ce45..3d127591bd0 100644
--- a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
+++ b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
@@ -1,16 +1,16 @@
 { lib, buildGoPackage, fetchFromGitLab, fetchurl }:
 
 let
-  version = "13.6.0";
+  version = "13.7.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 = "0q1f4dmdkqrdzs3mb5wk6k6x50li4c7js0blzfcz3f3n8gm925jw";
+    sha256 = "0hbzvw6bdy31yqnri7379gpm8n5nv6ayr1idg02c9zqgcsgm34jf";
   };
 
   docker_arm = fetchurl {
     url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-arm.tar.xz";
-    sha256 = "1hxjqk4in1a2abcyxj7556fcscxq4cfy24cgcmh1qhvirnm5j6mc";
+    sha256 = "036drxlkmm35mdl0f5k79hnmwvf8gadgsxx71jprn1fjjzk3cxmz";
   };
 in
 buildGoPackage rec {
@@ -30,7 +30,7 @@ buildGoPackage rec {
     owner = "gitlab-org";
     repo = "gitlab-runner";
     rev = "v${version}";
-    sha256 = "0vwky4hdkh1qvd61zdf2avbbnn3ya6pdicqggh2fx7k04pnp05mh";
+    sha256 = "0v2wcalvs7gsbi33jm35k01cqv2iqz3k3yfjjw08dssg358d0vfp";
   };
 
   patches = [ ./fix-shell-path.patch ];
diff --git a/pkgs/development/tools/coursier/default.nix b/pkgs/development/tools/coursier/default.nix
index 0d42bcff7cf..a0f69033923 100644
--- a/pkgs/development/tools/coursier/default.nix
+++ b/pkgs/development/tools/coursier/default.nix
@@ -2,7 +2,7 @@
 , coreutils, git, gnused, nix, nixfmt }:
 
 let
-  version = "2.0.7";
+  version = "2.0.8";
 
   zshCompletion = fetchurl {
     url =
@@ -19,7 +19,7 @@ in stdenv.mkDerivation rec {
   src = fetchurl {
     url =
       "https://github.com/coursier/coursier/releases/download/v${version}/coursier";
-    sha256 = "1m6b12cqbwsk4xf2r79y51154j6ws6f0kiw1yj57gylw7pjkgfnk";
+    sha256 = "sha256-7dNJUMZu6YY3076cnjWHRisJZVn1NPRH1VC+cJjfI/8=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/database/liquibase/default.nix b/pkgs/development/tools/database/liquibase/default.nix
index bdb2f8cbd75..6eb24a812aa 100644
--- a/pkgs/development/tools/database/liquibase/default.nix
+++ b/pkgs/development/tools/database/liquibase/default.nix
@@ -10,11 +10,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "liquibase";
-  version = "4.2.1";
+  version = "4.2.2";
 
   src = fetchurl {
     url = "https://github.com/liquibase/liquibase/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "1fv92f71p7pk3r4aj88kgaiblfii3z4fjbchyj1c9k6br0gwbw8b";
+    sha256 = "0k3vrz12dgfirz9p4ckgk2swr42w8fl50hdgg8pwc7yh2jsz8zl0";
   };
 
   buildInputs = [ jre makeWrapper ];
diff --git a/pkgs/development/tools/database/litecli/default.nix b/pkgs/development/tools/database/litecli/default.nix
index 163926f0e58..ee18a72216d 100644
--- a/pkgs/development/tools/database/litecli/default.nix
+++ b/pkgs/development/tools/database/litecli/default.nix
@@ -1,8 +1,8 @@
-{ lib, python3Packages, fetchpatch }:
+{ lib, python3Packages }:
 
 python3Packages.buildPythonApplication rec {
   pname = "litecli";
-  version = "1.4.1";
+  version = "1.5.0";
 
   # Python 2 won't have prompt_toolkit 2.x.x
   # See: https://github.com/NixOS/nixpkgs/blob/f49e2ad3657dede09dc998a4a98fd5033fb52243/pkgs/top-level/python-packages.nix#L3408
@@ -10,17 +10,9 @@ python3Packages.buildPythonApplication rec {
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "FARWjtbS5zi/XQDyAVImUmArLj8xATz1jZ4jnXFdq1w=";
+    sha256 = "b09f0804d26b018360b240778612390810e8e00ea0f79d5412fd0d4775c0e3cd";
   };
 
-  patches = [
-    # Fix compatibility with sqlparse >= 0.4.0. Remove with the next release
-    (fetchpatch {
-      url = "https://github.com/dbcli/litecli/commit/37957e401d22f88800bbdec2c690e731f2cc13bd.patch";
-      sha256 = "1x82s2h1rzflyiahyd8pfya30rzs6yx6ij4a4s16f8iix5x35zv9";
-    })
-  ];
-
   propagatedBuildInputs = with python3Packages; [
     cli-helpers
     click
@@ -31,23 +23,17 @@ python3Packages.buildPythonApplication rec {
   ];
 
   checkInputs = with python3Packages; [
-    pytest
+    pytestCheckHook
     mock
   ];
 
-  preCheck = ''
-    export XDG_CONFIG_HOME=$TMP
-    # add missing file
-    mkdir -p tests/data
-    echo -e "t1,11\nt2,22\n" > tests/data/import_data.csv
-  '';
-
   meta = with lib; {
     description = "Command-line interface for SQLite";
     longDescription = ''
       A command-line client for SQLite databases that has auto-completion and syntax highlighting.
     '';
     homepage = "https://litecli.com";
+    changelog = "https://github.com/dbcli/litecli/blob/v${version}/CHANGELOG.md";
     license = licenses.bsd3;
     maintainers = with maintainers; [ Scriptkiddi ];
   };
diff --git a/pkgs/development/tools/database/pgcli/default.nix b/pkgs/development/tools/database/pgcli/default.nix
index 36a85e6361c..b4c26d6fb5c 100644
--- a/pkgs/development/tools/database/pgcli/default.nix
+++ b/pkgs/development/tools/database/pgcli/default.nix
@@ -1,52 +1,61 @@
-{ buildPythonApplication, lib, fetchPypi, isPy3k, fetchpatch
-, cli-helpers, click, configobj, humanize, prompt_toolkit, psycopg2
-, pygments, sqlparse, pgspecial, setproctitle, keyring, pytest, mock
+{ stdenv
+, buildPythonApplication
+, fetchPypi
+, isPy3k
+, cli-helpers
+, click
+, configobj
+, humanize
+, prompt_toolkit
+, psycopg2
+, pygments
+, sqlparse
+, pgspecial
+, setproctitle
+, keyring
+, pendulum
+, pytestCheckHook
+, mock
 }:
 
 buildPythonApplication rec {
   pname = "pgcli";
-  version = "3.0.0";
+  version = "3.1.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "10j01bd031fys1vcihibsi5rrfd8w1kgahpcsbk4l07871c24829";
+    sha256 = "d5b2d803f7e4e7fe679306a000bde5d14d15ec590ddd108f3dc4c0ecad169d2b";
   };
 
   propagatedBuildInputs = [
-    cli-helpers click configobj humanize prompt_toolkit psycopg2
-    pygments sqlparse pgspecial setproctitle keyring
+    cli-helpers
+    click
+    configobj
+    humanize
+    prompt_toolkit
+    psycopg2
+    pygments
+    sqlparse
+    pgspecial
+    setproctitle
+    keyring
+    pendulum
   ];
 
-  patches = [
-    (fetchpatch {
-      name = "enable-sqlparse-4.patch";
-      url = "https://github.com/dbcli/pgcli/pull/1224/commits/55d534d41051887c637b6300e08a9f70e6656020.patch";
-      sha256 = "01r8qc7qzb6mz0xq2xnrgyackbapf43ng6l88qpzd9lw2pwksc8w";
-      includes = [ "pgcli/packages/parseutils/ctes.py" "tests/test_sqlcompletion.py" "setup.py" ];
-    })
-  ];
-
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "prompt_toolkit>=2.0.6,<3.0.0" "prompt_toolkit"
-  '';
-
-  checkInputs = [ pytest mock ];
+  checkInputs = [ pytestCheckHook mock ];
 
-  # `test_application_name_db_uri` fails: https://github.com/dbcli/pgcli/issues/1104
-  checkPhase = ''
-    pytest --deselect=tests/test_main.py::test_application_name_db_uri
-  '';
+  disabledTests = stdenv.lib.optionals stdenv.isDarwin [ "test_application_name_db_uri" ];
 
-  meta = with lib; {
+  meta = with stdenv.lib; {
     description = "Command-line interface for PostgreSQL";
     longDescription = ''
       Rich command-line interface for PostgreSQL with auto-completion and
       syntax highlighting.
     '';
     homepage = "https://pgcli.com";
+    changelog = "https://github.com/dbcli/pgcli/blob/v${version}/changelog.rst";
     license = licenses.bsd3;
     maintainers = with maintainers; [ dywedir ];
   };
diff --git a/pkgs/development/tools/database/sqlitebrowser/default.nix b/pkgs/development/tools/database/sqlitebrowser/default.nix
index 7fcdbd1a6ad..40238d0effa 100644
--- a/pkgs/development/tools/database/sqlitebrowser/default.nix
+++ b/pkgs/development/tools/database/sqlitebrowser/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "sqlitebrowser";
-  version = "3.12.0";
+  version = "3.12.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
-    rev = version;
-    sha256 = "1arv4rzl8s1vjjqzz35l2b1rfzr2b8b23v97fdw1kdxpwvs63l99";
+    rev = "v${version}";
+    sha256 = "0ray6cscx2qil1dfi7hmpijmq3kba49wn430ih1q4fkz9psjvrz1";
   };
 
   # We should be using qscintilla from nixpkgs instead of the vendored version,
diff --git a/pkgs/development/tools/documentation/gtk-doc/default.nix b/pkgs/development/tools/documentation/gtk-doc/default.nix
index 4645c63e71d..10b48d51191 100644
--- a/pkgs/development/tools/documentation/gtk-doc/default.nix
+++ b/pkgs/development/tools/documentation/gtk-doc/default.nix
@@ -14,7 +14,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "gtk-doc";
-  version = "1.33.0";
+  version = "1.33.1";
 
   format = "other";
 
@@ -23,7 +23,7 @@ python3.pkgs.buildPythonApplication rec {
     owner = "GNOME";
     repo = pname;
     rev = version;
-    sha256 = "ahOTEWwVVwHt8TDWBnPKHIAUq0GXllEvMRmaKul1Tq0=";
+    sha256 = "L9CjhZ60F42xbo50x7cdKfJrav/9mf38pff8S4xkEVo=";
   };
 
   patches = [
diff --git a/pkgs/development/tools/electron/default.nix b/pkgs/development/tools/electron/default.nix
index 07953ea439f..29d00a159ab 100644
--- a/pkgs/development/tools/electron/default.nix
+++ b/pkgs/development/tools/electron/default.nix
@@ -13,6 +13,7 @@
 , libdrm
 , mesa
 , libxkbcommon
+, libappindicator-gtk3
 }@args:
 
 let
diff --git a/pkgs/development/tools/electron/generic.nix b/pkgs/development/tools/electron/generic.nix
index ee3609783c2..6d0dbc8cace 100644
--- a/pkgs/development/tools/electron/generic.nix
+++ b/pkgs/development/tools/electron/generic.nix
@@ -13,6 +13,7 @@
 , libdrm
 , mesa
 , libxkbcommon
+, libappindicator-gtk3
 }:
 
 version: hashes:
@@ -56,7 +57,7 @@ let
   };
 
   electronLibPath = with stdenv.lib; makeLibraryPath (
-    [ libuuid at-spi2-atk at-spi2-core ]
+    [ libuuid at-spi2-atk at-spi2-core libappindicator-gtk3 ]
     ++ optionals (! versionOlder version "9.0.0") [ libdrm mesa ]
     ++ optionals (! versionOlder version "11.0.0") [ libxkbcommon ]
   );
diff --git a/pkgs/development/tools/flootty/default.nix b/pkgs/development/tools/flootty/default.nix
index 1baddb52259..2b8f174f763 100644
--- a/pkgs/development/tools/flootty/default.nix
+++ b/pkgs/development/tools/flootty/default.nix
@@ -13,6 +13,6 @@ python3Packages.buildPythonApplication rec {
     description = "A collaborative terminal. In practice, it's similar to a shared screen or tmux session";
     homepage = "https://floobits.com/help/flootty";
     license = licenses.asl20;
-    maintainers = with maintainers; [ sellout enzime ];
+    maintainers = with maintainers; [ sellout ];
   };
 }
diff --git a/pkgs/development/tools/github-commenter/default.nix b/pkgs/development/tools/github-commenter/default.nix
index 8d25710aa2d..05784c47eff 100644
--- a/pkgs/development/tools/github-commenter/default.nix
+++ b/pkgs/development/tools/github-commenter/default.nix
@@ -13,8 +13,6 @@ buildGoModule rec {
 
   vendorSha256 = "Gw+cR5sA5MGuclcvur8olmRtK04LDP5vKJ5k7yZO3B0=";
 
-  goPackagePath = "github.com/cloudposse/${pname}";
-
   meta = with lib; {
     description = "Command line utility for creating GitHub comments on Commits, Pull Request Reviews or Issues";
     license = licenses.asl20;
diff --git a/pkgs/development/tools/go-minimock/default.nix b/pkgs/development/tools/go-minimock/default.nix
new file mode 100644
index 00000000000..ed4374e7764
--- /dev/null
+++ b/pkgs/development/tools/go-minimock/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "go-minimock";
+  version = "3.0.8";
+
+  src = fetchFromGitHub {
+    owner = "gojuno";
+    repo = "minimock";
+    rev = "v${version}";
+    sha256 = "0r0krbwvx5w1z0yv2qqi92irbsfhkvwvaigy350cvcz9gmcppj4h";
+  };
+
+  vendorSha256 = "1macwm6hybjinwnx62v146yxydcn5k5r587nxwkf4ffy76s2m3jc";
+
+  doCheck = true;
+
+  subPackages = [ "cmd/minimock" "." ];
+
+  meta = with lib; {
+    homepage = "https://github.com/gojuno/minimock";
+    description = "A golang mock generator from interfaces";
+    license = licenses.mit;
+    maintainers = with maintainers; [ svrana ];
+  };
+}
diff --git a/pkgs/development/tools/haskell/haskell-language-server/default.nix b/pkgs/development/tools/haskell/haskell-language-server/default.nix
index a19e0575913..e33d731dae4 100644
--- a/pkgs/development/tools/haskell/haskell-language-server/default.nix
+++ b/pkgs/development/tools/haskell/haskell-language-server/default.nix
@@ -2,39 +2,39 @@
 , bytestring, containers, data-default, deepseq, directory, extra
 , fetchgit, filepath, floskell, fourmolu, ghc, ghc-boot-th
 , ghc-paths, ghcide, gitrev, hashable, haskell-lsp, hie-bios
-, hls-hlint-plugin, hls-plugin-api, hls-tactics-plugin, hslogger
-, hspec, hspec-core, lens, lsp-test, mtl, optparse-applicative
-, optparse-simple, ormolu, process, regex-tdfa, retrie
-, safe-exceptions, shake, stdenv, stm, stylish-haskell, tasty
-, tasty-ant-xml, tasty-expected-failure, tasty-golden, tasty-hunit
-, tasty-rerun, temporary, text, time, transformers
-, unordered-containers, yaml
+, hls-explicit-imports-plugin, hls-hlint-plugin, hls-plugin-api
+, hls-retrie-plugin, hls-tactics-plugin, hslogger, hspec
+, hspec-core, lens, lsp-test, mtl, optparse-applicative
+, optparse-simple, ormolu, process, regex-tdfa, safe-exceptions
+, shake, stdenv, stm, stylish-haskell, tasty, tasty-ant-xml
+, tasty-expected-failure, tasty-golden, tasty-hunit, tasty-rerun
+, temporary, text, time, transformers, unordered-containers, yaml
 }:
 mkDerivation {
   pname = "haskell-language-server";
-  version = "0.6.0.0";
+  version = "0.7.1.0";
   src = fetchgit {
     url = "https://github.com/haskell/haskell-language-server.git";
-    sha256 = "027fq6752024wzzq9izsilm5lkq9gmpxf82rixbimbijw0yk4pwj";
-    rev = "372a12e797069dc3ac4fa33dcaabe3b992999d7c";
+    sha256 = "0gkzvjx4dgf53yicinqjshlj80gznx5khb62i7g3kqjr85iy0raa";
+    rev = "e4f677e1780fe85a02b99a09404a0a3c3ab5ce7c";
     fetchSubmodules = true;
   };
   isLibrary = true;
   isExecutable = true;
   libraryHaskellDepends = [
     base containers data-default directory extra filepath ghc ghcide
-    gitrev haskell-lsp hie-bios hls-plugin-api hslogger
-    optparse-applicative optparse-simple process text
-    unordered-containers
+    gitrev haskell-lsp hls-plugin-api hslogger optparse-applicative
+    optparse-simple process shake text unordered-containers
   ];
   executableHaskellDepends = [
     aeson base binary brittany bytestring containers deepseq directory
     extra filepath floskell fourmolu ghc ghc-boot-th ghc-paths ghcide
-    gitrev hashable haskell-lsp hie-bios hls-hlint-plugin
-    hls-plugin-api hls-tactics-plugin hslogger lens mtl
-    optparse-applicative optparse-simple ormolu process regex-tdfa
-    retrie safe-exceptions shake stylish-haskell temporary text time
-    transformers unordered-containers
+    gitrev hashable haskell-lsp hie-bios hls-explicit-imports-plugin
+    hls-hlint-plugin hls-plugin-api hls-retrie-plugin
+    hls-tactics-plugin hslogger lens mtl optparse-applicative
+    optparse-simple ormolu process regex-tdfa safe-exceptions shake
+    stylish-haskell temporary text time transformers
+    unordered-containers
   ];
   testHaskellDepends = [
     aeson base blaze-markup bytestring containers data-default
diff --git a/pkgs/development/tools/haskell/haskell-language-server/hls-brittany.nix b/pkgs/development/tools/haskell/haskell-language-server/hls-brittany.nix
deleted file mode 100644
index 0519cf42dd8..00000000000
--- a/pkgs/development/tools/haskell/haskell-language-server/hls-brittany.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ mkDerivation, aeson, base, butcher, bytestring, cmdargs
-, containers, czipwith, data-tree-print, deepseq, directory, extra
-, fetchgit, filepath, ghc, ghc-boot-th, ghc-exactprint, ghc-paths
-, hspec, monad-memo, mtl, multistate, parsec, pretty, random, safe
-, semigroups, stdenv, strict, syb, text, transformers, uniplate
-, unsafe, yaml
-}:
-mkDerivation {
-  pname = "brittany";
-  version = "0.12.1.1";
-  src = fetchgit {
-    url = "https://github.com/bubba/brittany";
-    sha256 = "1rkk09f8750qykrmkqfqbh44dbx1p8aq1caznxxlw8zqfvx39cxl";
-    rev = "c59655f10d5ad295c2481537fc8abf0a297d9d1c";
-    fetchSubmodules = true;
-  };
-  isLibrary = true;
-  isExecutable = true;
-  libraryHaskellDepends = [
-    aeson base butcher bytestring cmdargs containers czipwith
-    data-tree-print deepseq directory extra filepath ghc ghc-boot-th
-    ghc-exactprint ghc-paths monad-memo mtl multistate pretty random
-    safe semigroups strict syb text transformers uniplate unsafe yaml
-  ];
-  executableHaskellDepends = [ base ];
-  testHaskellDepends = [
-    aeson base butcher bytestring cmdargs containers czipwith
-    data-tree-print deepseq directory extra filepath ghc ghc-boot-th
-    ghc-exactprint ghc-paths hspec monad-memo mtl multistate parsec
-    pretty safe semigroups strict syb text transformers uniplate unsafe
-    yaml
-  ];
-  homepage = "https://github.com/lspitzner/brittany/";
-  description = "Haskell source code formatter";
-  license = stdenv.lib.licenses.agpl3;
-}
diff --git a/pkgs/development/tools/haskell/haskell-language-server/hls-explicit-imports-plugin.nix b/pkgs/development/tools/haskell/haskell-language-server/hls-explicit-imports-plugin.nix
new file mode 100644
index 00000000000..7c3b22cf1d0
--- /dev/null
+++ b/pkgs/development/tools/haskell/haskell-language-server/hls-explicit-imports-plugin.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, aeson, base, containers, deepseq, fetchgit, ghc
+, ghcide, haskell-lsp-types, hls-plugin-api, shake, stdenv, text
+, unordered-containers
+}:
+mkDerivation {
+  pname = "hls-explicit-imports-plugin";
+  version = "0.1.0.0";
+  src = fetchgit {
+    url = "https://github.com/haskell/haskell-language-server.git";
+    sha256 = "0gkzvjx4dgf53yicinqjshlj80gznx5khb62i7g3kqjr85iy0raa";
+    rev = "e4f677e1780fe85a02b99a09404a0a3c3ab5ce7c";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/plugins/hls-explicit-imports-plugin; echo source root reset to $sourceRoot";
+  libraryHaskellDepends = [
+    aeson base containers deepseq ghc ghcide haskell-lsp-types
+    hls-plugin-api shake text unordered-containers
+  ];
+  description = "Explicit imports plugin for Haskell Language Server";
+  license = stdenv.lib.licenses.asl20;
+}
diff --git a/pkgs/development/tools/haskell/haskell-language-server/hls-hlint-plugin.nix b/pkgs/development/tools/haskell/haskell-language-server/hls-hlint-plugin.nix
index 3a730dc7164..8bfcf034bd2 100644
--- a/pkgs/development/tools/haskell/haskell-language-server/hls-hlint-plugin.nix
+++ b/pkgs/development/tools/haskell/haskell-language-server/hls-hlint-plugin.nix
@@ -10,8 +10,8 @@ mkDerivation {
   version = "0.1.0.0";
   src = fetchgit {
     url = "https://github.com/haskell/haskell-language-server.git";
-    sha256 = "027fq6752024wzzq9izsilm5lkq9gmpxf82rixbimbijw0yk4pwj";
-    rev = "372a12e797069dc3ac4fa33dcaabe3b992999d7c";
+    sha256 = "0gkzvjx4dgf53yicinqjshlj80gznx5khb62i7g3kqjr85iy0raa";
+    rev = "e4f677e1780fe85a02b99a09404a0a3c3ab5ce7c";
     fetchSubmodules = true;
   };
   postUnpack = "sourceRoot+=/plugins/hls-hlint-plugin; echo source root reset to $sourceRoot";
diff --git a/pkgs/development/tools/haskell/haskell-language-server/hls-retrie-plugin.nix b/pkgs/development/tools/haskell/haskell-language-server/hls-retrie-plugin.nix
new file mode 100644
index 00000000000..7a44903f987
--- /dev/null
+++ b/pkgs/development/tools/haskell/haskell-language-server/hls-retrie-plugin.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, aeson, base, containers, deepseq, directory, extra
+, fetchgit, ghc, ghcide, hashable, haskell-lsp, haskell-lsp-types
+, hls-plugin-api, retrie, safe-exceptions, shake, stdenv, text
+, transformers, unordered-containers
+}:
+mkDerivation {
+  pname = "hls-retrie-plugin";
+  version = "0.1.0.0";
+  src = fetchgit {
+    url = "https://github.com/haskell/haskell-language-server.git";
+    sha256 = "0gkzvjx4dgf53yicinqjshlj80gznx5khb62i7g3kqjr85iy0raa";
+    rev = "e4f677e1780fe85a02b99a09404a0a3c3ab5ce7c";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/plugins/hls-retrie-plugin; echo source root reset to $sourceRoot";
+  libraryHaskellDepends = [
+    aeson base containers deepseq directory extra ghc ghcide hashable
+    haskell-lsp haskell-lsp-types hls-plugin-api retrie safe-exceptions
+    shake text transformers unordered-containers
+  ];
+  description = "Retrie integration plugin for Haskell Language Server";
+  license = stdenv.lib.licenses.asl20;
+}
diff --git a/pkgs/development/tools/haskell/haskell-language-server/hls-tactics-plugin.nix b/pkgs/development/tools/haskell/haskell-language-server/hls-tactics-plugin.nix
index 3d168622fb7..326e8ce0cdf 100644
--- a/pkgs/development/tools/haskell/haskell-language-server/hls-tactics-plugin.nix
+++ b/pkgs/development/tools/haskell/haskell-language-server/hls-tactics-plugin.nix
@@ -1,8 +1,8 @@
 { mkDerivation, aeson, base, checkers, containers, deepseq
 , directory, extra, fetchgit, filepath, fingertree, generic-lens
 , ghc, ghc-boot-th, ghc-exactprint, ghc-source-gen, ghcide
-, haskell-lsp, hie-bios, hls-plugin-api, hspec, lens, mtl
-, QuickCheck, refinery, retrie, shake, stdenv, syb, text
+, haskell-lsp, hie-bios, hls-plugin-api, hspec, hspec-discover
+, lens, mtl, QuickCheck, refinery, retrie, shake, stdenv, syb, text
 , transformers
 }:
 mkDerivation {
@@ -10,8 +10,8 @@ mkDerivation {
   version = "0.5.1.0";
   src = fetchgit {
     url = "https://github.com/haskell/haskell-language-server.git";
-    sha256 = "027fq6752024wzzq9izsilm5lkq9gmpxf82rixbimbijw0yk4pwj";
-    rev = "372a12e797069dc3ac4fa33dcaabe3b992999d7c";
+    sha256 = "0gkzvjx4dgf53yicinqjshlj80gznx5khb62i7g3kqjr85iy0raa";
+    rev = "e4f677e1780fe85a02b99a09404a0a3c3ab5ce7c";
     fetchSubmodules = true;
   };
   postUnpack = "sourceRoot+=/plugins/tactics; echo source root reset to $sourceRoot";
@@ -25,8 +25,8 @@ mkDerivation {
     base checkers containers ghc hie-bios hls-plugin-api hspec mtl
     QuickCheck
   ];
-  homepage = "https://github.com/isovector/hls-tactics-plugin#readme";
-  description = "LSP server for GHC";
+  testToolDepends = [ hspec-discover ];
+  description = "Tactics plugin for Haskell Language Server";
   license = "unknown";
   hydraPlatforms = stdenv.lib.platforms.none;
 }
diff --git a/pkgs/development/tools/haskell/haskell-language-server/update.sh b/pkgs/development/tools/haskell/haskell-language-server/update.sh
index fbd97b5488a..f14a97221ff 100755
--- a/pkgs/development/tools/haskell/haskell-language-server/update.sh
+++ b/pkgs/development/tools/haskell/haskell-language-server/update.sh
@@ -16,23 +16,6 @@ set -eo pipefail
 script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
 
 # ===========================
-# HLS maintainer's Brittany fork
-# ===========================
-
-# brittany derivation created with cabal2nix.
-brittany_derivation_file="${script_dir}/hls-brittany.nix"
-
-# This is the current revision of the brittany fork in Nixpkgs.
-brittany_old_version="$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$brittany_derivation_file")"
-
-brittany_new_version=$(curl --silent "https://api.github.com/repos/bubba/brittany/commits/ghc-8.10.1" | jq '.sha' --raw-output)
-
-echo "Updating haskell-language-server's brittany from old version $brittany_old_version to new version $brittany_new_version."
-echo "Running cabal2nix and outputting to ${brittany_derivation_file}..."
-
-cabal2nix --revision "$brittany_new_version" "https://github.com/bubba/brittany" > "$brittany_derivation_file"
-
-# ===========================
 # HLS
 # ===========================
 
@@ -43,7 +26,18 @@ hls_derivation_file="${script_dir}/default.nix"
 hls_old_version="$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$hls_derivation_file")"
 
 # This is the latest release version of hls on GitHub.
-hls_new_version=$(curl --silent "https://api.github.com/repos/haskell/haskell-language-server/commits/master" | jq '.sha' --raw-output)
+# Get all tag names, filter to the hls ones (no prefix like 'hls-plugin-api-'),
+# sort for the latest one and select just that
+hls_latest_release=$(curl -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/haskell/haskell-language-server/tags |
+  jq --raw-output 'map(.name) | .[]' |
+  grep '^[0-9]' |
+  sort --version-sort |
+  tail -n1)
+
+# Use this value instead for the very latest revision
+# hls_head=(curl --silent "https://api.github.com/repos/haskell/haskell-language-server/commits/master" | jq '.sha' --raw-output)
+
+hls_new_version=$hls_latest_release
 
 echo "Updating haskell-language-server from old version $hls_old_version to new version $hls_new_version."
 echo "Running cabal2nix and outputting to ${hls_derivation_file}..."
@@ -51,5 +45,7 @@ echo "Running cabal2nix and outputting to ${hls_derivation_file}..."
 cabal2nix --revision "$hls_new_version" "https://github.com/haskell/haskell-language-server.git" > "$hls_derivation_file"
 cabal2nix --revision "$hls_new_version" --subpath plugins/tactics "https://github.com/haskell/haskell-language-server.git" > "${script_dir}/hls-tactics-plugin.nix"
 cabal2nix --revision "$hls_new_version" --subpath plugins/hls-hlint-plugin "https://github.com/haskell/haskell-language-server.git" > "${script_dir}/hls-hlint-plugin.nix"
+cabal2nix --revision "$hls_new_version" --subpath plugins/hls-explicit-imports-plugin "https://github.com/haskell/haskell-language-server.git" > "${script_dir}/hls-explicit-imports-plugin.nix"
+cabal2nix --revision "$hls_new_version" --subpath plugins/hls-retrie-plugin "https://github.com/haskell/haskell-language-server.git" > "${script_dir}/hls-retrie-plugin.nix"
 
 echo "Finished."
diff --git a/pkgs/development/tools/hover/default.nix b/pkgs/development/tools/hover/default.nix
index 7b50f473d8f..cb638af43d6 100644
--- a/pkgs/development/tools/hover/default.nix
+++ b/pkgs/development/tools/hover/default.nix
@@ -1,10 +1,10 @@
 { lib
 , buildGoModule
 , buildFHSUserEnv
+, binutils
 , dejavu_fonts
-, pkgconfig
+, pkg-config
 , fetchFromGitHub
-, stdenv
 , roboto
 , writeScript
 , xorg
@@ -18,7 +18,7 @@
 
 let
   pname = "hover";
-  version = "0.43.0";
+  version = "0.46.1";
 
   libs = with xorg; [
     libX11.dev
@@ -36,23 +36,23 @@ let
   hover = buildGoModule rec {
     inherit pname version;
 
-    meta = with stdenv.lib; {
+    meta = with lib; {
       description = "A build tool to run Flutter applications on desktop";
       homepage = "https://github.com/go-flutter-desktop/hover";
       license = licenses.bsd3;
-      platforms = platforms.linux ++ platforms.darwin;
+      platforms = platforms.linux;
       maintainers = [ maintainers.ericdallo maintainers.thiagokokada];
     };
 
     subPackages = [ "." ];
 
-    vendorSha256 = "1wr08phjm87dxim47i8449rmq5wfscvjyz65g3lxmv468x209pam";
+    vendorSha256 = "1ixfmhp5g57hn23zyf85hy9jnyadayhdbalj4d0bx4q4p5c9qchi";
 
     src = fetchFromGitHub {
       rev = "v${version}";
       owner = "go-flutter-desktop";
       repo = pname;
-      sha256 = "0iw6sxg86wfdbihl2hxzn43ppdzl1p7g5b9wl8ac3xa9ix8759ax";
+      sha256 = "04f3dx2dcllfrw3ay1sbb72pj18ln7bxi9rrcaahqhsd7bn2ff9k";
     };
 
     nativeBuildInputs = [ addOpenGLRunpath makeWrapper ];
@@ -75,7 +75,7 @@ let
       chmod -R a+rx $out/share/assets
 
       wrapProgram "$out/bin/hover" \
-      --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath libs}
+      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath libs}
     '';
 
     postFixup = ''
@@ -87,12 +87,13 @@ in
 buildFHSUserEnv rec {
   name = pname;
   targetPkgs = pkgs: [
+    binutils
     dejavu_fonts
     flutter
     gcc
     go
     hover
-    pkgconfig
+    pkg-config
     roboto
   ] ++ libs;
 
diff --git a/pkgs/development/tools/icestorm/default.nix b/pkgs/development/tools/icestorm/default.nix
index 15ca059a880..feaea18be18 100644
--- a/pkgs/development/tools/icestorm/default.nix
+++ b/pkgs/development/tools/icestorm/default.nix
@@ -2,27 +2,31 @@
 , pkgconfig, libftdi1
 , python3, pypy3
 
-# PyPy yields large improvements in build time and runtime performance,
-# and IceStorm isn't intended to be used as a library other than by the
-# nextpnr build process (which is also sped up by using PyPy), so we
-# use it by default. See 18839e1 for more details.
+# PyPy yields large improvements in build time and runtime performance, and
+# IceStorm isn't intended to be used as a library other than by the nextpnr
+# build process (which is also sped up by using PyPy), so we use it by default.
+# See 18839e1 for more details.
+#
+# FIXME(aseipp, 3/1/2021): pypy seems a bit busted since stdenv upgrade to gcc
+# 10/binutils 2.34, so short-circuit this for now in passthru below (done so
+# that downstream overrides can't re-enable pypy and break their build somehow)
 , usePyPy ? stdenv.hostPlatform.system == "x86_64-linux"
 }:
 
 stdenv.mkDerivation rec {
   pname = "icestorm";
-  version = "2020.08.19";
+  version = "2020.12.04";
 
   passthru = rec {
-    pythonPkg = if usePyPy then pypy3 else python3;
+    pythonPkg = if (false && usePyPy) then pypy3 else python3;
     pythonInterp = pythonPkg.interpreter;
   };
 
   src = fetchFromGitHub {
     owner  = "YosysHQ";
     repo   = "icestorm";
-    rev    = "da52117ccd5b4147f64dc7345357ec5439cd7543";
-    sha256 = "072bl3vmvb06ry0ci3b1sfjpm3iigb874khzja4azcai969ybp4k";
+    rev    = "7afc64b480212c9ac2ce7cb1622731a69a7d212c";
+    sha256 = "0vxhqs2fampglg3xlfwb35229iv96kvlwp1gyxrdrmlpznhkqdrk";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/tools/impl/default.nix b/pkgs/development/tools/impl/default.nix
index 825aa0c1fa6..15c1361abd2 100644
--- a/pkgs/development/tools/impl/default.nix
+++ b/pkgs/development/tools/impl/default.nix
@@ -1,23 +1,20 @@
-{ buildGoPackage
-, lib
-, fetchFromGitHub
-}:
+{ buildGoModule, lib, fetchFromGitHub }:
 
-buildGoPackage rec {
-  pname = "impl-unstable";
-  version = "2019-11-19";
-  rev = "6b9658ad00c7fbd61a7b50c195754413f6c4142c";
-
-  goPackagePath = "github.com/josharian/impl";
+buildGoModule rec {
+  pname = "impl";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
-    inherit rev;
     owner = "josharian";
     repo = "impl";
-    sha256 = "1d4fvj7fgiykznx1z4fmcc06x5hsqp9wn62m5qm1ds8m0rjqaxwi";
+    rev = "v${version}";
+    sha256 = "0l21fkcgiaaf6ka91dmz8hx0l3nbp0kqi8p25kij1s5zb796z0dy";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = "0xkalwy02w62px01jdwwr3vwwsh50f22dsxf8lrrwmw6k0rq57zv";
+
+  # go: cannot find GOROOT directory: go
+  doCheck = false;
 
   meta = with lib; {
     description = "Generate method stubs for implementing an interface";
diff --git a/pkgs/development/tools/impl/deps.nix b/pkgs/development/tools/impl/deps.nix
deleted file mode 100644
index f028df3be2d..00000000000
--- a/pkgs/development/tools/impl/deps.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-  {
-    goPackagePath = "golang.org/x/mod";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/mod";
-      rev = "2addee1ccfb22349ab47953a3046338e461eb4d1";
-      sha256 = "1r0drcji290nlq9czibcfynpwxyqx8a5p4b7lam6wblbh2lasfb6";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "72e4a01eba4315301fd9ce00c8c2f492580ded8a";
-      sha256 = "0a8c7j4w784w441j3j3bh640vy1g6g214641qv485wyi0xj49anf";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/xerrors";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/xerrors";
-      rev = "9bdfabe68543c54f90421aeb9a60ef8061b5b544";
-      sha256 = "1yjfi1bk9xb81lqn85nnm13zz725wazvrx3b50hx19qmwg7a4b0c";
-    };
-  }
-]
diff --git a/pkgs/development/tools/knightos/kcc/default.nix b/pkgs/development/tools/knightos/kcc/default.nix
index 2ec7d7f2020..364d46de56d 100644
--- a/pkgs/development/tools/knightos/kcc/default.nix
+++ b/pkgs/development/tools/knightos/kcc/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
   pname = "kcc";
 
-  version = "4.0.0";
+  version = "4.0.4";
 
   src = fetchFromGitHub {
     owner = "KnightOS";
     repo = "kcc";
     rev = version;
-    sha256 = "1cd226nqbxq32mppkljavq1kb74jqfqns9r7fskszr42hbygynk4";
+    sha256 = "13sbpv8ynq8sjackv93jqxymk0bsy76c5fc0v29wz97v53q3izjp";
   };
 
   nativeBuildInputs = [ cmake bison flex ];
diff --git a/pkgs/development/tools/knightos/kimg/default.nix b/pkgs/development/tools/knightos/kimg/default.nix
index bd4320637dc..3f3f698693d 100644
--- a/pkgs/development/tools/knightos/kimg/default.nix
+++ b/pkgs/development/tools/knightos/kimg/default.nix
@@ -1,27 +1,25 @@
-{ stdenv, fetchFromGitHub, cmake, asciidoc, pkg-config, imagemagick }:
+{ stdenv, fetchFromGitHub, cmake, asciidoc }:
 
 stdenv.mkDerivation rec {
   pname = "kimg";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "KnightOS";
     repo = "kimg";
     rev = version;
-    sha256 = "00gj420m0jvhgm8kkslw8r69nl7r73bxrh6gqs2mx16ymcpkanpk";
+    sha256 = "040782k3rh2a5mhbfgr9gnbfis0wgxvi27vhfn7l35vrr12sw1l3";
   };
 
-  nativeBuildInputs = [ cmake asciidoc pkg-config ];
-
-  buildInputs = [ imagemagick ];
+  nativeBuildInputs = [ cmake asciidoc ];
 
   hardeningDisable = [ "format" ];
 
   meta = with stdenv.lib; {
     homepage    = "https://knightos.org/";
-    description = "Converts image formats supported by ImageMagick to the KnightOS image format";
+    description = "Converts image formats supported by stb_image to the KnightOS image format";
     license     = licenses.mit;
     maintainers = with maintainers; [ siraben ];
-    platforms   = platforms.unix;
+    platforms   = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/knightos/scas/default.nix b/pkgs/development/tools/knightos/scas/default.nix
index 2269c3781a5..b87650d5bf9 100644
--- a/pkgs/development/tools/knightos/scas/default.nix
+++ b/pkgs/development/tools/knightos/scas/default.nix
@@ -1,26 +1,26 @@
 { fetchFromGitHub, stdenv, cmake }:
 
-
 stdenv.mkDerivation rec {
   pname = "scas";
 
-  version = "0.4.6";
+  version = "0.5.3";
 
   src = fetchFromGitHub {
     owner = "KnightOS";
     repo = "scas";
     rev = version;
-    sha256 = "1c6s9nivbwgv0f8n7j73h54ydgqw5dcpq8l752dfrnqg3kv3nn0h";
+    sha256 = "0z6r07cl92kq860ddas5p88l990ih9cfqlzy5y4mk5hrmjzya60j";
   };
 
-  nativeBuildInputs = [ cmake ];
+  cmakeFlags = [ "-DSCAS_LIBRARY=1" ];
 
-  hardeningDisable = [ "format" ];
+  nativeBuildInputs = [ cmake ];
 
   meta = with stdenv.lib; {
     homepage    = "https://knightos.org/";
     description = "Assembler and linker for the Z80";
     license     = licenses.mit;
     maintainers = with maintainers; [ siraben ];
+    platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/knightos/z80e/default.nix b/pkgs/development/tools/knightos/z80e/default.nix
index 6aad8f687e7..d8f6a127403 100644
--- a/pkgs/development/tools/knightos/z80e/default.nix
+++ b/pkgs/development/tools/knightos/z80e/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "z80e";
-  version = "0.5.0";
+  version = "0.5.2";
 
   src = fetchFromGitHub {
     owner = "KnightOS";
     repo = "z80e";
     rev = version;
-    sha256 = "18nnip6nv1pq19bxgd07fv7ci3c5yj8d9cip97a4zsfab7bmbq6k";
+    sha256 = "0gdv17ynjd6zf3i4hkimd89xkrd8kxas3bf8d5sq54fdicapvkzc";
   };
 
   nativeBuildInputs = [ cmake knightos-scas ];
diff --git a/pkgs/development/tools/lazygit/default.nix b/pkgs/development/tools/lazygit/default.nix
index b04a42d57b6..1ede21609b4 100644
--- a/pkgs/development/tools/lazygit/default.nix
+++ b/pkgs/development/tools/lazygit/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "lazygit";
-  version = "0.23.7";
+  version = "0.24.2";
 
   src = fetchFromGitHub {
     owner = "jesseduffield";
     repo = pname;
     rev = "v${version}";
-    sha256 = "05s0rj785dm9dqr30ak5hi26qy0z2w71zljyln5is4frckxkcvng";
+    sha256 = "0hy13l1v2kcsn99dswlq1hl0ly18cal387zhnzjfqv51qng2q5kq";
   };
 
   vendorSha256 = null;
@@ -19,6 +19,7 @@ buildGoModule rec {
   meta = with stdenv.lib; {
     description = "Simple terminal UI for git commands";
     homepage = "https://github.com/jesseduffield/lazygit";
+    changelog = "https://github.com/jesseduffield/lazygit/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fpletz equirosa Br1ght0ne ];
   };
diff --git a/pkgs/development/tools/metals/default.nix b/pkgs/development/tools/metals/default.nix
index 0d8911e5b21..951e9a0ac2e 100644
--- a/pkgs/development/tools/metals/default.nix
+++ b/pkgs/development/tools/metals/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "metals";
-  version = "0.9.7";
+  version = "0.9.8";
 
   deps = stdenv.mkDerivation {
     name = "${pname}-deps-${version}";
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     '';
     outputHashMode = "recursive";
     outputHashAlgo = "sha256";
-    outputHash     = "0aky4vbbm5hi6jnd2n1aimqznbbaya05c7vdgaqhy3630ks3w4k9";
+    outputHash     = "1gn7v1478sqhz4hv53pgvaw2nqziyiavvhn5q152lkzyvghq08wk";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/misc/autoconf/2.69.nix b/pkgs/development/tools/misc/autoconf/2.69.nix
new file mode 100644
index 00000000000..500d80d4bb8
--- /dev/null
+++ b/pkgs/development/tools/misc/autoconf/2.69.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchurl, m4, perl }:
+
+stdenv.mkDerivation rec {
+  name = "autoconf-2.69";
+
+  src = fetchurl {
+    url = "mirror://gnu/autoconf/${name}.tar.xz";
+    sha256 = "113nlmidxy9kjr45kg9x3ngar4951mvag1js2a3j8nxcz34wxsv4";
+  };
+
+  nativeBuildInputs = [ m4 perl ];
+  buildInputs = [ m4 ];
+
+  # Work around a known issue in Cygwin.  See
+  # http://thread.gmane.org/gmane.comp.sysutils.autoconf.bugs/6822 for
+  # details.
+  # There are many test failures on `i386-pc-solaris2.11'.
+  #doCheck = ((!stdenv.isCygwin) && (!stdenv.isSunOS));
+  doCheck = false;
+
+  # Don't fixup "#! /bin/sh" in Autoconf, otherwise it will use the
+  # "fixed" path in generated files!
+  dontPatchShebangs = true;
+
+  enableParallelBuilding = true;
+
+  # Make the Autotest test suite run in parallel.
+  preCheck =''
+    export TESTSUITEFLAGS="-j$NIX_BUILD_CORES"
+  '';
+
+  doInstallCheck = false; # fails
+
+  meta = {
+    homepage = "https://www.gnu.org/software/autoconf/";
+    description = "Part of the GNU Build System";
+
+    longDescription = ''
+      GNU Autoconf is an extensible package of M4 macros that produce
+      shell scripts to automatically configure software source code
+      packages.  These scripts can adapt the packages to many kinds of
+      UNIX-like systems without manual user intervention.  Autoconf
+      creates a configuration script for a package from a template
+      file that lists the operating system features that the package
+      can use, in the form of M4 macro calls.
+    '';
+
+    license = stdenv.lib.licenses.gpl2Plus;
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/tools/misc/autoconf/default.nix b/pkgs/development/tools/misc/autoconf/default.nix
index 93add837290..57a92cee737 100644
--- a/pkgs/development/tools/misc/autoconf/default.nix
+++ b/pkgs/development/tools/misc/autoconf/default.nix
@@ -6,11 +6,11 @@
 # files.
 
 stdenv.mkDerivation rec {
-  name = "autoconf-2.69";
+  name = "autoconf-2.70";
 
   src = fetchurl {
     url = "mirror://gnu/autoconf/${name}.tar.xz";
-    sha256 = "113nlmidxy9kjr45kg9x3ngar4951mvag1js2a3j8nxcz34wxsv4";
+    sha256 = "1ipckz0wr2mvhj9n3ys54fmf2aksin6bhqvzl304bn6rc1w257ps";
   };
 
   nativeBuildInputs = [ m4 perl ];
@@ -20,8 +20,7 @@ stdenv.mkDerivation rec {
   # http://thread.gmane.org/gmane.comp.sysutils.autoconf.bugs/6822 for
   # details.
   # There are many test failures on `i386-pc-solaris2.11'.
-  #doCheck = ((!stdenv.isCygwin) && (!stdenv.isSunOS));
-  doCheck = false;
+  doCheck = ((!stdenv.isCygwin) && (!stdenv.isSunOS));
 
   # Don't fixup "#! /bin/sh" in Autoconf, otherwise it will use the
   # "fixed" path in generated files!
@@ -34,8 +33,6 @@ stdenv.mkDerivation rec {
     export TESTSUITEFLAGS="-j$NIX_BUILD_CORES"
   '';
 
-  doInstallCheck = false; # fails
-
   meta = {
     homepage = "https://www.gnu.org/software/autoconf/";
     description = "Part of the GNU Build System";
@@ -50,7 +47,7 @@ stdenv.mkDerivation rec {
       can use, in the form of M4 macro calls.
     '';
 
-    license = stdenv.lib.licenses.gpl2Plus;
+    license = stdenv.lib.licenses.gpl3Plus;
 
     platforms = stdenv.lib.platforms.all;
   };
diff --git a/pkgs/development/tools/misc/binutils/patches/2.31/always-search-rpath.patch b/pkgs/development/tools/misc/binutils/always-search-rpath.patch
index 2e9956e6b6e..2e9956e6b6e 100644
--- a/pkgs/development/tools/misc/binutils/patches/2.31/always-search-rpath.patch
+++ b/pkgs/development/tools/misc/binutils/always-search-rpath.patch
diff --git a/pkgs/development/tools/misc/binutils/patches/2.34/build-components-separately.patch b/pkgs/development/tools/misc/binutils/build-components-separately.patch
index 38fa4934a28..38fa4934a28 100644
--- a/pkgs/development/tools/misc/binutils/patches/2.34/build-components-separately.patch
+++ b/pkgs/development/tools/misc/binutils/build-components-separately.patch
diff --git a/pkgs/development/tools/misc/binutils/default.nix b/pkgs/development/tools/misc/binutils/default.nix
index 978ec3f2f99..55926852146 100644
--- a/pkgs/development/tools/misc/binutils/default.nix
+++ b/pkgs/development/tools/misc/binutils/default.nix
@@ -2,7 +2,7 @@
 , fetchFromGitHub, fetchurl, zlib, autoreconfHook, gettext
 # Enabling all targets increases output size to a multiple.
 , withAllTargets ? false, libbfd, libopcodes
-, enableShared ? true
+, enableShared ? !stdenv.hostPlatform.isStatic
 , noSysDirs
 , gold ? !stdenv.buildPlatform.isDarwin || stdenv.hostPlatform == stdenv.targetPlatform
 , bison ? null
@@ -19,13 +19,7 @@
 let
   reuseLibs = enableShared && withAllTargets;
 
-  # Remove gold-symbol-visibility patch when updating, the proper fix
-  # is now upstream.
-  # https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commitdiff;h=330b90b5ffbbc20c5de6ae6c7f60c40fab2e7a4f;hp=99181ccac0fc7d82e7dabb05dc7466e91f1645d3
-  version = "${minorVersion}${patchVersion}";
-  minorVersion = if stdenv.targetPlatform.isOr1k then "2.34" else "2.31";
-  patchVersion = if stdenv.targetPlatform.isOr1k then     "" else   ".1";
-
+  version = "2.34";
   basename = "binutils";
   # The targetPrefix prepended to binary names to allow multiple binuntils on the
   # PATH to both be usable.
@@ -37,49 +31,33 @@ let
     rev = "708acc851880dbeda1dd18aca4fd0a95b2573b36";
     sha256 = "1kdrz6fki55lm15rwwamn74fnqpy0zlafsida2zymk76n3656c63";
   };
-
-  # binutils sources not part of the bootstrap.
-  non-boot-src = (fetchurl {
+  # HACK to ensure that we preserve source from bootstrap binutils to not rebuild LLVM
+  normal-src = stdenv.__bootPackages.binutils-unwrapped.src or (fetchurl {
     url = "mirror://gnu/binutils/${basename}-${version}.tar.bz2";
-    sha256 = {
-      "2.31.1" = "1l34hn1zkmhr1wcrgf0d4z7r3najxnw3cx2y2fk7v55zjlk3ik7z";
-      "2.34"   = "1rin1f5c7wm4n3piky6xilcrpf2s0n3dd5vqq8irrxkcic3i1w49";
-    }.${version};
+    sha256 = "1rin1f5c7wm4n3piky6xilcrpf2s0n3dd5vqq8irrxkcic3i1w49";
   });
-
-  # HACK to ensure that we preserve source from bootstrap binutils to not rebuild LLVM
-  normal-src = stdenv.__bootPackages.binutils-unwrapped.src or non-boot-src;
-
-  # Platforms where we directly use the final source.
-  # Generally for cross-compiled platforms, where the boot source won't compile.
-  skipBootSrc = stdenv.targetPlatform.isOr1k;
-
-  # Select the specific source according to the platform in use.
-  src = if stdenv.targetPlatform.isVc4 then vc4-binutils-src
-    else if skipBootSrc then non-boot-src
-    else normal-src;
-
-  patchesDir = ./patches + "/${minorVersion}";
 in
 
 stdenv.mkDerivation {
   pname = targetPrefix + basename;
-  inherit src version;
+  inherit version;
+
+  src = if stdenv.targetPlatform.isVc4 then vc4-binutils-src else normal-src;
 
   patches = [
     # Make binutils output deterministic by default.
-    "${patchesDir}/deterministic.patch"
+    ./deterministic.patch
 
     # Bfd looks in BINDIR/../lib for some plugins that don't
     # exist. This is pointless (since users can't install plugins
     # there) and causes a cycle between the lib and bin outputs, so
     # get rid of it.
-    "${patchesDir}/no-plugins.patch"
+    ./no-plugins.patch
 
     # Help bfd choose between elf32-littlearm, elf32-littlearm-symbian, and
     # elf32-littlearm-vxworks in favor of the first.
     # https://github.com/NixOS/nixpkgs/pull/30484#issuecomment-345472766
-    "${patchesDir}/disambiguate-arm-targets.patch"
+    ./disambiguate-arm-targets.patch
 
     # For some reason bfd ld doesn't search DT_RPATH when cross-compiling. It's
     # not clear why this behavior was decided upon but it has the unfortunate
@@ -87,41 +65,28 @@ stdenv.mkDerivation {
     # shared objects when cross-compiling. Consequently, we are forced to
     # override this behavior, forcing ld to search DT_RPATH even when
     # cross-compiling.
-    "${patchesDir}/always-search-rpath.patch"
-  ]
-  # For version 2.31 exclusively
-  ++ lib.optionals (!stdenv.targetPlatform.isVc4 && minorVersion == "2.31") [
-    # https://sourceware.org/bugzilla/show_bug.cgi?id=22868
-    ./patches/2.31/gold-symbol-visibility.patch
-
-    # https://sourceware.org/bugzilla/show_bug.cgi?id=23428
-    # un-break features so linking against musl doesn't produce crash-only binaries
-    ./patches/2.31/0001-x86-Add-a-GNU_PROPERTY_X86_ISA_1_USED-note-if-needed.patch
-    ./patches/2.31/0001-x86-Properly-merge-GNU_PROPERTY_X86_ISA_1_USED.patch
-    ./patches/2.31/0001-x86-Properly-add-X86_ISA_1_NEEDED-property.patch
-  ]
-  ++ lib.optional stdenv.targetPlatform.isiOS ./support-ios.patch
-  ++ # This patch was suggested by Nick Clifton to fix
-     # https://sourceware.org/bugzilla/show_bug.cgi?id=16177
-     # It can be removed when that 7-year-old bug is closed.
-     # This binutils bug causes GHC to emit broken binaries on armv7, and
-     # indeed GHC will refuse to compile with a binutils suffering from it. See
-     # this comment for more information:
-     # https://gitlab.haskell.org/ghc/ghc/issues/4210#note_78333
-     lib.optional stdenv.targetPlatform.isAarch32 ./R_ARM_COPY.patch
-  ;
+    ./always-search-rpath.patch
+
+  ] ++ lib.optional stdenv.targetPlatform.isiOS ./support-ios.patch
+    ++ # This patch was suggested by Nick Clifton to fix
+       # https://sourceware.org/bugzilla/show_bug.cgi?id=16177
+       # It can be removed when that 7-year-old bug is closed.
+       # This binutils bug causes GHC to emit broken binaries on armv7, and
+       # indeed GHC will refuse to compile with a binutils suffering from it. See
+       # this comment for more information:
+       # https://gitlab.haskell.org/ghc/ghc/issues/4210#note_78333
+       lib.optional stdenv.targetPlatform.isAarch32 ./R_ARM_COPY.patch;
 
   outputs = [ "out" "info" "man" ];
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
   nativeBuildInputs = [
     bison
-  ] ++ lib.optionals (lib.versionAtLeast version "2.34") [
     perl
     texinfo
   ] ++ (lib.optionals stdenv.targetPlatform.isiOS [
     autoreconfHook
-  ]) ++ lib.optionals stdenv.targetPlatform.isVc4 [ texinfo flex ];
+  ]) ++ lib.optionals stdenv.targetPlatform.isVc4 [ flex ];
   buildInputs = [ zlib gettext ];
 
   inherit noSysDirs;
@@ -182,7 +147,7 @@ stdenv.mkDerivation {
   enableParallelBuilding = true;
 
   passthru = {
-    inherit targetPrefix patchesDir;
+    inherit targetPrefix;
   };
 
   meta = with lib; {
diff --git a/pkgs/development/tools/misc/binutils/patches/2.31/deterministic.patch b/pkgs/development/tools/misc/binutils/deterministic.patch
index 736e0aca6ce..736e0aca6ce 100644
--- a/pkgs/development/tools/misc/binutils/patches/2.31/deterministic.patch
+++ b/pkgs/development/tools/misc/binutils/deterministic.patch
diff --git a/pkgs/development/tools/misc/binutils/patches/2.31/disambiguate-arm-targets.patch b/pkgs/development/tools/misc/binutils/disambiguate-arm-targets.patch
index abbfa73da05..abbfa73da05 100644
--- a/pkgs/development/tools/misc/binutils/patches/2.31/disambiguate-arm-targets.patch
+++ b/pkgs/development/tools/misc/binutils/disambiguate-arm-targets.patch
diff --git a/pkgs/development/tools/misc/binutils/patches/2.34/no-plugins.patch b/pkgs/development/tools/misc/binutils/no-plugins.patch
index 68cf51b7dd3..68cf51b7dd3 100644
--- a/pkgs/development/tools/misc/binutils/patches/2.34/no-plugins.patch
+++ b/pkgs/development/tools/misc/binutils/no-plugins.patch
diff --git a/pkgs/development/tools/misc/binutils/patches/2.31/0001-x86-Add-a-GNU_PROPERTY_X86_ISA_1_USED-note-if-needed.patch b/pkgs/development/tools/misc/binutils/patches/2.31/0001-x86-Add-a-GNU_PROPERTY_X86_ISA_1_USED-note-if-needed.patch
deleted file mode 100644
index 5a047b0f070..00000000000
--- a/pkgs/development/tools/misc/binutils/patches/2.31/0001-x86-Add-a-GNU_PROPERTY_X86_ISA_1_USED-note-if-needed.patch
+++ /dev/null
@@ -1,517 +0,0 @@
-From 6737a6b34f4823deb7142f27b4074831a37ac1e1 Mon Sep 17 00:00:00 2001
-From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Fri, 20 Jul 2018 09:18:47 -0700
-Subject: [PATCH] x86: Add a GNU_PROPERTY_X86_ISA_1_USED note if needed
-
-When -z separate-code, which is enabled by default for Linux/x86, is
-used to create executable, ld won't place any data in the code-only
-PT_LOAD segment.  If there are no data sections placed before the
-code-only PT_LOAD segment, the program headers won't be mapped into
-any PT_LOAD segment.  When the executable tries to access it (based
-on the program header address passed in AT_PHDR), it will lead to
-segfault.  This patch inserts a GNU_PROPERTY_X86_ISA_1_USED note if
-there may be no data sections before the text section so that the
-first PT_LOAD segment won't be code-only and will contain the program
-header.
-
-Testcases are adjusted to either pass "-z noseparate-code" to ld or
-discard the .note.gnu.property section.  A Linux/x86 run-time test is
-added.
-
-bfd/
-
-	PR ld/23428
-	* elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): If the
-	separate code program header is needed, make sure that the first
-	read-only PT_LOAD segment has no code by adding a
-	GNU_PROPERTY_X86_ISA_1_USED note.
-
-ld/
-
-	PR ld/23428
-	* testsuite/ld-elf/linux-x86.S: New file.
-	* testsuite/ld-elf/linux-x86.exp: Likewise.
-	* testsuite/ld-elf/pr23428.c: Likewise.
-	* testsuite/ld-elf/sec64k.exp: Pass "-z noseparate-code" to ld
-	for Linux/x86 targets.
-	* testsuite/ld-i386/abs-iamcu.d: Likewise.
-	* testsuite/ld-i386/abs.d: Likewise.
-	* testsuite/ld-i386/pr12718.d: Likewise.
-	* testsuite/ld-i386/pr12921.d: Likewise.
-	* testsuite/ld-x86-64/abs-k1om.d: Likewise.
-	* testsuite/ld-x86-64/abs-l1om.d: Likewise.
-	* testsuite/ld-x86-64/abs.d: Likewise.
-	* testsuite/ld-x86-64/pr12718.d: Likewise.
-	* testsuite/ld-x86-64/pr12921.d: Likewise.
-	* testsuite/ld-linkonce/zeroeh.ld: Discard .note.gnu.property
-	section.
-	* testsuite/ld-scripts/print-memory-usage.t: Likewise.
-	* testsuite/ld-scripts/size-2.t: Likewise.
-	* testsuite/lib/ld-lib.exp (run_ld_link_exec_tests): Use ld
-	to create executable if language is "asm".
-
-(cherry picked from commit 241e64e3b42cd9eba514b8e0ad2ef39a337f10a5)
----
- bfd/elfxx-x86.c                              | 60 ++++++++++++++-----
- ld/testsuite/ld-elf/linux-x86.S              | 63 ++++++++++++++++++++
- ld/testsuite/ld-elf/linux-x86.exp            | 46 ++++++++++++++
- ld/testsuite/ld-elf/pr23428.c                | 43 +++++++++++++
- ld/testsuite/ld-elf/sec64k.exp               |  2 +
- ld/testsuite/ld-i386/abs-iamcu.d             |  2 +-
- ld/testsuite/ld-i386/abs.d                   |  2 +-
- ld/testsuite/ld-i386/pr12718.d               |  2 +-
- ld/testsuite/ld-i386/pr12921.d               |  2 +-
- ld/testsuite/ld-linkonce/zeroeh.ld           |  1 +
- ld/testsuite/ld-scripts/print-memory-usage.t |  2 +
- ld/testsuite/ld-scripts/size-2.t             |  1 +
- ld/testsuite/ld-x86-64/abs-k1om.d            |  2 +-
- ld/testsuite/ld-x86-64/abs-l1om.d            |  2 +-
- ld/testsuite/ld-x86-64/abs.d                 |  2 +-
- ld/testsuite/ld-x86-64/pr12718.d             |  2 +-
- ld/testsuite/ld-x86-64/pr12921.d             |  2 +-
- ld/testsuite/lib/ld-lib.exp                  |  5 +-
- 20 files changed, 248 insertions(+), 25 deletions(-)
- create mode 100644 ld/testsuite/ld-elf/linux-x86.S
- create mode 100644 ld/testsuite/ld-elf/linux-x86.exp
- create mode 100644 ld/testsuite/ld-elf/pr23428.c
-
-diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
-index a2497aab86..2e4ff88f1f 100644
---- a/bfd/elfxx-x86.c
-+++ b/bfd/elfxx-x86.c
-@@ -2524,6 +2524,7 @@ _bfd_x86_elf_link_setup_gnu_properties
-   const struct elf_backend_data *bed;
-   unsigned int class_align = ABI_64_P (info->output_bfd) ? 3 : 2;
-   unsigned int got_align;
-+  bfd_boolean has_text = FALSE;
- 
-   features = 0;
-   if (info->ibt)
-@@ -2538,24 +2539,59 @@ _bfd_x86_elf_link_setup_gnu_properties
-     if (bfd_get_flavour (pbfd) == bfd_target_elf_flavour
- 	&& bfd_count_sections (pbfd) != 0)
-       {
-+	if (!has_text)
-+	  {
-+	    /* Check if there is no non-empty text section.  */
-+	    sec = bfd_get_section_by_name (pbfd, ".text");
-+	    if (sec != NULL && sec->size != 0)
-+	      has_text = TRUE;
-+	  }
-+
- 	ebfd = pbfd;
- 
- 	if (elf_properties (pbfd) != NULL)
- 	  break;
-       }
- 
--  if (ebfd != NULL && features)
-+  bed = get_elf_backend_data (info->output_bfd);
-+
-+  htab = elf_x86_hash_table (info, bed->target_id);
-+  if (htab == NULL)
-+    return pbfd;
-+
-+  if (ebfd != NULL)
-     {
--      /* If features is set, add GNU_PROPERTY_X86_FEATURE_1_IBT and
--	 GNU_PROPERTY_X86_FEATURE_1_SHSTK.  */
--      prop = _bfd_elf_get_property (ebfd,
--				    GNU_PROPERTY_X86_FEATURE_1_AND,
--				    4);
--      prop->u.number |= features;
--      prop->pr_kind = property_number;
-+      prop = NULL;
-+      if (features)
-+	{
-+	  /* If features is set, add GNU_PROPERTY_X86_FEATURE_1_IBT and
-+	     GNU_PROPERTY_X86_FEATURE_1_SHSTK.  */
-+	  prop = _bfd_elf_get_property (ebfd,
-+					GNU_PROPERTY_X86_FEATURE_1_AND,
-+					4);
-+	  prop->u.number |= features;
-+	  prop->pr_kind = property_number;
-+	}
-+      else if (has_text
-+	       && elf_properties (ebfd) == NULL
-+	       && elf_tdata (info->output_bfd)->o->build_id.sec == NULL
-+	       && !htab->elf.dynamic_sections_created
-+	       && !info->traditional_format
-+	       && (info->output_bfd->flags & D_PAGED) != 0
-+	       && info->separate_code)
-+	{
-+	  /* If the separate code program header is needed, make sure
-+	     that the first read-only PT_LOAD segment has no code by
-+	     adding a GNU_PROPERTY_X86_ISA_1_USED note.  */
-+	  prop = _bfd_elf_get_property (ebfd,
-+					GNU_PROPERTY_X86_ISA_1_USED,
-+					4);
-+	  prop->u.number = GNU_PROPERTY_X86_ISA_1_486;
-+	  prop->pr_kind = property_number;
-+	}
- 
-       /* Create the GNU property note section if needed.  */
--      if (pbfd == NULL)
-+      if (prop != NULL && pbfd == NULL)
- 	{
- 	  sec = bfd_make_section_with_flags (ebfd,
- 					     NOTE_GNU_PROPERTY_SECTION_NAME,
-@@ -2581,12 +2617,6 @@ error_alignment:
- 
-   pbfd = _bfd_elf_link_setup_gnu_properties (info);
- 
--  bed = get_elf_backend_data (info->output_bfd);
--
--  htab = elf_x86_hash_table (info, bed->target_id);
--  if (htab == NULL)
--    return pbfd;
--
-   htab->r_info = init_table->r_info;
-   htab->r_sym = init_table->r_sym;
- 
-diff --git a/ld/testsuite/ld-elf/linux-x86.S b/ld/testsuite/ld-elf/linux-x86.S
-new file mode 100644
-index 0000000000..bdf40c6e01
---- /dev/null
-+++ b/ld/testsuite/ld-elf/linux-x86.S
-@@ -0,0 +1,63 @@
-+	.text
-+	.globl _start
-+	.type _start,@function
-+	.p2align 4
-+_start:
-+	xorl %ebp, %ebp
-+#ifdef __LP64__
-+	popq %rdi
-+	movq %rsp, %rsi
-+	andq  $~15, %rsp
-+#elif defined __x86_64__
-+	mov (%rsp),%edi
-+	addl $4,%esp
-+	movl %esp, %esi
-+	andl  $~15, %esp
-+#else
-+	popl %esi
-+	movl %esp, %ecx
-+	andl  $~15, %esp
-+
-+	subl $8,%esp
-+	pushl %ecx
-+	pushl %esi
-+#endif
-+
-+	call main
-+
-+	hlt
-+
-+	.type syscall,  @function
-+	.globl syscall
-+	.p2align 4
-+syscall:
-+#ifdef __x86_64__
-+	movq %rdi, %rax		/* Syscall number -> rax.  */
-+	movq %rsi, %rdi		/* shift arg1 - arg5.  */
-+	movq %rdx, %rsi
-+	movq %rcx, %rdx
-+	movq %r8, %r10
-+	movq %r9, %r8
-+	movq 8(%rsp),%r9	/* arg6 is on the stack.  */
-+	syscall			/* Do the system call.  */
-+#else
-+	push %ebp
-+	push %edi
-+	push %esi
-+	push %ebx
-+	mov 0x2c(%esp),%ebp
-+	mov 0x28(%esp),%edi
-+	mov 0x24(%esp),%esi
-+	mov 0x20(%esp),%edx
-+	mov 0x1c(%esp),%ecx
-+	mov 0x18(%esp),%ebx
-+	mov 0x14(%esp),%eax
-+	int $0x80
-+	pop %ebx
-+	pop %esi
-+	pop %edi
-+	pop %ebp
-+#endif
-+	ret			/* Return to caller.  */
-+	.size syscall, .-syscall
-+	.section .note.GNU-stack,"",@progbits
-diff --git a/ld/testsuite/ld-elf/linux-x86.exp b/ld/testsuite/ld-elf/linux-x86.exp
-new file mode 100644
-index 0000000000..36217c6fb4
---- /dev/null
-+++ b/ld/testsuite/ld-elf/linux-x86.exp
-@@ -0,0 +1,46 @@
-+# Expect script for simple native Linux/x86 tests.
-+#   Copyright (C) 2018 Free Software Foundation, Inc.
-+#
-+# This file is part of the GNU Binutils.
-+#
-+# This program is free software; you can redistribute it and/or modify
-+# it under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 3 of the License, or
-+# (at your option) any later version.
-+#
-+# This program is distributed in the hope that it will be useful,
-+# but WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+# GNU General Public License for more details.
-+#
-+# You should have received a copy of the GNU General Public License
-+# along with this program; if not, write to the Free Software
-+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
-+# MA 02110-1301, USA.
-+#
-+
-+# Test very simple native Linux/x86 programs with linux-x86.S.
-+if { ![isnative] || [which $CC] == 0 \
-+     || (![istarget "i?86-*-linux*"] \
-+         && ![istarget "x86_64-*-linux*"] \
-+         && ![istarget "amd64-*-linux*"]) } {
-+    return
-+}
-+
-+# Add $PLT_CFLAGS if PLT is expected.
-+global PLT_CFLAGS
-+# Add $NOPIE_CFLAGS and $NOPIE_LDFLAGS if non-PIE is required.
-+global NOPIE_CFLAGS NOPIE_LDFLAGS
-+
-+run_ld_link_exec_tests [list \
-+    [list \
-+	"Run PR ld/23428 test" \
-+	"--no-dynamic-linker -z separate-code" \
-+	"" \
-+	{ linux-x86.S pr23428.c } \
-+	"pr23428" \
-+	"pass.out" \
-+	"$NOPIE_CFLAGS -fno-asynchronous-unwind-tables" \
-+	"asm" \
-+    ] \
-+]
-diff --git a/ld/testsuite/ld-elf/pr23428.c b/ld/testsuite/ld-elf/pr23428.c
-new file mode 100644
-index 0000000000..3631ed7926
---- /dev/null
-+++ b/ld/testsuite/ld-elf/pr23428.c
-@@ -0,0 +1,43 @@
-+#include <unistd.h>
-+#include <link.h>
-+#include <syscall.h>
-+
-+#define STRING_COMMA_LEN(STR) (STR), (sizeof (STR) - 1)
-+
-+int
-+main (int argc, char **argv)
-+{
-+  char **ev = &argv[argc + 1];
-+  char **evp = ev;
-+  ElfW(auxv_t) *av;
-+  const ElfW(Phdr) *phdr = NULL;
-+  size_t phnum = 0;
-+  size_t loadnum = 0;
-+  int fd = STDOUT_FILENO;
-+  size_t i;
-+
-+  while (*evp++ != NULL)
-+    ;
-+
-+  av = (ElfW(auxv_t) *) evp;
-+
-+  for (; av->a_type != AT_NULL; ++av)
-+    switch (av->a_type)
-+      {
-+      case AT_PHDR:
-+	phdr = (const void *) av->a_un.a_val;
-+	break;
-+      case AT_PHNUM:
-+	phnum = av->a_un.a_val;
-+	break;
-+      }
-+
-+  for (i = 0; i < phnum; i++, phdr++)
-+    if (phdr->p_type == PT_LOAD)
-+      loadnum++;
-+
-+  syscall (SYS_write, fd, STRING_COMMA_LEN ("PASS\n"));
-+
-+  syscall (SYS_exit, !loadnum);
-+  return 0;
-+}
-diff --git a/ld/testsuite/ld-elf/sec64k.exp b/ld/testsuite/ld-elf/sec64k.exp
-index b58139e9dd..3909c0eaa1 100644
---- a/ld/testsuite/ld-elf/sec64k.exp
-+++ b/ld/testsuite/ld-elf/sec64k.exp
-@@ -177,6 +177,8 @@ if { ![istarget "d10v-*-*"]
-     foreach sfile $sfiles { puts $ofd "#source: $sfile" }
-     if { [istarget spu*-*-*] } {
- 	puts $ofd "#ld: --local-store 0:0"
-+    } elseif { [istarget "i?86-*-linux*"] || [istarget "x86_64-*-linux*"] } {
-+	puts $ofd "#ld: -z noseparate-code"
-     } else {
- 	puts $ofd "#ld:"
-     }
-diff --git a/ld/testsuite/ld-i386/abs-iamcu.d b/ld/testsuite/ld-i386/abs-iamcu.d
-index ac9beff2e5..aba7d6b03f 100644
---- a/ld/testsuite/ld-i386/abs-iamcu.d
-+++ b/ld/testsuite/ld-i386/abs-iamcu.d
-@@ -2,7 +2,7 @@
- #source: abs.s
- #source: zero.s
- #as: --32 -march=iamcu
--#ld: -m elf_iamcu
-+#ld: -m elf_iamcu -z noseparate-code
- #objdump: -rs -j .text
- 
- .*:     file format .*
-diff --git a/ld/testsuite/ld-i386/abs.d b/ld/testsuite/ld-i386/abs.d
-index e660aca524..191ee4456a 100644
---- a/ld/testsuite/ld-i386/abs.d
-+++ b/ld/testsuite/ld-i386/abs.d
-@@ -2,7 +2,7 @@
- #as: --32
- #source: abs.s
- #source: zero.s
--#ld: -melf_i386
-+#ld: -melf_i386 -z noseparate-code
- #objdump: -rs
- 
- .*:     file format .*
-diff --git a/ld/testsuite/ld-i386/pr12718.d b/ld/testsuite/ld-i386/pr12718.d
-index ec51540a42..7eba52d95e 100644
---- a/ld/testsuite/ld-i386/pr12718.d
-+++ b/ld/testsuite/ld-i386/pr12718.d
-@@ -1,6 +1,6 @@
- #name: PR ld/12718
- #as: --32
--#ld: -melf_i386
-+#ld: -melf_i386 -z noseparate-code
- #readelf: -S
- 
- There are 5 section headers, starting at offset 0x[0-9a-f]+:
-diff --git a/ld/testsuite/ld-i386/pr12921.d b/ld/testsuite/ld-i386/pr12921.d
-index e49079b3c8..ea2da3eb51 100644
---- a/ld/testsuite/ld-i386/pr12921.d
-+++ b/ld/testsuite/ld-i386/pr12921.d
-@@ -1,6 +1,6 @@
- #name: PR ld/12921
- #as: --32
--#ld: -melf_i386
-+#ld: -melf_i386 -z noseparate-code
- #readelf: -S --wide
- 
- There are 7 section headers, starting at offset 0x[0-9a-f]+:
-diff --git a/ld/testsuite/ld-linkonce/zeroeh.ld b/ld/testsuite/ld-linkonce/zeroeh.ld
-index b22eaa12c9..f89855a08f 100644
---- a/ld/testsuite/ld-linkonce/zeroeh.ld
-+++ b/ld/testsuite/ld-linkonce/zeroeh.ld
-@@ -2,4 +2,5 @@ SECTIONS {
-  .text 0xa00 : { *(.text); *(.gnu.linkonce.t.*) }
-  .gcc_except_table 0x2000 : { *(.gcc_except_table) }
-  .eh_frame 0x4000 : { *(.eh_frame) }
-+  /DISCARD/ : { *(.note.gnu.property) }
- }
-diff --git a/ld/testsuite/ld-scripts/print-memory-usage.t b/ld/testsuite/ld-scripts/print-memory-usage.t
-index 5ff057a5e3..6eda1d2dc4 100644
---- a/ld/testsuite/ld-scripts/print-memory-usage.t
-+++ b/ld/testsuite/ld-scripts/print-memory-usage.t
-@@ -11,4 +11,6 @@ SECTIONS
-     *(.data)
-     *(.rw)
-   }
-+
-+  /DISCARD/ : { *(.note.gnu.property) }
- }
-diff --git a/ld/testsuite/ld-scripts/size-2.t b/ld/testsuite/ld-scripts/size-2.t
-index 723863995e..c3c4eddab4 100644
---- a/ld/testsuite/ld-scripts/size-2.t
-+++ b/ld/testsuite/ld-scripts/size-2.t
-@@ -18,4 +18,5 @@ SECTIONS
-     LONG (SIZEOF (.tdata))
-     LONG (SIZEOF (.tbss))
-   } :image
-+  /DISCARD/ : { *(.note.gnu.property) }
- }
-diff --git a/ld/testsuite/ld-x86-64/abs-k1om.d b/ld/testsuite/ld-x86-64/abs-k1om.d
-index 2c26639fc0..6b0fde0eed 100644
---- a/ld/testsuite/ld-x86-64/abs-k1om.d
-+++ b/ld/testsuite/ld-x86-64/abs-k1om.d
-@@ -2,7 +2,7 @@
- #source: ../ld-i386/abs.s
- #source: ../ld-i386/zero.s
- #as: --64 -march=k1om
--#ld: -m elf_k1om
-+#ld: -m elf_k1om -z noseparate-code
- #objdump: -rs -j .text
- 
- .*:     file format .*
-diff --git a/ld/testsuite/ld-x86-64/abs-l1om.d b/ld/testsuite/ld-x86-64/abs-l1om.d
-index 1fb96d44b7..f87869f9d0 100644
---- a/ld/testsuite/ld-x86-64/abs-l1om.d
-+++ b/ld/testsuite/ld-x86-64/abs-l1om.d
-@@ -2,7 +2,7 @@
- #source: ../ld-i386/abs.s
- #source: ../ld-i386/zero.s
- #as: --64 -march=l1om
--#ld: -m elf_l1om
-+#ld: -m elf_l1om -z noseparate-code
- #objdump: -rs -j .text
- #target: x86_64-*-linux*
- 
-diff --git a/ld/testsuite/ld-x86-64/abs.d b/ld/testsuite/ld-x86-64/abs.d
-index b24b018639..d99ab4685d 100644
---- a/ld/testsuite/ld-x86-64/abs.d
-+++ b/ld/testsuite/ld-x86-64/abs.d
-@@ -1,7 +1,7 @@
- #name: Absolute non-overflowing relocs
- #source: ../ld-i386/abs.s
- #source: ../ld-i386/zero.s
--#ld:
-+#ld: -z noseparate-code
- #objdump: -rs
- 
- .*:     file format .*
-diff --git a/ld/testsuite/ld-x86-64/pr12718.d b/ld/testsuite/ld-x86-64/pr12718.d
-index 07d17325d0..2c503ffbaa 100644
---- a/ld/testsuite/ld-x86-64/pr12718.d
-+++ b/ld/testsuite/ld-x86-64/pr12718.d
-@@ -1,6 +1,6 @@
- #name: PR ld/12718
- #as: --64
--#ld: -melf_x86_64
-+#ld: -melf_x86_64 -z noseparate-code
- #readelf: -S --wide
- 
- There are 5 section headers, starting at offset 0x[0-9a-f]+:
-diff --git a/ld/testsuite/ld-x86-64/pr12921.d b/ld/testsuite/ld-x86-64/pr12921.d
-index 6fe6abee09..1162d55818 100644
---- a/ld/testsuite/ld-x86-64/pr12921.d
-+++ b/ld/testsuite/ld-x86-64/pr12921.d
-@@ -1,6 +1,6 @@
- #name: PR ld/12921
- #as: --64
--#ld: -melf_x86_64
-+#ld: -melf_x86_64 -z noseparate-code
- #readelf: -S --wide
- 
- There are 7 section headers, starting at offset 0x[0-9a-f]+:
-diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp
-index cfbefe9028..1095091882 100644
---- a/ld/testsuite/lib/ld-lib.exp
-+++ b/ld/testsuite/lib/ld-lib.exp
-@@ -1482,7 +1482,10 @@ proc run_ld_link_exec_tests { ldtests args } {
- 	    continue
- 	}
- 
--	if { [ string match "c++" $lang ] } {
-+	if { [ string match "asm" $lang ] } {
-+	    set link_proc ld_link
-+	    set link_cmd $ld
-+	} elseif { [ string match "c++" $lang ] } {
- 	    set link_proc ld_link
- 	    set link_cmd $CXX
- 	} else {
--- 
-2.20.1
-
diff --git a/pkgs/development/tools/misc/binutils/patches/2.31/0001-x86-Properly-add-X86_ISA_1_NEEDED-property.patch b/pkgs/development/tools/misc/binutils/patches/2.31/0001-x86-Properly-add-X86_ISA_1_NEEDED-property.patch
deleted file mode 100644
index ca50d9a57cd..00000000000
--- a/pkgs/development/tools/misc/binutils/patches/2.31/0001-x86-Properly-add-X86_ISA_1_NEEDED-property.patch
+++ /dev/null
@@ -1,137 +0,0 @@
-From 28a27bdbb9500797e6767f80c8128b09112aeed5 Mon Sep 17 00:00:00 2001
-From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Sat, 11 Aug 2018 06:41:33 -0700
-Subject: [PATCH] x86: Properly add X86_ISA_1_NEEDED property
-
-Existing properties may be removed during property merging.  We avoid
-adding X86_ISA_1_NEEDED property only if existing properties won't be
-removed.
-
-bfd/
-
-	PR ld/23428
-	* elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): Don't
-	add X86_ISA_1_NEEDED property only if existing properties won't
-	be removed.
-
-ld/
-
-	PR ld/23428
-	* testsuite/ld-elf/dummy.s: New file.
-	* testsuite/ld-elf/linux-x86.S: Add X86_FEATURE_1_AND property.
-	* testsuite/ld-elf/linux-x86.exp: Add dummy.s to pr23428.
-
-(cherry picked from commit ab9e342807d132182892de1be1a92d6e91a5c1da)
----
- bfd/elfxx-x86.c                   | 28 ++++++++++++++++++++++------
- ld/testsuite/ld-elf/dummy.s       |  1 +
- ld/testsuite/ld-elf/linux-x86.S   | 28 ++++++++++++++++++++++++++++
- ld/testsuite/ld-elf/linux-x86.exp |  2 +-
- 6 files changed, 66 insertions(+), 7 deletions(-)
- create mode 100644 ld/testsuite/ld-elf/dummy.s
-
-diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
-index 7ccfd25815..2d8f7b640b 100644
---- a/bfd/elfxx-x86.c
-+++ b/bfd/elfxx-x86.c
-@@ -2588,7 +2588,6 @@ _bfd_x86_elf_link_setup_gnu_properties
- 	  prop->pr_kind = property_number;
- 	}
-       else if (has_text
--	       && elf_properties (ebfd) == NULL
- 	       && elf_tdata (info->output_bfd)->o->build_id.sec == NULL
- 	       && !htab->elf.dynamic_sections_created
- 	       && !info->traditional_format
-@@ -2598,11 +2597,28 @@ _bfd_x86_elf_link_setup_gnu_properties
- 	  /* If the separate code program header is needed, make sure
- 	     that the first read-only PT_LOAD segment has no code by
- 	     adding a GNU_PROPERTY_X86_ISA_1_NEEDED note.  */
--	  prop = _bfd_elf_get_property (ebfd,
--					GNU_PROPERTY_X86_ISA_1_NEEDED,
--					4);
--	  prop->u.number = GNU_PROPERTY_X86_ISA_1_486;
--	  prop->pr_kind = property_number;
-+	  elf_property_list *list;
-+	  bfd_boolean need_property = TRUE;
-+
-+	  for (list = elf_properties (ebfd); list; list = list->next)
-+	    switch (list->property.pr_type)
-+	      {
-+	      case GNU_PROPERTY_STACK_SIZE:
-+	      case GNU_PROPERTY_NO_COPY_ON_PROTECTED:
-+	      case GNU_PROPERTY_X86_ISA_1_NEEDED:
-+		/* These properties won't be removed during merging.  */
-+		need_property = FALSE;
-+		break;
-+	      }
-+
-+	  if (need_property)
-+	    {
-+	      prop = _bfd_elf_get_property (ebfd,
-+					    GNU_PROPERTY_X86_ISA_1_NEEDED,
-+					    4);
-+	      prop->u.number = GNU_PROPERTY_X86_ISA_1_486;
-+	      prop->pr_kind = property_number;
-+	    }
- 	}
- 
-       /* Create the GNU property note section if needed.  */
-diff --git a/ld/testsuite/ld-elf/dummy.s b/ld/testsuite/ld-elf/dummy.s
-new file mode 100644
-index 0000000000..403f98000d
---- /dev/null
-+++ b/ld/testsuite/ld-elf/dummy.s
-@@ -0,0 +1 @@
-+# Dummy
-diff --git a/ld/testsuite/ld-elf/linux-x86.S b/ld/testsuite/ld-elf/linux-x86.S
-index bdf40c6e01..d94abc1106 100644
---- a/ld/testsuite/ld-elf/linux-x86.S
-+++ b/ld/testsuite/ld-elf/linux-x86.S
-@@ -61,3 +61,31 @@ syscall:
- 	ret			/* Return to caller.  */
- 	.size syscall, .-syscall
- 	.section .note.GNU-stack,"",@progbits
-+
-+	.section ".note.gnu.property", "a"
-+#ifdef __LP64__
-+	.p2align 3
-+#else
-+	.p2align 2
-+#endif
-+	.long 1f - 0f		/* name length */
-+	.long 5f - 2f		/* data length */
-+	.long 5			/* note type */
-+0:	.asciz "GNU"		/* vendor name */
-+1:
-+#ifdef __LP64__
-+	.p2align 3
-+#else
-+	.p2align 2
-+#endif
-+2:	.long 0xc0000002	/* pr_type.  */
-+	.long 4f - 3f		/* pr_datasz.  */
-+3:
-+	.long 0x2
-+4:
-+#ifdef __LP64__
-+	.p2align 3
-+#else
-+	.p2align 2
-+#endif
-+5:
-diff --git a/ld/testsuite/ld-elf/linux-x86.exp b/ld/testsuite/ld-elf/linux-x86.exp
-index 36217c6fb4..f6f5a80853 100644
---- a/ld/testsuite/ld-elf/linux-x86.exp
-+++ b/ld/testsuite/ld-elf/linux-x86.exp
-@@ -37,7 +37,7 @@ run_ld_link_exec_tests [list \
- 	"Run PR ld/23428 test" \
- 	"--no-dynamic-linker -z separate-code" \
- 	"" \
--	{ linux-x86.S pr23428.c } \
-+	{ linux-x86.S pr23428.c dummy.s } \
- 	"pr23428" \
- 	"pass.out" \
- 	"$NOPIE_CFLAGS -fno-asynchronous-unwind-tables" \
--- 
-2.20.1
-
diff --git a/pkgs/development/tools/misc/binutils/patches/2.31/0001-x86-Properly-merge-GNU_PROPERTY_X86_ISA_1_USED.patch b/pkgs/development/tools/misc/binutils/patches/2.31/0001-x86-Properly-merge-GNU_PROPERTY_X86_ISA_1_USED.patch
deleted file mode 100644
index 866d6db8ce2..00000000000
--- a/pkgs/development/tools/misc/binutils/patches/2.31/0001-x86-Properly-merge-GNU_PROPERTY_X86_ISA_1_USED.patch
+++ /dev/null
@@ -1,583 +0,0 @@
-From d55c3e36094f06bb1fb02f5eac19fdccf1d91f7e Mon Sep 17 00:00:00 2001
-From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Wed, 8 Aug 2018 06:09:15 -0700
-Subject: [PATCH] x86: Properly merge GNU_PROPERTY_X86_ISA_1_USED
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Without the GNU_PROPERTY_X86_ISA_1_USED property, all ISAs may be used.
-If a bit in the GNU_PROPERTY_X86_ISA_1_USED property is unset, the
-corresponding x86 instruction set isn’t used.  When merging properties
-from 2 input files and one input file doesn't have the
-GNU_PROPERTY_X86_ISA_1_USED property, the output file shouldn't have
-it neither.  This patch removes the GNU_PROPERTY_X86_ISA_1_USED
-property if an input file doesn't have it.
-
-This patch replaces the GNU_PROPERTY_X86_ISA_1_USED property with the
-GNU_PROPERTY_X86_ISA_1_NEEDED property which is the minimum ISA
-requirement.
-
-bfd/
-
-	PR ld/23486
-	* elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Remove
-	GNU_PROPERTY_X86_ISA_1_USED if an input file doesn't have it.
-	(_bfd_x86_elf_link_setup_gnu_properties): Adding the
-	GNU_PROPERTY_X86_ISA_1_NEEDED, instead of
-	GNU_PROPERTY_X86_ISA_1_USED, property.
-
-ld/
-
-	PR ld/23486
-	* testsuite/ld-i386/i386.exp: Run PR ld/23486 tests.
-	* testsuite/ld-x86-64/x86-64.exp: Likewise.
-	* testsuite/ld-i386/pr23486a.d: New file.
-	* testsuite/ld-i386/pr23486b.d: Likewise.
-	* testsuite/ld-x86-64/pr23486a-x32.d: Likewise.
-	* testsuite/ld-x86-64/pr23486a.d: Likewise.
-	* testsuite/ld-x86-64/pr23486a.s: Likewise.
-	* testsuite/ld-x86-64/pr23486b-x32.d: Likewise.
-	* testsuite/ld-x86-64/pr23486b.d: Likewise.
-	* testsuite/ld-x86-64/pr23486b.s: Likewise.
-	* testsuite/ld-i386/property-3.r: Remove "x86 ISA used".
-	* testsuite/ld-i386/property-4.r: Likewise.
-	* testsuite/ld-i386/property-5.r: Likewise.
-	* testsuite/ld-i386/property-x86-ibt3a.d: Likewise.
-	* testsuite/ld-i386/property-x86-ibt3b.d: Likewise.
-	* testsuite/ld-i386/property-x86-shstk3a.d: Likewise.
-	* testsuite/ld-i386/property-x86-shstk3b.d: Likewise.
-	* testsuite/ld-x86-64/property-3.r: Likewise.
-	* testsuite/ld-x86-64/property-4.r: Likewise.
-	* testsuite/ld-x86-64/property-5.r: Likewise.
-	* testsuite/ld-x86-64/property-x86-ibt3a-x32.d: Likewise.
-	* testsuite/ld-x86-64/property-x86-ibt3a.d: Likewise.
-	* testsuite/ld-x86-64/property-x86-ibt3b-x32.d: Likewise.
-	* testsuite/ld-x86-64/property-x86-ibt3b.d: Likewise.
-	* testsuite/ld-x86-64/property-x86-shstk3a-x32.d: Likewise.
-	* testsuite/ld-x86-64/property-x86-shstk3a.d: Likewise.
-	* testsuite/ld-x86-64/property-x86-shstk3b-x32.d: Likewise.
-	* testsuite/ld-x86-64/property-x86-shstk3b.d: Likewise.
-
-(cherry picked from commit f7309df20c4e787041cedc4a6aced89c15259e54)
----
- bfd/elfxx-x86.c                               | 25 ++++++++++++---
- ld/testsuite/ld-i386/i386.exp                 |  2 ++
- ld/testsuite/ld-i386/pr23486a.d               | 10 ++++++
- ld/testsuite/ld-i386/pr23486b.d               | 10 ++++++
- ld/testsuite/ld-i386/property-3.r             |  1 -
- ld/testsuite/ld-i386/property-4.r             |  1 -
- ld/testsuite/ld-i386/property-5.r             |  1 -
- ld/testsuite/ld-i386/property-x86-ibt3a.d     |  5 ++-
- ld/testsuite/ld-i386/property-x86-ibt3b.d     |  5 ++-
- ld/testsuite/ld-i386/property-x86-shstk3a.d   |  5 ++-
- ld/testsuite/ld-i386/property-x86-shstk3b.d   |  5 ++-
- ld/testsuite/ld-x86-64/pr23486a-x32.d         | 10 ++++++
- ld/testsuite/ld-x86-64/pr23486a.d             | 10 ++++++
- ld/testsuite/ld-x86-64/pr23486a.s             | 30 +++++++++++++++++
- ld/testsuite/ld-x86-64/pr23486b-x32.d         | 10 ++++++
- ld/testsuite/ld-x86-64/pr23486b.d             | 10 ++++++
- ld/testsuite/ld-x86-64/pr23486b.s             | 30 +++++++++++++++++
- ld/testsuite/ld-x86-64/property-3.r           |  1 -
- ld/testsuite/ld-x86-64/property-4.r           |  1 -
- ld/testsuite/ld-x86-64/property-5.r           |  1 -
- .../ld-x86-64/property-x86-ibt3a-x32.d        |  5 ++-
- ld/testsuite/ld-x86-64/property-x86-ibt3a.d   |  5 ++-
- .../ld-x86-64/property-x86-ibt3b-x32.d        |  5 ++-
- ld/testsuite/ld-x86-64/property-x86-ibt3b.d   |  5 ++-
- .../ld-x86-64/property-x86-shstk3a-x32.d      |  5 ++-
- ld/testsuite/ld-x86-64/property-x86-shstk3a.d |  5 ++-
- .../ld-x86-64/property-x86-shstk3b-x32.d      |  5 ++-
- ld/testsuite/ld-x86-64/property-x86-shstk3b.d |  5 ++-
- ld/testsuite/ld-x86-64/x86-64.exp             |  4 +++
- 31 files changed, 211 insertions(+), 47 deletions(-)
- create mode 100644 ld/testsuite/ld-i386/pr23486a.d
- create mode 100644 ld/testsuite/ld-i386/pr23486b.d
- create mode 100644 ld/testsuite/ld-x86-64/pr23486a-x32.d
- create mode 100644 ld/testsuite/ld-x86-64/pr23486a.d
- create mode 100644 ld/testsuite/ld-x86-64/pr23486a.s
- create mode 100644 ld/testsuite/ld-x86-64/pr23486b-x32.d
- create mode 100644 ld/testsuite/ld-x86-64/pr23486b.d
- create mode 100644 ld/testsuite/ld-x86-64/pr23486b.s
-
---- a/bfd/elfxx-x86.c
-+++ b/bfd/elfxx-x86.c
-@@ -2407,12 +2407,27 @@ _bfd_x86_elf_merge_gnu_properties (struct bfd_link_info *info,
-   switch (pr_type)
-     {
-     case GNU_PROPERTY_X86_ISA_1_USED:
-+      if (aprop == NULL || bprop == NULL)
-+	{
-+	  /* Only one of APROP and BPROP can be NULL.  */
-+	  if (aprop != NULL)
-+	    {
-+	      /* Remove this property since the other input file doesn't
-+		 have it.  */
-+	      aprop->pr_kind = property_remove;
-+	      updated = TRUE;
-+	    }
-+	  break;
-+	}
-+      goto or_property;
-+
-     case GNU_PROPERTY_X86_ISA_1_NEEDED:
-       if (aprop != NULL && bprop != NULL)
- 	{
-+or_property:
- 	  number = aprop->u.number;
- 	  aprop->u.number = number | bprop->u.number;
--	  /* Remove the property if ISA bits are empty.  */
-+	  /* Remove the property if all bits are empty.  */
- 	  if (aprop->u.number == 0)
- 	    {
- 	      aprop->pr_kind = property_remove;
-@@ -2428,14 +2443,14 @@ _bfd_x86_elf_merge_gnu_properties (struct bfd_link_info *info,
- 	    {
- 	      if (aprop->u.number == 0)
- 		{
--		  /* Remove APROP if ISA bits are empty.  */
-+		  /* Remove APROP if all bits are empty.  */
- 		  aprop->pr_kind = property_remove;
- 		  updated = TRUE;
- 		}
- 	    }
- 	  else
- 	    {
--	      /* Return TRUE if APROP is NULL and ISA bits of BPROP
-+	      /* Return TRUE if APROP is NULL and all bits of BPROP
- 		 aren't empty to indicate that BPROP should be added
- 		 to ABFD.  */
- 	      updated = bprop->u.number != 0;
-@@ -2582,9 +2597,9 @@ _bfd_x86_elf_link_setup_gnu_properties
- 	{
- 	  /* If the separate code program header is needed, make sure
- 	     that the first read-only PT_LOAD segment has no code by
--	     adding a GNU_PROPERTY_X86_ISA_1_USED note.  */
-+	     adding a GNU_PROPERTY_X86_ISA_1_NEEDED note.  */
- 	  prop = _bfd_elf_get_property (ebfd,
--					GNU_PROPERTY_X86_ISA_1_USED,
-+					GNU_PROPERTY_X86_ISA_1_NEEDED,
- 					4);
- 	  prop->u.number = GNU_PROPERTY_X86_ISA_1_486;
- 	  prop->pr_kind = property_number;
-diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp
-index 6d794fe653..78dad02579 100644
---- a/ld/testsuite/ld-i386/i386.exp
-+++ b/ld/testsuite/ld-i386/i386.exp
-@@ -462,6 +462,8 @@ run_dump_test "pr23189"
- run_dump_test "pr23194"
- run_dump_test "pr23372a"
- run_dump_test "pr23372b"
-+run_dump_test "pr23486a"
-+run_dump_test "pr23486b"
- 
- if { !([istarget "i?86-*-linux*"]
-        || [istarget "i?86-*-gnu*"]
-diff --git a/ld/testsuite/ld-i386/pr23486a.d b/ld/testsuite/ld-i386/pr23486a.d
-new file mode 100644
-index 0000000000..41a6dcf7d5
---- /dev/null
-+++ b/ld/testsuite/ld-i386/pr23486a.d
-@@ -0,0 +1,10 @@
-+#source: ../ld-x86-64/pr23486a.s
-+#source: ../ld-x86-64/pr23486b.s
-+#as: --32
-+#ld: -r -m elf_i386
-+#readelf: -n
-+
-+Displaying notes found in: .note.gnu.property
-+  Owner                 Data size	Description
-+  GNU                  0x0000000c	NT_GNU_PROPERTY_TYPE_0
-+      Properties: x86 ISA needed: i486, 586
-diff --git a/ld/testsuite/ld-i386/pr23486b.d b/ld/testsuite/ld-i386/pr23486b.d
-new file mode 100644
-index 0000000000..08019b7274
---- /dev/null
-+++ b/ld/testsuite/ld-i386/pr23486b.d
-@@ -0,0 +1,10 @@
-+#source: ../ld-x86-64/pr23486b.s
-+#source: ../ld-x86-64/pr23486a.s
-+#as: --32
-+#ld: -r -m elf_i386
-+#readelf: -n
-+
-+Displaying notes found in: .note.gnu.property
-+  Owner                 Data size	Description
-+  GNU                  0x0000000c	NT_GNU_PROPERTY_TYPE_0
-+      Properties: x86 ISA needed: i486, 586
-diff --git a/ld/testsuite/ld-i386/property-3.r b/ld/testsuite/ld-i386/property-3.r
-index 0ed91f5922..d03203c1e5 100644
---- a/ld/testsuite/ld-i386/property-3.r
-+++ b/ld/testsuite/ld-i386/property-3.r
-@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
-   Owner                 Data size	Description
-   GNU                  0x[0-9a-f]+	NT_GNU_PROPERTY_TYPE_0
-       Properties: stack size: 0x800000
--	x86 ISA used: 586, SSE
- 	x86 ISA needed: i486, 586
- #pass
-diff --git a/ld/testsuite/ld-i386/property-4.r b/ld/testsuite/ld-i386/property-4.r
-index cb2bc15d9a..da295eb6c7 100644
---- a/ld/testsuite/ld-i386/property-4.r
-+++ b/ld/testsuite/ld-i386/property-4.r
-@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
-   Owner                 Data size	Description
-   GNU                  0x[0-9a-f]+	NT_GNU_PROPERTY_TYPE_0
-       Properties: stack size: 0x800000
--	x86 ISA used: i486, 586, SSE
- 	x86 ISA needed: i486, 586, SSE
- #pass
-diff --git a/ld/testsuite/ld-i386/property-5.r b/ld/testsuite/ld-i386/property-5.r
-index 552965058c..e4141594b3 100644
---- a/ld/testsuite/ld-i386/property-5.r
-+++ b/ld/testsuite/ld-i386/property-5.r
-@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
-   Owner                 Data size	Description
-   GNU                  0x[0-9a-f]+	NT_GNU_PROPERTY_TYPE_0
-       Properties: stack size: 0x900000
--	x86 ISA used: i486, 586, SSE
- 	x86 ISA needed: i486, 586, SSE
- #pass
-diff --git a/ld/testsuite/ld-i386/property-x86-ibt3a.d b/ld/testsuite/ld-i386/property-x86-ibt3a.d
-index 4bb35b00fb..0aedea1614 100644
---- a/ld/testsuite/ld-i386/property-x86-ibt3a.d
-+++ b/ld/testsuite/ld-i386/property-x86-ibt3a.d
-@@ -6,6 +6,5 @@
- 
- Displaying notes found in: .note.gnu.property
-   Owner                 Data size	Description
--  GNU                  0x00000018	NT_GNU_PROPERTY_TYPE_0
--      Properties: x86 ISA used: i486, 586, SSE2, SSE3
--	x86 ISA needed: 586, SSE, SSE3, SSE4_1
-+  GNU                  0x0000000c	NT_GNU_PROPERTY_TYPE_0
-+      Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1
-diff --git a/ld/testsuite/ld-i386/property-x86-ibt3b.d b/ld/testsuite/ld-i386/property-x86-ibt3b.d
-index 418d58a8f7..bd69ac6478 100644
---- a/ld/testsuite/ld-i386/property-x86-ibt3b.d
-+++ b/ld/testsuite/ld-i386/property-x86-ibt3b.d
-@@ -6,6 +6,5 @@
- 
- Displaying notes found in: .note.gnu.property
-   Owner                 Data size	Description
--  GNU                  0x00000018	NT_GNU_PROPERTY_TYPE_0
--      Properties: x86 ISA used: i486, 586, SSE2, SSE3
--	x86 ISA needed: 586, SSE, SSE3, SSE4_1
-+  GNU                  0x0000000c	NT_GNU_PROPERTY_TYPE_0
-+      Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1
-diff --git a/ld/testsuite/ld-i386/property-x86-shstk3a.d b/ld/testsuite/ld-i386/property-x86-shstk3a.d
-index e261038f60..76d2a39f2c 100644
---- a/ld/testsuite/ld-i386/property-x86-shstk3a.d
-+++ b/ld/testsuite/ld-i386/property-x86-shstk3a.d
-@@ -6,6 +6,5 @@
- 
- Displaying notes found in: .note.gnu.property
-   Owner                 Data size	Description
--  GNU                  0x00000018	NT_GNU_PROPERTY_TYPE_0
--      Properties: x86 ISA used: i486, 586, SSE2, SSE3
--	x86 ISA needed: 586, SSE, SSE3, SSE4_1
-+  GNU                  0x0000000c	NT_GNU_PROPERTY_TYPE_0
-+      Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1
-diff --git a/ld/testsuite/ld-i386/property-x86-shstk3b.d b/ld/testsuite/ld-i386/property-x86-shstk3b.d
-index 25f3d2361e..e770ecffa5 100644
---- a/ld/testsuite/ld-i386/property-x86-shstk3b.d
-+++ b/ld/testsuite/ld-i386/property-x86-shstk3b.d
-@@ -6,6 +6,5 @@
- 
- Displaying notes found in: .note.gnu.property
-   Owner                 Data size	Description
--  GNU                  0x00000018	NT_GNU_PROPERTY_TYPE_0
--      Properties: x86 ISA used: i486, 586, SSE2, SSE3
--	x86 ISA needed: 586, SSE, SSE3, SSE4_1
-+  GNU                  0x0000000c	NT_GNU_PROPERTY_TYPE_0
-+      Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1
-diff --git a/ld/testsuite/ld-x86-64/pr23486a-x32.d b/ld/testsuite/ld-x86-64/pr23486a-x32.d
-new file mode 100644
-index 0000000000..6d9fa68cdb
---- /dev/null
-+++ b/ld/testsuite/ld-x86-64/pr23486a-x32.d
-@@ -0,0 +1,10 @@
-+#source: pr23486a.s
-+#source: pr23486b.s
-+#as: --x32
-+#ld: -r -m elf32_x86_64
-+#readelf: -n
-+
-+Displaying notes found in: .note.gnu.property
-+  Owner                 Data size	Description
-+  GNU                  0x0000000c	NT_GNU_PROPERTY_TYPE_0
-+      Properties: x86 ISA needed: i486, 586
-diff --git a/ld/testsuite/ld-x86-64/pr23486a.d b/ld/testsuite/ld-x86-64/pr23486a.d
-new file mode 100644
-index 0000000000..dc2b7bf760
---- /dev/null
-+++ b/ld/testsuite/ld-x86-64/pr23486a.d
-@@ -0,0 +1,10 @@
-+#source: pr23486a.s
-+#source: pr23486b.s
-+#as: --64 -defsym __64_bit__=1
-+#ld: -r -m elf_x86_64
-+#readelf: -n
-+
-+Displaying notes found in: .note.gnu.property
-+  Owner                 Data size	Description
-+  GNU                  0x00000010	NT_GNU_PROPERTY_TYPE_0
-+      Properties: x86 ISA needed: i486, 586
-diff --git a/ld/testsuite/ld-x86-64/pr23486a.s b/ld/testsuite/ld-x86-64/pr23486a.s
-new file mode 100644
-index 0000000000..a07d0c7ced
---- /dev/null
-+++ b/ld/testsuite/ld-x86-64/pr23486a.s
-@@ -0,0 +1,30 @@
-+	.section ".note.gnu.property", "a"
-+.ifdef __64_bit__
-+	.p2align 3
-+.else
-+	.p2align 2
-+.endif
-+	.long 1f - 0f		/* name length.  */
-+	.long 4f - 1f		/* data length.  */
-+	/* NT_GNU_PROPERTY_TYPE_0 */
-+	.long 5			/* note type.  */
-+0:
-+	.asciz "GNU"		/* vendor name.  */
-+1:
-+.ifdef __64_bit__
-+	.p2align 3
-+.else
-+	.p2align 2
-+.endif
-+	/* GNU_PROPERTY_X86_ISA_1_USED */
-+	.long 0xc0000000	/* pr_type.  */
-+	.long 3f - 2f		/* pr_datasz.  */
-+2:
-+	.long 0xa
-+3:
-+.ifdef __64_bit__
-+	.p2align 3
-+.else
-+	.p2align 2
-+.endif
-+4:
-diff --git a/ld/testsuite/ld-x86-64/pr23486b-x32.d b/ld/testsuite/ld-x86-64/pr23486b-x32.d
-new file mode 100644
-index 0000000000..0445e69d82
---- /dev/null
-+++ b/ld/testsuite/ld-x86-64/pr23486b-x32.d
-@@ -0,0 +1,10 @@
-+#source: pr23486b.s
-+#source: pr23486a.s
-+#as: --x32
-+#ld: -r -m elf32_x86_64
-+#readelf: -n
-+
-+Displaying notes found in: .note.gnu.property
-+  Owner                 Data size	Description
-+  GNU                  0x0000000c	NT_GNU_PROPERTY_TYPE_0
-+      Properties: x86 ISA needed: i486, 586
-diff --git a/ld/testsuite/ld-x86-64/pr23486b.d b/ld/testsuite/ld-x86-64/pr23486b.d
-new file mode 100644
-index 0000000000..dc2b7bf760
---- /dev/null
-+++ b/ld/testsuite/ld-x86-64/pr23486b.d
-@@ -0,0 +1,10 @@
-+#source: pr23486a.s
-+#source: pr23486b.s
-+#as: --64 -defsym __64_bit__=1
-+#ld: -r -m elf_x86_64
-+#readelf: -n
-+
-+Displaying notes found in: .note.gnu.property
-+  Owner                 Data size	Description
-+  GNU                  0x00000010	NT_GNU_PROPERTY_TYPE_0
-+      Properties: x86 ISA needed: i486, 586
-diff --git a/ld/testsuite/ld-x86-64/pr23486b.s b/ld/testsuite/ld-x86-64/pr23486b.s
-new file mode 100644
-index 0000000000..c5167eeb65
---- /dev/null
-+++ b/ld/testsuite/ld-x86-64/pr23486b.s
-@@ -0,0 +1,30 @@
-+	.section ".note.gnu.property", "a"
-+.ifdef __64_bit__
-+	.p2align 3
-+.else
-+	.p2align 2
-+.endif
-+	.long 1f - 0f		/* name length.  */
-+	.long 4f - 1f		/* data length.  */
-+	/* NT_GNU_PROPERTY_TYPE_0 */
-+	.long 5			/* note type.  */
-+0:
-+	.asciz "GNU"		/* vendor name.  */
-+1:
-+.ifdef __64_bit__
-+	.p2align 3
-+.else
-+	.p2align 2
-+.endif
-+	/* GNU_PROPERTY_X86_ISA_1_NEEDED */
-+	.long 0xc0000001	/* pr_type.  */
-+	.long 3f - 2f		/* pr_datasz.  */
-+2:
-+	.long 0x3
-+3:
-+.ifdef __64_bit__
-+	.p2align 3
-+.else
-+	.p2align 2
-+.endif
-+4:
-diff --git a/ld/testsuite/ld-x86-64/property-3.r b/ld/testsuite/ld-x86-64/property-3.r
-index 0ed91f5922..d03203c1e5 100644
---- a/ld/testsuite/ld-x86-64/property-3.r
-+++ b/ld/testsuite/ld-x86-64/property-3.r
-@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
-   Owner                 Data size	Description
-   GNU                  0x[0-9a-f]+	NT_GNU_PROPERTY_TYPE_0
-       Properties: stack size: 0x800000
--	x86 ISA used: 586, SSE
- 	x86 ISA needed: i486, 586
- #pass
-diff --git a/ld/testsuite/ld-x86-64/property-4.r b/ld/testsuite/ld-x86-64/property-4.r
-index cb2bc15d9a..da295eb6c7 100644
---- a/ld/testsuite/ld-x86-64/property-4.r
-+++ b/ld/testsuite/ld-x86-64/property-4.r
-@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
-   Owner                 Data size	Description
-   GNU                  0x[0-9a-f]+	NT_GNU_PROPERTY_TYPE_0
-       Properties: stack size: 0x800000
--	x86 ISA used: i486, 586, SSE
- 	x86 ISA needed: i486, 586, SSE
- #pass
-diff --git a/ld/testsuite/ld-x86-64/property-5.r b/ld/testsuite/ld-x86-64/property-5.r
-index 552965058c..e4141594b3 100644
---- a/ld/testsuite/ld-x86-64/property-5.r
-+++ b/ld/testsuite/ld-x86-64/property-5.r
-@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
-   Owner                 Data size	Description
-   GNU                  0x[0-9a-f]+	NT_GNU_PROPERTY_TYPE_0
-       Properties: stack size: 0x900000
--	x86 ISA used: i486, 586, SSE
- 	x86 ISA needed: i486, 586, SSE
- #pass
-diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d b/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d
-index 011426f5a4..4cec728dc7 100644
---- a/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d
-+++ b/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d
-@@ -6,6 +6,5 @@
- 
- Displaying notes found in: .note.gnu.property
-   Owner                 Data size	Description
--  GNU                  0x00000018	NT_GNU_PROPERTY_TYPE_0
--      Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
--	x86 ISA needed: i486, 586, SSE2, SSE3
-+  GNU                  0x0000000c	NT_GNU_PROPERTY_TYPE_0
-+      Properties: x86 ISA needed: i486, 586, SSE2, SSE3
-diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3a.d b/ld/testsuite/ld-x86-64/property-x86-ibt3a.d
-index 1b4229a037..a8df49a351 100644
---- a/ld/testsuite/ld-x86-64/property-x86-ibt3a.d
-+++ b/ld/testsuite/ld-x86-64/property-x86-ibt3a.d
-@@ -6,6 +6,5 @@
- 
- Displaying notes found in: .note.gnu.property
-   Owner                 Data size	Description
--  GNU                  0x00000020	NT_GNU_PROPERTY_TYPE_0
--      Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
--	x86 ISA needed: i486, 586, SSE2, SSE3
-+  GNU                  0x00000010	NT_GNU_PROPERTY_TYPE_0
-+      Properties: x86 ISA needed: i486, 586, SSE2, SSE3
-diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d b/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d
-index 290ed6abf1..c112626711 100644
---- a/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d
-+++ b/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d
-@@ -6,6 +6,5 @@
- 
- Displaying notes found in: .note.gnu.property
-   Owner                 Data size	Description
--  GNU                  0x00000018	NT_GNU_PROPERTY_TYPE_0
--      Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
--	x86 ISA needed: i486, 586, SSE2, SSE3
-+  GNU                  0x0000000c	NT_GNU_PROPERTY_TYPE_0
-+      Properties: x86 ISA needed: i486, 586, SSE2, SSE3
-diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3b.d b/ld/testsuite/ld-x86-64/property-x86-ibt3b.d
-index 1142e03272..f10dffdc2c 100644
---- a/ld/testsuite/ld-x86-64/property-x86-ibt3b.d
-+++ b/ld/testsuite/ld-x86-64/property-x86-ibt3b.d
-@@ -6,6 +6,5 @@
- 
- Displaying notes found in: .note.gnu.property
-   Owner                 Data size	Description
--  GNU                  0x00000020	NT_GNU_PROPERTY_TYPE_0
--      Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
--	x86 ISA needed: i486, 586, SSE2, SSE3
-+  GNU                  0x00000010	NT_GNU_PROPERTY_TYPE_0
-+      Properties: x86 ISA needed: i486, 586, SSE2, SSE3
-diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d b/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d
-index 819542d181..0147a3c7b6 100644
---- a/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d
-+++ b/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d
-@@ -6,6 +6,5 @@
- 
- Displaying notes found in: .note.gnu.property
-   Owner                 Data size	Description
--  GNU                  0x00000018	NT_GNU_PROPERTY_TYPE_0
--      Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
--	x86 ISA needed: i486, 586, SSE2, SSE3
-+  GNU                  0x0000000c	NT_GNU_PROPERTY_TYPE_0
-+      Properties: x86 ISA needed: i486, 586, SSE2, SSE3
-diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3a.d b/ld/testsuite/ld-x86-64/property-x86-shstk3a.d
-index 4c5d0e0a18..1f8c2dc929 100644
---- a/ld/testsuite/ld-x86-64/property-x86-shstk3a.d
-+++ b/ld/testsuite/ld-x86-64/property-x86-shstk3a.d
-@@ -6,6 +6,5 @@
- 
- Displaying notes found in: .note.gnu.property
-   Owner                 Data size	Description
--  GNU                  0x00000020	NT_GNU_PROPERTY_TYPE_0
--      Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
--	x86 ISA needed: i486, 586, SSE2, SSE3
-+  GNU                  0x00000010	NT_GNU_PROPERTY_TYPE_0
-+      Properties: x86 ISA needed: i486, 586, SSE2, SSE3
-diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d b/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d
-index ba181e0bc5..7ca2539ca5 100644
---- a/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d
-+++ b/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d
-@@ -6,6 +6,5 @@
- 
- Displaying notes found in: .note.gnu.property
-   Owner                 Data size	Description
--  GNU                  0x00000018	NT_GNU_PROPERTY_TYPE_0
--      Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
--	x86 ISA needed: i486, 586, SSE2, SSE3
-+  GNU                  0x0000000c	NT_GNU_PROPERTY_TYPE_0
-+      Properties: x86 ISA needed: i486, 586, SSE2, SSE3
-diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3b.d b/ld/testsuite/ld-x86-64/property-x86-shstk3b.d
-index 5216f385dd..f66a40e449 100644
---- a/ld/testsuite/ld-x86-64/property-x86-shstk3b.d
-+++ b/ld/testsuite/ld-x86-64/property-x86-shstk3b.d
-@@ -6,6 +6,5 @@
- 
- Displaying notes found in: .note.gnu.property
-   Owner                 Data size	Description
--  GNU                  0x00000020	NT_GNU_PROPERTY_TYPE_0
--      Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
--	x86 ISA needed: i486, 586, SSE2, SSE3
-+  GNU                  0x00000010	NT_GNU_PROPERTY_TYPE_0
-+      Properties: x86 ISA needed: i486, 586, SSE2, SSE3
-diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp
-index 6edb9e86f4..ae21e554ad 100644
---- a/ld/testsuite/ld-x86-64/x86-64.exp
-+++ b/ld/testsuite/ld-x86-64/x86-64.exp
-@@ -403,6 +403,10 @@ run_dump_test "pr23372a"
- run_dump_test "pr23372a-x32"
- run_dump_test "pr23372b"
- run_dump_test "pr23372b-x32"
-+run_dump_test "pr23486a"
-+run_dump_test "pr23486a-x32"
-+run_dump_test "pr23486b"
-+run_dump_test "pr23486b-x32"
- 
- if { ![istarget "x86_64-*-linux*"] && ![istarget "x86_64-*-nacl*"]} {
-     return
--- 
-2.20.1
-
diff --git a/pkgs/development/tools/misc/binutils/patches/2.31/build-components-separately.patch b/pkgs/development/tools/misc/binutils/patches/2.31/build-components-separately.patch
deleted file mode 100644
index d3cd0d2131c..00000000000
--- a/pkgs/development/tools/misc/binutils/patches/2.31/build-components-separately.patch
+++ /dev/null
@@ -1,178 +0,0 @@
-From bc09a9236f67e710d545ac11bcdac7b55dbcc1a0 Mon Sep 17 00:00:00 2001
-From: John Ericson <John.Ericson@Obsidian.Systems>
-Date: Thu, 12 Oct 2017 11:16:57 -0400
-Subject: [PATCH] Build components separately
-
----
- bfd/configure.ac     | 18 +++---------------
- opcodes/Makefile.am  | 17 +++++++++++++----
- opcodes/configure.ac | 45 ++++++---------------------------------------
- 3 files changed, 22 insertions(+), 58 deletions(-)
-
-diff --git a/bfd/configure.ac b/bfd/configure.ac
-index 9a183c1628..8728837384 100644
---- a/bfd/configure.ac
-+++ b/bfd/configure.ac
-@@ -241,31 +241,19 @@ AC_CACHE_CHECK(linker --as-needed support, bfd_cv_ld_as_needed,
- 
- LT_LIB_M
- 
--# When building a shared libbfd, link against the pic version of libiberty
--# so that apps that use libbfd won't need libiberty just to satisfy any
--# libbfd references.
--# We can't do that if a pic libiberty is unavailable since including non-pic
--# code would insert text relocations into libbfd.
- SHARED_LIBADD=
--SHARED_LDFLAGS=
-+SHARED_LDFLAGS=-liberty
- if test "$enable_shared" = "yes"; then
--changequote(,)dnl
--  x=`sed -n -e 's/^[ 	]*PICFLAG[ 	]*=[ 	]*//p' < ../libiberty/Makefile | sed -n '$p'`
--changequote([,])dnl
--  if test -n "$x"; then
--    SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty"
--  fi
--
- # More hacks to build DLLs on Windows.
-   case "${host}" in
-   *-*-cygwin*)
-     SHARED_LDFLAGS="-no-undefined"
--    SHARED_LIBADD="-L`pwd`/../libiberty -liberty -L`pwd`/../intl -lintl -lcygwin -lkernel32"
-+    SHARED_LIBADD="-liberty -lintl -lcygwin -lkernel32"
-   ;;
- 
-   # Hack to build or1k-src on OSX
-   or1k*-*-darwin*)
--    SHARED_LIBADD="-L`pwd`/../libiberty/pic -L`pwd`/../intl -liberty -lintl"
-+    SHARED_LIBADD="-liberty -lintl"
-   ;;
-   esac
- 
-diff --git a/opcodes/Makefile.am b/opcodes/Makefile.am
-index 925e7ff651..47b395c195 100644
---- a/opcodes/Makefile.am
-+++ b/opcodes/Makefile.am
-@@ -52,7 +52,7 @@ libopcodes_la_LDFLAGS += -rpath $(rpath_bfdlibdir)
- endif
- 
- # This is where bfd.h lives.
--BFD_H = ../bfd/bfd.h
-+BFD_H = $(BFDDIR)/bfd.h
- 
- BUILD_LIBS = @BUILD_LIBS@
- BUILD_LIB_DEPS = @BUILD_LIB_DEPS@
-@@ -303,7 +303,7 @@ OFILES = @BFD_MACHINES@
- # development.sh is used to determine -Werror default.
- CONFIG_STATUS_DEPENDENCIES = $(BFDDIR)/development.sh
- 
--AM_CPPFLAGS = -I. -I$(srcdir) -I../bfd -I$(INCDIR) -I$(BFDDIR) @HDEFINES@ @INCINTL@
-+AM_CPPFLAGS = -I. -I$(srcdir) -I$(INCDIR) -I$(BFDDIR) @HDEFINES@ @INCINTL@
- 
- disassemble.lo: disassemble.c
- if am__fastdepCC
-@@ -324,12 +324,21 @@ libopcodes_la_SOURCES =  dis-buf.c disassemble.c dis-init.c
- # old version of libbfd, or to pick up libbfd for the wrong architecture
- # if host != build. So for building with shared libraries we use a
- # hardcoded path to libbfd.so instead of relying on the entries in libbfd.la.
--libopcodes_la_DEPENDENCIES = $(OFILES) @SHARED_DEPENDENCIES@
-+libopcodes_la_DEPENDENCIES = $(OFILES) @SHARED_DEPENDENCIES@ libtool-soversion
- libopcodes_la_LIBADD = $(OFILES) @SHARED_LIBADD@
--libopcodes_la_LDFLAGS += -release `cat ../bfd/libtool-soversion` @SHARED_LDFLAGS@
-+libopcodes_la_LDFLAGS += -release `cat libtool-soversion` @SHARED_LDFLAGS@
- # Allow dependency tracking to work on all the source files.
- EXTRA_libopcodes_la_SOURCES = $(LIBOPCODES_CFILES)
- 
-+libtool-soversion:
-+	@echo "creating $@"
-+	bfd_soversion="$(VERSION)" ;\
-+	. $(BFDDIR)/development.sh ;\
-+	if test "$$development" = true ; then \
-+	  bfd_soversion="$(VERSION).$${bfd_version_date}" ;\
-+	fi ;\
-+	echo "$${bfd_soversion}" > $@
-+
- # libtool will build .libs/libopcodes.a.  We create libopcodes.a in
- # the build directory so that we don't have to convert all the
- # programs that use libopcodes.a simultaneously.  This is a hack which
-diff --git a/opcodes/configure.ac b/opcodes/configure.ac
-index b9f5eb8a4f..ef2c2152b7 100644
---- a/opcodes/configure.ac
-+++ b/opcodes/configure.ac
-@@ -89,6 +89,7 @@ AC_PROG_INSTALL
- 
- AC_CHECK_HEADERS(string.h strings.h stdlib.h limits.h)
- ACX_HEADER_STRING
-+GCC_HEADER_STDINT(bfd_stdint.h)
- 
- AC_CHECK_DECLS([basename, stpcpy])
- 
-@@ -134,61 +135,27 @@ AC_CACHE_CHECK(linker --as-needed support, bfd_cv_ld_as_needed,
- 
- LT_LIB_M
- 
--#Libs for generator progs
--if test "x$cross_compiling" = "xno"; then
--  BUILD_LIBS=../libiberty/libiberty.a
--  BUILD_LIB_DEPS=$BUILD_LIBS
--else
--  # if cross-compiling, assume that the system provides -liberty
--  # and that the version is compatible with new headers.
--  BUILD_LIBS=-liberty
--  BUILD_LIB_DEPS=
--fi
--BUILD_LIBS="$BUILD_LIBS $LIBINTL"
--BUILD_LIB_DEPS="$BUILD_LIB_DEPS $LIBINTL_DEP"
-+BUILD_LIBS="-liberty $LIBINTL"
-+BUILD_LIB_DEPS="$LIBINTL_DEP"
- 
- AC_SUBST(BUILD_LIBS)
- AC_SUBST(BUILD_LIB_DEPS)
- 
- # Horrible hacks to build DLLs on Windows and a shared library elsewhere.
- SHARED_LDFLAGS=
--SHARED_LIBADD=
-+SHARED_LIBADD=-liberty
- SHARED_DEPENDENCIES=
- if test "$enable_shared" = "yes"; then
--# When building a shared libopcodes, link against the pic version of libiberty
--# so that apps that use libopcodes won't need libiberty just to satisfy any
--# libopcodes references.
--# We can't do that if a pic libiberty is unavailable since including non-pic
--# code would insert text relocations into libopcodes.
- # Note that linking against libbfd as we do here, which is itself linked
- # against libiberty, may not satisfy all the libopcodes libiberty references
- # since libbfd may not pull in the entirety of libiberty.
--changequote(,)dnl
--  x=`sed -n -e 's/^[ 	]*PICFLAG[ 	]*=[ 	]*//p' < ../libiberty/Makefile | sed -n '$p'`
--changequote([,])dnl
--  if test -n "$x"; then
--    SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty"
--  fi
--
-   case "${host}" in
-     *-*-cygwin*)
-       SHARED_LDFLAGS="-no-undefined"
--      SHARED_LIBADD="-L`pwd`/../bfd -lbfd -L`pwd`/../libiberty -liberty -L`pwd`/../intl -lintl -lcygwin"
-+      SHARED_LIBADD="-lbfd -liberty -lintl -lcygwin"
-       ;;
--   *-*-darwin*)
--     SHARED_LIBADD="-Wl,`pwd`/../bfd/.libs/libbfd.dylib ${SHARED_LIBADD}"
--     SHARED_DEPENDENCIES="../bfd/libbfd.la"
--     ;;
-     *)
--      case "$host_vendor" in
--        hp)
--          SHARED_LIBADD="-Wl,`pwd`/../bfd/.libs/libbfd.sl ${SHARED_LIBADD}"
--	  ;;
--	*)
--          SHARED_LIBADD="-Wl,`pwd`/../bfd/.libs/libbfd.so ${SHARED_LIBADD}"
--	  ;;
--      esac
--      SHARED_DEPENDENCIES="../bfd/libbfd.la"
-+      SHARED_LIBADD="-lbfd ${SHARED_LIBADD}"
-       ;;
-   esac
- 
--- 
-2.14.2
-
diff --git a/pkgs/development/tools/misc/binutils/patches/2.31/gold-symbol-visibility.patch b/pkgs/development/tools/misc/binutils/patches/2.31/gold-symbol-visibility.patch
deleted file mode 100644
index 0fb05a482d1..00000000000
--- a/pkgs/development/tools/misc/binutils/patches/2.31/gold-symbol-visibility.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-commit 8564af037f5c4c6d2744a89497691359205b2bbc
-Author: Shea Levy <shea@shealevy.com>
-Date:   Mon Mar 19 10:52:40 2018 -0400
-
-    Revert "Allow multiply-defined absolute symbols when they have the same value."
-    
-    This reverts commit 5dc824ed42cd173c1525f5abc76f4091f11a4dbc.
-
-diff --git a/gold/ChangeLog-2017 b/gold/ChangeLog-2017
-index b2a47710b5..d7ca1b48c0 100644
---- a/gold/ChangeLog-2017
-+++ b/gold/ChangeLog-2017
-@@ -114,11 +114,6 @@
- 	(localedir): Define as @localedir@.
- 	(gnulocaledir, gettextsrcdir): Use @datarootdir@.
- 
--2017-11-28  Cary Coutant  <ccoutant@gmail.com>
--
--	* resolve.cc (Symbol_table::resolve): Allow multiply-defined absolute
--	symbols when they have the same value.
--
- 2017-11-28  Cary Coutant  <ccoutant@gmail.com>
- 
- 	* object.h (class Sized_relobj_file): Remove discarded_eh_frame_shndx_.
-diff --git a/gold/resolve.cc b/gold/resolve.cc
-index 4a5784cf8b..803576bfed 100644
---- a/gold/resolve.cc
-+++ b/gold/resolve.cc
-@@ -247,28 +247,18 @@ Symbol_table::resolve(Sized_symbol<size>* to,
- 		      Object* object, const char* version,
- 		      bool is_default_version)
- {
--  bool to_is_ordinary;
--  const unsigned int to_shndx = to->shndx(&to_is_ordinary);
--
-   // It's possible for a symbol to be defined in an object file
-   // using .symver to give it a version, and for there to also be
-   // a linker script giving that symbol the same version.  We
-   // don't want to give a multiple-definition error for this
-   // harmless redefinition.
-+  bool to_is_ordinary;
-   if (to->source() == Symbol::FROM_OBJECT
-       && to->object() == object
--      && to->is_defined()
-       && is_ordinary
-+      && to->is_defined()
-+      && to->shndx(&to_is_ordinary) == st_shndx
-       && to_is_ordinary
--      && to_shndx == st_shndx
--      && to->value() == sym.get_st_value())
--    return;
--
--  // Likewise for an absolute symbol defined twice with the same value.
--  if (!is_ordinary
--      && st_shndx == elfcpp::SHN_ABS
--      && !to_is_ordinary
--      && to_shndx == elfcpp::SHN_ABS
-       && to->value() == sym.get_st_value())
-     return;
- 
-@@ -360,8 +350,8 @@ Symbol_table::resolve(Sized_symbol<size>* to,
-       && (sym.get_st_bind() == elfcpp::STB_WEAK
- 	  || to->binding() == elfcpp::STB_WEAK)
-       && orig_st_shndx != elfcpp::SHN_UNDEF
-+      && to->shndx(&to_is_ordinary) != elfcpp::SHN_UNDEF
-       && to_is_ordinary
--      && to_shndx != elfcpp::SHN_UNDEF
-       && sym.get_st_size() != 0    // Ignore weird 0-sized symbols.
-       && to->symsize() != 0
-       && (sym.get_st_type() != to->type()
-@@ -372,7 +362,7 @@ Symbol_table::resolve(Sized_symbol<size>* to,
-     {
-       Symbol_location fromloc
-           = { object, orig_st_shndx, static_cast<off_t>(sym.get_st_value()) };
--      Symbol_location toloc = { to->object(), to_shndx,
-+      Symbol_location toloc = { to->object(), to->shndx(&to_is_ordinary),
- 				static_cast<off_t>(to->value()) };
-       this->candidate_odr_violations_[to->name()].insert(fromloc);
-       this->candidate_odr_violations_[to->name()].insert(toloc);
diff --git a/pkgs/development/tools/misc/binutils/patches/2.31/no-plugins.patch b/pkgs/development/tools/misc/binutils/patches/2.31/no-plugins.patch
deleted file mode 100644
index 9624b7976b7..00000000000
--- a/pkgs/development/tools/misc/binutils/patches/2.31/no-plugins.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff -ru binutils-2.27-orig/bfd/plugin.c binutils-2.27/bfd/plugin.c
---- binutils-2.27-orig/bfd/plugin.c	2016-10-14 17:46:30.791315555 +0200
-+++ binutils-2.27/bfd/plugin.c	2016-10-14 17:46:38.583298765 +0200
-@@ -333,6 +333,7 @@
-   if (plugin_program_name == NULL)
-     return found;
- 
-+#if 0
-   plugin_dir = concat (BINDIR, "/../lib/bfd-plugins", NULL);
-   p = make_relative_prefix (plugin_program_name,
- 			    BINDIR,
-@@ -364,6 +365,7 @@
-   free (p);
-   if (d)
-     closedir (d);
-+#endif
- 
-   return found;
- }
diff --git a/pkgs/development/tools/misc/binutils/patches/2.34/always-search-rpath.patch b/pkgs/development/tools/misc/binutils/patches/2.34/always-search-rpath.patch
deleted file mode 100644
index 2e9956e6b6e..00000000000
--- a/pkgs/development/tools/misc/binutils/patches/2.34/always-search-rpath.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/ld/genscripts.sh b/ld/genscripts.sh
-index b6940d376d..0feb1adfd0 100755
---- a/ld/genscripts.sh
-+++ b/ld/genscripts.sh
-@@ -125,6 +125,9 @@ if test "x$NATIVE" = "xyes" ; then
-   USE_LIBPATH=yes
- fi
- 
-+# TODO: why is this needed?
-+USE_LIBPATH=yes
-+
- # Set the library search path, for libraries named by -lfoo.
- # If LIB_PATH is defined (e.g., by Makefile) and non-empty, it is used.
- # Otherwise, the default is set here.
diff --git a/pkgs/development/tools/misc/binutils/patches/2.34/deterministic.patch b/pkgs/development/tools/misc/binutils/patches/2.34/deterministic.patch
deleted file mode 100644
index 736e0aca6ce..00000000000
--- a/pkgs/development/tools/misc/binutils/patches/2.34/deterministic.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ur orig/binutils-2.23.1/ld/ldlang.c binutils-2.23.1/ld/ldlang.c
---- orig/ld/ldlang.c
-+++ new/ld/ldlang.c
-@@ -3095,6 +3095,8 @@
-                           ldfile_output_machine))
-     einfo (_("%P%F:%s: can not set architecture: %E\n"), name);
- 
-+  link_info.output_bfd->flags |= BFD_DETERMINISTIC_OUTPUT;
-+
-   link_info.hash = bfd_link_hash_table_create (link_info.output_bfd);
-   if (link_info.hash == NULL)
-     einfo (_("%P%F: can not create hash table: %E\n"));
diff --git a/pkgs/development/tools/misc/binutils/patches/2.34/disambiguate-arm-targets.patch b/pkgs/development/tools/misc/binutils/patches/2.34/disambiguate-arm-targets.patch
deleted file mode 100644
index abbfa73da05..00000000000
--- a/pkgs/development/tools/misc/binutils/patches/2.34/disambiguate-arm-targets.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
-index 9f956d3..f5b61f1 100644
---- a/bfd/elf32-arm.c
-+++ b/bfd/elf32-arm.c
-@@ -19585,7 +19585,10 @@ elf32_arm_vxworks_final_write_processing (bfd *abfd, bfd_boolean linker)
- #undef  ELF_MAXPAGESIZE
- #define ELF_MAXPAGESIZE			0x1000
- 
-+/* Prioritize elf32-*arm (priority 1) over elf32-*arm-vxworks (priority 2) */
-+#define elf_match_priority 2
- #include "elf32-target.h"
-+#undef  elf_match_priority
- 
- 
- /* Merge backend specific data from an object file to the output
-@@ -19974,4 +19977,7 @@ elf32_arm_symbian_plt_sym_val (bfd_vma i, const asection *plt,
- #undef  ELF_MAXPAGESIZE
- #define ELF_MAXPAGESIZE			0x8000
- 
-+/* Prioritize elf32-*arm (priority 1) over elf32-*arm-symbian (priority 2) */
-+#define elf_match_priority 2
- #include "elf32-target.h"
-+#undef  elf_match_priority
diff --git a/pkgs/development/tools/misc/circleci-cli/default.nix b/pkgs/development/tools/misc/circleci-cli/default.nix
index ac8a4c8bb7c..ef04e78da60 100644
--- a/pkgs/development/tools/misc/circleci-cli/default.nix
+++ b/pkgs/development/tools/misc/circleci-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "circleci-cli";
-  version = "0.1.11508";
+  version = "0.1.11540";
 
   src = fetchFromGitHub {
     owner = "CircleCI-Public";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1m0jy7h9mksgj85r4jcpb5nabcs9vrfbrky31acwbibzjxxw9afg";
+    sha256 = "QtD+H59AlXp+3mXtUA44Dl+3xEvWdO8FybuBnL9sjBA=";
   };
 
-  vendorSha256 = "15l9f87vgspdsxhwqdm56z3dvrspc8k1bbyvhhhnvqf3fkiki2bw";
+  vendorSha256 = "fIk443TD4W0hhNuvFSZiV+fdxjelNsxh1+3qtw9yiZY=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/misc/clojure-lsp/default.nix b/pkgs/development/tools/misc/clojure-lsp/default.nix
index 75eb3e9d05c..68140904aad 100644
--- a/pkgs/development/tools/misc/clojure-lsp/default.nix
+++ b/pkgs/development/tools/misc/clojure-lsp/default.nix
@@ -1,24 +1,26 @@
-{ stdenv, fetchurl, jre }:
+{ stdenv, fetchurl, jre, makeWrapper }:
 
 stdenv.mkDerivation rec {
   pname = "clojure-lsp";
-  version = "20201207T142850";
+  version = "2021.01.03-00.42.23";
 
   src = fetchurl {
-    url = "https://github.com/snoe/clojure-lsp/releases/download/release-${version}/${pname}";
-    sha256 = "0fxplldpxslm7f5xxazkl09gsj0ysppaal72hmlqbdj6rbgxlrnk";
+    url = "https://github.com/clojure-lsp/clojure-lsp/releases/download/${version}/${pname}.jar";
+    sha256 = "06h69hwm3kl1nr94l43j91pnvkzgnacsg6a6cly4abrg041qhbv3";
   };
 
   dontUnpack = true;
 
+  buildInputs = [ makeWrapper ];
+
   installPhase = ''
-    install -Dm755 $src $out/bin/clojure-lsp
-    sed -i -e '1 s!java!${jre}/bin/java!' $out/bin/clojure-lsp
+    install -Dm644 $src $out/share/java/${pname}.jar
+    makeWrapper ${jre}/bin/java $out/bin/${pname} \
+      --add-flags "-Xmx2g" \
+      --add-flags "-server" \
+      --add-flags "-jar $out/share/java/${pname}.jar"
   '';
 
-  # verify shebang patch
-  installCheckPhase = "PATH= clojure-lsp --version";
-
   meta = with stdenv.lib; {
     description = "Language Server Protocol (LSP) for Clojure";
     homepage = "https://github.com/snoe/clojure-lsp";
@@ -26,5 +28,4 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.ericdallo ];
     platforms = jre.meta.platforms;
   };
-
 }
diff --git a/pkgs/development/tools/misc/docopts/default.nix b/pkgs/development/tools/misc/docopts/default.nix
new file mode 100644
index 00000000000..98a24ca5ebe
--- /dev/null
+++ b/pkgs/development/tools/misc/docopts/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  pname = "docopts";
+  version = "0.6.3-rc2";
+
+  src = fetchFromGitHub {
+    owner = "docopt";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-PmsTkPT/sf70MKYLhHvjCDb2o3VQ1k7d++RUW7rcoAg=";
+  };
+
+  goPackagePath = "github.com/docopt/${pname}";
+
+  goDeps = ./deps.nix;
+
+  subPackages = [ "./" ];
+
+  postInstall = ''
+    install -D -m 755 ./go/src/$goPackagePath/docopts.sh $out/bin/docopts.sh
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/docopt/${pname}";
+    description = "docopt CLI tool for shell scripting";
+    license = licenses.mit;
+    maintainers = [ maintainers.confus ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/tools/misc/docopts/deps.nix b/pkgs/development/tools/misc/docopts/deps.nix
new file mode 100644
index 00000000000..8cc1686de7d
--- /dev/null
+++ b/pkgs/development/tools/misc/docopts/deps.nix
@@ -0,0 +1,11 @@
+[
+  {
+    goPackagePath = "github.com/docopt/docopt-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/docopt/docopt.go";
+      rev = "ee0de3bc6815ee19d4a46c7eb90f829db0e014b1"; # "0.6.2";
+      sha256 = "sha256-0mCKIC5x7aauBL8ahXB9ExMfoTJl55HaafWWWPNRmUI=";
+    };
+  }
+]
diff --git a/pkgs/development/tools/misc/fswatch/default.nix b/pkgs/development/tools/misc/fswatch/default.nix
index 4a1d1288a4c..e32da3e67b7 100644
--- a/pkgs/development/tools/misc/fswatch/default.nix
+++ b/pkgs/development/tools/misc/fswatch/default.nix
@@ -23,6 +23,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook ] ++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices ];
   buildInputs = [ gettext libtool makeWrapper texinfo ];
 
+  enableParallelBuilding = true;
+
   meta = with stdenv.lib; {
     description = "A cross-platform file change monitor with multiple backends";
     homepage = "https://github.com/emcrisostomo/fswatch";
diff --git a/pkgs/development/tools/misc/hydra/default.nix b/pkgs/development/tools/misc/hydra/default.nix
index 7aa1e05a88e..1636ad6dd71 100644
--- a/pkgs/development/tools/misc/hydra/default.nix
+++ b/pkgs/development/tools/misc/hydra/default.nix
@@ -9,6 +9,9 @@
       rev = "79d34ed7c93af2daf32cf44ee0e3e0768f13f97c";
       sha256 = "1lql899430137l6ghnhyz0ivkayy83fdr087ck2wq3gf1jv8pccj";
     };
+    patches = [
+      ./hydra-nix-receiveContents.patch
+    ];
     nix = nixFlakes;
 
     tests = {
diff --git a/pkgs/development/tools/misc/hydra/hydra-nix-receiveContents.patch b/pkgs/development/tools/misc/hydra/hydra-nix-receiveContents.patch
new file mode 100644
index 00000000000..61957e2190c
--- /dev/null
+++ b/pkgs/development/tools/misc/hydra/hydra-nix-receiveContents.patch
@@ -0,0 +1,18 @@
+Update for https://github.com/NixOS/nix/commit/faa31f40
+
+--- a/src/hydra-queue-runner/nar-extractor.cc
++++ b/src/hydra-queue-runner/nar-extractor.cc
+@@ -48,9 +48,9 @@
+-    void receiveContents(unsigned char * data, size_t len) override
++    void receiveContents(std::string_view data) override
+     {
+         assert(expectedSize);
+         assert(curMember);
+         assert(hashSink);
+-        *curMember->fileSize += len;
+-        (*hashSink)(data, len);
++        *curMember->fileSize += data.size();
++        (*hashSink)(data);
+         if (curMember->contents) {
+-            curMember->contents->append((char *) data, len);
++            curMember->contents->append(data);
diff --git a/pkgs/development/tools/misc/mdctags/default.nix b/pkgs/development/tools/misc/mdctags/default.nix
new file mode 100644
index 00000000000..ac617021601
--- /dev/null
+++ b/pkgs/development/tools/misc/mdctags/default.nix
@@ -0,0 +1,22 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage {
+  pname = "mdctags";
+  version = "unstable-2020-06-11"; # v0.1.0 does not build with our rust version
+
+  src = fetchFromGitHub {
+    owner = "wsdjeg";
+    repo = "mdctags.rs";
+    rev = "0ed9736ea0c77e6ff5b560dda46f5ed0a983ed82";
+    sha256 = "14gryhgh9czlkfk75ml0620c6v8r74i6h3ykkkmc7gx2z8h1jxrb";
+  };
+
+  cargoSha256 = "01ap2w755vbr01nfqc5185mr2w9y32g0d4ahc3lw2x3m8qv0bh6x";
+
+  meta = {
+    description = "tags for markdown file";
+    homepage = "https://github.com/wsdjeg/mdctags.rs";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ pacien ];
+  };
+}
diff --git a/pkgs/development/tools/misc/openocd/default.nix b/pkgs/development/tools/misc/openocd/default.nix
index 5c8e95f7fd4..bf50a380d1f 100644
--- a/pkgs/development/tools/misc/openocd/default.nix
+++ b/pkgs/development/tools/misc/openocd/default.nix
@@ -10,12 +10,12 @@
 
 stdenv.mkDerivation rec {
   pname = "openocd";
-  version = "unstable-2020-11-11";
+  version = "0.11.0-rc1";
 
   src = fetchgit {
     url = "https://git.code.sf.net/p/openocd/code";
-    rev = "06c7a53f1fff20bcc4be9e63f83ae98664777f34";
-    sha256 = "0g0w7g94r88ylfpwswnhh8czlf5iqvd991ssn4gfcfd725lpdb01";
+    rev = "v${version}";
+    sha256 = "15g8qalyxhdp0imfrg8mxwnp0nimd836fc5laaavajw49gcm65m4";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/tools/misc/rtss/default.nix b/pkgs/development/tools/misc/rtss/default.nix
new file mode 100644
index 00000000000..505e6d23ef7
--- /dev/null
+++ b/pkgs/development/tools/misc/rtss/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "rtss";
+  version = "0.6.1";
+
+  src = fetchFromGitHub {
+    owner = "Freaky";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1936w161mkbcwicrxn51b42pgir5yjiw85s74lbfq70nddw18nyn";
+  };
+
+  cargoSha256 = "0nll5gg7fjh6sz3cscarknb0gaivmzkcxhwdb2li47r74rcbrj36";
+
+  meta = with lib; {
+    description = "Annotate output with relative durations between lines";
+    homepage = "https://github.com/Freaky/rtss";
+    license = licenses.mit;
+    maintainers = with maintainers; [ djanatyn ];
+  };
+}
diff --git a/pkgs/development/tools/misc/sccache/default.nix b/pkgs/development/tools/misc/sccache/default.nix
index 51c22199cc1..843059b3356 100644
--- a/pkgs/development/tools/misc/sccache/default.nix
+++ b/pkgs/development/tools/misc/sccache/default.nix
@@ -1,16 +1,16 @@
 { stdenv, fetchFromGitHub, cargo, rustc, rustPlatform, pkgconfig, glib, openssl, darwin }:
 
 rustPlatform.buildRustPackage rec {
-  version = "0.2.13";
+  version = "0.2.14";
   pname = "sccache";
 
   src = fetchFromGitHub {
     owner = "mozilla";
     repo = "sccache";
     rev = version;
-    sha256 = "19z9fdkn3bnr8q33m66h2by6bs6kmhw3a2lq2n8bywmnhrjwhxpw";
+    sha256 = "1ahg3cpb9pbgpdjglnfxm5c8r8qrgwaxwz5s394478ix7f9dxind";
   };
-  cargoSha256 = "1pm7il0x7i9mqx4vsmkcs8nq0dqr5ck3x3x7la6k39igaxn9vkwz";
+  cargoSha256 = "0jphs0frr399iywi9ch8g271igayzv1vi3wa4v3yx19xdxawlgda";
 
   cargoBuildFlags = [ "--features=all" ];
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/misc/sqitch/default.nix b/pkgs/development/tools/misc/sqitch/default.nix
index 66d40ae3127..5e3c3bc37c6 100644
--- a/pkgs/development/tools/misc/sqitch/default.nix
+++ b/pkgs/development/tools/misc/sqitch/default.nix
@@ -1,32 +1,46 @@
-{ name, stdenv, perl, makeWrapper, sqitchModule, databaseModule, shortenPerlShebang }:
+{ stdenv
+, lib
+, perlPackages
+, makeWrapper
+, shortenPerlShebang
+, mysqlSupport ? false
+, postgresqlSupport ? false
+}:
+
+let
+  sqitch = perlPackages.AppSqitch;
+  modules = with perlPackages; [ ]
+    ++ lib.optional mysqlSupport DBDmysql
+    ++ lib.optional postgresqlSupport DBDPg;
+in
 
 stdenv.mkDerivation {
-  name = "${name}-${sqitchModule.version}";
+  pname = "sqitch";
+  version = sqitch.version;
 
-  buildInputs = [ perl makeWrapper sqitchModule databaseModule ];
+  nativeBuildInputs = [ makeWrapper ] ++ lib.optional stdenv.isDarwin shortenPerlShebang;
 
-  src = sqitchModule;
+  src = sqitch;
   dontBuild = true;
 
-  nativeBuildInputs = stdenv.lib.optional stdenv.isDarwin shortenPerlShebang;
-
   installPhase = ''
     mkdir -p $out/bin
     for d in bin/sqitch etc lib share ; do
       # make sure dest alreay exists before symlink
       # this prevents installing a broken link into the path
-      if [ -e ${sqitchModule}/$d ]; then
-        ln -s ${sqitchModule}/$d $out/$d
+      if [ -e ${sqitch}/$d ]; then
+        ln -s ${sqitch}/$d $out/$d
       fi
     done
-  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+  '' + lib.optionalString stdenv.isDarwin ''
     shortenPerlShebang $out/bin/sqitch
   '';
   dontStrip = true;
-  postFixup = "wrapProgram $out/bin/sqitch --prefix PERL5LIB : $PERL5LIB";
+  postFixup = ''
+    wrapProgram $out/bin/sqitch --prefix PERL5LIB : ${perlPackages.makeFullPerlPath modules}
+  '';
 
   meta = {
-    platforms = stdenv.lib.platforms.unix;
-    inherit (sqitchModule.meta) license;
+    inherit (sqitch.meta) description homepage license platforms;
   };
 }
diff --git a/pkgs/development/tools/misc/terracognita/default.nix b/pkgs/development/tools/misc/terracognita/default.nix
index a4fb72666ca..29edccf496e 100644
--- a/pkgs/development/tools/misc/terracognita/default.nix
+++ b/pkgs/development/tools/misc/terracognita/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "terracognita";
-  version = "0.5.1";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "cycloidio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1z0vf3x46w3glwvq185hgmfkg7xfq31c7d3yjhh8qkwbhkx4bga4";
+    sha256 = "1f0wi5mlb9r7ncvyvgmcdfngxrzgbdv7hm2ckb8bwmzcki2h2255";
   };
 
-  vendorSha256 = "1dmv16v1c9sydbl1g69pgwvrhznd0a133giwrcbqi4cyg1fdb3sr";
+  vendorSha256 = "015r7zvah7lk5rbkaqhh2abbv19ky1in3ngzzrdvhbcqfns25iqr";
 
   doCheck = false;
 
@@ -22,6 +22,7 @@ buildGoModule rec {
   meta = with lib; {
     description = "Reads from existing Cloud Providers (reverse Terraform) and generates your infrastructure as code on Terraform configuration";
     homepage = "https://github.com/cycloidio/terracognita";
+    changelog = "https://github.com/cycloidio/terracognita/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
   };
diff --git a/pkgs/development/tools/misc/terraform-ls/default.nix b/pkgs/development/tools/misc/terraform-ls/default.nix
index 763cd4fcdb4..220042079fd 100644
--- a/pkgs/development/tools/misc/terraform-ls/default.nix
+++ b/pkgs/development/tools/misc/terraform-ls/default.nix
@@ -12,8 +12,6 @@ buildGoModule rec {
   };
   vendorSha256 = "8NdeCD558r0tV+ZR4MvLl5CzeNj8cUGtqwvJ2ZhS7mI=";
 
-  goPackagePath = "github.com/hashicorp/terraform-ls";
-
   # tests fail in sandbox mode because of trying to download stuff from releases.hashicorp.com
   doCheck = false;
 
diff --git a/pkgs/development/tools/misc/tokei/default.nix b/pkgs/development/tools/misc/tokei/default.nix
index baf14b933dc..0c366668c5c 100644
--- a/pkgs/development/tools/misc/tokei/default.nix
+++ b/pkgs/development/tools/misc/tokei/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tokei";
-  version = "12.0.4";
+  version = "12.1.1";
 
   src = fetchFromGitHub {
     owner = "XAMPPRocky";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0vj6xpp5ss82n1zxljy5893s8l1pdhar5xqay5vvglkp8bzblin6";
+    sha256 = "1n5n7lxlw6zhrdf4jbmqpyn9k02dpn4wqm93qgiin4i8j8bxwjw8";
   };
 
-  cargoSha256 = "02c2pdjzd49qznm1yj3rnli48267ajjdklrb1cpj0rhpirw4rh1j";
+  cargoSha256 = "0bph6n8i5dfy5ryr3nyd3pxyrl1032vvg63s4s44g01qjm9rfdvf";
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [
     libiconv darwin.apple_sdk.frameworks.Security
diff --git a/pkgs/development/tools/misc/unused/default.nix b/pkgs/development/tools/misc/unused/default.nix
new file mode 100644
index 00000000000..3e5f9c319ef
--- /dev/null
+++ b/pkgs/development/tools/misc/unused/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, rustPlatform, cmake }:
+rustPlatform.buildRustPackage rec {
+  pname = "unused";
+  version = "0.2.1";
+
+  src = fetchFromGitHub {
+    owner = "unused-code";
+    repo = pname;
+    rev = version;
+    sha256 = "06r6m7k570rdm9szghnp3g4r6ij0vp8apfanqzzxv2hd7gf8v62b";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  cargoSha256 = "1c0gj2wp0nydv0binxj3ikm5sm6y5z3pklp5b06dgvq02licz57a";
+
+  meta = with stdenv.lib; {
+    description = "A tool to identify potentially unused code";
+    homepage = "https://unused.codes";
+    license = licenses.mit;
+    maintainers = [ maintainers.lrworth ];
+  };
+}
diff --git a/pkgs/development/tools/mpfshell/default.nix b/pkgs/development/tools/mpfshell/default.nix
index 69048acb5ba..efe2b397f95 100644
--- a/pkgs/development/tools/mpfshell/default.nix
+++ b/pkgs/development/tools/mpfshell/default.nix
@@ -1,20 +1,23 @@
 { lib, python3Packages, fetchFromGitHub }:
 
 python3Packages.buildPythonPackage rec {
-  name = "mpfshell-${version}";
-  version = "0.8.1";
+  pname = "mpfshell-unstable";
+  version = "2020-04-11";
 
   src = fetchFromGitHub {
     owner = "wendlers";
     repo = "mpfshell";
-    rev = version;
-    sha256 = "1n4ap4yfii54y125f9n9krc0lc0drwg3hsq4z6g89xbswdx9sygr";
+    rev = "429469fcccbda770fddf7a4277f5db92b1217664";
+    sha256 = "0md6ih9vp65dacqy8gki3b2p4v76xb9ijqmxymk4b4f9z684x2m7";
   };
 
   propagatedBuildInputs = with python3Packages; [
     pyserial colorama websocket_client
   ];
 
+  doCheck = false;
+  pythonImportsCheck = [ "mp.mpfshell" ];
+
   meta = with lib; {
     homepage = "https://github.com/wendlers/mpfshell";
     description = "A simple shell based file explorer for ESP8266 Micropython based devices";
diff --git a/pkgs/development/tools/ocaml/cppo/default.nix b/pkgs/development/tools/ocaml/cppo/default.nix
index 63c169f045f..a0215fa8147 100644
--- a/pkgs/development/tools/ocaml/cppo/default.nix
+++ b/pkgs/development/tools/ocaml/cppo/default.nix
@@ -1,56 +1,65 @@
-{ stdenv, fetchFromGitHub, ocaml, findlib, ocamlbuild, dune }:
+{ stdenv, fetchurl, fetchFromGitHub, ocaml, findlib, ocamlbuild
+, buildDunePackage
+}:
+
 let
   pname = "cppo";
-  webpage = "https://github.com/ocaml-community/${pname}";
+
+  meta = with stdenv.lib; {
+    description = "The C preprocessor for OCaml";
+    longDescription = ''
+      Cppo is an equivalent of the C preprocessor targeted at the OCaml language and its variants.
+    '';
+    homepage = "https://github.com/ocaml-community/${pname}";
+    maintainers = [ maintainers.vbgl ];
+    license = licenses.bsd3;
+  };
+
 in
-assert stdenv.lib.versionAtLeast ocaml.version "3.12";
-
-let param =
-  if stdenv.lib.versionAtLeast ocaml.version "4.02" then
-   (if stdenv.lib.versionAtLeast ocaml.version "4.03" then {
-    version = "1.6.6";
-    sha256 = "1smcc0l6fh2n0y6bp96c69j5nw755jja99w0b206wx3yb2m4w2hs";
-   } else {
-    version = "1.6.5";
-    sha256 = "03c0amszy28shinvz61hm340jz446zz5763a1pdqlza36kwcj0p0";
-   }) // {
-    buildInputs = [ dune ];
-    extra = {
-      inherit (dune) installPhase;
-    };
-  } else {
-    version = "1.5.0";
-    sha256 = "1xqldjz9risndnabvadw41fdbi5sa2hl4fnqls7j9xfbby1izbg8";
-    extra = {
-      createFindlibDestdir = true;
-      makeFlags = [ "PREFIX=$(out)" ];
-      preBuild = ''
-        mkdir $out/bin
-      '';
-    };
-  }
-; in
 
-stdenv.mkDerivation ({
+if stdenv.lib.versionAtLeast ocaml.version "4.02" then
+
+buildDunePackage rec {
+  inherit pname;
+  version = "1.6.7";
+
+  useDune2 = true;
+
+  src = fetchurl {
+    url = "https://github.com/ocaml-community/cppo/releases/download/v${version}/cppo-v${version}.tbz";
+    sha256 = "17ajdzrnmnyfig3s6hinb56mcmhywbssxhsq32dz0v90dhz3wmfv";
+  };
+
+  doCheck = true;
 
-  name = "${pname}-${param.version}";
+  inherit meta;
+}
+
+else
+
+let version = "1.5.0"; in
+
+stdenv.mkDerivation {
+
+  name = "${pname}-${version}";
 
   src = fetchFromGitHub {
     owner = "mjambon";
     repo = pname;
-    rev = "v${param.version}";
-    inherit (param) sha256;
+    rev = "v${version}";
+    sha256 = "1xqldjz9risndnabvadw41fdbi5sa2hl4fnqls7j9xfbby1izbg8";
   };
 
-  buildInputs = [ ocaml findlib ocamlbuild ] ++ (param.buildInputs or []);
+  buildInputs = [ ocaml findlib ocamlbuild ];
 
-  meta = with stdenv.lib; {
-    description = "The C preprocessor for OCaml";
-    longDescription = ''
-      Cppo is an equivalent of the C preprocessor targeted at the OCaml language and its variants.
-    '';
-    homepage = webpage;
-    maintainers = [ maintainers.vbgl ];
-    license = licenses.bsd3;
-  };
-} // param.extra)
+  inherit meta;
+
+  createFindlibDestdir = true;
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  preBuild = ''
+    mkdir $out/bin
+  '';
+
+}
diff --git a/pkgs/development/tools/ocaml/cppo/ocamlbuild.nix b/pkgs/development/tools/ocaml/cppo/ocamlbuild.nix
new file mode 100644
index 00000000000..633dc6bc7bf
--- /dev/null
+++ b/pkgs/development/tools/ocaml/cppo/ocamlbuild.nix
@@ -0,0 +1,17 @@
+{ lib, buildDunePackage, cppo, ocamlbuild }:
+
+if !lib.versionAtLeast (lib.getVersion cppo) "1.6"
+then cppo
+else
+
+buildDunePackage rec {
+  pname = "cppo_ocamlbuild";
+
+  inherit (cppo) version useDune2 src;
+
+  propagatedBuildInputs = [ ocamlbuild ];
+
+  meta = cppo.meta // {
+    description = "Plugin to use cppo with ocamlbuild";
+  };
+}
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/camlp4.nix b/pkgs/development/tools/ocaml/js_of_ocaml/camlp4.nix
index e9e7f9d279e..a08aaac832e 100644
--- a/pkgs/development/tools/ocaml/js_of_ocaml/camlp4.nix
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/camlp4.nix
@@ -1,21 +1,19 @@
-{ stdenv, fetchFromGitHub, ocaml, findlib, dune, js_of_ocaml-compiler
+{ buildDunePackage, fetchFromGitHub, js_of_ocaml-compiler
 , camlp4, ocsigen_deriving
 }:
 
-stdenv.mkDerivation rec {
-	version = "3.2.1";
-	pname = "js_of_ocaml-camlp4"; 
+buildDunePackage rec {
+  version = "3.2.1";
+  pname = "js_of_ocaml-camlp4";
 
-	src = fetchFromGitHub {
-		owner = "ocsigen";
-		repo = "js_of_ocaml";
-		rev = version;
-		sha256 = "1v2hfq0ra9j07yz6pj6m03hrvgys4vmx0gclchv94yywpb2wc7ik";
-	};
+  src = fetchFromGitHub {
+    owner = "ocsigen";
+    repo = "js_of_ocaml";
+    rev = version;
+    sha256 = "1v2hfq0ra9j07yz6pj6m03hrvgys4vmx0gclchv94yywpb2wc7ik";
+  };
 
-	inherit (js_of_ocaml-compiler) installPhase meta;
+  inherit (js_of_ocaml-compiler) meta;
 
-	buildInputs = [ ocaml findlib dune camlp4 ocsigen_deriving ];
-
-	buildPhase = "dune build -p js_of_ocaml-camlp4";
+  buildInputs = [ camlp4 ocsigen_deriving ];
 }
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix b/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
index c0812c39a3e..f1398c2f7c7 100644
--- a/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
@@ -1,28 +1,28 @@
 { lib, fetchurl, buildDunePackage
-, ocaml, findlib, cmdliner, dune_2, cppo, yojson, ocaml-migrate-parsetree
+, cmdliner, cppo, yojson, ppxlib
 , menhir
 }:
 
 buildDunePackage rec {
-	pname = "js_of_ocaml-compiler";
-	version = "3.7.0";
-	useDune2 = true;
+  pname = "js_of_ocaml-compiler";
+  version = "3.8.0";
+  useDune2 = true;
 
-	src = fetchurl {
-		url = "https://github.com/ocsigen/js_of_ocaml/releases/download/${version}/js_of_ocaml-${version}.tbz";
-		sha256 = "0rw6cfkl3zlyav8q2w7grxxqjmg35mz5rgvmkiqb58nl4gmgzx6w";
-	};
+  src = fetchurl {
+    url = "https://github.com/ocsigen/js_of_ocaml/releases/download/${version}/js_of_ocaml-${version}.tbz";
+    sha256 = "069jyiayxcgwnips3adxb3d53mzd4rrq2783b9fgmsiyzm545lcy";
+  };
 
-	nativeBuildInputs = [ ocaml findlib dune_2 cppo menhir ];
+  nativeBuildInputs = [ cppo menhir ];
   buildInputs = [ cmdliner ];
 
   configurePlatforms = [];
-	propagatedBuildInputs = [ yojson ocaml-migrate-parsetree ];
+  propagatedBuildInputs = [ yojson ppxlib ];
 
-	meta = {
-		description = "Compiler from OCaml bytecode to Javascript";
-		license = lib.licenses.gpl2;
-		maintainers = [ lib.maintainers.vbgl ];
-		homepage = "https://ocsigen.org/js_of_ocaml/";
-	};
+  meta = {
+    description = "Compiler from OCaml bytecode to Javascript";
+    license = lib.licenses.gpl2;
+    maintainers = [ lib.maintainers.vbgl ];
+    homepage = "https://ocsigen.org/js_of_ocaml/";
+  };
 }
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/default.nix b/pkgs/development/tools/ocaml/js_of_ocaml/default.nix
index 9a57b590d6c..25826e94eb3 100644
--- a/pkgs/development/tools/ocaml/js_of_ocaml/default.nix
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/default.nix
@@ -1,16 +1,13 @@
-{ stdenv, ocaml, findlib, dune_2, js_of_ocaml-compiler
-, ocaml-migrate-parsetree, ppx_tools_versioned, uchar
+{ buildDunePackage, js_of_ocaml-compiler
+, ppxlib, uchar
 }:
 
-stdenv.mkDerivation {
-  pname = "js_of_ocaml"; 
+buildDunePackage {
+  pname = "js_of_ocaml";
 
-  inherit (js_of_ocaml-compiler) version src installPhase meta;
+  inherit (js_of_ocaml-compiler) version src meta useDune2;
 
-  buildInputs = [ findlib ocaml-migrate-parsetree ppx_tools_versioned ];
-  nativeBuildInputs = [ ocaml findlib dune_2 ];
+  buildInputs = [ ppxlib ];
 
-	propagatedBuildInputs = [ js_of_ocaml-compiler uchar ];
-
-	buildPhase = "dune build -p js_of_ocaml";
+  propagatedBuildInputs = [ js_of_ocaml-compiler uchar ];
 }
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/lwt.nix b/pkgs/development/tools/ocaml/js_of_ocaml/lwt.nix
index 2ad8578894f..81b1a41614b 100644
--- a/pkgs/development/tools/ocaml/js_of_ocaml/lwt.nix
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/lwt.nix
@@ -1,16 +1,13 @@
-{ stdenv, ocaml, findlib, dune_2, js_of_ocaml-compiler, js_of_ocaml-ppx
-, ocaml-migrate-parsetree, ppx_tools_versioned
+{ buildDunePackage, js_of_ocaml-compiler, js_of_ocaml-ppx
 , js_of_ocaml, ocaml_lwt, lwt_log
 }:
 
-stdenv.mkDerivation {
-	pname = "js_of_ocaml-lwt"; 
+buildDunePackage {
+  pname = "js_of_ocaml-lwt";
 
-	inherit (js_of_ocaml-compiler) version src installPhase meta;
+  inherit (js_of_ocaml-compiler) version src meta useDune2;
 
-	buildInputs = [ ocaml findlib dune_2 js_of_ocaml-ppx ocaml-migrate-parsetree ppx_tools_versioned ];
+  buildInputs = [ js_of_ocaml-ppx ];
 
-	propagatedBuildInputs = [ js_of_ocaml ocaml_lwt lwt_log ];
-
-	buildPhase = "dune build -p js_of_ocaml-lwt";
+  propagatedBuildInputs = [ js_of_ocaml ocaml_lwt lwt_log ];
 }
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/ocamlbuild.nix b/pkgs/development/tools/ocaml/js_of_ocaml/ocamlbuild.nix
index 50bcd69eb66..6abb1ac1b3a 100644
--- a/pkgs/development/tools/ocaml/js_of_ocaml/ocamlbuild.nix
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/ocamlbuild.nix
@@ -1,15 +1,11 @@
-{ stdenv, ocaml, findlib, dune_2, js_of_ocaml-compiler
+{ buildDunePackage, js_of_ocaml-compiler
 , ocamlbuild
 }:
 
-stdenv.mkDerivation {
-	pname = "js_of_ocaml-ocamlbuild"; 
+buildDunePackage {
+  pname = "js_of_ocaml-ocamlbuild";
 
-	inherit (js_of_ocaml-compiler) version src installPhase meta;
+  inherit (js_of_ocaml-compiler) version src meta useDune2;
 
-	buildInputs = [ ocaml findlib dune_2 ];
-
-	propagatedBuildInputs = [ ocamlbuild ];
-
-	buildPhase = "dune build -p js_of_ocaml-ocamlbuild";
+  propagatedBuildInputs = [ ocamlbuild ];
 }
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/ppx.nix b/pkgs/development/tools/ocaml/js_of_ocaml/ppx.nix
index 69783c7eada..b29ef435e46 100644
--- a/pkgs/development/tools/ocaml/js_of_ocaml/ppx.nix
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/ppx.nix
@@ -1,14 +1,12 @@
-{ stdenv, ocaml, findlib, dune_2, js_of_ocaml-compiler
-, ocaml-migrate-parsetree, ppx_tools_versioned
+{ buildDunePackage, js_of_ocaml-compiler
+, ppxlib
 , js_of_ocaml
 }:
 
-stdenv.mkDerivation {
-	pname = "js_of_ocaml-ppx"; 
+buildDunePackage {
+  pname = "js_of_ocaml-ppx";
 
-	inherit (js_of_ocaml-compiler) version src installPhase meta;
+  inherit (js_of_ocaml-compiler) version src meta useDune2;
 
-	buildInputs = [ ocaml findlib dune_2 ocaml-migrate-parsetree ppx_tools_versioned js_of_ocaml ];
-
-	buildPhase = "dune build -p js_of_ocaml-ppx";
+  buildInputs = [ ppxlib js_of_ocaml ];
 }
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/ppx_deriving_json.nix b/pkgs/development/tools/ocaml/js_of_ocaml/ppx_deriving_json.nix
index d3cc4e08787..d862d4bc67b 100644
--- a/pkgs/development/tools/ocaml/js_of_ocaml/ppx_deriving_json.nix
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/ppx_deriving_json.nix
@@ -1,15 +1,11 @@
-{ stdenv, ocaml, findlib, dune_2, js_of_ocaml-compiler
+{ buildDunePackage, js_of_ocaml-compiler
 , js_of_ocaml, ppxlib
 }:
 
-stdenv.mkDerivation {
-	pname = "js_of_ocaml-ppx_deriving_json";
+buildDunePackage {
+  pname = "js_of_ocaml-ppx_deriving_json";
 
-	inherit (js_of_ocaml-compiler) version src installPhase meta;
+  inherit (js_of_ocaml-compiler) version src meta useDune2;
 
-	buildInputs = [ ocaml findlib dune_2 ];
-
-	propagatedBuildInputs = [ js_of_ocaml ppxlib ];
-
-	buildPhase = "dune build -p js_of_ocaml-ppx_deriving_json";
+  propagatedBuildInputs = [ js_of_ocaml ppxlib ];
 }
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/tyxml.nix b/pkgs/development/tools/ocaml/js_of_ocaml/tyxml.nix
index fcfeeaf8d99..7082e4b86c9 100644
--- a/pkgs/development/tools/ocaml/js_of_ocaml/tyxml.nix
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/tyxml.nix
@@ -1,16 +1,14 @@
-{ stdenv, ocaml, findlib, dune_2, js_of_ocaml-compiler
-, js_of_ocaml-ppx, ocaml-migrate-parsetree, ppx_tools_versioned
+{ buildDunePackage, js_of_ocaml-compiler
+, js_of_ocaml-ppx
 , js_of_ocaml, reactivedata, tyxml
 }:
 
-stdenv.mkDerivation {
-	pname = "js_of_ocaml-tyxml";
+buildDunePackage {
+  pname = "js_of_ocaml-tyxml";
 
-	inherit (js_of_ocaml-compiler) version src installPhase meta;
+  inherit (js_of_ocaml-compiler) version src meta useDune2;
 
-	buildInputs = [ ocaml findlib dune_2 js_of_ocaml-ppx ocaml-migrate-parsetree ppx_tools_versioned ];
+  buildInputs = [ js_of_ocaml-ppx ];
 
-	propagatedBuildInputs = [ js_of_ocaml reactivedata tyxml ];
-
-	buildPhase = "dune build -p js_of_ocaml-tyxml";
+  propagatedBuildInputs = [ js_of_ocaml reactivedata tyxml ];
 }
diff --git a/pkgs/development/tools/ocaml/merlin/default.nix b/pkgs/development/tools/ocaml/merlin/default.nix
index 34fcc9bb6c3..ce168084f2c 100644
--- a/pkgs/development/tools/ocaml/merlin/default.nix
+++ b/pkgs/development/tools/ocaml/merlin/default.nix
@@ -4,7 +4,7 @@
 buildDunePackage rec {
   pname = "merlin";
 
-  inherit (dot-merlin-reader) src version;
+  inherit (dot-merlin-reader) src version useDune2;
 
   minimumOCamlVersion = "4.02.3";
 
diff --git a/pkgs/development/tools/ocaml/merlin/dot-merlin-reader.nix b/pkgs/development/tools/ocaml/merlin/dot-merlin-reader.nix
index 7af1b4513a8..009998a3f85 100644
--- a/pkgs/development/tools/ocaml/merlin/dot-merlin-reader.nix
+++ b/pkgs/development/tools/ocaml/merlin/dot-merlin-reader.nix
@@ -4,13 +4,15 @@ with ocamlPackages;
 
 buildDunePackage rec {
   pname = "dot-merlin-reader";
-  version = "3.4.0";
+  version = "3.4.2";
+
+  useDune2 = true;
 
   minimumOCamlVersion = "4.02.1";
 
   src = fetchurl {
     url = "https://github.com/ocaml/merlin/releases/download/v${version}/merlin-v${version}.tbz";
-    sha256 = "048rkpbvayksv8mgmkgi17vv0y9xplv7v2ww4d1hs7bkm5zzsvg2";
+    sha256 = "109ai1ggnkrwbzsl1wdalikvs1zx940m6n65jllxj68in6bvidz1";
   };
 
   buildInputs = [ yojson csexp result ];
diff --git a/pkgs/development/tools/ocaml/ocamlformat/generic.nix b/pkgs/development/tools/ocaml/ocamlformat/generic.nix
index 59c77f6e142..8fac26c2b3e 100644
--- a/pkgs/development/tools/ocaml/ocamlformat/generic.nix
+++ b/pkgs/development/tools/ocaml/ocamlformat/generic.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, fetchzip, ocamlPackages
+{ lib, fetchurl, fetchzip, ocaml-ng
 , version
 , tarballName ? "ocamlformat-${version}.tbz",
 }:
@@ -22,6 +22,12 @@ let src =
   }
 ; in
 
+let ocamlPackages =
+  if lib.versionAtLeast version "0.14.3"
+  then ocaml-ng.ocamlPackages
+  else ocaml-ng.ocamlPackages_4_07
+; in
+
 with ocamlPackages;
 
 buildDunePackage rec {
diff --git a/pkgs/development/tools/ocaml/utop/default.nix b/pkgs/development/tools/ocaml/utop/default.nix
index ac7cd4f4dbb..2c4c330b286 100644
--- a/pkgs/development/tools/ocaml/utop/default.nix
+++ b/pkgs/development/tools/ocaml/utop/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, ocaml, findlib, dune
+{ stdenv, fetchurl, ocaml, findlib
 , lambdaTerm, cppo, makeWrapper, buildDunePackage
 }:
 
@@ -8,11 +8,13 @@ else
 
 buildDunePackage rec {
   pname = "utop";
-  version = "2.4.3";
+  version = "2.6.0";
+
+  useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/ocaml-community/utop/releases/download/${version}/utop-${version}.tbz";
-    sha256 = "107al0l3x4a5kkjka7glmhsqlm7pwzzc6shspiv5gsjb49pblc2f";
+    sha256 = "17n9igl74xcvj0mzdh2ybda29f2m48a5lj4yf8lrdqr7vg0982jd";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/packer/default.nix b/pkgs/development/tools/packer/default.nix
index b44f50a37ad..8570e10a07c 100644
--- a/pkgs/development/tools/packer/default.nix
+++ b/pkgs/development/tools/packer/default.nix
@@ -1,7 +1,7 @@
 { stdenv, buildGoPackage, fetchFromGitHub }:
 buildGoPackage rec {
   pname = "packer";
-  version = "1.6.5";
+  version = "1.6.6";
 
   goPackagePath = "github.com/hashicorp/packer";
 
@@ -11,7 +11,7 @@ buildGoPackage rec {
     owner = "hashicorp";
     repo = "packer";
     rev = "v${version}";
-    sha256 = "sha256-M4PZnqdU5+w/B821cs1bJYzeilqdZ93fh5PErVgqBOQ=";
+    sha256 = "sha256-kFDy8Zlx+D5JDyNlAmB/ICTe4K9s6KDbALP5pom5OQg=";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/packet-sd/default.nix b/pkgs/development/tools/packet-sd/default.nix
index 33d61eca718..0008fab7442 100644
--- a/pkgs/development/tools/packet-sd/default.nix
+++ b/pkgs/development/tools/packet-sd/default.nix
@@ -18,7 +18,7 @@ buildGoModule rec {
     description = "Prometheus service discovery for Equinix Metal";
     homepage = "https://github.com/packethost/prometheus-packet-sd";
     license = licenses.asl20;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = [ maintainers.andir ];
   };
 }
diff --git a/pkgs/development/tools/pandoc/default.nix b/pkgs/development/tools/pandoc/default.nix
index dbee7631fe0..4f65d5fa5db 100644
--- a/pkgs/development/tools/pandoc/default.nix
+++ b/pkgs/development/tools/pandoc/default.nix
@@ -8,30 +8,6 @@ in
     configureFlags = drv.configureFlags or [] ++ ["-fembed_data_files"];
     buildDepends = drv.buildDepends or [] ++ [haskellPackages.file-embed];
     buildTools = (drv.buildTools or []) ++ [ removeReferencesTo ];
-    patches = (drv.patches or []) ++ [
-      # Add xmlns to top-level tags in Docbook, required for nixpkgs manual.
-      # https://github.com/jgm/pandoc/pull/6923
-      (fetchpatch {
-        url = "https://github.com/jgm/pandoc/commit/6f35600204132c5a0907bb7cccb2e10ffb27506a.patch";
-        sha256 = "gRUqc4YG4lZdCZn21fPmlcrFyZ3/VlDx71lU8GMuGSs=";
-      })
-      # Generate admonitions in DocBook, required for nixpkgs manual.
-      # https://github.com/jgm/pandoc/pull/6922
-      (fetchpatch {
-        url = "https://github.com/jgm/pandoc/commit/dc6856530c2cb6ca58ed82721ab895b86cfe0c1c.patch";
-        sha256 = "EdsUDlHzsfRscXBR4EP2Z5ZEz+NfrmFHnV7c1hJczio=";
-      })
-      # Use correct id attributes in DocBook, required for nixpkgs manual.
-      (fetchpatch {
-        url = "https://github.com/jgm/pandoc/commit/16ef87745702f69d5aa948fbe6d2101577dee8f4.patch";
-        sha256 = "WyWTqrO6hGsMgJ7o7QL1BNvhkm0yIO1XJOcfPBDy6ag=";
-      })
-      # Allow using admonition titles from Markdown in DocBook.
-      (fetchpatch {
-        url = "https://github.com/jgm/pandoc/commit/70c7c5703afcbd1cbf2a80c2be515e038abcd419.patch";
-        sha256 = "2kHQ1qy/UdDi/chwCBvMjAPA/XFH42vWFCjR46Jgt6M=";
-      })
-    ];
   })).overrideAttrs (drv: {
 
     # These libraries are still referenced, because they generate
diff --git a/pkgs/development/tools/parsing/tree-sitter/default.nix b/pkgs/development/tools/parsing/tree-sitter/default.nix
index e3435061563..78fb3b7f937 100644
--- a/pkgs/development/tools/parsing/tree-sitter/default.nix
+++ b/pkgs/development/tools/parsing/tree-sitter/default.nix
@@ -1,11 +1,13 @@
 { lib, stdenv
 , fetchgit, fetchFromGitHub, fetchurl
-, writeShellScript, runCommand, which
+, writeShellScript, runCommand, which, formats
 , rustPlatform, jq, nix-prefetch-git, xe, curl, emscripten
-, callPackage
-, enableShared ? true
-, enableStatic ? false
 , Security
+, callPackage
+
+, enableShared ? !stdenv.hostPlatform.isStatic
+, enableStatic ? stdenv.hostPlatform.isStatic
+, webUISupport ? false
 }:
 
 # TODO: move to carnix or https://github.com/kolloch/crate2nix
@@ -27,7 +29,7 @@ let
   };
 
   update-all-grammars = import ./update.nix {
-    inherit writeShellScript nix-prefetch-git curl jq xe src;
+    inherit writeShellScript nix-prefetch-git curl jq xe src formats lib;
   };
 
   fetchGrammar = (v: fetchgit {inherit (v) url rev sha256 fetchSubmodules; });
@@ -41,35 +43,46 @@ let
 
   builtGrammars = let
     change = name: grammar:
-      callPackage ./library.nix {
-        language = name; inherit version; source = fetchGrammar grammar;
+      callPackage ./grammar.nix {} {
+        language = name;
+        inherit version;
+        source = fetchGrammar grammar;
       };
   in
-    # typescript doesn't have parser.c in the same place as others
-    lib.mapAttrs change (removeAttrs (import ./grammars) ["typescript"]);
+    lib.mapAttrs change (removeAttrs (import ./grammars) [
+      # TODO these don't have parser.c in the same place as others.
+      # They might require more elaborate builds?
+      #  /nix/…/src/parser.c: No such file or directory
+      "tree-sitter-typescript"
+      #  /nix/…/src/parser.c: No such file or directory
+      "tree-sitter-ocaml"
+      # /nix/…/src/parser.c:1:10: fatal error: tree_sitter/parser.h: No such file or directory
+      "tree-sitter-razor"
+    ]);
 
 in rustPlatform.buildRustPackage {
   pname = "tree-sitter";
   inherit src version cargoSha256;
 
-  buildInputs = lib.optionals stdenv.isDarwin [ Security ];
-
-  nativeBuildInputs = [ emscripten which ];
-
-  postPatch = ''
-    # needed for the tests
-    rm -rf test/fixtures/grammars
-    ln -s ${grammars} test/fixtures/grammars
-
-    # These functions do not appear in the source code
-    sed -i /_ts_query_context/d lib/binding_web/exports.json
-    sed -i /___assert_fail/d lib/binding_web/exports.json
+  buildInputs =
+    lib.optionals stdenv.isDarwin [ Security ];
+  nativeBuildInputs =
+    [ which ]
+    ++ lib.optionals webUISupport [ emscripten ];
+
+  postPatch = lib.optionalString (!webUISupport) ''
+    # remove web interface
+    sed -e '/pub mod web_ui/d' \
+        -i cli/src/lib.rs
+    sed -e 's/web_ui,//' \
+        -e 's/web_ui::serve(&current_dir.*$/println!("ERROR: web-ui is not available in this nixpkgs build; enable the webUISupport"); std::process::exit(1);/' \
+        -i cli/src/main.rs
   '';
 
   # Compile web assembly with emscripten. The --debug flag prevents us from
   # minifying the JavaScript; passing it allows us to side-step more Node
   # JS dependencies for installation.
-  preBuild = ''
+  preBuild = lib.optionalString webUISupport ''
     bash ./script/build-wasm --debug
   '';
 
@@ -88,6 +101,11 @@ in rustPlatform.buildRustPackage {
     };
     inherit grammars;
     inherit builtGrammars;
+
+    tests = {
+      # make sure all grammars build
+      builtGrammars = lib.recurseIntoAttrs builtGrammars;
+    };
   };
 
   meta = {
diff --git a/pkgs/development/tools/parsing/tree-sitter/library.nix b/pkgs/development/tools/parsing/tree-sitter/grammar.nix
index 36245ff7d44..f92e0d79426 100644
--- a/pkgs/development/tools/parsing/tree-sitter/library.nix
+++ b/pkgs/development/tools/parsing/tree-sitter/grammar.nix
@@ -1,13 +1,21 @@
 { stdenv
-, language
 , tree-sitter
+}:
+
+# Build a parser grammar and put the resulting shared object in `$out/parser`
+
+{
+  # language name
+  language
+  # version of tree-sitter
 , version
+  # source for the language grammar
 , source
 }:
 
 stdenv.mkDerivation {
 
-  pname = "tree-sitter-${language}-library";
+  pname = "${language}-grammar";
   inherit version;
 
   src = source;
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix b/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix
index e9cb0a1db6e..e1648b84be5 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix
@@ -1,18 +1,31 @@
 {
-  bash = (builtins.fromJSON (builtins.readFile ./tree-sitter-bash.json));
-  c = (builtins.fromJSON (builtins.readFile ./tree-sitter-c.json));
-  cpp = (builtins.fromJSON (builtins.readFile ./tree-sitter-cpp.json));
-  embedded-template = (builtins.fromJSON (builtins.readFile ./tree-sitter-embedded-template.json));
-  go = (builtins.fromJSON (builtins.readFile ./tree-sitter-go.json));
-  html = (builtins.fromJSON (builtins.readFile ./tree-sitter-html.json));
-  java = (builtins.fromJSON (builtins.readFile ./tree-sitter-java.json));
-  javascript = (builtins.fromJSON (builtins.readFile ./tree-sitter-javascript.json));
-  jsdoc = (builtins.fromJSON (builtins.readFile ./tree-sitter-jsdoc.json));
-  json = (builtins.fromJSON (builtins.readFile ./tree-sitter-json.json));
-  lua = (builtins.fromJSON (builtins.readFile ./tree-sitter-lua.json));
-  php = (builtins.fromJSON (builtins.readFile ./tree-sitter-php.json));
-  python = (builtins.fromJSON (builtins.readFile ./tree-sitter-python.json));
-  ruby = (builtins.fromJSON (builtins.readFile ./tree-sitter-ruby.json));
-  rust = (builtins.fromJSON (builtins.readFile ./tree-sitter-rust.json));
-  typescript = (builtins.fromJSON (builtins.readFile ./tree-sitter-typescript.json));
+  tree-sitter-agda = (builtins.fromJSON (builtins.readFile ./tree-sitter-agda.json));
+  tree-sitter-bash = (builtins.fromJSON (builtins.readFile ./tree-sitter-bash.json));
+  tree-sitter-c = (builtins.fromJSON (builtins.readFile ./tree-sitter-c.json));
+  tree-sitter-c-sharp = (builtins.fromJSON (builtins.readFile ./tree-sitter-c-sharp.json));
+  tree-sitter-cpp = (builtins.fromJSON (builtins.readFile ./tree-sitter-cpp.json));
+  tree-sitter-css = (builtins.fromJSON (builtins.readFile ./tree-sitter-css.json));
+  tree-sitter-embedded-template = (builtins.fromJSON (builtins.readFile ./tree-sitter-embedded-template.json));
+  tree-sitter-fluent = (builtins.fromJSON (builtins.readFile ./tree-sitter-fluent.json));
+  tree-sitter-go = (builtins.fromJSON (builtins.readFile ./tree-sitter-go.json));
+  tree-sitter-haskell = (builtins.fromJSON (builtins.readFile ./tree-sitter-haskell.json));
+  tree-sitter-html = (builtins.fromJSON (builtins.readFile ./tree-sitter-html.json));
+  tree-sitter-java = (builtins.fromJSON (builtins.readFile ./tree-sitter-java.json));
+  tree-sitter-javascript = (builtins.fromJSON (builtins.readFile ./tree-sitter-javascript.json));
+  tree-sitter-jsdoc = (builtins.fromJSON (builtins.readFile ./tree-sitter-jsdoc.json));
+  tree-sitter-json = (builtins.fromJSON (builtins.readFile ./tree-sitter-json.json));
+  tree-sitter-julia = (builtins.fromJSON (builtins.readFile ./tree-sitter-julia.json));
+  tree-sitter-lua = (builtins.fromJSON (builtins.readFile ./tree-sitter-lua.json));
+  tree-sitter-ocaml = (builtins.fromJSON (builtins.readFile ./tree-sitter-ocaml.json));
+  tree-sitter-php = (builtins.fromJSON (builtins.readFile ./tree-sitter-php.json));
+  tree-sitter-python = (builtins.fromJSON (builtins.readFile ./tree-sitter-python.json));
+  tree-sitter-ql = (builtins.fromJSON (builtins.readFile ./tree-sitter-ql.json));
+  tree-sitter-razor = (builtins.fromJSON (builtins.readFile ./tree-sitter-razor.json));
+  tree-sitter-regex = (builtins.fromJSON (builtins.readFile ./tree-sitter-regex.json));
+  tree-sitter-ruby = (builtins.fromJSON (builtins.readFile ./tree-sitter-ruby.json));
+  tree-sitter-rust = (builtins.fromJSON (builtins.readFile ./tree-sitter-rust.json));
+  tree-sitter-scala = (builtins.fromJSON (builtins.readFile ./tree-sitter-scala.json));
+  tree-sitter-swift = (builtins.fromJSON (builtins.readFile ./tree-sitter-swift.json));
+  tree-sitter-typescript = (builtins.fromJSON (builtins.readFile ./tree-sitter-typescript.json));
+  tree-sitter-verilog = (builtins.fromJSON (builtins.readFile ./tree-sitter-verilog.json));
 }
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-agda.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-agda.json
new file mode 100644
index 00000000000..f16877e9465
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-agda.json
@@ -0,0 +1,10 @@
+{
+  "url": "https://github.com/tree-sitter/tree-sitter-agda",
+  "rev": "d710ff14d15ddee3764fd73a0837c6c4c8c913e9",
+  "date": "2019-09-20T18:06:06+08:00",
+  "path": "/nix/store/wqz9v9znaiwhhqi19hgig9bn0yvl4i9s-tree-sitter-agda",
+  "sha256": "1wpfj47l97pxk3i9rzdylqipy849r482fnj3lmx8byhalv7z1vm6",
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json
new file mode 100644
index 00000000000..6498e40497e
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json
@@ -0,0 +1,10 @@
+{
+  "url": "https://github.com/tree-sitter/tree-sitter-c-sharp",
+  "rev": "b8bff2a389ecc098dbb7e8abee492816a5eb42db",
+  "date": "2020-11-15T07:54:17+00:00",
+  "path": "/nix/store/h5p71g661hbyzcdcj6xff8y5pcsivpa4-tree-sitter-c-sharp",
+  "sha256": "0x78s2wgd8b6pwjzbmc9fgp0ivdmxv39wikig1m55slai6yq51wh",
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cpp.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cpp.json
index 16aef8ee33e..a4538b1a932 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cpp.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cpp.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-cpp",
-  "rev": "fb8250eef8b4cf1ce104806c50dc206e388b0e72",
-  "date": "2020-11-02T09:46:58-08:00",
-  "path": "/nix/store/qmza43f0fraa111bg50vaxsgnrs5kqs1-tree-sitter-cpp",
-  "sha256": "1sbk5a2p1fh6798naiswsap6fpj7n7bqhwd3xdyi35xf613qpwsi",
+  "rev": "a35a275df92e7583df38f2de2562361f2b69987e",
+  "date": "2020-12-13T11:27:21-08:00",
+  "path": "/nix/store/l0mv4q1xdxz94ym1nl73y52i1yr9zcgi-tree-sitter-cpp",
+  "sha256": "130vizybkm11j3lpzmf183myz0vjxq75mpy6qz48rrkidhnrlryk",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-css.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-css.json
new file mode 100644
index 00000000000..b8609c0bd17
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-css.json
@@ -0,0 +1,10 @@
+{
+  "url": "https://github.com/tree-sitter/tree-sitter-css",
+  "rev": "23f2cb97d47860c517f67f03e1f4b621d5bd2085",
+  "date": "2020-05-14T14:44:30-07:00",
+  "path": "/nix/store/r5pkz9kly0mhgrmqzdzdsr6d1dpqavld-tree-sitter-css",
+  "sha256": "17svpf36p0p7spppzhm3fi833zpdl2l1scg34r6d4vcbv7dknrjy",
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-fluent.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-fluent.json
new file mode 100644
index 00000000000..f40b8465b7d
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-fluent.json
@@ -0,0 +1,10 @@
+{
+  "url": "https://github.com/tree-sitter/tree-sitter-fluent",
+  "rev": "858fdd6f1e81992e00d3541bfb31bac9365d7a47",
+  "date": "2018-06-18T13:00:38-07:00",
+  "path": "/nix/store/zbj8abdlrqi9swm8qn8rhpqmjwcz145f-tree-sitter-fluent",
+  "sha256": "0528v9w0cs73p9048xrddb1wpdhr92sn1sw8yyqfrq5sq0danr9k",
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-haskell.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-haskell.json
new file mode 100644
index 00000000000..10d2dd64ac2
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-haskell.json
@@ -0,0 +1,10 @@
+{
+  "url": "https://github.com/tree-sitter/tree-sitter-haskell",
+  "rev": "2a0aa1cb5f1b787a4056a29fa0791e87846e33fb",
+  "date": "2018-11-03T09:56:20-07:00",
+  "path": "/nix/store/9xszs4xi51qr72laxr67zxnh8y2br0gy-tree-sitter-haskell",
+  "sha256": "0z0nfip5m0yrjgm49j5nld7jkgyjdmps101xhbng39pwfnh1av83",
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-javascript.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-javascript.json
index 68008d393d1..2c563f3fbfa 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-javascript.json
+++ b/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": "852f11b394804ac2a8986f8bcaafe77753635667",
-  "date": "2020-10-27T13:43:40-04:00",
-  "path": "/nix/store/7a9nd3prxbv2izvilqdxf58his097ak7-tree-sitter-javascript",
-  "sha256": "1cdqx75fm7fvna0iymw7n03a7f6gayfg97qwqz3himi0775fz9ir",
+  "rev": "3f8b62f9befd3cb3b4cb0de22f6595a0aadf76ca",
+  "date": "2020-12-02T10:20:20-08:00",
+  "path": "/nix/store/c17bf7sjq95lank5ygbglv8j48i5z9w3-tree-sitter-javascript",
+  "sha256": "0fjq1jzrzd8c8rfxkh2s25gnqlyc19k3a8i3r1129kakisn1288k",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-julia.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-julia.json
new file mode 100644
index 00000000000..2cf5f06dc19
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-julia.json
@@ -0,0 +1,10 @@
+{
+  "url": "https://github.com/tree-sitter/tree-sitter-julia",
+  "rev": "6a0863f1ce3fcf6f99dc0addb7886dcbd27c5a48",
+  "date": "2020-09-08T19:39:52-07:00",
+  "path": "/nix/store/xn5nii9mi2aw7xdabyxlglha2vk12h1w-tree-sitter-julia",
+  "sha256": "07ds4wzgvnkgkq07izdglkk8lgpqrylvrs96afnwxi56bnzs8sbv",
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-lua.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-lua.json
index 267d25a52a0..804d613357e 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-lua.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-lua.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/nvim-treesitter/tree-sitter-lua",
-  "rev": "278b0ea1f1f3d86afc86faaca0cbbf6c01182a54",
-  "date": "2020-09-08T18:29:23+02:00",
-  "path": "/nix/store/xkaqsw030bf6zd6pivrzrg3d50j1ka1k-tree-sitter-lua",
-  "sha256": "0i8jdp0bbl02h58hfhpild4v3rvy8yk5r5l90navvfxw4ad4f6f3",
+  "rev": "97b757ad3546d68dc1131e6ffb9b1d2a750eea29",
+  "date": "2020-11-25T21:23:57+01:00",
+  "path": "/nix/store/irz0dikk9dahkayi41chcznqq1i3wr84-tree-sitter-lua",
+  "sha256": "1nhg139vk3xm6ip4mhr29z0rprfg4q417z2vlvkz3m9wp8gppzls",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ocaml.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ocaml.json
new file mode 100644
index 00000000000..32488ebb73e
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ocaml.json
@@ -0,0 +1,10 @@
+{
+  "url": "https://github.com/tree-sitter/tree-sitter-ocaml",
+  "rev": "4ec9ee414dadc2b6e7325a9f8124d02f6cd8c250",
+  "date": "2020-09-18T02:13:40+02:00",
+  "path": "/nix/store/dszjdnwnbziqxav2khs85026msm6fasz-tree-sitter-ocaml",
+  "sha256": "0wy85940fhmrnz7c1gk6xkipm8ixzalq5q4i7mcc6wnjiiwq60gx",
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-python.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-python.json
index 402c4c087b1..86551acbee0 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-python.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-python.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-python",
-  "rev": "d245768132eb6cb74d8a394ca4d29dc57169b096",
-  "date": "2020-10-27T13:20:04-04:00",
-  "path": "/nix/store/afv7ibxpf5c2shafa89cnza88hsfb7kj-tree-sitter-python",
-  "sha256": "075r5i2id2rn76xm3pcrn5cpvj63dlaxcpvphig39a4c9f9hrpdx",
+  "rev": "65b486b42fe0188e4be344092151042bf1bc6d9a",
+  "date": "2020-12-15T09:33:20-08:00",
+  "path": "/nix/store/k9jziqzyxq2bv55pwl03jcmmca83fjyp-tree-sitter-python",
+  "sha256": "1yxqdlmp0jybm7vvza1ni5a320vrviqkd14pnpcrg9ilzq23mlsh",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ql.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ql.json
new file mode 100644
index 00000000000..27042b6ef95
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ql.json
@@ -0,0 +1,10 @@
+{
+  "url": "https://github.com/tree-sitter/tree-sitter-ql",
+  "rev": "a0d688d62dcb9cbc7c53f0d98343c458b3776b3d",
+  "date": "2020-09-16T12:56:09-07:00",
+  "path": "/nix/store/dfdaf6wg80dfw5fvdiir7n9nj6j30g3g-tree-sitter-ql",
+  "sha256": "0f6rfhrbvpg8czfa7mld45by3rp628bs6fyl47a8mn18w6x0n5g2",
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-razor.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-razor.json
new file mode 100644
index 00000000000..6905f4145aa
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-razor.json
@@ -0,0 +1,10 @@
+{
+  "url": "https://github.com/tree-sitter/tree-sitter-razor",
+  "rev": "60edbd8e798e416f5226a746396efa6a8614fa9b",
+  "date": "2016-07-08T15:17:50-07:00",
+  "path": "/nix/store/2vkxw48wc0xf07awi65r4rg2m1lpqq6c-tree-sitter-razor",
+  "sha256": "1ldsn9nxldxkxdy7irywx88d6a56q05f6907lypzass07piyqp2i",
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-regex.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-regex.json
new file mode 100644
index 00000000000..d04c1bdab86
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-regex.json
@@ -0,0 +1,10 @@
+{
+  "url": "https://github.com/tree-sitter/tree-sitter-regex",
+  "rev": "be2e415b5716615530234d179dc27c32b7a1d86b",
+  "date": "2020-05-14T15:05:54-07:00",
+  "path": "/nix/store/acbcq9lgh5pf6hq3329fa253yfvaj6ji-tree-sitter-regex",
+  "sha256": "0qxbafbwfj64bwhj3455jgkidpdzqwrlsqm3rckq2pi75flnkv42",
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ruby.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ruby.json
index d5a1767a23c..027478e99f8 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ruby.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ruby.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-ruby",
-  "rev": "f86d90cce578e28c824afdcdbdca7d031b88c0b0",
-  "date": "2020-11-02T20:49:49-08:00",
-  "path": "/nix/store/gs0hhb1dlgmv0y60zyyz7ki30yvpddfx-tree-sitter-ruby",
-  "sha256": "1n1irdjfmv27p5ia2vqzv8zfsq19pxi0as0wrkb7z7s1lqr1gwrb",
+  "rev": "bb572f60e9538bd11fbde95a54f97522073f1e06",
+  "date": "2020-12-20T12:25:50-08:00",
+  "path": "/nix/store/hkjgvxh8l4drk1z4zkhmd0wcj876x5y1-tree-sitter-ruby",
+  "sha256": "198sfmrb3mxvpfmlwmwfmb3qs075ih0bjmr0ffrdy4nqm4a00cb8",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rust.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rust.json
index 4e0e2e2f7f4..38c9e44f2f6 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rust.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rust.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-rust",
-  "rev": "cf47ff80cbd8bdc6dd649a005c5f5d73f9c347e2",
-  "date": "2020-11-04T06:23:40-08:00",
-  "path": "/nix/store/8cvjxw8cz5jrkqwvgq88r7rfm269xwk1-tree-sitter-rust",
-  "sha256": "0yzcag0yy3ncxwpnb3fmsw8bxaidp7z8kbl8wwaxaj2vvxxf6sam",
+  "rev": "8746bd4b584b8063ee8e445bf31015e887417d33",
+  "date": "2020-11-23T17:16:42-08:00",
+  "path": "/nix/store/1zzxvza23wsdyazw47lhjvrs0za6wjpn-tree-sitter-rust",
+  "sha256": "0bhxfyq8ycnp90pqvr6cf3gpq1vax8a34kaq85dmbrc6ar8a7ap6",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json
new file mode 100644
index 00000000000..8d9959cf4cf
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json
@@ -0,0 +1,10 @@
+{
+  "url": "https://github.com/tree-sitter/tree-sitter-scala",
+  "rev": "211bb726bb5857f872247b600c7c1808e641a8d4",
+  "date": "2020-07-13T13:31:00-07:00",
+  "path": "/nix/store/6q66gzabxazr2581dgp4pp5wwyk2p6mw-tree-sitter-scala",
+  "sha256": "096ps5za8gxmq61gdd3xdk8cif07vb4v8asls2kdwm6jazm82777",
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-swift.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-swift.json
new file mode 100644
index 00000000000..8f73380e379
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-swift.json
@@ -0,0 +1,10 @@
+{
+  "url": "https://github.com/tree-sitter/tree-sitter-swift",
+  "rev": "a22fa5e19bae50098e2252ea96cba3aba43f4c58",
+  "date": "2019-10-24T19:04:02-06:00",
+  "path": "/nix/store/pk5xk8yp6vanbar75bhfrs104w0k1ph0-tree-sitter-swift",
+  "sha256": "14b40lmwrnyvdz2wiv684kfh4fvqfhbj1dgrx81ppmy7hsz7jcq7",
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json
index d31f72754bf..a875232eab6 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json
+++ b/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": "73afadbd117a8e8551758af9c3a522ef46452119",
-  "date": "2020-10-20T12:15:52-07:00",
-  "path": "/nix/store/wrgp1j5l50cigv5cmlxikw693a55i6g9-tree-sitter-typescript",
-  "sha256": "0dsbmcvjzys9s229drp1l8anram7d6nsx1nixl5m9znw54hr4w9p",
+  "rev": "a3a4becef889692724bb1c2191f8fc4bce6573f9",
+  "date": "2020-12-15T13:34:55-08:00",
+  "path": "/nix/store/dra5wbhgxkkhphm1mhgv87hsfw0g18nw-tree-sitter-typescript",
+  "sha256": "0ir7lmzwnbf1zwbl4bfsib1jilg8pvfc1nabaq2n2rixvghlvf3d",
   "fetchSubmodules": false,
   "deepClone": false,
   "leaveDotGit": false
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-verilog.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-verilog.json
new file mode 100644
index 00000000000..7ab79c6f2d5
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-verilog.json
@@ -0,0 +1,10 @@
+{
+  "url": "https://github.com/tree-sitter/tree-sitter-verilog",
+  "rev": "ad551aae2649da56582bc0557478a7dc979c0be3",
+  "date": "2020-10-13T17:40:47-07:00",
+  "path": "/nix/store/nfaxfqrqkxpwaq8rnk7kcp28nnj8y6m2-tree-sitter-verilog",
+  "sha256": "0cy29i200rnc34d237s19r6a1n5vv4d3wgwpbywxg6ahcankc34m",
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/update.nix b/pkgs/development/tools/parsing/tree-sitter/update.nix
index 2a3575a44d2..7b0b16b403f 100644
--- a/pkgs/development/tools/parsing/tree-sitter/update.nix
+++ b/pkgs/development/tools/parsing/tree-sitter/update.nix
@@ -1,66 +1,188 @@
-{ writeShellScript, nix-prefetch-git
+{ writeShellScript, nix-prefetch-git, formats, lib
 , curl, jq, xe
 , src }:
 
 let
-  # print all the grammar names mentioned in the fetch-fixtures script
-  getGrammarNames = writeShellScript "get-grammars.sh" ''
+  # Grammars we want to fetch from the tree-sitter github orga
+  knownTreeSitterOrgGrammarRepos = [
+    "tree-sitter-javascript"
+    "tree-sitter-c"
+    "tree-sitter-swift"
+    "tree-sitter-json"
+    "tree-sitter-cpp"
+    "tree-sitter-ruby"
+    "tree-sitter-razor"
+    "tree-sitter-go"
+    "tree-sitter-c-sharp"
+    "tree-sitter-python"
+    "tree-sitter-typescript"
+    "tree-sitter-rust"
+    "tree-sitter-bash"
+    "tree-sitter-php"
+    "tree-sitter-java"
+    "tree-sitter-scala"
+    "tree-sitter-ocaml"
+    "tree-sitter-julia"
+    "tree-sitter-agda"
+    "tree-sitter-fluent"
+    "tree-sitter-html"
+    "tree-sitter-haskell"
+    "tree-sitter-regex"
+    "tree-sitter-css"
+    "tree-sitter-verilog"
+    "tree-sitter-jsdoc"
+    "tree-sitter-ql"
+    "tree-sitter-embedded-template"
+  ];
+  knownTreeSitterOrgGrammarReposJson = jsonFile "known-tree-sitter-org-grammar-repos" knownTreeSitterOrgGrammarRepos;
+
+  # repos of the tree-sitter github orga we want to ignore (not grammars)
+  ignoredTreeSitterOrgRepos = [
+    "tree-sitter"
+    "tree-sitter-cli"
+    # this is the haskell language bindings, tree-sitter-haskell is the grammar
+    "haskell-tree-sitter"
+    # this is the ruby language bindings, tree-sitter-ruby is the grammar
+    "ruby-tree-sitter"
+    # this is the (unmaintained) rust language bindings, tree-sitter-rust is the grammar
+    "rust-tree-sitter"
+    # this is the nodejs language bindings, tree-sitter-javascript is the grammar
+    "node-tree-sitter"
+    # this is the python language bindings, tree-sitter-python is the grammar
+    "py-tree-sitter"
+    # afl fuzzing for tree sitter
+    "afl-tree-sitter"
+    # archived
+    "highlight-schema"
+    # website
+    "tree-sitter.github.io"
+  ];
+  ignoredTreeSitterOrgReposJson = jsonFile "ignored-tree-sitter-org-repos" ignoredTreeSitterOrgRepos;
+
+  # Additional grammars that are not in the official github orga.
+  # If you need a grammar that already exists in the official orga,
+  # make sure to give it a different name.
+  otherGrammars = {
+    "tree-sitter-lua" = {
+      orga = "nvim-treesitter";
+      repo = "tree-sitter-lua";
+    };
+  };
+
+  allGrammars =
+    let
+      treeSitterOrgaGrammars =
+        lib.listToAttrs (map (repo:
+          { name = repo;
+            value = {
+              orga = "tree-sitter";
+              inherit repo;
+            };
+          })
+        knownTreeSitterOrgGrammarRepos);
+
+    in
+      mergeAttrsUnique otherGrammars treeSitterOrgaGrammars;
+
+  # TODO: move to lib
+  mergeAttrsUnique = left: right:
+    let intersect = lib.intersectLists (lib.attrNames left) (lib.attrNames right); in
+    assert
+      lib.assertMsg (intersect == [])
+        (lib.concatStringsSep "\n" [
+          "mergeAttrsUnique: keys in attrset overlapping:"
+          "left: ${lib.generators.toPretty {} (lib.getAttrs intersect left)}"
+          "right: ${lib.generators.toPretty {} (lib.getAttrs intersect right)}"
+        ]);
+    left // right;
+
+
+
+  jsonFile = name: val: (formats.json {}).generate name val;
+
+  # check the tree-sitter orga repos
+  checkTreeSitterRepos = writeShellScript "get-grammars.sh" ''
     set -euo pipefail
-    sed -ne 's/^fetch_grammar \(\S*\).*$/\1/p' \
-      ${src}/script/fetch-fixtures
+    res=$(${jq}/bin/jq \
+      --slurpfile known "${knownTreeSitterOrgGrammarReposJson}" \
+      --slurpfile ignore "${ignoredTreeSitterOrgReposJson}" \
+      '. - ($known[0] + $ignore[0])' \
+      )
+    if [ ! "$res" == "[]" ]; then
+      echo "These repositories are neither known nor ignored:" 1>&2
+      echo "$res" 1>&2
+      exit 1
+    fi
   '';
 
   # TODO
   urlEscape = x: x;
-  # TODO
-  urlEscapeSh = writeShellScript "escape-url" ''printf '%s' "$1"'';
 
   # generic bash script to find the latest github release for a repo
-  latestGithubRelease = { owner }: writeShellScript "latest-github-release" ''
+  latestGithubRelease = { orga, repo }: writeShellScript "latest-github-release" ''
     set -euo pipefail
-    repo="$1"
     res=$(${curl}/bin/curl \
       --silent \
-      "https://api.github.com/repos/${urlEscape owner}/$(${urlEscapeSh} "$repo")/releases/latest")
-    if [[ "$(printf "%s" "$res" | ${jq}/bin/jq '.message')" =~ "rate limit" ]]; then
+      "https://api.github.com/repos/${urlEscape orga}/${urlEscape repo}/releases/latest")
+    if [[ "$(printf "%s" "$res" | ${jq}/bin/jq '.message?')" =~ "rate limit" ]]; then
       echo "rate limited" >&2
     fi
     release=$(printf "%s" "$res" | ${jq}/bin/jq '.tag_name')
     # github sometimes returns an empty list even tough there are releases
     if [ "$release" = "null" ]; then
-      echo "uh-oh, latest for $repo is not there, using HEAD" >&2
+      echo "uh-oh, latest for ${orga + "/" + repo} is not there, using HEAD" >&2
       release="HEAD"
     fi
     echo "$release"
   '';
 
+  # find the latest repos of a github organization
+  latestGithubRepos = { orga }: writeShellScript "latest-github-repos" ''
+    set -euo pipefail
+    res=$(${curl}/bin/curl \
+      --silent \
+      'https://api.github.com/orgs/${urlEscape orga}/repos?per_page=100')
+
+    if [[ "$(printf "%s" "$res" | ${jq}/bin/jq '.message?')" =~ "rate limit" ]]; then
+      echo "rate limited" >&2   #
+    fi
+
+    printf "%s" "$res" | ${jq}/bin/jq 'map(.name)' \
+      || echo "failed $res"
+  '';
+
   # update one tree-sitter grammar repo and print their nix-prefetch-git output
-  updateGrammar = { owner }: writeShellScript "update-grammar.sh" ''
+  updateGrammar = { orga, repo }: writeShellScript "update-grammar.sh" ''
     set -euo pipefail
-    repo="$1"
-    latest="$(${latestGithubRelease { inherit owner; }} "$repo")"
-    echo "Fetching latest release ($latest) of $repo …" >&2
+    latest="$(${latestGithubRelease { inherit orga repo; }})"
+    echo "Fetching latest release ($latest) of ${repo} …" >&2
     ${nix-prefetch-git}/bin/nix-prefetch-git \
       --quiet \
       --no-deepClone \
-      --url "https://github.com/${urlEscape owner}/$(${urlEscapeSh} "$repo")" \
+      --url "https://github.com/${urlEscape orga}/${urlEscape repo}" \
       --rev "$latest"
     '';
 
+  foreachSh = attrs: f:
+    lib.concatMapStringsSep "\n" f
+    (lib.mapAttrsToList (k: v: { name = k; } // v) attrs);
+
   update-all-grammars = writeShellScript "update-all-grammars.sh" ''
     set -euo pipefail
-    grammarNames=$(${getGrammarNames})
+    echo "fetching list of grammars" 1>&2
+    treeSitterRepos=$(${latestGithubRepos { orga = "tree-sitter"; }})
+    echo "checking the tree-sitter repo list against the grammars we know" 1>&2
+    printf '%s' "$treeSitterRepos" | ${checkTreeSitterRepos}
     outputDir="${toString ./.}/grammars"
+    echo "writing files to $outputDir" 1>&2
     mkdir -p "$outputDir"
-    updateCommand=$(printf \
-      '${updateGrammar { owner = "tree-sitter"; }} "$1" > "%s/$1.json"' \
-      "$outputDir")
-    printf '%s' "$grammarNames" \
-      | ${xe}/bin/xe printf "tree-sitter-%s\n" {} \
-      | ${xe}/bin/xe -j2 -s "$updateCommand"
+    ${foreachSh allGrammars
+      ({name, orga, repo}: ''${updateGrammar { inherit orga repo; }} > $outputDir/${name}.json'')}
     ( echo "{"
-      printf '%s' "$grammarNames" \
-        | ${xe}/bin/xe -s 'printf "  %s = (builtins.fromJSON (builtins.readFile ./tree-sitter-%s.json));\n" "$1" "$1"'
+      ${foreachSh allGrammars
+        ({name, ...}: ''
+           # indentation hack
+             printf "  %s = (builtins.fromJSON (builtins.readFile ./%s.json));\n" "${name}" "${name}"'')}
       echo "}" ) \
       > "$outputDir/default.nix"
   '';
diff --git a/pkgs/development/tools/purescript/spago/default.nix b/pkgs/development/tools/purescript/spago/default.nix
index f5720837d79..62e85a87487 100644
--- a/pkgs/development/tools/purescript/spago/default.nix
+++ b/pkgs/development/tools/purescript/spago/default.nix
@@ -1,6 +1,9 @@
 { haskell
 , haskellPackages
 , lib
+
+# The following are only needed for the passthru.tests:
+, git
 , nodejs
 , purescript
 , runCommand
@@ -32,6 +35,7 @@ spago.overrideAttrs (oldAttrs: {
         {
           __noChroot = true;
           nativeBuildInputs = [
+            git
             nodejs
             purescript
             spago
diff --git a/pkgs/development/tools/purescript/spago/spago.nix b/pkgs/development/tools/purescript/spago/spago.nix
index 4a5ad361e9f..43f8e66d870 100644
--- a/pkgs/development/tools/purescript/spago/spago.nix
+++ b/pkgs/development/tools/purescript/spago/spago.nix
@@ -1,21 +1,22 @@
 { mkDerivation, aeson, aeson-pretty, ansi-terminal, async-pool
 , base, bower-json, bytestring, Cabal, containers, dhall, directory
 , either, exceptions, extra, fetchgit, file-embed, filepath, foldl
-, fsnotify, github, Glob, hpack, hspec, hspec-discover
-, hspec-megaparsec, http-client, http-conduit, http-types
-, lens-family-core, megaparsec, mtl, network-uri, open-browser
-, optparse-applicative, prettyprinter, process, QuickCheck, retry
-, rio, rio-orphans, safe, semver-range, stdenv, stm, tar
-, template-haskell, temporary, text, time, transformers, turtle
-, unliftio, unordered-containers, vector, versions, with-utf8, zlib
+, fsnotify, generic-lens, github, Glob, hpack, hspec
+, hspec-discover, hspec-megaparsec, http-client, http-conduit
+, http-types, lens-family-core, megaparsec, mtl, network-uri
+, open-browser, optparse-applicative, prettyprinter, process
+, QuickCheck, retry, rio, rio-orphans, safe, semver-range, stdenv
+, stm, stringsearch, tar, template-haskell, temporary, text, time
+, transformers, turtle, unliftio, unordered-containers, utf8-string
+, vector, versions, with-utf8, zlib
 }:
 mkDerivation {
   pname = "spago";
-  version = "0.17.0";
+  version = "0.18.0";
   src = fetchgit {
     url = "https://github.com/purescript/spago.git";
-    sha256 = "1w9y1gvk307f92gixs5g02zbg0xwhrshwmc5j97pxhbzzg9qjidy";
-    rev = "3309afdef25e3e77f991a079eed78ff2f750e463";
+    sha256 = "03ww7qhrggwsbm0kcnvcr3ifb8rm860ajimzr81isiw46ykwrl38";
+    rev = "a4d39c21cae2f2c6d43fa204853c8e17c72904d2";
     fetchSubmodules = true;
   };
   isLibrary = true;
@@ -23,12 +24,12 @@ mkDerivation {
   libraryHaskellDepends = [
     aeson aeson-pretty ansi-terminal async-pool base bower-json
     bytestring Cabal containers dhall directory either exceptions
-    file-embed filepath foldl fsnotify github 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 tar template-haskell temporary
-    text time transformers turtle unliftio unordered-containers vector
-    versions with-utf8 zlib
+    file-embed filepath foldl fsnotify generic-lens github 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 vector versions with-utf8 zlib
   ];
   libraryToolDepends = [ hpack ];
   executableHaskellDepends = [ base text turtle with-utf8 ];
diff --git a/pkgs/development/tools/quicktemplate/default.nix b/pkgs/development/tools/quicktemplate/default.nix
index 8f75540f3a6..cb9b4f950c9 100644
--- a/pkgs/development/tools/quicktemplate/default.nix
+++ b/pkgs/development/tools/quicktemplate/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage {
+buildGoModule rec {
   pname = "quicktemplate";
-  version = "unstable-2019-07-08";
-  goPackagePath = "github.com/valyala/quicktemplate";
-  goDeps = ./deps.nix;
+  version = "1.6.3";
 
   src = fetchFromGitHub {
     owner = "valyala";
     repo = "quicktemplate";
-    rev = "840e9171940bbc80bb1b925c880664cababae022";
-    sha256 = "1pimf5bwivklsr438if6l8by34gr48a05gl6hq07cvc8z6wl01m2";
+    rev = "v${version}";
+    sha256 = "mQhrQcKRDtcXha7FIwCIUwWfoPGIJ5YLbA4HdatIdn8=";
   };
 
+  vendorSha256 = null;
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/valyala/quicktemplate";
     description = "Fast, powerful, yet easy to use template engine for Go";
diff --git a/pkgs/development/tools/quicktemplate/deps.nix b/pkgs/development/tools/quicktemplate/deps.nix
deleted file mode 100644
index 6c042966c23..00000000000
--- a/pkgs/development/tools/quicktemplate/deps.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-  {
-    goPackagePath = "github.com/valyala/bytebufferpool";
-    fetch = {
-      type = "git";
-      url = "https://github.com/valyala/bytebufferpool";
-      rev = "cdfbe9377474227bb42120c1e22fd4433e7f69bf";
-      sha256 = "0c6cixd85dvl2gvs7sdh0k2wm8r3grl4fw0jg4w7d78cp8s2k7ag";
-    };
-  }
-]
diff --git a/pkgs/development/tools/rust/cargo-c/default.nix b/pkgs/development/tools/rust/cargo-c/default.nix
index ee0074f7d83..ce57194bc49 100644
--- a/pkgs/development/tools/rust/cargo-c/default.nix
+++ b/pkgs/development/tools/rust/cargo-c/default.nix
@@ -5,7 +5,7 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-c";
-  version = "0.6.18";
+  version = "0.7.0";
 
   src = stdenv.mkDerivation rec {
     name = "${pname}-source-${version}";
@@ -14,11 +14,11 @@ rustPlatform.buildRustPackage rec {
       owner = "lu-zero";
       repo = pname;
       rev = "v${version}";
-      sha256 = "1dh5z210nl8grjxb8zxch8h7799w61bah7r2j0s07091rcpfsrsb";
+      sha256 = "0pd1vnpy29fxmf47pvkyxd6bydar8cykfjx0f1bbw3gfk7vychbj";
     };
     cargoLock = fetchurl {
       url = "https://github.com/lu-zero/${pname}/releases/download/v${version}/Cargo.lock";
-      sha256 = "1h5wmfmm2a2ilyw3ar88rqm7yvdc2vhyx4pgg781615ax52fhjli";
+      sha256 = "10xhd5m63r928gfvr4djmis30mra8wdsx55kgin9kiig2kylx69h";
     };
 
     installPhase = ''
@@ -28,7 +28,7 @@ rustPlatform.buildRustPackage rec {
     '';
   };
 
-  cargoSha256 = "0ll9p2rbnw46zd9m2bmdmn99v9jjjf8i33xpkvd1rx42ki7sys62";
+  cargoSha256 = "1axg0kr8xsb5fm3r8qgc7s3g70pa8g9vc68d6icm7ms77phczx4r";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ]
diff --git a/pkgs/development/tools/rust/cargo-wipe/default.nix b/pkgs/development/tools/rust/cargo-wipe/default.nix
new file mode 100644
index 00000000000..1ad0fbbb4b0
--- /dev/null
+++ b/pkgs/development/tools/rust/cargo-wipe/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, rustPlatform
+, fetchFromGitHub
+, nix-update-script
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-wipe";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "mihai-dinculescu";
+    repo = "cargo-wipe";
+    rev = "v${version}";
+    sha256 = "1kwkifdp98zsinh7xcsz2va252wxbw73xlrv0r7h3m0bn51d52vw";
+  };
+
+  cargoSha256 = "15snr1b1pybwcjzwddxybvry3jyllcmrp8dyfm9yiagks3wrcfb4";
+
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
+  meta = with stdenv.lib; {
+    description = ''Cargo subcommand "wipe": recursively finds and optionally wipes all "target" or "node_modules" folders'';
+    homepage = "https://github.com/mihai-dinculescu/cargo-wipe";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ otavio ];
+  };
+}
diff --git a/pkgs/development/tools/rust/racer/default.nix b/pkgs/development/tools/rust/racer/default.nix
index 86f1989729e..7de30855dd3 100644
--- a/pkgs/development/tools/rust/racer/default.nix
+++ b/pkgs/development/tools/rust/racer/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "racer";
-  version = "2.1.35";
+  version = "2.1.40";
 
   src = fetchFromGitHub {
     owner = "racer-rust";
     repo = "racer";
     rev = "v${version}";
-    sha256 = "0c00b81s7abnadjbf4i39lhdkipx7z44sr8p78jd1fl61yyrspli";
+    sha256 = "sha256-8Is+RBfcXKbGSFzYoolLHs30rxlNI//xVGEOhxP2TV8=";
   };
 
-  cargoSha256 = "1nbp2jp65fqwsq9i04iyi4pbszs035w6id50p5ypw234cqxznikm";
+  cargoSha256 = "sha256-iUomr9viCdZk4nV75/OP8vHtJpMbmy+pq1IbaA2lLmE=";
 
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
@@ -19,21 +19,20 @@ rustPlatform.buildRustPackage rec {
   # a nightly compiler is required unless we use this cheat code.
   RUSTC_BOOTSTRAP = 1;
 
-  RUST_SRC_PATH = rustPlatform.rustcSrc;
+  RUST_SRC_PATH = rustPlatform.rustLibSrc;
   postInstall = ''
-    wrapProgram $out/bin/racer --set-default RUST_SRC_PATH ${rustPlatform.rustcSrc}
+    wrapProgram $out/bin/racer --set-default RUST_SRC_PATH ${rustPlatform.rustLibSrc}
   '';
 
-  checkPhase = ''
-    cargo test -- \
-      --skip nameres::test_do_file_search_std \
-      --skip util::test_get_rust_src_path_rustup_ok \
-      --skip util::test_get_rust_src_path_not_rust_source_tree \
-      --skip extern --skip completes_pub_fn --skip find_crate_doc \
-      --skip follows_use_local_package --skip follows_use_for_reexport \
-      --skip follows_rand_crate --skip get_completion_in_example_dir \
-      --skip test_resolve_global_path_in_modules
-  '';
+  checkFlags = [
+    "--skip nameres::test_do_file_search_std"
+    "--skip util::test_get_rust_src_path_rustup_ok"
+    "--skip util::test_get_rust_src_path_not_rust_source_tree"
+    "--skip extern --skip completes_pub_fn --skip find_crate_doc"
+    "--skip follows_use_local_package --skip follows_use_for_reexport"
+    "--skip follows_rand_crate --skip get_completion_in_example_dir"
+    "--skip test_resolve_global_path_in_modules"
+  ];
 
   doInstallCheck = true;
   installCheckPhase = ''
diff --git a/pkgs/development/tools/solarus-quest-editor/default.nix b/pkgs/development/tools/solarus-quest-editor/default.nix
index d44622e7e59..8b0518f09eb 100644
--- a/pkgs/development/tools/solarus-quest-editor/default.nix
+++ b/pkgs/development/tools/solarus-quest-editor/default.nix
@@ -1,7 +1,7 @@
-{ lib, mkDerivation, fetchFromGitLab, cmake, luajit,
-  SDL2, SDL2_image, SDL2_ttf, physfs,
-  openal, libmodplug, libvorbis, solarus,
-  qtbase, qttools, glm }:
+{ lib, mkDerivation, fetchFromGitLab, cmake, luajit
+, SDL2, SDL2_image, SDL2_ttf, physfs, fetchpatch
+, openal, libmodplug, libvorbis, solarus
+, qtbase, qttools, glm }:
 
 mkDerivation rec {
   pname = "solarus-quest-editor";
@@ -13,7 +13,14 @@ mkDerivation rec {
     rev = "v${version}";
     sha256 = "1qbc2j9kalk7xqk9j27s7wnm5zawiyjs47xqkqphw683idmzmjzn";
   };
-  
+
+  patches = [
+    (fetchpatch {
+      url = "https://gitlab.com/solarus-games/solarus-quest-editor/-/commit/81d5c7f1602cf355684d70a5e3449fefccfc44b8.patch";
+      sha256 = "tVUxkkDp2PcOHGy4dGvUcYj9gF7k4LN21VuxohCw9NE=";
+    })
+  ];
+
   buildInputs = [ cmake luajit SDL2
     SDL2_image SDL2_ttf physfs
     openal libmodplug libvorbis
@@ -31,5 +38,5 @@ mkDerivation rec {
     maintainers = [ maintainers.Nate-Devv ];
     platforms = platforms.linux;
   };
-  
+
 }
diff --git a/pkgs/development/tools/sourcetrail/python.nix b/pkgs/development/tools/sourcetrail/python.nix
index 113abb77d61..8ec9c9a2297 100644
--- a/pkgs/development/tools/sourcetrail/python.nix
+++ b/pkgs/development/tools/sourcetrail/python.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     owner = "CoatiSoftware";
     repo = pname;
     rev = version;
-    sha256 = "05hlpd3am029pv1wi6mys3q0ggp64axmg8bdf1fabl9cl9jffscq";
+    sha256 = "01jaigxigq6dvfwq018gn9qw7i6p4jm0y71lqzschfv9vwf6ga45";
     fetchSubmodules = true;
   };
 
@@ -64,5 +64,7 @@ stdenv.mkDerivation rec {
     description = "Python indexer for Sourcetrail";
     homepage = "https://github.com/CoatiSoftware/SourcetrailPythonIndexer";
     license = licenses.gpl3;
+    broken = stdenv.isDarwin;
+    # https://github.com/NixOS/nixpkgs/pull/107533#issuecomment-751063675
   };
 }
diff --git a/pkgs/development/tools/statik/default.nix b/pkgs/development/tools/statik/default.nix
index f535fa055ed..48ceea24b70 100644
--- a/pkgs/development/tools/statik/default.nix
+++ b/pkgs/development/tools/statik/default.nix
@@ -1,18 +1,26 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage {
+buildGoModule rec {
   pname = "statik";
-  version = "unstable-2019-07-31";
-  goPackagePath = "github.com/rakyll/statik";
+  version = "0.1.7";
 
   src = fetchFromGitHub {
     owner = "rakyll";
     repo = "statik";
-    rev = "925a23bda946b50bb0804894f340c5da2b95603b";
-    sha256 = "15wwgrprfq36pa13b9anp7097q1fqcad28hirvivybmc011p0fri";
+    rev = "v${version}";
+    sha256 = "ahsNiac/3I2+PUqc90E73Brb99M68ewh9nWXoupfE3g=";
   };
 
-  meta = with stdenv.lib; {
+  vendorSha256 = "pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo=";
+
+  # Avoid building example
+  subPackages = [ "." "fs" ];
+  # Tests are checking that the files embeded are preserving
+  # their meta data like dates etc, but it assumes to be in 2048
+  # which is not the case once entered the nix store
+  doCheck = false;
+
+  meta = with lib; {
     homepage = "https://github.com/rakyll/statik";
     description = "Embed files into a Go executable ";
     license = licenses.asl20;
diff --git a/pkgs/development/tools/trellis/default.nix b/pkgs/development/tools/trellis/default.nix
index c9884a8eacd..dead1dac2a5 100644
--- a/pkgs/development/tools/trellis/default.nix
+++ b/pkgs/development/tools/trellis/default.nix
@@ -5,18 +5,18 @@
 
 stdenv.mkDerivation rec {
   pname = "trellis";
-  version = "2020.11.25";
+  version = "2021.01.02";
 
   # git describe --tags
   realVersion = with stdenv.lib; with builtins;
-    "1.0-476-g${substring 0 7 (elemAt srcs 0).rev}";
+    "1.0-482-g${substring 0 7 (elemAt srcs 0).rev}";
 
   srcs = [
     (fetchFromGitHub {
        owner  = "SymbiFlow";
        repo   = "prjtrellis";
-       rev    = "a441cd9d0390648e96bf27096626eb2c904096de";
-       sha256 = "1rsck44n4mf9v3vfac51ksrhcs84s7q297nq1kjkzzvmsx09gd9k";
+       rev    = "60c05b3f4e71fd78d4fba5c31f9974694245199e";
+       sha256 = "1k37mxwxv9fpm6xnrxlqqap7zqh2dvgqncphj3asi2rz0kh07ppf";
        name   = "trellis";
      })
 
diff --git a/pkgs/development/tools/vulkan-validation-layers/default.nix b/pkgs/development/tools/vulkan-validation-layers/default.nix
index 6e89f03e513..25fb4077abc 100644
--- a/pkgs/development/tools/vulkan-validation-layers/default.nix
+++ b/pkgs/development/tools/vulkan-validation-layers/default.nix
@@ -20,36 +20,37 @@
 # https://github.com/KhronosGroup/Vulkan-ValidationLayers/blob/master/scripts/known_good.json
 
 let
+  localSpirvHeaders = spirv-headers.overrideAttrs (_: {
+    src = fetchFromGitHub {
+      owner = "KhronosGroup";
+      repo = "SPIRV-Headers";
+      rev = "f027d53ded7e230e008d37c8b47ede7cd308e19d";
+      sha256 = "12gp2mqcar6jj57jw9isfr62yn72kmvdcl0zga4gvrlyfhnf582q";
+    };
+  });
   localGlslang = (glslang.override {
     argSpirv-tools = spirv-tools.overrideAttrs (_: {
       src = fetchFromGitHub {
         owner = "KhronosGroup";
         repo = "SPIRV-Tools";
-        rev = "e128ab0d624ce7beb08eb9656bb260c597a46d0a";
-        sha256 = "0jj8zrl3dh9fq71jc8msx3f3ifb2vjcb37nl0w4sa8sdhfff74pv";
-      };
-    });
-    argSpirv-headers = spirv-headers.overrideAttrs (_: {
-      src = fetchFromGitHub {
-        owner = "KhronosGroup";
-        repo = "SPIRV-Headers";
-        rev = "ac638f1815425403e946d0ab78bac71d2bdbf3be";
-        sha256 = "1lkhs7pxcrfkmiizcxl0w5ajx6swwjv7w3iq586ipgh571fc75gx";
+        rev = "c9c1f54330d13a0bec1aa3f08d436249d8e35596";
+        sha256 = "0r5whsw9x8j4199xwxv293ar2ga73pm2s7rngw732ylh6rw3bkly";
       };
     });
+    argSpirv-headers = localSpirvHeaders;
   }).overrideAttrs (_: {
     src = fetchFromGitHub {
       owner = "KhronosGroup";
       repo = "glslang";
-      rev = "e00d27c6d65b7d3e72506a311d7f053da4051295";
-      sha256 = "00lzvzk613gpm1vsdxffmx52z3c52ijwvzk4sfhh95p71kdydhgv";
+      rev = "dd69df7f3dac26362e10b0f38efb9e47990f7537";
+      sha256 = "1iafbh524avsjg4pjiq156b62pck2rwlfl2pjnml8sjy285506rk";
     };
   });
 in
 
 stdenv.mkDerivation rec {
   pname = "vulkan-validation-layers";
-  version = "1.2.141.0";
+  version = "1.2.162.0";
 
   # If we were to use "dev" here instead of headers, the setupHook would be
   # placed in that output instead of "out".
@@ -60,7 +61,7 @@ stdenv.mkDerivation rec {
     owner = "KhronosGroup";
     repo = "Vulkan-ValidationLayers";
     rev = "sdk-${version}";
-    sha256 = "1yfas7q122kx74nbjk3wxlyacysgncvlvq081a5dp238m88vkmbj";
+    sha256 = "1mpqmxh9zm20jdar59lp4yjpqfzxn2pwds6bkvnzihfy0pymf15k";
   };
 
   nativeBuildInputs = [
@@ -83,6 +84,7 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [
     "-DGLSLANG_INSTALL_DIR=${localGlslang}"
+    "-DSPIRV_HEADERS_INSTALL_DIR=${localSpirvHeaders}"
     "-DBUILD_LAYER_SUPPORT_FILES=ON"
   ];
 
@@ -98,8 +100,8 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "LunarG Vulkan loader";
-    homepage    = "https://www.lunarg.com";
+    description = "The official Khronos Vulkan validation layers";
+    homepage    = "https://github.com/KhronosGroup/Vulkan-ValidationLayers";
     platforms   = platforms.linux;
     license     = licenses.asl20;
     maintainers = [ maintainers.ralith ];
diff --git a/pkgs/development/tools/wally-cli/default.nix b/pkgs/development/tools/wally-cli/default.nix
index ffa66646859..4c843d04b8c 100644
--- a/pkgs/development/tools/wally-cli/default.nix
+++ b/pkgs/development/tools/wally-cli/default.nix
@@ -4,7 +4,6 @@ buildGoModule rec {
   pname = "wally-cli";
   version = "2.0.0";
 
-  goPackagePath = "github.com/zsa/wally-cli";
   subPackages = [ "." ];
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/tools/wasm-bindgen-cli/Cargo.lock b/pkgs/development/tools/wasm-bindgen-cli/Cargo.lock
index eed61d4ec14..289bb631c12 100644
--- a/pkgs/development/tools/wasm-bindgen-cli/Cargo.lock
+++ b/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.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86"
+checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5"
 dependencies = [
  "memchr",
 ]
@@ -33,9 +33,9 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.32"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b602bfe940d21c130f3895acd65221e8a61270debe89d628b9cb4e3ccb8569b"
+checksum = "2c0df63cb2955042487fad3aefd2c6e3ae7389ac5dc1beb28921de0b69f779d4"
 
 [[package]]
 name = "arrayref"
@@ -45,9 +45,9 @@ 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"
@@ -57,9 +57,9 @@ checksum = "97be891acc47ca214468e09425d02cef3af2c94d0d82081cd02061f996802f14"
 
 [[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,14 +85,14 @@ 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",
+ "nom 6.0.1",
+ "num-traits 0.2.14",
  "percent-encoding 2.1.0",
  "proc-macro2",
  "quote",
@@ -104,9 +103,9 @@ dependencies = [
 
 [[package]]
 name = "assert_cmd"
-version = "1.0.1"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c88b9ca26f9c16ec830350d309397e74ee9abdfd8eb1f71cb6ecc71a3fc818da"
+checksum = "3dc1679af9a1ab4bea16f228b05d18f8363f8327b1fa8db00d2760cfafc6b61e"
 dependencies = [
  "doc-comment",
  "predicates",
@@ -134,9 +133,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 +149,9 @@ dependencies = [
 
 [[package]]
 name = "base64"
-version = "0.11.0"
+version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
+checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
 
 [[package]]
 name = "bitflags"
@@ -167,10 +166,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
 
 [[package]]
+name = "bitvec"
+version = "0.19.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7ba35e9565969edb811639dbebfe34edc0368e472c5018474c8eb2543397f81"
+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",
@@ -210,9 +221,9 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.58"
+version = "1.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9a06fb2e53271d7c279ec1efea6ab691c35a2ae67ec0d91d7acec0caf13b518"
+checksum = "4c0496836a84f8d0495758516b8621a622beb77c0fed418570e50764093ced48"
 
 [[package]]
 name = "cfg-if"
@@ -221,6 +232,12 @@ 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 = "char"
 version = "0.1.0"
 dependencies = [
@@ -229,13 +246,15 @@ 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]]
@@ -246,9 +265,9 @@ checksum = "498d20a7aaf62625b9bf26e637cf7736417cde1d0c99f1d04d1170229a85cf87"
 
 [[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",
@@ -279,9 +298,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"
@@ -289,7 +308,7 @@ version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b8d976903543e0c48546a91908f21588a680a8c8f984df9a5d69feccb2b2a211"
 dependencies = [
- "cfg-if",
+ "cfg-if 0.1.10",
  "wasm-bindgen",
 ]
 
@@ -302,64 +321,68 @@ dependencies = [
 ]
 
 [[package]]
+name = "const_fn"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd51eab21ab4fd6a3bf889e2d0958c0a6e3a61ad04260325e919e652a2a62826"
+
+[[package]]
 name = "constant_time_eq"
 version = "0.1.5"
 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.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285"
+checksum = "dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775"
 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",
+ "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.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570"
+checksum = "a1aaa739f95311c2c7887a76863f500026092fb1dce0161dab577e559ef3569d"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
+ "const_fn",
  "crossbeam-utils",
- "maybe-uninit",
+ "lazy_static",
+ "memoffset",
+ "scopeguard",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.7.2"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
+checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d"
 dependencies = [
- "autocfg 1.0.0",
- "cfg-if",
+ "autocfg 1.0.1",
+ "cfg-if 1.0.0",
  "lazy_static",
 ]
 
 [[package]]
 name = "curl"
-version = "0.4.31"
+version = "0.4.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9447ad28eee2a5cfb031c329d46bef77487244fff6a724b378885b8691a35f78"
+checksum = "e268162af1a5fe89917ae25ba3b0a77c8da752bdc58e7dbb4f15b91fbd33756e"
 dependencies = [
  "curl-sys",
  "libc",
@@ -372,9 +395,9 @@ dependencies = [
 
 [[package]]
 name = "curl-sys"
-version = "0.4.33+curl-7.71.1"
+version = "0.4.39+curl-7.74.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e9818ea018327f79c811612f29b9834d2abddbe7db81460a2d5c7e12946b337"
+checksum = "07a8ce861e7b68a0b394e814d7ee9f1b2750ff8bd10372c6ad3bacc10e86f874"
 dependencies = [
  "cc",
  "libc",
@@ -453,9 +476,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"
@@ -468,12 +491,12 @@ dependencies = [
 
 [[package]]
 name = "env_logger"
-version = "0.7.1"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
+checksum = "f26ecb66b4bdca6c1409b40fb255eefc2bd4f6d135dab3c3124f80ffa2a9661e"
 dependencies = [
  "atty",
- "humantime 1.3.0",
+ "humantime",
  "log 0.4.11",
  "regex",
  "termcolor",
@@ -493,11 +516,11 @@ dependencies = [
 
 [[package]]
 name = "filetime"
-version = "0.2.11"
+version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e500da2fab70bdc43f8f0e0b350a227f31c72311c56aba48f01d5cd62bb0345b"
+checksum = "0c122a393ea57648015bf06fbd3d372378992e86b9ff5a7a497b076a28c79efe"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "libc",
  "redox_syscall",
  "winapi",
@@ -509,7 +532,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,10 +557,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
 
 [[package]]
+name = "funty"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ba62103ce691c2fd80fbae2213dfdda9ce60804973ac6b6e97de818ea7f52c8"
+
+[[package]]
 name = "futures"
-version = "0.3.5"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e05b85ec287aac0dc34db7d4a569323df697f9c55b99b15d6b4ef8cde49f613"
+checksum = "9b3b0c040a1fe6529d30b3c5944b280c7f0dcb2930d2c3062bca967b602583d0"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -550,9 +579,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.5"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5"
+checksum = "4b7109687aa4e177ef6fe84553af6280ef2778bdb7783ba44c9dc3399110fe64"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -569,9 +598,9 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.5"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399"
+checksum = "847ce131b72ffb13b6109a221da9ad97a64cbe48feb1028356b836b47b8f1748"
 
 [[package]]
 name = "futures-core-preview"
@@ -581,9 +610,9 @@ checksum = "b35b6263fb1ef523c3056565fa67b1d16f0a8604ff12b11b08c25f28a734c60a"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.5"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314"
+checksum = "4caa2b2b68b880003057c1dd49f1ed937e38f22fcf6c212188a121f08cf40a65"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -592,15 +621,15 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.5"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789"
+checksum = "611834ce18aaa1bd13c4b374f5d653e1027cf99b6b502584ff8c9a64413b30bb"
 
 [[package]]
 name = "futures-macro"
-version = "0.3.5"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39"
+checksum = "77408a692f1f97bcc61dc001d752e00643408fbc922e4d634c655df50d595556"
 dependencies = [
  "proc-macro-hack",
  "proc-macro2",
@@ -610,24 +639,24 @@ dependencies = [
 
 [[package]]
 name = "futures-sink"
-version = "0.3.5"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc"
+checksum = "f878195a49cee50e006b02b93cf7e0a95a38ac7b776b4c4d9cc1207cd20fcb3d"
 
 [[package]]
 name = "futures-task"
-version = "0.3.5"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626"
+checksum = "7c554eb5bf48b2426c4771ab68c6b14468b6e76cc90996f528c3338d761a4d0d"
 dependencies = [
  "once_cell",
 ]
 
 [[package]]
 name = "futures-util"
-version = "0.3.5"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6"
+checksum = "d304cff4a7b99cfb7986f7d43fbe93d175e72e704a8860787cc95e9ffd85cbd2"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -645,13 +674,13 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.1.14"
+version = "0.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
+checksum = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6"
 dependencies = [
- "cfg-if",
+ "cfg-if 0.1.10",
  "libc",
- "wasi",
+ "wasi 0.9.0+wasi-snapshot-preview1",
 ]
 
 [[package]]
@@ -695,9 +724,9 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.1.15"
+version = "0.1.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
+checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8"
 dependencies = [
  "libc",
 ]
@@ -716,15 +745,6 @@ checksum = "b6cab2627acfc432780848602f3f558f7e9dd427352224b0d9324025796d2a5e"
 
 [[package]]
 name = "humantime"
-version = "1.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
-dependencies = [
- "quick-error",
-]
-
-[[package]]
-name = "humantime"
 version = "2.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3c1ad908cc71012b7bea4d0c53ba96a8cba9962f048fa68d143376143d863b7a"
@@ -797,7 +817,7 @@ dependencies = [
 
 [[package]]
 name = "js-sys"
-version = "0.3.44"
+version = "0.3.46"
 dependencies = [
  "wasm-bindgen",
  "wasm-bindgen-futures",
@@ -825,16 +845,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3576a87f2ba00f6f106fdfcd16db1d698d648a26ad8e0573cad8537c3c362d2a"
 
 [[package]]
+name = "lexical-core"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db65c6da02e61f55dae90a0ae427b2a5f6b3e8db09f58d10efab23af92592616"
+dependencies = [
+ "arrayvec",
+ "bitflags 1.2.1",
+ "cfg-if 0.1.10",
+ "ryu",
+ "static_assertions",
+]
+
+[[package]]
 name = "libc"
-version = "0.2.74"
+version = "0.2.81"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2f02823cf78b754822df5f7f268fb59822e7296276d3e069d8e8cb26a14bd10"
+checksum = "1482821306169ec4d07f6aca392a4681f66c75c9918aa49641a2595db64053cb"
 
 [[package]]
 name = "libz-sys"
-version = "1.0.25"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2eb5e43362e38e2bca2fd5f5134c4d4564a23a5c28e9b95411652021a8675ebe"
+checksum = "602113192b08db8f38796c4e85c39e960c145965140e918018bcde1952429655"
 dependencies = [
  "cc",
  "libc",
@@ -857,7 +890,7 @@ version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
 dependencies = [
- "cfg-if",
+ "cfg-if 0.1.10",
 ]
 
 [[package]]
@@ -873,24 +906,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.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
+checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
 
 [[package]]
 name = "memoffset"
-version = "0.5.5"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f"
+checksum = "157b4208e3059a8f9e78d559edc658e13df41410cb3ae03979c83130067fdd87"
 dependencies = [
- "autocfg 1.0.0",
+ "autocfg 1.0.1",
 ]
 
 [[package]]
@@ -950,6 +977,18 @@ dependencies = [
 ]
 
 [[package]]
+name = "nom"
+version = "6.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88034cfd6b4a0d54dd14f4a507eceee36c0b70e5a02236c4e4df571102be17f0"
+dependencies = [
+ "bitvec",
+ "lexical-core",
+ "memchr",
+ "version_check 0.9.2",
+]
+
+[[package]]
 name = "normalize-line-endings"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -957,23 +996,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]]
@@ -983,7 +1022,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]]
@@ -992,16 +1031,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]]
@@ -1016,18 +1055,18 @@ dependencies = [
 
 [[package]]
 name = "once_cell"
-version = "1.4.0"
+version = "1.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d"
+checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0"
 
 [[package]]
 name = "openssl"
-version = "0.10.30"
+version = "0.10.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d575eff3665419f9b83678ff2815858ad9d11567e082f5ac1814baba4e2bcb4"
+checksum = "8d008f51b1acffa0d3450a68606e6a51c123012edaacb0f4e1426bd978869187"
 dependencies = [
  "bitflags 1.2.1",
- "cfg-if",
+ "cfg-if 1.0.0",
  "foreign-types",
  "lazy_static",
  "libc",
@@ -1042,20 +1081,20 @@ checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
 
 [[package]]
 name = "openssl-src"
-version = "111.10.2+1.1.1g"
+version = "111.13.0+1.1.1i"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a287fdb22e32b5b60624d4a5a7a02dbe82777f730ec0dbc42a0554326fef5a70"
+checksum = "045e4dc48af57aad93d665885789b43222ae26f4886494da12d1ed58d309dcb6"
 dependencies = [
  "cc",
 ]
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.58"
+version = "0.9.59"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a842db4709b604f0fe5d1170ae3565899be2ad3d9cbc72dedc789ac0511f78de"
+checksum = "de52d8eabd217311538a39bba130d7dea1f1e118010fee7a033d966845e7d5fe"
 dependencies = [
- "autocfg 1.0.0",
+ "autocfg 1.0.1",
  "cc",
  "libc",
  "openssl-src",
@@ -1079,7 +1118,7 @@ checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
 name = "performance"
 version = "0.1.0"
 dependencies = [
- "humantime 2.0.1",
+ "humantime",
  "wasm-bindgen",
  "web-sys",
 ]
@@ -1125,18 +1164,18 @@ dependencies = [
 
 [[package]]
 name = "pin-project"
-version = "0.4.23"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca4433fff2ae79342e497d9f8ee990d174071408f28f726d6d83af93e58e48aa"
+checksum = "9ccc2237c2c489783abd8c4c80e5450fc0e98644555b1364da68cc29aa151ca7"
 dependencies = [
  "pin-project-internal",
 ]
 
 [[package]]
 name = "pin-project-internal"
-version = "0.4.23"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c0e815c3ee9a031fdf5af21c10aa17c573c9c6a566328d99e3936c34e36461f"
+checksum = "f8e8d2bf0b23038a4424865103a4df472855692821aab4e4f5c3312d461d9e5f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1151,9 +1190,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"
@@ -1169,9 +1208,9 @@ 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"
@@ -1204,9 +1243,9 @@ 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",
@@ -1217,22 +1256,20 @@ dependencies = [
 
 [[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",
 ]
 
 [[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"
@@ -1242,9 +1279,9 @@ checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a"
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.19"
+version = "1.0.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12"
+checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71"
 dependencies = [
  "unicode-xid",
 ]
@@ -1265,6 +1302,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "radium"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "941ba9d78d8e2f7ce474c015eea4d9c6d25b6a3327f9832ee29a4de27f91bbb8"
+
+[[package]]
 name = "rand"
 version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1439,11 +1482,11 @@ dependencies = [
 
 [[package]]
 name = "rayon"
-version = "1.3.1"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62f02856753d04e03e26929f820d0a0a337ebe71f849801eea335d464b349080"
+checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674"
 dependencies = [
- "autocfg 1.0.0",
+ "autocfg 1.0.1",
  "crossbeam-deque",
  "either",
  "rayon-core",
@@ -1451,12 +1494,12 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.7.1"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e92e15d89083484e11353891f1af602cc661426deb9564c298b270c726973280"
+checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a"
 dependencies = [
+ "crossbeam-channel",
  "crossbeam-deque",
- "crossbeam-queue",
  "crossbeam-utils",
  "lazy_static",
  "num_cpus",
@@ -1504,9 +1547,9 @@ checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
 
 [[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",
@@ -1515,9 +1558,9 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.3.9"
+version = "1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
+checksum = "38cf2c13ed4745de91a5eb834e11c00bcc3709e773173b2ce4c56c9fbde04b9c"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1527,9 +1570,9 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.6.18"
+version = "0.6.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
+checksum = "3b181ba2dcf07aaccad5448e8ead58db5b742cf85dfe035e2227f137a539a189"
 
 [[package]]
 name = "remove_dir_all"
@@ -1573,11 +1616,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",
@@ -1592,9 +1635,9 @@ dependencies = [
 
 [[package]]
 name = "rustc-demangle"
-version = "0.1.16"
+version = "0.1.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
+checksum = "6e3bad0ee36814ca07d7968269dd4b7ec89ec2da10c4bb613928d3077083c232"
 
 [[package]]
 name = "ryu"
@@ -1648,18 +1691,18 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
 
 [[package]]
 name = "serde"
-version = "1.0.114"
+version = "1.0.118"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3"
+checksum = "06c64263859d87aa2eb554587e2d23183398d617427327cf2b3d0ed8c69e4800"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.114"
+version = "1.0.118"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e"
+checksum = "c84d3526699cd55261af4b941e4e725444df67aa4f9e6a3564f18030d12672df"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1668,9 +1711,9 @@ dependencies = [
 
 [[package]]
 name = "serde_json"
-version = "1.0.57"
+version = "1.0.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "164eacbdb13512ec2745fb09d51fd5b22b0d65ed294a1dcf7285a360c80a675c"
+checksum = "1500e84d27fe482ed1dc791a56eddc2f230046a040fa908c08bda1d9fb615779"
 dependencies = [
  "itoa",
  "ryu",
@@ -1697,11 +1740,11 @@ checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
 
 [[package]]
 name = "socket2"
-version = "0.3.12"
+version = "0.3.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918"
+checksum = "2c29947abdee2a218277abeca306f25789c938e500ea5a9d4b12a5a504466902"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "libc",
  "redox_syscall",
  "winapi",
@@ -1714,6 +1757,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"
@@ -1727,9 +1776,9 @@ checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c"
 
 [[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",
@@ -1738,9 +1787,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",
@@ -1751,9 +1800,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "1.0.36"
+version = "1.0.54"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cdb98bcb1f9d81d07b536179c269ea15999b5d14ea958196413869445bb5250"
+checksum = "9a2af957a63d6bd42255c359c93d9bfdb97076bd3b820897ce55ffbfbf107f44"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1761,15 +1810,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "syn-mid"
-version = "0.5.0"
+name = "tap"
+version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7be3539f6c128a931cf19dcee741c1af532c7fd387baa739c03dd2e96479338a"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
+checksum = "36474e732d1affd3a6ed582781b3683df3d0563714c59c39591e8ff707cf078e"
 
 [[package]]
 name = "tempdir"
@@ -1787,7 +1831,7 @@ version = "3.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
 dependencies = [
- "cfg-if",
+ "cfg-if 0.1.10",
  "libc",
  "rand 0.7.3",
  "redox_syscall",
@@ -1808,9 +1852,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",
 ]
@@ -1844,11 +1888,12 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.1.43"
+version = "0.1.44"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
+checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
 dependencies = [
  "libc",
+ "wasi 0.10.0+wasi-snapshot-preview1",
  "winapi",
 ]
 
@@ -1867,9 +1912,18 @@ dependencies = [
 
 [[package]]
 name = "tinyvec"
-version = "0.3.3"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed"
+checksum = "ccf8dbc19eb42fba10e8feaaec282fb50e2c14b2726d6301dbfeed0f73306a6f"
+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"
@@ -1884,9 +1938,9 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.5.6"
+version = "0.5.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a"
+checksum = "75cf45bb0bef80604d001caaec0d09da99611b3c0fd39d3080468875cdb65645"
 dependencies = [
  "serde",
 ]
@@ -1899,9 +1953,9 @@ checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41"
 
 [[package]]
 name = "trybuild"
-version = "1.0.31"
+version = "1.0.37"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a4d94e6adf00b96b1ab94fcfcd8c3cf916733b39adf90c8f72693629887b9b8"
+checksum = "18ccca2bc5e97a2688cba15c573d5179cdff976fc597b95472c2e0f443492b98"
 dependencies = [
  "glob",
  "lazy_static",
@@ -1949,18 +2003,18 @@ dependencies = [
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.13"
+version = "0.1.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977"
+checksum = "a13e63ab62dbe32aeee58d1c5408d35c36c392bba5d9d3142287219721afe606"
 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"
@@ -1987,9 +2041,9 @@ dependencies = [
 
 [[package]]
 name = "vcpkg"
-version = "0.2.10"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c"
+checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb"
 
 [[package]]
 name = "vec_map"
@@ -2052,10 +2106,16 @@ 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 = "wasm-bindgen"
-version = "0.2.67"
+version = "0.2.69"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "js-sys",
  "serde",
  "serde_derive",
@@ -2069,7 +2129,7 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.67"
+version = "0.2.69"
 dependencies = [
  "bumpalo",
  "lazy_static",
@@ -2090,7 +2150,7 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-cli"
-version = "0.2.67"
+version = "0.2.69"
 dependencies = [
  "anyhow",
  "assert_cmd",
@@ -2118,7 +2178,7 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-cli-support"
-version = "0.2.67"
+version = "0.2.69"
 dependencies = [
  "anyhow",
  "base64 0.9.3",
@@ -2140,21 +2200,21 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-externref-xform"
-version = "0.2.67"
+version = "0.2.69"
 dependencies = [
  "anyhow",
  "rayon",
  "walrus",
  "wasmprinter",
- "wast",
+ "wast 21.0.0",
  "wat",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.17"
+version = "0.4.19"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "futures-channel-preview",
  "js-sys",
  "wasm-bindgen",
@@ -2164,7 +2224,7 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.67"
+version = "0.2.69"
 dependencies = [
  "quote",
  "trybuild",
@@ -2175,7 +2235,7 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.67"
+version = "0.2.69"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2186,13 +2246,13 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-multi-value-xform"
-version = "0.2.67"
+version = "0.2.69"
 dependencies = [
  "anyhow",
  "rayon",
  "walrus",
  "wasmprinter",
- "wast",
+ "wast 21.0.0",
  "wat",
 ]
 
@@ -2207,11 +2267,11 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.67"
+version = "0.2.69"
 
 [[package]]
 name = "wasm-bindgen-test"
-version = "0.3.17"
+version = "0.3.19"
 dependencies = [
  "console_error_panic_hook",
  "js-sys",
@@ -2237,7 +2297,7 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-test-macro"
-version = "0.3.17"
+version = "0.3.19"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2245,7 +2305,7 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-threads-xform"
-version = "0.2.67"
+version = "0.2.69"
 dependencies = [
  "anyhow",
  "walrus",
@@ -2254,7 +2314,7 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-wasm-conventions"
-version = "0.2.67"
+version = "0.2.69"
 dependencies = [
  "anyhow",
  "walrus",
@@ -2262,7 +2322,7 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-wasm-interpreter"
-version = "0.2.67"
+version = "0.2.69"
 dependencies = [
  "anyhow",
  "log 0.4.11",
@@ -2274,7 +2334,7 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-webidl"
-version = "0.2.67"
+version = "0.2.69"
 dependencies = [
  "anyhow",
  "env_logger",
@@ -2323,18 +2383,18 @@ checksum = "a950e6a618f62147fd514ff445b2a0b53120d382751960797f85f058c7eda9b9"
 
 [[package]]
 name = "wasmparser"
-version = "0.60.2"
+version = "0.71.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2d5790a08f11f3d6b5767f6c49152df74b215e3dc5a38147713c4f6a05aac7f"
+checksum = "89a30c99437829ede826802bfcf28500cf58df00e66cb9114df98813bc145ff1"
 
 [[package]]
 name = "wasmprinter"
-version = "0.2.7"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ecc836dba85dd00df43d71b22063bcb367d324aa1be0d046077cc7fca4c43876"
+checksum = "0515db67c610037f3c53ec36976edfd1eb01bac6b1226914b17ce609480e729f"
 dependencies = [
  "anyhow",
- "wasmparser 0.60.2",
+ "wasmparser 0.71.0",
 ]
 
 [[package]]
@@ -2347,17 +2407,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "wast"
+version = "30.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b79907b22f740634810e882d8d1d9d0f9563095a8ab94e786e370242bff5cd2"
+dependencies = [
+ "leb128",
+]
+
+[[package]]
 name = "wat"
-version = "1.0.22"
+version = "1.0.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce85d72b74242c340e9e3492cfb602652d7bb324c3172dd441b5577e39a2e18c"
+checksum = "a8279a02835bf12e61ed2b3c3cbc6ecf9918762fd97e036917c11a09ec20ca44"
 dependencies = [
- "wast",
+ "wast 30.0.0",
 ]
 
 [[package]]
 name = "web-sys"
-version = "0.3.44"
+version = "0.3.46"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -2388,6 +2457,7 @@ version = "0.1.0"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
+ "wasm-bindgen-futures",
  "wasm-bindgen-test",
  "wasm-bindgen-webidl",
 ]
@@ -2430,7 +2500,7 @@ version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8a7d4f9feb723a800d8f7b74edc9fa44ff35cb0b2ec64886714362f423427f37"
 dependencies = [
- "nom",
+ "nom 5.1.2",
 ]
 
 [[package]]
@@ -2500,7 +2570,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "33358e95c77d660f1c7c07f4a93c2bd89768965e844e3c50730bb4b42658df5f"
 dependencies = [
  "anyhow",
- "wast",
+ "wast 21.0.0",
  "wit-writer",
 ]
 
@@ -2555,3 +2625,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/pkgs/development/tools/wasm-bindgen-cli/default.nix b/pkgs/development/tools/wasm-bindgen-cli/default.nix
index 0863905e932..5794f5cc335 100644
--- a/pkgs/development/tools/wasm-bindgen-cli/default.nix
+++ b/pkgs/development/tools/wasm-bindgen-cli/default.nix
@@ -4,7 +4,7 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wasm-bindgen-cli";
-  version = "0.2.67";
+  version = "0.2.69";
 
   src =
     let
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
         owner = "rustwasm";
         repo = "wasm-bindgen";
         rev = version;
-        sha256 = "0qx178aicbn59b150j5r78zya5n0yljvw4c4lhvg8x4cpfshjb5j";
+        sha256 = "1psylk3hlx0ahwib3ph8qdk0jwlp8qzc6dv61002rj7ns28vs4mx";
       };
     in runCommand "source" { } ''
       cp -R ${tarball} $out
@@ -23,14 +23,14 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security curl ];
   nativeBuildInputs = [ pkgconfig ];
 
-  cargoSha256 = "0chpw6syqxn824cbkdjx1s26vmajx511gc4mp9y64vy7b7asba6x";
+  cargoSha256 = "1wrfly7c3an1mjqm7v13mlvx57hwlcxfjijkimicck04q6qdhbp6";
   cargoBuildFlags = [ "-p" pname ];
 
   meta = with lib; {
     homepage = "https://rustwasm.github.io/docs/wasm-bindgen/";
     license = licenses.asl20;
     description = "Facilitating high-level interactions between wasm modules and JavaScript";
-    maintainers = with maintainers; [ ma27 ];
+    maintainers = with maintainers; [ ma27 rizary ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/wire/default.nix b/pkgs/development/tools/wire/default.nix
new file mode 100644
index 00000000000..ff6d1e7ac5d
--- /dev/null
+++ b/pkgs/development/tools/wire/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "wire";
+  version = "0.4.0";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "wire";
+    rev = "v${version}";
+    sha256 = "0fYXo/LnxKV/qoaP59XCyEtLLAysZm/WhRdm3RnLdvw=";
+  };
+
+  vendorSha256 = "ZFUX4LgPte6oAf94D82Man/P9VMpx+CDNCTMBwiy9Fc=";
+
+  subPackages = [ "cmd/wire" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/google/wire";
+    description = "A code generation tool that automates connecting components using dependency injection";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ svrana ];
+  };
+}
diff --git a/pkgs/development/tools/wrangler/default.nix b/pkgs/development/tools/wrangler/default.nix
index b7020eacdc3..6b85e20612b 100644
--- a/pkgs/development/tools/wrangler/default.nix
+++ b/pkgs/development/tools/wrangler/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wrangler";
-  version = "1.12.2";
+  version = "1.12.3";
 
   src = fetchFromGitHub {
     owner = "cloudflare";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1w0j6if1fnih1036hlb9a3c6wgjw4p057llhjf0f3d568ah1244a";
+    sha256 = "1h9020yf5jsbilzn94h7qyxw9qnz3vw43g8a2415wvjqq6ihzfvm";
   };
 
-  cargoSha256 = "0d9wvdjjakznz8dnqx4gqxh0xkxrh4229460hg6dr9qn492p7nfx";
+  cargoSha256 = "12azc41y2yx936ax9b1yylc0gy91k0m7ih6p0bkw7m928f762hpx";
 
   nativeBuildInputs = [ perl ] ++ stdenv.lib.optionals stdenv.isLinux [ pkg-config ];
 
diff --git a/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/urlToName.js b/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/urlToName.js
index 81feaaf3a65..bd48b84f22d 100644
--- a/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/urlToName.js
+++ b/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/urlToName.js
@@ -7,9 +7,17 @@ const path = require('path')
 // - https://registry.npmjs.org/acorn-es7-plugin/-/acorn-es7-plugin-1.1.7.tgz
 // - git+https://github.com/srghma/node-shell-quote.git
 // - git+https://1234user:1234pass@git.graphile.com/git/users/1234user/postgraphile-supporter.git
+// - https://codeload.github.com/Gargron/emoji-mart/tar.gz/934f314fd8322276765066e8a2a6be5bac61b1cf
 
 function urlToName(url) {
-  if (url.startsWith('git+')) {
+
+  // Yarn generates `codeload.github.com` tarball URLs, where the final
+  // path component (file name) is the git hash. See #111.
+  // See also https://github.com/yarnpkg/yarn/blob/989a7406/src/resolvers/exotics/github-resolver.js#L24-L26
+  let isCodeloadGitTarballUrl =
+    url.startsWith('https://codeload.github.com/') && url.includes('/tar.gz/')
+
+  if (url.startsWith('git+') || isCodeloadGitTarballUrl) {
     return path.basename(url)
   }
 
diff --git a/pkgs/development/tools/yj/default.nix b/pkgs/development/tools/yj/default.nix
index 94237abf89b..43771e4b679 100644
--- a/pkgs/development/tools/yj/default.nix
+++ b/pkgs/development/tools/yj/default.nix
@@ -1,27 +1,24 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-{ stdenv, buildGoPackage, fetchgit, fetchhg, fetchbzr, fetchsvn }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "yj";
-  version = "4.0.0";
-  rev = "d9a48607cc5c812e8cf4abccc8ad26f37ab51558";
+  version = "5.0.0";
 
-  goPackagePath = "github.com/sclevine/yj";
-
-  src = fetchgit {
-    inherit rev;
-    url = "https://github.com/sclevine/yj";
-    sha256 = "04irphzs6hp9hvyski29ad29ga1kis3h8bw7jqvmy2c2rkrrsh7x";
+  src = fetchFromGitHub {
+    owner = "sclevine";
+    repo = "yj";
+    rev = "c4c13b7641389c76ea028b48091f851f3efb6376";
+    sha256 = "0bnb88wfm2vagh4yb1h9xhp3045ga0b6a77n3j2z5b4mvwshx5dr";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = "0y0n9fsb85qlpf9slwsxzarmfi98asa4x04qp2r8pagl28l0i8wv";
+
+  buildFlagsArray = [ "-ldflags=-s -w -X main.Version=${version}" ];
 
   meta = with stdenv.lib; {
     description = ''Convert YAML <=> TOML <=> JSON <=> HCL'';
     license = licenses.asl20;
     maintainers = with maintainers; [ Profpatsch ];
-    downloadPage = "https://github.com/sclevine/yj";
-    updateWalker = true;
-    inherit version;
+    homepage = "https://github.com/sclevine/yj";
   };
 }
diff --git a/pkgs/development/tools/yj/deps.nix b/pkgs/development/tools/yj/deps.nix
deleted file mode 100644
index 0bfe7f5f5da..00000000000
--- a/pkgs/development/tools/yj/deps.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-  {
-    goPackagePath = "github.com/BurntSushi/toml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/BurntSushi/toml";
-      rev = "3012a1dbe2e4bd1391d42b32f0577cb7bbc7f005";
-      sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/hcl";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/hcl";
-      rev = "cf7d376da96d9cecec7c7483cec2735efe54a410";
-      sha256 = "0i1zhgpyvvgwkz74k8wd3sygsap1saqv37rw0j5vdpaazmpr1qkb";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "51d6538a90f86fe93ac480b35f37b2be17fef232";
-      sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
-    };
-  }
-]
diff --git a/pkgs/development/tools/ytt/default.nix b/pkgs/development/tools/ytt/default.nix
index 05410bbaec5..67c8509fd70 100644
--- a/pkgs/development/tools/ytt/default.nix
+++ b/pkgs/development/tools/ytt/default.nix
@@ -10,8 +10,6 @@ buildGoModule rec {
     sha256 = "0v9wp15aj4r7wif8i897zwj3c6bg41b95kk7vi3a3bzin814qn6l";
   };
 
-  goPackagePath = "github.com/vmware-tanzu/carvel-ytt";
-
   vendorSha256 = null;
 
   subPackages = [ "cmd/ytt" ];
diff --git a/pkgs/development/web/deno/default.nix b/pkgs/development/web/deno/default.nix
index 8f7452fc6d6..12bd54852a0 100644
--- a/pkgs/development/web/deno/default.nix
+++ b/pkgs/development/web/deno/default.nix
@@ -18,16 +18,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "deno";
-  version = "1.5.3";
+  version = "1.6.3";
 
   src = fetchFromGitHub {
     owner = "denoland";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0dxjcab10kqfkflq1x9np5wxlysq33swdwi2f28bi7q312sw5x2y";
+    sha256 = "1wmkx458fpsfw57ysawxc0ghxag8v051hiyswm7nnb7gckrm6j8z";
     fetchSubmodules = true;
   };
-  cargoSha256 = "0lhdrsvmf5b4fq2yg9vc00q1sgc1fjk0fh5axs2zffcpsp73ay2k";
+  cargoSha256 = "08vzsp53019gmxkn8lpa6l84w3fvbrnr11lzrfgf99nmii6l2hq5";
 
   # Install completions post-install
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/development/web/deno/deps.nix b/pkgs/development/web/deno/deps.nix
index 09c7b3973d9..4426c600df7 100644
--- a/pkgs/development/web/deno/deps.nix
+++ b/pkgs/development/web/deno/deps.nix
@@ -2,11 +2,11 @@
 {}:
 rec {
   rustyV8Lib = {
-    version = "0.12.0";
+    version = "0.15.0";
     sha256s = {
-      x86_64-linux = "18pim960fh18wrdkhirlj4hnnbxrk172r7yksdn2k5z9lgccighg";
-      aarch64-linux = "0d1c8kcz44n1mqprspnshzbqlqw7mq7vryxpmd49gw3fvhcy66y7";
-      x86_64-darwin = "1pc2dfq8p1a8dahkc4g8r6b9zwnvds60zc2lgbf8cj5n0ijd06y1";
+      x86_64-linux = "1j789pvqh44vsffzl5wg3pp3awrlixjrhbnjx2klsml7jv0lp0mq";
+      aarch64-linux = "13srja4vc275ygm806hcsr8mxjnd9qkzaqs58lxnp0702qs5xls6";
+      x86_64-darwin = "0aij9yb5i1r3pz0pyl51qdbgfspfdngwbk1qgkp4gxzl3cbnysx1";
     };
   };
 }
diff --git a/pkgs/development/web/lucky-cli/default.nix b/pkgs/development/web/lucky-cli/default.nix
index ffa6fba778a..5085346e3eb 100644
--- a/pkgs/development/web/lucky-cli/default.nix
+++ b/pkgs/development/web/lucky-cli/default.nix
@@ -2,13 +2,13 @@
 
 crystal.buildCrystalPackage rec {
   pname = "lucky-cli";
-  version = "0.24.0";
+  version = "0.25.0";
 
   src = fetchFromGitHub {
     owner = "luckyframework";
     repo = "lucky_cli";
     rev = "v${version}";
-    sha256 = "1z1ns6lx5v6nd5s78brpx7jarc9aldca5yrqjrdb14iyw0jlxig4";
+    sha256 = "sha256-/DKDg2lJO6PikF7+kbwRX8ClS8rflH8KdrZNx7AR36g=";
   };
 
   # the integration tests will try to clone a remote repos
@@ -38,5 +38,6 @@ crystal.buildCrystalPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.unix;
+    broken = lib.versionOlder crystal.version "0.35.1";
   };
 }
diff --git a/pkgs/development/web/lucky-cli/shard.lock b/pkgs/development/web/lucky-cli/shard.lock
index 6564e86624f..47c40af8c7d 100644
--- a/pkgs/development/web/lucky-cli/shard.lock
+++ b/pkgs/development/web/lucky-cli/shard.lock
@@ -1,5 +1,14 @@
-version: 1.0
+version: 2.0
 shards:
+  ameba:
+    git: https://github.com/crystal-ameba/ameba.git
+    version: 0.13.3
+
+  future:
+    git: https://github.com/crystal-community/future.cr.git
+    version: 0.1.0
+
   teeplate:
-    github: luckyframework/teeplate
-    version: 0.8.1
+    git: https://github.com/luckyframework/teeplate.git
+    version: 0.8.2
+
diff --git a/pkgs/development/web/lucky-cli/shards.nix b/pkgs/development/web/lucky-cli/shards.nix
index 0fa5aec9e06..2741583b681 100644
--- a/pkgs/development/web/lucky-cli/shards.nix
+++ b/pkgs/development/web/lucky-cli/shards.nix
@@ -1,8 +1,20 @@
 {
+  ameba = {
+    owner = "crystal-ameba";
+    repo = "ameba";
+    rev = "v0.13.3";
+    sha256 = "0yhb8vfrfzsm3a45h2jmcrn1n7jy3zn2hwims3dikgq8kaggws9y";
+  };
+  future = {
+    owner = "crystal-community";
+    repo = "future.cr";
+    rev = "v0.1.0";
+    sha256 = "1p88mfn1ab5hz4r81vjfm1vn9rww0lbbii8lyzfx9pkxanh9rp98";
+  };
   teeplate = {
     owner = "luckyframework";
     repo = "teeplate";
-    rev = "v0.8.1";
-    sha256 = "022jmmg3d2wq2xnhc63afldm9vrcr8xqn43s9i39d7qflrzrfc7v";
+    rev = "v0.8.2";
+    sha256 = "1v7njslcpir52nnyd30mfnxvqmb7ycqnlq80qnx6myw20iy9dcww";
   };
 }
diff --git a/pkgs/development/web/nodejs/v10.nix b/pkgs/development/web/nodejs/v10.nix
index a1df5ddd741..fa383e8f0c3 100644
--- a/pkgs/development/web/nodejs/v10.nix
+++ b/pkgs/development/web/nodejs/v10.nix
@@ -8,7 +8,7 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "10.23.0";
-    sha256 = "07vlqr0493a569i0npwgkxk5wa4vc7j68jsivchg08y2slwn0dgx";
+    version = "10.23.1";
+    sha256 = "1ypddif8jc8qrw9n1f8zbpknjcbnjc9xhpm57hc5nqbrmzsidal8";
     patches = stdenv.lib.optional stdenv.isDarwin ./bypass-xcodebuild.diff;
   }
diff --git a/pkgs/development/web/nodejs/v12.nix b/pkgs/development/web/nodejs/v12.nix
index 184585f12d4..ab082612c9d 100644
--- a/pkgs/development/web/nodejs/v12.nix
+++ b/pkgs/development/web/nodejs/v12.nix
@@ -8,7 +8,7 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "12.20.0";
-    sha256 = "12s2vjrlhgap2r12s7rqf0r2wzh9q2r5dkh3ak9fhrgmk9fgvqv1";
+    version = "12.20.1";
+    sha256 = "0lqq6a2byw4qmig98j45gqnl0593xdhx1dr9k7x2nnvhblrfw3p0";
     patches = stdenv.lib.optional stdenv.isDarwin ./bypass-xcodebuild.diff;
   }
diff --git a/pkgs/development/web/nodejs/v14.nix b/pkgs/development/web/nodejs/v14.nix
index c3e4d750780..64439688c16 100644
--- a/pkgs/development/web/nodejs/v14.nix
+++ b/pkgs/development/web/nodejs/v14.nix
@@ -8,7 +8,7 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "14.15.1";
-    sha256 = "1g61vqsgq3jsipw2fckj68i4a4pi1iz1kbw7mlw8jmzp8rl46q81";
+    version = "14.15.4";
+    sha256 = "177cxp4fhmglyx035j8smiy1bp5fz6q2phlcl0a2mdbldkvfrdxd";
     patches = stdenv.lib.optional stdenv.isDarwin ./bypass-xcodebuild.diff;
   }
diff --git a/pkgs/development/web/nodejs/v15.nix b/pkgs/development/web/nodejs/v15.nix
index 06cb48260cd..8687336c138 100644
--- a/pkgs/development/web/nodejs/v15.nix
+++ b/pkgs/development/web/nodejs/v15.nix
@@ -8,6 +8,6 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "15.4.0";
-    sha256 = "0kp0hckhjkmaqyvjpcj17rj6fw9fg3c95j78r2nr10bc65anjwms";
+    version = "15.5.1";
+    sha256 = "0qbb4dwgsy1a82ihjxl6r8bj7mwjzb21s720y1rahisd5p69l8ic";
   }
diff --git a/pkgs/development/web/woff2/default.nix b/pkgs/development/web/woff2/default.nix
index d770fb62753..aadeb3cd043 100644
--- a/pkgs/development/web/woff2/default.nix
+++ b/pkgs/development/web/woff2/default.nix
@@ -1,4 +1,6 @@
-{ brotli, cmake, pkgconfig, fetchFromGitHub, stdenv, static ? false }:
+{ brotli, cmake, pkgconfig, fetchFromGitHub, stdenv
+, static ? stdenv.hostPlatform.isStatic
+}:
 
 stdenv.mkDerivation rec {
   pname = "woff2";
diff --git a/pkgs/games/anki/bin.nix b/pkgs/games/anki/bin.nix
new file mode 100644
index 00000000000..5509d8a90ca
--- /dev/null
+++ b/pkgs/games/anki/bin.nix
@@ -0,0 +1,64 @@
+{ fetchurl, stdenv, lib, buildFHSUserEnv, appimageTools, writeShellScript, anki, undmg }:
+
+let
+  pname = "anki-bin";
+  # Update hashes for both Linux and Darwin!
+  version = "2.1.38";
+
+  unpacked = stdenv.mkDerivation {
+    inherit pname version;
+
+    src = fetchurl {
+      url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-linux.tar.bz2";
+      sha256 = "14zbz8k142djka3b5sld3368m98lj80c39m6xg87bz140h25ylz4";
+    };
+
+    installPhase = ''
+      runHook preInstall
+
+      xdg-mime () {
+        echo Stubbed!
+      }
+      export -f xdg-mime
+
+      PREFIX=$out bash install.sh
+
+      runHook postInstall
+    '';
+  };
+
+  meta = with lib; {
+    inherit (anki.meta) license homepage description longDescription;
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    maintainers = with maintainers; [ atemu ];
+  };
+in
+
+if stdenv.isLinux then buildFHSUserEnv (appimageTools.defaultFhsEnvArgs // {
+  name = "anki";
+
+  runScript = writeShellScript "anki-wrapper.sh" ''
+    # Wayland support is broken, disable via ENV variable
+    export QT_QPA_PLATFORM=xcb
+    exec ${unpacked}/bin/anki
+  '';
+
+  inherit meta;
+}) else stdenv.mkDerivation {
+  inherit pname version;
+
+  src = fetchurl {
+    url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-mac.dmg";
+    sha256 = "1krl014jhhby0zv4if9cgbcarmhcg6zccyhxw1yb6djiqap0zii7";
+  };
+
+  nativeBuildInputs = [ undmg ];
+  sourceRoot = ".";
+
+  installPhase = ''
+    mkdir -p $out/Applications/
+    cp -a Anki.app $out/Applications/
+  '';
+
+  inherit meta;
+}
diff --git a/pkgs/games/anki/default.nix b/pkgs/games/anki/default.nix
index 0d713b1f71e..af4e819eeda 100644
--- a/pkgs/games/anki/default.nix
+++ b/pkgs/games/anki/default.nix
@@ -196,6 +196,6 @@ buildPythonApplication rec {
     license = licenses.agpl3Plus;
     broken = stdenv.hostPlatform.isAarch64;
     platforms = platforms.mesaPlatforms;
-    maintainers = with maintainers; [ oxij Profpatsch enzime ];
+    maintainers = with maintainers; [ oxij Profpatsch ];
   };
 }
diff --git a/pkgs/games/augustus/default.nix b/pkgs/games/augustus/default.nix
index cabe419ef5b..18c8842e594 100644
--- a/pkgs/games/augustus/default.nix
+++ b/pkgs/games/augustus/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "augustus";
-  version = "1.4.1a";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "Keriew";
     repo = "augustus";
     rev = "v${version}";
-    sha256 = "1xqv8j8jh3f13fjhyf7hk1anrn799cwwsvsd75kpl9n5yh5s1j5y";
+    sha256 = "0czazw8mc3fbvdazs2nzvgxd1dpzjc8z5fwiv89vv4nd7laz3jkj";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -17,8 +17,9 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "An open source re-implementation of Caesar III. Fork of Julius incorporating gameplay changes";
     homepage = "https://github.com/Keriew/augustus";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     platforms = platforms.all;
+    broken = stdenv.isDarwin;
     maintainers = with maintainers; [ Thra11 ];
   };
 }
diff --git a/pkgs/games/banner/default.nix b/pkgs/games/banner/default.nix
index 6da8e1bf9bf..e0f9ca41c6d 100644
--- a/pkgs/games/banner/default.nix
+++ b/pkgs/games/banner/default.nix
@@ -1,17 +1,20 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  name = "banner-1.3.4";
+  pname = "banner";
+  version = "1.3.5";
 
-  src = fetchurl {
-    url = "http://software.cedar-solutions.com/ftp/software/${name}.tar.gz";
-    sha256 = "04q5ribr0r9s8waky3nk356l0qdhfxw15ipz7lsfgv1fxq3qk6bz";
+  src = fetchFromGitHub {
+    owner = "pronovic";
+    repo = "banner";
+    rev = "BANNER_V${version}";
+    sha256 = "ISSnGzrFSzSj/+KxgeFtaw4H+4Ea5x5S5C8xjcjKWqQ=";
   };
 
   meta = with stdenv.lib; {
     homepage = "http://software.cedar-solutions.com/utilities.html";
     description = "Print large banners to ASCII terminals";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
 
     longDescription = ''
       An implementation of the traditional Unix-program used to display
diff --git a/pkgs/games/cataclysm-dda/stable.nix b/pkgs/games/cataclysm-dda/stable.nix
index 076a33a9e89..4210a216694 100644
--- a/pkgs/games/cataclysm-dda/stable.nix
+++ b/pkgs/games/cataclysm-dda/stable.nix
@@ -10,13 +10,13 @@ let
   };
 
   self = common.overrideAttrs (common: rec {
-    version = "0.E-2";
+    version = "0.E-3";
 
     src = fetchFromGitHub {
       owner = "CleverRaven";
       repo = "Cataclysm-DDA";
       rev = version;
-      sha256 = "15l6w6lxays7qmsv0ci2ry53asb9an9dh7l7fc13256k085qcg68";
+      sha256 = "qhHtsm5cM0ct/7qXev0SiLInO2jqs2odxhWndLfRDIE=";
     };
 
     passthru = common.passthru // {
diff --git a/pkgs/games/chiaki/default.nix b/pkgs/games/chiaki/default.nix
index 27dde97ead7..23ea59d8e75 100644
--- a/pkgs/games/chiaki/default.nix
+++ b/pkgs/games/chiaki/default.nix
@@ -1,30 +1,62 @@
-{ lib, mkDerivation, fetchFromGitHub
-, cmake, ffmpeg, libopus, qtbase, qtmultimedia, qtsvg, pkgconfig, protobuf
-, python3Packages, SDL2 }:
+{ stdenv
+, fetchgit
+, cmake
+, pkg-config
+, protobuf
+, python3Packages
+, ffmpeg
+, libopus
+, mkDerivation
+, qtbase
+, qtmultimedia
+, qtsvg
+, SDL2
+, libevdev
+, udev
+, qtmacextras
+}:
 
 mkDerivation rec {
   pname = "chiaki";
-  version = "1.3.0";
+  version = "2.0.1";
 
-  src = fetchFromGitHub {
+  src = fetchgit {
+    url = "https://git.sr.ht/~thestr4ng3r/chiaki";
     rev = "v${version}";
-    owner = "thestr4ng3r";
-    repo = "chiaki";
     fetchSubmodules = true;
-    sha256 = "07w7srxxr8zjp91p5n1sqf4j8lljfrm78lz1m15s2nzlm579015h";
+    sha256 = "0l532i9j6wmzbxqx7fg69kgfd1zy1r1wlw6f756vpxpgswivi892";
   };
 
   nativeBuildInputs = [
-    cmake pkgconfig protobuf python3Packages.python python3Packages.protobuf
+    cmake
+    pkg-config
+    protobuf
+    python3Packages.protobuf
+    python3Packages.python
+  ];
+
+  buildInputs = [
+    ffmpeg
+    libopus
+    qtbase
+    qtmultimedia
+    qtsvg
+    protobuf
+    SDL2
+  ] ++ stdenv.lib.optionals stdenv.isLinux [
+    libevdev
+    udev
+  ] ++ stdenv.lib.optionals stdenv.isDarwin [
+    qtmacextras
   ];
-  buildInputs = [ ffmpeg libopus qtbase qtmultimedia qtsvg protobuf SDL2 ];
 
   doCheck = true;
+
   installCheckPhase = "$out/bin/chiaki --help";
 
-  meta = with lib; {
-    homepage = "https://github.com/thestr4ng3r/chiaki";
-    description = "Free and Open Source PS4 Remote Play Client";
+  meta = with stdenv.lib; {
+    homepage = "https://git.sr.ht/~thestr4ng3r/chiaki";
+    description = "Free and Open Source PlayStation Remote Play Client";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ delroth ];
     platforms = platforms.all;
diff --git a/pkgs/games/clonehero/default.nix b/pkgs/games/clonehero/default.nix
new file mode 100644
index 00000000000..504e4811432
--- /dev/null
+++ b/pkgs/games/clonehero/default.nix
@@ -0,0 +1,73 @@
+{ lib
+, stdenv
+, fetchurl
+, autoPatchelfHook
+, alsaLib
+, gtk2
+, libXrandr
+, libXScrnSaver
+, udev
+, zlib
+}:
+
+let
+  name = "clonehero";
+in
+stdenv.mkDerivation rec {
+  pname = "${name}-unwrapped";
+  version = "0.23.2.2";
+
+  src = fetchurl {
+    url = "http://dl.clonehero.net/${name}-v${lib.removePrefix "0" version}/${name}-linux.tar.gz";
+    sha256 = "0k9jcnd55yhr42gj8cmysd18yldp4k3cpk4z884p2ww03fyfq7mi";
+  };
+
+  outputs = [ "out" "doc" ];
+
+  nativeBuildInputs = [ autoPatchelfHook ];
+
+  buildInputs = [
+    # Load-time libraries (loaded from DT_NEEDED section in ELF binary)
+    gtk2
+    stdenv.cc.cc.lib
+    zlib
+
+    # Run-time libraries (loaded with dlopen)
+    alsaLib # ALSA sound
+    libXrandr # X11 resolution detection
+    libXScrnSaver # X11 screensaver prevention
+    udev # udev input drivers
+  ];
+
+  installPhase = ''
+    mkdir -p "$out/bin" "$out/share"
+    install -Dm755 ${name} "$out/bin"
+    cp -r clonehero_Data "$out/share"
+
+    mkdir -p "$doc/share/${name}"
+    cp README.txt "$doc/share/${name}"
+  '';
+
+  # Patch required run-time libraries as load-time libraries
+  #
+  # Libraries found with:
+  # > strings clonehero | grep '\.so'
+  # and
+  # > strace clonehero 2>&1 | grep '\.so'
+  postFixup = ''
+    patchelf \
+      --add-needed libasound.so.2 \
+      --add-needed libudev.so.1 \
+      --add-needed libXrandr.so.2 \
+      --add-needed libXss.so.1 \
+      "$out/bin/${name}"
+  '';
+
+  meta = with lib; {
+    description = "Clone of Guitar Hero and Rockband-style games";
+    homepage = "https://clonehero.net";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ metadark ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/games/clonehero/fhs-wrapper.nix b/pkgs/games/clonehero/fhs-wrapper.nix
new file mode 100644
index 00000000000..97758b2c1fa
--- /dev/null
+++ b/pkgs/games/clonehero/fhs-wrapper.nix
@@ -0,0 +1,39 @@
+{ clonehero-unwrapped
+, makeDesktopItem
+, buildFHSUserEnv
+, liberation_ttf
+, callPackage
+}:
+
+let
+  name = "clonehero";
+  desktopName = "Clone Hero";
+  desktopItem = makeDesktopItem {
+    inherit name desktopName;
+    comment = clonehero-unwrapped.meta.description;
+    exec = name;
+    icon = name;
+    categories = "Game;";
+  };
+in
+buildFHSUserEnv {
+  inherit name;
+  inherit (clonehero-unwrapped) meta;
+
+  # Clone Hero has /usr/share/fonts hard-coded in its binary for looking up fonts.
+  # This workaround is necessary for rendering text on the keybinding screen (and possibly elsewhere)
+  # If a better solution is found, the FHS environment can be removed.
+  extraBuildCommands = ''
+    chmod +w usr/share
+    mkdir -p usr/share/fonts/truetype
+    ln -s ${liberation_ttf}/share/fonts/truetype/* usr/share/fonts/truetype
+  '';
+
+  extraInstallCommands = ''
+    mkdir -p "$out/share/applications" "$out/share/pixmaps"
+    cp ${desktopItem}/share/applications/* "$out/share/applications"
+    ln -s ${clonehero-unwrapped}/share/clonehero_Data/Resources/UnityPlayer.png "$out/share/pixmaps/${name}.png"
+  '';
+
+  runScript = callPackage ./xdg-wrapper.nix { };
+}
diff --git a/pkgs/games/clonehero/xdg-wrapper.nix b/pkgs/games/clonehero/xdg-wrapper.nix
new file mode 100644
index 00000000000..2890e469db0
--- /dev/null
+++ b/pkgs/games/clonehero/xdg-wrapper.nix
@@ -0,0 +1,21 @@
+{ stdenv, clonehero-unwrapped, writeScript }:
+
+# Clone Hero doesn't have an installer, so it just stores configuration & data relative to the binary.
+# This wrapper works around that limitation, storing game configuration & data in XDG_CONFIG_HOME.
+let
+  name = "clonehero";
+  desktopName = "Clone Hero";
+in
+writeScript "${name}-xdg-wrapper-${clonehero-unwrapped.version}" ''
+  #!${stdenv.shell} -e
+  configDir="''${XDG_CONFIG_HOME:-$HOME/.config}/unity3d/srylain Inc_/${desktopName}"
+  mkdir -p "$configDir"
+
+  # Force link shipped clonehero_Data, unless directory already exists (to allow modding)
+  if [ ! -d "$configDir/clonehero_Data" ] || [ -L "$configDir/clonehero_Data" ]; then
+    ln -snf ${clonehero-unwrapped}/share/clonehero_Data "$configDir"
+  fi
+
+  # Fake argv[0] to emulate running in the config directory
+  exec -a "$configDir/${name}" ${clonehero-unwrapped}/bin/${name} "$@"
+''
diff --git a/pkgs/games/colobot/data.nix b/pkgs/games/colobot/data.nix
new file mode 100644
index 00000000000..f1a4782fad6
--- /dev/null
+++ b/pkgs/games/colobot/data.nix
@@ -0,0 +1,41 @@
+{ stdenv, lib, fetchFromGitHub, cmake
+, gettext, vorbis-tools
+, xmlstarlet, doxygen, python3 }:
+
+stdenv.mkDerivation rec {
+  pname = "colobot-data";
+  version = "0.1.12-alpha";
+
+  src = fetchFromGitHub {
+    owner = "colobot";
+    repo = "colobot-data";
+    rev = "colobot-gold-${version}";
+    sha256 = "1vm33s52ymwd03x24i9bqiglw5v3wgd7rlzyx9r5ww0nnqzwbwi6";
+  };
+
+  nativeBuildInputs = [ cmake vorbis-tools xmlstarlet doxygen python3 ];
+  buildInputs = [ gettext ];
+
+  enableParallelBuilding = false;
+  # Build procedure requires the data folder
+  patchPhase = ''
+    cp -r $src localSrc
+    chmod +w localSrc/help/bots/po
+    find -type d -exec chmod +w {} \;
+    for po in localSrc/help/{bots,cbot,object,generic,programs}/po/* localSrc/levels/*{/*/*,}/po/*; do
+      rm $po
+      touch $po
+    done
+    # skip music
+    rm localSrc/music/CMakeLists.txt
+    cd localSrc
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://colobot.info/";
+    description = "Game data for colobot";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ freezeboy ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/games/colobot/default.nix b/pkgs/games/colobot/default.nix
new file mode 100644
index 00000000000..9c0cbe7949c
--- /dev/null
+++ b/pkgs/games/colobot/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, cmake, boost, SDL2, SDL2_image, SDL2_ttf, libpng
+, glew, gettext, libsndfile, libvorbis, libogg, physfs, openal
+, xmlstarlet, doxygen, python3, callPackage }:
+
+let
+  colobot-data = callPackage ./data.nix {};
+in
+stdenv.mkDerivation rec {
+  pname = "colobot";
+  # Maybe require an update to package colobot-data as well
+  # in file data.nix next to this one
+  version = "0.1.12-alpha";
+
+  src = fetchFromGitHub {
+    owner = "colobot";
+    repo = "colobot";
+    rev = "colobot-gold-${version}";
+    sha256 = "0viq5s4zqs33an7rdmc3anf74ml7mwwcwf60alhvp9hj5jr547s2";
+  };
+
+  nativeBuildInputs = [ cmake xmlstarlet doxygen python3 ];
+  buildInputs = [ boost SDL2 SDL2_image SDL2_ttf libpng glew gettext libsndfile libvorbis libogg physfs openal ];
+
+  enableParallelBuilding = false;
+
+  # The binary ends in games directoy
+  postInstall = ''
+    mv $out/games $out/bin
+    for contents in ${colobot-data}/share/games/colobot/*; do
+      ln -s $contents $out/share/games/colobot
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://colobot.info/";
+    description = "Colobot: Gold Edition is a real-time strategy game, where you can program your bots";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ freezeboy ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/games/endless-sky/default.nix b/pkgs/games/endless-sky/default.nix
index 76ab6542a7f..cfcbcde6efd 100644
--- a/pkgs/games/endless-sky/default.nix
+++ b/pkgs/games/endless-sky/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub
+{ stdenv, fetchFromGitHub, fetchpatch
 , SDL2, libpng, libjpeg, glew, openal, scons, libmad
 }:
 
@@ -17,6 +17,15 @@ stdenv.mkDerivation {
     sha256 = "1hly68ljm7yv01jfxyr7g6jivhj0igg6xx7vi92zqymick0hlh7a";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "endless-sky-gcc10.patch";
+      url = "https://github.com/endless-sky/endless-sky/commit/bc3cab5992694547f9c6c067b5579ef06224781b.patch";
+      sha256 = "0v3913jyzhh1d81dxv738kcd3xhh7mrl06qnmj7a3ya2xd9pq4dk";
+    })
+    ./fixes.patch
+  ];
+
   enableParallelBuilding = true;
 
   buildInputs = [
@@ -25,10 +34,6 @@ stdenv.mkDerivation {
 
   prefixKey = "PREFIX=";
 
-  patches = [
-    ./fixes.patch
-  ];
-
   meta = with stdenv.lib; {
     description = "A sandbox-style space exploration game similar to Elite, Escape Velocity, or Star Control";
     homepage = "https://endless-sky.github.io/";
diff --git a/pkgs/games/flightgear/default.nix b/pkgs/games/flightgear/default.nix
index e32f2e96d4f..a8aef81523d 100644
--- a/pkgs/games/flightgear/default.nix
+++ b/pkgs/games/flightgear/default.nix
@@ -6,7 +6,7 @@
 }:
 
 let
-  version = "2020.1.2";
+  version = "2020.3.4";
   shortVersion = builtins.substring 0 6 version;
   data = stdenv.mkDerivation rec {
     pname = "flightgear-data";
@@ -14,7 +14,7 @@ let
 
     src = fetchurl {
       url = "mirror://sourceforge/flightgear/release-${shortVersion}/FlightGear-${version}-data.tar.bz2";
-      sha256 = "0ldsjb54k8nb99h6n4f4x20nawd2pa0a8skkwkrgckdpmdv0zwyk";
+      sha256 = "1cqikbqvidfaynml9bhqfr9yw5ga35gpqrbz62z94a1skdijkpkg";
     };
 
     phases = [ "installPhase" ];
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://sourceforge/flightgear/release-${shortVersion}/${pname}-${version}.tar.bz2";
-    sha256 = "1770kgwa7z70sx6da9x1q9cszpd3ywz6nn8jrb6xv8ldjqcpqpvb";
+    sha256 = "02d9h10p8hyn0a25csragj6pbwmrir1z8zb92023s9vi21j7bwy8";
   };
 
   # Of all the files in the source and data archives, there doesn't seem to be
diff --git a/pkgs/games/freenukum/default.nix b/pkgs/games/freenukum/default.nix
new file mode 100644
index 00000000000..d428a0bf02f
--- /dev/null
+++ b/pkgs/games/freenukum/default.nix
@@ -0,0 +1,72 @@
+{ stdenv
+, rustPlatform
+, fetchFromGitLab
+, makeDesktopItem
+, installShellFiles
+, dejavu_fonts
+, SDL2
+, SDL2_ttf
+}:
+let
+  pname = "freenukum";
+  description = "Clone of the original Duke Nukum 1 Jump'n Run game";
+
+  desktopItem = makeDesktopItem {
+    desktopName = pname;
+    name = pname;
+    exec = pname;
+    icon = pname;
+    terminal = "false";
+    comment = description;
+    type = "Application";
+    categories = "Game;ArcadeGame;ActionGame";
+    genericName = pname;
+    fileValidation = false;
+  };
+
+in
+rustPlatform.buildRustPackage rec {
+  inherit pname;
+  version = "0.3.5";
+
+  src = fetchFromGitLab {
+    owner = "silwol";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0yqfzh0c8fqk92q9kmidy15dc5li0ak1gbn3v7p3xw5fkrzf99gy";
+  };
+
+  cargoSha256 = "1mi98ccp4026gdc5x9jc6518zb7z4dplxl8vir78ivgdpifzz4pw";
+
+  nativeBuildInputs = [
+    installShellFiles
+  ];
+
+  buildInputs = [
+    SDL2
+    SDL2_ttf
+  ];
+
+  postPatch = ''
+    substituteInPlace src/graphics.rs \
+      --replace /usr $out
+  '';
+
+  postInstall = ''
+    mkdir -p $out/share/fonts/truetype/dejavu
+    ln -sf \
+      ${dejavu_fonts}/share/fonts/truetype/DejaVuSans.ttf \
+      $out/share/fonts/truetype/dejavu/DejaVuSans.ttf
+    mkdir -p $out/share/doc/freenukum
+    install -Dm644 README.md CHANGELOG.md COPYING $out/share/doc/freenukum/
+    installManPage doc/freenukum.6
+    install -Dm644 "${desktopItem}/share/applications/"* -t $out/share/applications/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Clone of the original Duke Nukum 1 Jump'n Run game";
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ _0x4A6F ];
+    broken = stdenv.isDarwin;
+  };
+}
diff --git a/pkgs/games/frogatto/data.nix b/pkgs/games/frogatto/data.nix
index ab5bbe2dd9f..3313f156ed2 100644
--- a/pkgs/games/frogatto/data.nix
+++ b/pkgs/games/frogatto/data.nix
@@ -7,9 +7,9 @@ stdenv.mkDerivation {
   src = fetchFromGitHub {
     owner = "frogatto";
     repo = "frogatto";
-    # master branch as of 2018-12-18
-    rev = "8f261b5d3fca3c88e6a534316a28378cf687d3e5";
-    sha256 = "0nyfwfyy5gxp61ydna299nq9p5wra9mk0bf1drdngg6bwws1hrqx";
+    # master branch as of 2020-12-17
+    rev = "c1d0813b3b755a4e232369b6791397ad058efc16";
+    sha256 = "1fhaidd35392zzavp93r6ihyansgkc3m1ilz71ia1zl4n3fbsxjg";
   };
 
   installPhase = ''
diff --git a/pkgs/games/frogatto/default.nix b/pkgs/games/frogatto/default.nix
index f6d4789c30b..ee3803617dc 100644
--- a/pkgs/games/frogatto/default.nix
+++ b/pkgs/games/frogatto/default.nix
@@ -14,7 +14,7 @@ let
     genericName = "frogatto";
     categories = "Game;ArcadeGame;";
   };
-  version = "unstable-2018-12-18";
+  version = "unstable-2020-12-04";
 in buildEnv {
   name = "frogatto-${version}";
 
diff --git a/pkgs/games/frogatto/engine.nix b/pkgs/games/frogatto/engine.nix
index d51cfcb8f20..94c2a038d92 100644
--- a/pkgs/games/frogatto/engine.nix
+++ b/pkgs/games/frogatto/engine.nix
@@ -10,8 +10,8 @@ stdenv.mkDerivation {
     owner = "anura-engine";
     repo = "anura";
     # trunk branch as of 2018-11-28
-    rev = "8070111467802dc772c0a6c7806ecd16b0bcdaa9";
-    sha256 = "0xbqwfmws69n7iiz17n93h4jiw39cwyf7hxw0qi2c8cccr37b1nr";
+    rev = "a05f413f255d2854019134be817c253a03da3d9f";
+    sha256 = "1hd57q8gbn1zdpibnqd3ma0z1ycayc2f4r9j4m2m9kc6yf4v7w7b";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/games/katago/default.nix b/pkgs/games/katago/default.nix
index 0f9e4b8d67a..a9ac9e8ac59 100644
--- a/pkgs/games/katago/default.nix
+++ b/pkgs/games/katago/default.nix
@@ -14,11 +14,12 @@
 , ocl-icd ? null
 , gperftools ? null
 , eigen ? null
-, enableAVX2 ? false
+, enableAVX2 ? stdenv.hostPlatform.avx2Support
 , enableBigBoards ? false
 , enableCuda ? false
 , enableGPU ? true
-, enableTcmalloc ? true}:
+, enableTcmalloc ? true
+}:
 
 assert !enableGPU -> (
   eigen != null &&
@@ -103,8 +104,6 @@ in env.mkDerivation rec {
       --prefix LD_LIBRARY_PATH : "/run/opengl-driver/lib"
   '';
 
-  enableParallelBuilding = true;
-
   meta = with stdenv.lib; {
     description = "Go engine modeled after AlphaGo Zero";
     homepage    = "https://github.com/lightvector/katago";
diff --git a/pkgs/games/manaplus/default.nix b/pkgs/games/manaplus/default.nix
new file mode 100644
index 00000000000..ff7bfae971a
--- /dev/null
+++ b/pkgs/games/manaplus/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, lib, fetchurl, SDL2, SDL2_image, SDL2_ttf, SDL2_mixer
+, SDL2_net , SDL2_gfx, zlib, physfs, curl, libxml2, libpng, pkg-config
+, libGL, autoreconfHook }:
+stdenv.mkDerivation rec {
+  pname = "manaplus";
+  version = "1.9.3.23";
+
+  src = fetchurl {
+    url = "https://download.evolonline.org/manaplus/download/${version}/manaplus-${version}.tar.xz";
+    sha256 = "1ky182p4svwdqm6cf7jbns85hidkhkhq4s17cs2p381f0klapfjz";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook pkg-config
+  ];
+
+  buildInputs = [
+    SDL2 SDL2_image SDL2_ttf SDL2_mixer SDL2_net SDL2_gfx zlib
+    physfs curl libxml2 libpng libGL
+  ];
+
+  configureFlags = [ "--with-sdl2" "--without-dyecmd" ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    maintainers = [ lib.maintainers.lheckemann ];
+    description = "A free OpenSource 2D MMORPG client";
+    homepage = "https://manaplus.org/";
+    license = lib.licenses.gpl2;
+  };
+}
diff --git a/pkgs/games/mindustry/default.nix b/pkgs/games/mindustry/default.nix
index 89ff37458af..731a63f90f9 100644
--- a/pkgs/games/mindustry/default.nix
+++ b/pkgs/games/mindustry/default.nix
@@ -3,7 +3,7 @@
 , makeDesktopItem
 , fetchFromGitHub
 , gradleGen
-, jdk14
+, jdk
 , perl
 , jre
 , alsaLib
@@ -22,14 +22,14 @@ let
   # Note: when raising the version, ensure that all SNAPSHOT versions in
   # build.gradle are replaced by a fixed version
   # (the current one at the time of release) (see postPatch).
-  version = "120.2";
+  version = "122.1";
   buildVersion = makeBuildVersion version;
 
   src = fetchFromGitHub {
     owner = "Anuken";
     repo = "Mindustry";
     rev = "v${version}";
-    sha256 = "01a7qpwfr1n540fk0k65kl03biix0gmg66z7qn22mb2703laq1xc";
+    sha256 = "18m4s81cfb2cr2fj61nf6spiln7cbvx25g42w6fypfikflv3qd8y";
   };
 
   desktopItem = makeDesktopItem {
@@ -50,8 +50,15 @@ let
     sed -i 's/com.github.anuken:packr:-SNAPSHOT/com.github.anuken:packr:034efe51781d2d8faa90370492133241bfb0283c/' build.gradle
   '';
 
+  preBuild = ''
+    # Arc is run at build time for sprite packing, and it needs to see
+    # the runtime libraries
+    ${stdenv.lib.optionalString stdenv.isLinux "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${alsaLib}/lib"}
+    export GRADLE_USER_HOME=$(mktemp -d)
+  '';
+
   # The default one still uses jdk8 (#89731)
-  gradle_6 = (gradleGen.override (old: { java = jdk14; })).gradle_6_7;
+  gradle_6 = (gradleGen.override (old: { java = jdk; })).gradle_6_7;
 
   # fake build to pre-download deps into fixed-output derivation
   deps = stdenv.mkDerivation {
@@ -62,7 +69,7 @@ let
     # one hash for 'deps'. Deps can be garbage collected after the build,
     # so this is not really an issue.
     buildPhase = ''
-      export GRADLE_USER_HOME=$(mktemp -d)
+      ${preBuild}
       gradle --no-daemon desktop:dist -Pbuildversion=${buildVersion}
       gradle --no-daemon server:dist -Pbuildversion=${buildVersion}
     '';
@@ -74,7 +81,7 @@ let
     '';
     outputHashAlgo = "sha256";
     outputHashMode = "recursive";
-    outputHash = "1yv9l8zdml6drmvlgv45w3qas9qmb654x4kja3an4d16k020khr7";
+    outputHash = "0vzck6hsrvs438s3ikk66qmpak88bmqcb8inqbbjwy7x87d2qsvj";
   };
 
   # Separate commands for building and installing the server and the client
@@ -109,7 +116,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ gradle_6 makeWrapper ];
 
   buildPhase = with stdenv.lib; ''
-    export GRADLE_USER_HOME=$(mktemp -d)
+    ${preBuild}
     # point to offline repo
     sed -ie "s#mavenLocal()#mavenLocal(); maven { url '${deps}' }#g" build.gradle
     ${optionalString enableClient buildClient}
@@ -125,11 +132,15 @@ stdenv.mkDerivation rec {
     homepage = "https://mindustrygame.github.io/";
     downloadPage = "https://github.com/Anuken/Mindustry/releases";
     description = "A sandbox tower defense game";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ fgaz ];
     platforms = platforms.all;
     # Hash mismatch on darwin:
     # https://github.com/NixOS/nixpkgs/pull/105590#issuecomment-737120293
-    broken = stdenv.isDarwin;
+    # Problems with native libraries in aarch64:
+    # https://github.com/NixOS/nixpkgs/pull/107646
+    # https://logs.nix.ci/?key=nixos/nixpkgs.107646&attempt_id=3032c060-72e9-4a76-8186-4739544397dd
+    broken = stdenv.isDarwin ||
+             stdenv.isAarch64;
   };
 }
diff --git a/pkgs/games/minecraft/default.nix b/pkgs/games/minecraft/default.nix
index 82c9ecfa753..292b43bec0a 100644
--- a/pkgs/games/minecraft/default.nix
+++ b/pkgs/games/minecraft/default.nix
@@ -88,11 +88,11 @@ in
 stdenv.mkDerivation rec {
   pname = "minecraft-launcher";
 
-  version = "2.2.741";
+  version = "2.2.909";
 
   src = fetchurl {
     url = "https://launcher.mojang.com/download/linux/x86_64/minecraft-launcher_${version}.tar.gz";
-    sha256 = "0bm78ybn91ihibxgmlpk7dl2zxy4a57k86qmb08cif3ifbflzkvw";
+    sha256 = "15x2imr8c4m2bjfs9y1l34fpvixxdf09gqls4bqb4rdvj1vhdrh2";
   };
 
   icon = fetchurl {
diff --git a/pkgs/games/minecraft/update.sh b/pkgs/games/minecraft/update.sh
index 02b362e839b..485fb5a560f 100755
--- a/pkgs/games/minecraft/update.sh
+++ b/pkgs/games/minecraft/update.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env nix-shell
-#!nix-shell -i bash -p curl jq gnugrep common-updater-scripts
+#!nix-shell -i bash -p curl jq common-updater-scripts
 
 set -eu -o pipefail
 
-version=$(curl -s 'https://aur.archlinux.org/rpc/?v=5&type=info&arg[]=minecraft-launcher' | jq '.results[0].Version' | grep -Po '[.\d]*(?=-)')
-update-source-version minecraft "$version"
+version=$(curl -s 'https://launchermeta.mojang.com/v1/products/launcher/6f083b80d5e6fabbc4236f81d0d8f8a350c665a9/linux.json' | jq -r '."launcher-core"[0].version.name')
+update-source-version minecraft "${version}"
diff --git a/pkgs/games/openxray/default.nix b/pkgs/games/openxray/default.nix
index 304a810c3db..33a0ae10597 100644
--- a/pkgs/games/openxray/default.nix
+++ b/pkgs/games/openxray/default.nix
@@ -66,7 +66,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "X-Ray Engine 1.6 expansion. Original version was used in S.T.A.L.K.E.R.: Call of Pripyat";
+    description = "Improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World";
     homepage = src.meta.homepage;
     license = licenses.unfree // {
       url = "https://github.com/OpenXRay/xray-16/blob/xd_dev/License.txt";
diff --git a/pkgs/games/osu-lazer/default.nix b/pkgs/games/osu-lazer/default.nix
index b0a99e1dc24..b1437ac46af 100644
--- a/pkgs/games/osu-lazer/default.nix
+++ b/pkgs/games/osu-lazer/default.nix
@@ -13,13 +13,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "osu-lazer";
-  version = "2020.1204.0";
+  version = "2020.1225.0";
 
   src = fetchFromGitHub {
     owner = "ppy";
     repo = "osu";
     rev = version;
-    sha256 = "1yr9rkkmm15lgbfbrvpyp0d66i5v2xs39abw8yv6qlf70qh4bsg5";
+    sha256 = "BISczC4xYcF6m5l3ye/bdZxs/aK0Jz6sFVFOgNDo0v0=";
   };
 
   patches = [ ./bypass-tamper-detection.patch ];
@@ -40,7 +40,7 @@ in stdenv.mkDerivation rec {
 
     export HOME=$(mktemp -d)
     export DOTNET_CLI_TELEMETRY_OPTOUT=1
-    export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
+    export DOTNET_NOLOGO=1
 
     nuget sources Add -Name nixos -Source "$PWD/nixos"
     nuget init "$nugetDeps" "$PWD/nixos"
@@ -49,7 +49,7 @@ in stdenv.mkDerivation rec {
     mkdir -p $HOME/.nuget/NuGet
     cp $HOME/.config/NuGet/NuGet.Config $HOME/.nuget/NuGet
 
-    dotnet restore --source "$PWD/nixos" osu.Desktop
+    dotnet restore --source "$PWD/nixos" osu.Desktop --runtime ${runtimeId}
 
     runHook postConfigure
   '';
@@ -59,6 +59,7 @@ in stdenv.mkDerivation rec {
     dotnet build osu.Desktop \
       --no-restore \
       --configuration Release \
+      --runtime ${runtimeId} \
       -p:Version=${version}
     runHook postBuild
   '';
@@ -69,10 +70,9 @@ in stdenv.mkDerivation rec {
     dotnet publish osu.Desktop \
       --no-build \
       --configuration Release \
+      --runtime ${runtimeId} \
       --no-self-contained \
       --output $out/lib/osu
-    shopt -s extglob
-    rm -r $out/lib/osu/runtimes/!(${runtimeId})
 
     makeWrapper $out/lib/osu/osu\! $out/bin/osu\! \
       --set DOTNET_ROOT "${dotnet-netcore}" \
@@ -93,6 +93,13 @@ in stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
+  fixupPhase = ''
+    runHook preFixup
+    cp -f ${./osu.runtimeconfig.json} "$out/lib/osu/osu!.runtimeconfig.json"
+    ln -sft $out/lib/osu ${SDL2}/lib/libSDL2${stdenv.hostPlatform.extensions.sharedLibrary}
+    runHook postFixup
+  '';
+
   # Strip breaks the executable.
   dontStrip = true;
 
diff --git a/pkgs/games/osu-lazer/deps.nix b/pkgs/games/osu-lazer/deps.nix
index 8a24f0b1bdb..cebdde1f7c6 100644
--- a/pkgs/games/osu-lazer/deps.nix
+++ b/pkgs/games/osu-lazer/deps.nix
@@ -16,8 +16,8 @@
   })
   (fetchNuGet {
     name = "DiscordRichPresence";
-    version = "1.0.166";
-    sha256 = "019rz0br8hamydmdrgzcc6280jfhm4i4ix27jh66a7h37alvdi3a";
+    version = "1.0.169";
+    sha256 = "0rs9fjr65432qckmzx4djlwsnc2yqwwwnjszqwnm3z2pv8dm7zrf";
   })
   (fetchNuGet {
     name = "FFmpeg.AutoGen";
@@ -25,21 +25,6 @@
     sha256 = "0n6x57mnnvcjnrs8zyvy07h5zm4bcfy9gh4n4bvd9fx5ys4pxkvv";
   })
   (fetchNuGet {
-    name = "Humanizer";
-    version = "2.8.26";
-    sha256 = "11kddzyzqpq9gkz0hmrblq494nh86va6wxx6z89xi6w1f4vj15ak";
-  })
-  (fetchNuGet {
-    name = "Humanizer.Core";
-    version = "2.2.0";
-    sha256 = "08mzg65y9d3zvq16rsmpapcdan71ggq2mpks6k777h3wlm2sh3p5";
-  })
-  (fetchNuGet {
-    name = "Humanizer.Core";
-    version = "2.8.26";
-    sha256 = "1v8xd12yms4qq1md4vh6faxicmqrvahqdd7sdkyzrphab9v44nsm";
-  })
-  (fetchNuGet {
     name = "Humanizer.Core.af";
     version = "2.8.26";
     sha256 = "0znrq4frlkq1qi20301hlzxa6mdc275fa1i1a1i8ldgk9cjq94k9";
@@ -100,14 +85,14 @@
     sha256 = "1pgs0j5ri50a6vhljplhrlc8jj1hrd9ggxkj60d9v5kk9xibzzyd";
   })
   (fetchNuGet {
-    name = "Humanizer.Core.fr";
+    name = "Humanizer.Core.fr-BE";
     version = "2.8.26";
-    sha256 = "0kkhgy3yn8vfqlx3dhb9m3cazkgfxarknam4macng9y17l7wj83m";
+    sha256 = "13spcx07hph366qk073pz63s56nadaac7l4mr4a66gbpqd3814kb";
   })
   (fetchNuGet {
-    name = "Humanizer.Core.fr-BE";
+    name = "Humanizer.Core.fr";
     version = "2.8.26";
-    sha256 = "13spcx07hph366qk073pz63s56nadaac7l4mr4a66gbpqd3814kb";
+    sha256 = "0kkhgy3yn8vfqlx3dhb9m3cazkgfxarknam4macng9y17l7wj83m";
   })
   (fetchNuGet {
     name = "Humanizer.Core.he";
@@ -160,14 +145,14 @@
     sha256 = "0iai35pzka9g6c3sgswki06fk6gdnq8kc88wyb4pcciivazz31px";
   })
   (fetchNuGet {
-    name = "Humanizer.Core.nb";
+    name = "Humanizer.Core.nb-NO";
     version = "2.8.26";
-    sha256 = "0xprhiyjyq6mpha2lrav59n1f48508ddvm9nmdk5sm5k26ff3l90";
+    sha256 = "160c98wfh7d2xlvlra4x5rdj4klgcjwcy3gkb4ipg655byn2m1j2";
   })
   (fetchNuGet {
-    name = "Humanizer.Core.nb-NO";
+    name = "Humanizer.Core.nb";
     version = "2.8.26";
-    sha256 = "160c98wfh7d2xlvlra4x5rdj4klgcjwcy3gkb4ipg655byn2m1j2";
+    sha256 = "0xprhiyjyq6mpha2lrav59n1f48508ddvm9nmdk5sm5k26ff3l90";
   })
   (fetchNuGet {
     name = "Humanizer.Core.nl";
@@ -205,14 +190,14 @@
     sha256 = "060xbzwb7p9ypbqfklih2zal2rh6h55gq4hv3i6alvlbd3vsx29n";
   })
   (fetchNuGet {
-    name = "Humanizer.Core.sr";
+    name = "Humanizer.Core.sr-Latn";
     version = "2.8.26";
-    sha256 = "0i2c24qmqnhp85b088qlbagxd48hcl0v1ly4m7hfbvx5s7fg8riv";
+    sha256 = "1911a69sqssh9f007vmxbgyj4ym2ym4423xvw6cmbfhjcrhkfpbi";
   })
   (fetchNuGet {
-    name = "Humanizer.Core.sr-Latn";
+    name = "Humanizer.Core.sr";
     version = "2.8.26";
-    sha256 = "1911a69sqssh9f007vmxbgyj4ym2ym4423xvw6cmbfhjcrhkfpbi";
+    sha256 = "0i2c24qmqnhp85b088qlbagxd48hcl0v1ly4m7hfbvx5s7fg8riv";
   })
   (fetchNuGet {
     name = "Humanizer.Core.sv";
@@ -260,14 +245,29 @@
     sha256 = "1rhzbiqbx04l3kvzjklix90fxyc6vvmmw0p564ajdiximivs0pbh";
   })
   (fetchNuGet {
+    name = "Humanizer.Core";
+    version = "2.2.0";
+    sha256 = "08mzg65y9d3zvq16rsmpapcdan71ggq2mpks6k777h3wlm2sh3p5";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core";
+    version = "2.8.26";
+    sha256 = "1v8xd12yms4qq1md4vh6faxicmqrvahqdd7sdkyzrphab9v44nsm";
+  })
+  (fetchNuGet {
+    name = "Humanizer";
+    version = "2.8.26";
+    sha256 = "11kddzyzqpq9gkz0hmrblq494nh86va6wxx6z89xi6w1f4vj15ak";
+  })
+  (fetchNuGet {
     name = "JetBrains.Annotations";
     version = "2020.3.0";
     sha256 = "04xlfqnfg3069f014q8f0vx7y70m8nldbf9fia4b50bp3rry2lv2";
   })
   (fetchNuGet {
-    name = "ManagedBass";
-    version = "2.0.4";
-    sha256 = "13hwd0yany4j52abbaaqsgq8lag2w9vjxxsj4qfbgwp4qs39x003";
+    name = "managed-midi";
+    version = "1.9.14";
+    sha256 = "025jh146zy98699y4civ7nxlkx312lwkl4sr8pha626q7q1kg89h";
   })
   (fetchNuGet {
     name = "ManagedBass.Fx";
@@ -275,9 +275,9 @@
     sha256 = "1rbjpgpm0ri7l2gqdy691rsv3visna2nbxawgvhdqljw068r8a8d";
   })
   (fetchNuGet {
-    name = "managed-midi";
-    version = "1.9.14";
-    sha256 = "025jh146zy98699y4civ7nxlkx312lwkl4sr8pha626q7q1kg89h";
+    name = "ManagedBass";
+    version = "2.0.4";
+    sha256 = "13hwd0yany4j52abbaaqsgq8lag2w9vjxxsj4qfbgwp4qs39x003";
   })
   (fetchNuGet {
     name = "Markdig";
@@ -285,6 +285,11 @@
     sha256 = "0k7v4xlhfgyca8bb1g85062m22skmk6ay0hcyqlpi2cnvy7f61qf";
   })
   (fetchNuGet {
+    name = "Microsoft.AspNetCore.App.Runtime.linux-x64";
+    version = "3.1.8";
+    sha256 = "140zr3nwkmf6xc52gq4iz6ycyh95fxy0jpgn637pkd9z423z8135";
+  })
+  (fetchNuGet {
     name = "Microsoft.AspNetCore.Connections.Abstractions";
     version = "3.1.9";
     sha256 = "0vsnc87fqh61mjl2zgv7nfx6wkrg055cq12ql6cxmcawv6qsl0lw";
@@ -305,14 +310,14 @@
     sha256 = "0xg0psas8k38yfd72q7m5sm00yyxj51j1fqg473za2kxf8z4p2wx";
   })
   (fetchNuGet {
-    name = "Microsoft.AspNetCore.SignalR.Client";
+    name = "Microsoft.AspNetCore.SignalR.Client.Core";
     version = "3.1.9";
-    sha256 = "1yn5y3b51jcpw7szj3pfz79hk84kmypy465cm22khh5z34wy41jx";
+    sha256 = "0ld7hch240z7zc7ckrppd4yrwwdhx3nbc8fgf4qql8ld8bih223y";
   })
   (fetchNuGet {
-    name = "Microsoft.AspNetCore.SignalR.Client.Core";
+    name = "Microsoft.AspNetCore.SignalR.Client";
     version = "3.1.9";
-    sha256 = "0ld7hch240z7zc7ckrppd4yrwwdhx3nbc8fgf4qql8ld8bih223y";
+    sha256 = "1yn5y3b51jcpw7szj3pfz79hk84kmypy465cm22khh5z34wy41jx";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.SignalR.Common";
@@ -365,14 +370,14 @@
     sha256 = "12n7rvr39bzkf2maw7zplw8rwpxpxss4ich3bb2pw770rx4nyvyw";
   })
   (fetchNuGet {
-    name = "Microsoft.CodeAnalysis.CSharp";
+    name = "Microsoft.CodeAnalysis.CSharp.Workspaces";
     version = "3.8.0";
-    sha256 = "1kmry65csvfn72zzc16vj1nfbfwam28wcmlrk3m5rzb8ydbzgylb";
+    sha256 = "1jfbqfngwwjx3x1cyqaamf26s7j6wag86ig1n7bh99ny85gd78wb";
   })
   (fetchNuGet {
-    name = "Microsoft.CodeAnalysis.CSharp.Workspaces";
+    name = "Microsoft.CodeAnalysis.CSharp";
     version = "3.8.0";
-    sha256 = "1jfbqfngwwjx3x1cyqaamf26s7j6wag86ig1n7bh99ny85gd78wb";
+    sha256 = "1kmry65csvfn72zzc16vj1nfbfwam28wcmlrk3m5rzb8ydbzgylb";
   })
   (fetchNuGet {
     name = "Microsoft.CodeAnalysis.FxCopAnalyzers";
@@ -430,11 +435,6 @@
     sha256 = "1qydvyyinj3b5mraazjal3n2k7jqhn05b6n1a2f3qjkqkxi63dmy";
   })
   (fetchNuGet {
-    name = "Microsoft.EntityFrameworkCore";
-    version = "2.2.6";
-    sha256 = "18j2cr50wsikwv7gy3vrjvmpdxckvv537qma8afdpr3yn2klayh5";
-  })
-  (fetchNuGet {
     name = "Microsoft.EntityFrameworkCore.Abstractions";
     version = "2.2.6";
     sha256 = "1dyxb5ibx24frlgbqy7zch0falq9p1189zvlbxgl94m0hvpml5j3";
@@ -455,14 +455,19 @@
     sha256 = "0c0z4mrqldjfslyxywb2ydk8hn9ybhkvz6lxx3idrfalq3ni5f1z";
   })
   (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore.Sqlite.Core";
+    version = "2.2.6";
+    sha256 = "0jzqw4672mzxjvzas09sl0zyzzayfgkv003a7bw5g2gjyiphf630";
+  })
+  (fetchNuGet {
     name = "Microsoft.EntityFrameworkCore.Sqlite";
     version = "2.2.6";
     sha256 = "0z8k5ns841imaqha5abb1ka0rsfzy90k6qkrvix11sp6k9i7lsam";
   })
   (fetchNuGet {
-    name = "Microsoft.EntityFrameworkCore.Sqlite.Core";
+    name = "Microsoft.EntityFrameworkCore";
     version = "2.2.6";
-    sha256 = "0jzqw4672mzxjvzas09sl0zyzzayfgkv003a7bw5g2gjyiphf630";
+    sha256 = "18j2cr50wsikwv7gy3vrjvmpdxckvv537qma8afdpr3yn2klayh5";
   })
   (fetchNuGet {
     name = "Microsoft.Extensions.Caching.Abstractions";
@@ -475,16 +480,6 @@
     sha256 = "0bzrsn5vas86w66bd04xilnlb21nx4l6lz7d3acvy6y8ir2vb5dv";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Configuration";
-    version = "2.2.0";
-    sha256 = "02250qrs3jqqbggfvd0mkim82817f79x6jh8fx2i7r58d0m66qkl";
-  })
-  (fetchNuGet {
-    name = "Microsoft.Extensions.Configuration";
-    version = "3.1.9";
-    sha256 = "01ci8nhv3ki93aa7a3vh9icl3jav7ikizq43kcgdjgsssi6xvdf9";
-  })
-  (fetchNuGet {
     name = "Microsoft.Extensions.Configuration.Abstractions";
     version = "2.2.0";
     sha256 = "1fv5277hyhfqmc0gqszyqb1ilwnijm8kc9606yia6hwr8pxyg674";
@@ -505,14 +500,14 @@
     sha256 = "1n8fndd9vrd3d7041p42li8v129mgl3gi8sl1x8whhycy0ahqr78";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.DependencyInjection";
+    name = "Microsoft.Extensions.Configuration";
     version = "2.2.0";
-    sha256 = "0lvv45rvq1xbf47lz818rjydc776zk8mf7svpzh1dml4qwlx9zck";
+    sha256 = "02250qrs3jqqbggfvd0mkim82817f79x6jh8fx2i7r58d0m66qkl";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.DependencyInjection";
+    name = "Microsoft.Extensions.Configuration";
     version = "3.1.9";
-    sha256 = "1ifjjzwfvd5igxaaxm124qv8afs1nb06rgdqy7l3jcfqr30xykbb";
+    sha256 = "01ci8nhv3ki93aa7a3vh9icl3jav7ikizq43kcgdjgsssi6xvdf9";
   })
   (fetchNuGet {
     name = "Microsoft.Extensions.DependencyInjection.Abstractions";
@@ -525,29 +520,39 @@
     sha256 = "1l7ng71y18fwdlyq2ycl12hmv9wrf7k7knz2jwv9w9w7spmp8jv6";
   })
   (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyInjection";
+    version = "2.2.0";
+    sha256 = "0lvv45rvq1xbf47lz818rjydc776zk8mf7svpzh1dml4qwlx9zck";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyInjection";
+    version = "3.1.9";
+    sha256 = "1ifjjzwfvd5igxaaxm124qv8afs1nb06rgdqy7l3jcfqr30xykbb";
+  })
+  (fetchNuGet {
     name = "Microsoft.Extensions.DependencyModel";
     version = "2.1.0";
     sha256 = "0dl4qhjgifm6v3jsfzvzkvddyic77ggp9fq49ah661v45gk6ilgd";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Logging";
+    name = "Microsoft.Extensions.Logging.Abstractions";
     version = "2.2.0";
-    sha256 = "0bx3ljyvvcbikradq2h583rl72h8bxdz33aghk026cxzpv2mm3wm";
+    sha256 = "02w7hp6jicr7cl5p456k2cmrjvvhm6spg5kxnlncw3b72358m5wl";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Logging";
+    name = "Microsoft.Extensions.Logging.Abstractions";
     version = "3.1.9";
-    sha256 = "1x1bbkcq7ph9jgwv3yidipfqwdh6q3bsa2rxhfzmy64l7hc7r1wl";
+    sha256 = "1i24mz3v677bmdysxklm9a3qc87j72lpkfp0l16gh6yqpmhwg7vp";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Logging.Abstractions";
+    name = "Microsoft.Extensions.Logging";
     version = "2.2.0";
-    sha256 = "02w7hp6jicr7cl5p456k2cmrjvvhm6spg5kxnlncw3b72358m5wl";
+    sha256 = "0bx3ljyvvcbikradq2h583rl72h8bxdz33aghk026cxzpv2mm3wm";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Logging.Abstractions";
+    name = "Microsoft.Extensions.Logging";
     version = "3.1.9";
-    sha256 = "1i24mz3v677bmdysxklm9a3qc87j72lpkfp0l16gh6yqpmhwg7vp";
+    sha256 = "1x1bbkcq7ph9jgwv3yidipfqwdh6q3bsa2rxhfzmy64l7hc7r1wl";
   })
   (fetchNuGet {
     name = "Microsoft.Extensions.ObjectPool";
@@ -580,6 +585,11 @@
     sha256 = "16cx0x5hcjs2ml5zjalfsp7n3rfyz75ihnvh1p10z96yaz43gdwn";
   })
   (fetchNuGet {
+    name = "Microsoft.NETCore.App.Runtime.linux-x64";
+    version = "3.1.8";
+    sha256 = "1bv9n9wzsqf9g8h6z10p61xkcx8ad4nnip83qv8yyfvhr4kdmbsa";
+  })
+  (fetchNuGet {
     name = "Microsoft.NETCore.Platforms";
     version = "1.0.1";
     sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr";
@@ -675,16 +685,16 @@
     sha256 = "1880j2xwavi8f28vxan3hyvdnph4nlh5sbmh285s4lc9l0b7bdk2";
   })
   (fetchNuGet {
-    name = "ppy.osu.Framework";
-    version = "2020.1203.0";
-    sha256 = "0xk1l09gm39z1739a7bgykj2bkg6lgxx72ds9s7qmbc6nrkr7jwj";
-  })
-  (fetchNuGet {
     name = "ppy.osu.Framework.NativeLibs";
     version = "2020.923.0";
     sha256 = "1sy98s0dxcfxxslm1q503qhd9fl8d3idf47qi4561j5fds4dpdsv";
   })
   (fetchNuGet {
+    name = "ppy.osu.Framework";
+    version = "2020.1222.0";
+    sha256 = "0xdfgl4hykrbwhdmhhy7rxp055jhq1rwg2mldbbaf1v43s0vkyfj";
+  })
+  (fetchNuGet {
     name = "ppy.osu.Game.Resources";
     version = "2020.1202.0";
     sha256 = "1m5156gkyyhf52ii6y7yqmsgpwcxn6zgji3nnyny6lk9glmc9vvs";
@@ -710,6 +720,176 @@
     sha256 = "1y46ni0xswmmiryp8sydjgryafwn458dr91f9xn653w73kdyk4xf";
   })
   (fetchNuGet {
+    name = "runtime.any.System.Collections";
+    version = "4.0.11";
+    sha256 = "1x44bm1cgv28zmrp095wf9mn8a6a0ivnzp9v14dcbhx06igxzgg0";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Collections";
+    version = "4.3.0";
+    sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Diagnostics.Tools";
+    version = "4.0.1";
+    sha256 = "0qcpm90hrm9gx9pmxlvfml65jm0bwpr5dg3r7l7xm9nvmibvc7n7";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Diagnostics.Tools";
+    version = "4.3.0";
+    sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Diagnostics.Tracing";
+    version = "4.1.0";
+    sha256 = "041im8hmp1zdgrx6jzyrdch6kshvbddmkar7r2mlm1ksb5c5kwpq";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Diagnostics.Tracing";
+    version = "4.3.0";
+    sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Globalization.Calendars";
+    version = "4.0.1";
+    sha256 = "007iw5wnl046wznasbqxjxm949djdbsi9vwz6zhz4lmzviqcpl58";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Globalization.Calendars";
+    version = "4.3.0";
+    sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Globalization";
+    version = "4.0.11";
+    sha256 = "0240rp66pi5bw1xklmh421hj7arwcdmjmgfkiq1cbc6nrm8ah286";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Globalization";
+    version = "4.3.0";
+    sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.IO";
+    version = "4.1.0";
+    sha256 = "0kasfkjiml2kk8prnyn1990nhsahnjggvqwszqjdsfwfl43vpcb5";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.IO";
+    version = "4.3.0";
+    sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Reflection.Extensions";
+    version = "4.0.1";
+    sha256 = "05k34ijz9g9csh0vbbv3g3lrxl163izwcfncmbcl7k073h32rzkr";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Reflection.Extensions";
+    version = "4.3.0";
+    sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Reflection.Primitives";
+    version = "4.0.1";
+    sha256 = "1zxrpvixr5fqzkxpnin6g6gjq6xajy1snghz99ds2dwbhm276rhz";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Reflection.Primitives";
+    version = "4.3.0";
+    sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Reflection";
+    version = "4.1.0";
+    sha256 = "06kcs059d5czyakx75rvlwa2mr86156w18fs7chd03f7084l7mq6";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Reflection";
+    version = "4.3.0";
+    sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Resources.ResourceManager";
+    version = "4.0.1";
+    sha256 = "1jmgs7hynb2rff48623wnyb37558bbh1q28k9c249j5r5sgsr5kr";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Resources.ResourceManager";
+    version = "4.3.0";
+    sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Runtime.Handles";
+    version = "4.0.1";
+    sha256 = "1kswgqhy34qvc49i981fk711s7knd6z13bp0rin8ms6axkh98nas";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Runtime.Handles";
+    version = "4.3.0";
+    sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Runtime.InteropServices";
+    version = "4.1.0";
+    sha256 = "0gm8if0hcmp1qys1wmx4970k2x62pqvldgljsyzbjhiy5644vl8z";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Runtime.InteropServices";
+    version = "4.3.0";
+    sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Runtime";
+    version = "4.1.0";
+    sha256 = "0mjr2bi7wvnkphfjqgkyf8vfyvy15a829jz6mivl6jmksh2bx40m";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Runtime";
+    version = "4.3.0";
+    sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Text.Encoding.Extensions";
+    version = "4.0.11";
+    sha256 = "0d1rxxpvg9v7wlibsfgz0r4hwigpadas822qf8m8fs1gma9gs877";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Text.Encoding.Extensions";
+    version = "4.3.0";
+    sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Text.Encoding";
+    version = "4.0.11";
+    sha256 = "0m4vgmzi1ky8xlj0r7xcyazxln3j9dlialnk6d2gmgrfnzf8f9m7";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Text.Encoding";
+    version = "4.3.0";
+    sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Threading.Tasks";
+    version = "4.0.11";
+    sha256 = "1qzdp09qs8br5qxzlm1lgbjn4n57fk8vr1lzrmli2ysdg6x1xzvk";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Threading.Tasks";
+    version = "4.3.0";
+    sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Threading.Timer";
+    version = "4.0.1";
+    sha256 = "14p9qc9y8ay6kgz363xlxy5c75ilq3r7zw4ddx7348iir0m140ir";
+  })
+  (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";
@@ -725,16 +905,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";
@@ -755,11 +925,6 @@
     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";
@@ -770,6 +935,21 @@
     sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97";
   })
   (fetchNuGet {
+    name = "runtime.native.System.Security.Cryptography";
+    version = "4.0.0";
+    sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9";
+  })
+  (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.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl";
     version = "4.3.0";
     sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3";
@@ -810,9 +990,84 @@
     sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5";
   })
   (fetchNuGet {
-    name = "Sentry";
-    version = "2.1.8";
-    sha256 = "1ii62ynihr4j2v2agjizk38kfz3m9bdijkks9k7ydhcq1bcz7jbn";
+    name = "runtime.unix.Microsoft.Win32.Primitives";
+    version = "4.0.1";
+    sha256 = "1i47c440zlibzhyh2dr45jgbsmn3a7ki1paappdf9af4qrlaas63";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.Microsoft.Win32.Primitives";
+    version = "4.3.0";
+    sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Console";
+    version = "4.0.0";
+    sha256 = "0q96nlj42yj0b020j22z6j3qiza7lz7sb1r34dy4r1f3cq9s5zp6";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Console";
+    version = "4.3.0";
+    sha256 = "1pfpkvc6x2if8zbdzg9rnc5fx51yllprl8zkm5npni2k50lisy80";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Diagnostics.Debug";
+    version = "4.0.11";
+    sha256 = "05ndbai4vpqrry0ghbfgqc8xblmplwjgndxmdn1zklqimczwjg2d";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Diagnostics.Debug";
+    version = "4.3.0";
+    sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.IO.FileSystem";
+    version = "4.0.1";
+    sha256 = "02wnlydnbhai0zy7c3kihg0cis0l1b2z78kyi1ci47c5v0jklwha";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.IO.FileSystem";
+    version = "4.3.0";
+    sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Net.Primitives";
+    version = "4.0.11";
+    sha256 = "1fy9hy30bs3pv6jr2ci2vscgycz64r1bgl91s51psidzh64i1gp9";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Net.Primitives";
+    version = "4.3.0";
+    sha256 = "0bdnglg59pzx9394sy4ic66kmxhqp8q8bvmykdxcbs5mm0ipwwm4";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Net.Sockets";
+    version = "4.1.0";
+    sha256 = "0vj5n45mm2k2khayvrp1lbz5djnp5lac1dna37g5c0nh7pmzgc4f";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Net.Sockets";
+    version = "4.3.0";
+    sha256 = "03npdxzy8gfv035bv1b9rz7c7hv0rxl5904wjz51if491mw0xy12";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Private.Uri";
+    version = "4.0.1";
+    sha256 = "0ic5dgc45jkhcr1g9xmmzjm7ffiw4cymm0fprczlx4fnww4783nm";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Private.Uri";
+    version = "4.3.0";
+    sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Runtime.Extensions";
+    version = "4.1.0";
+    sha256 = "0x1cwd7cvifzmn5x1wafvj75zdxlk3mxy860igh3x1wx0s8167y4";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Runtime.Extensions";
+    version = "4.3.0";
+    sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p";
   })
   (fetchNuGet {
     name = "Sentry.PlatformAbstractions";
@@ -825,6 +1080,11 @@
     sha256 = "04baw4yxc5lbcl83sfcdyjg5225719bf3sxpa3kjmhf58bjr143l";
   })
   (fetchNuGet {
+    name = "Sentry";
+    version = "2.1.8";
+    sha256 = "1ii62ynihr4j2v2agjizk38kfz3m9bdijkks9k7ydhcq1bcz7jbn";
+  })
+  (fetchNuGet {
     name = "SharpCompress";
     version = "0.17.1";
     sha256 = "1ffiacghbcnr3fkgvdcad7b1nky54nhmmn2sm43sks9zm8grvva4";
@@ -915,16 +1175,6 @@
     sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3";
   })
   (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";
@@ -950,6 +1200,16 @@
     sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r";
   })
   (fetchNuGet {
+    name = "System.Collections";
+    version = "4.0.11";
+    sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6";
+  })
+  (fetchNuGet {
+    name = "System.Collections";
+    version = "4.3.0";
+    sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
+  })
+  (fetchNuGet {
     name = "System.ComponentModel.Annotations";
     version = "4.5.0";
     sha256 = "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p";
@@ -960,11 +1220,6 @@
     sha256 = "021h7x98lblq9avm1bgpa4i31c2kgsa7zn4sqhxf39g087ar756j";
   })
   (fetchNuGet {
-    name = "System.Composition";
-    version = "1.0.31";
-    sha256 = "0aa27jz73qb0xm6dyxv22qhfrmyyqjyn2dvvsd9asi82lcdh9i61";
-  })
-  (fetchNuGet {
     name = "System.Composition.AttributedModel";
     version = "1.0.31";
     sha256 = "1ipyb86hvw754kmk47vjmzyilvj5hymg9nqabz70sbgsz1fygrdv";
@@ -990,6 +1245,11 @@
     sha256 = "1m4j19zx50lbbdx1xxbgpsd1dai2r3kzkyapw47kdvkb89qjkl63";
   })
   (fetchNuGet {
+    name = "System.Composition";
+    version = "1.0.31";
+    sha256 = "0aa27jz73qb0xm6dyxv22qhfrmyyqjyn2dvvsd9asi82lcdh9i61";
+  })
+  (fetchNuGet {
     name = "System.Console";
     version = "4.0.0";
     sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf";
@@ -1050,16 +1310,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";
@@ -1080,19 +1330,29 @@
     sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls";
   })
   (fetchNuGet {
+    name = "System.Globalization";
+    version = "4.0.11";
+    sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d";
+  })
+  (fetchNuGet {
+    name = "System.Globalization";
+    version = "4.3.0";
+    sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
+  })
+  (fetchNuGet {
     name = "System.Interactive.Async";
     version = "3.2.0";
     sha256 = "0y5r5y7dlccjpgg17rjrrzi3jya4ysyydamxs33qckkv4jb3534d";
   })
   (fetchNuGet {
-    name = "System.IO";
-    version = "4.1.0";
-    sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
+    name = "System.IO.Compression.ZipFile";
+    version = "4.0.1";
+    sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82";
   })
   (fetchNuGet {
-    name = "System.IO";
+    name = "System.IO.Compression.ZipFile";
     version = "4.3.0";
-    sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
+    sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar";
   })
   (fetchNuGet {
     name = "System.IO.Compression";
@@ -1105,14 +1365,14 @@
     sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz";
   })
   (fetchNuGet {
-    name = "System.IO.Compression.ZipFile";
+    name = "System.IO.FileSystem.Primitives";
     version = "4.0.1";
-    sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82";
+    sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612";
   })
   (fetchNuGet {
-    name = "System.IO.Compression.ZipFile";
+    name = "System.IO.FileSystem.Primitives";
     version = "4.3.0";
-    sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar";
+    sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
   })
   (fetchNuGet {
     name = "System.IO.FileSystem";
@@ -1125,16 +1385,6 @@
     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.Packaging";
     version = "5.0.0";
     sha256 = "08l85pi8jy65las973szqdnir2awxp0r16h21c0bgrz19gxhs11n";
@@ -1145,14 +1395,14 @@
     sha256 = "0djp59x56klidi04xx8p5jc1nchv5zvd1d59diphqxwvgny3aawy";
   })
   (fetchNuGet {
-    name = "System.Linq";
+    name = "System.IO";
     version = "4.1.0";
-    sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5";
+    sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
   })
   (fetchNuGet {
-    name = "System.Linq";
+    name = "System.IO";
     version = "4.3.0";
-    sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
+    sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
   })
   (fetchNuGet {
     name = "System.Linq.Expressions";
@@ -1170,6 +1420,16 @@
     sha256 = "11jn9k34g245yyf260gr3ldzvaqa9477w2c5nhb1p8vjx4xm3qaw";
   })
   (fetchNuGet {
+    name = "System.Linq";
+    version = "4.1.0";
+    sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5";
+  })
+  (fetchNuGet {
+    name = "System.Linq";
+    version = "4.3.0";
+    sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
+  })
+  (fetchNuGet {
     name = "System.Memory";
     version = "4.5.1";
     sha256 = "0f07d7hny38lq9w69wx4lxkn4wszrqf9m9js6fh9is645csm167c";
@@ -1200,6 +1460,16 @@
     sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j";
   })
   (fetchNuGet {
+    name = "System.Net.NameResolution";
+    version = "4.0.0";
+    sha256 = "0dj3pvpv069nyia28gkl4a0fb7q33hbxz2dg25qvpah3l7pbl0qh";
+  })
+  (fetchNuGet {
+    name = "System.Net.NameResolution";
+    version = "4.3.0";
+    sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq";
+  })
+  (fetchNuGet {
     name = "System.Net.Primitives";
     version = "4.0.11";
     sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r";
@@ -1240,24 +1510,14 @@
     sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2";
   })
   (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";
+    name = "System.Private.Uri";
     version = "4.0.1";
-    sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp";
+    sha256 = "0k57qhawjysm4cpbfpc49kl4av7lji310kjcamkl23bwgij5ld9j";
   })
   (fetchNuGet {
-    name = "System.Reflection.Emit";
+    name = "System.Private.Uri";
     version = "4.3.0";
-    sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74";
+    sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx";
   })
   (fetchNuGet {
     name = "System.Reflection.Emit.ILGeneration";
@@ -1285,6 +1545,16 @@
     sha256 = "0mbjfajmafkca47zr8v36brvknzks5a7pgb49kfq2d188pyv6iap";
   })
   (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";
@@ -1325,24 +1595,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";
@@ -1385,16 +1655,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";
@@ -1405,6 +1665,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";
@@ -1420,11 +1690,31 @@
     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 = "5.0.0";
     sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r";
   })
   (fetchNuGet {
+    name = "System.Security.Claims";
+    version = "4.0.1";
+    sha256 = "03dw0ls49bvsrffgwycyifjgz0qzr9r85skqhdyhfd51fqf398n6";
+  })
+  (fetchNuGet {
+    name = "System.Security.Claims";
+    version = "4.3.0";
+    sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn";
+  })
+  (fetchNuGet {
     name = "System.Security.Cryptography.Algorithms";
     version = "4.2.0";
     sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85";
@@ -1496,18 +1786,28 @@
   })
   (fetchNuGet {
     name = "System.Security.Principal.Windows";
+    version = "4.0.0";
+    sha256 = "1d3vc8i0zss9z8p4qprls4gbh7q4218l9845kclx7wvw41809k6z";
+  })
+  (fetchNuGet {
+    name = "System.Security.Principal.Windows";
+    version = "4.3.0";
+    sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr";
+  })
+  (fetchNuGet {
+    name = "System.Security.Principal.Windows";
     version = "5.0.0";
     sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8";
   })
   (fetchNuGet {
-    name = "System.Text.Encoding";
-    version = "4.0.11";
-    sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw";
+    name = "System.Security.Principal";
+    version = "4.0.1";
+    sha256 = "1nbzdfqvzzbgsfdd5qsh94d7dbg2v4sw0yx6himyn52zf8z6007p";
   })
   (fetchNuGet {
-    name = "System.Text.Encoding";
+    name = "System.Security.Principal";
     version = "4.3.0";
-    sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
+    sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf";
   })
   (fetchNuGet {
     name = "System.Text.Encoding.CodePages";
@@ -1530,6 +1830,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.Encodings.Web";
     version = "4.7.1";
     sha256 = "1wj7r07mjwbf9a79kapy2l9m8mcq8b3nbhg0zaprlsav09k85fmb";
@@ -1550,31 +1860,11 @@
     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.Channels";
     version = "4.7.1";
     sha256 = "038fyrriypwzsj5fwgnkw79hm5ya0x63r724yizgahbxf512chr2";
   })
   (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.Extensions";
     version = "4.0.0";
     sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr";
@@ -1590,11 +1880,31 @@
     sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153";
   })
   (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.Thread";
     version = "4.0.0";
     sha256 = "1gxxm5fl36pjjpnx1k688dcw8m9l7nmf802nxis6swdaw8k54jzc";
   })
   (fetchNuGet {
+    name = "System.Threading.ThreadPool";
+    version = "4.0.10";
+    sha256 = "0fdr61yjcxh5imvyf93n2m3n5g9pp54bnw2l1d2rdl9z6dd31ypx";
+  })
+  (fetchNuGet {
+    name = "System.Threading.ThreadPool";
+    version = "4.3.0";
+    sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1";
+  })
+  (fetchNuGet {
     name = "System.Threading.Timer";
     version = "4.0.1";
     sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6";
@@ -1605,6 +1915,16 @@
     sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56";
   })
   (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";
diff --git a/pkgs/games/osu-lazer/osu.runtimeconfig.json b/pkgs/games/osu-lazer/osu.runtimeconfig.json
new file mode 100644
index 00000000000..ec942fede66
--- /dev/null
+++ b/pkgs/games/osu-lazer/osu.runtimeconfig.json
@@ -0,0 +1,9 @@
+{
+  "runtimeOptions": {
+    "tfm": "netcoreapp3.1",
+    "framework": {
+      "name": "Microsoft.NETCore.App",
+      "version": "3.1.0"
+    }
+  }
+}
diff --git a/pkgs/games/osu-lazer/update.sh b/pkgs/games/osu-lazer/update.sh
index be8fa3fe716..3c78ae8a50a 100755
--- a/pkgs/games/osu-lazer/update.sh
+++ b/pkgs/games/osu-lazer/update.sh
@@ -5,7 +5,7 @@ cd "$(dirname "${BASH_SOURCE[0]}")"
 
 deps_file="$(realpath "./deps.nix")"
 
-new_version="$(curl -s "https://api.github.com/repos/ppy/osu/releases" | jq -r '.[0].name')"
+new_version="$(curl -s "https://api.github.com/repos/ppy/osu/releases?per_page=1" | jq -r '.[0].name')"
 old_version="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./default.nix)"
 if [[ "$new_version" == "$old_version" ]]; then
   echo "Up to date"
@@ -36,7 +36,7 @@ cat >./nuget_tmp.config <<EOF
 </configuration>
 EOF
 
-dotnet restore osu.Desktop --configfile ./nuget_tmp.config
+dotnet restore osu.Desktop --configfile ./nuget_tmp.config --runtime linux-x64
 
 echo "{ fetchNuGet }: [" >"$deps_file"
 while read pkg_spec; do
diff --git a/pkgs/games/r2mod_cli/default.nix b/pkgs/games/r2mod_cli/default.nix
new file mode 100644
index 00000000000..d49dda36e57
--- /dev/null
+++ b/pkgs/games/r2mod_cli/default.nix
@@ -0,0 +1,34 @@
+{ fetchFromGitHub
+, jq
+, makeWrapper
+, p7zip
+, stdenv
+}:
+
+stdenv.mkDerivation rec {
+  pname = "r2mod_cli";
+  version = "1.0.5";
+
+  src = fetchFromGitHub {
+    owner = "Foldex";
+    repo = "r2mod_cli";
+    rev = "v${version}";
+    sha256 = "1g64f8ms7yz4rzm6xb93agc08kh9sbwkhvq35dpfhvi6v59j3n5m";
+  };
+
+  buildInputs = [ makeWrapper ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  postInstall = ''
+    wrapProgram $out/bin/r2mod --prefix PATH : "${stdenv.lib.makeBinPath [ jq p7zip ]}";
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A Risk of Rain 2 Mod Manager in Bash";
+    homepage = "https://github.com/foldex/r2mod_cli";
+    license = licenses.gpl3Only;
+    maintainers = [ maintainers.reedrw ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/games/simutrans/default.nix b/pkgs/games/simutrans/default.nix
index b75b67e0528..5d33ae99149 100644
--- a/pkgs/games/simutrans/default.nix
+++ b/pkgs/games/simutrans/default.nix
@@ -52,7 +52,7 @@ let
     "pak128.german" = {
       url = "mirror://sourceforge/simutrans/PAK128.german/"
         + "pak128.german_1.2_for_ST_121.0/PAK128.german_1.2_for_ST_121-0.zip";
-      sha256 = "1jxjckz4b02yv1mv1zc3pmajpq740dfnlvhr0x762lbrybymvagi";
+      sha256 = "1cv1rzl1a3i5dvk476zq094wawk9hhdh2f0y4xrdny5gn17mb2xi";
     };
 
     /* This release contains accented filenames that prevent unzipping.
diff --git a/pkgs/games/spring/default.nix b/pkgs/games/spring/default.nix
index b130a7b5f77..9583895e17a 100644
--- a/pkgs/games/spring/default.nix
+++ b/pkgs/games/spring/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, cmake, lzma, boost, libdevil, zlib, p7zip
 , openal, libvorbis, glew, freetype, xorg, SDL2, libGLU, libGL
-, asciidoc, libxslt, docbook_xsl, docbook_xsl_ns, curl, makeWrapper
+, asciidoc, docbook_xsl, docbook_xsl_ns, curl, makeWrapper
 , jdk ? null, python ? null, systemd, libunwind, which, minizip
 , withAI ? true # support for AI Interfaces and Skirmish AIs
 }:
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   # taken from https://github.com/spring/spring/commits/maintenance
   src = fetchFromGitHub {
     owner = "spring";
-    repo = "spring";
+    repo = pname;
     inherit rev;
     sha256 = "1nx68d894yfmqc6df72hmk75ph26fqdvlmmq58cca0vbwpz9hf5v";
     fetchSubmodules = true;
@@ -40,14 +40,13 @@ stdenv.mkDerivation rec {
                 "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH:BOOL=ON"
                 "-DPREFER_STATIC_LIBS:BOOL=OFF"];
 
-  buildInputs = [ cmake lzma boost libdevil zlib p7zip openal libvorbis freetype SDL2
-    xorg.libX11 xorg.libXcursor libGLU libGL glew asciidoc libxslt docbook_xsl curl makeWrapper
-    docbook_xsl_ns systemd libunwind which minizip ]
+  nativeBuildInputs = [ cmake makeWrapper docbook_xsl docbook_xsl_ns asciidoc ];
+  buildInputs = [ lzma boost libdevil zlib p7zip openal libvorbis freetype SDL2
+    xorg.libX11 xorg.libXcursor libGLU libGL glew curl
+    systemd libunwind which minizip ]
     ++ stdenv.lib.optional withAI jdk
     ++ stdenv.lib.optional withAI python;
 
-  enableParallelBuilding = true;
-
   NIX_CFLAGS_COMPILE = "-fpermissive"; # GL header minor incompatibility
 
   postInstall = ''
@@ -59,7 +58,7 @@ stdenv.mkDerivation rec {
     homepage = "https://springrts.com/";
     description = "A powerful real-time strategy (RTS) game engine";
     license = licenses.gpl2;
-    maintainers = [ maintainers.phreedom maintainers.qknight maintainers.domenkozar maintainers.sorki ];
+    maintainers = with maintainers; [ phreedom qknight domenkozar sorki ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/games/spring/springlobby.nix b/pkgs/games/spring/springlobby.nix
index 33dc364c5b7..231090419e6 100644
--- a/pkgs/games/spring/springlobby.nix
+++ b/pkgs/games/spring/springlobby.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchpatch, cmake, wxGTK30, openal, pkgconfig, curl, libtorrentRasterbar
+{ stdenv, fetchurl, fetchpatch, cmake, wxGTK30, openal, pkgconfig, curl, libtorrent-rasterbar
 , libpng, libX11, gettext, boost, libnotify, gtk2, doxygen, spring
 , makeWrapper, glib, minizip, alure, pcre, jsoncpp }:
 
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkgconfig gettext doxygen makeWrapper ];
   buildInputs = [
-    wxGTK30 openal curl libtorrentRasterbar pcre jsoncpp
+    wxGTK30 openal curl libtorrent-rasterbar pcre jsoncpp
     boost libpng libX11 libnotify gtk2 glib minizip alure
   ];
 
diff --git a/pkgs/games/steam/fhsenv.nix b/pkgs/games/steam/fhsenv.nix
index d3d5b3a2271..4c57ce9aeb0 100644
--- a/pkgs/games/steam/fhsenv.nix
+++ b/pkgs/games/steam/fhsenv.nix
@@ -6,6 +6,7 @@
 , nativeOnly ? false
 , runtimeOnly ? false
 , runtimeShell
+, stdenv
 
 # DEPRECATED
 , withJava ? config.steam.java or false
@@ -43,24 +44,34 @@ let
       ++ lib.optional withPrimus primus
       ++ extraPkgs pkgs;
 
-  ldPath = map (x: "/steamrt/${steam-runtime-wrapped.arch}/" + x) steam-runtime-wrapped.libs
-           ++ lib.optionals (steam-runtime-wrapped-i686 != null) (map (x: "/steamrt/${steam-runtime-wrapped-i686.arch}/" + x) steam-runtime-wrapped-i686.libs);
+  ldPath = lib.optionals stdenv.is64bit [ "/lib64" ]
+  ++ [ "/lib32" ]
+  ++ map (x: "/steamrt/${steam-runtime-wrapped.arch}/" + x) steam-runtime-wrapped.libs
+  ++ lib.optionals (steam-runtime-wrapped-i686 != null) (map (x: "/steamrt/${steam-runtime-wrapped-i686.arch}/" + x) steam-runtime-wrapped-i686.libs);
 
   # Zachtronics and a few other studios expect STEAM_LD_LIBRARY_PATH to be present
   exportLDPath = ''
-    export LD_LIBRARY_PATH=/lib32:/lib64:${lib.concatStringsSep ":" ldPath}''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH
+    export LD_LIBRARY_PATH=${lib.concatStringsSep ":" ldPath}''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH
     export STEAM_LD_LIBRARY_PATH="$STEAM_LD_LIBRARY_PATH''${STEAM_LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
   '';
 
+  # bootstrap.tar.xz has 444 permissions, which means that simple deletes fail
+  # and steam will not be able to start
+  fixBootstrap = ''
+    if [ -r $HOME/.local/share/Steam/bootstrap.tar.xz ]; then
+      chmod +w $HOME/.local/share/Steam/bootstrap.tar.xz
+    fi
+  '';
+
   setupSh = writeScript "setup.sh" ''
     #!${runtimeShell}
   '';
 
   runSh = writeScript "run.sh" ''
     #!${runtimeShell}
-    runtime_paths="/lib32:/lib64:${lib.concatStringsSep ":" ldPath}"
+    runtime_paths="${lib.concatStringsSep ":" ldPath}"
     if [ "$1" == "--print-steam-runtime-library-paths" ]; then
-      echo "$runtime_paths"
+      echo "$runtime_paths''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
       exit 0
     fi
     export LD_LIBRARY_PATH="$runtime_paths''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
@@ -226,7 +237,7 @@ in buildFHSUserEnv rec {
     mkdir -p $out/share/applications
     ln -s ${steam}/share/icons $out/share
     ln -s ${steam}/share/pixmaps $out/share
-    sed "s,/usr/bin/steam,steam,g" ${steam}/share/applications/steam.desktop > $out/share/applications/steam.desktop
+    ln -s ${steam}/share/applications/steam.desktop $out/share/applications/steam.desktop
   '';
 
   profile = ''
@@ -261,6 +272,7 @@ in buildFHSUserEnv rec {
       fi
     fi
     ${lib.optionalString (!nativeOnly) exportLDPath}
+    ${fixBootstrap}
     exec steam "$@"
   '';
 
@@ -287,6 +299,7 @@ in buildFHSUserEnv rec {
       fi
       shift
       ${lib.optionalString (!nativeOnly) exportLDPath}
+      ${fixBootstrap}
       exec -- "$run" "$@"
     '';
   };
diff --git a/pkgs/games/steam/steam.nix b/pkgs/games/steam/steam.nix
index 20ccba641e4..ed837c9f0bd 100644
--- a/pkgs/games/steam/steam.nix
+++ b/pkgs/games/steam/steam.nix
@@ -1,8 +1,8 @@
-{stdenv, fetchurl, runtimeShell, traceDeps ? false}:
+{ stdenv, fetchurl, runtimeShell, traceDeps ? false, bash }:
 
 let
   traceLog = "/tmp/steam-trace-dependencies.log";
-  version = "1.0.0.61";
+  version = "1.0.0.68";
 
 in stdenv.mkDerivation {
   pname = "steam-original";
@@ -10,7 +10,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://repo.steampowered.com/steam/pool/steam/s/steam/steam_${version}.tar.gz";
-    sha256 = "0c5xy57gwr14vp3wy3jpqi5dl6y7n01p2dy4jlgl9bf9x7616r6n";
+    sha256 = "sha256-ZeiCYjxnH0Ath5bB20QHmE8R3wU4/3RiAw2NUhrrKNM=";
   };
 
   makeFlags = [ "DESTDIR=$(out)" "PREFIX=" ];
@@ -26,14 +26,22 @@ in stdenv.mkDerivation {
       EOF
       chmod +x $out/bin/steamdeps
     ''}
-    install -d $out/lib/udev/rules.d
-    install -m644 lib/udev/rules.d/*.rules $out/lib/udev/rules.d
+
+    # install udev rules
+    mkdir -p $out/etc/udev/rules.d/
+    cp ./subprojects/steam-devices/*.rules $out/etc/udev/rules.d/
+    substituteInPlace $out/etc/udev/rules.d/60-steam-input.rules \
+      --replace "/bin/sh" "${bash}/bin/bash"
+
+    # this just installs a link, "steam.desktop -> /lib/steam/steam.desktop"
+    rm $out/share/applications/steam.desktop
+    sed -e 's,/usr/bin/steam,steam,g' steam.desktop > $out/share/applications/steam.desktop
   '';
 
   meta = with stdenv.lib; {
     description = "A digital distribution platform";
     homepage = "http://store.steampowered.com/";
     license = licenses.unfreeRedistributable;
-    maintainers = with maintainers; [ jagajaga ];
+    maintainers = with maintainers; [ jagajaga jonringer ];
   };
 }
diff --git a/pkgs/games/trackballs/default.nix b/pkgs/games/trackballs/default.nix
index ec607758bd6..35c0b828775 100644
--- a/pkgs/games/trackballs/default.nix
+++ b/pkgs/games/trackballs/default.nix
@@ -4,13 +4,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "trackballs";
-  version = "1.3.1";
+  version = "1.3.2";
 
   src = fetchFromGitHub {
     owner = "trackballs";
     repo = "trackballs";
     rev = "v${version}";
-    sha256 = "1yjzz50r57aahy7wcbsmhrd40abzyriq40j49225ya7m9g28vmgl";
+    sha256 = "G+KfQgqk+iI+Beb/ZRul2ArCBcvwYQ/ftEWzdrtwb18=";
   };
 
   buildInputs = [ cmake zlib SDL2 SDL2_ttf SDL2_mixer SDL2_image guile gettext libGLU libGL ];
diff --git a/pkgs/games/warsow/default.nix b/pkgs/games/warsow/default.nix
index 4c2cd1b5a28..64c275ec444 100644
--- a/pkgs/games/warsow/default.nix
+++ b/pkgs/games/warsow/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   version = "2.1.2";
 
   src = fetchurl {
-    url = "http://slice.sh/warsow/${pname}-${version}.tar.gz";
+    url = "http://warsow.net/${pname}-${version}.tar.gz";
     sha256 = "07y2airw5qg3s1bf1c63a6snjj22riz0mqhk62jmfm9nrarhavrc";
   };
 
diff --git a/pkgs/games/xonotic/default.nix b/pkgs/games/xonotic/default.nix
index 60ebdcf8eeb..6f7ee6962bf 100644
--- a/pkgs/games/xonotic/default.nix
+++ b/pkgs/games/xonotic/default.nix
@@ -45,7 +45,7 @@ let
 
   desktopItem = makeDesktopItem {
     name = "xonotic";
-    exec = "$out/bin/xonotic";
+    exec = "xonotic";
     comment = meta.description;
     desktopName = "Xonotic";
     categories = "Game;Shooter;";
diff --git a/pkgs/games/zdoom/default.nix b/pkgs/games/zdoom/default.nix
index 646021eb2fc..37a8fd0fda8 100644
--- a/pkgs/games/zdoom/default.nix
+++ b/pkgs/games/zdoom/default.nix
@@ -25,8 +25,6 @@ stdenv.mkDerivation rec {
 
   sourceRoot = ".";
 
-  enableParallelBuilding = true;
-
   NIX_CFLAGS_LINK = [ "-lopenal" "-lfluidsynth" ];
 
   preConfigure = ''
diff --git a/pkgs/games/zdoom/zdbsp.nix b/pkgs/games/zdoom/zdbsp.nix
index e86ebd6dbc2..3dc523b4985 100644
--- a/pkgs/games/zdoom/zdbsp.nix
+++ b/pkgs/games/zdoom/zdbsp.nix
@@ -1,18 +1,18 @@
-{ stdenv, fetchurl, cmake, unzip, zlib }:
+{ stdenv, fetchzip, cmake, zlib }:
 
 stdenv.mkDerivation rec {
   pname = "zdbsp";
   version = "1.19";
 
-  src = fetchurl {
+  src = fetchzip {
     url = "https://zdoom.org/files/utils/zdbsp/zdbsp-${version}-src.zip";
-    sha256 = "0j82q7g7hgvnahk6gdyhmn9880mqii3b4agqc98f5xaj3kxmd2dr";
+    sha256 = "1j6k0appgjjj3ffbll9hy9nnbqr17szd1s66q08zrbkfqf6g8f0d";
+    stripRoot = false;
   };
 
-  nativeBuildInputs = [cmake unzip];
-  buildInputs = [zlib];
-  sourceRoot = ".";
-  enableParallelBuilding = true;
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ zlib ];
+
   installPhase = ''
     install -Dm755 zdbsp $out/bin/zdbsp
   '';
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     description = "ZDoom's internal node builder for DOOM maps";
     homepage = "https://zdoom.org/wiki/ZDBSP";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ertes];
-    platforms = platforms.linux;
+    maintainers = with maintainers; [ lassulus siraben ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/misc/beep/default.nix b/pkgs/misc/beep/default.nix
index 40a8849ba3f..bb62271a310 100644
--- a/pkgs/misc/beep/default.nix
+++ b/pkgs/misc/beep/default.nix
@@ -1,25 +1,25 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchFromGitHub }:
 
 # this package is working only as root
 # in order to work as a non privileged user you would need to suid the bin
 
-stdenv.mkDerivation {
-  name = "beep-1.3";
-  src = fetchurl {
-    url = "http://www.johnath.com/beep/beep-1.3.tar.gz";
-    sha256 = "0bgch6jq5cahakk3kbr9549iysf2dik09afixxy5brbxk1xfzb2r";
+stdenv.mkDerivation rec {
+  pname = "beep";
+  version = "1.4.9";
+
+  src = fetchFromGitHub {
+    owner = "spkr-beep";
+    repo = "beep";
+    rev = "v${version}";
+    sha256 = "JLaoiINHpIFWSqsRl8wJ/NeBu7SCcPuT/BzY8szEu0o=";
   };
 
-  makeFlags = [ "INSTALL_DIR=\${out}/bin/" "MAN_DIR=\${out}/man/man1/" ];
+  makeFlags = [ "DESTDIR=\${out}" "prefix="];
 
-  preInstall = ''
-    mkdir -p $out/bin
-    mkdir -p $out/man/man1
-  '';
-  meta = {
+  meta = with stdenv.lib; {
     description = "The advanced PC speaker beeper";
-    homepage = "http://www.johnath.com/beep/";
-    license = stdenv.lib.licenses.gpl2;
-    platforms = stdenv.lib.platforms.linux;
+    homepage = "https://github.com/spkr-beep/beep";
+    license = licenses.gpl2Only;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/misc/cups/drivers/kyodialog3/default.nix b/pkgs/misc/cups/drivers/kyodialog3/default.nix
index fa16a136f97..7e0a0dea67d 100644
--- a/pkgs/misc/cups/drivers/kyodialog3/default.nix
+++ b/pkgs/misc/cups/drivers/kyodialog3/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   dontStrip = true;
 
   src = fetchzip {
-    url = "https://usa.kyoceradocumentsolutions.com/content/dam/kdc/kdag/downloads/technical/executables/drivers/kyoceradocumentsolutions/us/en/Kyocera_Linux_PPD_Ver_${version}.tar.gz";
+    url = "https://la.kyoceradocumentsolutions.com/content/dam/kdc/kdag/downloads/technical/executables/drivers/kyoceradocumentsolutions/lad/en/Kyocera_Linux_PPD_Ver_${version}.tar.gz";
     sha256 = "11znnlkfssakml7w80gxlz1k59f3nvhph91fkzzadnm9i7a8yjal";
   };
 
diff --git a/pkgs/misc/drivers/epkowa/default.nix b/pkgs/misc/drivers/epkowa/default.nix
index eb88476432b..9054c4c48f8 100644
--- a/pkgs/misc/drivers/epkowa/default.nix
+++ b/pkgs/misc/drivers/epkowa/default.nix
@@ -65,6 +65,40 @@ let plugins = {
     };
     meta = common_meta // { description = "Plugin to support " + passthru.hw + " scanner in sane"; };
   };
+  v370 = stdenv.mkDerivation rec {
+    name = "iscan-v370-bundle";
+    version = "2.30.4";
+
+    src = fetchurl {
+      urls = [
+        "https://download2.ebz.epson.net/iscan/plugin/perfection-v370/rpm/x64/iscan-perfection-v370-bundle-${version}.x64.rpm.tar.gz"
+        "https://web.archive.org/web/https://download2.ebz.epson.net/iscan/plugin/perfection-v370/rpm/x64/iscan-perfection-v370-bundle-${version}.x64.rpm.tar.gz"
+      ];
+      sha256 = "1ff7adp9mha1i2ibllz540xkagpy8r757h4s3h60bgxbyzv2yggr";
+    };
+
+    nativeBuildInputs = [ autoPatchelfHook rpm ];
+
+    installPhase = ''
+      cd plugins
+      ${rpm}/bin/rpm2cpio iscan-plugin-perfection-v370-*.x86_64.rpm | ${cpio}/bin/cpio -idmv
+
+
+      mkdir -p $out/share $out/lib
+      cp -r usr/share/{iscan-data,iscan}/ $out/share
+      cp -r usr/lib64/iscan $out/lib
+      mv $out/share/iscan $out/share/esci
+      mv $out/lib/iscan $out/lib/esci
+    '';
+
+    passthru = {
+      registrationCommand = ''
+        $registry --add interpreter usb 0x04b8 0x014a "$plugin/lib/esci/libiscan-plugin-perfection-v370 $plugin/share/esci/esfwdd.bin"
+      '';
+      hw = "Perfection V37/V370";
+    };
+    meta = common_meta // { description = "Plugin to support " + passthru.hw + " scanner in sane"; };
+  };
   x770 = stdenv.mkDerivation rec {
     pname = "iscan-gt-x770-bundle";
     version = "2.30.4";
diff --git a/pkgs/misc/drivers/utsushi/default.nix b/pkgs/misc/drivers/utsushi/default.nix
index 20701c5cc4d..748930da546 100644
--- a/pkgs/misc/drivers/utsushi/default.nix
+++ b/pkgs/misc/drivers/utsushi/default.nix
@@ -12,13 +12,13 @@ let
   '';
 in stdenv.mkDerivation rec {
   pname = "utsushi";
-  version = "unstable-2020-11-10";
+  version = "unstable-2021-01-01";
 
   src = fetchFromGitLab {
     owner = pname;
     repo = pname;
-    rev = "04700043e2d16062eb8bd27f4efff3024f387d32";
-    sha256 = "0rxv5n0985d414i6hwichsn7hybwgwsimpy5s4hmcsvxqcpks4li";
+    rev = "1646d7d301f3d2aeb24930696688853fed5f0d43";
+    sha256 = "1g9m00qljhlw56h3hgfq67ywf4r92nl37m7x5mxa7ygaxc0dyb14";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/misc/emulators/craftos-pc/default.nix b/pkgs/misc/emulators/craftos-pc/default.nix
new file mode 100644
index 00000000000..42fb33051e6
--- /dev/null
+++ b/pkgs/misc/emulators/craftos-pc/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, poco, openssl, SDL2, SDL2_mixer }:
+
+let
+  craftos2-lua = fetchFromGitHub {
+    owner = "MCJack123";
+    repo = "craftos2-lua";
+    rev = "v2.4.4";
+    sha256 = "1q63ki4sxx8bxaa6ag3xj153p7a8a12ivm0k33k935p41k6y2k64";
+  };
+in
+
+stdenv.mkDerivation rec {
+  pname = "craftos-pc";
+  version = "2.4.5";
+
+  src = fetchFromGitHub {
+    owner = "MCJack123";
+    repo = "craftos2";
+    rev = "v${version}";
+    sha256 = "00a4p365krbdprlv4979d13mm3alhxgzzj3vqz2g67795plf64j4";
+  };
+
+  buildInputs = [ poco openssl SDL2 SDL2_mixer ];
+
+  preBuild = ''
+    cp -R ${craftos2-lua}/* ./craftos2-lua/
+    chmod -R u+w ./craftos2-lua
+    make -C craftos2-lua linux
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    DESTDIR=$out/bin make install
+  '';
+
+  meta = with stdenv.lib; {
+    description = "An implementation of the CraftOS-PC API written in C++ using SDL";
+    homepage = "https://www.craftos-pc.cc";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.siraben ];
+  };
+}
diff --git a/pkgs/misc/emulators/dgen-sdl/default.nix b/pkgs/misc/emulators/dgen-sdl/default.nix
new file mode 100644
index 00000000000..1eabf5b53b0
--- /dev/null
+++ b/pkgs/misc/emulators/dgen-sdl/default.nix
@@ -0,0 +1,70 @@
+{ stdenv
+, fetchurl
+, libarchive
+, doxygen
+, SDL
+}:
+
+let
+  pname = "dgen-sdl";
+  version = "1.33";
+in stdenv.mkDerivation {
+  inherit pname version;
+
+  src = fetchurl {
+    url = "https://sourceforge.net/projects/dgen/files/dgen/${version}/${pname}-${version}.tar.gz";
+    hash = "sha256-meLAYBfCKHPHf4gYbrzAmGckTrbgQsdjuwlLArje9h4=";
+  };
+
+  buildInputs = [ SDL libarchive ];
+
+  configureFlags = [
+    "--enable-joystick"
+    "--enable-debugger"
+    "--enable-debug-vdp"
+    "--enable-pico" # experimental
+    "--enable-vgmdump"
+    "--with-star=no" # Needs ASM support
+    "--with-musa"
+    "--with-cyclone=no" # Needs ASM support
+    "--with-mz80"
+    "--with-cz80"
+    "--with-drz80=no" # Needs ASM support
+    "--with-dz80"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://dgen.sourceforge.net/";
+    description = "Sega Genesis/Mega Drive emulator";
+    longDescription = ''
+      DGen/SDL is a free, open source emulator for Sega Genesis/Mega Drive
+      systems. DGen was originally written by Dave, then ported to SDL by Joe
+      Groff and Phil K. Hornung in 1998.
+
+      It features:
+
+      - Game Genie/Hex codes support
+      - PAL/NTSC, fullscreen modes
+      - Joypad/joystick support
+      - Mouse support
+      - Highly configurable controls
+      - OpenGL textured video output
+      - Portable (64‐bit, endian safe), runs in Windows using MinGW
+      - Screenshots, demos recording and playback
+      - Musashi (generic) and StarScream (x86‐only) CPU cores
+      - Cyclone 68000 and DrZ80 (both ARM‐only) CPU cores
+      - CZ80 (generic) and MZ80 (generic and x86‐only versions)
+      - 16‐bit, 8000 to 48000Hz sound output
+      - Support for 8, 15, 16, 24 and 32 bpp modes
+      - Archived/compressed ROMs support
+      - M68K debugger (contributed by Edd Barrett)
+      - Z80 debugger
+      - hqx and scale2x upscaling filters
+      - VGM dumping
+    '';
+    license = licenses.mit;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = with platforms; unix;
+  };
+}
+# TODO: implement configure options
diff --git a/pkgs/misc/emulators/duckstation/default.nix b/pkgs/misc/emulators/duckstation/default.nix
new file mode 100644
index 00000000000..29b867f0e9e
--- /dev/null
+++ b/pkgs/misc/emulators/duckstation/default.nix
@@ -0,0 +1,34 @@
+{ lib, mkDerivation, fetchFromGitHub, cmake, pkg-config, SDL2, qtbase
+, wrapQtAppsHook, qttools, ninja, gtk3 }:
+mkDerivation rec {
+  pname = "duckstation";
+  version = "unstable-2020-12-29";
+
+  src = fetchFromGitHub {
+    owner = "stenzek";
+    repo = pname;
+    rev = "f8dcfabc44ff8391b2d41eab2e883dc8f21a88b7";
+    sha256 = "0v6w4di4yj1hbxpqqrcw8rbfjg18g9kla8mnb3b5zgv7i4dyzykw";
+  };
+
+  nativeBuildInputs = [ cmake wrapQtAppsHook qttools ];
+
+  buildInputs = [ SDL2 qtbase gtk3 pkg-config ];
+
+  installPhase = ''
+    mkdir -p $out/
+    mv bin $out/
+  '';
+
+  # TODO:
+  # - vulkan graphics backend (OpenGL works).
+  # - default sound backend (cubeb) does not work, but SDL does.
+  meta = with lib; {
+    description =
+      "PlayStation 1 emulator focusing on playability, speed and long-term maintainability";
+    homepage = "https://github.com/stenzek/duckstation";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.guibou ];
+  };
+}
diff --git a/pkgs/misc/emulators/reicast/default.nix b/pkgs/misc/emulators/reicast/default.nix
new file mode 100644
index 00000000000..c9dff7217d2
--- /dev/null
+++ b/pkgs/misc/emulators/reicast/default.nix
@@ -0,0 +1,52 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, curl
+, alsaLib
+, libGLU
+, libX11
+, libevdev
+, udev
+, libpulseaudio
+}:
+
+stdenv.mkDerivation rec {
+  pname = "reicast";
+  version = "20.04";
+
+  src = fetchFromGitHub {
+    owner = "reicast";
+    repo = "reicast-emulator";
+    rev = "r${version}";
+    sha256 = "0vz3b1hg1qj6nycnqq5zcpzqpcbxw1c2ffamia5z3x7rapjx5d71";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = [
+    curl
+    alsaLib
+    libGLU
+    libX11
+    libevdev
+    udev
+    libpulseaudio
+  ];
+
+  # No rule to make target 'install'
+  installPhase = ''
+    runHook preInstall
+
+    install -D ./reicast $out/bin/reicast
+
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://reicast.com/";
+    description = "A multi-platform Sega Dreamcast emulator";
+    license = with licenses; [ bsd3 gpl2Only lgpl2Only ];
+    platforms = ["x86_64-linux" ];
+    maintainers = [ maintainers.ivar ];
+  };
+}
diff --git a/pkgs/misc/emulators/wine/base.nix b/pkgs/misc/emulators/wine/base.nix
index 0be36daac9f..6d164fd27bf 100644
--- a/pkgs/misc/emulators/wine/base.nix
+++ b/pkgs/misc/emulators/wine/base.nix
@@ -1,6 +1,7 @@
 { stdenv, lib, pkgArches, callPackage,
   name, version, src, mingwGccs, monos, geckos, platforms,
-  pkgconfig, fontforge, makeWrapper, flex, bison,
+  bison, flex, fontforge, makeWrapper, pkg-config,
+  autoconf, hexdump, perl,
   supportFlags,
   patches,
   buildScript ? null, configureFlags ? []
@@ -18,16 +19,24 @@ stdenv.mkDerivation ((lib.optionalAttrs (buildScript != null) {
   inherit name src configureFlags;
 
   # Fixes "Compiler cannot create executables" building wineWow with mingwSupport
-  # FIXME Breaks wineStaging builds
-  strictDeps = supportFlags.mingwSupport;
+  strictDeps = true;
 
   nativeBuildInputs = [
-    pkgconfig fontforge makeWrapper flex bison
+    bison
+    flex
+    fontforge
+    makeWrapper
+    pkg-config
+
+    # Required by staging
+    autoconf
+    hexdump
+    perl
   ]
   ++ lib.optionals supportFlags.mingwSupport mingwGccs;
 
   buildInputs = toBuildInputs pkgArches (with supportFlags; (pkgs:
-  [ pkgs.freetype ]
+  [ pkgs.freetype pkgs.perl pkgs.xorg.libX11 ]
   ++ lib.optional stdenv.isLinux         pkgs.libcap
   ++ lib.optional pngSupport             pkgs.libpng
   ++ lib.optional jpegSupport            pkgs.libjpeg
@@ -72,8 +81,7 @@ stdenv.mkDerivation ((lib.optionalAttrs (buildScript != null) {
   ])
   ++ lib.optionals stdenv.isLinux  (with pkgs.xorg; [
      libXi libXcursor libXrandr libXrender libXxf86vm libXcomposite libXext
-  ])
-  ++ [ pkgs.xorg.libX11 pkgs.perl ]));
+  ])));
 
   patches = [ ] ++ patches';
 
@@ -91,14 +99,6 @@ stdenv.mkDerivation ((lib.optionalAttrs (buildScript != null) {
   # elements specified above.
   dontPatchELF = true;
 
-  # Disable stripping to avoid breaking placeholder DLLs/EXEs.
-  # Symptoms of broken placeholders are: when the wineprefix is created
-  # drive_c/windows/system32 will only contain a few files instead of
-  # hundreds, there will be an error about winemenubuilder and MountMgr
-  # on startup of Wine, and the Drives tab in winecfg will show an error.
-  # TODO: binutils 2.34 contains a fix for this bug, re-enable stripping once available.
-  dontStrip = true;
-
   ## FIXME
   # Add capability to ignore known failing tests
   # and enable doCheck
diff --git a/pkgs/misc/emulators/wine/sources.nix b/pkgs/misc/emulators/wine/sources.nix
index 4b16e78cd73..afa17282385 100644
--- a/pkgs/misc/emulators/wine/sources.nix
+++ b/pkgs/misc/emulators/wine/sources.nix
@@ -77,8 +77,8 @@ in rec {
 
   winetricks = fetchFromGitHub rec {
     # https://github.com/Winetricks/winetricks/releases
-    version = "20200412";
-    sha256 = "0ccr8wdmhkhbccxs5hvn44ppl969n8j0c3rnnir5v6akjcb2nzzv";
+    version = "20201206";
+    sha256 = "1xs09v1zr98yvwvdsmzgryc2hbk92mwn54yxx8162l461465razc";
     owner = "Winetricks";
     repo = "winetricks";
     rev = version;
diff --git a/pkgs/misc/emulators/wine/winetricks.nix b/pkgs/misc/emulators/wine/winetricks.nix
index ab183dfd38e..cfb35a9f996 100644
--- a/pkgs/misc/emulators/wine/winetricks.nix
+++ b/pkgs/misc/emulators/wine/winetricks.nix
@@ -10,7 +10,8 @@ stdenv.mkDerivation rec {
 
   # coreutils is for sha1sum
   pathAdd = stdenv.lib.concatMapStringsSep ":" (x: x + "/bin")
-    [ wine perl which coreutils zenity curl cabextract unzip p7zip gnused gnugrep bash ];
+    (stdenv.lib.filter (x: x != null)
+      [ wine perl which coreutils zenity curl cabextract unzip p7zip gnused gnugrep bash ]);
 
   makeFlags = [ "PREFIX=$(out)" ];
 
diff --git a/pkgs/misc/emulators/yuzu/default.nix b/pkgs/misc/emulators/yuzu/default.nix
new file mode 100644
index 00000000000..3c643822c16
--- /dev/null
+++ b/pkgs/misc/emulators/yuzu/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub
+, cmake, pkgconfig, wrapQtAppsHook
+, boost173, catch2, fmt, lz4, nlohmann_json, rapidjson, zlib, zstd, SDL2
+, udev, libusb1, libzip, qtbase, qtwebengine, qttools, ffmpeg
+, libpulseaudio, libjack2, alsaLib, sndio, ecasound
+, useVulkan ? true, vulkan-loader, vulkan-headers
+}:
+
+stdenv.mkDerivation rec {
+  pname = "yuzu";
+  version = "482";
+
+  src = fetchFromGitHub {
+    owner = "yuzu-emu";
+    repo = "yuzu-mainline"; # They use a separate repo for mainline “branch”
+    rev = "mainline-0-${version}";
+    sha256 = "1bhkdbhj1dv33qv0np26gzsw65p4z88whjmd6bc7mh2b5lvrjwxm";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ];
+  buildInputs = [ qtbase qtwebengine qttools boost173 catch2 fmt lz4 nlohmann_json rapidjson zlib zstd SDL2 udev libusb1 libpulseaudio alsaLib sndio ecasound libjack2 libzip ffmpeg ]
+    ++ stdenv.lib.optionals useVulkan [ vulkan-loader vulkan-headers ];
+  cmakeFlags = [ "-DENABLE_QT_TRANSLATION=ON" "-DYUZU_USE_QT_WEB_ENGINE=ON" "-DUSE_DISCORD_PRESENCE=ON" ]
+    ++ stdenv.lib.optionals (!useVulkan) [ "-DENABLE_VULKAN=No" ];
+
+  # Trick the configure system. This prevents a check for submodule directories.
+  preConfigure = "rm .gitmodules";
+
+  # Fix vulkan detection
+  postFixup = stdenv.lib.optionals useVulkan ''
+    wrapProgram $out/bin/yuzu --prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib
+    wrapProgram $out/bin/yuzu-cmd --prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://yuzu-emu.org";
+    description = "An experimental Nintendo Switch emulator written in C++";
+    license = with licenses; [
+      gpl2Plus
+      # Icons
+      cc-by-nd-30 cc0
+    ];
+    maintainers = with maintainers; [ ivar joshuafern ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/misc/mxt-app/default.nix b/pkgs/misc/mxt-app/default.nix
index 6ceb4d6c1a3..96d1c17fb29 100644
--- a/pkgs/misc/mxt-app/default.nix
+++ b/pkgs/misc/mxt-app/default.nix
@@ -1,19 +1,19 @@
 { stdenv, fetchFromGitHub, autoreconfHook, libtool }:
 
 stdenv.mkDerivation rec {
-  version="1.28";
+  version="1.32";
   pname = "mxt-app";
 
   src = fetchFromGitHub {
     owner = "atmel-maxtouch";
     repo = "mxt-app";
     rev = "v${version}";
-    sha256 = "1z2mir4ib9xzxmy0daazzvlga41n80zch1xyp1iz98rrdsnvd1la";
+    sha256 = "1z1g5h14j3yw3r9phgir33s9j07ns9c0r5lkl49940pzqycnrwbj";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
   buildInputs = [ libtool ];
- 
+
   hardeningDisable = [ "fortify" ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/misc/ptouch-print/default.nix b/pkgs/misc/ptouch-print/default.nix
new file mode 100644
index 00000000000..ac15ec63309
--- /dev/null
+++ b/pkgs/misc/ptouch-print/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, fetchgit
+, autoreconfHook
+, gd
+, libusb1
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ptouch-print";
+  version = "1.4.3";
+
+  src = fetchgit {
+    url = "https://mockmoon-cybernetics.ch/cgi/cgit/linux/ptouch-print.git";
+    rev = "v${version}";
+    sha256 = "0i57asg2hj1nfwy5lcb0vhrpvb9dqfhf81vh4i929h1kiqhlw2hx";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+  ];
+
+  buildInputs = [
+    gd
+    libusb1
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Command line tool to print labels on Brother P-Touch printers on Linux";
+    license = licenses.gpl3Plus;
+    homepage = "https://mockmoon-cybernetics.ch/computer/p-touch2430pc/";
+    maintainers = with maintainers; [ shamilton ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/misc/seafile-shared/default.nix b/pkgs/misc/seafile-shared/default.nix
index 8db6995b6fa..0d911cd35c1 100644
--- a/pkgs/misc/seafile-shared/default.nix
+++ b/pkgs/misc/seafile-shared/default.nix
@@ -1,22 +1,38 @@
-{stdenv, fetchFromGitHub, which, autoreconfHook, pkgconfig, vala, python2, curl, libevent, glib, libsearpc, sqlite, intltool, fuse, ccnet, libuuid }:
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+, ccnet
+, curl
+, fuse
+, glib
+, intltool
+, libevent
+, libsearpc
+, libuuid
+, pkg-config
+, python3
+, sqlite
+, vala
+, which
+}:
 
 stdenv.mkDerivation rec {
   pname = "seafile-shared";
-  version = "7.0.9";
+  version = "8.0.1";
 
   src = fetchFromGitHub {
     owner = "haiwen";
     repo = "seafile";
-    rev = "v${version}";
-    sha256 = "1n0jq6d6vgk58qmqgdr7w7jfgcrlicnaafz1za9qf76sbi5vc6fk";
+    rev = "d34499a2aafa024623a4210fe7f663cef13fe9a6";
+    sha256 = "VKoGr3CTDFg3Q0X+MTlwa4BbfLB+28FeTyTJRCq37RA=";
   };
 
   nativeBuildInputs = [
     autoreconfHook
     vala
-    pkgconfig
-    python2
-    python2.pkgs.wrapPython
+    pkg-config
+    python3
+    python3.pkgs.wrapPython
   ];
 
   buildInputs = [
@@ -30,10 +46,10 @@ stdenv.mkDerivation rec {
   configureFlags = [
     "--disable-server"
     "--disable-console"
+    "--with-python3"
   ];
 
-  pythonPath = with python2.pkgs; [
-    future
+  pythonPath = with python3.pkgs; [
     libsearpc
   ];
 
diff --git a/pkgs/misc/tmux-plugins/default.nix b/pkgs/misc/tmux-plugins/default.nix
index 28ac5e6f91f..33bff019536 100644
--- a/pkgs/misc/tmux-plugins/default.nix
+++ b/pkgs/misc/tmux-plugins/default.nix
@@ -129,12 +129,12 @@ in rec {
 
   dracula = mkDerivation rec {
     pluginName = "dracula";
-    version = "unstable-2020-12-2";
+    version = "unstable-2020-12-28";
     src = fetchFromGitHub {
       owner = "dracula";
       repo = "tmux";
-      rev = "cc310e585acbeaf3304eda662476f7f657010b01";
-      sha256 = "003nbv2rz2ihyqf3ryvdwn43ly0gi5z2r0pnqr9s9vw8dmwx0r3x";
+      rev = "6757a5329948f00addd66b02ea94f61dd94456f5";
+      sha256 = "0wwwzg3bwcrbr2nmf84prz7k4i79yq0960vs6zjp0x8nqn2fvziy";
     };
     meta = with stdenv.lib; {
       homepage = "https://draculatheme.com/tmux";
@@ -208,6 +208,10 @@ in rec {
       rev = "416f613d3eaadbe1f6f9eda77c49430527ebaffb";
       sha256 = "1xbzdyhsgaq2in0f8f491gwjmx6cxpkf2c35d2dk0kg4jfs505sz";
     };
+    postInstall = ''
+      sed -i -e 's|ruby|${pkgs.ruby}/bin/ruby|g' $target/scripts/tmux-jump.sh
+    '';
+    dependencies = [ pkgs.ruby ];
 
     meta = with stdenv.lib; {
       homepage = "https://github.com/schasse/tmux-jump";
diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix
index 0a178b39800..c841c69446f 100644
--- a/pkgs/misc/uboot/default.nix
+++ b/pkgs/misc/uboot/default.nix
@@ -314,6 +314,18 @@ in {
     filesToInstall = ["u-boot.bin"];
   };
 
+  ubootRaspberryPi4_32bit = buildUBoot {
+    defconfig = "rpi_4_32b_defconfig";
+    extraMeta.platforms = ["armv7l-linux"];
+    filesToInstall = ["u-boot.bin"];
+  };
+
+  ubootRaspberryPi4_64bit = buildUBoot {
+    defconfig = "rpi_4_defconfig";
+    extraMeta.platforms = ["aarch64-linux"];
+    filesToInstall = ["u-boot.bin"];
+  };
+
   ubootRaspberryPiZero = buildUBoot {
     defconfig = "rpi_0_w_defconfig";
     extraMeta.platforms = ["armv6l-linux"];
diff --git a/pkgs/misc/vim-plugins/generated.nix b/pkgs/misc/vim-plugins/generated.nix
index 0b30d6239a6..5d98044fa35 100644
--- a/pkgs/misc/vim-plugins/generated.nix
+++ b/pkgs/misc/vim-plugins/generated.nix
@@ -65,12 +65,12 @@ let
 
   ale = buildVimPluginFrom2Nix {
     pname = "ale";
-    version = "2020-11-29";
+    version = "2020-12-28";
     src = fetchFromGitHub {
       owner = "dense-analysis";
       repo = "ale";
-      rev = "03b6978a270107b670b0363d50f3eed4b365ba26";
-      sha256 = "093h23phmpn7c4w519klja7s8saa889y2r3i6rbxjzxg8qbqd44v";
+      rev = "7fca451cf9a3068efe5e93fcc4b5494d939245fb";
+      sha256 = "0428dj8gk781p9mns3q2lhhfmcsav8z3d79ggyb3ldsjnmsc1lds";
     };
     meta.homepage = "https://github.com/dense-analysis/ale/";
   };
@@ -137,24 +137,24 @@ let
 
   async-vim = buildVimPluginFrom2Nix {
     pname = "async-vim";
-    version = "2020-06-20";
+    version = "2020-12-30";
     src = fetchFromGitHub {
       owner = "prabirshrestha";
       repo = "async.vim";
-      rev = "6102020b4690f05ab6509a37fa25bc53e2d799a9";
-      sha256 = "1b39nnym8lwdwhpbrbl6438s7ragnfm3n2lbs8acp78jl4jraiwz";
+      rev = "236debf1a68d69a74f1f6647c273b0477e1ec1bf";
+      sha256 = "12xz71182shfj8l300j7wnngxm5zkx2g1c2d4l6dvbk5z1dbzlj6";
     };
     meta.homepage = "https://github.com/prabirshrestha/async.vim/";
   };
 
   asyncomplete-vim = buildVimPluginFrom2Nix {
     pname = "asyncomplete-vim";
-    version = "2020-11-27";
+    version = "2020-12-23";
     src = fetchFromGitHub {
       owner = "prabirshrestha";
       repo = "asyncomplete.vim";
-      rev = "c5f5808581bd3a41ee379836ebf804eb46a189a5";
-      sha256 = "1izxr4lx6nncajaiszff3w38qc8c6hrpkd6rj8q7wasqcsxd3fcj";
+      rev = "e546095e4ac7a20d06bcf16d207275dd4d6b4115";
+      sha256 = "0jq5qrlijlqpfgi89249whvpmm140smflpprlq8as0pfyhpjn1d1";
     };
     meta.homepage = "https://github.com/prabirshrestha/asyncomplete.vim/";
   };
@@ -209,12 +209,12 @@ let
 
   awesome-vim-colorschemes = buildVimPluginFrom2Nix {
     pname = "awesome-vim-colorschemes";
-    version = "2020-12-10";
+    version = "2020-12-26";
     src = fetchFromGitHub {
       owner = "rafi";
       repo = "awesome-vim-colorschemes";
-      rev = "d20555a51bb73c58c0a8e627ca118305a0865643";
-      sha256 = "0r5x0h90158g5b7ipl4b4jfbxbcs44586aacff1qirrnjwkp27l0";
+      rev = "e006f28803c4f4f3e69e792ea347ef51623dd442";
+      sha256 = "1brsi5xrcza3wp7nkypqkk0imvb2cw0xpzg90llc504h62z5lbic";
     };
     meta.homepage = "https://github.com/rafi/awesome-vim-colorschemes/";
   };
@@ -233,12 +233,12 @@ let
 
   barbar-nvim = buildVimPluginFrom2Nix {
     pname = "barbar-nvim";
-    version = "2020-12-04";
+    version = "2020-12-28";
     src = fetchFromGitHub {
       owner = "romgrk";
       repo = "barbar.nvim";
-      rev = "f6ad62aadd892b643239f078f991b6af468d1070";
-      sha256 = "0sgq05gcdnihsb3k38zc7n0b87kadpagk4h1kg9as9lq15zy60b5";
+      rev = "383ffc0712c71481a068e49430321366c53585f2";
+      sha256 = "14s42n4nl94nygszihgji01dwviw1ykqylpm2akdgfhwv1nz1ljn";
     };
     meta.homepage = "https://github.com/romgrk/barbar.nvim/";
   };
@@ -291,6 +291,18 @@ let
     meta.homepage = "https://github.com/euclidianAce/BetterLua.vim/";
   };
 
+  brainfuck-vim = buildVimPluginFrom2Nix {
+    pname = "brainfuck-vim";
+    version = "2020-12-31";
+    src = fetchFromGitHub {
+      owner = "fruit-in";
+      repo = "brainfuck-vim";
+      rev = "2e5480e654221677dbf4652d2dd6d0cd6278a449";
+      sha256 = "1ki6gv6v2pff1azif753b80yy48wx9k8knm2maw9bl333563hpm9";
+    };
+    meta.homepage = "https://github.com/fruit-in/brainfuck-vim/";
+  };
+
   bufexplorer = buildVimPluginFrom2Nix {
     pname = "bufexplorer";
     version = "2020-02-17";
@@ -317,12 +329,12 @@ let
 
   calendar-vim = buildVimPluginFrom2Nix {
     pname = "calendar-vim";
-    version = "2020-11-30";
+    version = "2020-12-30";
     src = fetchFromGitHub {
       owner = "itchyny";
       repo = "calendar.vim";
-      rev = "4a27972d1af6a4a659cebefeed8ec81f3c783c79";
-      sha256 = "17wy2zybnlcajy91rcs2px726c0c1gjssggwyilx14wkp52ag0zn";
+      rev = "1d352606aa4f9cf3116514669533b314f6e800a0";
+      sha256 = "16m7zpw5i2bjxj771856wahfk4y6rhk3qb0jifblma219gnqmhz4";
     };
     meta.homepage = "https://github.com/itchyny/calendar.vim/";
   };
@@ -377,12 +389,12 @@ let
 
   ci_dark = buildVimPluginFrom2Nix {
     pname = "ci_dark";
-    version = "2020-08-20";
+    version = "2020-12-25";
     src = fetchFromGitHub {
       owner = "chuling";
       repo = "ci_dark";
-      rev = "d105c5978eb983d44461f83fc3b1033eb11d1a55";
-      sha256 = "1nbb8zq2nhsbxn3lzh9sdhds2hv4n91vxafia7ydmzmyz9gyh6qw";
+      rev = "9e683226bb2b73f234cd8feb7367514553d23d32";
+      sha256 = "1jdpnljgf7bnqsfiqy7qfjhwcx4727gc9h0mrcn0xcfl19ppa6xs";
     };
     meta.homepage = "https://github.com/chuling/ci_dark/";
   };
@@ -413,12 +425,12 @@ let
 
   coc-clap = buildVimPluginFrom2Nix {
     pname = "coc-clap";
-    version = "2020-07-17";
+    version = "2020-12-17";
     src = fetchFromGitHub {
       owner = "vn-ki";
       repo = "coc-clap";
-      rev = "09d9059c243a25c5859fd73fff6b664d8bf5eed0";
-      sha256 = "057kad7nwc75c92d2al6q25gs7vrf0l14529iclrgd61vg369sva";
+      rev = "5a0685a6e9eac82d5b1912e10b4ebdd41823dccd";
+      sha256 = "16g10s8zwzjzk21s09bvlc8z20gxv0whb83wf9kbysiv5aamf0n1";
     };
     meta.homepage = "https://github.com/vn-ki/coc-clap/";
   };
@@ -437,24 +449,24 @@ let
 
   coc-explorer = buildVimPluginFrom2Nix {
     pname = "coc-explorer";
-    version = "2020-12-11";
+    version = "2020-12-30";
     src = fetchFromGitHub {
       owner = "weirongxu";
       repo = "coc-explorer";
-      rev = "2335a2325488c0e43974a70f307e77afc15382d9";
-      sha256 = "1cpqypqlw7bwm6a8jc0kkrb0nyxa375s6rw4rq2lss8jlwxcsia2";
+      rev = "5c6532d7d3cfe8321df79c82fc47a1bb7145913d";
+      sha256 = "1zhhrmjngz50wsw3qqfwfdimbxbczk13pznhhrfsjxg85kk47ahc";
     };
     meta.homepage = "https://github.com/weirongxu/coc-explorer/";
   };
 
   coc-fzf = buildVimPluginFrom2Nix {
     pname = "coc-fzf";
-    version = "2020-12-14";
+    version = "2020-12-29";
     src = fetchFromGitHub {
       owner = "antoinemadec";
       repo = "coc-fzf";
-      rev = "39f128c29fea82ebd7920e632a9fe81d829c89b4";
-      sha256 = "0f7wfmvnmh3007yblq5jswrh1iapl66ibcc4q7pz6ansm38apj8j";
+      rev = "a8b32b8b8a37d7fb87687c0187b7ad36987e2122";
+      sha256 = "1x6xfizcix1hlcl2dhxbaxxl2q7lpgnfyvdg81c88rcn68qykfn0";
     };
     meta.homepage = "https://github.com/antoinemadec/coc-fzf/";
   };
@@ -485,12 +497,12 @@ let
 
   coc-nvim = buildVimPluginFrom2Nix {
     pname = "coc-nvim";
-    version = "2020-12-14";
+    version = "2021-01-02";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc.nvim";
-      rev = "63cbd7bfecb6ed5598b136e859c675ae8e7156ea";
-      sha256 = "1mzbsx9386bgwk5y52fsgq1gp2sh3v8vxwq0m2idlwqwdm2ahz6z";
+      rev = "dda9114c36c6cac3aafbc0e9220c978b8f06da0c";
+      sha256 = "0y60kqfylg8f3dsz0y9jsxfg3xl0c8ijm8ra48y8mfhwr1y4vzvv";
     };
     meta.homepage = "https://github.com/neoclide/coc.nvim/";
   };
@@ -570,12 +582,12 @@ let
 
   completion-nvim = buildVimPluginFrom2Nix {
     pname = "completion-nvim";
-    version = "2020-11-20";
+    version = "2021-01-01";
     src = fetchFromGitHub {
       owner = "nvim-lua";
       repo = "completion-nvim";
-      rev = "936bbd17577101a4ffb07ea7f860f77dd8007d43";
-      sha256 = "1z399q3v36hx2ipj1fhxcc051pi4q0lifyglmclxi5zkbmm0z6a7";
+      rev = "3abd4955558769be384690760b98d817ed4daabc";
+      sha256 = "1pjzn3k04j44qr1m63nwnpaybaq3lgsinsvbld7w4afsv94kfq2b";
     };
     meta.homepage = "https://github.com/nvim-lua/completion-nvim/";
   };
@@ -618,12 +630,12 @@ let
 
   conjure = buildVimPluginFrom2Nix {
     pname = "conjure";
-    version = "2020-11-17";
+    version = "2020-12-30";
     src = fetchFromGitHub {
       owner = "Olical";
       repo = "conjure";
-      rev = "bcdaf3761b762dafb4314389d84294232dd61ed6";
-      sha256 = "0ivbxr90h61zcw3ydkaajsmd5dbwcqqri3qw367kpmfsndk9k9s9";
+      rev = "ae460466a9343fbf07bdd36b61966693eea8aa6f";
+      sha256 = "049gwdwwzk484akhia8b60g8c4xlnyd9nz3q11nwqa4xs5x9zhws";
     };
     meta.homepage = "https://github.com/Olical/conjure/";
   };
@@ -642,12 +654,12 @@ let
 
   Coqtail = buildVimPluginFrom2Nix {
     pname = "Coqtail";
-    version = "2020-12-02";
+    version = "2020-12-30";
     src = fetchFromGitHub {
       owner = "whonore";
       repo = "Coqtail";
-      rev = "f2c48d99015bb4f8317c53b8eb0f3a39406ed4cb";
-      sha256 = "1h6ngs1kdnhxjnas0b62yvbx94zjn87q18hinccr4cis3qz902is";
+      rev = "617b38a2ceda860a89ef27f78bcb12111319c54f";
+      sha256 = "0sgkych6w6bdby11zprd2v9wqywwi7pi03sb67dr7qrag9hpk15a";
     };
     meta.homepage = "https://github.com/whonore/Coqtail/";
   };
@@ -762,12 +774,12 @@ let
 
   defx-git = buildVimPluginFrom2Nix {
     pname = "defx-git";
-    version = "2020-08-14";
+    version = "2021-01-01";
     src = fetchFromGitHub {
       owner = "kristijanhusak";
       repo = "defx-git";
-      rev = "717b30addcd5204cf11c0736792c4b7c45005b88";
-      sha256 = "1mx398lpzbzvrd1jawlxa4sd84ba60w3k9l46hg53hmbp1df4wff";
+      rev = "324552fc652ed09e14a45485945b2e52eb04cbdc";
+      sha256 = "1imgzbyrpivk601z35wdr6lk0r9vwriy37l4a0c3cmmb87pxkzcf";
     };
     meta.homepage = "https://github.com/kristijanhusak/defx-git/";
   };
@@ -786,12 +798,12 @@ let
 
   defx-nvim = buildVimPluginFrom2Nix {
     pname = "defx-nvim";
-    version = "2020-12-14";
+    version = "2020-12-28";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "defx.nvim";
-      rev = "609e858b5211ec4de45cb93045ab320c961048b2";
-      sha256 = "0yigdh18cnb6732613jps0zv0awwmqiz47hsxry65p71by72f026";
+      rev = "df165c33ecc5002553593884e309089faf7575bd";
+      sha256 = "0zva29hs1xzgyqzhlplmvm63gzc2lj96fxpv4705vbkr0vv9j4hz";
     };
     meta.homepage = "https://github.com/Shougo/defx.nvim/";
   };
@@ -834,24 +846,24 @@ let
 
   denite-nvim = buildVimPluginFrom2Nix {
     pname = "denite-nvim";
-    version = "2020-12-14";
+    version = "2020-12-29";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "denite.nvim";
-      rev = "54be7f99b9f754c532034c77dcb717200d522a21";
-      sha256 = "1gy91qz7w1ih3an3b8qgxgglk5q8v7pqjsps3zbj0dbxc6hfn6wl";
+      rev = "7990823563392e4031cd474d3e90482329eef877";
+      sha256 = "0jzg4qcc50hhh3jfdhynddv5kr0yzh2f0ckzv0dmddx01p66nwcv";
     };
     meta.homepage = "https://github.com/Shougo/denite.nvim/";
   };
 
   deol-nvim = buildVimPluginFrom2Nix {
     pname = "deol-nvim";
-    version = "2020-12-14";
+    version = "2021-01-02";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deol.nvim";
-      rev = "2bd742e2eadf6436e85aed1e95d43775524f0118";
-      sha256 = "0rnsjxspiic0vqqnhsxws752q6xiq1g7yvx790ra3sf2j6nj8j6r";
+      rev = "cf80179e8f75b891bcb34364b90e537063936813";
+      sha256 = "1cf4834xjszk8cxjmpjvf78v7nh8kqr4iw7iq912cavbid8c01w5";
     };
     meta.homepage = "https://github.com/Shougo/deol.nvim/";
   };
@@ -944,12 +956,12 @@ let
 
   deoplete-jedi = buildVimPluginFrom2Nix {
     pname = "deoplete-jedi";
-    version = "2020-11-07";
+    version = "2020-12-21";
     src = fetchFromGitHub {
       owner = "deoplete-plugins";
       repo = "deoplete-jedi";
-      rev = "2d61fe45e348f89979c8faf663b3e88c61435f47";
-      sha256 = "0qmszwrchp272zc4rf727k9l0x472lxbbql8k2pyj1vd1ks97q1i";
+      rev = "43058915007d92dc167b84dd5b8ada2d2a057a82";
+      sha256 = "0qh43mwzjsn67id6qs96p9lw1fjsgdgqmks0161hfgvbyixx2b3y";
     };
     meta.homepage = "https://github.com/deoplete-plugins/deoplete-jedi/";
   };
@@ -980,12 +992,12 @@ let
 
   deoplete-lsp = buildVimPluginFrom2Nix {
     pname = "deoplete-lsp";
-    version = "2020-11-18";
+    version = "2020-12-26";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deoplete-lsp";
-      rev = "134e970130d57c6683052a506776fa12e04bd3de";
-      sha256 = "1drbjkqx8ss2m1ns3sk5dhsg7l6xm0lvlj8kqgapqq9v5gb876j2";
+      rev = "760eb2f647a518144ca1dc1091cc449c0dbee71e";
+      sha256 = "0dcq79xqfb5qnjinwni0bi3vn2sfsri8wmc75wgvw2114vyf2k9a";
     };
     meta.homepage = "https://github.com/Shougo/deoplete-lsp/";
   };
@@ -1052,12 +1064,12 @@ let
 
   deoplete-vim-lsp = buildVimPluginFrom2Nix {
     pname = "deoplete-vim-lsp";
-    version = "2020-10-27";
+    version = "2020-12-21";
     src = fetchFromGitHub {
       owner = "lighttiger2505";
       repo = "deoplete-vim-lsp";
-      rev = "cb5af558e892a70648587e673fc251409ac3dc72";
-      sha256 = "03rpw1z5fgglba7vymi3ln810nh5x3x9hjqlm41shdik9pgmg867";
+      rev = "0c5d9e6efd6a7bea503faa854c41a3e5af00ec57";
+      sha256 = "1hckg9p7srw2d674is0wzilnwwvw1s2q8xapr6dawslm5j364xlk";
     };
     meta.homepage = "https://github.com/lighttiger2505/deoplete-vim-lsp/";
   };
@@ -1076,12 +1088,12 @@ let
 
   deoplete-nvim = buildVimPluginFrom2Nix {
     pname = "deoplete-nvim";
-    version = "2020-12-14";
+    version = "2020-12-24";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deoplete.nvim";
-      rev = "2849fa544b9a3a07ec1ddafb2bb6f72945b24c62";
-      sha256 = "08a5gb2hyqvpwj887g348vzxf14c28kls8dc86cizx5l1g6q2kpa";
+      rev = "b098a5286e95c456d91eed3589a2850aae421219";
+      sha256 = "0y2ijzyn8jqpx5dkbglpa4ivsz6yml49xby7bbz6675rlcawlsq9";
     };
     meta.homepage = "https://github.com/Shougo/deoplete.nvim/";
   };
@@ -1148,12 +1160,12 @@ let
 
   dracula-vim = buildVimPluginFrom2Nix {
     pname = "dracula-vim";
-    version = "2020-11-13";
+    version = "2020-12-23";
     src = fetchFromGitHub {
       owner = "dracula";
       repo = "vim";
-      rev = "ba00ac0432541811955e50b8420c25b22762c7c9";
-      sha256 = "1rp0zip0p07rbfiz8b5nvm6k1d80yvdgn4h59v3bg8j9qan7rg3h";
+      rev = "e7154372adc95d637ccd911c2f8601d9ff2eac1f";
+      sha256 = "1li5q3151kjh8c6a7cdnmbydxhkjgqsa5nlv49dy6dnqc3b50m7s";
     };
     meta.homepage = "https://github.com/dracula/vim/";
   };
@@ -1280,6 +1292,18 @@ let
     meta.homepage = "https://github.com/konfekt/fastfold/";
   };
 
+  fern-vim = buildVimPluginFrom2Nix {
+    pname = "fern-vim";
+    version = "2020-12-22";
+    src = fetchFromGitHub {
+      owner = "lambdalisue";
+      repo = "fern.vim";
+      rev = "f936fdf27d9b0c288e4854c3ca0ea53f5f52be89";
+      sha256 = "0hdk7v4ag763lwr2gc2vcryhq8nhy0fp52vmb0ws203h4nkkilaf";
+    };
+    meta.homepage = "https://github.com/lambdalisue/fern.vim/";
+  };
+
   ferret = buildVimPluginFrom2Nix {
     pname = "ferret";
     version = "2020-12-08";
@@ -1379,12 +1403,12 @@ let
 
   fzf-vim = buildVimPluginFrom2Nix {
     pname = "fzf-vim";
-    version = "2020-12-14";
+    version = "2020-12-30";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "fzf.vim";
-      rev = "e9d62b4c873f5f207202b4ba5bbd63de7003a0d3";
-      sha256 = "0zifj72fm2c533cdj6ddkvm8y6p76imwmbnbm6l6s03zp1yq4kqy";
+      rev = "811b8607c653afe365bb97e6568501b0ad498017";
+      sha256 = "16g0p2gadbw22qlsqrla3nv4a1bipzj00j4qsr2nb2ci13c1831z";
     };
     meta.homepage = "https://github.com/junegunn/fzf.vim/";
   };
@@ -1403,24 +1427,24 @@ let
 
   gentoo-syntax = buildVimPluginFrom2Nix {
     pname = "gentoo-syntax";
-    version = "2020-10-07";
+    version = "2020-12-16";
     src = fetchFromGitHub {
       owner = "gentoo";
       repo = "gentoo-syntax";
-      rev = "3d90ee5686e54fb1c3242f10e644a789579a4372";
-      sha256 = "0qvfqw38vk9ijwhgivjwh289vnmzc2p7cp6jiqpj98zsnank0yw2";
+      rev = "4cc031a5d3384ee9cc3225ff038a633be6b7125f";
+      sha256 = "0pdska6qkk734hplhyp2cw89xn2c897vgw72fgn2239pqryz5g4n";
     };
     meta.homepage = "https://github.com/gentoo/gentoo-syntax/";
   };
 
   ghcid = buildVimPluginFrom2Nix {
     pname = "ghcid";
-    version = "2020-11-24";
+    version = "2020-12-30";
     src = fetchFromGitHub {
       owner = "ndmitchell";
       repo = "ghcid";
-      rev = "2c82ecf78b709a60ce7b3023ff6f49e01fa4275d";
-      sha256 = "0hfbz11g887kdn9zsry53gf5gfh0n84h3ww9bjn7fkq9qpkkq9mv";
+      rev = "fb4a1610d830806311595ad5b314eed5ec6b1893";
+      sha256 = "17a663rx6x7mmls3i8ix4njfqdvqsbcj5avhdk07y8icdyiwbrp0";
     };
     meta.homepage = "https://github.com/ndmitchell/ghcid/";
   };
@@ -1439,12 +1463,12 @@ let
 
   git-messenger-vim = buildVimPluginFrom2Nix {
     pname = "git-messenger-vim";
-    version = "2020-08-20";
+    version = "2020-12-27";
     src = fetchFromGitHub {
       owner = "rhysd";
       repo = "git-messenger.vim";
-      rev = "c16b0d43ca57e77081f1f23f67552efe37110b39";
-      sha256 = "171w3dv3jl4mw1ikh5p688v0a8nf85h862d9zvsmdzs2v6ajigpw";
+      rev = "a67de1d08cffa547183bbc2f95c4e29723504263";
+      sha256 = "0pjw17z76yq873jh74pr01r3ay4blzb4j0ghax553fb0d8ni4lkl";
     };
     meta.homepage = "https://github.com/rhysd/git-messenger.vim/";
   };
@@ -1631,12 +1655,12 @@ let
 
   iceberg-vim = buildVimPluginFrom2Nix {
     pname = "iceberg-vim";
-    version = "2020-07-20";
+    version = "2020-12-25";
     src = fetchFromGitHub {
       owner = "cocopon";
       repo = "iceberg.vim";
-      rev = "203d56849325fb0420587c9951859a755798aea3";
-      sha256 = "16calikypw9gyb4vzybwqgl329v6wpqj05z6m2ajbr027fksxfjr";
+      rev = "866f9f4ac9ff9a0ae33de96253c359c68ab556b4";
+      sha256 = "1zlj85xg8r8qbnr7dpszkcjqw70xahay7ydwnik0zwhq96mic1pv";
     };
     meta.homepage = "https://github.com/cocopon/iceberg.vim/";
   };
@@ -1799,12 +1823,12 @@ let
 
   jedi-vim = buildVimPluginFrom2Nix {
     pname = "jedi-vim";
-    version = "2020-07-17";
+    version = "2020-12-26";
     src = fetchFromGitHub {
       owner = "davidhalter";
       repo = "jedi-vim";
-      rev = "a17b0333031bd3652ad4c6169caaed05ffb7c49d";
-      sha256 = "0xqsh0mw64s9ph4sd550fc129q567dld3vk7fciwd2905h9q0k8q";
+      rev = "3a1c900a2629cba2f63ee2bc32611f8ce28c8bfb";
+      sha256 = "1y4n3xvbxjxxapiw9b2rs8q4l65xwmx8djhfr21y97qj8205kcfd";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/davidhalter/jedi-vim/";
@@ -1992,12 +2016,12 @@ let
 
   lh-brackets = buildVimPluginFrom2Nix {
     pname = "lh-brackets";
-    version = "2020-11-23";
+    version = "2020-12-30";
     src = fetchFromGitHub {
       owner = "LucHermitte";
       repo = "lh-brackets";
-      rev = "16520df9bcb57a5c150efff5a8bf2cd64f659f07";
-      sha256 = "0hnn7hw1a7a5ld742mlw070xnj2zyvyq2kzrzsp2ky7ir3lhn7x2";
+      rev = "c9369d9289e18b3143288a9c55d0874d4635cf3a";
+      sha256 = "0yxvwkw301v090bj5pfvd3d9axvznjm06c7asfnvaz7y4r9j8y0f";
     };
     meta.homepage = "https://github.com/LucHermitte/lh-brackets/";
   };
@@ -2028,12 +2052,12 @@ let
 
   lightline-bufferline = buildVimPluginFrom2Nix {
     pname = "lightline-bufferline";
-    version = "2020-12-03";
+    version = "2020-12-28";
     src = fetchFromGitHub {
       owner = "mengelbrecht";
       repo = "lightline-bufferline";
-      rev = "9dffe95e90e331faaf363e179970ffc46afaeb59";
-      sha256 = "05d1b0gzy6pz2pky8kxz3pdqzz2pmafjjib3yhskf11fd9k8q4l1";
+      rev = "510c8be3d78bb58f25976ff9e7415c8cdc2a3054";
+      sha256 = "0bd44jkz07pdzzs1vh0lkkms1vw8cd96wlsh8sa37mkx8bk5js5n";
     };
     meta.homepage = "https://github.com/mengelbrecht/lightline-bufferline/";
   };
@@ -2112,12 +2136,12 @@ let
 
   mattn-calendar-vim = buildVimPluginFrom2Nix {
     pname = "mattn-calendar-vim";
-    version = "2019-11-24";
+    version = "2020-12-29";
     src = fetchFromGitHub {
       owner = "mattn";
       repo = "calendar-vim";
-      rev = "de499b9525490b10edbd28fb8f0c4e81c6a6f20c";
-      sha256 = "0xvvkq9zckmv9pnzvxg71fblly8lksfi736brbcwcvnszqif4b69";
+      rev = "9a32891101990dd88b86befb50c46575ef8a364e";
+      sha256 = "0i6nxap9fx8z9dx6q33pc9hz8s8vc2ghz5zchyxxmdn2mb5fki53";
     };
     meta.homepage = "https://github.com/mattn/calendar-vim/";
   };
@@ -2134,6 +2158,18 @@ let
     meta.homepage = "https://github.com/vim-scripts/mayansmoke/";
   };
 
+  mkdx = buildVimPluginFrom2Nix {
+    pname = "mkdx";
+    version = "2020-12-10";
+    src = fetchFromGitHub {
+      owner = "SidOfc";
+      repo = "mkdx";
+      rev = "c977b1feff1dd53fc876f107d5c1128354e3cfb5";
+      sha256 = "15b0w9wabrp4mb4hj1zi3bf5ma0p2qkb7b93c9hzrqbimkzdy1db";
+    };
+    meta.homepage = "https://github.com/SidOfc/mkdx/";
+  };
+
   molokai = buildVimPluginFrom2Nix {
     pname = "molokai";
     version = "2015-11-11";
@@ -2148,12 +2184,12 @@ let
 
   ncm2 = buildVimPluginFrom2Nix {
     pname = "ncm2";
-    version = "2020-07-26";
+    version = "2020-12-19";
     src = fetchFromGitHub {
       owner = "ncm2";
       repo = "ncm2";
-      rev = "7d49f7b473db732878091f2f8c68bc47b015559b";
-      sha256 = "112pspa730pvwiv0hbzn9z6i3zpn25p8g45wf67kj2084wiqkkx3";
+      rev = "3de17695c58f309642c5148b21d47fac61937a96";
+      sha256 = "1415yjxydyamsyx6fmb5wawgcgqqr96cv6vy60f5h5x4dsaqvs24";
     };
     meta.homepage = "https://github.com/ncm2/ncm2/";
   };
@@ -2340,12 +2376,12 @@ let
 
   neco-ghc = buildVimPluginFrom2Nix {
     pname = "neco-ghc";
-    version = "2020-06-06";
+    version = "2020-12-19";
     src = fetchFromGitHub {
       owner = "eagletmt";
       repo = "neco-ghc";
-      rev = "b4ea02c537975a5a2bf00cb5f24cd784b2b6f5ad";
-      sha256 = "13la3slqkljn7y8y9p8ic3majnvjf7pnrwr16cdpacklmz733x1f";
+      rev = "ba23875fadc5e9022acb9d746b99f6fe5155d586";
+      sha256 = "08q3wlaq6a8acfcbhh3gdhzwn5rr7w18aqqww0z76hgblav11a4k";
     };
     meta.homepage = "https://github.com/eagletmt/neco-ghc/";
   };
@@ -2436,12 +2472,12 @@ let
 
   neomake = buildVimPluginFrom2Nix {
     pname = "neomake";
-    version = "2020-11-09";
+    version = "2020-12-20";
     src = fetchFromGitHub {
       owner = "neomake";
       repo = "neomake";
-      rev = "3b611ca24a7b78f7842facf6361404724717af1a";
-      sha256 = "0x710kk7cac4m6s7xlqbm8pch1kfbwkmk6myvmsgf2qflj2qxn2j";
+      rev = "5e140db568eb2f7b88e4110cd4b651562e8878ab";
+      sha256 = "0gvlpv7mfqrac10ccndl58axib42ack92m2simn78ksdap9g7n6n";
     };
     meta.homepage = "https://github.com/neomake/neomake/";
   };
@@ -2460,12 +2496,12 @@ let
 
   neosnippet-snippets = buildVimPluginFrom2Nix {
     pname = "neosnippet-snippets";
-    version = "2020-11-16";
+    version = "2020-12-23";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "neosnippet-snippets";
-      rev = "415dc1a83087173e2307a6b4e3e7c86a3cfa3183";
-      sha256 = "18amifx20y9vhx1sl4pyhzdqsgznmn52c58nws4jsqszp12xmk0a";
+      rev = "901b9ba8f2eea6222649282a58d7b86b8719334f";
+      sha256 = "0k08057fbs4pmx9w6mwnjvms6sn694h6n255ff6n40sf4yy8w4mh";
     };
     meta.homepage = "https://github.com/Shougo/neosnippet-snippets/";
   };
@@ -2532,12 +2568,12 @@ let
 
   neoyank-vim = buildVimPluginFrom2Nix {
     pname = "neoyank-vim";
-    version = "2020-07-27";
+    version = "2020-12-20";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "neoyank.vim";
-      rev = "0d86f6565a6193cdf017ac4f79e52fed04d5c0fb";
-      sha256 = "02n1n3hb3bn5x9na05crhwmdmk66wyjx8i01fsyazlpv32v1wfsy";
+      rev = "8b3c9f7d8109744766d13eaf6c17eb195dd61d9d";
+      sha256 = "0fmn92kjgwkfpsh328bvd3nsw32q6wbjjp9vqmfnbs8rbkmpn0vh";
     };
     meta.homepage = "https://github.com/Shougo/neoyank.vim/";
   };
@@ -2556,12 +2592,12 @@ let
 
   nerdtree = buildVimPluginFrom2Nix {
     pname = "nerdtree";
-    version = "2020-10-14";
+    version = "2020-12-20";
     src = fetchFromGitHub {
       owner = "preservim";
       repo = "nerdtree";
-      rev = "14af89743ac1c31ff9bb43682025eda50333a7d5";
-      sha256 = "1q50cc9z91v809s65w0zq2s0z5smvghy0fbdjn64mr894ndvrmcv";
+      rev = "aaa946fb6bd79b9af86fbaf4b6b63fd81d839bd9";
+      sha256 = "1fhwfwqlvz0pm5qdpjbmjx4dqlnchbp170jw63dc5fxin90h4ivh";
     };
     meta.homepage = "https://github.com/preservim/nerdtree/";
   };
@@ -2676,12 +2712,12 @@ let
 
   nvim-dap = buildVimPluginFrom2Nix {
     pname = "nvim-dap";
-    version = "2020-12-08";
+    version = "2020-12-31";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-dap";
-      rev = "6830ad2ce5f9b328b7becbf390fca330195efb96";
-      sha256 = "060899ajnck6v3fx2xprh8kf0g28wc12blxb13jd5ibgr7zdl5vn";
+      rev = "f908593bdcb2f2ce7d8225c08caf343b520a1dfe";
+      sha256 = "1z78yvavpjs6776x0yr7h3yl4y7wbmm2bmbljsw2kkl8ybbvfdz1";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-dap/";
   };
@@ -2700,24 +2736,24 @@ let
 
   nvim-gdb = buildVimPluginFrom2Nix {
     pname = "nvim-gdb";
-    version = "2020-12-08";
+    version = "2020-12-28";
     src = fetchFromGitHub {
       owner = "sakhnik";
       repo = "nvim-gdb";
-      rev = "a0e6003548ae0f89101347b483a3df773d24e6ed";
-      sha256 = "1s1wsa3hmafdfh4zd97imr5a0yiqq9v82f6aih1ha9bz503q4mg2";
+      rev = "5e88c14c2c3ff22b519c7b6a2ef1e35039268bd9";
+      sha256 = "0hniyf1a8ihlyv9prg5h40vsh989i7ly7gnsna2sndxybg6zp56z";
     };
     meta.homepage = "https://github.com/sakhnik/nvim-gdb/";
   };
 
   nvim-highlite = buildVimPluginFrom2Nix {
     pname = "nvim-highlite";
-    version = "2020-12-14";
+    version = "2020-12-31";
     src = fetchFromGitHub {
       owner = "Iron-E";
       repo = "nvim-highlite";
-      rev = "e9733ce739c4c8659226ebf0b2aa26bc1d10f3c1";
-      sha256 = "0kl5ph1yxb5hhcyn78f70xglssrj0w3k9kwq13fxhi1lms15mvg2";
+      rev = "2fb6dc1b2a702a2f7ddd3dedff04b7fdfe66d9be";
+      sha256 = "0sxyk1g82ycgx5mi21s1jyrqg3qd4cyjrzy6hbwil04kcadqkkc1";
     };
     meta.homepage = "https://github.com/Iron-E/nvim-highlite/";
   };
@@ -2736,24 +2772,24 @@ let
 
   nvim-lspconfig = buildVimPluginFrom2Nix {
     pname = "nvim-lspconfig";
-    version = "2020-12-14";
+    version = "2021-01-01";
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "nvim-lspconfig";
-      rev = "afe4a78021568578ec750e4fc398050a720f1815";
-      sha256 = "1vnl5vaqxs04j084gnxk5ayx4q9ibf7la0iiwpryl57csxpvc5lm";
+      rev = "dbbca130c487b6a89a1c4bfa48cb05de5cf08f64";
+      sha256 = "0xjxw91rb83ilhmrm2i9ishwdqb1qhradnm7a6mqfiz1faj3gxg4";
     };
     meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
   };
 
   nvim-lsputils = buildVimPluginFrom2Nix {
     pname = "nvim-lsputils";
-    version = "2020-11-29";
+    version = "2020-12-31";
     src = fetchFromGitHub {
       owner = "RishabhRD";
       repo = "nvim-lsputils";
-      rev = "cf5184a84217549966ae3fa156bc459d2448c7b8";
-      sha256 = "1wfmlr3scl3lawhvpya94f9zy3w3kyx622llxyg8s1frahzc9a3m";
+      rev = "58cd320e966c2aed5a5ebf8544a310a2341ccd5c";
+      sha256 = "1iv5gxj2vx3w3nx335kn0pnin4ij9xwpid909rp9hlh48vkardjp";
     };
     meta.homepage = "https://github.com/RishabhRD/nvim-lsputils/";
   };
@@ -2772,36 +2808,36 @@ let
 
   nvim-tree-lua = buildVimPluginFrom2Nix {
     pname = "nvim-tree-lua";
-    version = "2020-12-14";
+    version = "2020-12-28";
     src = fetchFromGitHub {
       owner = "kyazdani42";
       repo = "nvim-tree.lua";
-      rev = "c84b8b4ab9944ce7d248b9b34000403648506947";
-      sha256 = "0rqnf5aic1gqzw4z5819k0afq602pggr7d1azn0kc1k5zy17avqb";
+      rev = "86944b51c0e0a8fed5a02ab44640b2b215cebe93";
+      sha256 = "1mmpzhsj17rc88hfsn86y2w97a1mz3fjix9p61wnhq1sf0finkhr";
     };
     meta.homepage = "https://github.com/kyazdani42/nvim-tree.lua/";
   };
 
   nvim-treesitter = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter";
-    version = "2020-12-14";
+    version = "2021-01-02";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter";
-      rev = "e22b109a1fc982f0bb77b2d2352fd3d84107d863";
-      sha256 = "0pqiigidax9jgxcrwa4p9946skvszwmzmamfd8g94is2jvgfka3c";
+      rev = "6114a6ed97527ffd1938815f2276d77d908c94c2";
+      sha256 = "1bdwfllgdipsf65kw6v0dvckz34a2215g65q0fqkcx7xmmid4rr6";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
   };
 
   nvim-treesitter-context = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter-context";
-    version = "2020-11-23";
+    version = "2020-12-31";
     src = fetchFromGitHub {
       owner = "romgrk";
       repo = "nvim-treesitter-context";
-      rev = "192baea80c5b1a98a267eb7f13769f33adab7de8";
-      sha256 = "0bap7ckwha4halhdz0hv69iad0wrcdwd9843rnzvfkz3b1bdbvdn";
+      rev = "a7773cc3c581fa43cf0b59693ecdc6fc4e79e748";
+      sha256 = "1mxm6b00jmnci4yvd3bs9njf73bjbdwcn10l5bw9180a511aggv1";
     };
     meta.homepage = "https://github.com/romgrk/nvim-treesitter-context/";
   };
@@ -2820,36 +2856,36 @@ let
 
   nvim-treesitter-textobjects = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter-textobjects";
-    version = "2020-12-13";
+    version = "2021-01-01";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter-textobjects";
-      rev = "8743e233c22092e5ced954267eaa1e5d9b12e881";
-      sha256 = "1qqy3qxqq8qijxq4mg0703x3gx92kccb1h47xrsp49crjpw1g8z1";
+      rev = "065b342db053810ac7a5ee9740b891cfa05c380f";
+      sha256 = "07yl5iin11snw2637860r9zva9yfn7qkljkv0sjfldm73afflds7";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/";
   };
 
   nvim-ts-rainbow = buildVimPluginFrom2Nix {
     pname = "nvim-ts-rainbow";
-    version = "2020-11-30";
+    version = "2020-12-18";
     src = fetchFromGitHub {
       owner = "p00f";
       repo = "nvim-ts-rainbow";
-      rev = "a17dc0244045239f323b237b7c30d3ef7597b346";
-      sha256 = "02gnicvrbrl6d09zmxn7r34j7g1mdsdaw7w51qpgddm7p295qaqi";
+      rev = "32d4b898989e504345c91ee802f5faeb7d12fc39";
+      sha256 = "1k4c1hsc1gwm6lv5k9lhpqx6dcbyc273aikm9j1q5i21mzrvl15f";
     };
     meta.homepage = "https://github.com/p00f/nvim-ts-rainbow/";
   };
 
   nvim-web-devicons = buildVimPluginFrom2Nix {
     pname = "nvim-web-devicons";
-    version = "2020-11-08";
+    version = "2020-12-28";
     src = fetchFromGitHub {
       owner = "kyazdani42";
       repo = "nvim-web-devicons";
-      rev = "61693bf98df40dc17354edd5f92311e2aaa0f5cc";
-      sha256 = "0siifa9gxj6kz9w4fpnra6afyri6y0b34605aqkf7820krhcmckz";
+      rev = "aaffb87b5a640d15a566d9af9e74baafcf9ec016";
+      sha256 = "1qk2h8cwcb0v12lxayjdxka6wh5r1phn9cz5xkm5hvm1vcwrvlln";
     };
     meta.homepage = "https://github.com/kyazdani42/nvim-web-devicons/";
   };
@@ -3012,24 +3048,24 @@ let
 
   playground = buildVimPluginFrom2Nix {
     pname = "playground";
-    version = "2020-12-04";
+    version = "2020-12-17";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "playground";
-      rev = "bc68ffe8efab3a3b575122a26cf434e13e084844";
-      sha256 = "1vlgx149fzkbxlznlwkcqbvlj4bg4g0g7xr1skvxg1qgmlgzwfx3";
+      rev = "0cba1b99cd6cfcd0379e57c317ea1df0c1c82b3a";
+      sha256 = "1xs2g7inlmcjchzzmsa4qh1mf61xz6gdn96mzfkr8fs65g78861b";
     };
     meta.homepage = "https://github.com/nvim-treesitter/playground/";
   };
 
   plenary-nvim = buildVimPluginFrom2Nix {
     pname = "plenary-nvim";
-    version = "2020-12-12";
+    version = "2020-12-30";
     src = fetchFromGitHub {
       owner = "nvim-lua";
       repo = "plenary.nvim";
-      rev = "16eb57376ce62fbb86ebbd721fb7d2c1b1a0164f";
-      sha256 = "0nn1bili0xfldn12svm2px81y8957mj7snl07xx6v1qpfjinp1pm";
+      rev = "08c0eabcb1fdcc5b72f60c3a328ae8eeb7ad374e";
+      sha256 = "1qn1cj9jiq33nldi5s7mrwxxi1y4wibygq3ii2a18x3v5xmw83zy";
     };
     meta.homepage = "https://github.com/nvim-lua/plenary.nvim/";
   };
@@ -3048,12 +3084,12 @@ let
 
   popfix = buildVimPluginFrom2Nix {
     pname = "popfix";
-    version = "2020-12-14";
+    version = "2020-12-29";
     src = fetchFromGitHub {
       owner = "RishabhRD";
       repo = "popfix";
-      rev = "7aed4ff31ba6c2b603a7bc3be4e98cef09e6f7f7";
-      sha256 = "01rz5rpnjjsf3zd6dh14wx6p2pkr8adjcp83jg28rkkzlw8qlv6l";
+      rev = "3e78c1c638d6330f77989321e1c68c55aa8a5e67";
+      sha256 = "1ahffc58a0ps1hmnaqc1rzvisn2axrcd5wbxi6n7z5hmbx86fw99";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/RishabhRD/popfix/";
@@ -3133,12 +3169,12 @@ let
 
   quick-scope = buildVimPluginFrom2Nix {
     pname = "quick-scope";
-    version = "2020-12-05";
+    version = "2020-12-28";
     src = fetchFromGitHub {
       owner = "unblevable";
       repo = "quick-scope";
-      rev = "5cd7d8493256b5900984af6d82a7ff81ce57d544";
-      sha256 = "12v9h9q6lr06r563y1ryvd56zf8m0xshmg27sgm2453k2xps31ly";
+      rev = "d4c02b85ff168f7749833607536cb02281464c26";
+      sha256 = "16hl1np40p3wrk1q0blmxfaa28lljvca1dv9xpiw1ddm9n7qlr21";
     };
     meta.homepage = "https://github.com/unblevable/quick-scope/";
   };
@@ -3481,14 +3517,14 @@ let
 
   Spacegray-vim = buildVimPluginFrom2Nix {
     pname = "Spacegray-vim";
-    version = "2020-09-18";
+    version = "2021-01-02";
     src = fetchFromGitHub {
-      owner = "ajh17";
+      owner = "ackyshake";
       repo = "Spacegray.vim";
-      rev = "338b319da09b5e62744a54c79148262ba0f24bf3";
-      sha256 = "0jkv0sg1sc7d8br32zmwr5m1iwbvzi43f4gvshfi71c6k2fyhwlb";
+      rev = "012ff0065eac2c149084d59e1272ec0d740051ab";
+      sha256 = "0y0jlycgsc8ll5gnqmjc9blyn9ynnzrgnp280k49h4lh5b689y5m";
     };
-    meta.homepage = "https://github.com/ajh17/Spacegray.vim/";
+    meta.homepage = "https://github.com/ackyshake/Spacegray.vim/";
   };
 
   spacevim = buildVimPluginFrom2Nix {
@@ -3541,17 +3577,29 @@ let
 
   splitjoin-vim = buildVimPluginFrom2Nix {
     pname = "splitjoin-vim";
-    version = "2020-12-04";
+    version = "2020-12-15";
     src = fetchFromGitHub {
       owner = "AndrewRadev";
       repo = "splitjoin.vim";
-      rev = "680aff68e0848dcfd5c33f886cabd7c9755b29e0";
-      sha256 = "1h29g177fx9yp7hzw0vy94wf5flcw8q9iicwirpg5cvda8kx7i2w";
+      rev = "91ba14b41f6e767414d7bf2a8e82947c6bfdb978";
+      sha256 = "0q01xfnjqk3vnmknb01zlkzn1jj03lqsygk863vwrdazq86g5aci";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/AndrewRadev/splitjoin.vim/";
   };
 
+  srcery-vim = buildVimPluginFrom2Nix {
+    pname = "srcery-vim";
+    version = "2020-12-22";
+    src = fetchFromGitHub {
+      owner = "srcery-colors";
+      repo = "srcery-vim";
+      rev = "8cd04af0507635a8368609ede79a332b96a7a245";
+      sha256 = "0gb1mjr2yryrq0p9q17d4ndyi7b6wyba3s8ds72wf5bkl4vzrsbd";
+    };
+    meta.homepage = "https://github.com/srcery-colors/srcery-vim/";
+  };
+
   starsearch-vim = buildVimPluginFrom2Nix {
     pname = "starsearch-vim";
     version = "2014-09-21";
@@ -3662,12 +3710,12 @@ let
 
   tagbar = buildVimPluginFrom2Nix {
     pname = "tagbar";
-    version = "2020-11-30";
+    version = "2020-12-21";
     src = fetchFromGitHub {
       owner = "preservim";
       repo = "tagbar";
-      rev = "b63e8cb83f08165d15474ea1291c51f6661f1f7e";
-      sha256 = "0vghkl7i6pldyasb4fr0prjc53aq1jj567pxh9mssn2sy9l8ishg";
+      rev = "eaadf90b61fd039415b2e5e8b9c38598e9b2daed";
+      sha256 = "0283cn4cpdgdclmpc21dcwhign03h0mmahpmr34dp8fa286vlirv";
     };
     meta.homepage = "https://github.com/preservim/tagbar/";
   };
@@ -3710,12 +3758,12 @@ let
 
   telescope-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-nvim";
-    version = "2020-12-14";
+    version = "2021-01-01";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope.nvim";
-      rev = "dfeebffd93ecf4a6abac29c078ca58ddf6bf107c";
-      sha256 = "02psxqg1wa3lgn1jhf2w1ip8sxpm8ypsm19f4g0qgsj91k6d659r";
+      rev = "f15af583ebdce3c1b89cdfec05664c84e3d3ff51";
+      sha256 = "1vfb28a97g85m2zb4964qyl3fqrpi95a6nmb46h24z25p0m6s130";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope.nvim/";
   };
@@ -3891,12 +3939,12 @@ let
 
   unite-vim = buildVimPluginFrom2Nix {
     pname = "unite-vim";
-    version = "2020-06-28";
+    version = "2020-12-20";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "unite.vim";
-      rev = "787c777ff2fedd46fc10e315bdfea339fe016d33";
-      sha256 = "1bm48d3n07i2hy7bqz6pzyl3zb5mikhplmk5fk5x09q2i47l6bqg";
+      rev = "beab32c6474d0b0ba763b43db41cd62ea5f97aa6";
+      sha256 = "0kyl006vp2fs67pr0wa7qyff6x1rpa4i2jhaalizpqbaldimidb9";
     };
     meta.homepage = "https://github.com/Shougo/unite.vim/";
   };
@@ -4203,12 +4251,12 @@ let
 
   vim-airline = buildVimPluginFrom2Nix {
     pname = "vim-airline";
-    version = "2020-12-09";
+    version = "2021-01-01";
     src = fetchFromGitHub {
       owner = "vim-airline";
       repo = "vim-airline";
-      rev = "f39208f1a074fb525270312a20c87521a50c74ef";
-      sha256 = "1prjrrg9r1vxkdxi2p5mbl9hypa6r8sa7yk7xw6bv5vsbwpl8nhj";
+      rev = "5601c0928e450a608527593439899671250d403b";
+      sha256 = "1725fbjilscwvwi76mldw034njf689plzjwxa17y0r0ylfalwql8";
     };
     meta.homepage = "https://github.com/vim-airline/vim-airline/";
   };
@@ -4227,12 +4275,12 @@ let
 
   vim-airline-themes = buildVimPluginFrom2Nix {
     pname = "vim-airline-themes";
-    version = "2020-11-27";
+    version = "2020-12-17";
     src = fetchFromGitHub {
       owner = "vim-airline";
       repo = "vim-airline-themes";
-      rev = "5cf03c355b64836ebcb681136539f48ada34f363";
-      sha256 = "1wjsmm0bf6714rxnrvfb9080ycgcy4x3vp3qs46nznxsxrxx935n";
+      rev = "8f1aa2c7fa44bf33b1fd4678f9c7b40c126b0e2b";
+      sha256 = "1gwk7m8ghg5lix14bqxjyxc1wv5agkfhqinsikssydab0liw0xyf";
     };
     meta.homepage = "https://github.com/vim-airline/vim-airline-themes/";
   };
@@ -4431,12 +4479,12 @@ let
 
   vim-clap = buildVimPluginFrom2Nix {
     pname = "vim-clap";
-    version = "2020-12-10";
+    version = "2021-01-01";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vim-clap";
-      rev = "610fc0186f2c13e5e24e3be3abf01954a5fcff22";
-      sha256 = "1ibsrp34i856qg8x879y4gmbfpkryjs2c5ycgmw740bg478n9v2v";
+      rev = "b9ca65dbcc89dfb2702fb2ab0e98c7119f4e6bbf";
+      sha256 = "0j9xh0yf224fsnm9ksml9m8jfx4m9iji0a6h8q0mk8zglvh6qksc";
     };
     meta.homepage = "https://github.com/liuchengxu/vim-clap/";
   };
@@ -4479,24 +4527,24 @@ let
 
   vim-codefmt = buildVimPluginFrom2Nix {
     pname = "vim-codefmt";
-    version = "2020-12-07";
+    version = "2020-12-18";
     src = fetchFromGitHub {
       owner = "google";
       repo = "vim-codefmt";
-      rev = "6761a211eb8690e84167a1cb2efb11f31e07973d";
-      sha256 = "0fppgyrbn6yy9qwi0vffj34vmqc40sqrh1drlbn9493j4r27ffyz";
+      rev = "0bf16eb74e8243ee477ad97330e451026311fbae";
+      sha256 = "06060173jyz1n977a2jaq706x850bayg2n2jwmidbrsbiyx2krzy";
     };
     meta.homepage = "https://github.com/google/vim-codefmt/";
   };
 
   vim-coffee-script = buildVimPluginFrom2Nix {
     pname = "vim-coffee-script";
-    version = "2018-02-27";
+    version = "2020-12-20";
     src = fetchFromGitHub {
       owner = "kchmck";
       repo = "vim-coffee-script";
-      rev = "9e3b4de2a476caeb6ff21b5da20966d7c67a98bb";
-      sha256 = "1yzhyi12r508r2yjkzbcnddv3q4whjf3kchp23xs0snhwd9b981x";
+      rev = "28421258a8dde5a50deafbfc19cd9873cacfaa79";
+      sha256 = "07k7whr32x782jyvzl2vg6c2pdrj5jynf4b4f2my7502rgv03w02";
     };
     meta.homepage = "https://github.com/kchmck/vim-coffee-script/";
   };
@@ -4681,6 +4729,18 @@ let
     meta.homepage = "https://github.com/sunaku/vim-dasht/";
   };
 
+  vim-DetectSpellLang = buildVimPluginFrom2Nix {
+    pname = "vim-DetectSpellLang";
+    version = "2020-01-13";
+    src = fetchFromGitHub {
+      owner = "konfekt";
+      repo = "vim-DetectSpellLang";
+      rev = "d8b545ef138a9ff013f8243f85c79b277b26f5e1";
+      sha256 = "0c1bxryw4rg4cyql7vfp2gwhkl2d0b8inc6shmgfy7jg4svhzs0w";
+    };
+    meta.homepage = "https://github.com/Konfekt/vim-DetectSpellLang/";
+  };
+
   vim-devicons = buildVimPluginFrom2Nix {
     pname = "vim-devicons";
     version = "2020-12-10";
@@ -4731,12 +4791,12 @@ let
 
   vim-dirvish-git = buildVimPluginFrom2Nix {
     pname = "vim-dirvish-git";
-    version = "2020-06-04";
+    version = "2020-12-18";
     src = fetchFromGitHub {
       owner = "kristijanhusak";
       repo = "vim-dirvish-git";
-      rev = "8a3a8b88ed0815500c2912658fe0de7583ee1d45";
-      sha256 = "1z8a718kam2r87kimhayxndjbmpgk0mgwrc5v52bid584xml584k";
+      rev = "0c8c1a2878074abb0ac24054810de427ebff5500";
+      sha256 = "0gan44cyjskzjx5wv20zyvw2jn4cs4537fpwh2m3vi6758s2bmwy";
     };
     meta.homepage = "https://github.com/kristijanhusak/vim-dirvish-git/";
   };
@@ -4803,12 +4863,12 @@ let
 
   vim-easymotion = buildVimPluginFrom2Nix {
     pname = "vim-easymotion";
-    version = "2020-10-25";
+    version = "2020-12-17";
     src = fetchFromGitHub {
       owner = "easymotion";
       repo = "vim-easymotion";
-      rev = "41bbb8ce8a3c3acc837895ebd79f8a8bc07b99b3";
-      sha256 = "1lbn844pv5pnla3qhc01wyyrx3czmr83gax8pr3w6283jwp4di6y";
+      rev = "d75d9591e415652b25d9e0a3669355550325263d";
+      sha256 = "1j2kgh1iri0fqkbgbgvfjqgsksfipnmr1xbj554i602pnm0hbg19";
     };
     meta.homepage = "https://github.com/easymotion/vim-easymotion/";
   };
@@ -4887,12 +4947,12 @@ let
 
   vim-exchange = buildVimPluginFrom2Nix {
     pname = "vim-exchange";
-    version = "2020-11-15";
+    version = "2020-12-16";
     src = fetchFromGitHub {
       owner = "tommcdo";
       repo = "vim-exchange";
-      rev = "13d3895709277d7b35bb4e30cc6ad0409a30ff0a";
-      sha256 = "0fgdqbkpk4220q1l00c7wcim24pbpxqj30lcfid2afkf953zhzhp";
+      rev = "17f1a2cc0d009cfd7f0dcda06dd0f017fcc1c70b";
+      sha256 = "0c4s9cmyx1myqz9k35waply2mv0yr3agpkv64ndhwgqbmlxyifnj";
     };
     meta.homepage = "https://github.com/tommcdo/vim-exchange/";
   };
@@ -4995,12 +5055,12 @@ let
 
   vim-floaterm = buildVimPluginFrom2Nix {
     pname = "vim-floaterm";
-    version = "2020-11-30";
+    version = "2021-01-01";
     src = fetchFromGitHub {
       owner = "voldikss";
       repo = "vim-floaterm";
-      rev = "d7880f46f9b339f935e9912bb3f41c9b346ae992";
-      sha256 = "1hyvfsjwpgyk5sgrr4zn8r0r530p1v3z8gz8a1dhjgpdykb90mpw";
+      rev = "f3537456b3f2639e8c8140c2138e9bed09a7cd52";
+      sha256 = "1wa7v14qv4jk86mck6ibyf2jz157hqyif995x12dl5ilb5csicz2";
     };
     meta.homepage = "https://github.com/voldikss/vim-floaterm/";
   };
@@ -5043,12 +5103,12 @@ let
 
   vim-fugitive = buildVimPluginFrom2Nix {
     pname = "vim-fugitive";
-    version = "2020-12-07";
+    version = "2020-12-17";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fugitive";
-      rev = "7afa1cfaa62e7fc6f891d0d59f4b10d046b5fd8e";
-      sha256 = "1a2q4n9dk8p3j9d8nr8briszmmign4393sbmrdrjkg963ysfc63g";
+      rev = "bebe504e38d0a20c30d6dd666c4c793b3cc66104";
+      sha256 = "03w28pll83sj7g7ngif27mj81zmwik0iw8yc50yc3szk0lv816yc";
     };
     meta.homepage = "https://github.com/tpope/vim-fugitive/";
   };
@@ -5137,14 +5197,26 @@ let
     meta.homepage = "https://github.com/tikhomirov/vim-glsl/";
   };
 
+  vim-gnupg = buildVimPluginFrom2Nix {
+    pname = "vim-gnupg";
+    version = "2021-01-03";
+    src = fetchFromGitHub {
+      owner = "jamessan";
+      repo = "vim-gnupg";
+      rev = "96be0be1240a848da56d665b38e1b0fe7ee3f1af";
+      sha256 = "10syaaylyaqn60zhyx008863b5b1349pygg7lnaqchw6bard1135";
+    };
+    meta.homepage = "https://github.com/jamessan/vim-gnupg/";
+  };
+
   vim-go = buildVimPluginFrom2Nix {
     pname = "vim-go";
-    version = "2020-12-12";
+    version = "2020-12-27";
     src = fetchFromGitHub {
       owner = "fatih";
       repo = "vim-go";
-      rev = "2855115efb1dd8a5f4436a80138633a1cb5d9f0c";
-      sha256 = "1clq50v9r0mdgvpg3qclrs1ar5939fmi9y8ajpdhi8akwmzwq2z2";
+      rev = "9d676ce4128fec22da44b9a5e1eead994f8941e6";
+      sha256 = "0a61dkxr4kwcbnnkvz21zihsa458fkn31i962a7xjx332lfrpymz";
     };
     meta.homepage = "https://github.com/fatih/vim-go/";
   };
@@ -5163,12 +5235,12 @@ let
 
   vim-graphql = buildVimPluginFrom2Nix {
     pname = "vim-graphql";
-    version = "2020-12-06";
+    version = "2020-12-20";
     src = fetchFromGitHub {
       owner = "jparise";
       repo = "vim-graphql";
-      rev = "2e3b8fb97845136d43d6470c4aa4b73685a904e1";
-      sha256 = "1cliwmjw7p7mp0nqhiv2ffmjrq41gx0yd0i46js8a7xyz3fwa0aa";
+      rev = "c5169b2705f23cc4926606a7786d8e8fae138d5c";
+      sha256 = "19nmdkbd4wcip18bb4inx64mc0awjj3bbahbhpsd8g6d889r9jha";
     };
     meta.homepage = "https://github.com/jparise/vim-graphql/";
   };
@@ -5259,12 +5331,12 @@ let
 
   vim-hexokinase = buildVimPluginFrom2Nix {
     pname = "vim-hexokinase";
-    version = "2020-11-03";
+    version = "2020-12-31";
     src = fetchFromGitHub {
       owner = "RRethy";
       repo = "vim-hexokinase";
-      rev = "776f1b2a5df00249e89112655dcda6f9a8492bdb";
-      sha256 = "1zxl6injhhsp9r7qjrfjq626yy32vza2lcrcgxsv8m7mf2b11zdp";
+      rev = "a7468f62a70d1da85b3fbe7f540a6dbd7a199536";
+      sha256 = "1vx48gq0skjmcjrxc8qkvjbqdsap50jrh1gyiqmm9s9rqxzsi4hs";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/RRethy/vim-hexokinase/";
@@ -5392,12 +5464,12 @@ let
 
   vim-illuminate = buildVimPluginFrom2Nix {
     pname = "vim-illuminate";
-    version = "2020-12-13";
+    version = "2020-12-30";
     src = fetchFromGitHub {
       owner = "RRethy";
       repo = "vim-illuminate";
-      rev = "b4a95300782781e2c27611e3bdeaadf2a8e75e56";
-      sha256 = "1zabzl6zsxl2q60ipsrig3289l4gsglyf0w77vgfl0sxbhh3ii2q";
+      rev = "6d4a062345a471f0af2cbe4024d1a0e69fb40da3";
+      sha256 = "0n10r2jg0qy0lfanvl605pxgmnqx1s8y4qikr2idjwcv9xpf3sj7";
     };
     meta.homepage = "https://github.com/RRethy/vim-illuminate/";
   };
@@ -5488,12 +5560,12 @@ let
 
   vim-javacomplete2 = buildVimPluginFrom2Nix {
     pname = "vim-javacomplete2";
-    version = "2020-11-16";
+    version = "2020-12-29";
     src = fetchFromGitHub {
       owner = "artur-shaik";
       repo = "vim-javacomplete2";
-      rev = "1a0cd30af7a4d3a0fd2a053b380c92057431325a";
-      sha256 = "1p82shirc11z78w82h13d7ih9l1akas6brbylkp3qwrp0pxkxpnw";
+      rev = "91592a3613600f65c6985211894fb65f28f389c7";
+      sha256 = "1rl6jsc54nkh0jdaxa132qz9sp506wzq5dc7iqnr9ndhyzz8m2n0";
     };
     meta.homepage = "https://github.com/artur-shaik/vim-javacomplete2/";
   };
@@ -5609,12 +5681,12 @@ let
 
   vim-kitty-navigator = buildVimPluginFrom2Nix {
     pname = "vim-kitty-navigator";
-    version = "2020-09-16";
+    version = "2020-12-16";
     src = fetchFromGitHub {
       owner = "knubie";
       repo = "vim-kitty-navigator";
-      rev = "ebdf6988bac3d1ebc45b3e51a86f3c065cf60c24";
-      sha256 = "0zw24lhgs37lpbbdv2ir9s7g0fd3gjhjx2kvv54cs6mjszg2qmsm";
+      rev = "ee9252c62bcdc22e8326373ba1716442658b19d1";
+      sha256 = "1885gwbv2a4bwwydn129hd7xjgqp0cfjqkm0zw8lfylxgxadg0zb";
     };
     meta.homepage = "https://github.com/knubie/vim-kitty-navigator/";
   };
@@ -5765,48 +5837,48 @@ let
 
   vim-lsc = buildVimPluginFrom2Nix {
     pname = "vim-lsc";
-    version = "2020-11-14";
+    version = "2020-12-30";
     src = fetchFromGitHub {
       owner = "natebosch";
       repo = "vim-lsc";
-      rev = "b3d239f71c02b274fcb74ebc57b836810f978da9";
-      sha256 = "1vs50npx5bx13wmlbfl7dk48ifvn0kn1l4qal14sdzlv56y6hy57";
+      rev = "161e875c388e7b584fabf06539ec81df25bb2c0b";
+      sha256 = "0zsm1kvi3j1m1hbis4cjhn8ny8m0z5iwga5zpk692na2nydxlhi6";
     };
     meta.homepage = "https://github.com/natebosch/vim-lsc/";
   };
 
   vim-lsp = buildVimPluginFrom2Nix {
     pname = "vim-lsp";
-    version = "2020-12-13";
+    version = "2021-01-02";
     src = fetchFromGitHub {
       owner = "prabirshrestha";
       repo = "vim-lsp";
-      rev = "9dce8c50ed845b1f68d03875007c0a8a47b5490a";
-      sha256 = "0csvrd52i9cd2vwkc0rfsi598zi217kg67w87yjmh9v16bjjdmb4";
+      rev = "f6a66a11b51e03afd4b896e63196390c6d43b81a";
+      sha256 = "0djv5i2kqml63241vrxdf67q917688y7swjf0l4fm864dss2p1b9";
     };
     meta.homepage = "https://github.com/prabirshrestha/vim-lsp/";
   };
 
   vim-lsp-cxx-highlight = buildVimPluginFrom2Nix {
     pname = "vim-lsp-cxx-highlight";
-    version = "2020-08-12";
+    version = "2020-12-23";
     src = fetchFromGitHub {
       owner = "jackguo380";
       repo = "vim-lsp-cxx-highlight";
-      rev = "7c47d39d808118f0ef030b15db28ff3995d91cb6";
-      sha256 = "0yiyxfhicqhhpp83ilknngr8l9r8z9bchkn3xd2ri8bx0bm7i4l7";
+      rev = "f42db17e0917e6011a1d3581c3a8f29efab8ed93";
+      sha256 = "0n67ap7zi888xin7c7ag8sk7hjrzg36mlpg42rqfgx66k6dm0455";
     };
     meta.homepage = "https://github.com/jackguo380/vim-lsp-cxx-highlight/";
   };
 
   vim-maktaba = buildVimPluginFrom2Nix {
     pname = "vim-maktaba";
-    version = "2020-09-23";
+    version = "2020-12-23";
     src = fetchFromGitHub {
       owner = "google";
       repo = "vim-maktaba";
-      rev = "cdf8247c0abd251475be26a044b2e95698df6c09";
-      sha256 = "0i4926gw06m8pqqn8a8k2xsxxg0pm3q8q1k3xd0imxi3gkyvz1fq";
+      rev = "46730b0d818da2da005e3c8a38ff987a2dd36d7c";
+      sha256 = "1lc4lysv3q7qvivfrwqggrpdgsb3zkhq1clvzfsxfsa2m1y4gr0z";
     };
     meta.homepage = "https://github.com/google/vim-maktaba/";
   };
@@ -5982,12 +6054,12 @@ let
 
   vim-mundo = buildVimPluginFrom2Nix {
     pname = "vim-mundo";
-    version = "2020-11-08";
+    version = "2020-12-29";
     src = fetchFromGitHub {
       owner = "simnalamburt";
       repo = "vim-mundo";
-      rev = "33a91cc55ebc7a55b8846c46f0ab50ec0d81613f";
-      sha256 = "18qbmnwlwf9hmak73zam44daf6c50hi72b9g8ra7v1l5psgi39z7";
+      rev = "4f8628caebe393ac1b84564e965f894d89a7582d";
+      sha256 = "0hmww1xln0rvvi8hy7sv9arjwlp40ks0b07irzqpm5xi93hgyq2n";
     };
     meta.homepage = "https://github.com/simnalamburt/vim-mundo/";
   };
@@ -6066,24 +6138,24 @@ let
 
   vim-nong-theme = buildVimPluginFrom2Nix {
     pname = "vim-nong-theme";
-    version = "2020-12-03";
+    version = "2020-12-16";
     src = fetchFromGitHub {
       owner = "fruit-in";
       repo = "vim-nong-theme";
-      rev = "ea4c8558970b2c6e724483e3031940906420aa7e";
-      sha256 = "09ws0wj2zldyfn7752rzh0wx24271yi4c390gd9f60d33pkc0s80";
+      rev = "cf7eacc6140ef67f7fc6b3099a6ef82767af82e0";
+      sha256 = "17lvmszydpgn54n54z4mhcipzrwxggnq7lr69k8vwbwmrr8sk0qa";
     };
     meta.homepage = "https://github.com/fruit-in/vim-nong-theme/";
   };
 
   vim-numbertoggle = buildVimPluginFrom2Nix {
     pname = "vim-numbertoggle";
-    version = "2017-10-26";
+    version = "2020-12-30";
     src = fetchFromGitHub {
       owner = "jeffkreeftmeijer";
       repo = "vim-numbertoggle";
-      rev = "cfaecb9e22b45373bb4940010ce63a89073f6d8b";
-      sha256 = "1rrmvv7ali50rpbih1s0fj00a3hjspwinx2y6nhwac7bjsnqqdwi";
+      rev = "4e4fda05db27e698c8ad4dff7c17bec54bb10a0c";
+      sha256 = "0crrgdz5wyriylj28sn0sil732wfnhnz35zaydqgp2csqi9s9xcb";
     };
     meta.homepage = "https://github.com/jeffkreeftmeijer/vim-numbertoggle/";
   };
@@ -6102,12 +6174,12 @@ let
 
   vim-ocaml = buildVimPluginFrom2Nix {
     pname = "vim-ocaml";
-    version = "2020-10-11";
+    version = "2021-01-01";
     src = fetchFromGitHub {
       owner = "ocaml";
       repo = "vim-ocaml";
-      rev = "023a2a464e7a096779d3e541ee7d1dbe61148f6a";
-      sha256 = "0wj945n3da9bzcj5n8002m4vrzv9cgk6sqcc7nyc1x34y9452z94";
+      rev = "2a18135901b312e5159f30e26786d657919281a4";
+      sha256 = "00xyj3bzd76cdc60wiw42b4d35nlxshr9xh4n4c6jf1wavm1clfj";
     };
     meta.homepage = "https://github.com/ocaml/vim-ocaml/";
   };
@@ -6366,12 +6438,12 @@ let
 
   vim-polyglot = buildVimPluginFrom2Nix {
     pname = "vim-polyglot";
-    version = "2020-11-27";
+    version = "2021-01-01";
     src = fetchFromGitHub {
       owner = "sheerun";
       repo = "vim-polyglot";
-      rev = "73c518717741fb3ebb6822645d38f37ffae7c19b";
-      sha256 = "08zwvnlg08v3h04iw754wl9wkirqcvqip86hh4m7bxxl0qkysnv6";
+      rev = "05b8bbc938bdeac4a5ee2d3ae5cf7a7f05e822d3";
+      sha256 = "0l7f80gas6rmiw5m0varsyv3sk3sfkqx0z05hlh4719a304b16pv";
     };
     meta.homepage = "https://github.com/sheerun/vim-polyglot/";
   };
@@ -6594,12 +6666,12 @@ let
 
   vim-rhubarb = buildVimPluginFrom2Nix {
     pname = "vim-rhubarb";
-    version = "2020-11-29";
+    version = "2020-12-18";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-rhubarb";
-      rev = "857865bdab4bf134789484c36181346fdc29ccb9";
-      sha256 = "1jwg3nij3skha4wspb833wqarqrmsxg6apry40m9s1l4gc1c3cz5";
+      rev = "d865e427d067af57d85cf2b7d2bc1912eb84d0bf";
+      sha256 = "1gcphxq52jx96fzf6xkq7mxvgyhjn6yzh7l5qc9h18lqmax9gqw2";
     };
     meta.homepage = "https://github.com/tpope/vim-rhubarb/";
   };
@@ -6654,12 +6726,12 @@ let
 
   vim-sandwich = buildVimPluginFrom2Nix {
     pname = "vim-sandwich";
-    version = "2020-07-27";
+    version = "2020-12-15";
     src = fetchFromGitHub {
       owner = "machakann";
       repo = "vim-sandwich";
-      rev = "f0bb324395bf6e00ec17fc7af60d2ccb8d494595";
-      sha256 = "19fqpccvawh2wjkzgp64jijq4nnhirmgvrrycxzcx7lj612mbpmc";
+      rev = "9e6340affe9f53c11a6975a5f50b9bf48adb692c";
+      sha256 = "0ghli93qzr3i8ai90waikylwas3xgy5bdgykng55b9mqgpmc3faf";
     };
     meta.homepage = "https://github.com/machakann/vim-sandwich/";
   };
@@ -6798,12 +6870,12 @@ let
 
   vim-slime = buildVimPluginFrom2Nix {
     pname = "vim-slime";
-    version = "2020-12-05";
+    version = "2020-12-31";
     src = fetchFromGitHub {
       owner = "jpalardy";
       repo = "vim-slime";
-      rev = "59d5e6c4bd99f6a1825ec83e9d56a333b12be36b";
-      sha256 = "0679rn285z4v237gmxnkxdsx4gc0phh453bnhynsmr353x5a6gn3";
+      rev = "5ee3530714771b61fc509d2ffdcbced9404c150a";
+      sha256 = "1msjl7swz43rwpf4h8skk377s9kfyvcgr1z0dcwbbmn3jymfs5sk";
     };
     meta.homepage = "https://github.com/jpalardy/vim-slime/";
   };
@@ -6822,12 +6894,12 @@ let
 
   vim-smoothie = buildVimPluginFrom2Nix {
     pname = "vim-smoothie";
-    version = "2020-12-13";
+    version = "2020-12-25";
     src = fetchFromGitHub {
       owner = "psliwka";
       repo = "vim-smoothie";
-      rev = "a0414d1203e55d21b2b81050173c1c76bf0f854f";
-      sha256 = "1ixz25fbdzcip324h9mkkmdfrwk3f0fqafrs5cnzmk5bcg9c22rv";
+      rev = "1f5ee84b789384a273b3e27b6a5a7e2f54dbc30e";
+      sha256 = "0977qb31hgss38g01m7ikx3qdqial3c7zw9cv72k7rnmcgy761wz";
     };
     meta.homepage = "https://github.com/psliwka/vim-smoothie/";
   };
@@ -6870,12 +6942,12 @@ let
 
   vim-snippets = buildVimPluginFrom2Nix {
     pname = "vim-snippets";
-    version = "2020-12-14";
+    version = "2020-12-26";
     src = fetchFromGitHub {
       owner = "honza";
       repo = "vim-snippets";
-      rev = "e7a8a3fb439e22a9d55b050f3cab5c962b8d5aa7";
-      sha256 = "1s6xmyfkg2iqlgg3zgygfa3p3d2fbyinylffdn2iy384q0fjn7lw";
+      rev = "275bfd8d6aebabd1140b18656d1bda32ca076dbb";
+      sha256 = "0g7nfvp9zqx1as4djajckl8aqv9931qhlnix1x8dnvqik9x4rny7";
     };
     meta.homepage = "https://github.com/honza/vim-snippets/";
   };
@@ -6906,12 +6978,12 @@ let
 
   vim-sourcetrail = buildVimPluginFrom2Nix {
     pname = "vim-sourcetrail";
-    version = "2020-11-24";
+    version = "2020-12-21";
     src = fetchFromGitHub {
       owner = "CoatiSoftware";
       repo = "vim-sourcetrail";
-      rev = "103ad3f96ebf3518494350afaa72763e9e769eec";
-      sha256 = "1hpin1x5l8k54qkckc8v3c2gkv1sbqj3hxikwa0vxr5mz0zaz2wc";
+      rev = "b603ee7cf5c751918efc40014b9cfb40bf19ec32";
+      sha256 = "1yssa2yll5q61mffwxiq8swpzq80xxypyzr7svn8acwrakn0dx5r";
     };
     meta.homepage = "https://github.com/CoatiSoftware/vim-sourcetrail/";
   };
@@ -7351,12 +7423,12 @@ let
 
   vim-visual-multi = buildVimPluginFrom2Nix {
     pname = "vim-visual-multi";
-    version = "2020-12-08";
+    version = "2021-01-01";
     src = fetchFromGitHub {
       owner = "mg979";
       repo = "vim-visual-multi";
-      rev = "20a59dd6b82fa838f92a333061f40c8db0e41ffb";
-      sha256 = "0kkldla4rjw0gk7nvrq5l08nvpfhf6hmsmp4z0k9z4hin3yiddav";
+      rev = "c27966b82e3ebf39278b53ae600c9763907937d9";
+      sha256 = "15246xx9qixgdw1wff4kka9vcpkirkdbz8j25zhicx3dqvqzzb4c";
     };
     meta.homepage = "https://github.com/mg979/vim-visual-multi/";
   };
@@ -7375,24 +7447,24 @@ let
 
   vim-vsnip = buildVimPluginFrom2Nix {
     pname = "vim-vsnip";
-    version = "2020-12-06";
+    version = "2020-12-31";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "vim-vsnip";
-      rev = "17afebf49f3a13a4dbf44c90c0b5a9caf1cdbeb4";
-      sha256 = "0xarnz4d9liwckgblckjma5yc66mal4ilggfjcr41i68h6mhdj88";
+      rev = "c62a86d46236e74d5059de0ba987a79a9e6be0c9";
+      sha256 = "1iw44y0b1v9677cw65idj3f458ski2mp9d0s66f48i92gcbpk90k";
     };
     meta.homepage = "https://github.com/hrsh7th/vim-vsnip/";
   };
 
   vim-vsnip-integ = buildVimPluginFrom2Nix {
     pname = "vim-vsnip-integ";
-    version = "2020-11-09";
+    version = "2020-12-31";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "vim-vsnip-integ";
-      rev = "8f171eac11eb7668a33991953f9ae5af9556cc59";
-      sha256 = "0a8f1nblgwdv7z0ycxlx5arx68dgg5qzvwwgws18lpf201qp07sx";
+      rev = "60dfbb0dc73cfc4828e9328251a46ccbd7e9b5fe";
+      sha256 = "0nv8imllzpm5zvg2n3c5mb7lc1v1fn6jmqy8vgmv2fp1050p3dy3";
     };
     meta.homepage = "https://github.com/hrsh7th/vim-vsnip-integ/";
   };
@@ -7411,12 +7483,12 @@ let
 
   vim-wakatime = buildVimPluginFrom2Nix {
     pname = "vim-wakatime";
-    version = "2020-11-02";
+    version = "2020-12-29";
     src = fetchFromGitHub {
       owner = "wakatime";
       repo = "vim-wakatime";
-      rev = "c725124ae8885ca6da4fe5cd03bda4bd77dc3fd1";
-      sha256 = "1mvvqbjszp6mc0rq6m1nj7cyy44z4xf2h4lc561wkfblhhk9j4i6";
+      rev = "45dfc28c30b44041183d749cf724e3dba9ac65ef";
+      sha256 = "1ipdynpg9v5mll1zimyiaxw4zzj004myh5xjky32z783lgi0qlxl";
     };
     meta.homepage = "https://github.com/wakatime/vim-wakatime/";
   };
@@ -7435,12 +7507,12 @@ let
 
   vim-which-key = buildVimPluginFrom2Nix {
     pname = "vim-which-key";
-    version = "2020-10-02";
+    version = "2020-12-21";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vim-which-key";
-      rev = "30c0810b012a7acdccc6b72f0e99c0388986844f";
-      sha256 = "18rflksd58mwkq0lc64frfimj1l1k8cc0l45jpv0z4w118v92jyv";
+      rev = "c5322b2f67bc627d467e527a530ff6695ccd3dbd";
+      sha256 = "0j3pnbg0a2rcjfp691v7wzcp9bqan24qvdl4fxzljipl2lyim0qb";
     };
     meta.homepage = "https://github.com/liuchengxu/vim-which-key/";
   };
@@ -7567,12 +7639,12 @@ let
 
   VimOrganizer = buildVimPluginFrom2Nix {
     pname = "VimOrganizer";
-    version = "2014-04-10";
+    version = "2020-12-15";
     src = fetchFromGitHub {
       owner = "hsitz";
       repo = "VimOrganizer";
-      rev = "cab0baf635eb9470e62d57d42f2d470180b06c8d";
-      sha256 = "0qncr00xn7lj1i469fzjaaghhqrlyg5s2wj4v6625dhg98y0irix";
+      rev = "09636aed78441a9de2767fcef6d7c567f322cc40";
+      sha256 = "0phpcxmyz562yyp88rbx9pqg46w8r1lyapb700nvxwvqkcd82pfw";
     };
     meta.homepage = "https://github.com/hsitz/VimOrganizer/";
   };
@@ -7615,12 +7687,12 @@ let
 
   vimsence = buildVimPluginFrom2Nix {
     pname = "vimsence";
-    version = "2020-11-02";
+    version = "2021-01-01";
     src = fetchFromGitHub {
       owner = "hugolgst";
       repo = "vimsence";
-      rev = "433875b4a994582a28795f8944af10d935b64322";
-      sha256 = "117yxp3bzhrdi03r2d2zr1r2702czkxamdvgcxr62gysdgbz5i9z";
+      rev = "d135a75530d2ad4d034a5a2515136f043ffcecb2";
+      sha256 = "0v0qbqms513c4fcwa69d175ylkzb9n5i93gz1pqlcgnfmzdsfn22";
     };
     meta.homepage = "https://github.com/hugolgst/vimsence/";
   };
@@ -7639,12 +7711,12 @@ let
 
   vimspector = buildVimPluginFrom2Nix {
     pname = "vimspector";
-    version = "2020-12-14";
+    version = "2020-12-23";
     src = fetchFromGitHub {
       owner = "puremourning";
       repo = "vimspector";
-      rev = "61179b7670491a70b40cb34ddeefe793bee7fcb8";
-      sha256 = "1gqfmvp1fzrj3zl21viqamjvfhjxw2qxs7ssvwblv3jympm27aww";
+      rev = "41a98026fa0bc29be35fc8392e38b1caabab0a3a";
+      sha256 = "14x6fmz7yy377zhgrmcv718bnqyh46c6rrb2f3ypfbbrk0nbd7k6";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/puremourning/vimspector/";
@@ -7652,12 +7724,12 @@ let
 
   vimtex = buildVimPluginFrom2Nix {
     pname = "vimtex";
-    version = "2020-12-12";
+    version = "2020-12-30";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "ab5acf850679451ad19c96d9c081b35b29175db4";
-      sha256 = "12inbcl2d4b3i18p8x9l565xlp9liv9y3szlx9r37r05szb8c18b";
+      rev = "401bea84b863f34a04b227fa60d2f498d7c9b7fb";
+      sha256 = "0ygss9dw64xiixdwhqhsn0y8dzlfl0gd0avjs075mkpzx5qfrsbx";
     };
     meta.homepage = "https://github.com/lervag/vimtex/";
   };
@@ -7700,12 +7772,12 @@ let
 
   vista-vim = buildVimPluginFrom2Nix {
     pname = "vista-vim";
-    version = "2020-12-12";
+    version = "2021-01-01";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vista.vim";
-      rev = "3a1809ccf01b6acffdc2d5c529a946961266c4d7";
-      sha256 = "12n7i5n2if4daafxwnnbnglq4g2gvcx2zsa973cs3fj2jjx0fqvg";
+      rev = "691fbce5fa1473c64035fba6e3c7b3876a99cb58";
+      sha256 = "0xx06s8syqs3a5b5711zgbjbzqz17pk66vzcazhq08bqgys21alr";
     };
     meta.homepage = "https://github.com/liuchengxu/vista.vim/";
   };
@@ -7820,12 +7892,12 @@ let
 
   yats-vim = buildVimPluginFrom2Nix {
     pname = "yats-vim";
-    version = "2020-12-06";
+    version = "2021-01-01";
     src = fetchFromGitHub {
       owner = "HerringtonDarkholme";
       repo = "yats.vim";
-      rev = "a488d15f535cddd2acc6c8b77c6c4381debcadbf";
-      sha256 = "0rxv4hmpw0lcmp99kcgax4yll6m896d5vljv1hb7ycmz1q25ij52";
+      rev = "3c1d985ed8761eb5917b57b7a7b26401c796c994";
+      sha256 = "0vf8nadhh0z920j2qzhsnklszn1ppy8cnyzaywlz46nmd4nys15s";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/HerringtonDarkholme/yats.vim/";
@@ -7833,12 +7905,12 @@ let
 
   YouCompleteMe = buildVimPluginFrom2Nix {
     pname = "YouCompleteMe";
-    version = "2020-12-13";
+    version = "2020-12-31";
     src = fetchFromGitHub {
       owner = "ycm-core";
       repo = "YouCompleteMe";
-      rev = "4904077bec593da031a73c972dfc516544f72f78";
-      sha256 = "1m73bm7pqwj1sjr518hgwzgz4xx2hi3arfjbq0jlj010nawn31fd";
+      rev = "2434b104065be4590f07ad950d0943b7194f01e6";
+      sha256 = "0hhwqb5w84bi28h27wmisx4mb91xc6jbdh004d5994bl2098yrf8";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/ycm-core/YouCompleteMe/";
@@ -7882,12 +7954,12 @@ let
 
   zig-vim = buildVimPluginFrom2Nix {
     pname = "zig-vim";
-    version = "2020-10-09";
+    version = "2020-12-31";
     src = fetchFromGitHub {
       owner = "ziglang";
       repo = "zig.vim";
-      rev = "fa5f6d7c5be47bd32dcc69ccf980fc585575cc38";
-      sha256 = "0szrnp27ccl93fbn1j9ybsld1l6j3xdrnx6dsf01gdxidm3w60f3";
+      rev = "ef331a76f0d660a67504e1cd0d981c345db3607f";
+      sha256 = "0976539h1zsxrnihp5x5lvra12iwvjbbrl5nw6f914yh09jqbgjf";
     };
     meta.homepage = "https://github.com/ziglang/zig.vim/";
   };
diff --git a/pkgs/misc/vim-plugins/overrides.nix b/pkgs/misc/vim-plugins/overrides.nix
index b1846276276..17d5dd925eb 100644
--- a/pkgs/misc/vim-plugins/overrides.nix
+++ b/pkgs/misc/vim-plugins/overrides.nix
@@ -644,7 +644,7 @@ self: super: {
           libiconv
         ];
 
-        cargoSha256 = "QUi3GyAsakAtDQkiVA7ez05s5CixqsVSp92svYmcWdQ=";
+        cargoSha256 = "1738hvqzwr4h1bigsqffc6alkzvir8s6f7mr0xyp21qbf5qkxmq2";
       };
     in ''
       ln -s ${maple-bin}/bin/maple $target/bin/maple
diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names
index 95f341e1606..afc5f1d7748 100644
--- a/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/pkgs/misc/vim-plugins/vim-plugin-names
@@ -1,8 +1,8 @@
 907th/vim-auto-save
 aca/completion-tabnine
+ackyshake/Spacegray.vim@main
 airblade/vim-gitgutter
 airblade/vim-rooter
-ajh17/Spacegray.vim
 aklt/plantuml-syntax
 altercation/vim-colors-solarized
 alvan/vim-closetag
@@ -34,7 +34,7 @@ bling/vim-bufferline
 blueyed/vim-diminactive
 bogado/file-line
 bohlender/vim-smt2
-brennanfee/vim-gui-position
+brennanfee/vim-gui-position@main
 bronson/vim-trailing-whitespace
 brooth/far.vim
 buoto/gotests-vim
@@ -121,6 +121,7 @@ flazz/vim-colorschemes
 floobits/floobits-neovim
 freitass/todo.txt-vim
 frigoeu/psc-ide-vim
+fruit-in/brainfuck-vim
 fruit-in/vim-nong-theme
 fsharp/vim-fsharp
 fszymanski/deoplete-emoji
@@ -179,6 +180,7 @@ ivanov/vim-ipython
 jackguo380/vim-lsp-cxx-highlight
 jacoborus/tender.vim
 jakwings/vim-pony
+jamessan/vim-gnupg@main
 jaredgorski/SpaceCamp
 jaxbot/semantic-highlight.vim
 JazzCore/ctrlp-cmatcher
@@ -245,6 +247,7 @@ keith/swift.vim
 kien/rainbow_parentheses.vim
 knubie/vim-kitty-navigator
 konfekt/fastfold
+konfekt/vim-DetectSpellLang
 kristijanhusak/defx-git
 kristijanhusak/defx-icons
 kristijanhusak/deoplete-phpactor
@@ -254,6 +257,7 @@ kristijanhusak/vim-hybrid-material
 kshenoy/vim-signature
 kyazdani42/nvim-tree.lua
 kyazdani42/nvim-web-devicons
+lambdalisue/fern.vim
 lambdalisue/vim-gista
 lambdalisue/vim-manpager
 lambdalisue/vim-pager
@@ -398,7 +402,7 @@ nvim-treesitter/nvim-treesitter-textobjects
 nvim-treesitter/playground
 ocaml/vim-ocaml
 octol/vim-cpp-enhanced-highlight
-Olical/conjure
+Olical/conjure@main
 OrangeT/vim-csharp
 osyo-manga/shabadou.vim
 osyo-manga/vim-anzu
@@ -496,6 +500,7 @@ Shougo/vimproc.vim
 Shougo/vimshell.vim
 shumphrey/fugitive-gitlab.vim
 sickill/vim-pasta
+SidOfc/mkdx
 simnalamburt/vim-mundo
 SirVer/ultisnips
 sjl/gundo.vim
@@ -505,6 +510,7 @@ slashmili/alchemist.vim
 sodapopcan/vim-twiggy
 solarnz/arcanist.vim
 sonph/onehalf
+srcery-colors/srcery-vim
 steelsojka/completion-buffers
 stefandtw/quickfix-reflector.vim
 stephpy/vim-yaml
diff --git a/pkgs/os-specific/darwin/apple-source-releases/libiconv/default.nix b/pkgs/os-specific/darwin/apple-source-releases/libiconv/default.nix
index 0532c88b66b..72ef086f599 100644
--- a/pkgs/os-specific/darwin/apple-source-releases/libiconv/default.nix
+++ b/pkgs/os-specific/darwin/apple-source-releases/libiconv/default.nix
@@ -1,6 +1,6 @@
 { stdenv, appleDerivation, lib
-, enableStatic ? stdenv.targetPlatform.isiOS
-, enableShared ? !stdenv.targetPlatform.isiOS
+, enableStatic ? stdenv.hostPlatform.isStatic
+, enableShared ? !stdenv.hostPlatform.isStatic
 }:
 
 appleDerivation {
diff --git a/pkgs/os-specific/linux/alsa-lib/default.nix b/pkgs/os-specific/linux/alsa-lib/default.nix
index 3c5427340ba..b1d85f2674c 100644
--- a/pkgs/os-specific/linux/alsa-lib/default.nix
+++ b/pkgs/os-specific/linux/alsa-lib/default.nix
@@ -1,11 +1,12 @@
 { stdenv, fetchurl, alsa-ucm-conf, alsa-topology-conf }:
 
 stdenv.mkDerivation rec {
-  name = "alsa-lib-1.2.3";
+  pname = "alsa-lib";
+  version = "1.2.4";
 
   src = fetchurl {
-    url = "mirror://alsa/lib/${name}.tar.bz2";
-    sha256 = "13k7dx1g749z74rz71hs5j8z0pqdjgx7l69pn0vsy7jizhi0kw02";
+    url = "mirror://alsa/lib/${pname}-${version}.tar.bz2";
+    sha256 = "sha256-91VL4aVs3/RotY/BwpuVtkhkxZADjdMJx6l4xxFpCPc=";
   };
 
   patches = [
diff --git a/pkgs/os-specific/linux/alsa-plugins/default.nix b/pkgs/os-specific/linux/alsa-plugins/default.nix
index a69d86c5c4d..54d7ce6222a 100644
--- a/pkgs/os-specific/linux/alsa-plugins/default.nix
+++ b/pkgs/os-specific/linux/alsa-plugins/default.nix
@@ -15,13 +15,14 @@ stdenv.mkDerivation rec {
   buildInputs =
     [ alsaLib libogg ]
     ++ lib.optional (libpulseaudio != null) libpulseaudio
-    ++ lib.optional (libjack2 != null) libjack2;
+    # https://github.com/NixOS/nixpkgs/issues/96548
+    ++ lib.optional (libjack2 != null && (stdenv.buildPlatform == stdenv.hostPlatform)) libjack2;
 
   meta = with lib; {
     description = "Various plugins for ALSA";
     homepage = "http://alsa-project.org/";
     license = licenses.lgpl21;
-    maintainers = [maintainers.marcweber];
+    maintainers = [ maintainers.marcweber ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/os-specific/linux/anbox/default.nix b/pkgs/os-specific/linux/anbox/default.nix
index 5f8ca7ac46f..cf7395788b0 100644
--- a/pkgs/os-specific/linux/anbox/default.nix
+++ b/pkgs/os-specific/linux/anbox/default.nix
@@ -1,24 +1,28 @@
 { stdenv, fetchFromGitHub, fetchurl
-, cmake, pkgconfig, dbus, makeWrapper
-, gtest
+, cmake, pkg-config, dbus, makeWrapper
 , boost
+, elfutils # for libdw
+, git
+, glib
+, glm
+, gtest
+, libbfd
 , libcap
-, systemd
-, mesa
+, libdwarf
 , libGL
 , libglvnd
-, glib
-, git
-, SDL2
-, SDL2_image
+, lxc
+, mesa
 , properties-cpp
 , protobuf
 , protobufc
-, python
-, lxc
+, python3
+, runtimeShell
+, SDL2
+, SDL2_image
+, systemd
 , writeText
 , writeScript
-, runtimeShell
 }:
 
 let
@@ -45,13 +49,14 @@ in
 
 stdenv.mkDerivation rec {
   pname = "anbox";
-  version = "unstable-2019-11-15";
+  version = "unstable-2020-11-29";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
-    rev = "0a49ae08f76de7f886a3dbed4422711c2fa39d10";
-    sha256 = "09l56nv9cnyhykclfmvam6bkcxlamwbql6nrz9n022553w92hkjf";
+    rev = "6c10125a7f13908d2cbe56d2d9ab09872755f265";
+    sha256 = "00bqssh4zcs0jj6w07b91719xkrpdw75vpcplwrvlhwsvl55f901";
+    fetchSubmodules = true;
   };
 
   nativeBuildInputs = [
@@ -59,13 +64,27 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    cmake pkgconfig dbus boost libcap gtest systemd mesa glib
-    SDL2 SDL2_image protobuf protobufc properties-cpp lxc python
+    boost
+    cmake
+    dbus
+    elfutils # libdw
+    glib
+    glm
+    gtest
+    libbfd
+    libcap
+    libdwarf
     libGL
+    lxc
+    mesa
+    pkg-config
+    properties-cpp
+    protobuf protobufc
+    python3
+    SDL2 SDL2_image
+    systemd
   ];
 
-  NIX_CFLAGS_COMPILE = "-Wno-error=missing-field-initializers";
-
   patchPhase = ''
     patchShebangs scripts
 
diff --git a/pkgs/os-specific/linux/apparmor/default.nix b/pkgs/os-specific/linux/apparmor/default.nix
index 64fa92be865..3ce310acf23 100644
--- a/pkgs/os-specific/linux/apparmor/default.nix
+++ b/pkgs/os-specific/linux/apparmor/default.nix
@@ -14,7 +14,7 @@
 
 let
   apparmor-series = "2.13";
-  apparmor-patchver = "5";
+  apparmor-patchver = "6";
   apparmor-version = apparmor-series + "." + apparmor-patchver;
 
   apparmor-meta = component: with stdenv.lib; {
@@ -27,7 +27,7 @@ let
 
   apparmor-sources = fetchurl {
     url = "https://launchpad.net/apparmor/${apparmor-series}/${apparmor-version}/+download/apparmor-${apparmor-version}.tar.gz";
-    sha256 = "05x7r99k00r97v1cq2f711lv6yqzhbl8zp1i1c7kxra4v0a2lzk3";
+    sha256 = "13xshy7905d9q9n8d8i0jmdi9m36wr525g4wlsp8k21n7yvvh9j4";
   };
 
   prePatchCommon = ''
diff --git a/pkgs/os-specific/linux/atop/default.nix b/pkgs/os-specific/linux/atop/default.nix
index 0d8392cbcd8..7557497b959 100644
--- a/pkgs/os-specific/linux/atop/default.nix
+++ b/pkgs/os-specific/linux/atop/default.nix
@@ -1,22 +1,24 @@
 {stdenv, fetchurl, zlib, ncurses}:
 
 stdenv.mkDerivation rec {
-  version = "2.4.0";
   pname = "atop";
+  version = "2.6.0";
 
   src = fetchurl {
     url = "https://www.atoptool.nl/download/atop-${version}.tar.gz";
-    sha256 = "0s9xlxlzz688a80zxld840zkrmzw998rdkkg6yc7ssq8fw50275y";
+    sha256 = "nsLKOlcWkvfvqglfmaUQZDK8txzCLNbElZfvBIEFj3I=";
   };
 
   buildInputs = [zlib ncurses];
 
   makeFlags = [
-    ''SCRPATH=$out/etc/atop''
-    ''LOGPATH=/var/log/atop''
-    ''INIPATH=$out/etc/rc.d/init.d''
-    ''CRNPATH=$out/etc/cron.d''
-    ''ROTPATH=$out/etc/logrotate.d''
+    "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"
   ];
 
   preConfigure = ''
@@ -28,9 +30,9 @@ stdenv.mkDerivation rec {
     sed -e 's/chmod 04711/chmod 0711/g' -i Makefile
   '';
 
+  installTargets = [ "systemdinstall" ];
   preInstall = ''
     mkdir -p "$out"/{bin,sbin}
-    make systemdinstall $makeFlags
   '';
 
   meta = with stdenv.lib; {
@@ -42,7 +44,7 @@ stdenv.mkDerivation rec {
       Atop is an ASCII full-screen performance monitor that is capable of reporting the activity of all processes (even if processes have finished during the interval), daily logging of system and process activity for long-term analysis, highlighting overloaded system resources by using colors, etc. At regular intervals, it shows system-level activity related to the CPU, memory, swap, disks and network layers, and for every active process it shows the CPU utilization, memory growth, disk utilization, priority, username, state, and exit code.
     '';
     inherit version;
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     downloadPage = "http://atoptool.nl/downloadatop.php";
   };
 }
diff --git a/pkgs/os-specific/linux/broadcom-sta/default.nix b/pkgs/os-specific/linux/broadcom-sta/default.nix
index ecaa3896044..8e2271b9f7f 100644
--- a/pkgs/os-specific/linux/broadcom-sta/default.nix
+++ b/pkgs/os-specific/linux/broadcom-sta/default.nix
@@ -37,6 +37,8 @@ stdenv.mkDerivation {
     ./linux-5.1.patch
     # source: https://salsa.debian.org/Herrie82-guest/broadcom-sta/-/commit/247307926e5540ad574a17c062c8da76990d056f
     ./linux-5.6.patch
+    # source: https://gist.github.com/joanbm/5c640ac074d27fd1d82c74a5b67a1290
+    ./linux-5.9.patch
     ./null-pointer-fix.patch
     ./gcc.patch
   ];
diff --git a/pkgs/os-specific/linux/broadcom-sta/linux-5.9.patch b/pkgs/os-specific/linux/broadcom-sta/linux-5.9.patch
new file mode 100644
index 00000000000..2a4e6fa89cc
--- /dev/null
+++ b/pkgs/os-specific/linux/broadcom-sta/linux-5.9.patch
@@ -0,0 +1,184 @@
+diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c
+index 4b3298f..c45ad48 100644
+--- a/src/wl/sys/wl_cfg80211_hybrid.c
++++ b/src/wl/sys/wl_cfg80211_hybrid.c
+@@ -41,6 +41,7 @@
+ #include <wlioctl.h>
+ #include <proto/802.11.h>
+ #include <wl_cfg80211_hybrid.h>
++#include <wl_linux.h>
+ 
+ #define EVENT_TYPE(e) dtoh32((e)->event_type)
+ #define EVENT_FLAGS(e) dtoh16((e)->flags)
+@@ -442,30 +443,7 @@ static void key_endian_to_host(struct wl_wsec_key *key)
+ static s32
+ wl_dev_ioctl(struct net_device *dev, u32 cmd, void *arg, u32 len)
+ {
+-	struct ifreq ifr;
+-	struct wl_ioctl ioc;
+-	mm_segment_t fs;
+-	s32 err = 0;
+-
+-	BUG_ON(len < sizeof(int));
+-
+-	memset(&ioc, 0, sizeof(ioc));
+-	ioc.cmd = cmd;
+-	ioc.buf = arg;
+-	ioc.len = len;
+-	strcpy(ifr.ifr_name, dev->name);
+-	ifr.ifr_data = (caddr_t)&ioc;
+-
+-	fs = get_fs();
+-	set_fs(KERNEL_DS);
+-#if defined(WL_USE_NETDEV_OPS)
+-	err = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, SIOCDEVPRIVATE);
+-#else
+-	err = dev->do_ioctl(dev, &ifr, SIOCDEVPRIVATE);
+-#endif
+-	set_fs(fs);
+-
+-	return err;
++	return wlc_ioctl_internal(dev, cmd, arg, len);
+ }
+ 
+ static s32
+diff --git a/src/wl/sys/wl_iw.c b/src/wl/sys/wl_iw.c
+index 9c3c74e..e346b15 100644
+--- a/src/wl/sys/wl_iw.c
++++ b/src/wl/sys/wl_iw.c
+@@ -37,6 +37,7 @@ typedef const struct si_pub	si_t;
+ 
+ #include <wl_dbg.h>
+ #include <wl_iw.h>
++#include <wl_linux.h>
+ 
+ extern bool wl_iw_conn_status_str(uint32 event_type, uint32 status,
+ 	uint32 reason, char* stringBuf, uint buflen);
+@@ -103,29 +104,7 @@ dev_wlc_ioctl(
+ 	int len
+ )
+ {
+-	struct ifreq ifr;
+-	wl_ioctl_t ioc;
+-	mm_segment_t fs;
+-	int ret;
+-
+-	memset(&ioc, 0, sizeof(ioc));
+-	ioc.cmd = cmd;
+-	ioc.buf = arg;
+-	ioc.len = len;
+-
+-	strcpy(ifr.ifr_name, dev->name);
+-	ifr.ifr_data = (caddr_t) &ioc;
+-
+-	fs = get_fs();
+-	set_fs(KERNEL_DS);
+-#if defined(WL_USE_NETDEV_OPS)
+-	ret = dev->netdev_ops->ndo_do_ioctl(dev, &ifr, SIOCDEVPRIVATE);
+-#else
+-	ret = dev->do_ioctl(dev, &ifr, SIOCDEVPRIVATE);
+-#endif
+-	set_fs(fs);
+-
+-	return ret;
++	return wlc_ioctl_internal(dev, cmd, arg, len);
+ }
+ 
+ static int
+diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c
+index c990c70..5bb9480 100644
+--- a/src/wl/sys/wl_linux.c
++++ b/src/wl/sys/wl_linux.c
+@@ -1664,10 +1664,7 @@ wl_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
+ 		goto done2;
+ 	}
+ 
+-	if (segment_eq(get_fs(), KERNEL_DS))
+-		buf = ioc.buf;
+-
+-	else if (ioc.buf) {
++	if (ioc.buf) {
+ 		if (!(buf = (void *) MALLOC(wl->osh, MAX(ioc.len, WLC_IOCTL_MAXLEN)))) {
+ 			bcmerror = BCME_NORESOURCE;
+ 			goto done2;
+@@ -1688,7 +1685,7 @@ wl_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
+ 	WL_UNLOCK(wl);
+ 
+ done1:
+-	if (ioc.buf && (ioc.buf != buf)) {
++	if (ioc.buf) {
+ 		if (copy_to_user(ioc.buf, buf, ioc.len))
+ 			bcmerror = BCME_BADADDR;
+ 		MFREE(wl->osh, buf, MAX(ioc.len, WLC_IOCTL_MAXLEN));
+@@ -1701,6 +1698,39 @@ done2:
+ 	return (OSL_ERROR(bcmerror));
+ }
+ 
++int
++wlc_ioctl_internal(struct net_device *dev, int cmd, void *buf, int len)
++{
++	wl_info_t *wl;
++	wl_if_t *wlif;
++	int bcmerror;
++
++	if (!dev)
++		return -ENETDOWN;
++
++	wl = WL_INFO(dev);
++	wlif = WL_DEV_IF(dev);
++	if (wlif == NULL || wl == NULL || wl->dev == NULL)
++		return -ENETDOWN;
++
++	bcmerror = 0;
++
++	WL_TRACE(("wl%d: wlc_ioctl_internal: cmd 0x%x\n", wl->pub->unit, cmd));
++
++	WL_LOCK(wl);
++	if (!capable(CAP_NET_ADMIN)) {
++		bcmerror = BCME_EPERM;
++	} else {
++		bcmerror = wlc_ioctl(wl->wlc, cmd, buf, len, wlif->wlcif);
++	}
++	WL_UNLOCK(wl);
++
++	ASSERT(VALID_BCMERROR(bcmerror));
++	if (bcmerror != 0)
++		wl->pub->bcmerror = bcmerror;
++	return (OSL_ERROR(bcmerror));
++}
++
+ static struct net_device_stats*
+ wl_get_stats(struct net_device *dev)
+ {
+diff --git a/src/wl/sys/wl_linux.h b/src/wl/sys/wl_linux.h
+index 5b1048e..c8c1f41 100644
+--- a/src/wl/sys/wl_linux.h
++++ b/src/wl/sys/wl_linux.h
+@@ -22,6 +22,7 @@
+ #define _wl_linux_h_
+ 
+ #include <wlc_types.h>
++#include <wlc_pub.h>
+ 
+ typedef struct wl_timer {
+ 	struct timer_list 	timer;
+@@ -187,6 +188,7 @@ extern irqreturn_t wl_isr(int irq, void *dev_id, struct pt_regs *ptregs);
+ extern int __devinit wl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent);
+ extern void wl_free(wl_info_t *wl);
+ extern int  wl_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd);
++extern int wlc_ioctl_internal(struct net_device *dev, int cmd, void *buf, int len);
+ extern struct net_device * wl_netdev_get(wl_info_t *wl);
+ 
+ #endif 
+diff --git a/src/wl/sys/wlc_pub.h b/src/wl/sys/wlc_pub.h
+index 53a98b8..2b5a029 100644
+--- a/src/wl/sys/wlc_pub.h
++++ b/src/wl/sys/wlc_pub.h
+@@ -24,6 +24,7 @@
+ 
+ #include <wlc_types.h>
+ #include <wlc_utils.h>
++#include <siutils.h>
+ #include "proto/802.11.h"
+ #include "proto/bcmevent.h"
+ 
diff --git a/pkgs/os-specific/linux/btfs/default.nix b/pkgs/os-specific/linux/btfs/default.nix
index 762baa58711..6d919ce57d4 100644
--- a/pkgs/os-specific/linux/btfs/default.nix
+++ b/pkgs/os-specific/linux/btfs/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, autoreconfHook, pkgconfig
-, python3, boost, fuse, libtorrentRasterbar, curl }:
+, python3, boost, fuse, libtorrent-rasterbar, curl }:
 
 stdenv.mkDerivation rec {
   pname = "btfs";
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
   buildInputs = [
-    boost fuse libtorrentRasterbar curl python3
+    boost fuse libtorrent-rasterbar curl python3
   ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/os-specific/linux/busybox/0001-Fix-build-with-glibc-2.31.patch b/pkgs/os-specific/linux/busybox/0001-Fix-build-with-glibc-2.31.patch
deleted file mode 100644
index 029333b57e4..00000000000
--- a/pkgs/os-specific/linux/busybox/0001-Fix-build-with-glibc-2.31.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From c29b637b55c93214993f40b1a223233d40b8a7d6 Mon Sep 17 00:00:00 2001
-From: Maximilian Bosch <maximilian@mbosch.me>
-Date: Wed, 19 Feb 2020 22:32:28 +0100
-Subject: [PATCH] Fix build with glibc 2.31
-
-This is derived from the corresponding upstream patch[1], however this
-one doesn't apply cleanly on busybox-1.31.1, so I rebased the patch
-locally and added it directly to nixpkgs.
-
-[1] https://git.busybox.net/busybox/patch/?id=d3539be8f27b8cbfdfee460fe08299158f08bcd9
----
- coreutils/date.c         | 2 +-
- libbb/missing_syscalls.c | 8 --------
- util-linux/rdate.c       | 8 ++++++--
- 3 files changed, 7 insertions(+), 11 deletions(-)
-
-diff --git a/coreutils/date.c b/coreutils/date.c
-index 3414d38..931b7f9 100644
---- a/coreutils/date.c
-+++ b/coreutils/date.c
-@@ -303,7 +303,7 @@ int date_main(int argc UNUSED_PARAM, char **argv)
- 		ts.tv_sec = validate_tm_time(date_str, &tm_time);
- 
- 		/* if setting time, set it */
--		if ((opt & OPT_SET) && stime(&ts.tv_sec) < 0) {
-+		if ((opt & OPT_SET) && clock_settime(CLOCK_REALTIME, &ts) < 0) {
- 			bb_perror_msg("can't set date");
- 		}
- 	}
-diff --git a/libbb/missing_syscalls.c b/libbb/missing_syscalls.c
-index 87cf59b..dc40d91 100644
---- a/libbb/missing_syscalls.c
-+++ b/libbb/missing_syscalls.c
-@@ -15,14 +15,6 @@ pid_t getsid(pid_t pid)
- 	return syscall(__NR_getsid, pid);
- }
- 
--int stime(const time_t *t)
--{
--	struct timeval tv;
--	tv.tv_sec = *t;
--	tv.tv_usec = 0;
--	return settimeofday(&tv, NULL);
--}
--
- int sethostname(const char *name, size_t len)
- {
- 	return syscall(__NR_sethostname, name, len);
-diff --git a/util-linux/rdate.c b/util-linux/rdate.c
-index 70f829e..878375d 100644
---- a/util-linux/rdate.c
-+++ b/util-linux/rdate.c
-@@ -95,9 +95,13 @@ int rdate_main(int argc UNUSED_PARAM, char **argv)
- 	if (!(flags & 2)) { /* no -p (-s may be present) */
- 		if (time(NULL) == remote_time)
- 			bb_error_msg("current time matches remote time");
--		else
--			if (stime(&remote_time) < 0)
-+		else {
-+			struct timespec ts;
-+			ts.tv_sec = remote_time;
-+			ts.tv_nsec = 0;
-+			if (clock_settime(CLOCK_REALTIME, &ts) < 0)
- 				bb_perror_msg_and_die("can't set time of day");
-+		}
- 	}
- 
- 	if (flags != 1) /* not lone -s */
--- 
-2.25.0
-
diff --git a/pkgs/os-specific/linux/busybox/0001-wget-implement-TLS-verification-with-ENABLE_FEATURE_.patch b/pkgs/os-specific/linux/busybox/0001-wget-implement-TLS-verification-with-ENABLE_FEATURE_.patch
deleted file mode 100644
index d11cd670d5e..00000000000
--- a/pkgs/os-specific/linux/busybox/0001-wget-implement-TLS-verification-with-ENABLE_FEATURE_.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From 45fa3f18adf57ef9d743038743d9c90573aeeb91 Mon Sep 17 00:00:00 2001
-From: Dimitri John Ledkov <xnox@ubuntu.com>
-Date: Tue, 19 May 2020 18:20:39 +0100
-Subject: [PATCH] wget: implement TLS verification with
- ENABLE_FEATURE_WGET_OPENSSL
-
-When ENABLE_FEATURE_WGET_OPENSSL is enabled, correctly implement TLS
-verification by default. And only ignore verification errors, if
---no-check-certificate was passed.
-
-Also note, that previously OPENSSL implementation did not implement
-TLS verification, nor printed any warning messages that verification
-was not performed.
-
-Bug-Ubuntu: https://bugs.launchpad.net/bugs/1879533
-
-CVE-2018-1000500
-
-Signed-off-by: Dimitri John Ledkov <xnox@ubuntu.com>
-Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
----
- networking/wget.c | 20 +++++++++++++++++---
- 1 file changed, 17 insertions(+), 3 deletions(-)
-
-diff --git a/networking/wget.c b/networking/wget.c
-index f2fc9e215..6a8c08324 100644
---- a/networking/wget.c
-+++ b/networking/wget.c
-@@ -91,6 +91,9 @@
- //config:	patches, but do want to waste bandwidth expaining how wrong
- //config:	it is, you will be ignored.
- //config:
-+//config:	FEATURE_WGET_OPENSSL does implement TLS verification
-+//config:	using the certificates available to OpenSSL.
-+//config:
- //config:config FEATURE_WGET_OPENSSL
- //config:	bool "Try to connect to HTTPS using openssl"
- //config:	default y
-@@ -115,6 +118,9 @@
- //config:	If openssl can't be executed, internal TLS code will be used
- //config:	(if you enabled it); if openssl can be executed but fails later,
- //config:	wget can't detect this, and download will fail.
-+//config:
-+//config:	By default TLS verification is performed, unless
-+//config:	--no-check-certificate option is passed.
- 
- //applet:IF_WGET(APPLET(wget, BB_DIR_USR_BIN, BB_SUID_DROP))
- 
-@@ -124,8 +130,11 @@
- //usage:	IF_FEATURE_WGET_LONG_OPTIONS(
- //usage:       "[-c|--continue] [--spider] [-q|--quiet] [-O|--output-document FILE]\n"
- //usage:       "	[-o|--output-file FILE] [--header 'header: value'] [-Y|--proxy on/off]\n"
-+//usage:	IF_FEATURE_WGET_OPENSSL(
-+//usage:       "	[--no-check-certificate]\n"
-+//usage:	)
- /* Since we ignore these opts, we don't show them in --help */
--/* //usage:    "	[--no-check-certificate] [--no-cache] [--passive-ftp] [-t TRIES]" */
-+/* //usage:    "	[--no-cache] [--passive-ftp] [-t TRIES]" */
- /* //usage:    "	[-nv] [-nc] [-nH] [-np]" */
- //usage:       "	[-P DIR] [-S|--server-response] [-U|--user-agent AGENT]" IF_FEATURE_WGET_TIMEOUT(" [-T SEC]") " URL..."
- //usage:	)
-@@ -137,7 +146,9 @@
- //usage:       "Retrieve files via HTTP or FTP\n"
- //usage:	IF_FEATURE_WGET_LONG_OPTIONS(
- //usage:     "\n	--spider	Only check URL existence: $? is 0 if exists"
--///////:     "\n	--no-check-certificate	Don't validate the server's certificate"
-+//usage:	IF_FEATURE_WGET_OPENSSL(
-+//usage:     "\n	--no-check-certificate	Don't validate the server's certificate"
-+//usage:	)
- //usage:	)
- //usage:     "\n	-c		Continue retrieval of aborted transfer"
- //usage:     "\n	-q		Quiet"
-@@ -662,7 +673,7 @@ static int spawn_https_helper_openssl(const char *host, unsigned port)
- 	pid = xvfork();
- 	if (pid == 0) {
- 		/* Child */
--		char *argv[8];
-+		char *argv[9];
- 
- 		close(sp[0]);
- 		xmove_fd(sp[1], 0);
-@@ -689,6 +700,9 @@ static int spawn_https_helper_openssl(const char *host, unsigned port)
- 			argv[5] = (char*)"-servername";
- 			argv[6] = (char*)servername;
- 		}
-+		if (!(option_mask32 & WGET_OPT_NO_CHECK_CERT)) {
-+			argv[7] = (char*)"-verify_return_error";
-+		}
- 
- 		BB_EXECVP(argv[0], argv);
- 		xmove_fd(3, 2);
--- 
-2.28.0
-
diff --git a/pkgs/os-specific/linux/busybox/default.nix b/pkgs/os-specific/linux/busybox/default.nix
index 599754129b4..99909e6262e 100644
--- a/pkgs/os-specific/linux/busybox/default.nix
+++ b/pkgs/os-specific/linux/busybox/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, buildPackages, fetchurl, fetchFromGitLab
-, enableStatic ? false
+, enableStatic ? stdenv.hostPlatform.isStatic
 , enableMinimal ? false
 # Allow forcing musl without switching stdenv itself, e.g. for our bootstrapping:
 # nix build -f pkgs/top-level/release.nix stdenvBootstrapTools.x86_64-linux.dist
@@ -48,17 +48,14 @@ let
 in
 
 stdenv.mkDerivation rec {
-  # TODO: When bumping this version, please validate whether the wget patch is present upstream
-  # and remove the patch if it is. The patch should be present upstream for all versions 1.32.0+.
-  # See NixOs/nixpkgs#94722 for context.
-  name = "busybox-1.31.1";
+  name = "busybox-1.32.0";
 
   # 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/${name}.tar.bz2";
-    sha256 = "1659aabzp8w4hayr4z8kcpbk2z1q2wqhw7i1yb0l72b45ykl1yfh";
+    sha256 = "w12H8dBLKxU9M8J1wmMuQNOIqI8ZqecXJ+C7v/Uf5ok=";
   };
 
   hardeningDisable = [ "format" "pie" ]
@@ -66,8 +63,6 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./busybox-in-store.patch
-    ./0001-Fix-build-with-glibc-2.31.patch
-    ./0001-wget-implement-TLS-verification-with-ENABLE_FEATURE_.patch
   ] ++ stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) ./clang-cross.patch;
 
   postPatch = "patchShebangs .";
diff --git a/pkgs/os-specific/linux/cpuset/default.nix b/pkgs/os-specific/linux/cpuset/default.nix
index 90352a944d5..9e775de62f5 100644
--- a/pkgs/os-specific/linux/cpuset/default.nix
+++ b/pkgs/os-specific/linux/cpuset/default.nix
@@ -1,27 +1,44 @@
 { stdenv
 , fetchFromGitHub
-, python2Packages
+, fetchpatch
+, pythonPackages
 }:
 
-python2Packages.buildPythonApplication rec {
+pythonPackages.buildPythonApplication rec {
   pname = "cpuset";
-  version = "1.5.8";
+  version = "1.6";
 
-  propagatedBuildInputs = [ ];
+  propagatedBuildInputs = with pythonPackages; [
+    configparser
+    future
+  ];
+
+  # https://github.com/lpechacek/cpuset/pull/36
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/MawKKe/cpuset/commit/a4b6b275d0a43d2794ab9e82922d3431aeea9903.patch";
+      sha256 = "1mi1xrql81iczl67s4dk2rm9r1mk36qhsa19wn7zgryf95krsix2";
+    })
+  ];
 
   makeFlags = [ "prefix=$(out)" ];
 
   src = fetchFromGitHub {
-    owner = "wykurz";
+    owner = "lpechacek";
     repo = "cpuset";
     rev = "v${version}";
-    sha256 = "19fl2sn470yrnm2q508giggjwy5b6r2gd94gvwfbdlhf0r9dsbbm";
+    sha256 = "0ig0ml2zd5542d0989872vmy7cs3qg7nxwa93k42bdkm50amhar4";
   };
 
+  checkPhase = ''
+    cd t
+    make
+  '';
+
   meta = with stdenv.lib; {
     description = "Python application that forms a wrapper around the standard Linux filesystem calls to make using the cpusets facilities in the Linux kernel easier";
-    homepage    = "https://github.com/wykurz/cpuset";
+    homepage    = "https://github.com/lpechacek/cpuset";
     license     = licenses.gpl2;
-    maintainers = with maintainers; [ wykurz ];
+    maintainers = with maintainers; [ thiagokokada wykurz ];
   };
 }
diff --git a/pkgs/os-specific/linux/displaylink/99-displaylink.rules b/pkgs/os-specific/linux/displaylink/99-displaylink.rules
new file mode 100644
index 00000000000..ceeb658a415
--- /dev/null
+++ b/pkgs/os-specific/linux/displaylink/99-displaylink.rules
@@ -0,0 +1 @@
+ACTION=="add", SUBSYSTEM=="usb", DRIVERS=="usb", ATTRS{idVendor}=="17e9", ATTR{bInterfaceClass}=="ff", ATTR{bInterfaceProtocol}=="03", TAG+="systemd", ENV{SYSTEMD_WANTS}="dlm.service"
diff --git a/pkgs/os-specific/linux/displaylink/default.nix b/pkgs/os-specific/linux/displaylink/default.nix
index dcdafb98d70..5e60d68bc2b 100644
--- a/pkgs/os-specific/linux/displaylink/default.nix
+++ b/pkgs/os-specific/linux/displaylink/default.nix
@@ -1,6 +1,14 @@
-{ stdenv, lib, unzip, util-linux,
-  libusb1, evdi, systemd, makeWrapper, requireFile, substituteAll }:
-
+{ stdenv
+, lib
+, unzip
+, util-linux
+, libusb1
+, evdi
+, systemd
+, makeWrapper
+, requireFile
+, substituteAll
+}:
 let
   arch =
     if stdenv.hostPlatform.system == "x86_64-linux" then "x64"
@@ -9,7 +17,8 @@ let
   bins = "${arch}-ubuntu-1604";
   libPath = lib.makeLibraryPath [ stdenv.cc.cc util-linux libusb1 evdi ];
 
-in stdenv.mkDerivation rec {
+in
+stdenv.mkDerivation rec {
   pname = "displaylink";
   version = "5.3.1.34";
 
@@ -39,20 +48,11 @@ in stdenv.mkDerivation rec {
     ./displaylink-driver-${version}.run --target . --noexec --nodiskspace
   '';
 
-  patches = [ (substituteAll {
-    src = ./udev-installer.patch;
-    inherit systemd;
-  })];
-
   installPhase = ''
-    sed -i "s,/opt/displaylink/udev.sh,$out/lib/udev/displaylink.sh,g" udev-installer.sh
-    ( source udev-installer.sh
-      mkdir -p $out/lib/udev/rules.d
-      main systemd "$out/lib/udev/rules.d/99-displaylink.rules" "$out/lib/udev/displaylink.sh"
-    )
-
     install -Dt $out/lib/displaylink *.spkg
     install -Dm755 ${bins}/DisplayLinkManager $out/bin/DisplayLinkManager
+    mkdir -p $out/lib/udev/rules.d
+    cp ${./99-displaylink.rules} $out/lib/udev/rules.d/99-displaylink.rules
     patchelf \
       --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \
       --set-rpath ${libPath} \
diff --git a/pkgs/os-specific/linux/displaylink/udev-installer.patch b/pkgs/os-specific/linux/displaylink/udev-installer.patch
deleted file mode 100644
index 880c073fbcf..00000000000
--- a/pkgs/os-specific/linux/displaylink/udev-installer.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/udev-installer.sh	2018-12-09 12:05:53.772318942 +0100
-+++ b/udev-installer.sh	2018-12-09 12:06:19.939947629 +0100
-@@ -21,12 +21,12 @@
-   cat <<'EOF'
- start_service()
- {
--  systemctl start displaylink-driver
-+  /run/current-system/systemd/bin/systemctl start --no-block dlm
- }
- 
- stop_service()
- {
--  systemctl stop displaylink-driver
-+  /run/current-system/systemd/bin/systemctl stop dlm
- }
- 
- EOF
-
diff --git a/pkgs/os-specific/linux/ell/0001-unit-test-dbus-pick-up-dbus-daemon-from-PATH.patch b/pkgs/os-specific/linux/ell/0001-unit-test-dbus-pick-up-dbus-daemon-from-PATH.patch
new file mode 100644
index 00000000000..c2d844edecd
--- /dev/null
+++ b/pkgs/os-specific/linux/ell/0001-unit-test-dbus-pick-up-dbus-daemon-from-PATH.patch
@@ -0,0 +1,84 @@
+From 55d499f4cd5667c04c21f7201d7f10484e187907 Mon Sep 17 00:00:00 2001
+From: Florian Klink <flokli@flokli.de>
+Date: Sun, 27 Dec 2020 13:03:12 +0100
+Subject: [PATCH] unit/test-dbus: pick up dbus-daemon from $PATH
+
+This allows running the unit tests in environments where `dbus-daemon`
+isn't in /usr/bin, but in $PATH.
+
+Signed-off-by: Florian Klink <flokli@flokli.de>
+---
+ unit/test-dbus-message-fds.c | 4 ++--
+ unit/test-dbus-properties.c  | 4 ++--
+ unit/test-dbus.c             | 4 ++--
+ 3 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/unit/test-dbus-message-fds.c b/unit/test-dbus-message-fds.c
+index 6f68bae..4b5662e 100644
+--- a/unit/test-dbus-message-fds.c
++++ b/unit/test-dbus-message-fds.c
+@@ -51,7 +51,7 @@ static bool start_dbus_daemon(void)
+ 	char *prg_envp[1];
+ 	pid_t pid;
+ 
+-	prg_argv[0] = "/usr/bin/dbus-daemon";
++	prg_argv[0] = "dbus-daemon";
+ 	prg_argv[1] = "--nopidfile";
+ 	prg_argv[2] = "--nofork";
+ 	prg_argv[3] = "--config-file=" UNITDIR "dbus.conf";
+@@ -68,7 +68,7 @@ static bool start_dbus_daemon(void)
+ 	}
+ 
+ 	if (pid == 0) {
+-		execve(prg_argv[0], prg_argv, prg_envp);
++		execvpe(prg_argv[0], prg_argv, prg_envp);
+ 		exit(EXIT_SUCCESS);
+ 	}
+ 
+diff --git a/unit/test-dbus-properties.c b/unit/test-dbus-properties.c
+index b435062..049f0f4 100644
+--- a/unit/test-dbus-properties.c
++++ b/unit/test-dbus-properties.c
+@@ -49,7 +49,7 @@ static bool start_dbus_daemon(void)
+ 	char *prg_envp[1];
+ 	pid_t pid;
+ 
+-	prg_argv[0] = "/usr/bin/dbus-daemon";
++	prg_argv[0] = "dbus-daemon";
+ 	prg_argv[1] = "--nopidfile";
+ 	prg_argv[2] = "--nofork";
+ 	prg_argv[3] = "--config-file=" UNITDIR "dbus.conf";
+@@ -66,7 +66,7 @@ static bool start_dbus_daemon(void)
+ 	}
+ 
+ 	if (pid == 0) {
+-		execve(prg_argv[0], prg_argv, prg_envp);
++		execvpe(prg_argv[0], prg_argv, prg_envp);
+ 		exit(EXIT_SUCCESS);
+ 	}
+ 
+diff --git a/unit/test-dbus.c b/unit/test-dbus.c
+index 67f0a7b..582847e 100644
+--- a/unit/test-dbus.c
++++ b/unit/test-dbus.c
+@@ -45,7 +45,7 @@ static void start_dbus_daemon(void)
+ 	char *prg_envp[1];
+ 	pid_t pid;
+ 
+-	prg_argv[0] = "/usr/bin/dbus-daemon";
++	prg_argv[0] = "dbus-daemon";
+ 	prg_argv[1] = "--nopidfile";
+ 	prg_argv[2] = "--nofork";
+ 	prg_argv[3] = "--config-file=" UNITDIR "dbus.conf";
+@@ -62,7 +62,7 @@ static void start_dbus_daemon(void)
+ 	}
+ 
+ 	if (pid == 0) {
+-		execve(prg_argv[0], prg_argv, prg_envp);
++		execvpe(prg_argv[0], prg_argv, prg_envp);
+ 		exit(EXIT_SUCCESS);
+ 	}
+ 
+-- 
+2.29.2
+
diff --git a/pkgs/os-specific/linux/ell/default.nix b/pkgs/os-specific/linux/ell/default.nix
index 21f98889ca5..c6aed21cd8e 100644
--- a/pkgs/os-specific/linux/ell/default.nix
+++ b/pkgs/os-specific/linux/ell/default.nix
@@ -12,13 +12,14 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" ];
 
   src = fetchgit {
-     url = "https://git.kernel.org/pub/scm/libs/${pname}/${pname}.git";
-     rev = version;
-     sha256 = "16z7xwlrpx1bsr2y1rgxxxixzwc84cwn2g557iqxhwsxfzy6q3dk";
+    url = "https://git.kernel.org/pub/scm/libs/${pname}/${pname}.git";
+    rev = version;
+    sha256 = "16z7xwlrpx1bsr2y1rgxxxixzwc84cwn2g557iqxhwsxfzy6q3dk";
   };
 
   patches = [
-    ./fix-dbus-tests.patch
+    # Sent upstream in https://lists.01.org/hyperkitty/list/ell@lists.01.org/thread/SQEZAIS2LZXSXGTXOW3GTAM5ZPXRLTN4/
+    ./0001-unit-test-dbus-pick-up-dbus-daemon-from-PATH.patch
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/os-specific/linux/ell/fix-dbus-tests.patch b/pkgs/os-specific/linux/ell/fix-dbus-tests.patch
deleted file mode 100644
index b494ba8b43c..00000000000
--- a/pkgs/os-specific/linux/ell/fix-dbus-tests.patch
+++ /dev/null
@@ -1,65 +0,0 @@
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -140,6 +140,7 @@
- ell_libell_private_la_SOURCES = $(ell_libell_la_SOURCES)
- 
- AM_CFLAGS = -fvisibility=hidden -DUNITDIR=\""$(top_srcdir)/unit/"\" \
-+				-DDBUS_DAEMON=\""$(DBUS_DAEMONDIR)/dbus-daemon"\" \
- 				-DCERTDIR=\""$(top_builddir)/unit/"\"
- 
- pkgconfigdir = $(libdir)/pkgconfig
---- a/configure.ac
-+++ b/configure.ac
-@@ -14,6 +14,8 @@
- 
- AC_PREFIX_DEFAULT(/usr/local)
- 
-+PKG_PROG_PKG_CONFIG
-+
- COMPILER_FLAGS
- 
- AC_LANG_C
-@@ -131,6 +133,10 @@
- 	AC_CHECK_PROG(have_xxd, [xxd], [yes], [no])
- fi
- 
-+PKG_CHECK_MODULES(DBUS, dbus-1, dummy=yes,
-+			AC_MSG_ERROR(D-Bus is required for running tests))
-+PKG_CHECK_VAR(DBUS_DAEMONDIR, dbus-1, daemondir)
-+
- AM_CONDITIONAL(DBUS_TESTS, test "${little_endian}" = "yes")
- AM_CONDITIONAL(CERT_TESTS, test "${have_openssl}" = "yes")
- 
---- a/unit/test-dbus-message-fds.c
-+++ b/unit/test-dbus-message-fds.c
-@@ -51,7 +51,7 @@
- 	char *prg_envp[1];
- 	pid_t pid;
- 
--	prg_argv[0] = "/usr/bin/dbus-daemon";
-+	prg_argv[0] = DBUS_DAEMON;
- 	prg_argv[1] = "--nopidfile";
- 	prg_argv[2] = "--nofork";
- 	prg_argv[3] = "--config-file=" UNITDIR "dbus.conf";
---- a/unit/test-dbus-properties.c
-+++ b/unit/test-dbus-properties.c
-@@ -48,7 +48,7 @@
- 	char *prg_envp[1];
- 	pid_t pid;
- 
--	prg_argv[0] = "/usr/bin/dbus-daemon";
-+	prg_argv[0] = DBUS_DAEMON;
- 	prg_argv[1] = "--nopidfile";
- 	prg_argv[2] = "--nofork";
- 	prg_argv[3] = "--config-file=" UNITDIR "dbus.conf";
---- a/unit/test-dbus.c
-+++ b/unit/test-dbus.c
-@@ -45,7 +45,7 @@
- 	char *prg_envp[1];
- 	pid_t pid;
- 
--	prg_argv[0] = "/usr/bin/dbus-daemon";
-+	prg_argv[0] = DBUS_DAEMON;
- 	prg_argv[1] = "--nopidfile";
- 	prg_argv[2] = "--nofork";
- 	prg_argv[3] = "--config-file=" UNITDIR "dbus.conf";
diff --git a/pkgs/os-specific/linux/ena/default.nix b/pkgs/os-specific/linux/ena/default.nix
index b672dd17012..2f06e99b3e1 100644
--- a/pkgs/os-specific/linux/ena/default.nix
+++ b/pkgs/os-specific/linux/ena/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, kernel }:
 
 stdenv.mkDerivation rec {
-  version = "2.2.11";
+  version = "2.3.0";
   name = "ena-${version}-${kernel.version}";
 
   src = fetchFromGitHub {
     owner = "amzn";
     repo = "amzn-drivers";
     rev = "ena_linux_${version}";
-    sha256 = "06ajhs6byw3pj0skix6ppmdjsg1a3zan8yamnjqdgkxwliiszhrc";
+    sha256 = "sha256-ho6yKCgYo3p50leQUCmzNO/3wqzSzs27Eash3AWBaiE=";
   };
 
   hardeningDisable = [ "pic" ];
diff --git a/pkgs/os-specific/linux/erofs-utils/default.nix b/pkgs/os-specific/linux/erofs-utils/default.nix
new file mode 100644
index 00000000000..21ad77f234a
--- /dev/null
+++ b/pkgs/os-specific/linux/erofs-utils/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchgit, autoreconfHook, pkgconfig, fuse, libuuid, lz4 }:
+
+stdenv.mkDerivation rec {
+  pname = "erofs-utils";
+  version = "1.2";
+  outputs = [ "out" "man" ];
+
+  src = fetchgit {
+    url =
+      "https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git";
+    rev = "v" + version;
+    sha256 = "07hvijq2hsn3gg1kb8abrfk23n83j57yx8kyv4wqgwhhvd30myjc";
+  };
+
+  buildInputs = [ autoreconfHook pkgconfig fuse libuuid lz4 ];
+
+  configureFlags = [ "--enable-fuse" ];
+
+  meta = with stdenv.lib; {
+    description = "Userspace utilities for linux-erofs file system";
+    license = with licenses; [ gpl2 ];
+    maintainers = with maintainers; [ ehmry ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/evdi/default.nix b/pkgs/os-specific/linux/evdi/default.nix
index 119ba22ca26..986bb402e57 100644
--- a/pkgs/os-specific/linux/evdi/default.nix
+++ b/pkgs/os-specific/linux/evdi/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "evdi";
-  version = "unstable-20200416";
+  version = "v1.7.2";
 
   src = fetchFromGitHub {
     owner = "DisplayLink";
     repo = pname;
-    rev = "dc595db636845aef39490496bc075f6bf067106c";
-    sha256 = "1yrny6jj9403z0rxbd3nxf49xc4w0rfpl7xsq03pq32pb3vlbqw7";
+    rev = version;
+    sha256 = "074j0xh037n8mc4isihfz9lap57wvxaxib32pvy6jhjl3wyik632";
   };
 
   nativeBuildInputs = kernel.moduleBuildDependencies;
diff --git a/pkgs/os-specific/linux/eventstat/default.nix b/pkgs/os-specific/linux/eventstat/default.nix
index ca498425721..6eaa58f353a 100644
--- a/pkgs/os-specific/linux/eventstat/default.nix
+++ b/pkgs/os-specific/linux/eventstat/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "eventstat";
-  version = "0.04.10";
+  version = "0.04.11";
   src = fetchzip {
     url = "https://kernel.ubuntu.com/~cking/tarballs/eventstat/eventstat-${version}.tar.gz";
-    sha256 = "0rmg49m56qxji7gwci03pkk4f4hnaq1n2x1348dqkaf5zs5nhi6b";
+    sha256 = "0hsi5w8dmqwwdahnqvs83bam3j1cagw1ggm06d35dfwy5xknc5i4";
   };
   buildInputs = [ ncurses ];
   installFlags = [ "DESTDIR=$(out)" ];
diff --git a/pkgs/os-specific/linux/fatrace/default.nix b/pkgs/os-specific/linux/fatrace/default.nix
index 69d1afad8a6..62767f68278 100644
--- a/pkgs/os-specific/linux/fatrace/default.nix
+++ b/pkgs/os-specific/linux/fatrace/default.nix
@@ -1,12 +1,18 @@
-{ stdenv, fetchurl, python3, which }:
+{ stdenv
+, fetchFromGitHub
+, python3
+, which
+}:
 
 stdenv.mkDerivation rec {
   pname = "fatrace";
-  version = "0.13";
+  version = "0.16.1";
 
-  src = fetchurl {
-    url = "https://launchpad.net/fatrace/trunk/${version}/+download/${pname}-${version}.tar.bz2";
-    sha256 = "0hrh45bpzncw0jkxw3x2smh748r65k2yxvfai466043bi5q0d2vx";
+  src = fetchFromGitHub {
+    owner = "martinpitt";
+    repo = pname;
+    rev = version;
+    sha256 = "0lxfqin2bw9235yah8ylb4p8lc3755050sjg30z3gy7bab0lfyg9";
   };
 
   buildInputs = [ python3 which ];
@@ -14,16 +20,13 @@ stdenv.mkDerivation rec {
   postPatch = ''
     substituteInPlace power-usage-report \
       --replace "'which'" "'${which}/bin/which'"
-
-    # Avoid a glibc >= 2.25 deprecation warning that gets fatal via -Werror.
-    sed 1i'#include <sys/sysmacros.h>' -i fatrace.c
   '';
 
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = with stdenv.lib; {
     description = "Report system-wide file access events";
-    homepage = "https://launchpad.net/fatrace/";
+    homepage = "https://github.com/martinpitt/fatrace";
     license = licenses.gpl3Plus;
     longDescription = ''
       fatrace reports file access events from all running processes.
diff --git a/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix b/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix
index 6938750dd64..caa675951e1 100644
--- a/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix
+++ b/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix
@@ -1,13 +1,13 @@
-{ stdenv, fetchgit, lib }:
+{ stdenvNoCC, fetchgit, lib }:
 
-stdenv.mkDerivation rec {
+stdenvNoCC.mkDerivation rec {
   pname = "firmware-linux-nonfree";
-  version = "2020-11-18";
+  version = "2020-12-18";
 
   src = fetchgit {
     url = "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git";
     rev = lib.replaceStrings ["-"] [""] version;
-    sha256 = "107p7h13gncsxqhixqq9zmmswvs910sck54ab10s4m5cafvnaf94";
+    sha256 = "1rb5b3fzxk5bi6kfqp76q1qszivi0v1kdz1cwj2llp5sd9ns03b5";
   };
 
   installFlags = [ "DESTDIR=$(out)" ];
@@ -17,11 +17,11 @@ stdenv.mkDerivation rec {
 
   outputHashMode = "recursive";
   outputHashAlgo = "sha256";
-  outputHash = "1319qr3mhbbvbnl8q151pgfpahwzfv9zg0fvpj34z5h0wnvmlr2v";
+  outputHash = "1p7vn2hfwca6w69jhw5zq70w44ji8mdnibm1z959aalax6ndy146";
 
-  meta = with stdenv.lib; {
+  meta = with stdenvNoCC.lib; {
     description = "Binary firmware collection packaged by kernel.org";
-    homepage = "http://packages.debian.org/sid/firmware-linux-nonfree";
+    homepage = "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git";
     license = licenses.unfreeRedistributableFirmware;
     platforms = platforms.linux;
     maintainers = with maintainers; [ fpletz ];
diff --git a/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix b/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix
index 23338684764..1a432eb768c 100644
--- a/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix
+++ b/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix
@@ -2,22 +2,22 @@
 
 stdenv.mkDerivation {
   pname = "raspberrypi-wireless-firmware";
-  version = "2019-08-16";
+  version = "2020-12-01";
 
   srcs = [
     (fetchFromGitHub {
       name = "bluez-firmware";
       owner = "RPi-Distro";
       repo = "bluez-firmware";
-      rev = "96eefffcccc725425fd83be5e0704a5c32b79e54";
-      sha256 = "05h57gcxhb2c84h99cyxxx4mzi6kd5fm8pjqkz3nq5vs3nv8cqhr";
+      rev = "1e4ee0c05bae10002124b56c0e44bb9ac6581ddc";
+      sha256 = "10n6ibr3ra71f4hlvbpy8csjlgrapawxrr6jmijn470vkcqcpq27";
     })
     (fetchFromGitHub {
       name = "firmware-nonfree";
       owner = "RPi-Distro";
       repo = "firmware-nonfree";
-      rev = "130cb86fa30cafbd575d38865fa546350d4c5f9c";
-      sha256 = "0jmhgbpldzz8n8lncpzwfl5ym8zgss05y952rfpwcf9v5c7vgabx";
+      rev = "b66ab26cebff689d0d3257f56912b9bb03c20567";
+      sha256 = "0cffgsp0w7vv7ylpymdddx0bl9dx3pl7snlh30p4rr9srmn8869f";
     })
   ];
 
@@ -41,10 +41,10 @@ stdenv.mkDerivation {
 
   outputHashMode = "recursive";
   outputHashAlgo = "sha256";
-  outputHash = "1r4alf1fbj6vkkf54d0anm47ymb6gn2ykl4a2hhd34b0hnf1dnhn";
+  outputHash = "17k9y499kjc4zv7ivnsfrgfibwj0ldr3sqdgia4dackbr70jfg2h";
 
   meta = with stdenv.lib; {
-    description = "Firmware for builtin Wifi/Bluetooth devices in the Raspberry Pi 3 and Zero W";
+    description = "Firmware for builtin Wifi/Bluetooth devices in the Raspberry Pi 3+ and Zero W";
     homepage = "https://github.com/RPi-Distro/firmware-nonfree";
     license = licenses.unfreeRedistributableFirmware;
     platforms = platforms.linux;
diff --git a/pkgs/os-specific/linux/firmware/raspberrypi/armstubs.nix b/pkgs/os-specific/linux/firmware/raspberrypi/armstubs.nix
new file mode 100644
index 00000000000..2f2d0081fff
--- /dev/null
+++ b/pkgs/os-specific/linux/firmware/raspberrypi/armstubs.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig }:
+
+let
+  inherit (stdenv.lib) optionals;
+in
+stdenv.mkDerivation {
+  pname = "raspberrypi-armstubs";
+  version = "2020-10-08";
+
+  src = fetchFromGitHub {
+    owner = "raspberrypi";
+    repo = "tools";
+    rev = "fc0e73c13865450e95edd046200e42a6e52d8256";
+    sha256 = "1g6ikpjcrm5x0rk5aiwjdd8grf997qkvgamcrdxy6k9ln746h25s";
+  };
+
+  NIX_CFLAGS_COMPILE = [
+    "-march=armv8-a+crc"
+  ];
+
+  preConfigure = ''
+    cd armstubs
+  '';
+
+  makeFlags = [
+    "CC8=${stdenv.cc.targetPrefix}cc"
+    "LD8=${stdenv.cc.targetPrefix}ld"
+    "OBJCOPY8=${stdenv.cc.targetPrefix}objcopy"
+    "OBJDUMP8=${stdenv.cc.targetPrefix}objdump"
+    "CC=${stdenv.cc.targetPrefix}cc"
+    "LD=${stdenv.cc.targetPrefix}ld"
+    "OBJCOPY=${stdenv.cc.targetPrefix}objcopy"
+    "OBJDUMP=${stdenv.cc.targetPrefix}objdump"
+  ]
+  ++ optionals (stdenv.isAarch64) [ "armstub8.bin" "armstub8-gic.bin" ]
+  ++ optionals (stdenv.isAarch32) [ "armstub7.bin" "armstub8-32.bin" "armstub8-32-gic.bin" ]
+  ;
+
+  installPhase = ''
+    mkdir -vp $out/
+    cp -v *.bin $out/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Firmware related ARM stubs for the Raspberry Pi";
+    homepage = https://github.com/raspberrypi/tools;
+    license = licenses.bsd3;
+    platforms = [ "armv6l-linux" "armv7l-linux" "aarch64-linux" ];
+    maintainers = with maintainers; [ samueldr ];
+  };
+}
diff --git a/pkgs/os-specific/linux/firmware/raspberrypi/default.nix b/pkgs/os-specific/linux/firmware/raspberrypi/default.nix
index 70bcaa15d96..b5fa3909c3b 100644
--- a/pkgs/os-specific/linux/firmware/raspberrypi/default.nix
+++ b/pkgs/os-specific/linux/firmware/raspberrypi/default.nix
@@ -1,14 +1,15 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenvNoCC, fetchFromGitHub }:
 
-stdenv.mkDerivation rec {
+stdenvNoCC.mkDerivation rec {
+  # NOTE: this should be updated with linux_rpi
   pname = "raspberrypi-firmware";
-  version = "1.20201022";
+  version = "1.20201201";
 
   src = fetchFromGitHub {
     owner = "raspberrypi";
     repo = "firmware";
     rev = version;
-    sha256 = "0j5m50cmmr11m3h8kk89j1pqkdqr7mzdzg04ayiqvfhvy32qqlg8";
+    sha256 = "09yha3k72yqx29rwnv2j2zm73lzc4jgmcbmcc6yrl1i07x84lx3n";
   };
 
   installPhase = ''
@@ -16,9 +17,11 @@ stdenv.mkDerivation rec {
     cp -R boot/* $out/share/raspberrypi/boot
   '';
 
+  dontConfigure = true;
+  dontBuild = true;
   dontFixup = true;
 
-  meta = with stdenv.lib; {
+  meta = with stdenvNoCC.lib; {
     description = "Firmware for the Raspberry Pi board";
     homepage = "https://github.com/raspberrypi/firmware";
     license = licenses.unfreeRedistributableFirmware; # See https://github.com/raspberrypi/firmware/blob/master/boot/LICENCE.broadcom
diff --git a/pkgs/os-specific/linux/firmware/raspberrypi/tools.nix b/pkgs/os-specific/linux/firmware/raspberrypi/tools.nix
deleted file mode 100644
index 6c4d49e4e24..00000000000
--- a/pkgs/os-specific/linux/firmware/raspberrypi/tools.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ stdenv, fetchFromGitHub, cmake, pkgconfig }:
-
-stdenv.mkDerivation {
-  pname = "raspberrypi-tools";
-  version = "2020-05-28";
-
-  src = fetchFromGitHub {
-    owner = "raspberrypi";
-    repo = "userland";
-    rev = "f97b1af1b3e653f9da2c1a3643479bfd469e3b74";
-    sha256 = "1r7n05rv96hqjq0rn0qzchmfqs0j7vh3p8jalgh66s6l0vms5mwy";
-  };
-
-  nativeBuildInputs = [ cmake pkgconfig ];
-
-  preConfigure = ''
-    cmakeFlagsArray+=("-DVMCS_INSTALL_PREFIX=$out")
-  '' + stdenv.lib.optionalString stdenv.isAarch64 ''
-    cmakeFlagsArray+=("-DARM64=1")
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Userland tools for the Raspberry Pi board";
-    homepage = "https://github.com/raspberrypi/userland";
-    license = licenses.bsd3;
-    platforms = [ "armv6l-linux" "armv7l-linux" "aarch64-linux" ];
-    maintainers = with maintainers; [ dezgeg tavyc ];
-  };
-}
diff --git a/pkgs/os-specific/linux/firmware/rtl8761b-firmware/default.nix b/pkgs/os-specific/linux/firmware/rtl8761b-firmware/default.nix
new file mode 100644
index 00000000000..4418722c7c4
--- /dev/null
+++ b/pkgs/os-specific/linux/firmware/rtl8761b-firmware/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+  name = "rtl8761b-firmware";
+
+  src = fetchFromGitHub {
+    owner = "Realtek-OpenSource";
+    repo = "android_hardware_realtek";
+    rev = "rtk1395";
+    sha256 = "sha256-vd9sZP7PGY+cmnqVty3sZibg01w8+UNinv8X85B+dzc=";
+  };
+
+  installPhase = ''
+    install -D -pm644 \
+      bt/rtkbt/Firmware/BT/rtl8761b_fw \
+      $out/lib/firmware/rtl_bt/rtl8761b_fw.bin
+
+    install -D -pm644 \
+      bt/rtkbt/Firmware/BT/rtl8761b_config \
+      $out/lib/firmware/rtl_bt/rtl8761b_config.bin
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Firmware for Realtek RTL8761b";
+    license = licenses.unfreeRedistributableFirmware;
+    maintainers = with maintainers; [ edibopp ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/intel-compute-runtime/default.nix b/pkgs/os-specific/linux/intel-compute-runtime/default.nix
index e33a40e6a85..7b8c2197d70 100644
--- a/pkgs/os-specific/linux/intel-compute-runtime/default.nix
+++ b/pkgs/os-specific/linux/intel-compute-runtime/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "intel-compute-runtime";
-  version = "20.33.17675";
+  version = "20.34.17727";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "compute-runtime";
     rev = version;
-    sha256 = "1ckzspf05skdrjh947gv96finxbv5dpgc84hppm5pdsp5q70iyxp";
+    sha256 = "19scbbr6jf3yp2v7z8xyzzm01g44jym7xfkf1dz64d5nhvjw6ig5";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/os-specific/linux/iproute/default.nix b/pkgs/os-specific/linux/iproute/default.nix
index b3de7ceedaa..55fa6b36de2 100644
--- a/pkgs/os-specific/linux/iproute/default.nix
+++ b/pkgs/os-specific/linux/iproute/default.nix
@@ -5,19 +5,16 @@
 
 stdenv.mkDerivation rec {
   pname = "iproute2";
-  version = "5.9.0";
+  version = "5.10.0";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/net/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "1kys6dmhrl43iaq95n5sh02p39d7bq8i5y672qrzgwnwpjaaqpd2";
+    sha256 = "1sakmhvh40gh4x55vzgy6cyvizqkhqalcfpvs6r0c14w62p38jm5";
   };
 
   preConfigure = ''
     # Don't try to create /var/lib/arpd:
     sed -e '/ARPDDIR/d' -i Makefile
-    # TODO: Drop temporary version fix for 5.9 once 5.10 is out:
-    substituteInPlace include/version.h \
-      --replace "5.8.0" "${version}"
   '';
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/os-specific/linux/iwd/default.nix b/pkgs/os-specific/linux/iwd/default.nix
index 64ac3342acf..0cbd7ff3a3a 100644
--- a/pkgs/os-specific/linux/iwd/default.nix
+++ b/pkgs/os-specific/linux/iwd/default.nix
@@ -21,7 +21,8 @@ stdenv.mkDerivation rec {
     sha256 = "0gzpdgfwzlqj2n3amf2zhi2hlpa412878yphgx79y6b5gn1y1lm2";
   };
 
-  outputs = [ "out" "man" "test" ];
+  outputs = [ "out" "man" ]
+    ++ stdenv.lib.optional (stdenv.hostPlatform == stdenv.buildPlatform) "test";
 
   nativeBuildInputs = [
     autoreconfHook
@@ -38,7 +39,9 @@ stdenv.mkDerivation rec {
 
   checkInputs = [ openssl ];
 
-  pythonPath = [
+  # wrapPython wraps the scripts in $test. They pull in gobject-introspection,
+  # which doesn't cross-compile.
+  pythonPath = stdenv.lib.optionals (stdenv.hostPlatform == stdenv.buildPlatform) [
     python3Packages.dbus-python
     python3Packages.pygobject3
   ];
@@ -61,11 +64,12 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   postInstall = ''
-    mkdir -p $test/bin
-    cp -a test/* $test/bin/
     mkdir -p $out/share
     cp -a doc $out/share/
     cp -a README AUTHORS TODO $out/share/doc/
+  '' + stdenv.lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
+    mkdir -p $test/bin
+    cp -a test/* $test/bin/
   '';
 
   preFixup = ''
diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix
index 47e49dbe01d..2f81444f78f 100644
--- a/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/pkgs/os-specific/linux/kernel/common-config.nix
@@ -819,6 +819,12 @@ let
 
       # See comments on https://github.com/NixOS/nixpkgs/commit/9b67ea9106102d882f53d62890468071900b9647
       CRYPTO_AEGIS128_SIMD = whenAtLeast "5.4" no;
+
+      # Distros should configure the default as a kernel option.
+      # We previously defined it on the kernel command line as cma=
+      # 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";
     };
   };
 in
diff --git a/pkgs/os-specific/linux/kernel/hardened/patches.json b/pkgs/os-specific/linux/kernel/hardened/patches.json
index c1f870e3d81..00c0bb0d5d3 100644
--- a/pkgs/os-specific/linux/kernel/hardened/patches.json
+++ b/pkgs/os-specific/linux/kernel/hardened/patches.json
@@ -1,22 +1,27 @@
 {
     "4.14": {
-        "name": "linux-hardened-4.14.212.a.patch",
-        "sha256": "068grrkygd6klv4zx3jghk987bl0v7g5g5911a2irllpsjv55rna",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.212.a/linux-hardened-4.14.212.a.patch"
+        "name": "linux-hardened-4.14.213.a.patch",
+        "sha256": "0lkjgg6cbsaiypxij7p00q3y094qf0h172hc2p7wgy39777b45a7",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.213.a/linux-hardened-4.14.213.a.patch"
     },
     "4.19": {
-        "name": "linux-hardened-4.19.163.a.patch",
-        "sha256": "0p8y9r1f3blsqrakxy4yp73sff0i0k43cwp5rg4ry3apnzfly1a4",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.163.a/linux-hardened-4.19.163.a.patch"
+        "name": "linux-hardened-4.19.164.a.patch",
+        "sha256": "0fzv2sjmf0dmhzp58yr4ggzi3pxbjjhbhmav46pv98rbdm2vjwvk",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.164.a/linux-hardened-4.19.164.a.patch"
+    },
+    "5.10": {
+        "name": "linux-hardened-5.10.4.a.patch",
+        "sha256": "0apnmcis41vz5k74g1ssq0apwxzhl6zg31nyjbplilm3b068a1h4",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.4.a/linux-hardened-5.10.4.a.patch"
     },
     "5.4": {
-        "name": "linux-hardened-5.4.83.a.patch",
-        "sha256": "08srahgfzynv2bfd0ym6vgl1c0xjfqg6qvgzlq85y9pb7fain5yp",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.83.a/linux-hardened-5.4.83.a.patch"
+        "name": "linux-hardened-5.4.86.a.patch",
+        "sha256": "0j1wr6d42rbxd66vhsp9l3lp3nv0p1j0cpir9pxshd8w9zlbdy88",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.86.a/linux-hardened-5.4.86.a.patch"
     },
     "5.9": {
-        "name": "linux-hardened-5.9.14.a.patch",
-        "sha256": "1rr61s9k7nmr27r4vkgpvvra7r8ksi6h6axf5kcbx7krbgdmwmfv",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.9.14.a/linux-hardened-5.9.14.a.patch"
+        "name": "linux-hardened-5.9.16.a.patch",
+        "sha256": "024wdzc9bwgr4nd4z0l6bazcl35jczhsmdl2lb26bvffjwg207rw",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.9.16.a/linux-hardened-5.9.16.a.patch"
     }
 }
diff --git a/pkgs/os-specific/linux/kernel/linux-4.14.nix b/pkgs/os-specific/linux/kernel/linux-4.14.nix
index f4404cae6f4..aff68e1efa7 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.14.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.14.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.14.212";
+  version = "4.14.213";
 
   # 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,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0y8ck8pfxm8862wi4cz8qp9x9b18yl448i8m7bpbphs290nc66qf";
+    sha256 = "079axkl14jp8lz30h21q4gmhmjw6zf5ycmxji65kgcgyg7dwwyzx";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.19.nix b/pkgs/os-specific/linux/kernel/linux-4.19.nix
index b542fab118b..6c559103f49 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.19.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.19.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.19.163";
+  version = "4.19.165";
 
   # 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,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1z65iwwyx2b01fncygckmhpxirzs52qfqmv3agirn4laxgjw9viy";
+    sha256 = "1l72wka1dli0jdb91sx4zr13vy0q5l6p37fh6hf093gjn14mdh51";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.4.nix b/pkgs/os-specific/linux/kernel/linux-4.4.nix
index 7e3030087ce..744f35e3ea8 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.4.nix
@@ -1,11 +1,11 @@
 { stdenv, buildPackages, fetchurl, perl, buildLinux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.4.248";
+  version = "4.4.249";
   extraMeta.branch = "4.4";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1z1xbkm0z0v6k3scszii5hi24pn391332g0li93p3n1rnv74jap5";
+    sha256 = "04pb4vgia6zaindf6804gq9jn3mhmy01yijqmpi79sh9rlqzzh1i";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.9.nix b/pkgs/os-specific/linux/kernel/linux-4.9.nix
index 107fcd9268f..bf044f73246 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.9.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.9.nix
@@ -1,11 +1,11 @@
 { stdenv, buildPackages, fetchurl, perl, buildLinux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.9.248";
+  version = "4.9.249";
   extraMeta.branch = "4.9";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1kzczy0lz3lnjkhvx90dgjmzn3d3y55qxlihiclkr4y9c602d1s6";
+    sha256 = "0kjcw0vgga9msgqnipgg028v3rcc5am2d094v3hqkkjvzyb8dwxi";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.10.nix b/pkgs/os-specific/linux/kernel/linux-5.10.nix
index db7ff9c912a..28f03143183 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.10.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.10.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "5.10.1";
+  version = "5.10.5";
 
   # 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,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "0p2fl7kl4ckphq17xir7n7vgrzlhbdqmyd2yyp4yilwvih9625pd";
+    sha256 = "1x1fc4cywqnjm514q376d5540zsxmqv95n0lykaphz8qdbhsk49r";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.4.nix b/pkgs/os-specific/linux/kernel/linux-5.4.nix
index cee3d136d6d..2fc1b6013c1 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.4.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "5.4.84";
+  version = "5.4.87";
 
   # 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,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "058mhczv6whjwxn7jjh1c6n5zrqjdnvbl2mp7jkfrg6frpvgr189";
+    sha256 = "0cawb7md97i0hz83hf7l4ihn9lyrg8q64j8jam8n9fw45qzfjd3a";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.9.nix b/pkgs/os-specific/linux/kernel/linux-5.9.nix
index 9e740c0c2a6..39cc9c56c5f 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.9.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.9.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "5.9.15";
+  version = "5.9.16";
 
   # 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,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "1vhaayqjv1ha3nsxy9zbsz497ba4d4a1g0gfhgxcvci8dp8djh2p";
+    sha256 = "11mbnjvb5d5gwbrwlkqvzpg1ij4m19l5wr3wca9iiyg5i2papmxh";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-lqx.nix b/pkgs/os-specific/linux/kernel/linux-lqx.nix
new file mode 100644
index 00000000000..f2704378979
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/linux-lqx.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, buildLinux, linux_zen, ... } @ args:
+
+let
+  version = "5.9.16";
+in
+
+buildLinux (args // {
+  modDirVersion = "${version}-lqx1";
+  inherit version;
+  isZen = true;
+
+  src = fetchFromGitHub {
+    owner = "zen-kernel";
+    repo = "zen-kernel";
+    rev = "v${version}-lqx1";
+    sha256 = "0ljvqf91nxpql98z75bicg5y3nzkm41rq5b0rm1kcnsk0ji829ps";
+  };
+
+  extraMeta = {
+    branch = "5.9/master";
+    maintainers = with stdenv.lib.maintainers; [ atemu ];
+    description = linux_zen.meta.description + " (Same as linux_zen but less aggressive release schedule)";
+  };
+
+} // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-rpi.nix b/pkgs/os-specific/linux/kernel/linux-rpi.nix
index a3d2bfd4836..176c2180f35 100644
--- a/pkgs/os-specific/linux/kernel/linux-rpi.nix
+++ b/pkgs/os-specific/linux/kernel/linux-rpi.nix
@@ -1,8 +1,9 @@
 { stdenv, lib, buildPackages, fetchFromGitHub, perl, buildLinux, rpiVersion, ... } @ args:
 
 let
-  modDirVersion = "4.19.118";
-  tag = "1.20200601";
+  # NOTE: raspberrypifw & raspberryPiWirelessFirmware should be updated with this
+  modDirVersion = "5.4.79";
+  tag = "1.20201201";
 in
 lib.overrideDerivation (buildLinux (args // {
   version = "${modDirVersion}-${tag}";
@@ -12,7 +13,7 @@ lib.overrideDerivation (buildLinux (args // {
     owner = "raspberrypi";
     repo = "linux";
     rev = "raspberrypi-kernel_${tag}-1";
-    sha256 = "11jzsmnd1qry2ir9vmsv0nfdzjpgkn5yab5ylxcz406plc073anp";
+    sha256 = "093p5kh5f27djkhbcw371w079lhhihvg3s4by3wzsd40di4fcgn9";
   };
 
   defconfig = {
@@ -22,6 +23,11 @@ lib.overrideDerivation (buildLinux (args // {
     "4" = "bcm2711_defconfig";
   }.${toString rpiVersion};
 
+  extraConfig = ''
+    # ../drivers/pci/controller/pcie-altera.c:679:8: error: too few arguments to function 'devm_of_pci_get_host_bridge_resources'
+    PCIE_ALTERA n
+  '';
+
   features = {
     efiBootStub = false;
   } // (args.features or {});
diff --git a/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix b/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
index 4eec6c431b6..07a74c10771 100644
--- a/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
+++ b/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
@@ -6,7 +6,7 @@
 , ... } @ args:
 
 let
-  version = "5.10-rt17"; # updated by ./update-rt.sh
+  version = "5.10.1-rt20"; # 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 = "0hyav21vzz5v1kgb455pcz9ncg5qqzxmp60na290scwq7vj9kpyw";
+    sha256 = "0p2fl7kl4ckphq17xir7n7vgrzlhbdqmyd2yyp4yilwvih9625pd";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "0baf7363f6h3smr4lgw88dbpf4977j6c1asifyhc8zhd7100ckhn";
+      sha256 = "0z8ljfcn908hzjl11fkmwrx2r7j0hcgpx07g21ag162qrn6g5qby";
     };
   }; in [ rt-patch ] ++ lib.remove rt-patch kernelPatches;
 
diff --git a/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix b/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
index 9f64abc55a0..25e3172b0f3 100644
--- a/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
@@ -6,7 +6,7 @@
 , ... } @ args:
 
 let
-  version = "5.4.82-rt45"; # updated by ./update-rt.sh
+  version = "5.4.84-rt47"; # 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 = "1byx163v83aw0ixphwz20znml2s2n3cy1kp89vgwbdiqxbj5hi7v";
+    sha256 = "058mhczv6whjwxn7jjh1c6n5zrqjdnvbl2mp7jkfrg6frpvgr189";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "0nh7d5b81br3cpljmn5n7lgn877h02aal95782hiflv7cmrb597r";
+      sha256 = "0nccxf9l9ycvb782f48zrbl59vi674qq7yjyaks97440pgyd1jg0";
     };
   }; in [ rt-patch ] ++ lib.remove rt-patch kernelPatches;
 
diff --git a/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix b/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix
index 81dcb5d4563..dd9ce3e080a 100644
--- a/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix
+++ b/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix
@@ -1,14 +1,14 @@
 { stdenv, buildPackages, fetchFromGitHub, fetchpatch, perl, buildLinux, ... } @ args:
 
 buildLinux (args // {
-  version = "5.8.0-2020.09.07";
-  modDirVersion = "5.8.0";
+  version = "5.9.0-2020.11.20";
+  modDirVersion = "5.9.0";
 
   src = fetchFromGitHub {
     owner = "koverstreet";
     repo = "bcachefs";
-    rev = "fb2821e72648f35d3cff61ac26041d634fd1dacf";
-    sha256 = "0f9hx6fz27rm8h1lk9868v727klvyzcbw6hcgm5mypbfq1nqirdy";
+    rev = "6a505b63ed3003faf5000f19fd08bbd477d93fbc";
+    sha256 = "1rf34gzv9npafp1c3i6lymk3b0gnqp4rb0wl33pw6yrpgnsry3cc";
   };
 
   extraConfig = "BCACHEFS_FS m";
diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix
index 5bf74ffd377..6cf74a504a1 100644
--- a/pkgs/os-specific/linux/kernel/linux-testing.nix
+++ b/pkgs/os-specific/linux/kernel/linux-testing.nix
@@ -3,15 +3,15 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "5.10-rc6";
-  extraMeta.branch = "5.10";
+  version = "5.11-rc2";
+  extraMeta.branch = "5.11";
 
   # modDirVersion needs to be x.y.z, will always add .0
   modDirVersion = if (modDirVersionArg == null) then builtins.replaceStrings ["-"] [".0-"] version else modDirVersionArg;
 
   src = fetchurl {
     url = "https://git.kernel.org/torvalds/t/linux-${version}.tar.gz";
-    sha256 = "14ykzs98r918sqv7lddlps4r7hza1zgw0x67mmj77cmqiv6d8ffi";
+    sha256 = "092jgmzqfpylwbwhv7j8hy5y0ai14b6wm7p7vw6pxj7alixyynq0";
   };
 
   # Should the testing kernels ever be built on Hydra?
diff --git a/pkgs/os-specific/linux/kernel/linux-zen.nix b/pkgs/os-specific/linux/kernel/linux-zen.nix
index 5ac81d6ebb9..dc28f37338b 100644
--- a/pkgs/os-specific/linux/kernel/linux-zen.nix
+++ b/pkgs/os-specific/linux/kernel/linux-zen.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, buildLinux, ... } @ args:
 
 let
-  version = "5.9.14";
+  version = "5.10.1";
 in
 
 buildLinux (args // {
@@ -13,12 +13,13 @@ buildLinux (args // {
     owner = "zen-kernel";
     repo = "zen-kernel";
     rev = "v${version}-zen1";
-    sha256 = "1b8pm80z49d7qk9mvdf9w3hih34pilqr1zjk110q5im1kdz81zrg";
+    sha256 = "1c77x53ixyn64b4qq6br6ckicmjs316c8k08yfxibmhv72av1wcp";
   };
 
   extraMeta = {
-    branch = "5.9/master";
+    branch = "5.10/master";
     maintainers = with stdenv.lib.maintainers; [ atemu andresilva ];
+    description = "Built using the best configuration and kernel sources for desktop, multimedia, and gaming workloads.";
   };
 
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix
index 3bdb8c4f297..9edc0ced412 100644
--- a/pkgs/os-specific/linux/kernel/manual-config.nix
+++ b/pkgs/os-specific/linux/kernel/manual-config.nix
@@ -113,6 +113,13 @@ let
             sed -i "$mf" -e 's|/usr/bin/||g ; s|/bin/||g ; s|/sbin/||g'
         done
         sed -i Makefile -e 's|= depmod|= ${buildPackages.kmod}/bin/depmod|'
+
+        # Don't include a (random) NT_GNU_BUILD_ID, to make the build more deterministic.
+        # This way kernels can be bit-by-bit reproducible depending on settings
+        # (e.g. MODULE_SIG and SECURITY_LOCKDOWN_LSM need to be disabled).
+        # See also https://kernelnewbies.org/BuildId
+        sed -i Makefile -e 's|--build-id|--build-id=none|'
+
         sed -i scripts/ld-version.sh -e "s|/usr/bin/awk|${buildPackages.gawk}/bin/awk|"
       '';
 
diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix
index e2805c315b8..b0eb2be2a4c 100644
--- a/pkgs/os-specific/linux/kernel/patches.nix
+++ b/pkgs/os-specific/linux/kernel/patches.nix
@@ -76,6 +76,13 @@
     };
   };
 
+  # Adapted for Linux 5.4 from:
+  # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=04896832c94aae4842100cafb8d3a73e1bed3a45
+  rtl8761b_support =
+    { name = "rtl8761b-support";
+      patch = ./rtl8761b-support.patch;
+    };
+
   export_kernel_fpu_functions = {
     "4.14" = {
       name = "export_kernel_fpu_functions";
@@ -97,4 +104,14 @@
     name = "mac_nvme_t2";
     patch = ./mac-nvme-t2.patch;
   };
+
+  # https://lkml.org/lkml/2020/12/18/461
+  wireless_syntax_error = rec {
+    name = "wireless-syntax_error";
+    patch = fetchpatch {
+      name = name + ".patch";
+      url = "https://lkml.org/lkml/diff/2020/12/18/461/1";
+      sha256 = "11rnw9z7311crsx37sk68b71q51cni70lzf40ildqjnnn71m3q58";
+    };
+  };
 }
diff --git a/pkgs/os-specific/linux/kernel/rtl8761b-support.patch b/pkgs/os-specific/linux/kernel/rtl8761b-support.patch
new file mode 100644
index 00000000000..b6d80d5bc8d
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/rtl8761b-support.patch
@@ -0,0 +1,33 @@
+diff --git a/drivers/bluetooth/btrtl.c b/drivers/bluetooth/btrtl.c
+index 67f4bc21e7c5..3a9afc905f24 100644
+--- a/drivers/bluetooth/btrtl.c
++++ b/drivers/bluetooth/btrtl.c
+@@ -130,12 +130,19 @@  static const struct id_table ic_id_table[] = {
+ 	  .cfg_name = "rtl_bt/rtl8821c_config" },
+
+ 	/* 8761A */
+-	{ IC_MATCH_FL_LMPSUBV, RTL_ROM_LMP_8761A, 0x0,
++	{ IC_INFO(RTL_ROM_LMP_8761A, 0xa),
+ 	  .config_needed = false,
+ 	  .has_rom_version = true,
+ 	  .fw_name  = "rtl_bt/rtl8761a_fw.bin",
+ 	  .cfg_name = "rtl_bt/rtl8761a_config" },
+
++	/* 8761B */
++	{ IC_INFO(RTL_ROM_LMP_8761A, 0xb),
++	  .config_needed = false,
++	  .has_rom_version = true,
++	  .fw_name  = "rtl_bt/rtl8761b_fw.bin",
++	  .cfg_name = "rtl_bt/rtl8761b_config" },
++
+	/* 8822C with USB interface */
+	{ IC_INFO(RTL_ROM_LMP_8822B, 0xc),
+	  .config_needed = false,
+@@ -251,6 +258,7 @@  static int rtlbt_parse_firmware(struct hci_dev *hdev,
+ 		{ RTL_ROM_LMP_8723B, 9 },	/* 8723D */
+ 		{ RTL_ROM_LMP_8821A, 10 },	/* 8821C */
+ 		{ RTL_ROM_LMP_8822B, 13 },	/* 8822C */
++		{ RTL_ROM_LMP_8761A, 14 },	/* 8761B */
+ 	};
+
+ 	min_size = sizeof(struct rtl_epatch_header) + sizeof(extension_sig) + 3;
diff --git a/pkgs/os-specific/linux/keyutils/default.nix b/pkgs/os-specific/linux/keyutils/default.nix
index fb06f942e48..fe9cb46fb8a 100644
--- a/pkgs/os-specific/linux/keyutils/default.nix
+++ b/pkgs/os-specific/linux/keyutils/default.nix
@@ -23,6 +23,8 @@ stdenv.mkDerivation rec {
     ./conf-symlink.patch
   ];
 
+  makeFlags = stdenv.lib.optionals stdenv.hostPlatform.isStatic "NO_SOLIB=1";
+
   BUILDDATE = "1970-01-01";
   outputs = [ "out" "lib" "dev" ];
 
diff --git a/pkgs/os-specific/linux/kmod/default.nix b/pkgs/os-specific/linux/kmod/default.nix
index 805b8a32aed..56fd4c353d9 100644
--- a/pkgs/os-specific/linux/kmod/default.nix
+++ b/pkgs/os-specific/linux/kmod/default.nix
@@ -1,6 +1,7 @@
 { stdenv, lib, fetchurl, autoreconfHook, pkgconfig
 , libxslt, xz, elf-header
-, withStatic ? false }:
+, withStatic ? stdenv.hostPlatform.isStatic
+}:
 
 let
   systems = [ "/run/current-system/kernel-modules" "/run/booted-system/kernel-modules" "" ];
diff --git a/pkgs/os-specific/linux/libcap/default.nix b/pkgs/os-specific/linux/libcap/default.nix
index 713c4b5d13d..ab78a3a33d8 100644
--- a/pkgs/os-specific/linux/libcap/default.nix
+++ b/pkgs/os-specific/linux/libcap/default.nix
@@ -1,5 +1,9 @@
-{ stdenv, lib, buildPackages, fetchurl, attr, perl, pam
-, static ? stdenv.targetPlatform.isStatic }:
+{ stdenv, lib, buildPackages, fetchurl, attr, perl
+, usePam ? !isStatic, pam ? null
+, isStatic ? stdenv.hostPlatform.isStatic
+}:
+
+assert usePam -> pam != null;
 
 stdenv.mkDerivation rec {
   pname = "libcap";
@@ -10,21 +14,21 @@ stdenv.mkDerivation rec {
     sha256 = "1qf80lifygbnxwvqjf8jz5j24n6fqqx4ixnkbf76xs2vrmcq664j";
   };
 
-  patches = lib.optional static ./no-shared-lib.patch;
+  patches = lib.optional isStatic ./no-shared-lib.patch;
 
   outputs = [ "out" "dev" "lib" "man" "doc" ]
-    ++ lib.optional (pam != null) "pam";
+    ++ lib.optional usePam "pam";
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
   nativeBuildInputs = [ perl ];
 
-  buildInputs = [ pam ];
+  buildInputs = lib.optional usePam pam;
 
   propagatedBuildInputs = [ attr ];
 
   makeFlags = [
     "lib=lib"
-    "PAM_CAP=${if pam == null then "no" else "yes"}"
+    "PAM_CAP=${if usePam then "yes" else "no"}"
     "BUILD_CC=$(CC_FOR_BUILD)"
     "CC:=$(CC)"
   ];
@@ -48,10 +52,10 @@ stdenv.mkDerivation rec {
   installFlags = [ "RAISE_SETFCAP=no" ];
 
   postInstall = ''
-    ${lib.optionalString (!static) ''rm "$lib"/lib/*.a''}
+    ${lib.optionalString (!isStatic) ''rm "$lib"/lib/*.a''}
     mkdir -p "$doc/share/doc/${pname}-${version}"
     cp License "$doc/share/doc/${pname}-${version}/"
-  '' + stdenv.lib.optionalString (pam != null) ''
+  '' + stdenv.lib.optionalString usePam ''
     mkdir -p "$pam/lib/security"
     mv "$lib"/lib/security "$pam/lib"
   '';
diff --git a/pkgs/os-specific/linux/libpsm2/default.nix b/pkgs/os-specific/linux/libpsm2/default.nix
index b9e41380da8..501453b8821 100644
--- a/pkgs/os-specific/linux/libpsm2/default.nix
+++ b/pkgs/os-specific/linux/libpsm2/default.nix
@@ -2,8 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libpsm2";
-  version = "11.2.156";
-  ifs_version = "10_10_2_0_44";
+  version = "11.2.185";
 
   preConfigure= ''
     export UDEVDIR=$out/etc/udev
@@ -14,7 +13,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ numactl pkgconfig ];
 
-  installFlags = [ 
+  installFlags = [
     "DESTDIR=$(out)"
     "UDEVDIR=/etc/udev"
     "LIBPSM2_COMPAT_CONF_DIR=/etc"
@@ -23,8 +22,8 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "intel";
     repo = "opa-psm2";
-    rev = "IFS_RELEASE_${ifs_version}";
-    sha256 = "0ckrfzih1ga9yvximxjdh0z05kn9l858ykqiblv18w6ka3gra1xz";
+    rev = "PSM2_${version}";
+    sha256 = "062hg4r6gz7pla9df70nqs5i2a3mp1wszmp4l0g771fykhhrxsjg";
   };
 
   postInstall = ''
diff --git a/pkgs/os-specific/linux/musl/default.nix b/pkgs/os-specific/linux/musl/default.nix
index acc9fff5b48..63d8114ac77 100644
--- a/pkgs/os-specific/linux/musl/default.nix
+++ b/pkgs/os-specific/linux/musl/default.nix
@@ -35,11 +35,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "musl";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchurl {
     url    = "https://www.musl-libc.org/releases/${pname}-${version}.tar.gz";
-    sha256 = "1s6lix02k1ijm4nmhzpmwzk5w6xfkhn70nvvk8zjs51r24cpppn6";
+    sha256 = "0jz8fzwgvfyjgxjbpw35ixdglp2apqjvp8m386f6yr4zacc6xbv8";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/os-specific/linux/nvidia-x11/default.nix b/pkgs/os-specific/linux/nvidia-x11/default.nix
index 3fa6dba0361..b9af74906b4 100644
--- a/pkgs/os-specific/linux/nvidia-x11/default.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/default.nix
@@ -22,23 +22,27 @@ rec {
   # Policy: use the highest stable version as the default (on our master).
   stable = if stdenv.hostPlatform.system == "x86_64-linux"
     then generic {
-      version = "460.27.04";
-      sha256_64bit = "plTqtc5QZQwM0f3MeMZV0N5XOiuSXCCDklL/qyy8HM8=";
-      settingsSha256 = "hU9J0VSrLXs7N14zq6U5LbBLZXEIyTfih/Bj6eFcMf0=";
-      persistencedSha256 = "PmqhoPskqhJe2FxMrQh9zX1BWQCR2kkfDwvA89+XALA=";
+      version = "455.45.01";
+      sha256_64bit = "6tyMfggvZVQPp/aiSdgwn7VG/mIGb0lUcnAdyMEDoVM=";
+      settingsSha256 = "70ABqnO/heCp/5IztpU0Lo7eZd4n4wUoTlp1xIQ3aCc=";
+      persistencedSha256 = "36sM+djZvm77Gle7dcZ5tppgzQkD4IA0FJgCGsdZRI8=";
     }
     else legacy_390;
 
-  # No active beta right now
-  beta = stable;
+  beta = generic {
+    version = "460.27.04";
+    sha256_64bit = "plTqtc5QZQwM0f3MeMZV0N5XOiuSXCCDklL/qyy8HM8=";
+    settingsSha256 = "hU9J0VSrLXs7N14zq6U5LbBLZXEIyTfih/Bj6eFcMf0=";
+    persistencedSha256 = "PmqhoPskqhJe2FxMrQh9zX1BWQCR2kkfDwvA89+XALA=";
+  };
 
   # Vulkan developer beta driver
   # See here for more information: https://developer.nvidia.com/vulkan-driver
   vulkan_beta = generic rec {
-    version = "455.46.02";
+    version = "455.46.04";
     persistencedVersion = "455.45.01";
     settingsVersion = "455.45.01";
-    sha256_64bit = "05y4scg62mrhjnj2c8689m5hdyzqnx5p8vqvdqvv76zy970723l7";
+    sha256_64bit = "1iv42w3x1vc00bgn6y4w1hnfsvnh6bvj3vcrq8hw47760sqwa4xa";
     settingsSha256 = "09v86y2c8xas9ql0bqr7vrjxx3if6javccwjzyly11dzffm02h7g";
     persistencedSha256 = "13s4b73il0lq2hs81q03176n16mng737bfsp3bxnxgnrv3whrayz";
     url = "https://developer.nvidia.com/vulkan-beta-${lib.concatStrings (lib.splitString "." version)}-linux";
diff --git a/pkgs/os-specific/linux/pam/default.nix b/pkgs/os-specific/linux/pam/default.nix
index fb969d7574a..3faf74af640 100644
--- a/pkgs/os-specific/linux/pam/default.nix
+++ b/pkgs/os-specific/linux/pam/default.nix
@@ -1,12 +1,14 @@
-{ stdenv, buildPackages, fetchurl, fetchpatch, flex, cracklib, db4 }:
+{ stdenv, buildPackages, fetchurl, fetchpatch, flex, cracklib, db4
+, nixosTests
+}:
 
 stdenv.mkDerivation rec {
   pname = "linux-pam";
-  version = "1.3.1";
+  version = "1.5.1";
 
   src = fetchurl {
-    url    = "https://github.com/linux-pam/linux-pam/releases/download/v1.3.1/Linux-PAM-${version}.tar.xz";
-    sha256 = "1nyh9kdi3knhxcbv5v4snya0g3gff0m671lnvqcbygw3rm77mx7g";
+    url    = "https://github.com/linux-pam/linux-pam/releases/download/v${version}/Linux-PAM-${version}.tar.xz";
+    sha256 = "sha256-IB1AcwsRNbGzzeoJ8sKKxjTXMYHM0Bcs7d7jZJxXkvw=";
   };
 
   patches = stdenv.lib.optionals (stdenv.hostPlatform.libc == "musl") [
@@ -63,6 +65,10 @@ stdenv.mkDerivation rec {
 
   doCheck = false; # fails
 
+  passthru.tests = {
+    inherit (nixosTests) pam-oath-login pam-u2f shadow;
+  };
+
   meta = with stdenv.lib; {
     homepage = "http://www.linux-pam.org/";
     description = "Pluggable Authentication Modules, a flexible mechanism for authenticating user";
diff --git a/pkgs/os-specific/linux/pam_ssh_agent_auth/default.nix b/pkgs/os-specific/linux/pam_ssh_agent_auth/default.nix
index 3ab1ae28a7b..167363e60a8 100644
--- a/pkgs/os-specific/linux/pam_ssh_agent_auth/default.nix
+++ b/pkgs/os-specific/linux/pam_ssh_agent_auth/default.nix
@@ -1,46 +1,53 @@
-{ stdenv, fetchpatch, fetchurl, pam, openssl, perl }:
+{ stdenv, fetchpatch, fetchFromGitHub, pam, openssl, perl }:
 
 stdenv.mkDerivation rec {
-  name = "pam_ssh_agent_auth-0.10.3";
+  pname = "pam_ssh_agent_auth";
+  version = "0.10.4";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/pamsshagentauth/${name}.tar.bz2";
-    sha256 = "0qx78x7nvqdscyp04hfijl4rgyf64xy03prr28hipvgasrcd6lrw";
+  src = fetchFromGitHub {
+    owner = "jbeverly";
+    repo = "pam_ssh_agent_auth";
+    rev = "pam_ssh_agent_auth-${version}";
+    sha256 = "YD1R8Cox0UoNiuWleKGzWSzxJ5lhDRCB2mZPp9OM6Cs=";
   };
 
-  patches =
-    [ # Allow multiple colon-separated authorized keys files to be
-      # specified in the file= option.
-      ./multiple-key-files.patch
-      (fetchpatch {
-        name = "openssl-1.1.1-1.patch";
-        url = "https://sources.debian.org/data/main/p/pam-ssh-agent-auth/0.10.3-3/debian/patches/openssl-1.1.1-1.patch";
-        sha256 = "1ndp5j4xfhzshhnl345gb4mkldx6vjfa7284xgng6ikhzpc6y7pf";
-      })
-      (fetchpatch {
-        name = "openssl-1.1.1-2.patch";
-        url = "https://sources.debian.org/data/main/p/pam-ssh-agent-auth/0.10.3-3/debian/patches/openssl-1.1.1-2.patch";
-        sha256 = "0ksrs4xr417by8klf7862n3dircvnw30an1akq4pnsd3ichscmww";
-      })
-    ];
+  ed25519-donna = fetchFromGitHub {
+    owner = "floodyberry";
+    repo = "ed25519-donna";
+    rev = "8757bd4cd209cb032853ece0ce413f122eef212c";
+    sha256 = "ETFpIaWQnlYG8ZuDG2dNjUJddlvibB4ukHquTFn3NZM=";
+  };
 
   buildInputs = [ pam openssl perl ];
 
-  # It's not clear to me why this is necessary, but without it, you see:
-  #
-  # checking OpenSSL header version... 1010104f (OpenSSL 1.1.1d  10 Sep 2019)
-  # checking OpenSSL library version... 1010104f (OpenSSL 1.1.1d  10 Sep 2019)
-  # checking whether OpenSSL's headers match the library... no
-  # configure: WARNING: Your OpenSSL headers do not match your
-  # library. Check config.log for details.
-  #
-  # ...despite the fact that clearly the values match
-  configureFlags = [ "--without-openssl-header-check" ];
+  patches = [
+    # Allow multiple colon-separated authorized keys files to be
+    # specified in the file= option.
+    ./multiple-key-files.patch
+    ./edcsa-crash-fix.patch
+  ];
+
+  configureFlags = [
+    # It's not clear to me why this is necessary, but without it, you see:
+    #
+    # checking OpenSSL header version... 1010108f (OpenSSL 1.1.1h  22 Sep 2020)
+    # checking OpenSSL library version... 1010108f (OpenSSL 1.1.1h  22 Sep 2020)
+    # checking whether OpenSSL's headers match the library... no
+    # configure: WARNING: Your OpenSSL headers do not match your
+    # library. Check config.log for details.
+    #
+    # ...despite the fact that clearly the values match
+    "--without-openssl-header-check"
+    # Make sure it can find ed25519-donna
+    "--with-cflags=-I$PWD"
+  ];
+
+  prePatch = "cp -r ${ed25519-donna}/. ed25519-donna/.";
 
   enableParallelBuilding = true;
 
   meta = {
-    homepage = "http://pamsshagentauth.sourceforge.net/";
+    homepage = "https://github.com/jbeverly/pam_ssh_agent_auth";
     description = "PAM module for authentication through the SSH agent";
     maintainers = [ stdenv.lib.maintainers.eelco ];
     platforms = stdenv.lib.platforms.linux;
diff --git a/pkgs/os-specific/linux/pam_ssh_agent_auth/edcsa-crash-fix.patch b/pkgs/os-specific/linux/pam_ssh_agent_auth/edcsa-crash-fix.patch
new file mode 100644
index 00000000000..45ee8745816
--- /dev/null
+++ b/pkgs/os-specific/linux/pam_ssh_agent_auth/edcsa-crash-fix.patch
@@ -0,0 +1,53 @@
+commit 1b0d9bcc5f5cd78b0bb1357d6a11da5d616ad26f
+Author: Wout Mertens <Wout.Mertens@gmail.com>
+Date:   Thu Jun 11 18:08:13 2020 +0200
+
+    fix segfault when using ECDSA keys.
+    
+    Author: Marc Deslauriers <marc.deslauriers@canonical.com>
+    Bug-Ubuntu: https://bugs.launchpad.net/bugs/1869512
+
+diff --git a/ssh-ecdsa.c b/ssh-ecdsa.c
+index 5b13b30..5bf29cc 100644
+--- a/ssh-ecdsa.c
++++ b/ssh-ecdsa.c
+@@ -46,7 +46,7 @@ ssh_ecdsa_sign(const Key *key, u_char **sigp, u_int *lenp,
+     u_int len, dlen;
+     Buffer b, bb;
+ #if OPENSSL_VERSION_NUMBER >= 0x10100005L
+-	BIGNUM *r, *s;
++	BIGNUM *r = NULL, *s = NULL;
+ #endif
+ 
+     if (key == NULL || key->type != KEY_ECDSA || key->ecdsa == NULL) {
+@@ -137,20 +137,27 @@ ssh_ecdsa_verify(const Key *key, const u_char *signature, u_int signaturelen,
+ 
+     /* parse signature */
+     if ((sig = ECDSA_SIG_new()) == NULL)
+-        pamsshagentauth_fatal("ssh_ecdsa_verify: DSA_SIG_new failed");
++        pamsshagentauth_fatal("ssh_ecdsa_verify: ECDSA_SIG_new failed");
+ 
+     pamsshagentauth_buffer_init(&b);
+     pamsshagentauth_buffer_append(&b, sigblob, len);
+ #if OPENSSL_VERSION_NUMBER < 0x10100005L
+     if ((pamsshagentauth_buffer_get_bignum2_ret(&b, sig->r) == -1) ||
+         (pamsshagentauth_buffer_get_bignum2_ret(&b, sig->s) == -1))
++        pamsshagentauth_fatal("ssh_ecdsa_verify:"
++            "pamsshagentauth_buffer_get_bignum2_ret failed");
+ #else
+-    DSA_SIG_get0(sig, &r, &s);
++    if ((r = BN_new()) == NULL)
++        pamsshagentauth_fatal("ssh_ecdsa_verify: BN_new failed");
++    if ((s = BN_new()) == NULL)
++        pamsshagentauth_fatal("ssh_ecdsa_verify: BN_new failed");
+     if ((pamsshagentauth_buffer_get_bignum2_ret(&b, r) == -1) ||
+         (pamsshagentauth_buffer_get_bignum2_ret(&b, s) == -1))
+-#endif
+         pamsshagentauth_fatal("ssh_ecdsa_verify:"
+             "pamsshagentauth_buffer_get_bignum2_ret failed");
++    if (ECDSA_SIG_set0(sig, r, s) != 1)
++        pamsshagentauth_fatal("ssh_ecdsa_verify: ECDSA_SIG_set0 failed");
++#endif
+ 
+     /* clean up */
+     memset(sigblob, 0, len);
diff --git a/pkgs/os-specific/linux/pam_ssh_agent_auth/multiple-key-files.patch b/pkgs/os-specific/linux/pam_ssh_agent_auth/multiple-key-files.patch
index 190325251c9..71d8e08ecd0 100644
--- a/pkgs/os-specific/linux/pam_ssh_agent_auth/multiple-key-files.patch
+++ b/pkgs/os-specific/linux/pam_ssh_agent_auth/multiple-key-files.patch
@@ -87,21 +87,27 @@ diff -u pam_ssh_agent_auth-0.10.3-orig/pam_ssh_agent_auth.c pam_ssh_agent_auth-0
  
      /*
       * PAM_USER and PAM_RUSER do not necessarily have to get set by the calling application, and we may be unable to divine the latter.
-@@ -187,16 +184,17 @@
+@@ -184,5 +181,5 @@
       */
  
      if(user && strlen(ruser) > 0) {
 -        pamsshagentauth_verbose("Attempting authentication: `%s' as `%s' using %s", ruser, user, authorized_keys_file);
 +        pamsshagentauth_verbose("Attempting authentication: `%s' as `%s' using %s", ruser, user, authorized_keys_file_input);
  
+@@ -201,3 +197,3 @@
+                 retval = PAM_SUCCESS;
+-                pamsshagentauth_logit("Authenticated (sshd): `%s' as `%s' using %s", ruser, user, authorized_keys_file);
++                pamsshagentauth_logit("Authenticated (sshd): `%s' as `%s' using %s", ruser, user, authorized_keys_file_input);
+ 
+@@ -211,11 +208,12 @@
          /*
           * this pw_uid is used to validate the SSH_AUTH_SOCK, and so must be the uid of the ruser invoking the program, not the target-user
           */
 -        if(pamsshagentauth_find_authorized_keys(user, ruser, servicename)) { /* getpwnam(ruser)->pw_uid)) { */
--            pamsshagentauth_logit("Authenticated: `%s' as `%s' using %s", ruser, user, authorized_keys_file);
+-            pamsshagentauth_logit("Authenticated (agent): `%s' as `%s' using %s", ruser, user, authorized_keys_file);
 +        const char *key_file;
 +        if((key_file = pamsshagentauth_find_authorized_keys(user, ruser, servicename))) { /* getpwnam(ruser)->pw_uid)) { */
-+            pamsshagentauth_logit("Authenticated: `%s' as `%s' using %s", ruser, user, key_file);
++            pamsshagentauth_logit("Authenticated (agent): `%s' as `%s' using %s", ruser, user, key_file);
              retval = PAM_SUCCESS;
          } else {
 -            pamsshagentauth_logit("Failed Authentication: `%s' as `%s' using %s", ruser, user, authorized_keys_file);
diff --git a/pkgs/os-specific/linux/radeontop/default.nix b/pkgs/os-specific/linux/radeontop/default.nix
index 3d26914d4f9..f55b09f6991 100644
--- a/pkgs/os-specific/linux/radeontop/default.nix
+++ b/pkgs/os-specific/linux/radeontop/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "radeontop";
-  version = "2019-06-03";
+  version = "1.3";
 
   src = fetchFromGitHub {
-    sha256 = "1b1m30r2nfwqkajqw6m01xmfhlq83z1qylyijxg7962mp9x2k0gw";
-    rev = "v1.2";
+    sha256 = "sha256-tnIxM0+RfOIt714fEUWRP/4rEPHaOuCZFit9/RPdxis=";
+    rev = "v${version}";
     repo = "radeontop";
     owner = "clbr";
   };
diff --git a/pkgs/os-specific/linux/raspberrypi-eeprom/default.nix b/pkgs/os-specific/linux/raspberrypi-eeprom/default.nix
index ff9c8f4ce8b..ee5ead73bc1 100644
--- a/pkgs/os-specific/linux/raspberrypi-eeprom/default.nix
+++ b/pkgs/os-specific/linux/raspberrypi-eeprom/default.nix
@@ -1,15 +1,15 @@
 { stdenvNoCC, lib, fetchFromGitHub, makeWrapper
-, python3, binutils-unwrapped, findutils, kmod, pciutils, raspberrypi-tools
+, python3, binutils-unwrapped, findutils, kmod, pciutils, libraspberrypi
 }:
 stdenvNoCC.mkDerivation {
   pname = "raspberrypi-eeprom";
-  version = "unstable-2020-10-05";
+  version = "2020-12-11";
 
   src = fetchFromGitHub {
     owner = "raspberrypi";
     repo = "rpi-eeprom";
-    rev = "718820bcebd21d4a619fa262d9b9cf3acbf110f8";
-    sha256 = "1277jsiyv34dqpandva8kxy1s0y5ql344pl9gk84avzp1mqjnv4g";
+    rev = "54a9796abbee59067bff9da6b90c1014178f2c21";
+    sha256 = "0yp7bn444n6yisp4hiblrm00rrvrf213amzb4sh96mlb5nhxspqk";
   };
 
   buildInputs = [ python3 ];
@@ -35,7 +35,7 @@ stdenvNoCC.mkDerivation {
     patchShebangs $out/bin
     wrapProgram $out/bin/rpi-eeprom-update \
       --set FIRMWARE_ROOT $out/share/rpi-eeprom \
-      ${lib.optionalString stdenvNoCC.isAarch64 "--set VCMAILBOX ${raspberrypi-tools}/bin/vcmailbox"} \
+      ${lib.optionalString stdenvNoCC.isAarch64 "--set VCMAILBOX ${libraspberrypi}/bin/vcmailbox"} \
       --prefix PATH : "${lib.makeBinPath ([
         binutils-unwrapped
         findutils
@@ -43,7 +43,7 @@ stdenvNoCC.mkDerivation {
         pciutils
         (placeholder "out")
       ] ++ lib.optionals stdenvNoCC.isAarch64 [
-        raspberrypi-tools
+        libraspberrypi
       ])}"
   '';
 
diff --git a/pkgs/os-specific/linux/rdma-core/default.nix b/pkgs/os-specific/linux/rdma-core/default.nix
index 042a54ff157..339a6cbbf29 100644
--- a/pkgs/os-specific/linux/rdma-core/default.nix
+++ b/pkgs/os-specific/linux/rdma-core/default.nix
@@ -4,7 +4,7 @@
 } :
 
 let
-  version = "31.2";
+  version = "33.0";
 
 in stdenv.mkDerivation {
   pname = "rdma-core";
@@ -14,7 +14,7 @@ in stdenv.mkDerivation {
     owner = "linux-rdma";
     repo = "rdma-core";
     rev = "v${version}";
-    sha256 = "0njfn8ziip57a2s435d4s0p3yylb85y7hdgbq660vwpsia9fb4sq";
+    sha256 = "04q4z95nxxxjc674qnbwn19bv18nl3x7xwp6aql17h1cw3gdmhw4";
   };
 
   nativeBuildInputs = [ cmake pkgconfig pandoc docutils makeWrapper ];
diff --git a/pkgs/os-specific/linux/rtl8821cu/default.nix b/pkgs/os-specific/linux/rtl8821cu/default.nix
index e45c70993a6..35dbd1a9ee1 100644
--- a/pkgs/os-specific/linux/rtl8821cu/default.nix
+++ b/pkgs/os-specific/linux/rtl8821cu/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchFromGitHub, kernel, bc }:
 stdenv.mkDerivation rec {
   name = "rtl8821cu-${kernel.version}-${version}";
-  version = "unstable-2020-08-21";
+  version = "unstable-2020-12-21";
 
   src = fetchFromGitHub {
     owner = "brektrou";
     repo = "rtl8821cu";
-    rev = "45a8b4393e3281b969822c81bd93bdb731d58472";
-    sha256 = "1995zs1hvlxjhbh2w7zkwr824z19cgc91s00g7yhm5d7zjav14rd";
+    rev = "428a0820487418ec69c0edb91726d1cf19763b1e";
+    sha256 = "1ccl94727yq7gzn37ky91k0736cambgnkaa37r2f2hinpl9qdd8q";
   };
 
   hardeningDisable = [ "pic" ];
diff --git a/pkgs/os-specific/linux/shadow/default.nix b/pkgs/os-specific/linux/shadow/default.nix
index 7399ac90586..59cc59d7714 100644
--- a/pkgs/os-specific/linux/shadow/default.nix
+++ b/pkgs/os-specific/linux/shadow/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchpatch, fetchFromGitHub, autoreconfHook, libxslt, libxml2
-, docbook_xml_dtd_45, docbook_xsl, itstool, flex, bison
+{ stdenv, nixosTests, fetchpatch, fetchFromGitHub, autoreconfHook, libxslt
+, libxml2 , docbook_xml_dtd_45, docbook_xsl, itstool, flex, bison
 , pam ? null, glibcCross ? null
 }:
 
@@ -86,5 +86,6 @@ stdenv.mkDerivation rec {
 
   passthru = {
     shellPath = "/bin/nologin";
+    tests = { inherit (nixosTests) shadow; };
   };
 }
diff --git a/pkgs/os-specific/linux/syslinux/default.nix b/pkgs/os-specific/linux/syslinux/default.nix
index 28681aed564..559fb6219b4 100644
--- a/pkgs/os-specific/linux/syslinux/default.nix
+++ b/pkgs/os-specific/linux/syslinux/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation {
       url = mkURL "26f0e7b2" "0018-prevent-pow-optimization.patch";
       sha256 = "1c8g0jz5yj9a0rsmryx9vdjsw4hw8mjfcg05c9pmyjg85w3dfp3m";
     })
+    ./gcc10.patch
   ];
 
   postPatch = ''
diff --git a/pkgs/os-specific/linux/syslinux/gcc10.patch b/pkgs/os-specific/linux/syslinux/gcc10.patch
new file mode 100644
index 00000000000..f4893a91231
--- /dev/null
+++ b/pkgs/os-specific/linux/syslinux/gcc10.patch
@@ -0,0 +1,33 @@
+diff --git a/dos/string.h b/dos/string.h
+index f648de2..a502132 100644
+--- a/dos/string.h
++++ b/dos/string.h
+@@ -5,12 +5,13 @@
+ #ifndef _STRING_H
+ #define _STRING_H
+ 
++#include <stddef.h>
++
+ /* Standard routines */
+ #define memcpy(a,b,c)	__builtin_memcpy(a,b,c)
+ #define memmove(a,b,c)	__builtin_memmove(a,b,c)
+ #define memset(a,b,c)	__builtin_memset(a,b,c)
+ #define strcpy(a,b)	__builtin_strcpy(a,b)
+-#define strlen(a)	__builtin_strlen(a)
+ 
+ /* This only returns true or false */
+ static inline int memcmp(const void *__m1, const void *__m2, unsigned int __n)
+@@ -21,6 +22,13 @@ static inline int memcmp(const void *__m1, const void *__m2, unsigned int __n)
+     return rv;
+ }
+ 
++static inline size_t strlen(const char *s)
++{
++    size_t len = 0;
++    while (*s++) len++;
++    return len;
++}
++
+ extern char *strchr(const char *s, int c);
+ 
+ #endif /* _STRING_H */
diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix
index f1a0f06eb58..e6cb589c9bf 100644
--- a/pkgs/os-specific/linux/systemd/default.nix
+++ b/pkgs/os-specific/linux/systemd/default.nix
@@ -111,7 +111,7 @@ assert withCryptsetup ->
 let
   wantCurl = withRemote || withImportd;
 
-  version = "247";
+  version = "247.2";
 in
 stdenv.mkDerivation {
   inherit version pname;
@@ -120,9 +120,9 @@ stdenv.mkDerivation {
   # This has proven to be less error-prone than the previous systemd fork.
   src = fetchFromGitHub {
     owner = "systemd";
-    repo = "systemd";
+    repo = "systemd-stable";
     rev = "v${version}";
-    sha256 = "1nwsr6p65zy5jpabvjbszq5g556l1npaf2xsik4p4pvjjwnn1nx6";
+    sha256 = "091pwrvxz3gcf80shlp28d6l4gvjzc6pb61v4mwxmk9d71qaq7ry";
   };
 
   # If these need to be regenerated, `git am path/to/00*.patch` them into a
diff --git a/pkgs/os-specific/linux/tomb/default.nix b/pkgs/os-specific/linux/tomb/default.nix
index 9a21aab9f25..0c5a02061b8 100644
--- a/pkgs/os-specific/linux/tomb/default.nix
+++ b/pkgs/os-specific/linux/tomb/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tomb";
-  version = "2.8";
+  version = "2.8.1";
 
   src = fetchFromGitHub {
     owner  = "dyne";
     repo   = "Tomb";
     rev    = "v${version}";
-    sha256 = "sha256-bmkUwj0FFq51MUPbNK7xsyyq4swjZcwFeMwOO3fXCzA=";
+    sha256 = "03zj9az5626kjg96rkqr5sjydqwlrzhz0gq35r62sajv6mn2qm6s";
   };
 
   buildInputs = [ sudo zsh pinentry ];
diff --git a/pkgs/os-specific/linux/usbguard/default.nix b/pkgs/os-specific/linux/usbguard/default.nix
index 0ece2f83600..e2746c7a1e7 100644
--- a/pkgs/os-specific/linux/usbguard/default.nix
+++ b/pkgs/os-specific/linux/usbguard/default.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "The USBGuard software framework helps to protect your computer against BadUSB";
     homepage = "https://usbguard.github.io/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = [ maintainers.tnias ];
   };
 }
diff --git a/pkgs/os-specific/linux/util-linux/default.nix b/pkgs/os-specific/linux/util-linux/default.nix
index ac6ad8a4bb7..4f8f7cae7f8 100644
--- a/pkgs/os-specific/linux/util-linux/default.nix
+++ b/pkgs/os-specific/linux/util-linux/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "util-linux";
-  version = "2.36";
+  version = "2.36.1";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/util-linux/v${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1cg0m4psswg71v6wrqc2bngcw20fsp01vbijxdzvdf8kxdkiqjwy";
+    sha256 = "1vbyydl1b13lx73di4bhc4br9ih24hcqv7bky0kyrn1c2x1c5yh9";
   };
 
   patches = [
diff --git a/pkgs/os-specific/linux/wireguard/default.nix b/pkgs/os-specific/linux/wireguard/default.nix
index 25a59b14ab8..4ba02fa6c84 100644
--- a/pkgs/os-specific/linux/wireguard/default.nix
+++ b/pkgs/os-specific/linux/wireguard/default.nix
@@ -7,11 +7,11 @@ assert stdenv.lib.versionOlder kernel.version "5.6";
 
 stdenv.mkDerivation rec {
   pname = "wireguard";
-  version = "1.0.20201112";
+  version = "1.0.20201221";
 
   src = fetchzip {
     url = "https://git.zx2c4.com/wireguard-linux-compat/snapshot/wireguard-linux-compat-${version}.tar.xz";
-    sha256 = "sha256-HnYvjZ3VUH79NwNIvyTTygWYbVqEL2ttvlOlLiHhb5s=";
+    sha256 = "sha256-8RPJEk+6NaJP3LNZYEncLlkdrw2jHxNekKwEr+YpHeQ=";
   };
 
   hardeningDisable = [ "pic" ];
diff --git a/pkgs/os-specific/linux/zfs/default.nix b/pkgs/os-specific/linux/zfs/default.nix
index a2464aeb586..8bdf9efd445 100644
--- a/pkgs/os-specific/linux/zfs/default.nix
+++ b/pkgs/os-specific/linux/zfs/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, fetchpatch
-, autoreconfHook, util-linux, nukeReferences, coreutils
+, autoreconfHook269, util-linux, nukeReferences, coreutils
 , perl, buildPackages
 , configFile ? "all"
 
@@ -89,7 +89,7 @@ let
           "PATH=${makeBinPath [ coreutils gawk gnused gnugrep systemd ]}"
       '';
 
-      nativeBuildInputs = [ autoreconfHook nukeReferences ]
+      nativeBuildInputs = [ autoreconfHook269 nukeReferences ]
         ++ optionals buildKernel (kernel.moduleBuildDependencies ++ [ perl ])
         ++ optional buildUser pkgconfig;
       buildInputs = optionals buildUser [ zlib libuuid attr libtirpc ]
diff --git a/pkgs/os-specific/linux/zsa-udev-rules/default.nix b/pkgs/os-specific/linux/zsa-udev-rules/default.nix
new file mode 100644
index 00000000000..76150affe49
--- /dev/null
+++ b/pkgs/os-specific/linux/zsa-udev-rules/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+  pname = "zsa-udev-rules";
+  version = "unstable-2020-12-16";
+
+  # TODO: use version and source from nixpkgs/pkgs/development/tools/wally-cli/default.nix after next release
+  src = fetchFromGitHub {
+    owner = "zsa";
+    repo = "wally";
+    rev = "e5dde3c700beab39fb941c6941e55535bf9b2af6";
+    sha256 = "0pkybi32r1hrmpa1mc8qlzhv7xy5n5rr5ah25lbr0cipp1bda417";
+  };
+
+  # it only installs files
+  dontConfigure = true;
+  dontBuild = true;
+  dontFixup = true;
+
+  installPhase = ''
+    mkdir -p $out/lib/udev/rules.d
+    cp dist/linux64/50-oryx.rules $out/lib/udev/rules.d/
+    cp dist/linux64/50-wally.rules $out/lib/udev/rules.d/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "udev rules for ZSA devices";
+    license = licenses.mit;
+    maintainers = with maintainers; [ davidak ];
+    platforms = platforms.linux;
+    homepage = "https://github.com/zsa/wally/wiki/Linux-install#2-create-a-udev-rule-file";
+  };
+}
diff --git a/pkgs/servers/adminer/default.nix b/pkgs/servers/adminer/default.nix
index 65a4dc37ecc..0e6cd14eef4 100644
--- a/pkgs/servers/adminer/default.nix
+++ b/pkgs/servers/adminer/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, libbsd, fetchurl, phpPackages, php }:
+{ stdenv, fetchurl, php }:
 
 stdenv.mkDerivation rec {
   version = "4.7.8";
@@ -10,22 +10,36 @@ stdenv.mkDerivation rec {
     sha256 = "0k794agvd8pa3mwl0076i7753fzxd41lhr23aih4l2lbdgnzi68z";
   };
 
-  nativeBuildInputs = with phpPackages; [ php composer ];
+  nativeBuildInputs = [
+    php
+    php.packages.composer
+  ];
 
   buildPhase = ''
+    runHook preBuild
+
     composer --no-cache run compile
+
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
+
     mkdir $out
     cp adminer-${version}.php $out/adminer.php
+
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
     description = "Database management in a single PHP file";
     homepage = "https://www.adminer.org";
-    license = with licenses; [ asl20 gpl2 ];
-    maintainers = with maintainers; [ sstef ];
+    license = with licenses; [ asl20 gpl2Only ];
+    maintainers = with maintainers; [
+      jtojnar
+      sstef
+    ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/servers/apache-kafka/default.nix b/pkgs/servers/apache-kafka/default.nix
index 6daf3251102..9ab14140c67 100644
--- a/pkgs/servers/apache-kafka/default.nix
+++ b/pkgs/servers/apache-kafka/default.nix
@@ -3,51 +3,6 @@
 
 let
   versionMap = {
-    "0.9" = {
-      kafkaVersion = "0.9.0.1";
-      scalaVersion = "2.11";
-      sha256 = "0ykcjv5dz9i5bws9my2d60pww1g9v2p2nqr67h0i2xrjm7az8a6v";
-    };
-    "0.10" = {
-      kafkaVersion = "0.10.2.2";
-      scalaVersion = "2.12";
-      sha256 = "13wibnz7n7znv2g13jlpkz1r0y73qy5b02pdqhsq7cl72h9s6wms";
-    };
-    "0.11" = {
-      kafkaVersion = "0.11.0.3";
-      scalaVersion = "2.12";
-      sha256 = "0zkzp9a8lcfcpavks131119v10hpn90sc0pw4f90jc4zn2yw3rgd";
-    };
-    "1.0" = {
-      kafkaVersion = "1.0.2";
-      scalaVersion = "2.12";
-      sha256 = "0cmq8ww1lbkp3ipy9d1q8c1yz4kfwj0v4ynnhsk1i48sqlmvwybj";
-    };
-    "1.1" = {
-      kafkaVersion = "1.1.1";
-      scalaVersion = "2.12";
-      sha256 = "13vg0wm2fsd06pfw05m4bhcgbjmb2bmd4i31zfs48w0f7hjc8qf2";
-    };
-    "2.0" = {
-      kafkaVersion = "2.0.1";
-      scalaVersion = "2.12";
-      sha256 = "0i62q3542cznf711kiskaa30l06gq9ckszlxja4k1vs1flxz5khl";
-    };
-    "2.1" = {
-      kafkaVersion = "2.1.1";
-      scalaVersion = "2.12";
-      sha256 = "1gm7xiqkbg415mbj9mlazcndmky81xvg4wmz0h94yv1whp7fslr0";
-    };
-    "2.2" = {
-      kafkaVersion = "2.2.1";
-      scalaVersion = "2.12";
-      sha256 = "1svdnhdzq9a6jsig513i0ahaysfgar5i385bq9fz7laga6a4z3qv";
-    };
-    "2.3" = {
-      kafkaVersion = "2.3.1";
-      scalaVersion = "2.12";
-      sha256 = "0bldfrvd351agm237icnvn36va67crpnzmbh6dlq84ip910xsgas";
-    };
     "2.4" = {
       kafkaVersion = "2.4.1";
       scalaVersion = "2.12";
diff --git a/pkgs/servers/computing/slurm/default.nix b/pkgs/servers/computing/slurm/default.nix
index bde82468b72..9e2c482e0d9 100644
--- a/pkgs/servers/computing/slurm/default.nix
+++ b/pkgs/servers/computing/slurm/default.nix
@@ -9,7 +9,7 @@
 
 stdenv.mkDerivation rec {
   pname = "slurm";
-  version = "20.02.6.1";
+  version = "20.11.2.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 = "0vllyljsmv3y9hw4vfgnz9cnjqhlk55dy1bipssw872aldlxfcdk";
+    sha256 = "02vz386ix28yr2lrn9z0hycqmw1d0npvwvx51fhp2mav66rrx79p";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/servers/demoit/default.nix b/pkgs/servers/demoit/default.nix
index 675792da680..9a78d5c7c18 100644
--- a/pkgs/servers/demoit/default.nix
+++ b/pkgs/servers/demoit/default.nix
@@ -6,7 +6,6 @@
 buildGoModule {
   pname = "demoit";
   version = "unstable-2020-06-11";
-  goPackagePath = "github.com/dgageot/demoit";
 
   src = fetchFromGitHub {
     owner = "dgageot";
diff --git a/pkgs/servers/dns/bind/default.nix b/pkgs/servers/dns/bind/default.nix
index 61ab6f98d21..858a4fcb5fa 100644
--- a/pkgs/servers/dns/bind/default.nix
+++ b/pkgs/servers/dns/bind/default.nix
@@ -10,11 +10,11 @@ assert enablePython -> python3 != null;
 
 stdenv.mkDerivation rec {
   pname = "bind";
-  version = "9.16.8";
+  version = "9.16.10";
 
   src = fetchurl {
     url = "https://downloads.isc.org/isc/bind9/${version}/${pname}-${version}.tar.xz";
-    sha256 = "0ccdbqmpvnxlbrxjsx2w8ir4xh961svzcw7n87n8dglj6rb9r6wy";
+    sha256 = "sha256-vEf8AZxiBeamv7g5xUShRyMh3wU3upBbhGpMv/4zYrM=";
   };
 
   outputs = [ "out" "lib" "dev" "man" "dnsutils" "host" ];
@@ -22,11 +22,6 @@ stdenv.mkDerivation rec {
   patches = [
     ./dont-keep-configure-flags.patch
     ./remove-mkdir-var.patch
-    # Fix cross-compilation (will be included in next release after 9.16.8)
-    (fetchpatch {
-      url = "https://gitlab.isc.org/isc-projects/bind9/-/commit/35ca6df07277adff4df7472a0b01ea5438cdf1ff.patch";
-      sha256 = "1sj0hcd0wgkam7hrbp2vw2yymmni4azr9ixd9shz1l6ja90bdj9h";
-    })
   ];
 
   nativeBuildInputs = [ perl pkg-config ];
diff --git a/pkgs/servers/dns/ncdns/default.nix b/pkgs/servers/dns/ncdns/default.nix
index f1d124176bb..b046aff12bd 100644
--- a/pkgs/servers/dns/ncdns/default.nix
+++ b/pkgs/servers/dns/ncdns/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "ncdns";
-  version = "0.0.10.3";
+  version = "2020-11-22";
 
   goPackagePath = "github.com/namecoin/ncdns";
   goDeps = ./deps.nix;
@@ -10,18 +10,14 @@ buildGoPackage rec {
   src = fetchFromGitHub {
     owner = "namecoin";
     repo = "ncdns";
-    rev = "v${version}";
-    sha256 = "12q5al48mkjhgyk7z5wyklzzrdbcqhwxl79axa4gh9ld75prghbq";
+    rev = "2fa54cd3b5480dba82170ab8ecb511fbd4977c41";
+    sha256 = "0mrxbg5lmy3s281ff6nxpp03z4mqwq7h5hkqm9qy8nb280x1sx7h";
   };
 
   patches = [ ./fix-tpl-path.patch ];
 
   buildInputs = [ libcap ];
 
-  preBuild = ''
-    go generate github.com/namecoin/x509-signature-splice/...
-  '';
-
   postInstall = ''
     mkdir -p "$out/share"
     cp -r "$src/_doc" "$out/share/doc"
diff --git a/pkgs/servers/dns/ncdns/deps.nix b/pkgs/servers/dns/ncdns/deps.nix
index 7ac3f2897e0..f48faa9648b 100644
--- a/pkgs/servers/dns/ncdns/deps.nix
+++ b/pkgs/servers/dns/ncdns/deps.nix
@@ -5,8 +5,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/BurntSushi/toml";
-      rev = "3012a1dbe2e4bd1391d42b32f0577cb7bbc7f005";
-      sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
+      rev = "ea60c4def909bde529d41a7e0674e31eba751da3";
+      sha256 = "08xhd9jlgkql8kqpi98aaq9k8hgb6x7197r6crp84r1ic8k7im4y";
     };
   }
   {
@@ -23,8 +23,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/alecthomas/units";
-      rev = "f65c72e2690dc4b403c8bd637baf4611cd4c069b";
-      sha256 = "04jyqm7m3m01ppfy1f9xk4qvrwvs78q9zml6llyf2b3v5k6b2bbc";
+      rev = "1786d5ef83d4868925e518b2995c30430aec0f06";
+      sha256 = "1grs2y4gnyq8wv9w61c231a01c7qd916b7rxqy798b8sfirr3ci8";
     };
   }
   {
@@ -32,8 +32,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/btcsuite/btcd";
-      rev = "9f0179fd2c46caba343b6515602cf37172f14d5f";
-      sha256 = "0cvpjsxlyzm04pwzi7nj43k9h5wfxj07jdc49qxsav5323v1nvka";
+      rev = "6bd4c64a54faeb343d5e3c1ee5802450a291787f";
+      sha256 = "15plh7rrmx1ydy3ldnylr727s9szrrkqzbf2ma2ka2qag1vy6nvb";
     };
   }
   {
@@ -50,8 +50,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/btcsuite/btcutil";
-      rev = "b2bf7f89d674a3702182b7e15f52807896051af3";
-      sha256 = "0wwykb4cbq8xj2mls2mxma5vaahdgdy3vqw1r2fi4wyj0yr4kyw9";
+      rev = "a53e38424cce1c9de2062b69364efd35fd428d15";
+      sha256 = "1izjvgi0d5wnknfwdnqa196hn4vj1n5ga7swbhcfsgghk2zngwr4";
     };
   }
   {
@@ -77,8 +77,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/coreos/go-systemd";
-      rev = "b51e752dd1c9c618846f8bc5b95ab524bd7b11c2";
-      sha256 = "127dj1iwp69yj74nwh9ckgc0mkk1mv4yzbxmbdxix1r7j6q35z3j";
+      rev = "87511f396ae9991f8589f6e6dcf58e28a91ba52b";
+      sha256 = "139ylav4vl4h7ndy1xkj0dn45rbknv2rfjlifrj622n96c4rrazx";
     };
   }
   {
@@ -131,8 +131,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/kr/pretty";
-      rev = "4e0886370c3a67530192c6a238cff68f56c141b0";
-      sha256 = "1ywbfzz1h3a3qd8rpkiqwi1dm4w8ls9ijb4x1b7567grns9f0vnp";
+      rev = "a883a8422cd235c67c6c4fdcb7bbb022143e10b1";
+      sha256 = "0vp5ijbapw8j52c3l992m1wm8nhl23n68xk3lqxhad3srxmdb9z4";
     };
   }
   {
@@ -140,8 +140,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/kr/text";
-      rev = "702c74938df48b97370179f33ce2107bd7ff3b3e";
-      sha256 = "0hf58ypz6rxsw6nx3i856whir9lvy4sdx946wbw1nfaf2rdmr9vx";
+      rev = "cafcf9720371e5625e7300397de921f58e069d17";
+      sha256 = "0q164xvv7nwgjq2l2lln4y7yp036jpwx8v7yfsz432czl10d4g0h";
     };
   }
   {
@@ -158,8 +158,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/miekg/dns";
-      rev = "203ad2480beb9330454efc215d21f16c607e8174";
-      sha256 = "12i2l79whv7a8c27f1dvq4wqikx4d0l30r1ja68zfgrgik6vryxq";
+      rev = "23c4faca9d32b0abbb6e179aa1aadc45ac53a916";
+      sha256 = "1iir2yrx71wg0ab9j4qm70aycym2pxrb043dmbknyzbw9s43cabz";
     };
   }
   {
@@ -190,6 +190,15 @@
     };
   }
   {
+    goPackagePath = "github.com/namecoin/splicesign";
+    fetch = {
+      type = "git";
+      url = "https://github.com/namecoin/splicesign";
+      rev = "38bb6fb3ec66c72ecb3a14e1e714768cc6e56ed7";
+      sha256 = "0irlbcrarbrvzdnph9kxrf8bkij1lzqpp5mxh8i60n5ii7bj0wsd";
+    };
+  }
+  {
     goPackagePath = "github.com/namecoin/tlsrestrictnss";
     fetch = {
       type = "git";
@@ -199,21 +208,21 @@
     };
   }
   {
-    goPackagePath = "github.com/namecoin/x509-signature-splice";
+    goPackagePath = "github.com/ogier/pflag";
     fetch = {
       type = "git";
-      url = "https://github.com/namecoin/x509-signature-splice";
-      rev = "d8b4bf2df701c55239a9fe82bb1e7bea10e30599";
-      sha256 = "0jlj4gb60s7b69d8yx6ljhxgvqgjz01n0h59fswblw09wfba8c4j";
+      url = "https://github.com/ogier/pflag";
+      rev = "73e519546fc0bce0c395610afcf6aa4e5aec88eb";
+      sha256 = "114zpgl6l47gsz0sifpq62hi2i6k0ra9hi8wx7d39giablf9i4ii";
     };
   }
   {
-    goPackagePath = "github.com/ogier/pflag";
+    goPackagePath = "github.com/rogpeppe/go-internal";
     fetch = {
       type = "git";
-      url = "https://github.com/ogier/pflag";
-      rev = "45c278ab3607870051a2ea9040bb85fcb8557481";
-      sha256 = "0620v75wppfd84d95n312wpngcb73cph4q3ivs1h0waljfnsrd5l";
+      url = "https://github.com/rogpeppe/go-internal";
+      rev = "eea92b9e2c4424af886c8c620efa50fff5a56387";
+      sha256 = "0lf4x32af40ixnysfzfm9r08gpsd3k3x7p3hr2k8q72llsa1zivz";
     };
   }
   {
@@ -221,8 +230,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/shiena/ansicolor";
-      rev = "a422bbe96644373c5753384a59d678f7d261ff10";
-      sha256 = "1dcn8a9z6a5dxa2m3fkppnajcls8lanbl38qggkf646yi5qsk1hc";
+      rev = "c7312218db184c554578219828d6c9498d02dcb1";
+      sha256 = "14mhp5ir1vlshja9bam6df5wpbqdwg46qn1ysixjiap535ajhkza";
     };
   }
   {
@@ -230,8 +239,8 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/crypto";
-      rev = "279210d13fedf5be6d476bad5df6a015042bb905";
-      sha256 = "0syi72jba84nn1z89bqpcv94wjvzj71dwg1pj30xrcixcz1zsg26";
+      rev = "eec23a3978adcfd26c29f4153eaa3e3d9b2cc53a";
+      sha256 = "18cf6vhmx7v83ahyil7j8hkwhwf1012bgixglz7a6nc35qwwqb3r";
     };
   }
   {
@@ -239,8 +248,8 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/net";
-      rev = "627f9648deb96c27737b83199d44bb5c1010cbcf";
-      sha256 = "0ziz7i9mhz6dy2f58dsa83flkk165w1cnazm7yksql5i9m7x099z";
+      rev = "6772e930b67bb09bf22262c7378e7d2f67cf59d1";
+      sha256 = "0zlr39dxbg0fxfdrc20c4x0pw43n9kz749ssml97cdzqy116p5qa";
     };
   }
   {
@@ -248,8 +257,8 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/sys";
-      rev = "6fdc65e7d9800cc59998e8ac0d9406a20ff5f399";
-      sha256 = "0al5gzij4qkrp11i1h8j7288pg6y716zyh2v0886pv2knha7gjvj";
+      rev = "0d417f6369309be088e227ead8736fb722d759d3";
+      sha256 = "1cn19s7kg91alianr1c1bp6k6p1wccigg19h6fchd84jb2zakkvs";
     };
   }
   {
diff --git a/pkgs/servers/dns/pdns-recursor/default.nix b/pkgs/servers/dns/pdns-recursor/default.nix
index 8257d4ef252..f23aa6b02c1 100644
--- a/pkgs/servers/dns/pdns-recursor/default.nix
+++ b/pkgs/servers/dns/pdns-recursor/default.nix
@@ -8,11 +8,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "pdns-recursor";
-  version = "4.4.1";
+  version = "4.4.2";
 
   src = fetchurl {
     url = "https://downloads.powerdns.com/releases/pdns-recursor-${version}.tar.bz2";
-    sha256 = "162nczipxnsbgg7clap697yikxjz1vdsjkaxxsn6hb6l6m3a6zzr";
+    sha256 = "1kzmliim2pwh04y3y6bpai9fm0qmdicrmff09fv5h5wahi4pzfdh";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/servers/dns/powerdns/default.nix b/pkgs/servers/dns/powerdns/default.nix
index 0f9f91ebf86..5dbc387868c 100644
--- a/pkgs/servers/dns/powerdns/default.nix
+++ b/pkgs/servers/dns/powerdns/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, nixosTests
+{ stdenv, fetchurl, fetchpatch, pkgconfig, nixosTests
 , boost, libyamlcpp, libsodium, sqlite, protobuf, openssl, systemd
 , mysql57, postgresql, lua, openldap, geoip, curl, unixODBC
 }:
@@ -12,6 +12,14 @@ stdenv.mkDerivation rec {
     sha256 = "0if27znz528sir52y9i4gcfhdsym7yxiwjgffy9lpscf1426q56m";
   };
 
+  patches = [
+    (fetchpatch { # remove for >= 4.4.0
+      name = "gcc-10_undefined-reference.diff";
+      url = "https://github.com/PowerDNS/pdns/commit/05c9dd77b28.diff";
+      sha256 = "1m9szbi02h9kcabgw3kb8k9qrb54d34z0qzizrlfiw3hxs6c2zql";
+    })
+  ];
+
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
     boost mysql57.connector-c postgresql lua openldap sqlite protobuf geoip
diff --git a/pkgs/servers/ftp/vsftpd/default.nix b/pkgs/servers/ftp/vsftpd/default.nix
index 1ef624f2a41..d5766b8d19e 100644
--- a/pkgs/servers/ftp/vsftpd/default.nix
+++ b/pkgs/servers/ftp/vsftpd/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
   '';
 
   NIX_LDFLAGS = "-lcrypt -lssl -lcrypto -lpam -lcap";
+  NIX_CFLAGS_COMPILE = "-Wno-error=enum-conversion";
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/servers/gobetween/default.nix b/pkgs/servers/gobetween/default.nix
index 9f28a89f51e..f429f9ad385 100644
--- a/pkgs/servers/gobetween/default.nix
+++ b/pkgs/servers/gobetween/default.nix
@@ -1,4 +1,6 @@
-{ buildGoModule, fetchFromGitHub, lib, enableStatic ? false }:
+{ stdenv, buildGoModule, fetchFromGitHub, lib
+, enableStatic ? stdenv.hostPlatform.isStatic
+}:
 
 buildGoModule rec {
   pname = "gobetween";
diff --git a/pkgs/servers/grocy/0001-Define-configs-with-env-vars.patch b/pkgs/servers/grocy/0001-Define-configs-with-env-vars.patch
index ed315c854c8..0d6ae781b75 100644
--- a/pkgs/servers/grocy/0001-Define-configs-with-env-vars.patch
+++ b/pkgs/servers/grocy/0001-Define-configs-with-env-vars.patch
@@ -1,20 +1,20 @@
-From 931958d8f11cb55f2e88a178a3b828f3c537eba8 Mon Sep 17 00:00:00 2001

+From 7ed6c641cc501246931721700b73f40dce7e8f4b Mon Sep 17 00:00:00 2001

 From: Maximilian Bosch <maximilian@mbosch.me>

-Date: Fri, 6 Mar 2020 23:43:58 +0100

+Date: Tue, 22 Dec 2020 15:38:56 +0100

 Subject: [PATCH 1/2] Define configs with env vars

 

 ---

  app.php                      | 4 ++--

  services/DatabaseService.php | 2 +-

  services/FilesService.php    | 2 +-

- services/StockService.php    | 2 +-

- 4 files changed, 5 insertions(+), 5 deletions(-)

+ services/StockService.php    | 3 +--

+ 4 files changed, 5 insertions(+), 6 deletions(-)

 

 diff --git a/app.php b/app.php

-index af65ad1..4963c28 100644

+index 8176ebe..04432ba 100644

 --- a/app.php

 +++ b/app.php

-@@ -25,7 +25,7 @@ else

+@@ -10,7 +10,7 @@ use Slim\Factory\AppFactory;

  require_once __DIR__ . '/vendor/autoload.php';

  

  // Load config files

@@ -23,33 +23,32 @@ index af65ad1..4963c28 100644
  require_once __DIR__ . '/config-dist.php'; // For not in own config defined values we use the default ones

  

  // Definitions for dev/demo/prerelease mode

-@@ -50,7 +50,7 @@ $app = AppFactory::create();

+@@ -37,7 +37,7 @@ $app = AppFactory::create();

+ 

  $container = $app->getContainer();

- $container->set('view', function(Container $container)

- {

+ $container->set('view', function (Container $container) {

 -	return new Slim\Views\Blade(__DIR__ . '/views', GROCY_DATAPATH . '/viewcache');

-+	return new \Slim\Views\Blade(__DIR__ . '/views', getenv('GROCY_CACHE_DIR'));

++	return new Slim\Views\Blade(__DIR__ . '/views', getenv('GROCY_CACHE_DIR'));

  });

- $container->set('LoginControllerInstance', function(Container $container)

- {

+ $container->set('UrlManager', function (Container $container) {

+ 	return new UrlManager(GROCY_BASE_URL);

 diff --git a/services/DatabaseService.php b/services/DatabaseService.php

-index 23fc7b9..daa1993 100644

+index d1080b0..8bc4ee1 100644

 --- a/services/DatabaseService.php

 +++ b/services/DatabaseService.php

-@@ -25,7 +25,7 @@ class DatabaseService

- 			return GROCY_DATAPATH . '/grocy_' . GROCY_CULTURE . '.db';

+@@ -105,6 +105,6 @@ class DatabaseService

+ 			return GROCY_DATAPATH . '/grocy_' . $dbSuffix . '.db';

  		}

  

 -		return GROCY_DATAPATH . '/grocy.db';

 +		return getenv('GROCY_DB_FILE');

  	}

- 

-     private static $DbConnectionRaw = null;

+ }

 diff --git a/services/FilesService.php b/services/FilesService.php

-index cecdae3..357298d 100644

+index 8c1483e..8f74b4b 100644

 --- a/services/FilesService.php

 +++ b/services/FilesService.php

-@@ -12,7 +12,7 @@ class FilesService extends BaseService

+@@ -70,7 +70,7 @@ class FilesService extends BaseService

  	{

  		parent::__construct();

  

@@ -59,18 +58,19 @@ index cecdae3..357298d 100644
  		if (!file_exists($this->StoragePath))

  		{

 diff --git a/services/StockService.php b/services/StockService.php

-index bfde3fc..53b2245 100644

+index 4741b4b..6d4e748 100644

 --- a/services/StockService.php

 +++ b/services/StockService.php

-@@ -934,7 +934,7 @@ class StockService extends BaseService

+@@ -1374,8 +1374,7 @@ class StockService extends BaseService

  			throw new \Exception('No barcode lookup plugin defined');

  		}

  

 -		$path = GROCY_DATAPATH . "/plugins/$pluginName.php";

-+		$path = getenv('GROCY_PLUGIN_DIR');

+-

++		$path = getenv('GROCY_PLUGIN_DIR') . "/$pluginName.php";

  		if (file_exists($path))

  		{

  			require_once $path;

 -- 

-2.25.0

+2.29.2

 

diff --git a/pkgs/servers/grocy/0002-Remove-check-for-config-file-as-it-s-stored-in-etc-g.patch b/pkgs/servers/grocy/0002-Remove-check-for-config-file-as-it-s-stored-in-etc-g.patch
index e7f84a146fb..b065ca801d5 100644
--- a/pkgs/servers/grocy/0002-Remove-check-for-config-file-as-it-s-stored-in-etc-g.patch
+++ b/pkgs/servers/grocy/0002-Remove-check-for-config-file-as-it-s-stored-in-etc-g.patch
@@ -1,24 +1,24 @@
-From 1556489f0b475ae56e5ed3afba19cc2abb696a76 Mon Sep 17 00:00:00 2001
-From: Maximilian Bosch <maximilian@mbosch.me>
-Date: Thu, 16 Apr 2020 19:37:32 +0200
-Subject: [PATCH 2/2] Remove check for config-file as it's stored in /etc/grocy
-
----
- helpers/PrerequisiteChecker.php | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/helpers/PrerequisiteChecker.php b/helpers/PrerequisiteChecker.php
-index d4bf74c6..ca7686c9 100644
---- a/helpers/PrerequisiteChecker.php
-+++ b/helpers/PrerequisiteChecker.php
-@@ -8,7 +8,6 @@ class PrerequisiteChecker
+From c46323dfc4a3d5bf17f7508f5b5f223858a598c3 Mon Sep 17 00:00:00 2001

+From: Maximilian Bosch <maximilian@mbosch.me>

+Date: Tue, 22 Dec 2020 15:39:15 +0100

+Subject: [PATCH 2/2] Remove check for config-file as it's stored in /etc/grocy

+

+---

+ helpers/PrerequisiteChecker.php | 1 -

+ 1 file changed, 1 deletion(-)

+

+diff --git a/helpers/PrerequisiteChecker.php b/helpers/PrerequisiteChecker.php

+index cbe0a3a..a484db2 100644

+--- a/helpers/PrerequisiteChecker.php

++++ b/helpers/PrerequisiteChecker.php

+@@ -11,7 +11,6 @@ class PrerequisiteChecker

  {

-     public function checkRequirements()

-     {

--        self::checkForConfigFile();

-         self::checkForConfigDistFile();

-         self::checkForComposer();

-         self::checkForYarn();

--- 
-2.25.0
-
+ 	public function checkRequirements()

+ 	{

+-		self::checkForConfigFile();

+ 		self::checkForConfigDistFile();

+ 		self::checkForComposer();

+ 		self::checkForPhpExtensions();

+-- 

+2.29.2

+

diff --git a/pkgs/servers/grocy/default.nix b/pkgs/servers/grocy/default.nix
index 193f3929809..3fd7c1c4cf7 100644
--- a/pkgs/servers/grocy/default.nix
+++ b/pkgs/servers/grocy/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "grocy";
-  version = "2.7.1";
+  version = "3.0.1";
 
   src = fetchurl {
     url = "https://github.com/grocy/grocy/releases/download/v${version}/grocy_${version}.zip";
-    sha256 = "0ab1yxj499vadakq2c1lils3ir6fm02wrdgrirrlar4s4z6c4p7r";
+    sha256 = "sha256-Yjxv0LcLNtpYs4ntBano9NUxwdWgF5etA/M6hUVzOa8=";
   };
 
   nativeBuildInputs = [ unzip ];
@@ -14,6 +14,8 @@ stdenv.mkDerivation rec {
     unzip ${src} -d .
   '';
 
+  # NOTE: if patches are created from a git checkout, those should be modified
+  # with `unixdos` to make sure those apply here.
   patches = [
     ./0001-Define-configs-with-env-vars.patch
     ./0002-Remove-check-for-config-file-as-it-s-stored-in-etc-g.patch
diff --git a/pkgs/servers/home-assistant/appdaemon.nix b/pkgs/servers/home-assistant/appdaemon.nix
index ef92ff9550f..4614e1d64ca 100644
--- a/pkgs/servers/home-assistant/appdaemon.nix
+++ b/pkgs/servers/home-assistant/appdaemon.nix
@@ -59,11 +59,15 @@ in python.pkgs.buildPythonApplication rec {
       --replace "deepdiff==4.3.1" "deepdiff" \
       --replace "voluptuous==0.11.7" "voluptuous" \
       --replace "astral==1.10.1" "astral" \
-      --replace "python-socketio==4.4.0" "python-socketio"
+      --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"
   '';
 
   meta = with lib; {
-    description = "Sandboxed python execution environment for writing automation apps for Home Assistant";
+    description = "Sandboxed Python execution environment for writing automation apps for Home Assistant";
     homepage = "https://github.com/home-assistant/appdaemon";
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg dotlambda ];
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index 456b30cb397..6df1239537e 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -2,12 +2,12 @@
 # Do not edit!
 
 {
-  version = "0.118.5";
+  version = "2020.12.2";
   components = {
     "abode" = ps: with ps; [ abodepy ];
     "accuweather" = ps: with ps; [ accuweather ];
     "acer_projector" = ps: with ps; [ pyserial ];
-    "acmeda" = ps: with ps; [ ]; # missing inputs: aiopulse
+    "acmeda" = ps: with ps; [ aiopulse ];
     "actiontec" = ps: with ps; [ ];
     "adguard" = ps: with ps; [ adguardhome ];
     "ads" = ps: with ps; [ pyads ];
@@ -25,7 +25,7 @@
     "almond" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pyalmond
     "alpha_vantage" = ps: with ps; [ ]; # missing inputs: alpha_vantage
     "amazon_polly" = ps: with ps; [ boto3 ];
-    "ambiclimate" = ps: with ps; [ aiohttp-cors ]; # missing inputs: ambiclimate
+    "ambiclimate" = ps: with ps; [ aiohttp-cors ambiclimate ];
     "ambient_station" = ps: with ps; [ ]; # missing inputs: aioambient
     "amcrest" = ps: with ps; [ ha-ffmpeg ]; # missing inputs: amcrest
     "ampio" = ps: with ps; [ ]; # missing inputs: asmog
@@ -56,7 +56,7 @@
     "aten_pe" = ps: with ps; [ ]; # missing inputs: atenpdu
     "atome" = ps: with ps; [ ]; # missing inputs: pyatome
     "august" = ps: with ps; [ ]; # missing inputs: py-august
-    "aurora" = ps: with ps; [ ];
+    "aurora" = ps: with ps; [ ]; # missing inputs: auroranoaa
     "aurora_abb_powerone" = ps: with ps; [ ]; # missing inputs: aurorapy
     "auth" = ps: with ps; [ aiohttp-cors ];
     "automation" = ps: with ps; [ aiohttp-cors ];
@@ -64,7 +64,7 @@
     "avion" = ps: with ps; [ ]; # missing inputs: avion
     "avri" = ps: with ps; [ pycountry ]; # missing inputs: avri-api
     "awair" = ps: with ps; [ ]; # missing inputs: python_awair
-    "aws" = ps: with ps; [ ]; # missing inputs: aiobotocore
+    "aws" = ps: with ps; [ aiobotocore ];
     "axis" = ps: with ps; [ aiohttp-cors paho-mqtt ]; # missing inputs: axis
     "azure_devops" = ps: with ps; [ ]; # missing inputs: aioazuredevops
     "azure_event_hub" = ps: with ps; [ ]; # missing inputs: azure-eventhub
@@ -76,7 +76,7 @@
     "beewi_smartclim" = ps: with ps; [ ]; # missing inputs: beewi_smartclim
     "bh1750" = ps: with ps; [ smbus-cffi ]; # missing inputs: i2csense
     "binary_sensor" = ps: with ps; [ ];
-    "bitcoin" = ps: with ps; [ ]; # missing inputs: blockchain
+    "bitcoin" = ps: with ps; [ blockchain ];
     "bizkaibus" = ps: with ps; [ ]; # missing inputs: bizkaibus
     "blackbird" = ps: with ps; [ ]; # missing inputs: pyblackbird
     "blebox" = ps: with ps; [ ]; # missing inputs: blebox_uniapi
@@ -113,7 +113,7 @@
     "channels" = ps: with ps; [ ]; # missing inputs: pychannels
     "circuit" = ps: with ps; [ ]; # missing inputs: circuit-webhook
     "cisco_ios" = ps: with ps; [ pexpect ];
-    "cisco_mobility_express" = ps: with ps; [ ]; # missing inputs: ciscomobilityexpress
+    "cisco_mobility_express" = ps: with ps; [ ciscomobilityexpress ];
     "cisco_webex_teams" = ps: with ps; [ ]; # missing inputs: webexteamssdk
     "citybikes" = ps: with ps; [ ];
     "clementine" = ps: with ps; [ ]; # missing inputs: python-clementine-remote
@@ -161,7 +161,7 @@
     "denon" = ps: with ps; [ ];
     "denonavr" = ps: with ps; [ denonavr getmac ];
     "derivative" = ps: with ps; [ ];
-    "deutsche_bahn" = ps: with ps; [ ]; # missing inputs: schiene
+    "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; [ ];
@@ -234,7 +234,7 @@
     "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; [ ]; # missing inputs: pyeverlights
+    "everlights" = ps: with ps; [ pyeverlights ];
     "evohome" = ps: with ps; [ ]; # missing inputs: evohome-async
     "ezviz" = ps: with ps; [ ]; # missing inputs: pyezviz
     "facebook" = ps: with ps; [ ];
@@ -253,6 +253,7 @@
     "filesize" = ps: with ps; [ ];
     "filter" = ps: with ps; [ aiohttp-cors sqlalchemy ];
     "fints" = ps: with ps; [ fints ];
+    "fireservicerota" = ps: with ps; [ ]; # missing inputs: pyfireservicerota
     "firmata" = ps: with ps; [ ]; # missing inputs: pymata-express
     "fitbit" = ps: with ps; [ aiohttp-cors fitbit ];
     "fixer" = ps: with ps; [ ]; # missing inputs: fixerio
@@ -302,7 +303,7 @@
     "github" = ps: with ps; [ PyGithub ];
     "gitlab_ci" = ps: with ps; [ python-gitlab ];
     "gitter" = ps: with ps; [ ]; # missing inputs: gitterpy
-    "glances" = ps: with ps; [ ]; # missing inputs: glances_api
+    "glances" = ps: with ps; [ glances-api ];
     "gntp" = ps: with ps; [ gntp ];
     "goalfeed" = ps: with ps; [ ]; # missing inputs: pysher
     "goalzero" = ps: with ps; [ ]; # missing inputs: goalzero
@@ -421,6 +422,7 @@
     "knx" = ps: with ps; [ ]; # missing inputs: xknx
     "kodi" = ps: with ps; [ ]; # missing inputs: pykodi
     "konnected" = ps: with ps; [ aiohttp-cors ]; # missing inputs: konnected
+    "kulersky" = ps: with ps; [ ]; # missing inputs: pykulersky
     "kwb" = ps: with ps; [ ]; # missing inputs: pykwb
     "lacrosse" = ps: with ps; [ ]; # missing inputs: pylacrosse
     "lametric" = ps: with ps; [ ]; # missing inputs: lmnotify
@@ -506,6 +508,7 @@
     "mold_indicator" = ps: with ps; [ ];
     "monoprice" = ps: with ps; [ ]; # missing inputs: pymonoprice
     "moon" = ps: with ps; [ ];
+    "motion_blinds" = ps: with ps; [ ]; # missing inputs: motionblinds
     "mpchc" = ps: with ps; [ ];
     "mpd" = ps: with ps; [ mpd2 ];
     "mqtt" = ps: with ps; [ aiohttp-cors paho-mqtt ];
@@ -519,7 +522,7 @@
     "mycroft" = ps: with ps; [ ]; # missing inputs: mycroftapi
     "myq" = ps: with ps; [ ]; # missing inputs: pymyq
     "mysensors" = ps: with ps; [ aiohttp-cors paho-mqtt ]; # missing inputs: pymysensors
-    "mystrom" = ps: with ps; [ aiohttp-cors ]; # missing inputs: python-mystrom
+    "mystrom" = ps: with ps; [ aiohttp-cors python-mystrom ];
     "mythicbeastsdns" = ps: with ps; [ ]; # missing inputs: mbddns
     "n26" = ps: with ps; [ ]; # missing inputs: n26
     "nad" = ps: with ps; [ ]; # missing inputs: nad_receiver
@@ -531,7 +534,7 @@
     "ness_alarm" = ps: with ps; [ ]; # missing inputs: nessclient
     "nest" = ps: with ps; [ aiohttp-cors ha-ffmpeg python-nest ]; # missing inputs: google-nest-sdm
     "netatmo" = ps: with ps; [ aiohttp-cors hass-nabucasa pyatmo ];
-    "netdata" = ps: with ps; [ ]; # missing inputs: netdata
+    "netdata" = ps: with ps; [ netdata ];
     "netgear" = ps: with ps; [ ]; # missing inputs: pynetgear
     "netgear_lte" = ps: with ps; [ ]; # missing inputs: eternalegypt
     "netio" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pynetio
@@ -558,6 +561,7 @@
     "nuimo_controller" = ps: with ps; [ ]; # missing inputs: --only-binary=all nuimo
     "nuki" = ps: with ps; [ ]; # missing inputs: pynuki
     "numato" = ps: with ps; [ ]; # missing inputs: numato-gpio
+    "number" = ps: with ps; [ ];
     "nut" = ps: with ps; [ ]; # missing inputs: pynut2
     "nws" = ps: with ps; [ ]; # missing inputs: pynws
     "nx584" = ps: with ps; [ ]; # missing inputs: pynx584
@@ -582,7 +586,7 @@
     "opengarage" = ps: with ps; [ ]; # missing inputs: open-garage
     "openhardwaremonitor" = ps: with ps; [ ];
     "openhome" = ps: with ps; [ ]; # missing inputs: openhomedevice
-    "opensensemap" = ps: with ps; [ ]; # missing inputs: opensensemap-api
+    "opensensemap" = ps: with ps; [ opensensemap-api ];
     "opensky" = ps: with ps; [ ];
     "opentherm_gw" = ps: with ps; [ ]; # missing inputs: pyotgw
     "openuv" = ps: with ps; [ ]; # missing inputs: pyopenuv
@@ -596,7 +600,7 @@
     "otp" = ps: with ps; [ pyotp ];
     "ovo_energy" = ps: with ps; [ ]; # missing inputs: ovoenergy
     "owntracks" = ps: with ps; [ pynacl aiohttp-cors hass-nabucasa paho-mqtt ];
-    "ozw" = ps: with ps; [ aiohttp-cors paho-mqtt ]; # missing inputs: python-openzwave-mqtt
+    "ozw" = ps: with ps; [ aiohttp-cors paho-mqtt ]; # missing inputs: python-openzwave-mqtt[mqtt-client]
     "panasonic_bluray" = ps: with ps; [ ]; # missing inputs: panacotta
     "panasonic_viera" = ps: with ps; [ ]; # missing inputs: panasonic_viera
     "pandora" = ps: with ps; [ pexpect ];
@@ -608,7 +612,7 @@
     "person" = ps: with ps; [ aiohttp-cors pillow ];
     "philips_js" = ps: with ps; [ ]; # missing inputs: ha-philipsjs
     "pi4ioe5v9xxxx" = ps: with ps; [ ]; # missing inputs: pi4ioe5v9xxxx
-    "pi_hole" = ps: with ps; [ ]; # missing inputs: hole
+    "pi_hole" = ps: with ps; [ hole ];
     "picotts" = ps: with ps; [ ];
     "piglow" = ps: with ps; [ ]; # missing inputs: piglow
     "pilight" = ps: with ps; [ ]; # missing inputs: pilight
@@ -618,7 +622,7 @@
     "plaato" = ps: with ps; [ aiohttp-cors ];
     "plant" = ps: with ps; [ sqlalchemy ];
     "plex" = ps: with ps; [ aiohttp-cors plexapi plexauth plexwebsocket pysonos ];
-    "plugwise" = ps: with ps; [ ]; # missing inputs: Plugwise_Smile
+    "plugwise" = ps: with ps; [ ]; # missing inputs: plugwise
     "plum_lightpad" = ps: with ps; [ ]; # missing inputs: plumlightpad
     "pocketcasts" = ps: with ps; [ ]; # missing inputs: pocketcasts
     "point" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pypoint
@@ -697,7 +701,6 @@
     "sabnzbd" = ps: with ps; [ aiohttp-cors netdisco zeroconf ]; # missing inputs: pysabnzbd
     "safe_mode" = ps: with ps; [ aiohttp-cors hass-nabucasa pillow ]; # missing inputs: home-assistant-frontend
     "saj" = ps: with ps; [ ]; # missing inputs: pysaj
-    "salt" = ps: with ps; [ ]; # missing inputs: saltbox
     "samsungtv" = ps: with ps; [ samsungctl samsungtvws ];
     "satel_integra" = ps: with ps; [ ]; # missing inputs: satel_integra
     "scene" = ps: with ps; [ ];
@@ -774,6 +777,7 @@
     "spotify" = ps: with ps; [ aiohttp-cors spotipy ];
     "sql" = ps: with ps; [ sqlalchemy ];
     "squeezebox" = ps: with ps; [ pysqueezebox ];
+    "srp_energy" = ps: with ps; [ ]; # missing inputs: srpenergy
     "ssdp" = ps: with ps; [ aiohttp-cors defusedxml netdisco zeroconf ];
     "starline" = ps: with ps; [ ]; # missing inputs: starline
     "starlingbank" = ps: with ps; [ ]; # missing inputs: starlingbank
@@ -792,7 +796,7 @@
     "supla" = ps: with ps; [ ]; # missing inputs: asyncpysupla
     "surepetcare" = ps: with ps; [ ]; # missing inputs: surepy
     "swiss_hydrological_data" = ps: with ps; [ ]; # missing inputs: swisshydrodata
-    "swiss_public_transport" = ps: with ps; [ ]; # missing inputs: python_opendata_transport
+    "swiss_public_transport" = ps: with ps; [ python-opendata-transport ];
     "swisscom" = ps: with ps; [ ];
     "switch" = ps: with ps; [ ];
     "switchbot" = ps: with ps; [ ]; # missing inputs: PySwitchbot
@@ -801,13 +805,13 @@
     "syncthru" = ps: with ps; [ ]; # missing inputs: pysyncthru url-normalize
     "synology" = ps: with ps; [ ]; # missing inputs: py-synology
     "synology_chat" = ps: with ps; [ ];
-    "synology_dsm" = ps: with ps; [ ]; # missing inputs: python-synology
+    "synology_dsm" = ps: with ps; [ ]; # missing inputs: synologydsm-api
     "synology_srm" = ps: with ps; [ ]; # missing inputs: synology-srm
     "syslog" = ps: with ps; [ ];
     "system_health" = ps: with ps; [ aiohttp-cors ];
     "system_log" = ps: with ps; [ aiohttp-cors ];
     "systemmonitor" = ps: with ps; [ psutil ];
-    "tado" = ps: with ps; [ ]; # missing inputs: python-tado
+    "tado" = ps: with ps; [ python-tado ];
     "tag" = ps: with ps; [ ];
     "tahoma" = ps: with ps; [ ]; # missing inputs: tahoma-api
     "tank_utility" = ps: with ps; [ ]; # missing inputs: tank_utility
@@ -864,9 +868,9 @@
     "twilio" = ps: with ps; [ aiohttp-cors twilio ];
     "twilio_call" = ps: with ps; [ aiohttp-cors twilio ];
     "twilio_sms" = ps: with ps; [ aiohttp-cors twilio ];
+    "twinkly" = ps: with ps; [ ]; # missing inputs: twinkly-client
     "twitch" = ps: with ps; [ ]; # missing inputs: python-twitch-client
     "twitter" = ps: with ps; [ ]; # missing inputs: TwitterAPI
-    "ubee" = ps: with ps; [ ]; # missing inputs: pyubee
     "ubus" = ps: with ps; [ ];
     "ue_smart_radio" = ps: with ps; [ ];
     "uk_transport" = ps: with ps; [ ];
@@ -875,7 +879,7 @@
     "unifiled" = ps: with ps; [ ]; # missing inputs: unifiled
     "universal" = ps: with ps; [ ];
     "upb" = ps: with ps; [ ]; # missing inputs: upb_lib
-    "upc_connect" = ps: with ps; [ ]; # missing inputs: connect-box
+    "upc_connect" = ps: with ps; [ connect-box ];
     "upcloud" = ps: with ps; [ ]; # missing inputs: upcloud-api
     "updater" = ps: with ps; [ distro ];
     "upnp" = ps: with ps; [ async-upnp-client ];
@@ -904,7 +908,7 @@
     "vlc" = ps: with ps; [ python-vlc ];
     "vlc_telnet" = ps: with ps; [ ]; # missing inputs: python-telnet-vlc
     "voicerss" = ps: with ps; [ ];
-    "volkszaehler" = ps: with ps; [ ]; # missing inputs: volkszaehler
+    "volkszaehler" = ps: with ps; [ volkszaehler ];
     "volumio" = ps: with ps; [ ]; # missing inputs: pyvolumio
     "volvooncall" = ps: with ps; [ ]; # missing inputs: volvooncall
     "vultr" = ps: with ps; [ vultr ];
@@ -921,9 +925,9 @@
     "webostv" = ps: with ps; [ ]; # missing inputs: aiopylgtv
     "websocket_api" = ps: with ps; [ aiohttp-cors ];
     "wemo" = ps: with ps; [ ]; # missing inputs: pywemo
-    "whois" = ps: with ps; [ ]; # missing inputs: python-whois
+    "whois" = ps: with ps; [ python-whois ];
     "wiffi" = ps: with ps; [ ]; # missing inputs: wiffi
-    "wilight" = ps: with ps; [ ]; # missing inputs: pywilight
+    "wilight" = ps: with ps; [ pywilight ];
     "wink" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pubnubsub-handler python-wink
     "wirelesstag" = ps: with ps; [ ]; # missing inputs: wirelesstagpy
     "withings" = ps: with ps; [ aiohttp-cors ]; # missing inputs: withings-api
@@ -954,7 +958,6 @@
     "yandextts" = ps: with ps; [ ];
     "yeelight" = ps: with ps; [ yeelight ];
     "yeelightsunflower" = ps: with ps; [ ]; # missing inputs: yeelightsunflower
-    "yessssms" = ps: with ps; [ ]; # missing inputs: YesssSMS
     "yi" = ps: with ps; [ aioftp ha-ffmpeg ];
     "zabbix" = ps: with ps; [ ]; # missing inputs: py-zabbix
     "zamg" = ps: with ps; [ ];
@@ -962,7 +965,7 @@
     "zeroconf" = ps: with ps; [ aiohttp-cors zeroconf ];
     "zerproc" = ps: with ps; [ ]; # missing inputs: pyzerproc
     "zestimate" = ps: with ps; [ xmltodict ];
-    "zha" = ps: with ps; [ bellows pyserial zha-quirks zigpy-cc zigpy-deconz zigpy-xbee zigpy-zigate zigpy-znp zigpy ];
+    "zha" = ps: with ps; [ bellows pyserial-asyncio pyserial 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/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix
index 147ea06434b..68d11e85fd2 100644
--- a/pkgs/servers/home-assistant/default.nix
+++ b/pkgs/servers/home-assistant/default.nix
@@ -62,7 +62,7 @@ let
   extraBuildInputs = extraPackages py.pkgs;
 
   # Don't forget to run parse-requirements.py after updating
-  hassVersion = "0.118.5";
+  hassVersion = "2020.12.2";
 
 in with py.pkgs; buildPythonApplication rec {
   pname = "homeassistant";
@@ -78,7 +78,7 @@ in with py.pkgs; buildPythonApplication rec {
     owner = "home-assistant";
     repo = "core";
     rev = version;
-    sha256 = "1711qhcvrzl599cryd9wzamacn1vv37w67vprqgibnbw58kcpilj";
+    sha256 = "1hd3z0bvscrg0ihy26djm1x9cj1pkdbnsgpzhdy42j8vy80q9bxr";
   };
 
   # leave this in, so users don't have to constantly update their downstream patch handling
diff --git a/pkgs/servers/home-assistant/frontend.nix b/pkgs/servers/home-assistant/frontend.nix
index 825576e92ad..36f89dc0069 100644
--- a/pkgs/servers/home-assistant/frontend.nix
+++ b/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 = "20201111.2";
+  version = "20201212.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1pk4l78j72zn6gxc0yr3azdlcqwkvf7ki0khm176qpvs34scs1l8";
+    sha256 = "1nz5f7bpj0xs740af8i6j33idff6yzx7z9vydlah2sxcdgpwmz84";
   };
 
   # no Python tests implemented
diff --git a/pkgs/servers/home-assistant/parse-requirements.py b/pkgs/servers/home-assistant/parse-requirements.py
index 4fa4b8a48ee..fc0e790bd6f 100755
--- a/pkgs/servers/home-assistant/parse-requirements.py
+++ b/pkgs/servers/home-assistant/parse-requirements.py
@@ -30,7 +30,7 @@ from urllib.request import urlopen
 COMPONENT_PREFIX = "homeassistant.components"
 PKG_SET = "python3Packages"
 
-# If some requirements are matched by multiple python packages,
+# If some requirements are matched by multiple Python packages,
 # the following can be used to choose one of them
 PKG_PREFERENCES = {
     # Use python3Packages.youtube-dl-light instead of python3Packages.youtube-dl
@@ -39,6 +39,7 @@ PKG_PREFERENCES = {
     "tensorflow-bin_2": "tensorflow",
     "tensorflowWithoutCuda": "tensorflow",
     "tensorflow-build_2": "tensorflow",
+    "whois": "python-whois",
 }
 
 
diff --git a/pkgs/servers/http/apache-httpd/2.4.nix b/pkgs/servers/http/apache-httpd/2.4.nix
index 4b63b589ea9..71f8c8054c7 100644
--- a/pkgs/servers/http/apache-httpd/2.4.nix
+++ b/pkgs/servers/http/apache-httpd/2.4.nix
@@ -84,7 +84,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    inherit apr aprutil sslSupport proxySupport ldapSupport;
+    inherit apr aprutil sslSupport proxySupport ldapSupport luaSupport lua5;
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/servers/http/nginx/generic.nix b/pkgs/servers/http/nginx/generic.nix
index 6ec5b0a7851..2b2af8966e9 100644
--- a/pkgs/servers/http/nginx/generic.nix
+++ b/pkgs/servers/http/nginx/generic.nix
@@ -149,6 +149,6 @@ stdenv.mkDerivation {
     homepage    = "http://nginx.org";
     license     = licenses.bsd2;
     platforms   = platforms.all;
-    maintainers = with maintainers; [ thoughtpolice raskin fpletz globin ];
+    maintainers = with maintainers; [ thoughtpolice raskin fpletz globin ajs124 ];
   };
 }
diff --git a/pkgs/servers/http/nginx/mainline.nix b/pkgs/servers/http/nginx/mainline.nix
index edb87258d6b..cadc1064ac0 100644
--- a/pkgs/servers/http/nginx/mainline.nix
+++ b/pkgs/servers/http/nginx/mainline.nix
@@ -1,6 +1,6 @@
 { callPackage, ... }@args:
 
 callPackage ./generic.nix args {
-  version = "1.19.5";
-  sha256 = "173rv8gacd9bakb0r9jmkr4pqgjw9mzpdh3f7x2d8ln4ssplc2jw";
+  version = "1.19.6";
+  sha256 = "1d9kzks8x1226prjbpdin4dz93fjnv304zlqybfqachx5fh9a4di";
 }
diff --git a/pkgs/servers/http/tomcat/tomcat-native.nix b/pkgs/servers/http/tomcat/tomcat-native.nix
index fa2769f99dd..55eb277522a 100644
--- a/pkgs/servers/http/tomcat/tomcat-native.nix
+++ b/pkgs/servers/http/tomcat/tomcat-native.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tomcat-native";
-  version = "1.2.25";
+  version = "1.2.26";
 
   src = fetchurl {
     url = "mirror://apache/tomcat/tomcat-connectors/native/${version}/source/${pname}-${version}-src.tar.gz";
-    sha512 = "e121c0a18c51b5f952833df44c3a0add1f9a6e1b61e300abbafa0bc7e8f32296e64c9f81e9ad7389c1bd24abc40739e4726a56158d08e33b7ef00e5fa8a1d33d";
+    sha512 = "319lrb0b5vvm2m46rdz2zbicisijvim6948ghz0mypck6f419yjr68j8rpmxpckscaj0ghmbq3p28jpxbjpig84ygy0m63cvgpxknfa";
   };
 
   sourceRoot = "${pname}-${version}-src/native";
diff --git a/pkgs/servers/icecream/default.nix b/pkgs/servers/icecream/default.nix
new file mode 100644
index 00000000000..1800700b040
--- /dev/null
+++ b/pkgs/servers/icecream/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, docbook2x, libarchive, libcap_ng, lzo, zstd, docbook_xml_dtd_45 }:
+
+stdenv.mkDerivation rec {
+  pname = "icecream";
+  version = "2020-04-15";
+
+  src = fetchFromGitHub {
+    owner = "icecc";
+    repo = pname;
+    rev = "c370c4d701d05e1872d44d1c1642a774a7f25807";
+    sha256 = "0ld2ihd39irlk4wshpbw7inmgyl3x0gbkgsy10izcm1wwfc0x2ac";
+  };
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ autoreconfHook docbook2x ];
+  buildInputs = [ libarchive libcap_ng lzo zstd docbook_xml_dtd_45 ];
+
+  meta = with stdenv.lib; {
+    description = "Distributed compiler with a central scheduler to share build load";
+    inherit (src.meta) homepage;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ emantor ];
+    platforms = with platforms; linux ++ darwin;
+  };
+}
diff --git a/pkgs/servers/irc/solanum/default.nix b/pkgs/servers/irc/solanum/default.nix
new file mode 100644
index 00000000000..9455929e3be
--- /dev/null
+++ b/pkgs/servers/irc/solanum/default.nix
@@ -0,0 +1,60 @@
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+, pkg-config
+, bison
+, flex
+, openssl
+, sqlite
+, lksctp-tools
+}:
+
+stdenv.mkDerivation rec {
+  pname = "solanum";
+  version = "unstable-2020-12-14";
+
+  src = fetchFromGitHub {
+    owner = "solanum-ircd";
+    repo = pname;
+    rev = "551e5a146eab4948ce4a57d87a7f671f2d7cc02d";
+    sha256 = "14cd2cb04w6nwck7q49jw5zvifkzhkmblwhjfskc2nxcdb5x3l96";
+  };
+
+  patches = [
+    ./dont-create-logdir.patch
+  ];
+
+  configureFlags = [
+    "--enable-epoll"
+    "--enable-ipv6"
+    "--enable-openssl=${openssl.dev}"
+    "--with-program-prefix=solanum-"
+    "--localstatedir=/var/lib/solanum"
+    "--with-rundir=/run/solanum"
+    "--with-logdir=/var/log/solanum"
+  ] ++ stdenv.lib.optionals (stdenv.isLinux) [
+    "--enable-sctp=${lksctp-tools.out}/lib"
+  ];
+
+  nativeBuildInputs = [
+    autoreconfHook
+    bison
+    flex
+    pkg-config
+  ];
+
+  buildInputs = [
+    openssl
+    sqlite
+  ];
+
+  doCheck = !stdenv.isDarwin;
+
+  meta = with stdenv.lib; {
+    description = "An IRCd for unified networks";
+    homepage = "https://github.com/solanum-ircd/solanum";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ hexa ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/servers/irc/solanum/dont-create-logdir.patch b/pkgs/servers/irc/solanum/dont-create-logdir.patch
new file mode 100644
index 00000000000..e348dd7b85b
--- /dev/null
+++ b/pkgs/servers/irc/solanum/dont-create-logdir.patch
@@ -0,0 +1,14 @@
+diff --git a/Makefile.am b/Makefile.am
+index 19e7b396..21093521 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -35,9 +35,6 @@ include/serno.h:
+ 		echo '#define DATECODE 0UL' >>include/serno.h; \
+ 	fi
+ 
+-install-data-hook:
+-	test -d ${DESTDIR}${logdir} || mkdir -p ${DESTDIR}${logdir}
+-
+ install-exec-hook:
+ 	rm -f ${DESTDIR}${libdir}/*.la
+ 	rm -f ${DESTDIR}${moduledir}/*.la
diff --git a/pkgs/servers/jitsi-videobridge/default.nix b/pkgs/servers/jitsi-videobridge/default.nix
index 37cffa2e920..09d7af18561 100644
--- a/pkgs/servers/jitsi-videobridge/default.nix
+++ b/pkgs/servers/jitsi-videobridge/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, dpkg, jre_headless, nixosTests }:
+{ stdenv, fetchurl, makeWrapper, dpkg, jre_headless, nixosTests }:
 
 let
   pname = "jitsi-videobridge2";
@@ -15,6 +15,8 @@ stdenv.mkDerivation {
 
   unpackCmd = "${dpkg}/bin/dpkg-deb -x $src debcontents";
 
+  buildInputs = [ makeWrapper ];
+
   installPhase = ''
     substituteInPlace usr/share/jitsi-videobridge/jvb.sh \
       --replace "exec java" "exec ${jre_headless}/bin/java"
@@ -24,6 +26,10 @@ stdenv.mkDerivation {
     cp ${./logging.properties-journal} $out/etc/jitsi/videobridge/logging.properties-journal
     mv usr/share/jitsi-videobridge/* $out/share/jitsi-videobridge/
     ln -s $out/share/jitsi-videobridge/jvb.sh $out/bin/jitsi-videobridge
+
+    # work around https://github.com/jitsi/jitsi-videobridge/issues/1547
+    wrapProgram $out/bin/jitsi-videobridge \
+      --set VIDEOBRIDGE_GC_TYPE G1GC
   '';
 
   passthru.tests = {
diff --git a/pkgs/servers/mail/dovecot/default.nix b/pkgs/servers/mail/dovecot/default.nix
index 1a11e065d93..8d39c01478f 100644
--- a/pkgs/servers/mail/dovecot/default.nix
+++ b/pkgs/servers/mail/dovecot/default.nix
@@ -10,7 +10,7 @@
 
 stdenv.mkDerivation rec {
   pname = "dovecot";
-  version = "2.3.11.3";
+  version = "2.3.13";
 
   nativeBuildInputs = [ perl pkgconfig ];
   buildInputs =
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://dovecot.org/releases/2.3/${pname}-${version}.tar.gz";
-    sha256 = "1p5gp8jbavcsaara5mfn5cbrnlxssajnchczbgmmfzr7228fmnfk";
+    sha256 = "1i7ijss79a23v7b6lycfzaa8r5rh01k0h0b9h0j4a6n11sw7by53";
   };
 
   enableParallelBuilding = true;
@@ -89,5 +89,6 @@ stdenv.mkDerivation rec {
   };
   passthru.tests = {
     opensmtpd-interaction = nixosTests.opensmtpd;
+    inherit (nixosTests) dovecot;
   };
 }
diff --git a/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix b/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix
index 5c01453cb27..a65bc28ec40 100644
--- a/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix
+++ b/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "dovecot-pigeonhole";
-  version = "0.5.11";
+  version = "0.5.13";
 
   src = fetchurl {
     url = "https://pigeonhole.dovecot.org/releases/2.3/dovecot-2.3-pigeonhole-${version}.tar.gz";
-    sha256 = "1w5mryv6izh1gv7davnl94rb0pvh5bxl2bydzbfla1b83x22m5qb";
+    sha256 = "05xz2d82ck6lmv94nbc3qff09j8b60a5640i3fmqwqsvv9kfa7wi";
   };
 
   buildInputs = [ dovecot openssl ];
diff --git a/pkgs/servers/mail/mailhog/default.nix b/pkgs/servers/mail/mailhog/default.nix
index 10b23061307..d0fded5c63b 100644
--- a/pkgs/servers/mail/mailhog/default.nix
+++ b/pkgs/servers/mail/mailhog/default.nix
@@ -2,24 +2,22 @@
 
 buildGoPackage rec {
   pname = "MailHog";
-  version = "1.0.0";
-  rev = "v${version}";
+  version = "1.0.1";
 
   goPackagePath = "github.com/mailhog/MailHog";
 
   src = fetchFromGitHub {
-    inherit rev;
     owner = "mailhog";
     repo = "MailHog";
-    sha256 = "0r6zidkffb8q12zyxd063jy0ig2x93llna4zb5i2qjh9gb971i83";
+    rev = "v${version}";
+    sha256 = "124216850572r1h0ii7ad6jd1cd5czcvkz7k2jzvjb4pv2kl8p3y";
   };
 
-  goDeps = ./deps.nix;
-
   meta = with stdenv.lib; {
     description = "Web and API based SMTP testing";
     homepage = "https://github.com/mailhog/MailHog";
-    maintainers = with maintainers; [ disassembler ];
+    changelog = "https://github.com/mailhog/MailHog/releases/tag/v${version}";
+    maintainers = with maintainers; [ disassembler jojosch ];
     license = licenses.mit;
   };
 }
diff --git a/pkgs/servers/mail/mailhog/deps.nix b/pkgs/servers/mail/mailhog/deps.nix
deleted file mode 100644
index 9967c3a549a..00000000000
--- a/pkgs/servers/mail/mailhog/deps.nix
+++ /dev/null
@@ -1,191 +0,0 @@
-[
-  {
-    goPackagePath = "github.com/gorilla/pat";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gorilla/pat";
-      rev = "cf955c3d1f2c27ee96f93e9738085c762ff5f49d";
-      sha256 = "1jnhdhba3cwgsgv6qf7shvmk2nbbp8z30n9cimz9w6vd940ipisf";
-    };
-  }
-  {
-    goPackagePath = "github.com/gorilla/context";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gorilla/context";
-      rev = "1ea25387ff6f684839d82767c1733ff4d4d15d0a";
-      sha256 = "1nh1nzxcsgd215x4xn59wc4cbqfa8zvhvnnx5p8fkrn4bj1cgak4";
-    };
-  }
-  {
-    goPackagePath = "github.com/gorilla/mux";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gorilla/mux";
-      rev = "bcd8bc72b08df0f70df986b97f95590779502d31";
-      sha256 = "0majd18zn8v1b1agn015vnk3xk2v8j5nyckczlf72gm3kaq3icga";
-    };
-  }
-  {
-    goPackagePath = "github.com/gorilla/websocket";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gorilla/websocket";
-      rev = "3ab3a8b8831546bd18fd182c20687ca853b2bb13";
-      sha256 = "17y94ngp1yrswq5pxxy97naiw6jgxz2yvm8zydi83gfixdgs99fc";
-    };
-  }
-  {
-    goPackagePath = "github.com/ian-kent/go-log";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ian-kent/go-log";
-      rev = "5731446c36ab9f716106ce0731f484c50fdf1ad1";
-      sha256 = "1qr0myg68r9zq43fnx0rbnxcny2jpyg3gc269pc2riskqk0a731d";
-    };
-  }
-  {
-    goPackagePath = "github.com/ian-kent/envconf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ian-kent/envconf";
-      rev = "c19809918c02ab33dc8635d68c77649313185275";
-      sha256 = "1085863rnx4h0q9xvg4zlsc7xf7jngfmjrq83cpcv1ayi664mzdx";
-    };
-  }
-  {
-    goPackagePath = "github.com/ian-kent/goose";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ian-kent/goose";
-      rev = "c3541ea826ad9e0f8a4a8c15ca831e8b0adde58c";
-      sha256 = "0v98d2554vlrm8mzk2zx8wj3daq076273w0zs8ww1aa57a1l74qv";
-    };
-  }
-  {
-    goPackagePath = "github.com/ian-kent/linkio";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ian-kent/linkio";
-      rev = "77fb4b01842cb4b019137c0227df9a8f9779d0bd";
-      sha256 = "0fixidplxzmw7aakw19d64nvrykwm5xk55fj1q74n70s8j5d8hiq";
-    };
-  }
-  {
-    goPackagePath = "github.com/mailhog/MailHog-Server";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mailhog/MailHog-Server";
-      rev = "50f74a1aa2991b96313144d1ac718ce4d6739dfd";
-      sha256 = "1h0qs66bvgygpq0sz3w6y445vm3pvlrljr5x7xr13y0087mrpjla";
-    };
-  }
-  {
-    goPackagePath = "github.com/mailhog/MailHog-UI";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mailhog/MailHog-UI";
-      rev = "24b31a47cc5b65d23576bb9884c941d2b88381f7";
-      sha256 = "0309jmryhx3n0yksssk2j4xkh1xb01468i5f2sy3a83xkz9p3d54";
-    };
-  }
-  {
-    goPackagePath = "github.com/mailhog/http";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mailhog/http";
-      rev = "2e653938bf190d0e2fbe4825ce74e5bc149a62f2";
-      sha256 = "18j03lvyis7z0mv3fym3j9a7pi2qvnhggmhpxnjbwvwb86dhxjm8";
-    };
-  }
-  {
-    goPackagePath = "github.com/mailhog/mhsendmail";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mailhog/mhsendmail";
-      rev = "002527025ef50364446d7560600aedc5daaa1997";
-      sha256 = "11l2y0xb7hwk0zs7pwif3xkclhz32sc0jff3jkaxi3jdf3q3kz91";
-    };
-  }
-  {
-    goPackagePath = "github.com/mailhog/data";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mailhog/data";
-      rev = "024d554958b5bea5db220bfd84922a584d878ded";
-      sha256 = "0dgh0pcsn0xrxsn1qlxgdssaimch57kxj5vyvhqjnsdnh814g9vf";
-    };
-  }
-  {
-    goPackagePath = "github.com/mailhog/smtp";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mailhog/smtp";
-      rev = "0c4e9b7e0625fec61d0c30d7b2f6c62852be6c54";
-      sha256 = "1w46w3asdxsgzyall16hi2s4jvkka1k3a1l52ryfhrzg187krir6";
-    };
-  }
-  {
-    goPackagePath = "github.com/mailhog/storage";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mailhog/storage";
-      rev = "6d871fb23ecd873cb10cdfc3a8dec5f50d2af8fa";
-      sha256 = "1ya0xigm2xysin59zlp2sbqncnmw9h77r9dn9k7vxhf0z8vvbibk";
-    };
-  }
-  {
-    goPackagePath = "github.com/ogier/pflag";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ogier/pflag";
-      rev = "32a05c62658bd1d7c7e75cbc8195de5d585fde0f";
-      sha256 = "1lyrr9wx0j087mnpsxcbspjcgh9a5c6bqwrasd8s237jlyc50qmj";
-    };
-  }
-  {
-    goPackagePath = "github.com/tinylib/msgp";
-    fetch = {
-      type = "git";
-      url = "https://github.com/tinylib/msgp";
-      rev = "02d047e07459c5a7b02b1244161d0f2f6d8f660d";
-      sha256 = "12y7qz1x266m0a0w3zwd49achxbh036yhkmx93xfs2283xh70q1r";
-    };
-  }
-  {
-    goPackagePath = "github.com/philhofer/fwd";
-    fetch = {
-      type = "git";
-      url = "https://github.com/philhofer/fwd";
-      rev = "1612a298117663d7bc9a760ae20d383413859798";
-      sha256 = "155l0nvvblpx0fy683q6bzins7csh8fw7yf64hbia8hc7wh0gjdl";
-    };
-  }
-  {
-    goPackagePath = "github.com/t-k/fluent-logger-golang";
-    fetch = {
-      type = "git";
-      url = "https://github.com/t-k/fluent-logger-golang";
-      rev = "0f8ec08f2057a61574b6943e75045fffbeae894e";
-      sha256 = "0ic5bj87wpq1kncixd5mklwqn1jjwqfqfvkyl0mrnwp3p5p24v5c";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "c197bcf24cde29d3f73c7b4ac6fd41f4384e8af6";
-      sha256 = "1y2bbghi594m8p4pcm9pwrzql06179xj6zvhaghwcc6y0l48rbgp";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/mgo.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/mgo.v2";
-      rev = "d90005c5262a3463800497ea5a89aed5fe22c886";
-      sha256 = "1z81k6mnfk07hkrkw31l16qycyiwa6wzyhysmywgkh58sm5dc9m7";
-    };
-  }
-]
diff --git a/pkgs/servers/mail/spamassassin/default.nix b/pkgs/servers/mail/spamassassin/default.nix
index c474c501cee..afdd2ea860d 100644
--- a/pkgs/servers/mail/spamassassin/default.nix
+++ b/pkgs/servers/mail/spamassassin/default.nix
@@ -2,11 +2,11 @@
 
 perlPackages.buildPerlPackage rec {
   pname = "SpamAssassin";
-  version = "3.4.3";
+  version = "3.4.4";
 
   src = fetchurl {
     url = "mirror://apache/spamassassin/source/Mail-${pname}-${version}.tar.bz2";
-    sha256 = "1380cmrgjsyidnznr844c5yr9snz36dw7xchdfryi2s61vjzvf55";
+    sha256 = "0ga5mi2nv2v91kakk9xakkg71rnxnddlzv76ca13vfyd4jgcfasf";
   };
 
   buildInputs = [ makeWrapper ] ++ (with perlPackages; [
@@ -37,6 +37,6 @@ perlPackages.buildPerlPackage rec {
     description = "Open-Source Spam Filter";
     license = stdenv.lib.licenses.asl20;
     platforms = stdenv.lib.platforms.unix;
-    maintainers = with stdenv.lib.maintainers; [ peti qknight ];
+    maintainers = with stdenv.lib.maintainers; [ peti qknight qyliss ];
   };
 }
diff --git a/pkgs/servers/matrix-appservice-discord/default.nix b/pkgs/servers/matrix-appservice-discord/default.nix
index beb3ad70c79..4a41f019e17 100644
--- a/pkgs/servers/matrix-appservice-discord/default.nix
+++ b/pkgs/servers/matrix-appservice-discord/default.nix
@@ -1,29 +1,80 @@
-{ pkgs, nodejs, stdenv }:
+{ lib, mkYarnPackage, fetchFromGitHub, runCommand, makeWrapper, python, nodejs }:
+
+assert lib.versionAtLeast nodejs.version "12.0.0";
 
 let
-  nodePackages = import ./node-composition.nix {
-    inherit pkgs nodejs;
-    inherit (stdenv.hostPlatform) system;
+  nodeSources = runCommand "node-sources" {} ''
+    tar --no-same-owner --no-same-permissions -xf "${nodejs.src}"
+    mv node-* $out
+  '';
+
+in mkYarnPackage rec {
+  pname = "matrix-appservice-discord";
+
+  # when updating, run `./generate.sh <git release tag>`
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "Half-Shot";
+    repo = "matrix-appservice-discord";
+    rev = "v${version}";
+    sha256 = "0pca4jxxl4b8irvb1bacsrzjg8m7frq9dnx1knnd2n6ia3f3x545";
   };
 
-in nodePackages."matrix-appservice-discord-git+https://github.com/Half-Shot/matrix-appservice-discord.git#v0.5.2".override {
-  nativeBuildInputs = [ pkgs.makeWrapper ];
+  packageJSON = ./package.json;
+  yarnNix = ./yarn-dependencies.nix;
+
+  pkgConfig = {
+    better-sqlite3 = {
+      buildInputs = [ python ];
+      postInstall = ''
+        # build native sqlite bindings
+        npm run build-release --offline --nodedir="${nodeSources}"
+     '';
+    };
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  buildPhase = ''
+    # compile TypeScript sources
+    yarn --offline build
+  '';
+
+  doCheck = true;
+  checkPhase = ''
+    yarn --offline test
+  '';
 
   postInstall = ''
-    # compile Typescript sources
-    npm run build
+    OUT_JS_DIR="$out/${passthru.nodeAppDir}/build"
 
     # server wrapper
-    makeWrapper '${nodejs}/bin/node' "$out/bin/matrix-appservice-discord" \
-      --add-flags "$out/lib/node_modules/matrix-appservice-discord/build/src/discordas.js"
+    makeWrapper '${nodejs}/bin/node' "$out/bin/${pname}" \
+      --add-flags "$OUT_JS_DIR/src/discordas.js"
 
     # admin tools wrappers
-    for toolPath in $out/lib/node_modules/matrix-appservice-discord/build/tools/*; do
-      makeWrapper '${nodejs}/bin/node' "$out/bin/matrix-appservice-discord-$(basename $toolPath .js)" \
+    for toolPath in $OUT_JS_DIR/tools/*; do
+      makeWrapper '${nodejs}/bin/node' "$out/bin/${pname}-$(basename $toolPath .js)" \
         --add-flags "$toolPath"
     done
   '';
 
-  # other metadata generated and inherited from ./node-package.nix
-  meta.maintainers = with stdenv.lib.maintainers; [ pacien ];
+  # don't generate the dist tarball
+  # (`doDist = false` does not work in mkYarnPackage)
+  distPhase = ''
+    true
+  '';
+
+  passthru = {
+    nodeAppDir = "libexec/${pname}/deps/${pname}";
+  };
+
+  meta = {
+    description = "A bridge between Matrix and Discord";
+    homepage = "https://github.com/Half-Shot/matrix-appservice-discord";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ pacien ];
+    platforms = lib.platforms.linux;
+  };
 }
diff --git a/pkgs/servers/matrix-appservice-discord/generate.sh b/pkgs/servers/matrix-appservice-discord/generate.sh
index 46aeb7d02ea..582d3a96fba 100755
--- a/pkgs/servers/matrix-appservice-discord/generate.sh
+++ b/pkgs/servers/matrix-appservice-discord/generate.sh
@@ -1,10 +1,17 @@
-##!/usr/bin/env nix-shell
-##! nix-shell -i bash -p nodePackages.node2nix
-
-node2nix \
-  --nodejs-12 \
-  --node-env ../../development/node-packages/node-env.nix \
-  --development \
-  --input package.json \
-  --output node-packages.nix \
-  --composition node-composition.nix
+#!/usr/bin/env nix-shell
+#!nix-shell -I nixpkgs=../../../ -i bash -p wget yarn2nix
+
+set -euo pipefail
+
+if [ "$#" -ne 1 ] || [[ "$1" == -* ]]; then
+  echo "Regenerates the Yarn dependency lock files for the matrix-appservice-discord package."
+  echo "Usage: $0 <git release tag>"
+  exit 1
+fi
+
+SRC_REPO="https://raw.githubusercontent.com/Half-Shot/matrix-appservice-discord/$1"
+
+wget "$SRC_REPO/package.json" -O package.json
+wget "$SRC_REPO/yarn.lock" -O yarn.lock
+yarn2nix --lockfile=yarn.lock > yarn-dependencies.nix
+rm yarn.lock
diff --git a/pkgs/servers/matrix-appservice-discord/node-packages.nix b/pkgs/servers/matrix-appservice-discord/node-packages.nix
deleted file mode 100644
index 5eb65a56dc8..00000000000
--- a/pkgs/servers/matrix-appservice-discord/node-packages.nix
+++ /dev/null
@@ -1,5251 +0,0 @@
-# This file has been generated by node2nix 1.8.0. Do not edit!
-
-{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
-
-let
-  sources = {
-    "@babel/code-frame-7.8.3" = {
-      name = "_at_babel_slash_code-frame";
-      packageName = "@babel/code-frame";
-      version = "7.8.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz";
-        sha512 = "3d85pd9lfbm8yrlpn6wj9g56snbnpr9fx0w1b9x26jbirc2xfrvnifwzprp0f6bhqijshgm0q35axic8d11v4j0kq493dapcyk33n3b";
-      };
-    };
-    "@babel/generator-7.9.6" = {
-      name = "_at_babel_slash_generator";
-      packageName = "@babel/generator";
-      version = "7.9.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz";
-        sha512 = "2lj9ix2jkbjcwwcny57mk3vz11ym83w3hzm76nfbi7mm79hiwg3ycsjm3f2rjax2ra9dlcp7g3q3sffgkhrdlb1xz5nc7svl9c706zs";
-      };
-    };
-    "@babel/helper-function-name-7.9.5" = {
-      name = "_at_babel_slash_helper-function-name";
-      packageName = "@babel/helper-function-name";
-      version = "7.9.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz";
-        sha512 = "1zixbsbwxm9wr0yl929kfnqxj0qkg4i3nyqddlmb4d4iidnm8w45q23wvvi550sm0daay6dvnk0ky7mdx60v9x6ssfx1rycwmji0mr5";
-      };
-    };
-    "@babel/helper-get-function-arity-7.8.3" = {
-      name = "_at_babel_slash_helper-get-function-arity";
-      packageName = "@babel/helper-get-function-arity";
-      version = "7.8.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz";
-        sha512 = "12g2gjipd8svg02d12iqbf0rz4m99g36qccn3f81xij3ac4f7kqzx0407xma49h11j88iz8jil2whj7j96wqpwd67abi23xczwd2l0m";
-      };
-    };
-    "@babel/helper-split-export-declaration-7.8.3" = {
-      name = "_at_babel_slash_helper-split-export-declaration";
-      packageName = "@babel/helper-split-export-declaration";
-      version = "7.8.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz";
-        sha512 = "1sgm6wd88kmizvig5m0ims97vmlylfii72xcw4k01h2wsw3cpc312s1asnjrq5y472hcqfh2mwn8dwpqkpcvs0ssqwnz1c1xhwz47fz";
-      };
-    };
-    "@babel/helper-validator-identifier-7.9.5" = {
-      name = "_at_babel_slash_helper-validator-identifier";
-      packageName = "@babel/helper-validator-identifier";
-      version = "7.9.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz";
-        sha512 = "3i5wlljsvjm0hxwjq4j1ddq6gcj2k518gh95wkx8qywkf90sb7l3d5aqga7hvfvz44nb2b0aq16jd3394zilmlbqcvczaq5llnapipz";
-      };
-    };
-    "@babel/highlight-7.9.0" = {
-      name = "_at_babel_slash_highlight";
-      packageName = "@babel/highlight";
-      version = "7.9.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz";
-        sha512 = "2qmdx9wdiv4yy36dc1ljghwd45kq6bhsddcbps8qznsrwvg3zjir6pb7nsfg4ypqrq6z2zif0ysjmwybpqp5xpz6rvymv2pbj54z5ll";
-      };
-    };
-    "@babel/parser-7.9.6" = {
-      name = "_at_babel_slash_parser";
-      packageName = "@babel/parser";
-      version = "7.9.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz";
-        sha512 = "3snmiq1kl2plv8lmznk6n01yccvj4hjyzrvx9yjs4zsjasqy9ds7hs2rkxnc09aisg8hc2vg631hjva9ws5r3xgzyfxzgpwk488i1q2";
-      };
-    };
-    "@babel/template-7.8.6" = {
-      name = "_at_babel_slash_template";
-      packageName = "@babel/template";
-      version = "7.8.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz";
-        sha512 = "0z8kzrpis50nr4vsyqr77cpqad0xfsacw45jdhwsl89mdzpvy8wcvc0kdy938kb0ll069plxhgy3a3fpag408ci2pb47gxzrhy2rcyd";
-      };
-    };
-    "@babel/traverse-7.9.6" = {
-      name = "_at_babel_slash_traverse";
-      packageName = "@babel/traverse";
-      version = "7.9.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz";
-        sha512 = "2r1r1qwdd5bsanldbxriyh607as22kyhdghnvi8dgqf8wy48rvszvd11r9spfk7qvl6rvy6gbhigzap1v7w9r8b22ajxiyv50fw0ykg";
-      };
-    };
-    "@babel/types-7.9.6" = {
-      name = "_at_babel_slash_types";
-      packageName = "@babel/types";
-      version = "7.9.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz";
-        sha512 = "1w94xdz4ygl8zfpdxjqw1kmlxiwx5b3i0hyk1796hdvq18r5mgnz4phdid9qpw57jchvsccdxvwg75qfnhv06kscsyk7zmz2fyg65db";
-      };
-    };
-    "@istanbuljs/nyc-config-typescript-0.1.3" = {
-      name = "_at_istanbuljs_slash_nyc-config-typescript";
-      packageName = "@istanbuljs/nyc-config-typescript";
-      version = "0.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@istanbuljs/nyc-config-typescript/-/nyc-config-typescript-0.1.3.tgz";
-        sha512 = "13cw79ii748mkdsafzniqa2gaxqqh4bxyscfj2xj5wi6a6a33nsy5p67xp63razv97ylzqng79622hv3vcvippwbgsj0icvvn1lad0k";
-      };
-    };
-    "@types/chai-3.5.2" = {
-      name = "_at_types_slash_chai";
-      packageName = "@types/chai";
-      version = "3.5.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/chai/-/chai-3.5.2.tgz";
-        sha1 = "c11cd2817d3a401b7ba0f5a420f35c56139b1c1e";
-      };
-    };
-    "@types/mocha-5.2.7" = {
-      name = "_at_types_slash_mocha";
-      packageName = "@types/mocha";
-      version = "5.2.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz";
-        sha512 = "14vib3hd2qrjxis7qgcm6db4m8c1vchhadyd28c0xq0cmd2nry092nhcqw93k72pi9hix0qm577w4389wkzwzpgq7hnrh3l3czfv2im";
-      };
-    };
-    "@types/node-10.17.24" = {
-      name = "_at_types_slash_node";
-      packageName = "@types/node";
-      version = "10.17.24";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-10.17.24.tgz";
-        sha512 = "203233rf4cjd8p3qhb08yq5yl7gjnal68hmw983njk1h96ybchvyp0jch7d8cf3z4x54kyvskmxs6hv48v835kv8wrqkvsm5jy9y875";
-      };
-    };
-    "@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 = "2mpv9nzpnwz01rnkdslfgnd1msv8k12aq7zbdnpmgkd0y6zca0wf10hiaw350rxshs53aw21yv84viva5mb9dkg705s96l7zgf4px19";
-      };
-    };
-    "@types/react-16.9.35" = {
-      name = "_at_types_slash_react";
-      packageName = "@types/react";
-      version = "16.9.35";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/react/-/react-16.9.35.tgz";
-        sha512 = "36zwg69giaj46bhy90wpvxz00qf7p1icq1hzz203z00ss246zfn5nvhmya3gm98w1x7b1c9jjchwra1ssbiixm11qkwy6cwqm5g8jdb";
-      };
-    };
-    "@types/sqlite3-3.1.6" = {
-      name = "_at_types_slash_sqlite3";
-      packageName = "@types/sqlite3";
-      version = "3.1.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/sqlite3/-/sqlite3-3.1.6.tgz";
-        sha512 = "32fg13qna3zwf7gfkska218lw4daq0fqrks9px80mgy9yzbxrga71nbz7ibrj34r3awldgqmkjb3hp1v1rvxn8gqn280l06lb80l6rq";
-      };
-    };
-    "abbrev-1.0.9" = {
-      name = "abbrev";
-      packageName = "abbrev";
-      version = "1.0.9";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz";
-        sha1 = "91b4792588a7738c25f35dd6f63752a2f8776135";
-      };
-    };
-    "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 = "38s4f3id97wsb0rg9nm9zvxyq0nvwrmrpa5dzvrkp36mf5ibs98b4z6lvsbrwzzs0sbcank6c7gpp06vcwp9acfhp41rzlhi3ybsxwy";
-      };
-    };
-    "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 = "2j51dxzbgz22q0k7dhivimfsqx9a0f0h9slfd7n20gz3y1944gx3y7xai54za0x3zhbar6vqiaab2i9p913cwqk414qk3cnrm138pr2";
-      };
-    };
-    "acorn-3.3.0" = {
-      name = "acorn";
-      packageName = "acorn";
-      version = "3.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz";
-        sha1 = "45e37fb39e8da3f25baee3ff5369e2bb5f22017a";
-      };
-    };
-    "acorn-5.7.4" = {
-      name = "acorn";
-      packageName = "acorn";
-      version = "5.7.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz";
-        sha512 = "0k4pivh1yagdalb26khf36wscaxi3kbv6w48zg5jsll2scl2wq4f4gxcq9ggnzf37l4y446n4a3bmr85wx0fnwk89pvp1n1drabwgyl";
-      };
-    };
-    "acorn-jsx-3.0.1" = {
-      name = "acorn-jsx";
-      packageName = "acorn-jsx";
-      version = "3.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz";
-        sha1 = "afdf9488fb1ecefc8348f6fb22f464e32a58b36b";
-      };
-    };
-    "ajv-4.11.8" = {
-      name = "ajv";
-      packageName = "ajv";
-      version = "4.11.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz";
-        sha1 = "82ffb02b29e662ae53bdc20af15947706739c536";
-      };
-    };
-    "ajv-6.12.2" = {
-      name = "ajv";
-      packageName = "ajv";
-      version = "6.12.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz";
-        sha512 = "18zdchlpq20znwglnbc54yvqpr9m7q96qp9zvys27is5c0vxfn5fk8nmwhpnplbxyka88xqqabad0427mbgz7y7mz6azrp6723pxrck";
-      };
-    };
-    "ajv-keywords-1.5.1" = {
-      name = "ajv-keywords";
-      packageName = "ajv-keywords";
-      version = "1.5.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz";
-        sha1 = "314dd0a4b3368fad3dfcdc54ede6171b886daf3c";
-      };
-    };
-    "amdefine-1.0.1" = {
-      name = "amdefine";
-      packageName = "amdefine";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz";
-        sha1 = "4a5282ac164729e93619bcfd3ad151f817ce91f5";
-      };
-    };
-    "another-json-0.2.0" = {
-      name = "another-json";
-      packageName = "another-json";
-      version = "0.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/another-json/-/another-json-0.2.0.tgz";
-        sha1 = "b5f4019c973b6dd5c6506a2d93469cb6d32aeedc";
-      };
-    };
-    "ansi-escape-sequences-4.1.0" = {
-      name = "ansi-escape-sequences";
-      packageName = "ansi-escape-sequences";
-      version = "4.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz";
-        sha512 = "1bsgrlcm8b2imj8i2gjj73a77823sil3nlca1j92v9dc0kw1jgwlpw2xj36g2ip5zvbcq5z4z7y15g0fmvlv7f80rp5vls7gj8bsdbp";
-      };
-    };
-    "ansi-escapes-1.4.0" = {
-      name = "ansi-escapes";
-      packageName = "ansi-escapes";
-      version = "1.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz";
-        sha1 = "d3a8a83b319aa67793662b13e761c7911422306e";
-      };
-    };
-    "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-3.0.0" = {
-      name = "ansi-regex";
-      packageName = "ansi-regex";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz";
-        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 = "1v2gfp292kslpvam0l0h1iba35yi0n7dc6qv6fmxsdyfcp6zakkl13vrh3hzsw4zgh50jrrsg7xb2q2hn4g8a0dmf947mfcylymxanm";
-      };
-    };
-    "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 = "2lgkskkj4c1fsnrksy0yffda0wss84p8lfiazdc7jli7iqnvrxkzbxjzpvx13lm28qw0zkawfxvz2bdiisc72ccy7hx8i8rm4iijgam";
-      };
-    };
-    "append-transform-1.0.0" = {
-      name = "append-transform";
-      packageName = "append-transform";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz";
-        sha512 = "21v9f6s9z1pwc278lhdv7kixk0aw3x1vb083496wcbggsxkbdkl5fb91fabi2pngpb78xj90khj6b37v6f694k8wcxja7qyi6hksk9z";
-      };
-    };
-    "archy-1.0.0" = {
-      name = "archy";
-      packageName = "archy";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz";
-        sha1 = "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40";
-      };
-    };
-    "arg-4.1.3" = {
-      name = "arg";
-      packageName = "arg";
-      version = "4.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz";
-        sha512 = "2y8gq3qabgg6wbnvzwm79j1ncabh960rrr2qxq657mv4zsynr92l46mpfgpvk7hq416dpvqi66sy617bzgll3wcxmv7rlc6790bvi77";
-      };
-    };
-    "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 = "17fhywmdjcp8g0ys089i5xg26yajkkg9zg8hyry3fghz75b2pq5vdx997dk5p2sc15r9nsj8rmf4f27g81hi92kzj5q86sdmg5ni553";
-      };
-    };
-    "array-back-1.0.4" = {
-      name = "array-back";
-      packageName = "array-back";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz";
-        sha1 = "644ba7f095f7ffcf7c43b5f0dc39d3c1f03c063b";
-      };
-    };
-    "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 = "35jb25pl0pzgmial4xwdqspn62n5h7dyjb58drc3kkk92sv3j4g01zpx2cjb5c90yad3hyqphhyjrg94cnsy6a7wvhgsz7fnajgi6vq";
-      };
-    };
-    "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 = "3aqfm29ppm74q3q0xlxldmf1a3vbkl9a6fbljf211cfgc7asjbkdglbpr6a5a04r0rvnk7y709k6nvaqa2nb3df1ipgqfh2hl1v2jsf";
-      };
-    };
-    "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";
-      };
-    };
-    "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 = "1v2z1ll0l8rif8hh0d03jc49kz3p8hym63q8ixbas48w4a8akl413hwn08nx83m89sj3mxl06aa0grp7n8hj6hcbsb2k3fhj913674g";
-      };
-    };
-    "assert-options-0.1.3" = {
-      name = "assert-options";
-      packageName = "assert-options";
-      version = "0.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/assert-options/-/assert-options-0.1.3.tgz";
-        sha512 = "2kfs1i15ij2snq4ladd424zf44rwhqxcy2qbr1qr0wzznhr1z6l4i142ad4bhqfr3fj8qb1j3968psfjikkmz711yhgigq2d7jxjyhd";
-      };
-    };
-    "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";
-      };
-    };
-    "assertion-error-1.1.0" = {
-      name = "assertion-error";
-      packageName = "assertion-error";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz";
-        sha512 = "07swiwljqy13fyil4y9lp319zcqsgdkchaic1y4dlfi3flh5l4qlwv497g40bnspsl9h857a3ig5assmvjdwv913dppgymkvcsil2wf";
-      };
-    };
-    "async-0.2.10" = {
-      name = "async";
-      packageName = "async";
-      version = "0.2.10";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-0.2.10.tgz";
-        sha1 = "b6bbe0b0674b9d719708ca38de8c237cb526c3d1";
-      };
-    };
-    "async-1.5.2" = {
-      name = "async";
-      packageName = "async";
-      version = "1.5.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-1.5.2.tgz";
-        sha1 = "ec6a61ae56480c0c3cb241c95618e20892f9672a";
-      };
-    };
-    "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 = "1g679kw2qqpqx1yd4s778r8rw3cv9qwmib5x3klk64kcl5ndw71bljcpav5jkk6grizlpvrqszsbs6fkmnlvcq5fnz2q33mrnb6zyfd";
-      };
-    };
-    "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 = "0sy81yyf4na58ic2m0ib0prkb9njb1qzl7wf3vlq4hhm4xnwgxaph0lr43gs1sd0rai2xp1h6phlwvni9jiggm94dd54i0wc1cabhvj";
-      };
-    };
-    "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";
-      };
-    };
-    "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.9.1" = {
-      name = "aws4";
-      packageName = "aws4";
-      version = "1.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz";
-        sha512 = "2x4b6c0ny64yv6ljfs6sv82akh200klmnh1m1i18hdj28ksxkr9c0szphnwcasy3g5y3l1wn858wcxnc2gi9q5wql8s678fc61xbhf0";
-      };
-    };
-    "babel-code-frame-6.26.0" = {
-      name = "babel-code-frame";
-      packageName = "babel-code-frame";
-      version = "6.26.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz";
-        sha1 = "63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b";
-      };
-    };
-    "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";
-      };
-    };
-    "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";
-      };
-    };
-    "base-x-3.0.8" = {
-      name = "base-x";
-      packageName = "base-x";
-      version = "3.0.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz";
-        sha512 = "0j1z1n32mik68bxyihzyn0fik2lfw6msi9h22hnrdqz1x9dbsql1xyz7590vkpp54d8apf92cvnp1qzf4cqcy2fmv8zq9zqcc0zaps6";
-      };
-    };
-    "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 = "1x9j0wn0a3ia9mwgvicd30w346wzxj86zk9sly5wp07a2mpjm1sk4hk9iwrbcc8z6c72bkhvck6zrxbvcb6p8bbjhald78xw6k9wprl";
-      };
-    };
-    "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";
-      };
-    };
-    "better-sqlite3-5.4.3" = {
-      name = "better-sqlite3";
-      packageName = "better-sqlite3";
-      version = "5.4.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-5.4.3.tgz";
-        sha512 = "09nnpg0k6lshxwyhfrxn800b90p674w8dv90fmp9xr2sn758475cx4gxjj7vji1i9hcnz65kznbkvkf70rcljz8hq4a9ppszpqpxykw";
-      };
-    };
-    "binary-search-tree-0.2.5" = {
-      name = "binary-search-tree";
-      packageName = "binary-search-tree";
-      version = "0.2.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/binary-search-tree/-/binary-search-tree-0.2.5.tgz";
-        sha1 = "7dbb3b210fdca082450dad2334c304af39bdc784";
-      };
-    };
-    "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";
-      };
-    };
-    "bluebird-2.11.0" = {
-      name = "bluebird";
-      packageName = "bluebird";
-      version = "2.11.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz";
-        sha1 = "534b9033c022c9579c56ba3b3e5a5caafbb650e1";
-      };
-    };
-    "bluebird-3.7.2" = {
-      name = "bluebird";
-      packageName = "bluebird";
-      version = "3.7.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz";
-        sha512 = "2v12rs2wvv94hrlyv0nadxn9x11796k9mk7a8vg0bqsry8m2pbyy9dribalwikh34qkk3rp6gnis849y5z9x5mxzbbdgkfhc3l674sy";
-      };
-    };
-    "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 = "2rl5ww96fwgmxdqhqmnknsaafw44vsr2xz7vf7nax8qz9jy8bmmdyawcy6yfny0wm7pi8m2jssakzjc1nin8z8207kv0gclpnrhy4bn";
-      };
-    };
-    "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 = "248cnpbbf0p32h53rd3g8wzpgrkaj4p078ra1g6l16f82i6bzkvmhwqan5rk88apbll9ly1476kngd7f7z27i3b3zxpbb3064f8yaw8";
-      };
-    };
-    "browser-request-0.3.3" = {
-      name = "browser-request";
-      packageName = "browser-request";
-      version = "0.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/browser-request/-/browser-request-0.3.3.tgz";
-        sha1 = "9ece5b5aca89a29932242e18bf933def9876cc17";
-      };
-    };
-    "browser-stdout-1.3.1" = {
-      name = "browser-stdout";
-      packageName = "browser-stdout";
-      version = "1.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz";
-        sha512 = "21jjhrf3wdmzsfqgva5s7shs1wdmcdxsjvi75p8z7i0q2i6n3654gpxjqlhbnpmzm25cpkshyi8swy13017qkp9m7xnbgw0bwiia45a";
-      };
-    };
-    "bs58-4.0.1" = {
-      name = "bs58";
-      packageName = "bs58";
-      version = "4.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz";
-        sha1 = "be161e76c354f6f788ae4071f63f34e8c4f0a42a";
-      };
-    };
-    "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 = "3c0m16i3fdv3vlq2zz8dakrnhqvs16gvggj485f91fiaa5v0p7pyhamcdw5fggr7djzd8nshmvz4hgbp7714smqxlld2an28q8if1ri";
-      };
-    };
-    "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 = "21laqrygizzy6ccv03l1af9pq07ligp755ybgfzln99lh62xnn5sxhw6qlw717g9dym9pa2cg0k9mz5r1nkb0hckxnk9mal6swnkdkb";
-      };
-    };
-    "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 = "073ccjmvxf726gcgzy0pksvi8x8r51dq6hyv69sc75ynrin7anwk9q3sqhbbbjhqjjrmq42s5f5gdbcgj2jxai6ldpyq6y2ny78payd";
-      };
-    };
-    "caching-transform-3.0.2" = {
-      name = "caching-transform";
-      packageName = "caching-transform";
-      version = "3.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/caching-transform/-/caching-transform-3.0.2.tgz";
-        sha512 = "3dq981s5b229k9dxfmzmn1dw9vk1ylcnna6hbfkf4ppvk6cai8fw5gmyxl0jnrvz933ipq61qydvq20c2jymgr88qrlvpb1g6zirn1j";
-      };
-    };
-    "caller-path-0.1.0" = {
-      name = "caller-path";
-      packageName = "caller-path";
-      version = "0.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz";
-        sha1 = "94085ef63581ecd3daa92444a8fe94e82577751f";
-      };
-    };
-    "callsites-0.2.0" = {
-      name = "callsites";
-      packageName = "callsites";
-      version = "0.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz";
-        sha1 = "afab96262910a7f33c19a5775825c69f34e350ca";
-      };
-    };
-    "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 = "0kg17fpj4c7akmpa9x0a3fi5glrc3y5k3ppjcpb3pd02ylg3fnzfdvz0pixd223crbs5980sjaxsk9q8kcqxm5d9cb7rlkv3m614vrg";
-      };
-    };
-    "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";
-      };
-    };
-    "chai-3.5.0" = {
-      name = "chai";
-      packageName = "chai";
-      version = "3.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz";
-        sha1 = "4d02637b067fe958bdbfdd3a40ec56fef7373247";
-      };
-    };
-    "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 = "2wr55z22i274wadq2cvpxga28a8igq9whc4m1q06sz5sn2hc4amradd5vd02wm92vyfg2qrb0bysd5drv7mfmlb2wqdf939v5zvxn1j";
-      };
-    };
-    "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 = "1b03acmav1awkygrda5h64pn8msd6wda119q553hik728i1j72bfqyq7yzn1x7nmw28hvg9mcyh7krsj8vwsq3karnn55mj6smip7cc";
-      };
-    };
-    "circular-json-0.3.3" = {
-      name = "circular-json";
-      packageName = "circular-json";
-      version = "0.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz";
-        sha512 = "3hadrrn41znfv3gbqjxf0ckzjmns7w7zgsqw73sdz8nclaff9b0cg1mqhz3zxw3ndnmqqvrdcfykkfpv2v1pv4jdyzcccbn3hsbg4ji";
-      };
-    };
-    "cli-cursor-1.0.2" = {
-      name = "cli-cursor";
-      packageName = "cli-cursor";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz";
-        sha1 = "64da3f7d56a54412e59794bd62dc35295e8f2987";
-      };
-    };
-    "cli-width-2.2.1" = {
-      name = "cli-width";
-      packageName = "cli-width";
-      version = "2.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz";
-        sha512 = "29wd4bd0yz4r5alp6nvn6vd2rsxdpw0cf6nn9ws5cvmcb7dmc6xh34xqpi2lqmillk672m5wfs6yh3qny7m4fb1jgha01sf387ic4qr";
-      };
-    };
-    "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 = "1fg1afsij2xwc4gpqbyhrp3s7q19w7bmii0ghmdv6cdx6giz3v0yqn25i3g7fw2lpi388jpvaf6nf9z2c7xp7w7psrww7569548d1rx";
-      };
-    };
-    "co-4.6.0" = {
-      name = "co";
-      packageName = "co";
-      version = "4.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/co/-/co-4.6.0.tgz";
-        sha1 = "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184";
-      };
-    };
-    "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 = "3xh3l9zhh6dav7pp5hy88kbb6c52j0pf331ywpp6w2jaf94w25fjn4am930775mskxy75cxl90fji17cym40ivslxxlpcrlxgkmsalc";
-      };
-    };
-    "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 = "0d5pmdh1dh0qbpjrzdczwqkh0jwf8gxhq71mknwlxqz80h1q6kdrpghq4qfp0y4v650ia2jdihmzpb2n8hg00h72lnx05dgvysi9w21";
-      };
-    };
-    "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-string-1.5.3" = {
-      name = "color-string";
-      packageName = "color-string";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz";
-        sha512 = "11p4cihq5874fmyvwkh0fp4dr2syliqsgg610rw46lsav41l6wcm4bgpkrl34gip3cqncw0ppmqwfknm5v02m1fj8qqk8cnlzk84bbl";
-      };
-    };
-    "colornames-1.1.1" = {
-      name = "colornames";
-      packageName = "colornames";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/colornames/-/colornames-1.1.1.tgz";
-        sha1 = "f8889030685c7c4ff9e2a559f5077eb76a816f96";
-      };
-    };
-    "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 = "2saczc8hcdmgns1cp1g1p7g2sq4yksrik0ffvfkhkavmmgx8haqm034a4c9zj8im6kfjh00n2xi360yqfy7vbsi98zri0943r72mrbb";
-      };
-    };
-    "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 = "36j3cgfzngcjms1c0yfn487ibflffmb6hxgrknxbyrxrflc4kybm2r8a0mc1v8ljj7rbb7cjd54v2bimqb6rw0q5sqvwxznhfh8xpxy";
-      };
-    };
-    "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 = "1v09nkip7zpn3k3prkkg53w331rhczpfgcqb0q42i97nafra43l2khl5zvhd4ar0qmh145nmw7944jy8p108ny0xpgy29gf2wqph0qm";
-      };
-    };
-    "command-line-args-4.0.7" = {
-      name = "command-line-args";
-      packageName = "command-line-args";
-      version = "4.0.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/command-line-args/-/command-line-args-4.0.7.tgz";
-        sha512 = "369xdm4s4h0m4f4n9ni52n35d2qvrj7gp457494c3d3jn961l91ddc9rqhnqwih6zbl4901r7qzlg1h5ivqvyv9fz81pj200jylyiv9";
-      };
-    };
-    "command-line-usage-4.1.0" = {
-      name = "command-line-usage";
-      packageName = "command-line-usage";
-      version = "4.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz";
-        sha512 = "3mbhsprm9k85gz36aa9g85lj0j4473iwnk838wwpzjwy7xc84x4g8c3k895z7rjqf3l56vzhnp8iwd27yda429d01fsmr3xvw0vq51k";
-      };
-    };
-    "commander-2.15.1" = {
-      name = "commander";
-      packageName = "commander";
-      version = "2.15.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz";
-        sha512 = "1mb8z6hhy74rfdgj3spmk52sdqa5bb2w5wp28z3md1daqcca4vbbsg66wz8hdhrv0fnnmf8yzdkmnw3c373vcccmyizzlnmbpsd6msn";
-      };
-    };
-    "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 = "1qqrwy7z476gqa94kjjyyzyi3x49k28ji7znbc65plrp67yzmpa2yyslh6bl965yl4jqb2fwb2ljzhgcvv2xxj8ab86n5rgryc6958s";
-      };
-    };
-    "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";
-      };
-    };
-    "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";
-      };
-    };
-    "concat-stream-1.6.2" = {
-      name = "concat-stream";
-      packageName = "concat-stream";
-      version = "1.6.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz";
-        sha512 = "05nnf80j9ls12y3cw2dfnc6rmand3ya5sx9cqn9dgg19ljzdnyfjjv8ig79xi73gr2y4rkfzn9wjip2zzwp5n2d49njd3ki2a1c3cfv";
-      };
-    };
-    "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 = "3976ggkw1lp21a6m3s19blb9a74kq7a0spw47v0m3vvi1k5wiamrsn20slcr9byx80x2la2sppkwjp7x10gc58142dl7412pvpv84qk";
-      };
-    };
-    "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 = "1f4y61wc913jrnga7nny83gzf9l2488q6sl1ry9lbwgh5x5d3va0xcc0xrmjk6gdxl6d4r6rsk800xp5bazhjrx05yx1wpc8c8gg0w4";
-      };
-    };
-    "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 = "2hgf7brri4yaflx3y24d2cvznsk0km17mq8mp7sb2hhskf45hcamlgf8vzzbimw36lw128bjbf442p2rx96d1bhn9sk044p69gn8lp0";
-      };
-    };
-    "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 = "1g7bscknfpc6zgznz77hvll6cy5m9jv7zg9nkpdqzmgi0vhv75kh8iyqf6rdslkml47l3jihsz7hy0i8x5n6bfx9ba0kvvrp9y7qypq";
-      };
-    };
-    "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-js-2.6.11" = {
-      name = "core-js";
-      packageName = "core-js";
-      version = "2.6.11";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz";
-        sha512 = "1db6yjq48a8kkrfrxd0miblcf7nk2b4afgpr8dfgjl3jvz3xclvrqmz590hx2h59jh79lgl35r101lw5jqs46qybizdbpgzljjyf277";
-      };
-    };
-    "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";
-      };
-    };
-    "cp-file-6.2.0" = {
-      name = "cp-file";
-      packageName = "cp-file";
-      version = "6.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz";
-        sha512 = "36fqmhj9mdqndy7720hnfvy3gcxds8yj3p7aq8xcj6k5drjcpk7pxvmpl1xxaki0bkvhh7xzpcsf107mp43j97g7phqg7l1qvhxasvy";
-      };
-    };
-    "cross-spawn-4.0.2" = {
-      name = "cross-spawn";
-      packageName = "cross-spawn";
-      version = "4.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz";
-        sha1 = "7b9247621c23adfdd3856004a823cbe397424d41";
-      };
-    };
-    "csstype-2.6.10" = {
-      name = "csstype";
-      packageName = "csstype";
-      version = "2.6.10";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/csstype/-/csstype-2.6.10.tgz";
-        sha512 = "3zi93ipbn2dfs2hq0iacr3sv338nn216jb30q0a1pckq5jn70yhc68zy2l0dpya9cy7a9qh626nkbxfvf8ssxwg1568jw1qjnlh2zhg";
-      };
-    };
-    "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";
-      };
-    };
-    "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 = "0abwyrfpd8rm9bwzgcaxcwd92d07c31cxw1fgs7h51ri2igw4vib1a5x69cg14wqisjad1d0fhglca6218qm9dngr17yhwv8f295bcv";
-      };
-    };
-    "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-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 = "0q0fsr8bk1m83z0am0h2xn09vyfcf18adscxms8hclznwks1aihsisd96h8npx0idq5wwnypnqrkyk25m5d9zh3dk7rjs29nybc8bkc";
-      };
-    };
-    "debug-3.1.0" = {
-      name = "debug";
-      packageName = "debug";
-      version = "3.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz";
-        sha512 = "3g1hqsahr1ks2kpvdxrwzr57fj90nnr0hvwwrw8yyyzcv3i11sym8zwibxx67bl1mln0acddrzpkkdjjxnc6n2cm9fazmgzzsl1fzrr";
-      };
-    };
-    "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 = "2r3rwk7kd7wavqhm68cmhi6nkmciv9x2ciqm6sws5dmfg7dvzvyxhjk1469sghvq7s705pq4zc5h4915xmpcm61ckik9g7wirqsfz91";
-      };
-    };
-    "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";
-      };
-    };
-    "deep-eql-0.1.3" = {
-      name = "deep-eql";
-      packageName = "deep-eql";
-      version = "0.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz";
-        sha1 = "ef558acab8de25206cd713906d74e56930eb69f2";
-      };
-    };
-    "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 = "0wc0sqg1aqx864bxf8xa4j8ncrc8rcvmiaj1sp3x1np2i8hdjybzjfd0w9gbf1yasmwycwzzg1mz6smr3q42hhv4pjx2qcgwqhg3q9c";
-      };
-    };
-    "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-require-extensions-2.0.0" = {
-      name = "default-require-extensions";
-      packageName = "default-require-extensions";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz";
-        sha1 = "f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7";
-      };
-    };
-    "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";
-      };
-    };
-    "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 = "2phijq20j255bs4jjs11j5pa0x7y1084k6ch9xa8wgzp71zzgbpm23wyzbcs0mszvj971l9i5aav40sddm000484sl3ij4xzvlcgfc3";
-      };
-    };
-    "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";
-      };
-    };
-    "diagnostics-1.1.1" = {
-      name = "diagnostics";
-      packageName = "diagnostics";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.1.tgz";
-        sha512 = "0liin689xf3v7wxk1z5l1par3dyjkg487nk3siqn6b7zqxw2rd93rgw88ifsqwhv66s8d7qjxy8fjv4gxfgiwd69ryv573fcwzga2gk";
-      };
-    };
-    "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 = "32bkv3cfhax4x5zhiyfn63wjhqwkzsjiql3my8p3d9hvv020p8f9hdi7mpqixrkpgs0g9k15mn736s449yad9wq1plhxyhxb2sam3h3";
-      };
-    };
-    "diff-4.0.2" = {
-      name = "diff";
-      packageName = "diff";
-      version = "4.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz";
-        sha512 = "3ndiq7a8qsn2j6vlq5c6d38ynlydlhvk6q01rj321lcarrh0z7721w6cbrdw7lkx6pyfms59y1jkqcl6g2ir1rz5xr17q40lk26djg7";
-      };
-    };
-    "discord-markdown-2.3.1" = {
-      name = "discord-markdown";
-      packageName = "discord-markdown";
-      version = "2.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/discord-markdown/-/discord-markdown-2.3.1.tgz";
-        sha512 = "3s87h4335vaxhf4j9x7az6z67lzf5yb5lw7xsw1ga0zi8qn7vn6jz12p0bwvixmha61prkg08yf11jdiq11plhmzh4ibk68k6q22qw4";
-      };
-    };
-    "discord.js-11.6.4" = {
-      name = "discord.js";
-      packageName = "discord.js";
-      version = "11.6.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/discord.js/-/discord.js-11.6.4.tgz";
-        sha512 = "19kqvgy68w2f4asb26dpm7r535l86xyz6xhzhzygb7g01fzk64yq6a6z351b512nyld9wq1zxiba6jgdrx6w431lsik86pfacgspbkh";
-      };
-    };
-    "doctrine-2.1.0" = {
-      name = "doctrine";
-      packageName = "doctrine";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz";
-        sha512 = "0iz6zh5d0kqs0ndd1ydsj4vaf2x3k3p0k5a7b75gsbhkqaqqq93dgsa2bpifvw7svck2sndd21mv7mp60q111rbghpssp0rxs9956fz";
-      };
-    };
-    "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";
-      };
-    };
-    "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";
-      };
-    };
-    "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 = "2s4i22ccvwa2l4xwl9yz6mkyn2kpf58hp1nqiwmmgqlpyr57345i3ll0l4656ryik6a6wz1lgk4vbl6y0dwj5hx2kcbpv0h8924n00b";
-      };
-    };
-    "enabled-1.0.2" = {
-      name = "enabled";
-      packageName = "enabled";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz";
-        sha1 = "965f6513d2c2d1c5f4652b64a2e3396467fc2f93";
-      };
-    };
-    "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";
-      };
-    };
-    "env-variable-0.0.6" = {
-      name = "env-variable";
-      packageName = "env-variable";
-      version = "0.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/env-variable/-/env-variable-0.0.6.tgz";
-        sha512 = "2v5v2dckp87kblfsmmyn76ky74yj2cvrv6kw1i7wlcidk2r7gnyhfil6i4zmw2qscgbsviv85x4840k7qgrkv8p6ssd8vj1v7sgjz3c";
-      };
-    };
-    "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 = "3igrl2amb9mpa9d2z6qghz3ljqd7amjla8ahfs5fdgl0w52pw6gz3y32q5fk229yvfyg3x9kpfygadcm2w0lv4hv4nj25cyd8v4glgd";
-      };
-    };
-    "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 = "3wl9jgj276xsjcf4gvc9w7gg403rg02s1i24r7scvhwg0mmgbqwsszjk94xnzfd3wj4y2khk6wbz8dm9j6lvlcwrbbd324d1svr5kay";
-      };
-    };
-    "es6-error-4.1.1" = {
-      name = "es6-error";
-      packageName = "es6-error";
-      version = "4.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz";
-        sha512 = "1b98y4j9fy6c2wm7ys3csnyfg8cn40sy2g958i45fdh5bnx1lkl19d4508aldabga5rm1q5hzxq68yjdyb8n6qxb8925x1b2cbzwvsj";
-      };
-    };
-    "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-map-0.1.5" = {
-      name = "es6-map";
-      packageName = "es6-map";
-      version = "0.1.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz";
-        sha1 = "9136e0503dcc06a301690f0bb14ff4e364e949f0";
-      };
-    };
-    "es6-set-0.1.5" = {
-      name = "es6-set";
-      packageName = "es6-set";
-      version = "0.1.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz";
-        sha1 = "d2b3ec5d4d800ced818db538d28974db0a73ccb1";
-      };
-    };
-    "es6-symbol-3.1.1" = {
-      name = "es6-symbol";
-      packageName = "es6-symbol";
-      version = "3.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz";
-        sha1 = "bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77";
-      };
-    };
-    "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 = "0sgbv9jpq91di424qar8xiw36az4msxqhgpk1ixq5hv4wdbgaxs45q8i671icpg085bh1j7hj93iyszp7x9fmhld30jj3kff6gri7il";
-      };
-    };
-    "es6-weak-map-2.0.3" = {
-      name = "es6-weak-map";
-      packageName = "es6-weak-map";
-      version = "2.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz";
-        sha512 = "2qdf1gxkch8gczdhnkac49g4063ij902aqabbb4rix1ab73r4cpi47irpq7w7w3p26fp6ksfvim16gvq4cksfzc7xjfsk6fc7gsd6x7";
-      };
-    };
-    "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";
-      };
-    };
-    "escodegen-1.8.1" = {
-      name = "escodegen";
-      packageName = "escodegen";
-      version = "1.8.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz";
-        sha1 = "5a5b53af4693110bebb0867aa3430dd3b70a1018";
-      };
-    };
-    "escope-3.6.0" = {
-      name = "escope";
-      packageName = "escope";
-      version = "3.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz";
-        sha1 = "e01975e812781a163a6dadfdd80398dc64c889c3";
-      };
-    };
-    "eslint-3.19.0" = {
-      name = "eslint";
-      packageName = "eslint";
-      version = "3.19.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/eslint/-/eslint-3.19.0.tgz";
-        sha1 = "c8fc6201c7f40dd08941b87c085767386a679acc";
-      };
-    };
-    "espree-3.5.4" = {
-      name = "espree";
-      packageName = "espree";
-      version = "3.5.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz";
-        sha512 = "3a07jjjp8g8mdayw3n9l0p0llw7cfipjifan2ccyn2vm1zyafrmv5cj11rc6qmk7ibbq1vc4xxc3sfr54qpgxmxiizj0ck63d1hh1y8";
-      };
-    };
-    "esprima-2.7.3" = {
-      name = "esprima";
-      packageName = "esprima";
-      version = "2.7.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz";
-        sha1 = "96e3b70d5779f6ad49cd032673d1c312767ba581";
-      };
-    };
-    "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 = "3h999di4dnwxb22lxlb7cbz42nalrv8g8sqdvrkkl5c27gnwhp1rva4039hmq6g1i0y4mfjgx6p4i2vwxxl0zlahfzdd9fl1qbqasvq";
-      };
-    };
-    "esquery-1.3.1" = {
-      name = "esquery";
-      packageName = "esquery";
-      version = "1.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz";
-        sha512 = "0fw77wap66ym3sgz0k77rjpjc10mdk83a7973khs6rhyvxkd73xixz1abmlgwz89xnk98cr2gp02p7a9maaav0na3igklh6sjvnynm2";
-      };
-    };
-    "esrecurse-4.2.1" = {
-      name = "esrecurse";
-      packageName = "esrecurse";
-      version = "4.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz";
-        sha512 = "06zyknk70y80n428x20wvjqy5822wgz2yaxzw387njnz3ar6ixzjcxzr2jsl8wrm0m9jpa4ysbcr9znpk6gbkqd7wby084zxw3l317b";
-      };
-    };
-    "estraverse-1.9.3" = {
-      name = "estraverse";
-      packageName = "estraverse";
-      version = "1.9.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz";
-        sha1 = "af67f2dc922582415950926091a4005d29c9bb44";
-      };
-    };
-    "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 = "2kh3lczc7smb84ryllqrdvrknxl3h47khh7li6n9m76mj9jfh1ahz2jm8ffpcaac7i4k8zkf3sc3nczzp7djgqmsi6wrkynywlygnfz";
-      };
-    };
-    "estraverse-5.1.0" = {
-      name = "estraverse";
-      packageName = "estraverse";
-      version = "5.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz";
-        sha512 = "09i9krjn6a49yr3gbnhpfqm7yyrq5mnsgjing0bdpx83lqv3wcf4ll85xhj35khcifmh0ka3alz557d9j02xisrrczg3llimxf22ahp";
-      };
-    };
-    "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 = "3m321j8gmjllmmi1zyvbz0lsmkkjq26bvfr8niwr5b8saxh6icixmpxixyspjb40l54vpx3r3zvln190i47cx16y5x2lf1qg6liqnwi";
-      };
-    };
-    "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.4" = {
-      name = "eventemitter3";
-      packageName = "eventemitter3";
-      version = "4.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz";
-        sha512 = "2cj4h27lly85zb08gprjrkb92l8q8l1977704j7acj7rif052jiqap3l8d7zpdn9krqqi7if1f2cxp7f584045vr3l1pdviflp9ammf";
-      };
-    };
-    "exit-hook-1.1.1" = {
-      name = "exit-hook";
-      packageName = "exit-hook";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz";
-        sha1 = "f05ca233b48c05d54fff07765df8507e95c02ff8";
-      };
-    };
-    "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 = "3i2sxjf2x1r9wbfdyh5ll8ybbnqq6n4xfxdlc4dsqhssljrlih18csqg142lf16lcfcdgsmvf9pff0rzxjw7p0shnlmpajipwxpswlq";
-      };
-    };
-    "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 = "3n50kbfjicn887f19ragi6k288srkjidzvcnphnb2f8bqw4vn10y73p3ryjyqq0xgrdxnwhy2j9favm7pfb3j3vhf5dmi8licsbkv19";
-      };
-    };
-    "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 = "3zad2109w3q3gh46s5msrnzfy2nl581sqpy20b52fs7v5pdjh3irpg7szl3xvh4sfy63218jy8ry6qlnir3baxbbfrb03swkw5swfky";
-      };
-    };
-    "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.1" = {
-      name = "fast-deep-equal";
-      packageName = "fast-deep-equal";
-      version = "3.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz";
-        sha512 = "1j7wq3vqvfgnpd2sjblnlgryxlic2fsy343fx8w4ywb2mngj1w5afq8fmly8cp9fi66dhz1fhcfpn23g5zasnzs6n1snb83qkkilhgi";
-      };
-    };
-    "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 = "0gz06zkjlqc4r59ka14n3vwqjdgn40zd8r115ql3rkwqb7j42frmnsj3axr7p2md8ik52nqjn3myyv8ddavdhl4cq3xz4wbbz07y5wn";
-      };
-    };
-    "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-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 = "1ab0spv3wadhidsh9x8qar1ryn7ahv308yzc5cl32wssk99rr7vrkcs00vn2kggz6drps08vk24gi9gmqpg39jd1rnaryykvh4vmnaj";
-      };
-    };
-    "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 = "1v95kkfm8jnmrsplzk6zhsc2ngkvv2478pnvjnkl8z104b0mx3khf7xdps3dyi8d94kb73xcr5b2dmh58by9sirwcj0qk56hsf82hcm";
-      };
-    };
-    "figures-1.7.0" = {
-      name = "figures";
-      packageName = "figures";
-      version = "1.7.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz";
-        sha1 = "cbe1e3affcf1cd44b80cadfed28dc793a9701d2e";
-      };
-    };
-    "file-entry-cache-2.0.0" = {
-      name = "file-entry-cache";
-      packageName = "file-entry-cache";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz";
-        sha1 = "c392990c3e684783d838b8c84a45d8a048458361";
-      };
-    };
-    "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 = "1jr6bdf22x3f4ql12ympal24yy1ggbxv5xl73ri70llghlcxr8wi9s8j40b5rf0h0sxm9m3g27qgck04aa5d7f9v19c0ws40bfrlxjv";
-      };
-    };
-    "fill-keys-1.0.2" = {
-      name = "fill-keys";
-      packageName = "fill-keys";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fill-keys/-/fill-keys-1.0.2.tgz";
-        sha1 = "9a8fa36f4e8ad634e3bf6b4f3c8882551452eb20";
-      };
-    };
-    "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 = "1cfqk6g78cb12b1cki4pbcspsy40d0yny513myqji716njyhc5hrj7ll539kz96m6vn27168hhyqvd52cr5x1cs85mm7igfkrdrq1b8";
-      };
-    };
-    "find-cache-dir-2.1.0" = {
-      name = "find-cache-dir";
-      packageName = "find-cache-dir";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz";
-        sha512 = "0wjlwmvadzac6hwmxv6hsc16z3285i2y0nkwpg4366flza0rx30s3ncx93xn8hkkpxr493zi5b0h94jczinr87h2m6gbhrl265qzbjf";
-      };
-    };
-    "find-replace-1.0.3" = {
-      name = "find-replace";
-      packageName = "find-replace";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz";
-        sha1 = "b88e7364d2d9c959559f388c66670d6130441fa0";
-      };
-    };
-    "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 = "2bg49lifm64h5jqjc20612wrx7cazw9np9ms02ys94kif4li8cp5in4rvmb1c1ssa8yhbsqkgprykkj4lf3jbz8qrgp1mf8c93gl86p";
-      };
-    };
-    "flat-cache-1.3.4" = {
-      name = "flat-cache";
-      packageName = "flat-cache";
-      version = "1.3.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz";
-        sha512 = "2v31jbrdi7rjpnykckk84xwg2d3bblj0ak8la2fwc83xvq8iw90jsnda4nzqk9rw9pg23m6p9wyysmz5qgakqbbjgicfs90p7f8232p";
-      };
-    };
-    "foreground-child-1.5.6" = {
-      name = "foreground-child";
-      packageName = "foreground-child";
-      version = "1.5.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz";
-        sha1 = "4fd71ad2dfde96789b980a5c0a295937cb2f5ce9";
-      };
-    };
-    "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 = "0jj3hgqp9pmxmfavx6rvdfl3r4yf98clpsarqadz3hq0dxhjlh2ppd9x8bvmaq3nwjdqpdvqx25pwyin4ipixhgsn7s3p9fcc3wllnn";
-      };
-    };
-    "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-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 = "1644yfnzfqikaff5s68dm4qfrblxrz68ynigkyzyixjqazxlli0svj1nxkawz35sv2vb3vjh41f1rhg0j4nr770a53fzqbjc4j94r0r";
-      };
-    };
-    "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";
-      };
-    };
-    "generate-function-2.3.1" = {
-      name = "generate-function";
-      packageName = "generate-function";
-      version = "2.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz";
-        sha512 = "0lp1r8njdds2dp6nd5drc8f3xhg0bishvbn8g54s9ka42yss4lvq84sg465vgb2bw45kww8r4cilsw629nsnn34zkkfny8dyccpkq3r";
-      };
-    };
-    "generate-object-property-1.2.0" = {
-      name = "generate-object-property";
-      packageName = "generate-object-property";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz";
-        sha1 = "9c0e1c40308ce804f4783618b937fa88f99d50d0";
-      };
-    };
-    "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 = "0b7da6kb3xqk26cw4i6kb1lk911z06z53if2g8l23hmfpbhl6vfbn8iip55j1yplbqnly2abb9d349r6ky2z570839q3p9z2gf4y88g";
-      };
-    };
-    "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-5.0.15" = {
-      name = "glob";
-      packageName = "glob";
-      version = "5.0.15";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz";
-        sha1 = "1bc936b9e02f4a603fcc222ecf7633d30b8b93b1";
-      };
-    };
-    "glob-7.1.2" = {
-      name = "glob";
-      packageName = "glob";
-      version = "7.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz";
-        sha512 = "08vjxzixc9dwc1hn5pd60yyij98krk2pr758aiga97r02ncvaqx1hidi95wk470k1v84gg4alls9bm52m77174z128bgf13b61x951h";
-      };
-    };
-    "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 = "020qv13jbi1v4y5xavf6fw08h9svy4q9p67m4avkrrhgdjmk0c5k3h19bv7k6yn1vfxljpjw9kg81fbdg9v83cjplxvkn3v4v1v21ig";
-      };
-    };
-    "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 = "1ab6f0n8yjl3zkl6dwhvxpxh63b4acc7nj7i21z3dx1fz1jv1c3673qpkwiavmcbbf8jlkxapx0x8ybzz5w2yra4ln24lh687y6kq2q";
-      };
-    };
-    "globals-9.18.0" = {
-      name = "globals";
-      packageName = "globals";
-      version = "9.18.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz";
-        sha512 = "18psd5ig23apaw07k4mma3z1hi2ndfwsqkm05hxashnf5lf7mpfs6kjiircc0x3x3q15j2x2j4zfzsqacxvfsmw40zjchn44bfccjab";
-      };
-    };
-    "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 = "33j4jb5azar4wfbbpminq8hbgynq609fdgalq27sh4ff5q4xff7ddlibm9rpy6zhjakxifnd37hcxjqhr8m5qjr054xpxbvj4s8ycjs";
-      };
-    };
-    "growl-1.10.5" = {
-      name = "growl";
-      packageName = "growl";
-      version = "1.10.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz";
-        sha512 = "146i7if4fjml1p6xw1ybb7vm22k6i8yc7r8wcw8yia7qy385w1s6j18ip91g5mv47zvv5fw5m8kpzlaayjs183fkpg174hbw4xgh6m8";
-      };
-    };
-    "handlebars-4.7.6" = {
-      name = "handlebars";
-      packageName = "handlebars";
-      version = "4.7.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz";
-        sha512 = "1f5wy9r0rqpp3whv7fm6kzj4ksqmrpvg8q4gkzyr6734zlmfqm39fmqay5r3r6da3xh9c06k4sjla2hdf9jjhibgl02qzh14w083zfm";
-      };
-    };
-    "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.3" = {
-      name = "har-validator";
-      packageName = "har-validator";
-      version = "5.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz";
-        sha512 = "3kaldgfsh3lfvgvw31s8b7q345zf7ixjahllncdckcw6qfs3gnbsamdxgs9kfigq7rwmja7v51ghh7y0rsp6q7jmvmbydhh645wxnxh";
-      };
-    };
-    "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-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";
-      };
-    };
-    "hasha-3.0.0" = {
-      name = "hasha";
-      packageName = "hasha";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/hasha/-/hasha-3.0.0.tgz";
-        sha1 = "52a32fab8569d41ca69a61ff1a214f8eb7c8bd39";
-      };
-    };
-    "he-1.1.1" = {
-      name = "he";
-      packageName = "he";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/he/-/he-1.1.1.tgz";
-        sha1 = "93410fd21b009735151f8868c2f271f3427e23fd";
-      };
-    };
-    "highlight.js-9.18.1" = {
-      name = "highlight.js";
-      packageName = "highlight.js";
-      version = "9.18.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.1.tgz";
-        sha512 = "0k5561x5q6pikbkjkjafw627bsdg3b59p5qqbak16l5jbcrc5m663hdzf6hlx5qxzskqa28gfzfxdzxdz5mv6q918kpnb7l7rilmd9s";
-      };
-    };
-    "hosted-git-info-2.8.8" = {
-      name = "hosted-git-info";
-      packageName = "hosted-git-info";
-      version = "2.8.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz";
-        sha512 = "19a25b4xb3hg00d1nsirc3xfcc07rplbh6msa49rgc8xg5rg38y1z8rfrf0dmll8k4jaml8z337bi6y2cgah66jnwxinn0sch5k7z3z";
-      };
-    };
-    "html-escaper-2.0.2" = {
-      name = "html-escaper";
-      packageName = "html-escaper";
-      version = "2.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz";
-        sha512 = "1z4nsaa6llc46vq51gz0i545br2rb0g6hlbrm6sr1k9yfi6fdfsymy00nv4n2af2hnhspd56xgpwfhf90bsb6l8g5wwpq08vnsqqs0z";
-      };
-    };
-    "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 = "13c4825kzqlxdqfjrlrwh15ira0bjm9m3b8qcrfzaysiky1m3gb6dv6gcjgpnap9mbl0fajqiibzp1w5r8qnyn8glaj4wgzf6vh2i5r";
-      };
-    };
-    "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";
-      };
-    };
-    "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 = "2n3ygx6km56rdcd5kq52bs2113xqm3vlw2kb9r7pnmxd2qhxrfahp2ngc4w7x8x76fyfpapnixnbjq1i24nc11mj6q7rghwj2fifwxz";
-      };
-    };
-    "ignore-3.3.10" = {
-      name = "ignore";
-      packageName = "ignore";
-      version = "3.3.10";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz";
-        sha512 = "2x7za00gs7ipwcq29bslxcdv7j47m28jx14n9ybs5h2icr4024jn5ppmbs6953g2qb3amhs1gg5x0s48ky3mk7ybi36wchsb7kks2ry";
-      };
-    };
-    "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";
-      };
-    };
-    "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";
-      };
-    };
-    "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";
-      };
-    };
-    "inquirer-0.12.0" = {
-      name = "inquirer";
-      packageName = "inquirer";
-      version = "0.12.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz";
-        sha1 = "1ef2bfd63504df0bc75785fff8c2c41df12f077e";
-      };
-    };
-    "integer-2.1.0" = {
-      name = "integer";
-      packageName = "integer";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/integer/-/integer-2.1.0.tgz";
-        sha512 = "3blpjnax6dkqsgb4cv3hxv2wfhwj23v4br8xcj7rwa2gs1y4q96zw37204r2rwzv98bc742d5mqmqvxama5zngvb8fdm264195646xw";
-      };
-    };
-    "interpret-1.2.0" = {
-      name = "interpret";
-      packageName = "interpret";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz";
-        sha512 = "1pibn9f6dn61lmilqiv8hb4aix4b78xf9sdws3rnl060vvv6l4qrw6gfmncq5n0f0rah2yj1ssfg80chaw9y5aa860wfdcccb4ghgcr";
-      };
-    };
-    "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 = "3gcwhv1wa2hb1vljlcmzhvzliks9rj7nzsw165vgy69jakw8g55ky474mj4j41vfbid8viy9nhwn9kx8pfqrikyl29i98zi9vmkz8nh";
-      };
-    };
-    "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 = "1cmy0k81vgz5z55rdyxfnx307053ksyp1lfgyj5jldkqqzmkx1z2k63fvzn7lgj8wdakmsa1mw408rm5xxfpk3avjqbnrb5yl56lm3r";
-      };
-    };
-    "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-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-my-ip-valid-1.0.0" = {
-      name = "is-my-ip-valid";
-      packageName = "is-my-ip-valid";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz";
-        sha512 = "1lnwwykigbkg3yqmr61cyiplxfdvpchcsi1fz67jwn55gvdrl597jpsd6jds205gjkn8c3zxbqmppmf3danpj0rrla7ffnicmwpys42";
-      };
-    };
-    "is-my-json-valid-2.20.0" = {
-      name = "is-my-json-valid";
-      packageName = "is-my-json-valid";
-      version = "2.20.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.0.tgz";
-        sha512 = "005dmrjrjkysq1ggcr34y7610cxy29gjkx91cv6lxl4gzk6hm9qmdqbbsx5qbcfd9b5vck824wgzk4pg5qfvq4mn44dpi0849jw2cax";
-      };
-    };
-    "is-object-1.0.1" = {
-      name = "is-object";
-      packageName = "is-object";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz";
-        sha1 = "8952688c5ec2ffd6b03ecc85e769e02903083470";
-      };
-    };
-    "is-property-1.0.2" = {
-      name = "is-property";
-      packageName = "is-property";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz";
-        sha1 = "57fe1c4e48474edd65b09911f26b1cd4095dda84";
-      };
-    };
-    "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 = "0r8v3dkj5qbfh2wlj4w1msyqsw6j5myvxi88wkw36isscb97yyc2yc1pwm64djrmh1css6jp9p08cx1zb479fg4gv26prciaifdh05a";
-      };
-    };
-    "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-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";
-      };
-    };
-    "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";
-      };
-    };
-    "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";
-      };
-    };
-    "istanbul-0.4.5" = {
-      name = "istanbul";
-      packageName = "istanbul";
-      version = "0.4.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz";
-        sha1 = "65c7d73d4c4da84d4f3ac310b918fb0b8033733b";
-      };
-    };
-    "istanbul-lib-coverage-2.0.5" = {
-      name = "istanbul-lib-coverage";
-      packageName = "istanbul-lib-coverage";
-      version = "2.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz";
-        sha512 = "2cgkn8swx4450c0m0alr4lb4fvqjyh3v9mg6ivx2sa9vq0hkb7r0yz87srf8263j089kpjmpnsl6d3l5vg7x4f4kk39n20gw6gg79gi";
-      };
-    };
-    "istanbul-lib-hook-2.0.7" = {
-      name = "istanbul-lib-hook";
-      packageName = "istanbul-lib-hook";
-      version = "2.0.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz";
-        sha512 = "2afbbygnkxwbzc61gk31g1k1y161yq81kxbv1x0bxyva7794njrz7kiz1lhr7bv4f2av0fzshsz5rd1rdbr56igr11i2iam9ysp7d5y";
-      };
-    };
-    "istanbul-lib-instrument-3.3.0" = {
-      name = "istanbul-lib-instrument";
-      packageName = "istanbul-lib-instrument";
-      version = "3.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz";
-        sha512 = "1j5bcfrd9sgjpm1mpgxv847jwwcjfpzfkynjcidpf4mwxbn0p6gz622rcrmbliphcbnw0nxipw0d7aw0gva7rym3lci9rz8icvwhyg6";
-      };
-    };
-    "istanbul-lib-report-2.0.8" = {
-      name = "istanbul-lib-report";
-      packageName = "istanbul-lib-report";
-      version = "2.0.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz";
-        sha512 = "2qm8v7vck1yv85lkx7n060wdvrr547mfrc83xyr6sl4p4av7r6c5jh6mdbvxiqz2m6d5spj6v8fksa9dc6c5r86hjhqh47pkqdmww3w";
-      };
-    };
-    "istanbul-lib-source-maps-3.0.6" = {
-      name = "istanbul-lib-source-maps";
-      packageName = "istanbul-lib-source-maps";
-      version = "3.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz";
-        sha512 = "1gm71m2lqpb1p2lrwmf9f9g2maz48s133zvk0zzlblgwnjgnn6dx129cbsx8znklhanwwgck6fwnfpsy5sga5pnwfbpw923rg6cm3j7";
-      };
-    };
-    "istanbul-reports-2.2.7" = {
-      name = "istanbul-reports";
-      packageName = "istanbul-reports";
-      version = "2.2.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz";
-        sha512 = "0m8fjnnvxyyd03g22xna4jnypd01jbvdsz5k9jnqlb1v678zikdzidq7p1x4pdlg1dfzfa9g8lzz01srnamalpmrj5qxrb8ppy4bvds";
-      };
-    };
-    "js-tokens-3.0.2" = {
-      name = "js-tokens";
-      packageName = "js-tokens";
-      version = "3.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz";
-        sha1 = "9866df395102130e38f7f996bceb65443209c25b";
-      };
-    };
-    "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 = "0lwyvximqkf1q5w94x2747nj2v035is66vzalrbl3f2gdh9k1m3m29p8zw6r65ps5784x2lxwz8akmv085l4ai358rwbp84axz59lj5";
-      };
-    };
-    "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 = "0kkjjrr0znm2ka89ywc5518c8dw0210z91fm94c7v11l8c96mkjh0ddld5mb7jmmnpzap7vn0fhvr29lma63c9is2ixq3fpp0xxrxk1";
-      };
-    };
-    "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";
-      };
-    };
-    "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 = "20bfkjw0zjachan7rfv75dn5ky7l12xhyz919mdhh9fjn395ss454ykknjza7fwyx09dj89makcs1xi341dvv4k1cvj94739ifbp2rr";
-      };
-    };
-    "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 = "2pv1kaf7gjr0bhr2djaf1i88li7q3v5daz4zm4hz57i4h21jgryihxb5c2h0p0q1vrq1ffyg279hp0vjrg73shvxr5lir6plxjb5fls";
-      };
-    };
-    "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 = "1bbgxs4777gn3q3yxi0n792cgz9pimf85pypr0w4wzpb22nr8fl9xi98pkcqd3n4fn7lnzffpq7qwpcl4dqc15py19lwqa2jwgw5dn5";
-      };
-    };
-    "json-stable-stringify-1.0.1" = {
-      name = "json-stable-stringify";
-      packageName = "json-stable-stringify";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz";
-        sha1 = "9a759d39c5f2ff503fd5300646ed445f88c4f9af";
-      };
-    };
-    "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";
-      };
-    };
-    "jsonify-0.0.0" = {
-      name = "jsonify";
-      packageName = "jsonify";
-      version = "0.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz";
-        sha1 = "2c74b6ee41d93ca51b7b5aaee8f503631d252a73";
-      };
-    };
-    "jsonpointer-4.0.1" = {
-      name = "jsonpointer";
-      packageName = "jsonpointer";
-      version = "4.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz";
-        sha1 = "4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9";
-      };
-    };
-    "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";
-      };
-    };
-    "kuler-1.0.1" = {
-      name = "kuler";
-      packageName = "kuler";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/kuler/-/kuler-1.0.1.tgz";
-        sha512 = "20zvfs0bqxvpjlp6kx2fhafnldxfv36dqcac42qng3x9kh25vqy4w6910fs63p5d56yjghbrn36niix6wsyi9dbj3n9zmh6wx9dbn97";
-      };
-    };
-    "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";
-      };
-    };
-    "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";
-      };
-    };
-    "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";
-      };
-    };
-    "localforage-1.7.3" = {
-      name = "localforage";
-      packageName = "localforage";
-      version = "1.7.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/localforage/-/localforage-1.7.3.tgz";
-        sha512 = "20hynm98vq3srgz2h48290n0x06drf8avxm73rnqhkh036v5s5x2kk3phm2551p0zy3bh9hp5cjr6f0mwyhb4j0xi9fgqnwhz4safym";
-      };
-    };
-    "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 = "3jbllbkvv54d6k6zss6spzsknz5icscyfclf377jjpndb8mmacq0v9vjr1w07zjn14gaz4d2hfi0yaqk4nvg6hbm16qi70nrkivn0zc";
-      };
-    };
-    "lodash-4.17.15" = {
-      name = "lodash";
-      packageName = "lodash";
-      version = "4.17.15";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz";
-        sha512 = "3a41cs1932x00vd7h32v6rfkaak3vhkwv4x0bg27ilhlmbpl95r3abc4vja21k42cdfprsy3sdfcp2xs02sfp1fflf7m3n2gd29q4zk";
-      };
-    };
-    "lodash.flattendeep-4.4.0" = {
-      name = "lodash.flattendeep";
-      packageName = "lodash.flattendeep";
-      version = "4.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz";
-        sha1 = "fb030917f86a3134e5bc9bec0d69e0013ddfedb2";
-      };
-    };
-    "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";
-      };
-    };
-    "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 = "1d27lbbzad8mj23z63lca3z7y2mjwnzdcrj2zpvcdid78ds12jyc349g1yc0naxbqrl3cz2cw9lprhgwryxygzc634cgmsli266hvks";
-      };
-    };
-    "logform-2.1.2" = {
-      name = "logform";
-      packageName = "logform";
-      version = "2.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/logform/-/logform-2.1.2.tgz";
-        sha512 = "36z0bhkyb62pjrzaff6vpig94lzbaah80iq2hpy4pb49lkhxfawjlx9j8mw168wv33mb7i3lgl2xm2q82x0rc1qm95k0i24xbh62mps";
-      };
-    };
-    "loglevel-1.6.1" = {
-      name = "loglevel";
-      packageName = "loglevel";
-      version = "1.6.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz";
-        sha1 = "e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa";
-      };
-    };
-    "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 = "0q7w59j4asw2i6n4hwbdrcigmaz042y2hsm31brmjfp3fg465mgqjmia2giil8kxbdh5ijdx00lv4a8n8lbj6srbziqczr22hmgxhsy";
-      };
-    };
-    "lru-cache-4.1.5" = {
-      name = "lru-cache";
-      packageName = "lru-cache";
-      version = "4.1.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz";
-        sha512 = "3k64s8pgffvqc84ar3r2jjvxnrll916m1q6s4m2k8pq2gqvlrzy11hdhvx2662fa4x7h1hcpn9wmy4kk28rgk3sj76w2fpn8dn6armi";
-      };
-    };
-    "make-dir-2.1.0" = {
-      name = "make-dir";
-      packageName = "make-dir";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz";
-        sha512 = "12asfdw6jlwcqjli9xywj755wznjxadmh7q6abrhldss26wdsik8w39dqww20i3ilr9mjam1r80ickwzlp9w7dz15bvqa1wszwmfbrd";
-      };
-    };
-    "make-error-1.3.6" = {
-      name = "make-error";
-      packageName = "make-error";
-      version = "1.3.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz";
-        sha512 = "2glh9fqac2bycfy6gmvv1r03pr484iglvv5ry3pjm6iz43h6qnkkw2l4sz9ydyadq6hip4wyjpj9jllbshxchh8k6lg5g5vsya23idk";
-      };
-    };
-    "manakin-0.5.2" = {
-      name = "manakin";
-      packageName = "manakin";
-      version = "0.5.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/manakin/-/manakin-0.5.2.tgz";
-        sha512 = "02p05isc2h05cfwm47fw2n89plynndsgyqj3jh9gsnr8vm0pbqmwmiqh8i52whbf9nf1lm97sk1gyl4c5gk22lf48s5i88qnh3x5w55";
-      };
-    };
-    "matrix-appservice-0.3.5" = {
-      name = "matrix-appservice";
-      packageName = "matrix-appservice";
-      version = "0.3.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/matrix-appservice/-/matrix-appservice-0.3.5.tgz";
-        sha512 = "0swxqi2x16xnxx2kkazh5kkhf1dyi9649q0qjycxp04r0427wsjwp1hakfj4syn0wqcbzny1kybkg74xmg8vih6s7ylhw8ij6b321x1";
-      };
-    };
-    "matrix-appservice-bridge-git://github.com/matrix-org/matrix-appservice-bridge#8a7288edf1d1d1d1395a83d330d836d9c9bf1e76" = {
-      name = "matrix-appservice-bridge";
-      packageName = "matrix-appservice-bridge";
-      version = "1.8.0";
-      src = fetchgit {
-        url = "git://github.com/matrix-org/matrix-appservice-bridge";
-        rev = "8a7288edf1d1d1d1395a83d330d836d9c9bf1e76";
-        sha256 = "80eaf5634cd4482f6b10034193d418b02d6a350c7d721cecd03b53aa3b094b34";
-      };
-    };
-    "matrix-js-sdk-1.2.0" = {
-      name = "matrix-js-sdk";
-      packageName = "matrix-js-sdk";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-1.2.0.tgz";
-        sha512 = "2cxg34raapgs9vrpx59plk8wpfs7wxl2dy3jxrq3na9zvifrnyqz3r056mihw4b4g1lxs5xvmjdajgbp6g4js6aqk8g6y1zgndlib2y";
-      };
-    };
-    "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";
-      };
-    };
-    "merge-source-map-1.1.0" = {
-      name = "merge-source-map";
-      packageName = "merge-source-map";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz";
-        sha512 = "1ps5skykmmcmdx8c36fy2dmdz3qyh4v1phyyfxhwx7g000ig3j1yqgvs1mpblliapm9zpc3vs2f7zb934j9hxpq61llp0mjzpn2jis2";
-      };
-    };
-    "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 = "1x901mk5cdib4xp27v4ivwwr7mhy64r4rk953bzivi5p9lf2bhw88ra2rhkd254xkdx2d3q30zkq239vc4yx4pfsj4hpys8rbr6fif7";
-      };
-    };
-    "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 = "2k6dwvka8mhl2jrx9zhc926nvifn7jpi4fcwjr3gdqik53ifzn67h986p9wcdd4qpc3hjmqpywdwssm5kw18bdn3xg1ag7cp9y97lzw";
-      };
-    };
-    "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 = "3pyj0i5wygq13w5i5i2ksjwrragi0p1dybqd5lvcd0gx21jxx1i1r567dbxklh9p50pwhaxwq9d4507hymr49ibz61xq8xc4sf6m214";
-      };
-    };
-    "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 = "1879a3j85h92ypvb7lpv1dqpcxl49rqnbgs5la18zmj1yqhwl60c2m74254wbr5pp3znckqpkg9dvjyrz6hfz8b9vag5a3j910db4f8";
-      };
-    };
-    "minimist-0.0.8" = {
-      name = "minimist";
-      packageName = "minimist";
-      version = "0.0.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz";
-        sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
-      };
-    };
-    "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 = "0pif0kjsr0cdm73cyicn9xdx9zkly45w4akmyfa39lkaf6lzysfr8kr145p54wjk26pbsk0w0qfdds3k4bxy4wl5l210i1b8qsngkql";
-      };
-    };
-    "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 = "1x0k2ycn1r5fig2zy7jj5vjsc7sxdl2a8lidvzsfyhcbrmvyvlbkmb3ga6l8njclvhjz2yrcx57jn26bckzrms017zb2yan1y7d85y3";
-      };
-    };
-    "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 = "3slcgy5kqasjl8k1n2indaaw0k6j2ipapzxrcqyy2zrwpv8z9w2im5i8c2c73pqdgkd31rwf5bajgv4pm2i6m9jg51cfmp694w0r5p9";
-      };
-    };
-    "mkdirp-0.5.1" = {
-      name = "mkdirp";
-      packageName = "mkdirp";
-      version = "0.5.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz";
-        sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
-      };
-    };
-    "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 = "32zxwnp110xb9sm0w7xdr51v2zj4k0b07yq702phnac2l8c91mxw6va27y193m42nvnw5dhby2jzg3b24fzjzkdr8337slz8ja81a9l";
-      };
-    };
-    "mocha-5.2.0" = {
-      name = "mocha";
-      packageName = "mocha";
-      version = "5.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz";
-        sha512 = "1qqnhamd691pyvx27ql2l5228qx1migp0yys010zdi748pp516hf10sr26w7gx71323a9p0gv69i358xv2w918gpba9xp2w70l211fq";
-      };
-    };
-    "module-not-found-error-1.0.1" = {
-      name = "module-not-found-error";
-      packageName = "module-not-found-error";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/module-not-found-error/-/module-not-found-error-1.0.1.tgz";
-        sha1 = "cf8b4ff4f29640674d6cdd02b0e3bc523c2bbdc0";
-      };
-    };
-    "moment-2.26.0" = {
-      name = "moment";
-      packageName = "moment";
-      version = "2.26.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/moment/-/moment-2.26.0.tgz";
-        sha512 = "0rhkgzi9dm9zliz4x1b240q0y1cqkzyk79bs1v0cd04ix3hxfncgrs80w6gx7fq9azxgc2d29yhrc7j6m8h3q88jca6jslfxx8b3250";
-      };
-    };
-    "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 = "1fzbmlpmyqjjnff6sjxk5h2ffib2ldzziy9x5k6200az86l7z9gqag28s6brw9yg2q7w0yjp69ir0p5qc5kfq7djy21xciqa82s1dq1";
-      };
-    };
-    "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 = "352z145jr1zx0w6kmlz2jxcaw6j2pwwg9va3x4gk731zw1agka2b213avw12zx6hgn071ibm0f3p80n5cdv896npay4s6jwbrv7w2mn";
-      };
-    };
-    "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 = "3dqfiiw6nxvvi24fndbzlccnjcas99bsd1kz5m2r78lzgpp6vx57jzbmxq3k1m7bsw88rwra0n4848l720fxxn5x20djck3wp3hysdh";
-      };
-    };
-    "mute-stream-0.0.5" = {
-      name = "mute-stream";
-      packageName = "mute-stream";
-      version = "0.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz";
-        sha1 = "8fbfabb0a98a253d3184331f9e8deb7372fac6c0";
-      };
-    };
-    "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";
-      };
-    };
-    "nedb-1.8.0" = {
-      name = "nedb";
-      packageName = "nedb";
-      version = "1.8.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/nedb/-/nedb-1.8.0.tgz";
-        sha1 = "0e3502cd82c004d5355a43c9e55577bd7bd91d88";
-      };
-    };
-    "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 = "0xi79rad0khwah5v2k6pvh8ajjgi7hp3zlkg6gk11pv70ydcq7li0kzcv1gnaf13gmblzhvx7hxs2nhypphb0sp4cggiy4ympndr5c5";
-      };
-    };
-    "neo-async-2.6.1" = {
-      name = "neo-async";
-      packageName = "neo-async";
-      version = "2.6.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz";
-        sha512 = "1kvffl97cs76iidch6z424p50m0wdryx6h6b1jdgr71bfg035szlxcdl6dz9jy71aj8msvprdq2ilbs9jisbim3g1b4l2bfy3qsc9lb";
-      };
-    };
-    "nested-error-stacks-2.1.0" = {
-      name = "nested-error-stacks";
-      packageName = "nested-error-stacks";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz";
-        sha512 = "2x6007gmmixqxpqdak4z72p47r050b009a1s6klp2f0kbdxvz0p8waz3g782x5din02hdbmjfca1dzfxshpfsw66dn4vmhfqaz3bvq0";
-      };
-    };
-    "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";
-      };
-    };
-    "node-html-parser-1.2.16" = {
-      name = "node-html-parser";
-      packageName = "node-html-parser";
-      version = "1.2.16";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/node-html-parser/-/node-html-parser-1.2.16.tgz";
-        sha512 = "23xlhws70lmdk8rdpw477ndr05rbjw9r8qns3vrm047j9gwnrjm95d1jypcnjszdwwn9asgcj1dmsmd87ki54b5fm0xh9zvicdfkcjf";
-      };
-    };
-    "nopt-3.0.6" = {
-      name = "nopt";
-      packageName = "nopt";
-      version = "3.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz";
-        sha1 = "c6465dbf08abcd4db359317f79ac68a646b28ff9";
-      };
-    };
-    "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 = "1wbwhlsm965n61y23wrm50ric9l7rig90wvx7hjdl34np6n1bbqcc67wgm494z303s6y5aj4xjyism3n6kikp40iz9qaizlfhvqr47z";
-      };
-    };
-    "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";
-      };
-    };
-    "nyc-14.1.1" = {
-      name = "nyc";
-      packageName = "nyc";
-      version = "14.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/nyc/-/nyc-14.1.1.tgz";
-        sha512 = "1dxgqq4rs13kgjhqfar1gb1b39bi0y7iglq2w1hxvjc81wc0bx40p1iis22dfng6q9cy2ql7k69bi3sfvb2vvgzcq37llj6lsdjz39q";
-      };
-    };
-    "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 = "1jz644r7ybsq688ifahm64ih3ljqjjskm533bgir20pvc350f9cl0z162scih0r1idx8lpw5f8hxa2pkf0lhbdhr5y6ak2ga5863v3x";
-      };
-    };
-    "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 = "06crm6ynp4rxakk4frrb4kjmi758r38fs5h0f6b7giyxhj0dghb6mdx7sbp0nhnk2w8cyb1bli07d9nbm086i34j8yx641qjpzawarr";
-      };
-    };
-    "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 = "2n6994y8y4b146a5wpzzgw779yc227cqkmwsifc3fbn2kc9dzypjigqf72bpgsqrk7gs93l6fk4iqdk752jnsnpr89j58sbabw09455";
-      };
-    };
-    "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-0.0.4" = {
-      name = "one-time";
-      packageName = "one-time";
-      version = "0.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/one-time/-/one-time-0.0.4.tgz";
-        sha1 = "f8cdf77884826fe4dff93e3a9cc37b1e4480742e";
-      };
-    };
-    "onetime-1.1.0" = {
-      name = "onetime";
-      packageName = "onetime";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz";
-        sha1 = "a1f7838f8314c516f05ecefcbc4ccfe04b4ed789";
-      };
-    };
-    "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 = "1n905a6d9xvmaqhy1xvpk4m7amkpx4wmky0w9764biihzkgachffm975qq5yqy4qjri2pbrrck994dsnz4ipmv4kbb7b4wx02jbv1gq";
-      };
-    };
-    "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";
-      };
-    };
-    "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-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 = "3mmng2h8sji2ah2j3f5gf0c26j2cmfwwqwck4kbpm8srxllwa8q1fd8jayhrk4f46g6zmw14lrzd4jc04079w1cqhjiy9wjanc3rzzz";
-      };
-    };
-    "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 = "14sa2r3zdhvy3sq757d4l21nxrlb7picyigb8zm956bbjadcv22chrfa95wzzrf28z0cyj62b6yihhdc9508q82gs2q3yz8yk1pdvf7";
-      };
-    };
-    "p-queue-6.4.0" = {
-      name = "p-queue";
-      packageName = "p-queue";
-      version = "6.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/p-queue/-/p-queue-6.4.0.tgz";
-        sha512 = "13h8pdq8v2smhrh39bf4ks1z8cdik8qcv2df1wj3bxgs3k090sxccxxg9q1qjj120lvs1ki6cj9rc9aapqdyb95zk8v5ych333mvdsz";
-      };
-    };
-    "p-timeout-3.2.0" = {
-      name = "p-timeout";
-      packageName = "p-timeout";
-      version = "3.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz";
-        sha512 = "03cbpzps5mxhlp6hywp92mnnrj4b6ag82f8vdqyz59xrxsrpn58qbh8nzrpiix2asj2d333i81aq0pw9bhki4yw7yf05hr04x9k04mf";
-      };
-    };
-    "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 = "1skmb50xzdk3qzd1f9l5mw8xp29frkizl63bhb9l1amivqybqb23n2824906vx790hjlwyhhrfzpzr5xr6ilzvy1xyl0ly0ah0wz2a7";
-      };
-    };
-    "package-hash-3.0.0" = {
-      name = "package-hash";
-      packageName = "package-hash";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/package-hash/-/package-hash-3.0.0.tgz";
-        sha512 = "0a3x4hdk1baqx5pxrblgsqmy4541fihqn0v4lhzknkg6laib1yq4ddq053sjrq9vc6jz5ibxnmxi53n7dr28ayf5xjgnmh38fx6dswl";
-      };
-    };
-    "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 = "1fkk6mw49b8mqs4rghv7bwpyvgj3qkcj4qz8zkrwcw0xcwg7q0cdd1w17i962ppxl3d6rss2a03ws5b7ihz20207g2r27mpy7ysw0hw";
-      };
-    };
-    "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";
-      };
-    };
-    "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 = "2lzxqjq4zp60k9gbskpqz7pr1yvb0c6nygd42sia7n6km2gc0cc844nlc5d6r9sshrjhjvs284143jzvz9wzd4r6xr9dz2k24xrwb0a";
-      };
-    };
-    "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-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-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 = "37qw5986wccpwwqckqky509s4nd6zwv200s9r2v6mcf5nsyxgf2x00m4yp918mkkz84sdh4q0kjbg0hhfq4flpz0l6v47hvc57qwa8r";
-      };
-    };
-    "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-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 = "2z1csf4c3fmlwl0ahk533z5zqkjdf36ccfx11kakl9xran9f5asxm4cxjq4lx1kwqdp8gki786cgpldvgrkvfc7pcvh07j5ssqm8rjg";
-      };
-    };
-    "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";
-      };
-    };
-    "pg-7.11.0" = {
-      name = "pg";
-      packageName = "pg";
-      version = "7.11.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pg/-/pg-7.11.0.tgz";
-        sha512 = "17y7xazc9ff7cvirg10zvdp75q3n8dimw20m2inzmgilkhiigwha1bhslhrl6g182larnc0lqs5d23ahnb2qx3z2ylc2456y3p1bvk0";
-      };
-    };
-    "pg-connection-string-0.1.3" = {
-      name = "pg-connection-string";
-      packageName = "pg-connection-string";
-      version = "0.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-0.1.3.tgz";
-        sha1 = "da1847b20940e42ee1492beaf65d49d91b245df7";
-      };
-    };
-    "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 = "2kr12hlmhrlca9f6gb14rvq93rn1z4ydmgv0ll7vak0nl5xxggq27y17346c3wj5afw3imsbvpaqcwjymb55hchj89czpdd5rnmlasq";
-      };
-    };
-    "pg-minify-1.4.1" = {
-      name = "pg-minify";
-      packageName = "pg-minify";
-      version = "1.4.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pg-minify/-/pg-minify-1.4.1.tgz";
-        sha512 = "02n86wbg4xh5xj78sw8jr53j76szc7q0y7f29pc515c5fam4g2zhhddng666zf9js0kcpkdmcrjda74sjmkl5anlklyygbvvk2pv9pi";
-      };
-    };
-    "pg-pool-2.0.10" = {
-      name = "pg-pool";
-      packageName = "pg-pool";
-      version = "2.0.10";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pg-pool/-/pg-pool-2.0.10.tgz";
-        sha512 = "272rvgd9wdjp5qybszf35bzc3k6ipv0rgqj98k6jwkpnad18sm9fnb57vgj0wd8hmf8rza6bbk2hi17nczp451jqgkzs7cvvmik7p59";
-      };
-    };
-    "pg-promise-8.7.5" = {
-      name = "pg-promise";
-      packageName = "pg-promise";
-      version = "8.7.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pg-promise/-/pg-promise-8.7.5.tgz";
-        sha512 = "3f730f6nq6rg3yq6m9f0r1rixc1x83g93wypw52sywj4wmwqjjxxg0ywwjppb0ncxf4f6f4ilvfihm002vrbsm1s304k2zmar5sdwxg";
-      };
-    };
-    "pg-types-2.0.1" = {
-      name = "pg-types";
-      packageName = "pg-types";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pg-types/-/pg-types-2.0.1.tgz";
-        sha512 = "25lv5nmw9z6q17fakq4dpcpjgyrf2d0n89lsxlbvsy1jd3iib8lns72l0mpkjbp3p0km8k6rz7vvil76k290vkzg779j5smrm0bmg3g";
-      };
-    };
-    "pgpass-1.0.2" = {
-      name = "pgpass";
-      packageName = "pgpass";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pgpass/-/pgpass-1.0.2.tgz";
-        sha1 = "2a7bb41b6065b67907e91da1b07c1847c877b306";
-      };
-    };
-    "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 = "3d9a1zsv7ca8ffpp7ffl67vp0ahiq78ix1jl21b4nfklinh2ilwh6c45f93syclab0b49p3cfq8d4agpphrbmf6xgfxgzjv268387xq";
-      };
-    };
-    "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 = "2znan90js3xrk8a8cvzv7vrjma5dgr9hkk4kpcgciyawbjz404a4rpdj6gngx1dc7f1xzmfm3q0an1rq69qyk2cmawhsy98i40pnkpw";
-      };
-    };
-    "pluralize-1.2.1" = {
-      name = "pluralize";
-      packageName = "pluralize";
-      version = "1.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz";
-        sha1 = "d1a21483fd22bb41e58a12fa3421823140897c45";
-      };
-    };
-    "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 = "2wdj5g97ilfpmjbpn3cmzhfysw77z8x3hqxvlmcknxm6488jpxvjshdqmd8m59ydhznadxcq1wlnfynh2877di58dgay0rrlm96p5jn";
-      };
-    };
-    "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.5" = {
-      name = "postgres-date";
-      packageName = "postgres-date";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.5.tgz";
-        sha512 = "24bvdwh2jsv4xbp64ansgpqi55db9xbdv4clyh3aajxvx1lc4wm5mw8aqkf5f144szp2ram50ziy49bqqcr0c24c501f4agcklaxmm5";
-      };
-    };
-    "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 = "1jy8mn5fadqlhqhznmyr55ghlzi2k9bxvvbyqbzb8rzzw101gbphlz18jyd533qqhkqf9wdyj3wc68vvdhvjbss6xs7xhzbrwl5g67m";
-      };
-    };
-    "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";
-      };
-    };
-    "prism-media-0.0.4" = {
-      name = "prism-media";
-      packageName = "prism-media";
-      version = "0.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/prism-media/-/prism-media-0.0.4.tgz";
-        sha512 = "13jjbcp3kiixdjfcasdn6i46gkyj5h5dx2qbc443m7rdmsh7vbbqykx7lczq3yrisfjsyjxjgh5vh0zzmlpa4r69aw4dgb8dgnv0vbl";
-      };
-    };
-    "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 = "1mgan8li4i2l4y7lsr7snks85n6xg5x693cqmzpid3fkk9br7v5xzgvh1zlfs08zkxn6s0n6qhykr64mszjfyxd77dhmdi1jhx992yy";
-      };
-    };
-    "progress-1.1.8" = {
-      name = "progress";
-      packageName = "progress";
-      version = "1.1.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz";
-        sha1 = "e260c78f6161cdd9b0e56cc3e0a85de17c7a57be";
-      };
-    };
-    "prom-client-11.5.3" = {
-      name = "prom-client";
-      packageName = "prom-client";
-      version = "11.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/prom-client/-/prom-client-11.5.3.tgz";
-        sha512 = "3hnz5ii2bvrrh14qkfcnxkjsxwfrcasfr34masbkwg1n4c41yvv1ir5k9ylmc806izl1xcjzyhidsb3qp832x7vva5lrdnvchbbcgcb";
-      };
-    };
-    "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 = "0xy6dm0910h3nsa0ik45yccdfm6f84nl3h9dpkb22crqhdr3mmiczcbrq9z53gq7l2ijxhxi3pzsfzafrzymw4c1nn68ml1y2pdy7vn";
-      };
-    };
-    "proxyquire-1.8.0" = {
-      name = "proxyquire";
-      packageName = "proxyquire";
-      version = "1.8.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/proxyquire/-/proxyquire-1.8.0.tgz";
-        sha1 = "02d514a5bed986f04cbb2093af16741535f79edc";
-      };
-    };
-    "pseudomap-1.0.2" = {
-      name = "pseudomap";
-      packageName = "pseudomap";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz";
-        sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3";
-      };
-    };
-    "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 = "0hn7s5bxnn3k2hiqh8fmm7bvq4vd6j0a5hwj09jk31r1ylv6q28g5hl3z70m3gycwfb40vdp04fqi59hdjih3jz0fhszg0s5b7lx1s4";
-      };
-    };
-    "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 = "381vqgh5xkqzrr6cxbzfykgnnk83m7qgpx3wjwj1hddn3sg2aibjxyr30rajpgv4js0cqknrbzwbfk5ryhiiyigzfjrk3zysy6i26sx";
-      };
-    };
-    "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 = "0c46ws0x9g3mmkgfmvd78bzvnmv2b8ryg4ah6jvyyqgjv9v994z7xdyvsc4vg9sf98gg7phvy3q1ahgaj5fy3dwzf2rki6bixgl15ip";
-      };
-    };
-    "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 = "34x6fm4dnq8m0kps5ann831k8fvx7jzlrcw8vvri0ki2g2ywdrjr8j5y14bvj9c0fd01ndsyx43y6ji51bfhnxk2gr5fpsks52429sl";
-      };
-    };
-    "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 = "15b00vag4wijzsp0lwi9jznpz16n858vq5p1p3dgjrqqil9c6d4x55s1nl1fi4cbq8307bylbvkd9qkhyk6qib8ksh8raibxb3jrf0y";
-      };
-    };
-    "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 = "3flyhj96ayiy8is22lwh9sp1yqq9ksym43x22yri2ikzladqqzxj6z657bc0xb5f2wl7qr2ja4byf57c9f7l2d3wqdglxih886zrv70";
-      };
-    };
-    "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-up-4.0.0" = {
-      name = "read-pkg-up";
-      packageName = "read-pkg-up";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz";
-        sha512 = "28400v5dwid6mc9x40s2mwfbkn22vj0dzx0ix8n2bffjx4p2ivb9b60bh743c74kdp0v391rdmladhgvrjgzihns456n977gr451sz9";
-      };
-    };
-    "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 = "0zrh6gjjzwwycwydra51xcrgjgzyqv6dq38bfpwzmlqn702mwb4nj4sjjn499rycqndfk6rby0dksnq72x8pcbvqv0b2893mvq6if0i";
-      };
-    };
-    "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 = "1s8hs6ax9jwmmw558j3hyfx5lfn7qf66xg0giplz9jci7d8zp2d8vh96dzlis6xzpxfa5b2zbm8nm4mgsr71r6rl3w3qyfanb5qfn05";
-      };
-    };
-    "readline2-1.0.1" = {
-      name = "readline2";
-      packageName = "readline2";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz";
-        sha1 = "41059608ffc154757b715d9989d199ffbf372e35";
-      };
-    };
-    "rechoir-0.6.2" = {
-      name = "rechoir";
-      packageName = "rechoir";
-      version = "0.6.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz";
-        sha1 = "85204b54dba82d5742e28c96756ef43af50e3384";
-      };
-    };
-    "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";
-      };
-    };
-    "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 = "03d4l8l8cyywh93wf5vw84lq56jh1b1d7jll4ny4z060j9hvx7w5q3q0b8q227jm93749k1c9h86r2pz0bm2xq5vp14g3r2kbvqc2rj";
-      };
-    };
-    "release-zalgo-1.0.0" = {
-      name = "release-zalgo";
-      packageName = "release-zalgo";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz";
-        sha1 = "09700b7e5074329739330e535c5a90fb67851730";
-      };
-    };
-    "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 = "23hm71jcxrwvp33azx8mx3w6dg21fr4w6lwvkvxyf6ckvhk3hz9dk8lzgkbiyzfl9ylhp4n807xp88ppq4gj5h07cmrgxf6nwxfvjrj";
-      };
-    };
-    "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-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 = "2d0gd2x49nz3hgfwms6326sjw5fx7gqf997dnggc7l084cibgang6wr6ryksky32fvdz1bq72xm73kfxd3lj2qnfyjsp57jq287k8rl";
-      };
-    };
-    "require-uncached-1.0.3" = {
-      name = "require-uncached";
-      packageName = "require-uncached";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz";
-        sha1 = "4e0d56d6c9662fd31e43011c4b95aa49955421d3";
-      };
-    };
-    "resolve-1.1.7" = {
-      name = "resolve";
-      packageName = "resolve";
-      version = "1.1.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz";
-        sha1 = "203114d82ad2c5ed9e8e0411b3932875e889e97b";
-      };
-    };
-    "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 = "3byf4g1wqfhz5vqx4rbssknblmf4hbjxijmlzvnr7z2l54yr1m4lk14bly6kk6mkdhncfzvvikzk449liiia1ilrfv5iwcmi0jvpkw9";
-      };
-    };
-    "resolve-from-1.0.1" = {
-      name = "resolve-from";
-      packageName = "resolve-from";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz";
-        sha1 = "26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226";
-      };
-    };
-    "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 = "3i345pdv74jb3xbprqb38xq1zfhsbxzm6b1h0mbcvhfpzz907m4amq35s0spijdj3phs508sha4cnr3incg4w8in4r0kd7ccmicrgx5";
-      };
-    };
-    "restore-cursor-1.0.1" = {
-      name = "restore-cursor";
-      packageName = "restore-cursor";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz";
-        sha1 = "34661f46886327fed2991479152252df92daa541";
-      };
-    };
-    "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 = "242p51rnhbah4ip4k2bqgnn5kx5v7byi6rd7jphxh7g92y8wh523zmqdr3jzyzr156p98kx7igb3mhh3l3fmf1iga06l0zcjmdrw2lv";
-      };
-    };
-    "run-async-0.1.0" = {
-      name = "run-async";
-      packageName = "run-async";
-      version = "0.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz";
-        sha1 = "c8ad4a5e110661e402a7d21b530e009f25f8e389";
-      };
-    };
-    "rx-lite-3.1.2" = {
-      name = "rx-lite";
-      packageName = "rx-lite";
-      version = "3.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz";
-        sha1 = "19ce502ca572665f3b647b10939f97fd1615f102";
-      };
-    };
-    "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 = "3xbm0dkya4bc3zwfwpdzbl8ngq0aai5ihlp2v3s39y7162c7wyvv9izj3g8hv6dy6vm2lq48lmfzygk0kxwbjb6xic7k4a329j99p8r";
-      };
-    };
-    "safe-buffer-5.2.1" = {
-      name = "safe-buffer";
-      packageName = "safe-buffer";
-      version = "5.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz";
-        sha512 = "1fq5yb2drm5x0pvp2ansqp7p3lq7q9p9z1pfhqfjgqs0ycq9zpnid55m5gx8ani9cwmjjcmn7nnn8j1f6iq3bxi56kdjwfa9six57df";
-      };
-    };
-    "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 = "2v99f22kh56y72d3s8wrgdvf5n10ry40dh3fwnsxr4d5rfvxdfxfmc3qyqkscnj4f8799jy9bpg6cm21x2d811dr9ib83wjrlmkg6k1";
-      };
-    };
-    "semver-4.3.2" = {
-      name = "semver";
-      packageName = "semver";
-      version = "4.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/semver/-/semver-4.3.2.tgz";
-        sha1 = "c7a07158a80bedd052355b770d82d6640f803be7";
-      };
-    };
-    "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 = "0cl68vp0ymkjpvim4s24v3awyk37d1bfbqrqv4ybwfi8yxga3d8fma2d6bh8dd4i2dsfwca324vaxm5dms61kdlmihdarfgzw6rmaxi";
-      };
-    };
-    "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 = "17wg4dv63jhss5hwqd135zz67r5c30b7a1xz33kfa7knxr0wfypyb8mj2xmc3l71qkxrz569n89xwp5d77m7adn0sr5wzfjlh2m6zvg";
-      };
-    };
-    "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 = "016qgvxg1si6vn34p7piyc8mhvmav1zscm294wkcjf221y1l9zk5kwk5z6yn1ixspj12df25bpazb2h3fdclcf59xqc2h4w46r4mi86";
-      };
-    };
-    "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 = "0551vv6s1vgk5krzdn9cwnybsv6g4cyqpkk1dlkyv1pd8n7m8r7pi12r16bw12dzwl6ghj4qwizjsxc8vl26lv9c61fkq9r059yzji4";
-      };
-    };
-    "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";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz";
-        sha512 = "01qxzb0a6jrcxa6qh776v04ihqrmcy3qfbp9drfsjhfcsmaqd21mppr3ndj970ixfh6bpm8ai45jyqyzjfjw26pcyd82y6pyrcl1xr6";
-      };
-    };
-    "shelljs-0.7.8" = {
-      name = "shelljs";
-      packageName = "shelljs";
-      version = "0.7.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz";
-        sha1 = "decbcf874b0d1e5fb72e14b164a9683048e9acb3";
-      };
-    };
-    "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 = "26893dbicabdw7f4klf18aiw4r88b8ndc9rchbpsaxb3ibvkk37gkffghac7g62clqkhk7szyfwnfxcsfs23wcjq6qm6lxwa3s7hhjm";
-      };
-    };
-    "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 = "2n63x6zw8yfljm41n870l2dcgixb4v83i4hnv8fw6h67kp3yz2vgjk3mrfgn0ak9jhl3nvbmhckd90rc0927pmyw1ik9jycmjmazw2x";
-      };
-    };
-    "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";
-      };
-    };
-    "slice-ansi-0.0.4" = {
-      name = "slice-ansi";
-      packageName = "slice-ansi";
-      version = "0.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz";
-        sha1 = "edbf8903f66f7ce2f8eafd6ceed65e264c831b35";
-      };
-    };
-    "snekfetch-3.6.4" = {
-      name = "snekfetch";
-      packageName = "snekfetch";
-      version = "3.6.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/snekfetch/-/snekfetch-3.6.4.tgz";
-        sha512 = "1vjlm1yvmw1b6wdx57xm4nnyjfvbvsb4plgv7jwg8k3ksp6f90cyipgnnydqfydkv1wzmgsnlrk1n2xzfm9cy97m9gq3lr368hn6g1n";
-      };
-    };
-    "source-map-0.2.0" = {
-      name = "source-map";
-      packageName = "source-map";
-      version = "0.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz";
-        sha1 = "dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d";
-      };
-    };
-    "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 = "3p7hw8p69ikj5mwapmqkacsjnbvdfk5ylyamjg9x5izkl717xvzj0vk3fnmx1n4pf54h5rs7r8ig5kk4jv4ycqqj0hv75cnx6k1lf2j";
-      };
-    };
-    "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 = "0dsfcfq64jhz0vidzqf94hmh4vlzhfid0z2wnr5fdv2lkpv7dvcqbya7fpha9cwqlpkc8w2if8z9aixdkcglh87370rq8426gpyd2as";
-      };
-    };
-    "spawn-wrap-1.4.3" = {
-      name = "spawn-wrap";
-      packageName = "spawn-wrap";
-      version = "1.4.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.3.tgz";
-        sha512 = "37iwmk6x87df051s6jh7yjwi1qnpsnxwc0rkr2lg23lyaw3q1aimd9cxn2nmich7i5l89kghjl7z119c3hvw6m7banzynqhvncpq012";
-      };
-    };
-    "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 = "39w4d72caizcw6551d9c955mp1al7f69nr3habk6z40rxgqf30lxdmmfwjmdsfhrxi5d3wgg0ml88hba48lcg9fbv1f22i1di8irrkh";
-      };
-    };
-    "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 = "3j243lk36wp1qpaif9bqd1q19kg0761271dapmdkbhdgzkfij5s0g5cp2qm1j1r4p3k9y264axrg6jj45zcf820klsz4g5vw1hfpm7y";
-      };
-    };
-    "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 = "3hlmxn7avkj2dnl87hs6qzhap33npg9rswizsl7d8b5mwrqaikqpl60idxl74rsdyk9q4pxy8gzkq9i5himb8d22d6p4nhhgfx8gfki";
-      };
-    };
-    "spdx-license-ids-3.0.5" = {
-      name = "spdx-license-ids";
-      packageName = "spdx-license-ids";
-      version = "3.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz";
-        sha512 = "3sk6sk6r05ikn5qslbh04h54mv4a34wn4d76s800h94padnjydfvvq73ij6jh81yrigspyr50ay878jjwpj2mcq38br371jkb6mdq97";
-      };
-    };
-    "spex-2.2.0" = {
-      name = "spex";
-      packageName = "spex";
-      version = "2.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/spex/-/spex-2.2.0.tgz";
-        sha512 = "1y780akyjspmy362xvl658rmpd25c28h7ng1bdsknxk8ahk1fxwz831y269n46wvddkbgy7xacv36n3svf5kgzq7zza0r5qlyl7204b";
-      };
-    };
-    "split-1.0.1" = {
-      name = "split";
-      packageName = "split";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/split/-/split-1.0.1.tgz";
-        sha512 = "2916kdi862ik0dlvr2wf2kvzmw8i8wk5spbr9wpdcksrkhrl3m0082jj1q4mqzvv50mlah5s4vcy6k18nacbj09kxbzp2pbysh8wg4r";
-      };
-    };
-    "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";
-      };
-    };
-    "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 = "0i4jnrxh6i17qij2vfki7qxmk435cnacvg363qg0hya5incfj57akgbas8zcx2cl5pds9jfgfyhqm8wlqz6damsg059gymv99aylx8x";
-      };
-    };
-    "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";
-      };
-    };
-    "stackback-0.0.2" = {
-      name = "stackback";
-      packageName = "stackback";
-      version = "0.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz";
-        sha1 = "1ac8a0d9483848d1695e418b6d031a3c3ce68e3b";
-      };
-    };
-    "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-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-width-2.1.1" = {
-      name = "string-width";
-      packageName = "string-width";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz";
-        sha512 = "29s1fqgr4mnhfxwczgdghfmmc1f792m9hysvcjxw2h5lfj8ndf2b6gm02m96qk5m75g4aisijvng4pk618anwbr8i9ay2jyszkqgslw";
-      };
-    };
-    "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 = "3bix3jva53vcp1im3aa1y2v1lywkm7ix81gkwkj4915s2675pmw1c9n5x98q1m985hzgwkk1fnc2q78qz7s0fixhf994md3lazxr9xx";
-      };
-    };
-    "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 = "315yd4vzwrwk3vwj1klf46y1cj2jbvf88066y2rnwhksb98phj46jkxixbwsp3h607w7czy7cby522s7sx8mvspdpdm3s72y2ga3x4z";
-      };
-    };
-    "string_decoder-1.3.0" = {
-      name = "string_decoder";
-      packageName = "string_decoder";
-      version = "1.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz";
-        sha512 = "1w0mz57mvmqykm0jwma6lr4i9pip8p8c1ldaax7sxnrl6j0jbrkwggs037r1psmac0w04i9mb2rc1gzj1n2f0xvy1fr332n9pqmfi46";
-      };
-    };
-    "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-4.0.0" = {
-      name = "strip-ansi";
-      packageName = "strip-ansi";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz";
-        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 = "1cf4mpsr46nik5xxyb9wc4cz6c4yymi2ijpfx1nghnkl39l8pgq1sc7q19jzrjkwpn9i7hwg4q3rs4ny3vssrc6506an1lv0bb6rr0f";
-      };
-    };
-    "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-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-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.4.0" = {
-      name = "supports-color";
-      packageName = "supports-color";
-      version = "5.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz";
-        sha512 = "3ks7qkl6s064qcdc5qnpzcwzcrnlzccz9m3faw54fnmsm2k8fzb9saqr5nhx7w9lnd4nbp0zg047zz8mwsd4fxfnalpb7kra619fdnf";
-      };
-    };
-    "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 = "2ihqi2z38fr1sq2jvwqgjqymncmkhxqz0x3bi97w4b4fn24wsdy71j139p95sb3nfrh3a449n0sqhm1z0jsi04860y8vdy8sp0n6da2";
-      };
-    };
-    "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 = "30pwyjmww4d54bf2m6lpw20ly4blhb88sy3gn6qcjih2rfq1s5zsl1nszzwgj2j1gqn3c8mw52df0z26rqyk8flzimb70scdmz67vd9";
-      };
-    };
-    "table-3.8.3" = {
-      name = "table";
-      packageName = "table";
-      version = "3.8.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/table/-/table-3.8.3.tgz";
-        sha1 = "2bbc542f0fda9861a755d3947fefd8b3f513855f";
-      };
-    };
-    "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 = "1djlwfzjcbfm8zafkk4fci19xgp2838m4n7zxxdiswp48hvci3az2fvr0cah8mbl81lqq680c0lfhhahjg8rxpg9ngb30i0cz9dyfyd";
-      };
-    };
-    "tar-4.4.13" = {
-      name = "tar";
-      packageName = "tar";
-      version = "4.4.13";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz";
-        sha512 = "10gwhmgx7fh619zv48r2lnm42qr7rw4qa9ph7142rizcn8in9dpi49jbmmv8ism60rcg1a7b4103r598jngi1rcn50sw7b8n1570rf3";
-      };
-    };
-    "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";
-      };
-    };
-    "test-exclude-5.2.3" = {
-      name = "test-exclude";
-      packageName = "test-exclude";
-      version = "5.2.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz";
-        sha512 = "3dgwbvh6yz24lh2kbdigw3j3kpxmmvlrqdhlc4innvrmyj0wvhs5ayckl00161sdx6a2pik344ggs49w9z1h6nh1v2fs542qyv33sik";
-      };
-    };
-    "test-value-2.1.0" = {
-      name = "test-value";
-      packageName = "test-value";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz";
-        sha1 = "11da6ff670f3471a73b625ca4f3fdcf7bb748291";
-      };
-    };
-    "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 = "1pazh99870gi3zslirzkribr37akp4zc5r73q78y89vpzjlcmpdrv7qx6wc3x2bwl20xcrq5hhs7cv3rzk8llm38nhqq9z0dhsldrds";
-      };
-    };
-    "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";
-      };
-    };
-    "through-2.3.8" = {
-      name = "through";
-      packageName = "through";
-      version = "2.3.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/through/-/through-2.3.8.tgz";
-        sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
-      };
-    };
-    "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";
-      };
-    };
-    "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 = "1bip1yxcfy4c0yl2kwmj9jyzfg1ixyj564wd1aaf46rabdiasx62yznb8bwn9cki886f353axgca42zma7q9rb4b50lhm1zz7y8g8y9";
-      };
-    };
-    "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 = "3xgcny117pqhfncr4gbmagzlnjiqqgq0lrvmljdfcdy64nc0xjfcbf1r08dmp1v1m3s51kq0yxc18nl3j9lbpr5bp5lgmi6719yqlly";
-      };
-    };
-    "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 = "0ppdjj0px3nrh57jbdhh12f3hx0xc2zg2zn61h3sdws4glcixr2k793bkv7hakb273pw8jq4qaxn0l28z658biy4bkd59a7bsyx9cay";
-      };
-    };
-    "ts-node-8.10.1" = {
-      name = "ts-node";
-      packageName = "ts-node";
-      version = "8.10.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ts-node/-/ts-node-8.10.1.tgz";
-        sha512 = "2zyrdhgyii4klwqhy8r5pps3w0g6x6rpbqnifm75sn9ws67zlalw9fbsfwfwkbww3n729hil48a6nxkavb1x4jypa4pi40ypva77lvd";
-      };
-    };
-    "tslib-1.13.0" = {
-      name = "tslib";
-      packageName = "tslib";
-      version = "1.13.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz";
-        sha512 = "3axs2rgddv0rkh86z13xlgvmggdblcp9prn4gp0qi49bsr7n6ibjiz56w079ghgrfn5p5xc0vjjgsd5l2ji7gw2ggdzspgw69187zlb";
-      };
-    };
-    "tslint-5.20.1" = {
-      name = "tslint";
-      packageName = "tslint";
-      version = "5.20.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz";
-        sha512 = "115281frr19v46cmcvxwpapklyypqa4vy2s2h2jrw0r4amw9i124rmd7c0hs153qrm5kjcjcz7fbzq93b6azya3zlzckdw5623k3hqi";
-      };
-    };
-    "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 = "2cc8fsdfbgfcjj6y7dlr0kpmkhbw0j69cak4s21jb44w57dlwksrjx8wn1h4f1j2vx8dhj9mrqsbmmwd96mrsd59743ghq948f5b4l3";
-      };
-    };
-    "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 = "35kj8baw7d9y3k6vyp4j51w80s64rxg73560fhwdw7wy06f7r04dq25f64fvvcpf2dn0lbn96x25mhdp5vf30nc31kjsfnsvr27xfza";
-      };
-    };
-    "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 = "1z2f06mzr855vwxwr0wkndnkn3fnjcwisd3iajkh6dmzz0dn1a5amq7m798j1ass4kiymz4gn3q0c573l21377dkq1ap2i703jfv6gv";
-      };
-    };
-    "type-2.0.0" = {
-      name = "type";
-      packageName = "type";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/type/-/type-2.0.0.tgz";
-        sha512 = "2iyk1bl159vr7i0r24jawi0lwrgns8xvsw72962lvzw6qshm5blls6p7spkpcqpgwb0p7liwdix0ph0j22dip1rg812xbw723rpj6r8";
-      };
-    };
-    "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";
-      };
-    };
-    "type-detect-0.1.1" = {
-      name = "type-detect";
-      packageName = "type-detect";
-      version = "0.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz";
-        sha1 = "0ba5ec2a885640e470ea4e8505971900dac58822";
-      };
-    };
-    "type-detect-1.0.0" = {
-      name = "type-detect";
-      packageName = "type-detect";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz";
-        sha1 = "762217cc06db258ec48908a1298e8b95121e8ea2";
-      };
-    };
-    "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 = "3r7402x79nilhdgk4z21yjh5y9vix8lwlll1kzcn8jd2m89vzksdb6wddia77cxv3iwhd6i5hkv6n7diwjbhpy7y03i2kqlvfplli2f";
-      };
-    };
-    "typedarray-0.0.6" = {
-      name = "typedarray";
-      packageName = "typedarray";
-      version = "0.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz";
-        sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
-      };
-    };
-    "typescript-3.9.3" = {
-      name = "typescript";
-      packageName = "typescript";
-      version = "3.9.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/typescript/-/typescript-3.9.3.tgz";
-        sha512 = "0qxmaaa7cg220z12fz2nl9yi0l95305hik7kbv2w13qr46kyzb4z6f8j2bk20yzq6vb2kcj5a746x3ipi8z8il0f94d3k5i3nf2mz0g";
-      };
-    };
-    "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";
-      };
-    };
-    "uglify-js-3.9.3" = {
-      name = "uglify-js";
-      packageName = "uglify-js";
-      version = "3.9.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.9.3.tgz";
-        sha512 = "0qc2lank7m9yfq0bx0xmnm5vq74xz0szvxw6scj2fi1kzcyy55ah4ksvmm6vpb9bh0yib5hri4rkgb8yy5s5419aq339jwhprq2d4mg";
-      };
-    };
-    "underscore-1.4.4" = {
-      name = "underscore";
-      packageName = "underscore";
-      version = "1.4.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz";
-        sha1 = "61a6a32010622afa07963bf325203cf12239d604";
-      };
-    };
-    "unhomoglyph-1.0.6" = {
-      name = "unhomoglyph";
-      packageName = "unhomoglyph";
-      version = "1.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/unhomoglyph/-/unhomoglyph-1.0.6.tgz";
-        sha512 = "0dg6bcjn2c5ajmv826342ckp3c7fhy6rdy3xr30vp8hbqr4gsbk24h3z7qa1grm31wi35nqrrax71n9cydf0vih019chnp1imcdrszf";
-      };
-    };
-    "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";
-      };
-    };
-    "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 = "2fz60s71ghl56ddfiiaws81xpiidlbjk69jyjmahz190d2advy9zdbcwh5if4rgg5hxdbfxhkwiipjrnjy8w834bxsmzambd2p4b3r9";
-      };
-    };
-    "user-home-2.0.0" = {
-      name = "user-home";
-      packageName = "user-home";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz";
-        sha1 = "9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f";
-      };
-    };
-    "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 = "3y9pcli1v8nqryqd2c4pxj9kcv92mjc22z4smg08pdjzrbwda19xmjbzms1dwr04995h4carz9s8mldbiqb8708694lwr501r3q6d0y";
-      };
-    };
-    "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 = "09vn7gn5jp2c07pxplc11lvk7ybfaz0rp3qzflyiyhnahkfgh76bij31ll5rg01ranlmljrky2q25d1f6bbd0h23pzxxi5z93csd4hf";
-      };
-    };
-    "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";
-      };
-    };
-    "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";
-      };
-    };
-    "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 = "0hr4hxkk8yb9fz993bs69pf8z2z2qb6sdpxfxb84sd16lja9fsx444pk1ang1ivmjjv5srnsm6fihdj593w7rwxdh834cdmd9hms4hz";
-      };
-    };
-    "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";
-      };
-    };
-    "why-is-node-running-2.1.2" = {
-      name = "why-is-node-running";
-      packageName = "why-is-node-running";
-      version = "2.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.1.2.tgz";
-        sha512 = "1w8cc76xp7x090k7cj7b85mk32360pv51nq43d9l9x40069ldcpa5qb2lkfqddlnn17q7v4qrwhlrl2xm9a1z00ijy6q0ac2fhiw1ag";
-      };
-    };
-    "winston-3.2.1" = {
-      name = "winston";
-      packageName = "winston";
-      version = "3.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/winston/-/winston-3.2.1.tgz";
-        sha512 = "0xywwwrgdf54nfk0pzdpkgn27jwxkkfimf5s9jd04xihx03wwj71r0nafdmsdfg5brj9hsdalqj19vpl2442gx82210ax5xfj1ayknd";
-      };
-    };
-    "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 = "3v94p4wq3xmi9d5f1gsk39fj6nc6nq8ivh7ka0whzvg7g71zplmgw9b5vkl7kqr66qm9xd5i4l0vhazmxzpgflqvhaq1lzsfiqczyqh";
-      };
-    };
-    "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 = "22fkfci36zb0q6ygc6sg2x2l0886j2cayl6jbi703smf5h4iwa1g2j4dwwr30jr2zjgdyh95ig8yqfk0y8h51gnvi8zf2inn9yh5vr8";
-      };
-    };
-    "winston-transport-4.3.0" = {
-      name = "winston-transport";
-      packageName = "winston-transport";
-      version = "4.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/winston-transport/-/winston-transport-4.3.0.tgz";
-        sha512 = "3a2khvz9qld5b1ci486nyphyi96pg5n8xin9f0lrx0hllvvjqkj8y393rs2fiyz7afg7244vchiv3ka3klm4xgykxrzipi20nxhyv07";
-      };
-    };
-    "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 = "2ykkqcs7vmimn8dsvs7xl55j0lbbrfj0nij9i7yqnxg9g759vqyrdis8w5n82k6xvas03x0xhgmbzjgsp7v803mzihx9d12vjnfcgqz";
-      };
-    };
-    "wordwrap-1.0.0" = {
-      name = "wordwrap";
-      packageName = "wordwrap";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz";
-        sha1 = "27584810891456a4171c8d0226441ade90cbcaeb";
-      };
-    };
-    "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 = "2kx3frfi14d0b5wxdd8ylp5m9537p2j9pph6z8nxqcvk1a09hj7pm39dfwykrjn86zf0kwxf15aym9r4n9qzw6a18ajkgwgmjv1gvwq";
-      };
-    };
-    "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 = "3nmsfqfd98a7bgjyhd334y5gzc98nnkipfkmk2z1v4m0acagmpq951d8brmrsxvpnk256fbrp7zkn5n8v02pn4q4zai7zgnvy47yba0";
-      };
-    };
-    "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-0.2.1" = {
-      name = "write";
-      packageName = "write";
-      version = "0.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/write/-/write-0.2.1.tgz";
-        sha1 = "5fc03828e264cea3fe91455476f7a3c566cb0757";
-      };
-    };
-    "write-file-atomic-2.4.3" = {
-      name = "write-file-atomic";
-      packageName = "write-file-atomic";
-      version = "2.4.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz";
-        sha512 = "12rq2v0h7wmi2kh4vi2k58rribvz4g11imhn11zxiccyd6mx1dsnah9ypsn7cjmlyczipxac0rplciakh13xqbwfa37zc9hkhgi788r";
-      };
-    };
-    "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 = "2l27cfiaw6syjvy6vbpqf5c2swd37bqviizzck6842xlankppm9j1sg79x3m8jpda8v6khcpnm5ssab1b8vf34qpviv41ww5mf8130q";
-      };
-    };
-    "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 = "08w1d6fg23v422cfwd55306pfs9n9cqpz6hycahq3adm3n29wmhl9bmpn4vk75rlzgwn7hp4n3idqxvw8c53zbr04h7a98p43b199ic";
-      };
-    };
-    "y18n-4.0.0" = {
-      name = "y18n";
-      packageName = "y18n";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz";
-        sha512 = "3zj75gvpcgiphxpci4ji1znykk9n4cs0aw3dd6inwdvkmxyqn2483vya70lssjwq8alspnpw88vgii21fdrcn2vmfyppzgf4mkvzm5g";
-      };
-    };
-    "yallist-2.1.2" = {
-      name = "yallist";
-      packageName = "yallist";
-      version = "2.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz";
-        sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
-      };
-    };
-    "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 = "3ig31a6zfbdlrs3l77a8avpp17hajryhyq2xk4h3ayc4dmxch146rdk7q1s1jgx9qvmxq125r0xq2bvnq0rq63m75k9y7wglm0hd1bb";
-      };
-    };
-    "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 = "19rg5b2rhj2kg44as5vv9jxmpr39lw250885w6nlfwyhvwd5nxnnx7fc35v7h615i65cik7k3wi7ac20c91kcgfi5wy7blgk31xjz81";
-      };
-    };
-    "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 = "375nan6m28q81h8q9a8vmcxgiq7s81yn1ql7zdikac0c4j2kmxdjzmbq14fcp9jm4ilcfzkd9ym4x7c80s7r6g488wf13zz2wsyqmny";
-      };
-    };
-    "yn-3.1.1" = {
-      name = "yn";
-      packageName = "yn";
-      version = "3.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz";
-        sha512 = "3lq5f8c7lb89pyxhpb8nrbif4p5ganpyfzz267dgqxr6dn6yr0vgh017403bmy2v651m1wmd8k6x2fm5v37nmn1i8xngfxccn0347jk";
-      };
-    };
-  };
-in
-{
-  "matrix-appservice-discord-git+https://github.com/Half-Shot/matrix-appservice-discord.git#v0.5.2" = nodeEnv.buildNodePackage {
-    name = "matrix-appservice-discord";
-    packageName = "matrix-appservice-discord";
-    version = "0.5.2";
-    src = fetchgit {
-      url = "https://github.com/Half-Shot/matrix-appservice-discord.git";
-      rev = "a364584411d516f4f73df450bad3e74e40fe016b";
-      sha256 = "69a46978dfb9007716446076348a5067f622d970f1ab9417798532345303e551";
-    };
-    dependencies = [
-      sources."@babel/code-frame-7.8.3"
-      (sources."@babel/generator-7.9.6" // {
-        dependencies = [
-          sources."source-map-0.5.7"
-        ];
-      })
-      sources."@babel/helper-function-name-7.9.5"
-      sources."@babel/helper-get-function-arity-7.8.3"
-      sources."@babel/helper-split-export-declaration-7.8.3"
-      sources."@babel/helper-validator-identifier-7.9.5"
-      sources."@babel/highlight-7.9.0"
-      sources."@babel/parser-7.9.6"
-      sources."@babel/template-7.8.6"
-      (sources."@babel/traverse-7.9.6" // {
-        dependencies = [
-          sources."debug-4.2.0"
-          sources."globals-11.12.0"
-          sources."ms-2.1.2"
-        ];
-      })
-      sources."@babel/types-7.9.6"
-      sources."@istanbuljs/nyc-config-typescript-0.1.3"
-      sources."@types/chai-3.5.2"
-      sources."@types/mocha-5.2.7"
-      sources."@types/node-10.17.24"
-      sources."@types/prop-types-15.7.3"
-      sources."@types/react-16.9.35"
-      sources."@types/sqlite3-3.1.6"
-      sources."abbrev-1.1.1"
-      sources."accepts-1.3.7"
-      sources."acorn-5.7.4"
-      (sources."acorn-jsx-3.0.1" // {
-        dependencies = [
-          sources."acorn-3.3.0"
-        ];
-      })
-      sources."ajv-6.12.2"
-      sources."ajv-keywords-1.5.1"
-      sources."amdefine-1.0.1"
-      sources."another-json-0.2.0"
-      (sources."ansi-escape-sequences-4.1.0" // {
-        dependencies = [
-          sources."array-back-3.1.0"
-        ];
-      })
-      sources."ansi-escapes-1.4.0"
-      sources."ansi-regex-2.1.1"
-      sources."ansi-styles-3.2.1"
-      sources."append-transform-1.0.0"
-      sources."archy-1.0.0"
-      sources."arg-4.1.3"
-      sources."argparse-1.0.10"
-      sources."array-back-2.0.0"
-      sources."array-flatten-1.1.1"
-      sources."asn1-0.2.4"
-      sources."assert-options-0.1.3"
-      sources."assert-plus-1.0.0"
-      sources."assertion-error-1.1.0"
-      sources."async-0.2.10"
-      sources."async-limiter-1.0.1"
-      sources."asynckit-0.4.0"
-      sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
-      (sources."babel-code-frame-6.26.0" // {
-        dependencies = [
-          sources."ansi-styles-2.2.1"
-          sources."chalk-1.1.3"
-          sources."js-tokens-3.0.2"
-          sources."supports-color-2.0.0"
-        ];
-      })
-      sources."babel-runtime-6.26.0"
-      sources."balanced-match-1.0.0"
-      sources."base-x-3.0.8"
-      (sources."basic-auth-2.0.1" // {
-        dependencies = [
-          sources."safe-buffer-5.1.2"
-        ];
-      })
-      (sources."bcrypt-pbkdf-1.0.2" // {
-        dependencies = [
-          sources."tweetnacl-0.14.5"
-        ];
-      })
-      sources."better-sqlite3-5.4.3"
-      sources."binary-search-tree-0.2.5"
-      sources."bintrees-1.0.1"
-      sources."bluebird-2.11.0"
-      sources."body-parser-1.19.0"
-      sources."brace-expansion-1.1.11"
-      sources."browser-request-0.3.3"
-      sources."browser-stdout-1.3.1"
-      sources."bs58-4.0.1"
-      sources."buffer-from-1.1.1"
-      sources."buffer-writer-2.0.0"
-      sources."builtin-modules-1.1.1"
-      sources."bytes-3.1.0"
-      sources."caching-transform-3.0.2"
-      sources."caller-path-0.1.0"
-      sources."callsites-0.2.0"
-      sources."camelcase-5.3.1"
-      sources."caseless-0.12.0"
-      sources."chai-3.5.0"
-      sources."chalk-2.4.2"
-      sources."chownr-1.1.4"
-      sources."circular-json-0.3.3"
-      sources."cli-cursor-1.0.2"
-      sources."cli-width-2.2.1"
-      (sources."cliui-5.0.0" // {
-        dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
-        ];
-      })
-      sources."co-4.6.0"
-      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.3"
-      sources."colornames-1.1.1"
-      sources."colors-1.4.0"
-      sources."colorspace-1.1.2"
-      sources."combined-stream-1.0.8"
-      sources."command-line-args-4.0.7"
-      sources."command-line-usage-4.1.0"
-      sources."commander-2.20.3"
-      sources."commondir-1.0.1"
-      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."string_decoder-1.1.1"
-        ];
-      })
-      (sources."content-disposition-0.5.3" // {
-        dependencies = [
-          sources."safe-buffer-5.1.2"
-        ];
-      })
-      sources."content-type-1.0.4"
-      (sources."convert-source-map-1.7.0" // {
-        dependencies = [
-          sources."safe-buffer-5.1.2"
-        ];
-      })
-      sources."cookie-0.4.0"
-      sources."cookie-signature-1.0.6"
-      sources."core-js-2.6.11"
-      sources."core-util-is-1.0.2"
-      sources."cp-file-6.2.0"
-      sources."cross-spawn-4.0.2"
-      sources."csstype-2.6.10"
-      sources."cycle-1.0.3"
-      sources."d-1.0.1"
-      sources."dashdash-1.14.1"
-      sources."debug-2.6.9"
-      sources."decamelize-1.2.0"
-      (sources."deep-eql-0.1.3" // {
-        dependencies = [
-          sources."type-detect-0.1.1"
-        ];
-      })
-      sources."deep-extend-0.6.0"
-      sources."deep-is-0.1.3"
-      sources."default-require-extensions-2.0.0"
-      sources."delayed-stream-1.0.0"
-      sources."depd-1.1.2"
-      sources."destroy-1.0.4"
-      sources."diagnostics-1.1.1"
-      sources."diff-4.0.2"
-      sources."discord-markdown-2.3.1"
-      sources."discord.js-11.6.4"
-      sources."doctrine-2.1.0"
-      sources."ecc-jsbn-0.1.2"
-      sources."ee-first-1.1.1"
-      sources."emoji-regex-7.0.3"
-      sources."enabled-1.0.2"
-      sources."encodeurl-1.0.2"
-      sources."env-variable-0.0.6"
-      (sources."error-ex-1.3.2" // {
-        dependencies = [
-          sources."is-arrayish-0.2.1"
-        ];
-      })
-      sources."es5-ext-0.10.53"
-      sources."es6-error-4.1.1"
-      sources."es6-iterator-2.0.3"
-      sources."es6-map-0.1.5"
-      (sources."es6-set-0.1.5" // {
-        dependencies = [
-          sources."es6-symbol-3.1.1"
-        ];
-      })
-      sources."es6-symbol-3.1.3"
-      sources."es6-weak-map-2.0.3"
-      sources."escape-html-1.0.3"
-      sources."escape-string-regexp-1.0.5"
-      (sources."escodegen-1.8.1" // {
-        dependencies = [
-          sources."esprima-2.7.3"
-          sources."estraverse-1.9.3"
-        ];
-      })
-      sources."escope-3.6.0"
-      (sources."eslint-3.19.0" // {
-        dependencies = [
-          sources."ansi-styles-2.2.1"
-          sources."chalk-1.1.3"
-          sources."supports-color-2.0.0"
-        ];
-      })
-      sources."espree-3.5.4"
-      sources."esprima-4.0.1"
-      (sources."esquery-1.3.1" // {
-        dependencies = [
-          sources."estraverse-5.1.0"
-        ];
-      })
-      sources."esrecurse-4.2.1"
-      sources."estraverse-4.3.0"
-      sources."esutils-2.0.3"
-      sources."etag-1.8.1"
-      sources."event-emitter-0.3.5"
-      sources."eventemitter3-4.0.4"
-      sources."exit-hook-1.1.1"
-      (sources."express-4.17.1" // {
-        dependencies = [
-          sources."safe-buffer-5.1.2"
-        ];
-      })
-      (sources."ext-1.4.0" // {
-        dependencies = [
-          sources."type-2.0.0"
-        ];
-      })
-      sources."extend-3.0.2"
-      sources."extsprintf-1.3.0"
-      sources."fast-deep-equal-3.1.1"
-      sources."fast-json-stable-stringify-2.1.0"
-      sources."fast-levenshtein-2.0.6"
-      sources."fast-safe-stringify-2.0.7"
-      sources."fecha-2.3.3"
-      sources."figures-1.7.0"
-      sources."file-entry-cache-2.0.0"
-      sources."file-stream-rotator-0.4.1"
-      sources."fill-keys-1.0.2"
-      sources."finalhandler-1.1.2"
-      sources."find-cache-dir-2.1.0"
-      (sources."find-replace-1.0.3" // {
-        dependencies = [
-          sources."array-back-1.0.4"
-        ];
-      })
-      sources."find-up-3.0.0"
-      sources."flat-cache-1.3.4"
-      sources."foreground-child-1.5.6"
-      sources."forever-agent-0.6.1"
-      sources."form-data-2.3.3"
-      sources."forwarded-0.1.2"
-      sources."fresh-0.5.2"
-      sources."fs-minipass-1.2.7"
-      sources."fs.realpath-1.0.0"
-      sources."generate-function-2.3.1"
-      sources."generate-object-property-1.2.0"
-      sources."get-caller-file-2.0.5"
-      sources."getpass-0.1.7"
-      sources."glob-7.1.6"
-      sources."globals-9.18.0"
-      sources."graceful-fs-4.2.4"
-      sources."growl-1.10.5"
-      (sources."handlebars-4.7.6" // {
-        dependencies = [
-          sources."source-map-0.6.1"
-        ];
-      })
-      sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
-      sources."has-ansi-2.0.0"
-      sources."has-flag-3.0.0"
-      sources."hasha-3.0.0"
-      sources."he-1.1.1"
-      sources."highlight.js-9.18.1"
-      sources."hosted-git-info-2.8.8"
-      sources."html-escaper-2.0.2"
-      sources."http-errors-1.7.2"
-      sources."http-signature-1.2.0"
-      sources."iconv-lite-0.4.24"
-      sources."ignore-3.3.10"
-      sources."immediate-3.0.6"
-      sources."imurmurhash-0.1.4"
-      sources."inflight-1.0.6"
-      sources."inherits-2.0.3"
-      (sources."inquirer-0.12.0" // {
-        dependencies = [
-          sources."ansi-styles-2.2.1"
-          sources."chalk-1.1.3"
-          sources."supports-color-2.0.0"
-        ];
-      })
-      sources."integer-2.1.0"
-      sources."interpret-1.2.0"
-      sources."ipaddr.js-1.9.1"
-      sources."is-arrayish-0.3.2"
-      sources."is-fullwidth-code-point-1.0.0"
-      sources."is-my-ip-valid-1.0.0"
-      sources."is-my-json-valid-2.20.0"
-      sources."is-object-1.0.1"
-      sources."is-property-1.0.2"
-      sources."is-resolvable-1.1.0"
-      sources."is-stream-1.1.0"
-      sources."is-typedarray-1.0.0"
-      sources."isarray-1.0.0"
-      sources."isexe-2.0.0"
-      sources."isstream-0.1.2"
-      (sources."istanbul-0.4.5" // {
-        dependencies = [
-          sources."abbrev-1.0.9"
-          sources."async-1.5.2"
-          sources."esprima-2.7.3"
-          sources."glob-5.0.15"
-          sources."has-flag-1.0.0"
-          sources."resolve-1.1.7"
-          sources."supports-color-3.2.3"
-        ];
-      })
-      sources."istanbul-lib-coverage-2.0.5"
-      sources."istanbul-lib-hook-2.0.7"
-      (sources."istanbul-lib-instrument-3.3.0" // {
-        dependencies = [
-          sources."semver-6.3.0"
-        ];
-      })
-      (sources."istanbul-lib-report-2.0.8" // {
-        dependencies = [
-          sources."supports-color-6.1.0"
-        ];
-      })
-      (sources."istanbul-lib-source-maps-3.0.6" // {
-        dependencies = [
-          sources."debug-4.2.0"
-          sources."ms-2.1.2"
-          sources."source-map-0.6.1"
-        ];
-      })
-      sources."istanbul-reports-2.2.7"
-      sources."js-tokens-4.0.0"
-      sources."js-yaml-3.13.1"
-      sources."jsbn-0.1.1"
-      sources."jsesc-2.5.2"
-      sources."json-parse-better-errors-1.0.2"
-      sources."json-schema-0.2.3"
-      sources."json-schema-traverse-0.4.1"
-      sources."json-stable-stringify-1.0.1"
-      sources."json-stringify-safe-5.0.1"
-      sources."jsonify-0.0.0"
-      sources."jsonpointer-4.0.1"
-      sources."jsprim-1.4.1"
-      sources."kuler-1.0.1"
-      sources."levn-0.3.0"
-      sources."lie-3.1.1"
-      (sources."load-json-file-4.0.0" // {
-        dependencies = [
-          sources."pify-3.0.0"
-        ];
-      })
-      sources."localforage-1.7.3"
-      sources."locate-path-3.0.0"
-      sources."lodash-4.17.15"
-      sources."lodash.flattendeep-4.4.0"
-      sources."lodash.padend-4.6.1"
-      (sources."logform-2.1.2" // {
-        dependencies = [
-          sources."ms-2.1.2"
-        ];
-      })
-      sources."loglevel-1.6.1"
-      sources."long-4.0.0"
-      (sources."lru-cache-4.1.5" // {
-        dependencies = [
-          sources."yallist-2.1.2"
-        ];
-      })
-      (sources."make-dir-2.1.0" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
-      sources."make-error-1.3.6"
-      sources."manakin-0.5.2"
-      sources."matrix-appservice-0.3.5"
-      sources."matrix-appservice-bridge-git://github.com/matrix-org/matrix-appservice-bridge#8a7288edf1d1d1d1395a83d330d836d9c9bf1e76"
-      (sources."matrix-js-sdk-1.2.0" // {
-        dependencies = [
-          sources."bluebird-3.7.2"
-        ];
-      })
-      sources."media-typer-0.3.0"
-      sources."merge-descriptors-1.0.1"
-      (sources."merge-source-map-1.1.0" // {
-        dependencies = [
-          sources."source-map-0.6.1"
-        ];
-      })
-      sources."methods-1.1.2"
-      sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
-      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."mocha-5.2.0" // {
-        dependencies = [
-          sources."commander-2.15.1"
-          sources."debug-3.1.0"
-          sources."diff-3.5.0"
-          sources."glob-7.1.2"
-          sources."minimist-0.0.8"
-          sources."mkdirp-0.5.1"
-          sources."supports-color-5.4.0"
-        ];
-      })
-      sources."module-not-found-error-1.0.1"
-      sources."moment-2.26.0"
-      (sources."morgan-1.10.0" // {
-        dependencies = [
-          sources."depd-2.0.0"
-        ];
-      })
-      sources."ms-2.0.0"
-      sources."mute-stream-0.0.5"
-      sources."natural-compare-1.4.0"
-      sources."nedb-1.8.0"
-      sources."negotiator-0.6.2"
-      sources."neo-async-2.6.1"
-      sources."nested-error-stacks-2.1.0"
-      sources."next-tick-1.0.0"
-      sources."node-html-parser-1.2.16"
-      sources."nopt-3.0.6"
-      sources."normalize-package-data-2.5.0"
-      sources."number-is-nan-1.0.1"
-      (sources."nyc-14.1.1" // {
-        dependencies = [
-          sources."resolve-from-4.0.0"
-        ];
-      })
-      sources."oauth-sign-0.9.0"
-      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-0.0.4"
-      sources."onetime-1.1.0"
-      sources."optionator-0.8.3"
-      sources."os-homedir-1.0.2"
-      sources."p-finally-1.0.0"
-      sources."p-limit-2.3.0"
-      sources."p-locate-3.0.0"
-      sources."p-queue-6.4.0"
-      sources."p-timeout-3.2.0"
-      sources."p-try-2.2.0"
-      sources."package-hash-3.0.0"
-      sources."packet-reader-1.0.0"
-      sources."parse-json-4.0.0"
-      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-parse-1.0.6"
-      sources."path-to-regexp-0.1.7"
-      (sources."path-type-3.0.0" // {
-        dependencies = [
-          sources."pify-3.0.0"
-        ];
-      })
-      sources."performance-now-2.1.0"
-      sources."pg-7.11.0"
-      sources."pg-connection-string-0.1.3"
-      sources."pg-int8-1.0.1"
-      sources."pg-minify-1.4.1"
-      sources."pg-pool-2.0.10"
-      sources."pg-promise-8.7.5"
-      sources."pg-types-2.0.1"
-      sources."pgpass-1.0.2"
-      sources."pify-4.0.1"
-      sources."pkg-dir-3.0.0"
-      sources."pluralize-1.2.1"
-      sources."postgres-array-2.0.0"
-      sources."postgres-bytea-1.0.0"
-      sources."postgres-date-1.0.5"
-      sources."postgres-interval-1.2.0"
-      sources."prelude-ls-1.1.2"
-      sources."prism-media-0.0.4"
-      sources."process-nextick-args-2.0.1"
-      sources."progress-1.1.8"
-      sources."prom-client-11.5.3"
-      sources."proxy-addr-2.0.6"
-      (sources."proxyquire-1.8.0" // {
-        dependencies = [
-          sources."resolve-1.1.7"
-        ];
-      })
-      sources."pseudomap-1.0.2"
-      sources."psl-1.8.0"
-      sources."punycode-2.1.1"
-      sources."qs-6.7.0"
-      sources."range-parser-1.2.1"
-      sources."raw-body-2.4.0"
-      sources."read-pkg-3.0.0"
-      sources."read-pkg-up-4.0.0"
-      sources."readable-stream-3.6.0"
-      sources."readline2-1.0.1"
-      sources."rechoir-0.6.2"
-      sources."reduce-flatten-1.0.1"
-      sources."regenerator-runtime-0.11.1"
-      sources."release-zalgo-1.0.0"
-      (sources."request-2.88.2" // {
-        dependencies = [
-          sources."qs-6.5.2"
-        ];
-      })
-      sources."require-directory-2.1.1"
-      sources."require-main-filename-2.0.0"
-      sources."require-uncached-1.0.3"
-      sources."resolve-1.17.0"
-      sources."resolve-from-1.0.1"
-      sources."restore-cursor-1.0.1"
-      sources."rimraf-2.6.3"
-      sources."run-async-0.1.0"
-      sources."rx-lite-3.1.2"
-      sources."safe-buffer-5.2.1"
-      sources."safer-buffer-2.1.2"
-      sources."semver-4.3.2"
-      (sources."send-0.17.1" // {
-        dependencies = [
-          sources."ms-2.1.1"
-        ];
-      })
-      sources."serve-static-1.14.1"
-      sources."set-blocking-2.0.0"
-      sources."setprototypeof-1.1.1"
-      sources."shelljs-0.7.8"
-      sources."signal-exit-3.0.3"
-      sources."simple-markdown-0.7.2"
-      sources."simple-swizzle-0.2.2"
-      sources."slice-ansi-0.0.4"
-      sources."snekfetch-3.6.4"
-      sources."source-map-0.2.0"
-      (sources."source-map-support-0.5.19" // {
-        dependencies = [
-          sources."source-map-0.6.1"
-        ];
-      })
-      sources."spawn-wrap-1.4.3"
-      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.5"
-      sources."spex-2.2.0"
-      sources."split-1.0.1"
-      sources."sprintf-js-1.0.3"
-      (sources."sshpk-1.16.1" // {
-        dependencies = [
-          sources."tweetnacl-0.14.5"
-        ];
-      })
-      sources."stack-trace-0.0.10"
-      sources."stackback-0.0.2"
-      sources."statuses-1.5.0"
-      sources."string-width-1.0.2"
-      sources."string_decoder-1.3.0"
-      sources."strip-ansi-3.0.1"
-      sources."strip-bom-3.0.0"
-      sources."strip-json-comments-2.0.1"
-      sources."supports-color-5.5.0"
-      (sources."table-3.8.3" // {
-        dependencies = [
-          sources."ajv-4.11.8"
-          sources."ansi-regex-3.0.0"
-          sources."ansi-styles-2.2.1"
-          sources."chalk-1.1.3"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-2.1.1"
-          sources."strip-ansi-4.0.0"
-          sources."supports-color-2.0.0"
-        ];
-      })
-      sources."table-layout-0.4.5"
-      sources."tar-4.4.13"
-      sources."tdigest-0.1.1"
-      sources."test-exclude-5.2.3"
-      (sources."test-value-2.1.0" // {
-        dependencies = [
-          sources."array-back-1.0.4"
-        ];
-      })
-      sources."text-hex-1.0.0"
-      sources."text-table-0.2.0"
-      sources."through-2.3.8"
-      sources."to-fast-properties-2.0.0"
-      sources."toidentifier-1.0.0"
-      sources."tough-cookie-2.5.0"
-      sources."triple-beam-1.3.0"
-      sources."ts-node-8.10.1"
-      sources."tslib-1.13.0"
-      (sources."tslint-5.20.1" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
-      sources."tsutils-2.29.0"
-      sources."tunnel-agent-0.6.0"
-      sources."tweetnacl-1.0.3"
-      sources."type-1.2.0"
-      sources."type-check-0.3.2"
-      sources."type-detect-1.0.0"
-      sources."type-is-1.6.18"
-      sources."typedarray-0.0.6"
-      sources."typescript-3.9.3"
-      sources."typical-2.6.1"
-      sources."uglify-js-3.9.3"
-      sources."underscore-1.4.4"
-      sources."unhomoglyph-1.0.6"
-      sources."unpipe-1.0.0"
-      sources."uri-js-4.2.2"
-      sources."user-home-2.0.0"
-      sources."util-deprecate-1.0.2"
-      sources."utils-merge-1.0.1"
-      sources."uuid-3.4.0"
-      sources."validate-npm-package-license-3.0.4"
-      sources."vary-1.1.2"
-      sources."verror-1.10.0"
-      sources."which-1.3.1"
-      sources."which-module-2.0.0"
-      sources."why-is-node-running-2.1.2"
-      (sources."winston-3.2.1" // {
-        dependencies = [
-          sources."async-2.6.3"
-        ];
-      })
-      (sources."winston-compat-0.1.5" // {
-        dependencies = [
-          sources."logform-1.10.0"
-          sources."ms-2.1.2"
-        ];
-      })
-      (sources."winston-daily-rotate-file-3.10.0" // {
-        dependencies = [
-          sources."semver-6.3.0"
-        ];
-      })
-      (sources."winston-transport-4.3.0" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
-        ];
-      })
-      sources."word-wrap-1.2.3"
-      sources."wordwrap-1.0.0"
-      sources."wordwrapjs-3.0.0"
-      (sources."wrap-ansi-5.1.0" // {
-        dependencies = [
-          sources."ansi-regex-4.1.0"
-          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-0.2.1"
-      sources."write-file-atomic-2.4.3"
-      sources."ws-6.2.1"
-      sources."xtend-4.0.2"
-      sources."y18n-4.0.0"
-      sources."yallist-3.1.1"
-      (sources."yargs-13.3.2" // {
-        dependencies = [
-          sources."ansi-regex-4.1.0"
-          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"
-      sources."yn-3.1.1"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "A bridge between Matrix and Discord";
-      homepage = "https://github.com/Half-Shot/matrix-appservice-discord#readme";
-      license = "Apache-2.0";
-    };
-    production = false;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-}
\ No newline at end of file
diff --git a/pkgs/servers/matrix-appservice-discord/package.json b/pkgs/servers/matrix-appservice-discord/package.json
index 1cbeba4a1e9..2291040fa65 100644
--- a/pkgs/servers/matrix-appservice-discord/package.json
+++ b/pkgs/servers/matrix-appservice-discord/package.json
@@ -1,3 +1,77 @@
-[
-  { "matrix-appservice-discord": "git+https://github.com/Half-Shot/matrix-appservice-discord.git#v0.5.2" }
-]
+{
+  "name": "matrix-appservice-discord",
+  "version": "1.0.0",
+  "description": "A bridge between Matrix and Discord",
+  "main": "discordas.js",
+  "scripts": {
+    "test": "mocha -r ts-node/register test/config.ts test/test_*.ts test/**/test_*.ts",
+    "lint": "tslint --project ./tsconfig.json -t stylish",
+    "coverage": "nyc mocha -r ts-node/register test/config.ts test/test_*.ts test/**/test_*.ts",
+    "build": "tsc",
+    "postinstall": "npm run build",
+    "start": "npm run-script build && node ./build/src/discordas.js -c config.yaml",
+    "debug": "npm run-script build && node --inspect ./build/src/discordas.js -c config.yaml",
+    "addbot": "node ./build/tools/addbot.js",
+    "adminme": "node ./build/tools/adminme.js",
+    "usertool": "node ./build/tools/userClientTools.js",
+    "directoryfix": "node ./build/tools/addRoomsToDirectory.js",
+    "ghostfix": "node ./build/tools/ghostfix.js",
+    "chanfix": "node ./build/tools/chanfix.js"
+  },
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/Half-Shot/matrix-appservice-discord.git"
+  },
+  "keywords": [
+    "matrix",
+    "discord",
+    "bridge",
+    "application-service",
+    "as"
+  ],
+  "author": "Half-Shot",
+  "license": "Apache-2.0",
+  "bugs": {
+    "url": "https://github.com/Half-Shot/matrix-appservice-discord/issues"
+  },
+  "homepage": "https://github.com/Half-Shot/matrix-appservice-discord#readme",
+  "dependencies": {
+    "better-discord.js": "git://github.com/Sorunome/better-discord.js.git#b5a28499899fe2d9e6aa1aa3b3c5d693ae672117",
+    "better-sqlite3": "^7.1.0",
+    "command-line-args": "^5.1.1",
+    "command-line-usage": "^6.1.0",
+    "escape-html": "^1.0.3",
+    "escape-string-regexp": "^4.0.0",
+    "js-yaml": "^3.14.0",
+    "marked": "^1.2.2",
+    "matrix-bot-sdk": "0.5.4",
+    "matrix-discord-parser": "0.1.5",
+    "mime": "^2.4.6",
+    "node-html-parser": "^1.2.19",
+    "p-queue": "^6.4.0",
+    "pg-promise": "^10.5.6",
+    "prom-client": "^12.0.0",
+    "winston": "^3.2.1",
+    "winston-daily-rotate-file": "^4.5.0"
+  },
+  "devDependencies": {
+    "@istanbuljs/nyc-config-typescript": "^1.0.1",
+    "@types/chai": "^4.2.11",
+    "@types/command-line-args": "^5.0.0",
+    "@types/js-yaml": "^3.12.4",
+    "@types/marked": "^1.1.0",
+    "@types/mime": "^2.0.2",
+    "@types/mocha": "^7.0.2",
+    "@types/node": "^12",
+    "@types/better-sqlite3": "^5.4.1",
+    "chai": "^4.2.0",
+    "mocha": "^8.0.1",
+    "nyc": "^15.1.0",
+    "proxyquire": "^1.7.11",
+    "source-map-support": "^0.5.19",
+    "ts-node": "^8.10.2",
+    "tslint": "^5.20.1",
+    "typescript": "^3.9.5",
+    "why-is-node-running": "^2.2.0"
+  }
+}
diff --git a/pkgs/servers/matrix-appservice-discord/yarn-dependencies.nix b/pkgs/servers/matrix-appservice-discord/yarn-dependencies.nix
new file mode 100644
index 00000000000..83923458bf2
--- /dev/null
+++ b/pkgs/servers/matrix-appservice-discord/yarn-dependencies.nix
@@ -0,0 +1,4317 @@
+{ fetchurl, fetchgit, linkFarm, runCommandNoCC, gnutar }: rec {
+  offline_cache = linkFarm "offline" packages;
+  packages = [
+    {
+      name = "_babel_code_frame___code_frame_7.10.4.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_core___core_7.12.3.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_generator___generator_7.12.1.tgz";
+      path = fetchurl {
+        name = "_babel_generator___generator_7.12.1.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.1.tgz";
+        sha1 = "0d70be32bdaa03d7c51c8597dda76e0df1f15468";
+      };
+    }
+    {
+      name = "_babel_helper_function_name___helper_function_name_7.10.4.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_get_function_arity___helper_get_function_arity_7.10.4.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.12.1.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_imports___helper_module_imports_7.12.1.tgz";
+      path = fetchurl {
+        name = "_babel_helper_module_imports___helper_module_imports_7.12.1.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.1.tgz";
+        sha1 = "1644c01591a15a2f084dd6d092d9430eb1d1216c";
+      };
+    }
+    {
+      name = "_babel_helper_module_transforms___helper_module_transforms_7.12.1.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_optimise_call_expression___helper_optimise_call_expression_7.10.4.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_replace_supers___helper_replace_supers_7.12.1.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_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_split_export_declaration___helper_split_export_declaration_7.11.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.10.4.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_helpers___helpers_7.12.1.tgz";
+      path = fetchurl {
+        name = "_babel_helpers___helpers_7.12.1.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.1.tgz";
+        sha1 = "8a8261c1d438ec18cb890434df4ec768734c1e79";
+      };
+    }
+    {
+      name = "_babel_highlight___highlight_7.10.4.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.12.3.tgz";
+      path = fetchurl {
+        name = "_babel_parser___parser_7.12.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.3.tgz";
+        sha1 = "a305415ebe7a6c7023b40b5122a0662d928334cd";
+      };
+    }
+    {
+      name = "_babel_template___template_7.10.4.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_traverse___traverse_7.12.1.tgz";
+      path = fetchurl {
+        name = "_babel_traverse___traverse_7.12.1.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.1.tgz";
+        sha1 = "941395e0c5cc86d5d3e75caa095d3924526f0c1e";
+      };
+    }
+    {
+      name = "_babel_types___types_7.12.1.tgz";
+      path = fetchurl {
+        name = "_babel_types___types_7.12.1.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.12.1.tgz";
+        sha1 = "e109d9ab99a8de735be287ee3d6a9947a190c4ae";
+      };
+    }
+    {
+      name = "_dabh_diagnostics___diagnostics_2.0.2.tgz";
+      path = fetchurl {
+        name = "_dabh_diagnostics___diagnostics_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.2.tgz";
+        sha1 = "290d08f7b381b8f94607dc8f471a12c675f9db31";
+      };
+    }
+    {
+      name = "_discordjs_collection___collection_0.1.6.tgz";
+      path = fetchurl {
+        name = "_discordjs_collection___collection_0.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/@discordjs/collection/-/collection-0.1.6.tgz";
+        sha1 = "9e9a7637f4e4e0688fd8b2b5c63133c91607682c";
+      };
+    }
+    {
+      name = "_discordjs_form_data___form_data_3.0.1.tgz";
+      path = fetchurl {
+        name = "_discordjs_form_data___form_data_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/@discordjs/form-data/-/form-data-3.0.1.tgz";
+        sha1 = "5c9e6be992e2e57d0dfa0e39979a850225fb4697";
+      };
+    }
+    {
+      name = "_istanbuljs_load_nyc_config___load_nyc_config_1.1.0.tgz";
+      path = fetchurl {
+        name = "_istanbuljs_load_nyc_config___load_nyc_config_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz";
+        sha1 = "fd3db1d59ecf7cf121e80650bb86712f9b55eced";
+      };
+    }
+    {
+      name = "_istanbuljs_nyc_config_typescript___nyc_config_typescript_1.0.1.tgz";
+      path = fetchurl {
+        name = "_istanbuljs_nyc_config_typescript___nyc_config_typescript_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/@istanbuljs/nyc-config-typescript/-/nyc-config-typescript-1.0.1.tgz";
+        sha1 = "55172f5663b3635586add21b14d42ca94a163d58";
+      };
+    }
+    {
+      name = "_istanbuljs_schema___schema_0.1.2.tgz";
+      path = fetchurl {
+        name = "_istanbuljs_schema___schema_0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz";
+        sha1 = "26520bf09abe4a5644cd5414e37125a8954241dd";
+      };
+    }
+    {
+      name = "_sindresorhus_is___is_4.0.0.tgz";
+      path = fetchurl {
+        name = "_sindresorhus_is___is_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.0.0.tgz";
+        sha1 = "2ff674e9611b45b528896d820d3d7a812de2f0e4";
+      };
+    }
+    {
+      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 = "_types_better_sqlite3___better_sqlite3_5.4.1.tgz";
+      path = fetchurl {
+        name = "_types_better_sqlite3___better_sqlite3_5.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/better-sqlite3/-/better-sqlite3-5.4.1.tgz";
+        sha1 = "d45600bc19f8f41397263d037ca9b0d05df85e58";
+      };
+    }
+    {
+      name = "_types_body_parser___body_parser_1.19.0.tgz";
+      path = fetchurl {
+        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_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_chai___chai_4.2.14.tgz";
+      path = fetchurl {
+        name = "_types_chai___chai_4.2.14.tgz";
+        url  = "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.14.tgz";
+        sha1 = "44d2dd0b5de6185089375d976b4ec5caf6861193";
+      };
+    }
+    {
+      name = "_types_command_line_args___command_line_args_5.0.0.tgz";
+      path = fetchurl {
+        name = "_types_command_line_args___command_line_args_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/command-line-args/-/command-line-args-5.0.0.tgz";
+        sha1 = "484e704d20dbb8754a8f091eee45cdd22bcff28c";
+      };
+    }
+    {
+      name = "_types_connect___connect_3.4.33.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_express_serve_static_core___express_serve_static_core_4.17.13.tgz";
+      path = fetchurl {
+        name = "_types_express_serve_static_core___express_serve_static_core_4.17.13.tgz";
+        url  = "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.13.tgz";
+        sha1 = "d9af025e925fc8b089be37423b8d1eac781be084";
+      };
+    }
+    {
+      name = "_types_express___express_4.17.8.tgz";
+      path = fetchurl {
+        name = "_types_express___express_4.17.8.tgz";
+        url  = "https://registry.yarnpkg.com/@types/express/-/express-4.17.8.tgz";
+        sha1 = "3df4293293317e61c60137d273a2e96cd8d5f27a";
+      };
+    }
+    {
+      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_integer___integer_1.0.1.tgz";
+      path = fetchurl {
+        name = "_types_integer___integer_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/integer/-/integer-1.0.1.tgz";
+        sha1 = "025d87e30d97f539fcc6087372af7d3672ffbbe6";
+      };
+    }
+    {
+      name = "_types_js_yaml___js_yaml_3.12.5.tgz";
+      path = fetchurl {
+        name = "_types_js_yaml___js_yaml_3.12.5.tgz";
+        url  = "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-3.12.5.tgz";
+        sha1 = "136d5e6a57a931e1cce6f9d8126aa98a9c92a6bb";
+      };
+    }
+    {
+      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_1.1.0.tgz";
+      path = fetchurl {
+        name = "_types_marked___marked_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/marked/-/marked-1.1.0.tgz";
+        sha1 = "53509b5f127e0c05c19176fcf1d743a41e00ff19";
+      };
+    }
+    {
+      name = "_types_mime___mime_2.0.3.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_mocha___mocha_7.0.2.tgz";
+      path = fetchurl {
+        name = "_types_mocha___mocha_7.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/mocha/-/mocha-7.0.2.tgz";
+        sha1 = "b17f16cf933597e10d6d78eae3251e692ce8b0ce";
+      };
+    }
+    {
+      name = "_types_node___node_14.14.6.tgz";
+      path = fetchurl {
+        name = "_types_node___node_14.14.6.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-14.14.6.tgz";
+        sha1 = "146d3da57b3c636cc0d1769396ce1cfa8991147f";
+      };
+    }
+    {
+      name = "_types_node___node_12.19.3.tgz";
+      path = fetchurl {
+        name = "_types_node___node_12.19.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-12.19.3.tgz";
+        sha1 = "a6e252973214079155f749e8bef99cc80af182fa";
+      };
+    }
+    {
+      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_qs___qs_6.9.5.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_range_parser___range_parser_1.2.3.tgz";
+      path = fetchurl {
+        name = "_types_range_parser___range_parser_1.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz";
+        sha1 = "7ee330ba7caafb98090bece86a5ee44115904c2c";
+      };
+    }
+    {
+      name = "_types_react___react_16.9.55.tgz";
+      path = fetchurl {
+        name = "_types_react___react_16.9.55.tgz";
+        url  = "https://registry.yarnpkg.com/@types/react/-/react-16.9.55.tgz";
+        sha1 = "47078587f5bfe028a23b6b46c7b94ac0d436acff";
+      };
+    }
+    {
+      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_serve_static___serve_static_1.13.6.tgz";
+      path = fetchurl {
+        name = "_types_serve_static___serve_static_1.13.6.tgz";
+        url  = "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.6.tgz";
+        sha1 = "866b1b8dec41c36e28c7be40ac725b88be43c5c1";
+      };
+    }
+    {
+      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 = "abort_controller___abort_controller_3.0.0.tgz";
+      path = fetchurl {
+        name = "abort_controller___abort_controller_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz";
+        sha1 = "eaf54d53b62bae4138e809ca225c8439a6efb392";
+      };
+    }
+    {
+      name = "accepts___accepts_1.3.7.tgz";
+      path = fetchurl {
+        name = "accepts___accepts_1.3.7.tgz";
+        url  = "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz";
+        sha1 = "531bc726517a3b2b41f850021c6cc15eaab507cd";
+      };
+    }
+    {
+      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___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_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_2.1.1.tgz";
+      path = fetchurl {
+        name = "ansi_regex___ansi_regex_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz";
+        sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
+      };
+    }
+    {
+      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_3.1.1.tgz";
+      path = fetchurl {
+        name = "anymatch___anymatch_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz";
+        sha1 = "c55ecf02185e2469259399310c173ce31233b142";
+      };
+    }
+    {
+      name = "append_transform___append_transform_2.0.0.tgz";
+      path = fetchurl {
+        name = "append_transform___append_transform_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/append-transform/-/append-transform-2.0.0.tgz";
+        sha1 = "99d9d29c7b38391e6f428d28ce136551f0b77e12";
+      };
+    }
+    {
+      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 = "archy___archy_1.0.0.tgz";
+      path = fetchurl {
+        name = "archy___archy_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz";
+        sha1 = "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40";
+      };
+    }
+    {
+      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 = "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_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 = "array_back___array_back_3.1.0.tgz";
+      path = fetchurl {
+        name = "array_back___array_back_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz";
+        sha1 = "b8859d7a508871c9a7b2cf42f99428f65e96bfb0";
+      };
+    }
+    {
+      name = "array_back___array_back_4.0.1.tgz";
+      path = fetchurl {
+        name = "array_back___array_back_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/array-back/-/array-back-4.0.1.tgz";
+        sha1 = "9b80312935a52062e1a233a9c7abeb5481b30e90";
+      };
+    }
+    {
+      name = "array_flatten___array_flatten_1.1.1.tgz";
+      path = fetchurl {
+        name = "array_flatten___array_flatten_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz";
+        sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2";
+      };
+    }
+    {
+      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_options___assert_options_0.6.2.tgz";
+      path = fetchurl {
+        name = "assert_options___assert_options_0.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/assert-options/-/assert-options-0.6.2.tgz";
+        sha1 = "cf0b27097b61aa1987d63628cbbaea11353f999a";
+      };
+    }
+    {
+      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 = "assertion_error___assertion_error_1.1.0.tgz";
+      path = fetchurl {
+        name = "assertion_error___assertion_error_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz";
+        sha1 = "e60b6b0e8f301bd97e5375215bda406c85118c0b";
+      };
+    }
+    {
+      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 = "asynckit___asynckit_0.4.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 = "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.10.1.tgz";
+      path = fetchurl {
+        name = "aws4___aws4_1.10.1.tgz";
+        url  = "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz";
+        sha1 = "e1e82e4f3e999e2cfd61b161280d16a111f86428";
+      };
+    }
+    {
+      name = "balanced_match___balanced_match_1.0.0.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.3.1.tgz";
+      path = fetchurl {
+        name = "base64_js___base64_js_1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz";
+        sha1 = "58ece8cb75dd07e71ed08c736abc5fac4dbf8df1";
+      };
+    }
+    {
+      name = "basic_auth___basic_auth_2.0.1.tgz";
+      path = fetchurl {
+        name = "basic_auth___basic_auth_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz";
+        sha1 = "b998279bf47ce38344b4f3cf916d4679bbf51e3a";
+      };
+    }
+    {
+      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 = "git___github.com_Sorunome_better_discord.js.git";
+    path =
+      let
+        repo = fetchgit {
+          url = "git://github.com/Sorunome/better-discord.js.git";
+          rev = "b5a28499899fe2d9e6aa1aa3b3c5d693ae672117";
+          sha256 = "1iy8as2ax50xqp1bkqb18dspkdjw6qdmvz803xaijp14bwx0shja";
+        };
+      in
+        runCommandNoCC "git___github.com_Sorunome_better_discord.js.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 = "better_sqlite3___better_sqlite3_7.1.1.tgz";
+      path = fetchurl {
+        name = "better_sqlite3___better_sqlite3_7.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/better-sqlite3/-/better-sqlite3-7.1.1.tgz";
+        sha1 = "107457a8b770cfb16be646e347c17b42bc204dd3";
+      };
+    }
+    {
+      name = "binary_extensions___binary_extensions_2.1.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 = "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 = "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_4.0.3.tgz";
+      path = fetchurl {
+        name = "bl___bl_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz";
+        sha1 = "12d6287adc29080e22a705e5764b2a9522cdc489";
+      };
+    }
+    {
+      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 = "body_parser___body_parser_1.19.0.tgz";
+      path = fetchurl {
+        name = "body_parser___body_parser_1.19.0.tgz";
+        url  = "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz";
+        sha1 = "96b2709e57c9c4e09a6fd66a8fd979844f69f08a";
+      };
+    }
+    {
+      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_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 = "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_writer___buffer_writer_2.0.0.tgz";
+      path = fetchurl {
+        name = "buffer_writer___buffer_writer_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz";
+        sha1 = "ce7eb81a38f7829db09c873f2fbb792c0c98ec04";
+      };
+    }
+    {
+      name = "buffer___buffer_5.7.0.tgz";
+      path = fetchurl {
+        name = "buffer___buffer_5.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/buffer/-/buffer-5.7.0.tgz";
+        sha1 = "88afbd29fc89fa7b58e82b39206f31f2cf34feed";
+      };
+    }
+    {
+      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 = "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 = "cacheable_lookup___cacheable_lookup_5.0.3.tgz";
+      path = fetchurl {
+        name = "cacheable_lookup___cacheable_lookup_5.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz";
+        sha1 = "049fdc59dffdd4fc285e8f4f82936591bd59fec3";
+      };
+    }
+    {
+      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 = "caching_transform___caching_transform_4.0.0.tgz";
+      path = fetchurl {
+        name = "caching_transform___caching_transform_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/caching-transform/-/caching-transform-4.0.0.tgz";
+        sha1 = "00d297a4206d71e2163c39eaffa8157ac0651f0f";
+      };
+    }
+    {
+      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 = "camelcase___camelcase_6.1.0.tgz";
+      path = fetchurl {
+        name = "camelcase___camelcase_6.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/camelcase/-/camelcase-6.1.0.tgz";
+        sha1 = "27dc176173725fb0adf8a48b647f4d7871944d78";
+      };
+    }
+    {
+      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 = "chai___chai_4.2.0.tgz";
+      path = fetchurl {
+        name = "chai___chai_4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz";
+        sha1 = "760aa72cf20e3795e84b12877ce0e83737aa29e5";
+      };
+    }
+    {
+      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_3.0.0.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.0.tgz";
+      path = fetchurl {
+        name = "chalk___chalk_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz";
+        sha1 = "4e14870a618d9e2edd97dd8345fd9d9dc315646a";
+      };
+    }
+    {
+      name = "check_error___check_error_1.0.2.tgz";
+      path = fetchurl {
+        name = "check_error___check_error_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz";
+        sha1 = "574d312edd88bb5dd8912e9286dd6c0aed4aac82";
+      };
+    }
+    {
+      name = "chokidar___chokidar_3.4.3.tgz";
+      path = fetchurl {
+        name = "chokidar___chokidar_3.4.3.tgz";
+        url  = "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz";
+        sha1 = "c1df38231448e45ca4ac588e6c79573ba6a57d5b";
+      };
+    }
+    {
+      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 = "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 = "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 = "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 = "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 = "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.4.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___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 = "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 = "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 = "command_line_args___command_line_args_5.1.1.tgz";
+      path = fetchurl {
+        name = "command_line_args___command_line_args_5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.1.1.tgz";
+        sha1 = "88e793e5bb3ceb30754a86863f0401ac92fd369a";
+      };
+    }
+    {
+      name = "command_line_usage___command_line_usage_6.1.0.tgz";
+      path = fetchurl {
+        name = "command_line_usage___command_line_usage_6.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.0.tgz";
+        sha1 = "f28376a3da3361ff3d36cfd31c3c22c9a64c7cb6";
+      };
+    }
+    {
+      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 = "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 = "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 = "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 = "content_disposition___content_disposition_0.5.3.tgz";
+      path = fetchurl {
+        name = "content_disposition___content_disposition_0.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz";
+        sha1 = "e130caf7e7279087c5616c2007d0485698984fbd";
+      };
+    }
+    {
+      name = "content_type___content_type_1.0.4.tgz";
+      path = fetchurl {
+        name = "content_type___content_type_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz";
+        sha1 = "e138cc75e040c727b1966fe5e5f8c9aee256fe3b";
+      };
+    }
+    {
+      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 = "cookie_signature___cookie_signature_1.0.6.tgz";
+      path = fetchurl {
+        name = "cookie_signature___cookie_signature_1.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz";
+        sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
+      };
+    }
+    {
+      name = "cookie___cookie_0.4.0.tgz";
+      path = fetchurl {
+        name = "cookie___cookie_0.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz";
+        sha1 = "beb437e7022b3b6d49019d088665303ebe9c14ba";
+      };
+    }
+    {
+      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 = "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 = "csstype___csstype_3.0.4.tgz";
+      path = fetchurl {
+        name = "csstype___csstype_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/csstype/-/csstype-3.0.4.tgz";
+        sha1 = "b156d7be03b84ff425c9a0a4b1e5f4da9c5ca888";
+      };
+    }
+    {
+      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 = "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.2.0.tgz";
+      path = fetchurl {
+        name = "debug___debug_4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz";
+        sha1 = "7f150f93920e94c58f5574c2fd01a3110effe7f1";
+      };
+    }
+    {
+      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 = "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 = "decompress_response___decompress_response_4.2.1.tgz";
+      path = fetchurl {
+        name = "decompress_response___decompress_response_4.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz";
+        sha1 = "414023cc7a302da25ce2ec82d0d5238ccafd8986";
+      };
+    }
+    {
+      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_eql___deep_eql_3.0.1.tgz";
+      path = fetchurl {
+        name = "deep_eql___deep_eql_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz";
+        sha1 = "dfc9404400ad1c8fe023e7da1df1c147c4b444df";
+      };
+    }
+    {
+      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 = "default_require_extensions___default_require_extensions_3.0.0.tgz";
+      path = fetchurl {
+        name = "default_require_extensions___default_require_extensions_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-3.0.0.tgz";
+        sha1 = "e03f93aac9b2b6443fc52e5e4a37b3ad9ad8df96";
+      };
+    }
+    {
+      name = "defer_to_connect___defer_to_connect_2.0.0.tgz";
+      path = fetchurl {
+        name = "defer_to_connect___defer_to_connect_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.0.tgz";
+        sha1 = "83d6b199db041593ac84d781b5222308ccf4c2c1";
+      };
+    }
+    {
+      name = "delayed_stream___delayed_stream_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";
+      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.2.tgz";
+      path = fetchurl {
+        name = "depd___depd_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz";
+        sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz";
+        sha1 = "978857442c44749e4206613e37946205826abd80";
+      };
+    }
+    {
+      name = "detect_libc___detect_libc_1.0.3.tgz";
+      path = fetchurl {
+        name = "detect_libc___detect_libc_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz";
+        sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b";
+      };
+    }
+    {
+      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 = "git___github.com_Sorunome_discord_markdown.git";
+    path =
+      let
+        repo = fetchgit {
+          url = "git://github.com/Sorunome/discord-markdown.git";
+          rev = "7958a03a952ed02cbd588b09eb04bc070b3a11f2";
+          sha256 = "0p7hlgdyfcipfjjx5hxwkqd524cmys9yxgqx29wmqkgjxp8xgwhy";
+        };
+      in
+        runCommandNoCC "git___github.com_Sorunome_discord_markdown.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 = "dom_serializer___dom_serializer_1.1.0.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 = "domelementtype___domelementtype_2.0.2.tgz";
+      path = fetchurl {
+        name = "domelementtype___domelementtype_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.2.tgz";
+        sha1 = "f3b6e549201e46f588b59463dd77187131fe6971";
+      };
+    }
+    {
+      name = "domhandler___domhandler_3.3.0.tgz";
+      path = fetchurl {
+        name = "domhandler___domhandler_3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/domhandler/-/domhandler-3.3.0.tgz";
+        sha1 = "6db7ea46e4617eb15cf875df68b2b8524ce0037a";
+      };
+    }
+    {
+      name = "domutils___domutils_2.4.2.tgz";
+      path = fetchurl {
+        name = "domutils___domutils_2.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/domutils/-/domutils-2.4.2.tgz";
+        sha1 = "7ee5be261944e1ad487d9aa0616720010123922b";
+      };
+    }
+    {
+      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 = "ee_first___ee_first_1.1.1.tgz";
+      path = fetchurl {
+        name = "ee_first___ee_first_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz";
+        sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
+      };
+    }
+    {
+      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 = "enabled___enabled_2.0.0.tgz";
+      path = fetchurl {
+        name = "enabled___enabled_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz";
+        sha1 = "f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2";
+      };
+    }
+    {
+      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 = "entities___entities_2.1.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 = "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 = "escape_html___escape_html_1.0.3.tgz";
+      path = fetchurl {
+        name = "escape_html___escape_html_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz";
+        sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
+      };
+    }
+    {
+      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 = "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 = "etag___etag_1.8.1.tgz";
+      path = fetchurl {
+        name = "etag___etag_1.8.1.tgz";
+        url  = "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz";
+        sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
+      };
+    }
+    {
+      name = "event_target_shim___event_target_shim_5.0.1.tgz";
+      path = fetchurl {
+        name = "event_target_shim___event_target_shim_5.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz";
+        sha1 = "5d4d3ebdf9583d63a5333ce2deb7480ab2b05789";
+      };
+    }
+    {
+      name = "eventemitter3___eventemitter3_4.0.7.tgz";
+      path = fetchurl {
+        name = "eventemitter3___eventemitter3_4.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz";
+        sha1 = "2de9b68f6528d5644ef5c59526a1b4a07306169f";
+      };
+    }
+    {
+      name = "expand_template___expand_template_2.0.3.tgz";
+      path = fetchurl {
+        name = "expand_template___expand_template_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz";
+        sha1 = "6e14b3fcee0f3a6340ecb57d2e8918692052a47c";
+      };
+    }
+    {
+      name = "express___express_4.17.1.tgz";
+      path = fetchurl {
+        name = "express___express_4.17.1.tgz";
+        url  = "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz";
+        sha1 = "4491fc38605cf51f8629d39c2b5d026f98a4c134";
+      };
+    }
+    {
+      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 = "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";
+        url  = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz";
+        sha1 = "e2689f8f356fad62cca65a3a91c5df5f9551692f";
+      };
+    }
+    {
+      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 = "fecha___fecha_4.2.0.tgz";
+      path = fetchurl {
+        name = "fecha___fecha_4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/fecha/-/fecha-4.2.0.tgz";
+        sha1 = "3ffb6395453e3f3efff850404f0a59b6747f5f41";
+      };
+    }
+    {
+      name = "file_stream_rotator___file_stream_rotator_0.5.7.tgz";
+      path = fetchurl {
+        name = "file_stream_rotator___file_stream_rotator_0.5.7.tgz";
+        url  = "https://registry.yarnpkg.com/file-stream-rotator/-/file-stream-rotator-0.5.7.tgz";
+        sha1 = "868a2e5966f7640a17dd86eda0e4467c089f6286";
+      };
+    }
+    {
+      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_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_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 = "finalhandler___finalhandler_1.1.2.tgz";
+      path = fetchurl {
+        name = "finalhandler___finalhandler_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz";
+        sha1 = "b7e7d000ffd11938d0fdb053506f6ebabe9f587d";
+      };
+    }
+    {
+      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_replace___find_replace_3.0.0.tgz";
+      path = fetchurl {
+        name = "find_replace___find_replace_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz";
+        sha1 = "3e7e23d3b05167a76f770c9fbd5258b0def68c38";
+      };
+    }
+    {
+      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_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 = "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 = "fn.name___fn.name_1.1.0.tgz";
+      path = fetchurl {
+        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 = "foreground_child___foreground_child_2.0.0.tgz";
+      path = fetchurl {
+        name = "foreground_child___foreground_child_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz";
+        sha1 = "71b32800c9f15aa8f2f83f4a6bd9bff35d861a53";
+      };
+    }
+    {
+      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 = "forwarded___forwarded_0.1.2.tgz";
+      path = fetchurl {
+        name = "forwarded___forwarded_0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz";
+        sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
+      };
+    }
+    {
+      name = "fresh___fresh_0.5.2.tgz";
+      path = fetchurl {
+        name = "fresh___fresh_0.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz";
+        sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
+      };
+    }
+    {
+      name = "fromentries___fromentries_1.3.1.tgz";
+      path = fetchurl {
+        name = "fromentries___fromentries_1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/fromentries/-/fromentries-1.3.1.tgz";
+        sha1 = "b14c6d4d606c771ce85597f13794fb10200a0ccc";
+      };
+    }
+    {
+      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_minipass___fs_minipass_1.2.7.tgz";
+      path = fetchurl {
+        name = "fs_minipass___fs_minipass_1.2.7.tgz";
+        url  = "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz";
+        sha1 = "ccff8570841e7fe4265693da88936c55aed7f7c7";
+      };
+    }
+    {
+      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.1.3.tgz";
+      path = fetchurl {
+        name = "fsevents___fsevents_2.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz";
+        sha1 = "fb738703ae8d2f9fe900c33836ddebee8b97f23e";
+      };
+    }
+    {
+      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 = "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 = "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_func_name___get_func_name_2.0.0.tgz";
+      path = fetchurl {
+        name = "get_func_name___get_func_name_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz";
+        sha1 = "ead774abee72e20409433a066366023dd6887a41";
+      };
+    }
+    {
+      name = "get_package_type___get_package_type_0.1.0.tgz";
+      path = fetchurl {
+        name = "get_package_type___get_package_type_0.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz";
+        sha1 = "8de2d803cff44df3bc6c456e6668b36c3926e11a";
+      };
+    }
+    {
+      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 = "getpass___getpass_0.1.7.tgz";
+      path = fetchurl {
+        name = "getpass___getpass_0.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz";
+        sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
+      };
+    }
+    {
+      name = "github_from_package___github_from_package_0.0.0.tgz";
+      path = fetchurl {
+        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.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_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 = "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 = "got___got_11.8.0.tgz";
+      path = fetchurl {
+        name = "got___got_11.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/got/-/got-11.8.0.tgz";
+        sha1 = "be0920c3586b07fd94add3b5b27cb28f49e6545f";
+      };
+    }
+    {
+      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 = "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 = "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";
+        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_unicode___has_unicode_2.0.1.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___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.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 = "hasha___hasha_5.2.2.tgz";
+      path = fetchurl {
+        name = "hasha___hasha_5.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/hasha/-/hasha-5.2.2.tgz";
+        sha1 = "a48477989b3b327aea3c04f53096d816d97522a1";
+      };
+    }
+    {
+      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_9.18.3.tgz";
+      path = fetchurl {
+        name = "highlight.js___highlight.js_9.18.3.tgz";
+        url  = "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.3.tgz";
+        sha1 = "a1a0a2028d5e3149e2380f8a865ee8516703d634";
+      };
+    }
+    {
+      name = "html_escaper___html_escaper_2.0.2.tgz";
+      path = fetchurl {
+        name = "html_escaper___html_escaper_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz";
+        sha1 = "dfd60027da36a36dfcbe236262c00a5822681453";
+      };
+    }
+    {
+      name = "htmlencode___htmlencode_0.0.4.tgz";
+      path = fetchurl {
+        name = "htmlencode___htmlencode_0.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/htmlencode/-/htmlencode-0.0.4.tgz";
+        sha1 = "f7e2d6afbe18a87a78e63ba3308e753766740e3f";
+      };
+    }
+    {
+      name = "htmlparser2___htmlparser2_4.1.0.tgz";
+      path = fetchurl {
+        name = "htmlparser2___htmlparser2_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-4.1.0.tgz";
+        sha1 = "9a4ef161f2e4625ebf7dfbe6c0a2f52d18a59e78";
+      };
+    }
+    {
+      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 = "http_errors___http_errors_1.7.2.tgz";
+      path = fetchurl {
+        name = "http_errors___http_errors_1.7.2.tgz";
+        url  = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz";
+        sha1 = "4f5029cf13239f31036e5b2e55292bcfbcc85c8f";
+      };
+    }
+    {
+      name = "http_errors___http_errors_1.7.3.tgz";
+      path = fetchurl {
+        name = "http_errors___http_errors_1.7.3.tgz";
+        url  = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz";
+        sha1 = "6c619e4f9c60308c38519498c14fbb10aacebb06";
+      };
+    }
+    {
+      name = "http_signature___http_signature_1.2.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 = "http2_wrapper___http2_wrapper_1.0.0_beta.5.2.tgz";
+      path = fetchurl {
+        name = "http2_wrapper___http2_wrapper_1.0.0_beta.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz";
+        sha1 = "8b923deb90144aea65cf834b016a340fc98556f3";
+      };
+    }
+    {
+      name = "iconv_lite___iconv_lite_0.4.24.tgz";
+      path = fetchurl {
+        name = "iconv_lite___iconv_lite_0.4.24.tgz";
+        url  = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz";
+        sha1 = "2022b4b25fbddc21d2f524974a474aafe733908b";
+      };
+    }
+    {
+      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 = "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 = "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.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.5.tgz";
+      path = fetchurl {
+        name = "ini___ini_1.3.5.tgz";
+        url  = "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz";
+        sha1 = "eee25f56db1c9ec6085e0c22778083f596abf927";
+      };
+    }
+    {
+      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";
+      };
+    }
+    {
+      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_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.0.0.tgz";
+      path = fetchurl {
+        name = "is_core_module___is_core_module_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.0.0.tgz";
+        sha1 = "58531b70aed1db7c0e8d4eb1a0a2d1ddd64bd12d";
+      };
+    }
+    {
+      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_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";
+        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_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_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_object___is_object_1.0.1.tgz";
+      path = fetchurl {
+        name = "is_object___is_object_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz";
+        sha1 = "8952688c5ec2ffd6b03ecc85e769e02903083470";
+      };
+    }
+    {
+      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_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_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 = "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 = "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 = "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";
+        url  = "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz";
+        sha1 = "f5944a37c70b550b02a78a5c3b2055b280cec8ec";
+      };
+    }
+    {
+      name = "istanbul_lib_hook___istanbul_lib_hook_3.0.0.tgz";
+      path = fetchurl {
+        name = "istanbul_lib_hook___istanbul_lib_hook_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz";
+        sha1 = "8f84c9434888cc6b1d0a9d7092a76d239ebf0cc6";
+      };
+    }
+    {
+      name = "istanbul_lib_instrument___istanbul_lib_instrument_4.0.3.tgz";
+      path = fetchurl {
+        name = "istanbul_lib_instrument___istanbul_lib_instrument_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz";
+        sha1 = "873c6fff897450118222774696a3f28902d77c1d";
+      };
+    }
+    {
+      name = "istanbul_lib_processinfo___istanbul_lib_processinfo_2.0.2.tgz";
+      path = fetchurl {
+        name = "istanbul_lib_processinfo___istanbul_lib_processinfo_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz";
+        sha1 = "e1426514662244b2f25df728e8fd1ba35fe53b9c";
+      };
+    }
+    {
+      name = "istanbul_lib_report___istanbul_lib_report_3.0.0.tgz";
+      path = fetchurl {
+        name = "istanbul_lib_report___istanbul_lib_report_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz";
+        sha1 = "7518fe52ea44de372f460a76b5ecda9ffb73d8a6";
+      };
+    }
+    {
+      name = "istanbul_lib_source_maps___istanbul_lib_source_maps_4.0.0.tgz";
+      path = fetchurl {
+        name = "istanbul_lib_source_maps___istanbul_lib_source_maps_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz";
+        sha1 = "75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9";
+      };
+    }
+    {
+      name = "istanbul_reports___istanbul_reports_3.0.2.tgz";
+      path = fetchurl {
+        name = "istanbul_reports___istanbul_reports_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz";
+        sha1 = "d593210e5000683750cb09fc0644e4b6e27fd53b";
+      };
+    }
+    {
+      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.0.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 = "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 = "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.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_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___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_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_2.1.3.tgz";
+      path = fetchurl {
+        name = "json5___json5_2.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz";
+        sha1 = "c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43";
+      };
+    }
+    {
+      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_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 = "kuler___kuler_2.0.0.tgz";
+      path = fetchurl {
+        name = "kuler___kuler_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz";
+        sha1 = "e2c570a3800388fb44407e851531c1d670b061b3";
+      };
+    }
+    {
+      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 = "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.camelcase___lodash.camelcase_4.3.0.tgz";
+      path = fetchurl {
+        name = "lodash.camelcase___lodash.camelcase_4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz";
+        sha1 = "b28aa6288a2b9fc651035c7711f65ab6190331a6";
+      };
+    }
+    {
+      name = "lodash.flattendeep___lodash.flattendeep_4.4.0.tgz";
+      path = fetchurl {
+        name = "lodash.flattendeep___lodash.flattendeep_4.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz";
+        sha1 = "fb030917f86a3134e5bc9bec0d69e0013ddfedb2";
+      };
+    }
+    {
+      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___lodash_4.17.20.tgz";
+      path = fetchurl {
+        name = "lodash___lodash_4.17.20.tgz";
+        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz";
+        sha1 = "b44a9b6297bcb698f1c51a3545a2b3b368d59c52";
+      };
+    }
+    {
+      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_2.2.0.tgz";
+      path = fetchurl {
+        name = "logform___logform_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/logform/-/logform-2.2.0.tgz";
+        sha1 = "40f036d19161fc76b68ab50fdc7fe495544492f2";
+      };
+    }
+    {
+      name = "lowdb___lowdb_1.0.0.tgz";
+      path = fetchurl {
+        name = "lowdb___lowdb_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/lowdb/-/lowdb-1.0.0.tgz";
+        sha1 = "5243be6b22786ccce30e50c9a33eac36b20c8064";
+      };
+    }
+    {
+      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_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 = "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 = "marked___marked_1.2.2.tgz";
+      path = fetchurl {
+        name = "marked___marked_1.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/marked/-/marked-1.2.2.tgz";
+        sha1 = "5d77ffb789c4cb0ae828bfe76250f7140b123f70";
+      };
+    }
+    {
+      name = "matrix_bot_sdk___matrix_bot_sdk_0.5.4.tgz";
+      path = fetchurl {
+        name = "matrix_bot_sdk___matrix_bot_sdk_0.5.4.tgz";
+        url  = "https://registry.yarnpkg.com/matrix-bot-sdk/-/matrix-bot-sdk-0.5.4.tgz";
+        sha1 = "8c26bef826bd0b3fc9b693c8d07b52c30d843fd7";
+      };
+    }
+    {
+      name = "matrix_discord_parser___matrix_discord_parser_0.1.5.tgz";
+      path = fetchurl {
+        name = "matrix_discord_parser___matrix_discord_parser_0.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/matrix-discord-parser/-/matrix-discord-parser-0.1.5.tgz";
+        sha1 = "dd6a481a569567e8e30d70599d4dcb173261504c";
+      };
+    }
+    {
+      name = "media_typer___media_typer_0.3.0.tgz";
+      path = fetchurl {
+        name = "media_typer___media_typer_0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz";
+        sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
+      };
+    }
+    {
+      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 = "methods___methods_1.1.2.tgz";
+      path = fetchurl {
+        name = "methods___methods_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz";
+        sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
+      };
+    }
+    {
+      name = "mime_db___mime_db_1.44.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_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___mime_1.6.0.tgz";
+      path = fetchurl {
+        name = "mime___mime_1.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz";
+        sha1 = "32cd9e5c64553bd58d19a568af452acff04981b1";
+      };
+    }
+    {
+      name = "mime___mime_2.4.6.tgz";
+      path = fetchurl {
+        name = "mime___mime_2.4.6.tgz";
+        url  = "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz";
+        sha1 = "e5b407c90db442f2beb5b162373d07b69affa4d1";
+      };
+    }
+    {
+      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_2.1.0.tgz";
+      path = fetchurl {
+        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 = "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 = "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 = "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 = "minipass___minipass_2.9.0.tgz";
+      path = fetchurl {
+        name = "minipass___minipass_2.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz";
+        sha1 = "e713762e7d3e32fed803115cf93e04bca9fcc9a6";
+      };
+    }
+    {
+      name = "minizlib___minizlib_1.3.3.tgz";
+      path = fetchurl {
+        name = "minizlib___minizlib_1.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz";
+        sha1 = "2290de96818a34c29551c8a8d301216bd65a861d";
+      };
+    }
+    {
+      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.2.0.tgz";
+      path = fetchurl {
+        name = "mocha___mocha_8.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/mocha/-/mocha-8.2.0.tgz";
+        sha1 = "f8aa79110b4b5a6580c65d4dd8083c425282624e";
+      };
+    }
+    {
+      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 = "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 = "morgan___morgan_1.10.0.tgz";
+      path = fetchurl {
+        name = "morgan___morgan_1.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz";
+        sha1 = "091778abc1fc47cd3509824653dae1faab6b17d7";
+      };
+    }
+    {
+      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.1.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";
+      path = fetchurl {
+        name = "ms___ms_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz";
+        sha1 = "d09d1f357b443f493382a8eb3ccd183872ae6009";
+      };
+    }
+    {
+      name = "nanoid___nanoid_3.1.12.tgz";
+      path = fetchurl {
+        name = "nanoid___nanoid_3.1.12.tgz";
+        url  = "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.12.tgz";
+        sha1 = "6f7736c62e8d39421601e4a0c77623a97ea69654";
+      };
+    }
+    {
+      name = "napi_build_utils___napi_build_utils_1.0.2.tgz";
+      path = fetchurl {
+        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";
+      };
+    }
+    {
+      name = "negotiator___negotiator_0.6.2.tgz";
+      path = fetchurl {
+        name = "negotiator___negotiator_0.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz";
+        sha1 = "feacf7ccf525a77ae9634436a64883ffeca346fb";
+      };
+    }
+    {
+      name = "node_abi___node_abi_2.19.1.tgz";
+      path = fetchurl {
+        name = "node_abi___node_abi_2.19.1.tgz";
+        url  = "https://registry.yarnpkg.com/node-abi/-/node-abi-2.19.1.tgz";
+        sha1 = "6aa32561d0a5e2fdb6810d8c25641b657a8cea85";
+      };
+    }
+    {
+      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_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_html_parser___node_html_parser_1.4.2.tgz";
+      path = fetchurl {
+        name = "node_html_parser___node_html_parser_1.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-1.4.2.tgz";
+        sha1 = "391f5a9a13fa152b67bab6dc951327adc5965e30";
+      };
+    }
+    {
+      name = "node_html_parser___node_html_parser_1.4.5.tgz";
+      path = fetchurl {
+        name = "node_html_parser___node_html_parser_1.4.5.tgz";
+        url  = "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-1.4.5.tgz";
+        sha1 = "0697045ccaf4e5f8f99b78d0a5579d096b7da6d2";
+      };
+    }
+    {
+      name = "node_preload___node_preload_0.2.1.tgz";
+      path = fetchurl {
+        name = "node_preload___node_preload_0.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/node-preload/-/node-preload-0.2.1.tgz";
+        sha1 = "c03043bb327f417a18fee7ab7ee57b408a144301";
+      };
+    }
+    {
+      name = "noop_logger___noop_logger_0.1.1.tgz";
+      path = fetchurl {
+        name = "noop_logger___noop_logger_0.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz";
+        sha1 = "94a2b1633c4f1317553007d8966fd0e841b6a4c2";
+      };
+    }
+    {
+      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 = "normalize_version___normalize_version_1.0.5.tgz";
+      path = fetchurl {
+        name = "normalize_version___normalize_version_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/normalize-version/-/normalize-version-1.0.5.tgz";
+        sha1 = "a6a2b9002dc6fa2e5f15ec2f0b2c0284fb499712";
+      };
+    }
+    {
+      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 = "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 = "nyc___nyc_15.1.0.tgz";
+      path = fetchurl {
+        name = "nyc___nyc_15.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/nyc/-/nyc-15.1.0.tgz";
+        sha1 = "1335dae12ddc87b6e249d5a1994ca4bdaea75f02";
+      };
+    }
+    {
+      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_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_hash___object_hash_2.0.3.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 = "on_finished___on_finished_2.3.0.tgz";
+      path = fetchurl {
+        name = "on_finished___on_finished_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz";
+        sha1 = "20f1336481b083cd75337992a16971aa2d906947";
+      };
+    }
+    {
+      name = "on_headers___on_headers_1.0.2.tgz";
+      path = fetchurl {
+        name = "on_headers___on_headers_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz";
+        sha1 = "772b0ae6aaa525c399e489adfad90c403eb3c28f";
+      };
+    }
+    {
+      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_1.0.0.tgz";
+      path = fetchurl {
+        name = "one_time___one_time_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz";
+        sha1 = "e06bc174aed214ed58edede573b433bbf827cb45";
+      };
+    }
+    {
+      name = "p_cancelable___p_cancelable_2.0.0.tgz";
+      path = fetchurl {
+        name = "p_cancelable___p_cancelable_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.0.0.tgz";
+        sha1 = "4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz";
+        sha1 = "3dd33c647a214fdfffd835933eb086da0dc21db1";
+      };
+    }
+    {
+      name = "p_limit___p_limit_3.0.2.tgz";
+      path = fetchurl {
+        name = "p_limit___p_limit_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/p-limit/-/p-limit-3.0.2.tgz";
+        sha1 = "1664e010af3cadc681baafd3e2a437be7b0fb5fe";
+      };
+    }
+    {
+      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_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_3.0.0.tgz";
+      path = fetchurl {
+        name = "p_map___p_map_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz";
+        sha1 = "d704d9af8a2ba684e2600d9a215983d4141a979d";
+      };
+    }
+    {
+      name = "p_queue___p_queue_6.6.2.tgz";
+      path = fetchurl {
+        name = "p_queue___p_queue_6.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz";
+        sha1 = "2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426";
+      };
+    }
+    {
+      name = "p_timeout___p_timeout_3.2.0.tgz";
+      path = fetchurl {
+        name = "p_timeout___p_timeout_3.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz";
+        sha1 = "c7e17abc971d2a7962ef83626b35d635acf23dfe";
+      };
+    }
+    {
+      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_hash___package_hash_4.0.0.tgz";
+      path = fetchurl {
+        name = "package_hash___package_hash_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/package-hash/-/package-hash-4.0.0.tgz";
+        sha1 = "3537f654665ec3cc38827387fc904c163c54f506";
+      };
+    }
+    {
+      name = "packet_reader___packet_reader_1.0.0.tgz";
+      path = fetchurl {
+        name = "packet_reader___packet_reader_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz";
+        sha1 = "9238e5480dedabacfe1fe3f2771063f164157d74";
+      };
+    }
+    {
+      name = "parse_srcset___parse_srcset_1.0.2.tgz";
+      path = fetchurl {
+        name = "parse_srcset___parse_srcset_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/parse-srcset/-/parse-srcset-1.0.2.tgz";
+        sha1 = "f2bd221f6cc970a938d88556abc589caaaa2bde1";
+      };
+    }
+    {
+      name = "parseurl___parseurl_1.3.3.tgz";
+      path = fetchurl {
+        name = "parseurl___parseurl_1.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz";
+        sha1 = "9da19e7bee8d12dff0513ed5b76957793bc2e8d4";
+      };
+    }
+    {
+      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_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 = "path_to_regexp___path_to_regexp_0.1.7.tgz";
+      path = fetchurl {
+        name = "path_to_regexp___path_to_regexp_0.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz";
+        sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c";
+      };
+    }
+    {
+      name = "pathval___pathval_1.1.0.tgz";
+      path = fetchurl {
+        name = "pathval___pathval_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz";
+        sha1 = "b942e6d4bde653005ef6b71361def8727d0645e0";
+      };
+    }
+    {
+      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 = "pg_connection_string___pg_connection_string_2.4.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_int8___pg_int8_1.0.1.tgz";
+      path = fetchurl {
+        name = "pg_int8___pg_int8_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz";
+        sha1 = "943bd463bf5b71b4170115f80f8efc9a0c0eb78c";
+      };
+    }
+    {
+      name = "pg_minify___pg_minify_1.6.1.tgz";
+      path = fetchurl {
+        name = "pg_minify___pg_minify_1.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/pg-minify/-/pg-minify-1.6.1.tgz";
+        sha1 = "d2c735cdaab171f9ab82bb73aded99ace2d88b8c";
+      };
+    }
+    {
+      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_promise___pg_promise_10.7.1.tgz";
+      path = fetchurl {
+        name = "pg_promise___pg_promise_10.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/pg-promise/-/pg-promise-10.7.1.tgz";
+        sha1 = "46ad28514ae9ceba28903156e51f67bfc6874993";
+      };
+    }
+    {
+      name = "pg_protocol___pg_protocol_1.3.0.tgz";
+      path = fetchurl {
+        name = "pg_protocol___pg_protocol_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.3.0.tgz";
+        sha1 = "3c8fb7ca34dbbfcc42776ce34ac5f537d6e34770";
+      };
+    }
+    {
+      name = "pg_types___pg_types_2.2.0.tgz";
+      path = fetchurl {
+        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_8.4.1.tgz";
+      path = fetchurl {
+        name = "pg___pg_8.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/pg/-/pg-8.4.1.tgz";
+        sha1 = "06cfb6208ae787a869b2f0022da11b90d13d933e";
+      };
+    }
+    {
+      name = "pgpass___pgpass_1.0.4.tgz";
+      path = fetchurl {
+        name = "pgpass___pgpass_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.4.tgz";
+        sha1 = "85eb93a83800b20f8057a2b029bf05abaf94ea9c";
+      };
+    }
+    {
+      name = "picomatch___picomatch_2.2.2.tgz";
+      path = fetchurl {
+        name = "picomatch___picomatch_2.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz";
+        sha1 = "21f333e9b6b8eaff02468f5146ea406d345f4dad";
+      };
+    }
+    {
+      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 = "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 = "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 = "postgres_array___postgres_array_2.0.0.tgz";
+      path = fetchurl {
+        name = "postgres_array___postgres_array_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz";
+        sha1 = "48f8fce054fbc69671999329b8834b772652d82e";
+      };
+    }
+    {
+      name = "postgres_bytea___postgres_bytea_1.0.0.tgz";
+      path = fetchurl {
+        name = "postgres_bytea___postgres_bytea_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz";
+        sha1 = "027b533c0aa890e26d172d47cf9ccecc521acd35";
+      };
+    }
+    {
+      name = "postgres_date___postgres_date_1.0.7.tgz";
+      path = fetchurl {
+        name = "postgres_date___postgres_date_1.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz";
+        sha1 = "51bc086006005e5061c591cee727f2531bf641a8";
+      };
+    }
+    {
+      name = "postgres_interval___postgres_interval_1.2.0.tgz";
+      path = fetchurl {
+        name = "postgres_interval___postgres_interval_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz";
+        sha1 = "b460c82cb1587507788819a06aa0fffdb3544695";
+      };
+    }
+    {
+      name = "prebuild_install___prebuild_install_5.3.6.tgz";
+      path = fetchurl {
+        name = "prebuild_install___prebuild_install_5.3.6.tgz";
+        url  = "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-5.3.6.tgz";
+        sha1 = "7c225568d864c71d89d07f8796042733a3f54291";
+      };
+    }
+    {
+      name = "prism_media___prism_media_1.2.2.tgz";
+      path = fetchurl {
+        name = "prism_media___prism_media_1.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/prism-media/-/prism-media-1.2.2.tgz";
+        sha1 = "4f1c841f248b67d325a24b4e6b1a491b8f50a24f";
+      };
+    }
+    {
+      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_on_spawn___process_on_spawn_1.0.0.tgz";
+      path = fetchurl {
+        name = "process_on_spawn___process_on_spawn_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/process-on-spawn/-/process-on-spawn-1.0.0.tgz";
+        sha1 = "95b05a23073d30a17acfdc92a440efd2baefdc93";
+      };
+    }
+    {
+      name = "prom_client___prom_client_12.0.0.tgz";
+      path = fetchurl {
+        name = "prom_client___prom_client_12.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/prom-client/-/prom-client-12.0.0.tgz";
+        sha1 = "9689379b19bd3f6ab88a9866124db9da3d76c6ed";
+      };
+    }
+    {
+      name = "proxy_addr___proxy_addr_2.0.6.tgz";
+      path = fetchurl {
+        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 = "proxyquire___proxyquire_1.8.0.tgz";
+      path = fetchurl {
+        name = "proxyquire___proxyquire_1.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/proxyquire/-/proxyquire-1.8.0.tgz";
+        sha1 = "02d514a5bed986f04cbb2093af16741535f79edc";
+      };
+    }
+    {
+      name = "psl___psl_1.8.0.tgz";
+      path = fetchurl {
+        name = "psl___psl_1.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz";
+        sha1 = "9326f8bcfb013adcc005fdff056acce020e51c24";
+      };
+    }
+    {
+      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 = "qs___qs_6.7.0.tgz";
+      path = fetchurl {
+        name = "qs___qs_6.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz";
+        sha1 = "41dc1a015e3d581f1621776be31afb2876a9b1bc";
+      };
+    }
+    {
+      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 = "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 = "range_parser___range_parser_1.2.1.tgz";
+      path = fetchurl {
+        name = "range_parser___range_parser_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz";
+        sha1 = "3cf37023d199e1c24d1a55b84800c2f3e6468031";
+      };
+    }
+    {
+      name = "raw_body___raw_body_2.4.0.tgz";
+      path = fetchurl {
+        name = "raw_body___raw_body_2.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz";
+        sha1 = "a1ce6fb9c9bc356ca52e89256ab59059e13d0332";
+      };
+    }
+    {
+      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 = "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_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 = "reduce_flatten___reduce_flatten_2.0.0.tgz";
+      path = fetchurl {
+        name = "reduce_flatten___reduce_flatten_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz";
+        sha1 = "734fd84e65f375d7ca4465c69798c25c9d10ae27";
+      };
+    }
+    {
+      name = "release_zalgo___release_zalgo_1.0.0.tgz";
+      path = fetchurl {
+        name = "release_zalgo___release_zalgo_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/release-zalgo/-/release-zalgo-1.0.0.tgz";
+        sha1 = "09700b7e5074329739330e535c5a90fb67851730";
+      };
+    }
+    {
+      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___request_promise_4.2.6.tgz";
+      path = fetchurl {
+        name = "request_promise___request_promise_4.2.6.tgz";
+        url  = "https://registry.yarnpkg.com/request-promise/-/request-promise-4.2.6.tgz";
+        sha1 = "7e7e5b9578630e6f598e3813c0f8eb342a27f0a2";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz";
+        sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
+      };
+    }
+    {
+      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_alpn___resolve_alpn_1.0.0.tgz";
+      path = fetchurl {
+        name = "resolve_alpn___resolve_alpn_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.0.0.tgz";
+        sha1 = "745ad60b3d6aff4b4a48e01b8c0bdc70959e0e8c";
+      };
+    }
+    {
+      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___resolve_1.18.1.tgz";
+      path = fetchurl {
+        name = "resolve___resolve_1.18.1.tgz";
+        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz";
+        sha1 = "018fcb2c5b207d2a6424aee361c5a266da8f4130";
+      };
+    }
+    {
+      name = "resolve___resolve_1.1.7.tgz";
+      path = fetchurl {
+        name = "resolve___resolve_1.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz";
+        sha1 = "203114d82ad2c5ed9e8e0411b3932875e889e97b";
+      };
+    }
+    {
+      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 = "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 = "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_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 = "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_html___sanitize_html_1.27.5.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 = "semver_closest___semver_closest_0.1.2.tgz";
+      path = fetchurl {
+        name = "semver_closest___semver_closest_0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/semver-closest/-/semver-closest-0.1.2.tgz";
+        sha1 = "ede8d4d5fb04303bb0c334fff69d288cce7fc7db";
+      };
+    }
+    {
+      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 = "send___send_0.17.1.tgz";
+      path = fetchurl {
+        name = "send___send_0.17.1.tgz";
+        url  = "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz";
+        sha1 = "c1d8b059f7900f7466dd4938bdc44e11ddb376c8";
+      };
+    }
+    {
+      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_static___serve_static_1.14.1.tgz";
+      path = fetchurl {
+        name = "serve_static___serve_static_1.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz";
+        sha1 = "666e636dc4f010f7ef29970a88a674320898b2f9";
+      };
+    }
+    {
+      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 = "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 = "setprototypeof___setprototypeof_1.1.1.tgz";
+      path = fetchurl {
+        name = "setprototypeof___setprototypeof_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz";
+        sha1 = "7e95acb24aa92f5885e0abef5ba131330d4ae683";
+      };
+    }
+    {
+      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 = "siginfo___siginfo_2.0.0.tgz";
+      path = fetchurl {
+        name = "siginfo___siginfo_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz";
+        sha1 = "32e76c70b79724e3bb567cb9d543eb858ccfaf30";
+      };
+    }
+    {
+      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 = "simple_get___simple_get_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz";
+        sha1 = "b45be062435e50d159540b576202ceec40b9c6b3";
+      };
+    }
+    {
+      name = "simple_markdown___simple_markdown_0.7.2.tgz";
+      path = fetchurl {
+        name = "simple_markdown___simple_markdown_0.7.2.tgz";
+        url  = "https://registry.yarnpkg.com/simple-markdown/-/simple-markdown-0.7.2.tgz";
+        sha1 = "896cc3e3dd9acd068d30e696bce70b0b97655665";
+      };
+    }
+    {
+      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 = "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___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 = "spawn_wrap___spawn_wrap_2.0.0.tgz";
+      path = fetchurl {
+        name = "spawn_wrap___spawn_wrap_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-2.0.0.tgz";
+        sha1 = "103685b8b8f9b79771318827aa78650a610d457e";
+      };
+    }
+    {
+      name = "spex___spex_3.0.2.tgz";
+      path = fetchurl {
+        name = "spex___spex_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/spex/-/spex-3.0.2.tgz";
+        sha1 = "7d0df635d92210847d5d92ce8abf45dfba3a8549";
+      };
+    }
+    {
+      name = "split2___split2_3.2.2.tgz";
+      path = fetchurl {
+        name = "split2___split2_3.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz";
+        sha1 = "bf2cf2a37d838312c249c89206fd7a17dd12365f";
+      };
+    }
+    {
+      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 = "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";
+        url  = "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz";
+        sha1 = "547c70b347e8d32b4e108ea1a2a159e5fdde19c0";
+      };
+    }
+    {
+      name = "stackback___stackback_0.0.2.tgz";
+      path = fetchurl {
+        name = "stackback___stackback_0.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz";
+        sha1 = "1ac8a0d9483848d1695e418b6d031a3c3ce68e3b";
+      };
+    }
+    {
+      name = "statuses___statuses_1.5.0.tgz";
+      path = fetchurl {
+        name = "statuses___statuses_1.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz";
+        sha1 = "161c7dac177659fd9811f43771fa99381478628c";
+      };
+    }
+    {
+      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 = "steno___steno_0.4.4.tgz";
+      path = fetchurl {
+        name = "steno___steno_0.4.4.tgz";
+        url  = "https://registry.yarnpkg.com/steno/-/steno-0.4.4.tgz";
+        sha1 = "071105bdfc286e6615c0403c27e9d7b5dcb855cb";
+      };
+    }
+    {
+      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_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.0.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_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_3.0.1.tgz";
+      path = fetchurl {
+        name = "strip_ansi___strip_ansi_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz";
+        sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
+      };
+    }
+    {
+      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_4.0.0.tgz";
+      path = fetchurl {
+        name = "strip_bom___strip_bom_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz";
+        sha1 = "9c3505c1db45bcedca3d9cf7a16f5c5aa3901878";
+      };
+    }
+    {
+      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 = "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 = "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 = "table_layout___table_layout_1.0.1.tgz";
+      path = fetchurl {
+        name = "table_layout___table_layout_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.1.tgz";
+        sha1 = "8411181ee951278ad0638aea2f779a9ce42894f9";
+      };
+    }
+    {
+      name = "tar_fs___tar_fs_2.1.0.tgz";
+      path = fetchurl {
+        name = "tar_fs___tar_fs_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.0.tgz";
+        sha1 = "d1cdd121ab465ee0eb9ccde2d35049d3f3daf0d5";
+      };
+    }
+    {
+      name = "tar_stream___tar_stream_2.1.4.tgz";
+      path = fetchurl {
+        name = "tar_stream___tar_stream_2.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.4.tgz";
+        sha1 = "c4fb1a11eb0da29b893a5b25476397ba2d053bfa";
+      };
+    }
+    {
+      name = "tar___tar_4.4.10.tgz";
+      path = fetchurl {
+        name = "tar___tar_4.4.10.tgz";
+        url  = "https://registry.yarnpkg.com/tar/-/tar-4.4.10.tgz";
+        sha1 = "946b2810b9a5e0b26140cf78bea6b0b0d689eba1";
+      };
+    }
+    {
+      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 = "test_exclude___test_exclude_6.0.0.tgz";
+      path = fetchurl {
+        name = "test_exclude___test_exclude_6.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz";
+        sha1 = "04a8698661d805ea6fa293b6cb9e63ac044ef15e";
+      };
+    }
+    {
+      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 = "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";
+        url  = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz";
+        sha1 = "1648c44aae7c8d988a326018ed72f5b4dd0392e4";
+      };
+    }
+    {
+      name = "toidentifier___toidentifier_1.0.0.tgz";
+      path = fetchurl {
+        name = "toidentifier___toidentifier_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz";
+        sha1 = "7e1be3470f1e77948bc43d94a3c8f4d7752ba553";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz";
+        sha1 = "a595214c7298db8339eeeee083e4d10bd8cb8dd9";
+      };
+    }
+    {
+      name = "ts_node___ts_node_8.10.2.tgz";
+      path = fetchurl {
+        name = "ts_node___ts_node_8.10.2.tgz";
+        url  = "https://registry.yarnpkg.com/ts-node/-/ts-node-8.10.2.tgz";
+        sha1 = "eee03764633b1234ddd37f8db9ec10b75ec7fb8d";
+      };
+    }
+    {
+      name = "tslib___tslib_1.14.1.tgz";
+      path = fetchurl {
+        name = "tslib___tslib_1.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz";
+        sha1 = "cf2d38bdc34a134bcaf1091c41f6619e2f672d00";
+      };
+    }
+    {
+      name = "tslint___tslint_5.20.1.tgz";
+      path = fetchurl {
+        name = "tslint___tslint_5.20.1.tgz";
+        url  = "https://registry.yarnpkg.com/tslint/-/tslint-5.20.1.tgz";
+        sha1 = "e401e8aeda0152bc44dd07e614034f3f80c67b7d";
+      };
+    }
+    {
+      name = "tsutils___tsutils_2.29.0.tgz";
+      path = fetchurl {
+        name = "tsutils___tsutils_2.29.0.tgz";
+        url  = "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz";
+        sha1 = "32b488501467acbedd4b85498673a0812aca0b99";
+      };
+    }
+    {
+      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 = "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 = "tweetnacl___tweetnacl_1.0.3.tgz";
+      path = fetchurl {
+        name = "tweetnacl___tweetnacl_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz";
+        sha1 = "ac0af71680458d8a6378d0d0d050ab1407d35596";
+      };
+    }
+    {
+      name = "type_detect___type_detect_4.0.8.tgz";
+      path = fetchurl {
+        name = "type_detect___type_detect_4.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz";
+        sha1 = "7646fb5f18871cfbb7749e69bd39a6388eb7450c";
+      };
+    }
+    {
+      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_is___type_is_1.6.18.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 = "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 = "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 = "typical___typical_4.0.0.tgz";
+      path = fetchurl {
+        name = "typical___typical_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz";
+        sha1 = "cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4";
+      };
+    }
+    {
+      name = "typical___typical_5.2.0.tgz";
+      path = fetchurl {
+        name = "typical___typical_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz";
+        sha1 = "4daaac4f2b5315460804f0acf6cb69c52bb93066";
+      };
+    }
+    {
+      name = "unescape_html___unescape_html_1.1.0.tgz";
+      path = fetchurl {
+        name = "unescape_html___unescape_html_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/unescape-html/-/unescape-html-1.1.0.tgz";
+        sha1 = "d24705e82f0c9e62a87ada62f3cd96303d7d2a3c";
+      };
+    }
+    {
+      name = "unpipe___unpipe_1.0.0.tgz";
+      path = fetchurl {
+        name = "unpipe___unpipe_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz";
+        sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
+      };
+    }
+    {
+      name = "uri_js___uri_js_4.4.0.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 = "useragent_generator___useragent_generator_1.1.1_amkt_22079_finish.0.tgz";
+      path = fetchurl {
+        name = "useragent_generator___useragent_generator_1.1.1_amkt_22079_finish.0.tgz";
+        url  = "https://registry.yarnpkg.com/useragent-generator/-/useragent-generator-1.1.1-amkt-22079-finish.0.tgz";
+        sha1 = "caa8bde7afc4ff28bf157fdf7ad42094be6d4e16";
+      };
+    }
+    {
+      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 = "utils_merge___utils_merge_1.0.1.tgz";
+      path = fetchurl {
+        name = "utils_merge___utils_merge_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz";
+        sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
+      };
+    }
+    {
+      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 = "vary___vary_1.1.2.tgz";
+      path = fetchurl {
+        name = "vary___vary_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz";
+        sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
+      };
+    }
+    {
+      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 = "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_pm_runs___which_pm_runs_1.0.0.tgz";
+      path = fetchurl {
+        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";
+      };
+    }
+    {
+      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 = "why_is_node_running___why_is_node_running_2.2.0.tgz";
+      path = fetchurl {
+        name = "why_is_node_running___why_is_node_running_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/why-is-node-running/-/why-is-node-running-2.2.0.tgz";
+        sha1 = "fd0a73ea9303920fbb45457c6ecc392ebec90bd2";
+      };
+    }
+    {
+      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_daily_rotate_file___winston_daily_rotate_file_4.5.0.tgz";
+      path = fetchurl {
+        name = "winston_daily_rotate_file___winston_daily_rotate_file_4.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/winston-daily-rotate-file/-/winston-daily-rotate-file-4.5.0.tgz";
+        sha1 = "3914ac57c4bdae1138170bec85af0c2217b253b1";
+      };
+    }
+    {
+      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.3.3.tgz";
+      path = fetchurl {
+        name = "winston___winston_3.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/winston/-/winston-3.3.3.tgz";
+        sha1 = "ae6172042cafb29786afa3d09c8ff833ab7c9170";
+      };
+    }
+    {
+      name = "wordwrapjs___wordwrapjs_4.0.0.tgz";
+      path = fetchurl {
+        name = "wordwrapjs___wordwrapjs_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.0.tgz";
+        sha1 = "9aa9394155993476e831ba8e59fb5795ebde6800";
+      };
+    }
+    {
+      name = "workerpool___workerpool_6.0.2.tgz";
+      path = fetchurl {
+        name = "workerpool___workerpool_6.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/workerpool/-/workerpool-6.0.2.tgz";
+        sha1 = "e241b43d8d033f1beb52c7851069456039d1d438";
+      };
+    }
+    {
+      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 = "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 = "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.3.1.tgz";
+      path = fetchurl {
+        name = "ws___ws_7.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz";
+        sha1 = "d0547bf67f7ce4f12a72dfe31262c68d7dc551c8";
+      };
+    }
+    {
+      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.0.tgz";
+      path = fetchurl {
+        name = "y18n___y18n_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz";
+        sha1 = "95ef94f85ecc81d007c264e190a120f0a3c8566b";
+      };
+    }
+    {
+      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 = "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_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_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_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 = "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 = "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";
+      };
+    }
+  ];
+}
diff --git a/pkgs/servers/mattermost/matterircd.nix b/pkgs/servers/mattermost/matterircd.nix
index d644e985db5..ece2195d117 100644
--- a/pkgs/servers/mattermost/matterircd.nix
+++ b/pkgs/servers/mattermost/matterircd.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "matterircd";
-  version = "0.19.4";
+  version = "0.20.0";
 
   src = fetchFromGitHub {
     owner = "42wim";
     repo = "matterircd";
     rev = "v${version}";
-    sha256 = "1kwyk6gy4d4v2rzyr7vwvi8vm69rz1hdn0gkpan2kh1p63z77gbv";
+    sha256 = "0rnkzxf953nd67w33ghmrfjfg099cd21nldm31q8pk7fs1mgjnld";
   };
 
   goPackagePath = "github.com/42wim/matterircd";
diff --git a/pkgs/servers/mautrix-whatsapp/default.nix b/pkgs/servers/mautrix-whatsapp/default.nix
index a63d75552cc..d6ab3ec34b8 100644
--- a/pkgs/servers/mautrix-whatsapp/default.nix
+++ b/pkgs/servers/mautrix-whatsapp/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "mautrix-whatsapp";
-  version = "0.1.4";
+  version = "0.1.5";
 
   src = fetchFromGitHub {
     owner = "tulir";
     repo = "mautrix-whatsapp";
     rev = "v${version}";
-    sha256 = "1c77f3ffm6m9j8q9p1hb9i8zrqqpvfkr9ffamly44gs7xddmv9sv";
+    sha256 = "sha256-RkMgzYu6r30uqUCtCS/FuvJQiTInRYWiWhlTtDQQh5g=";
   };
 
   buildInputs = [ olm ];
 
-  vendorSha256 = "01yr5321paqifmgzz235lknsa0w4hbs3182y6pxw8hqsvh18c48b";
+  vendorSha256 = "sha256-p6TW5ACXjqCR5IAVleMEIWYW4SHI1ZRL5KJFZpPc7yU=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/metabase/default.nix b/pkgs/servers/metabase/default.nix
index 8e16a59452e..25702df7b38 100644
--- a/pkgs/servers/metabase/default.nix
+++ b/pkgs/servers/metabase/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "metabase";
-  version = "0.37.3";
+  version = "0.37.4";
 
   src = fetchurl {
-    url = "http://downloads.metabase.com/v${version}/metabase.jar";
-    sha256 = "0ka0k0ficvw8srpaa89l0jdzpl4n7hjwz18r41kw1hzk2ydd3p5c";
+    url = "https://downloads.metabase.com/v${version}/metabase.jar";
+    sha256 = "0l781b7mc33kkp4ic57ylghxw671b4ldv6b0wgphmrrwmp0cd3vm";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/meteor/default.nix b/pkgs/servers/meteor/default.nix
index ddf7a972c2e..96363583b62 100644
--- a/pkgs/servers/meteor/default.nix
+++ b/pkgs/servers/meteor/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchurl, zlib, patchelf, runtimeShell }:
 
 let
-  version = "1.10.2";
+  version = "1.12";
 in
 
 stdenv.mkDerivation {
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
   pname = "meteor";
   src = fetchurl {
     url = "https://static-meteor.netdna-ssl.com/packages-bootstrap/${version}/meteor-bootstrap-os.linux.x86_64.tar.gz";
-    sha256 = "17s1n92nznasaaprvxg289a1fcizq2nj51xqw7akgw5f77q19vmw";
+    sha256 = "0l3zc76djzypvc0dm5ikv5ybb6574qd6kdbbkarzc2dxx64wkyvb";
   };
 
   #dontStrip = true;
diff --git a/pkgs/servers/monitoring/cadvisor/default.nix b/pkgs/servers/monitoring/cadvisor/default.nix
index 426dd2ad2a2..3a9789ccf16 100644
--- a/pkgs/servers/monitoring/cadvisor/default.nix
+++ b/pkgs/servers/monitoring/cadvisor/default.nix
@@ -1,22 +1,31 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "cadvisor";
-  version = "0.36.0";
+  version = "0.37.0";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "cadvisor";
     rev = "v${version}";
-    sha256 = "12hk2l82i7hawzbvj6imcfwn6v8pcfv0dbjfn259yi4b0jrlx6l8";
+    sha256 = "15njzwvsl7jc2hgxlpsksmn7md3bqpavzaskfdlmzxnxp3biw3cj";
   };
 
-  goPackagePath = "github.com/google/cadvisor";
+  modRoot = "./cmd";
 
-  subPackages = [ "." ];
+  vendorSha256 = "1vbydwj3xrz2gimwfasiqiwzsdiplaq7imildzr4wspkk64dprf4";
 
   buildFlagsArray = [ "-ldflags=-s -w -X github.com/google/cadvisor/version.Version=${version}" ];
 
+  postInstall = ''
+    mv $out/bin/{cmd,cadvisor}
+    rm $out/bin/example
+  '';
+
+  preCheck = ''
+    rm internal/container/mesos/handler_test.go
+  '';
+
   meta = with stdenv.lib; {
     description = "Analyzes resource usage and performance characteristics of running docker containers";
     homepage = "https://github.com/google/cadvisor";
diff --git a/pkgs/servers/monitoring/fusion-inventory/default.nix b/pkgs/servers/monitoring/fusion-inventory/default.nix
index 42b07e605a0..a7d2da6ac57 100644
--- a/pkgs/servers/monitoring/fusion-inventory/default.nix
+++ b/pkgs/servers/monitoring/fusion-inventory/default.nix
@@ -1,32 +1,18 @@
-{ stdenv, lib, fetchurl, perlPackages, nix, dmidecode, pciutils, usbutils, iproute, nettools
+{ stdenv, lib, perlPackages, nix, dmidecode, pciutils, usbutils, iproute, nettools
 , fetchFromGitHub, makeWrapper
 }:
 
 perlPackages.buildPerlPackage rec {
   pname = "FusionInventory-Agent";
-  version = "2.3.21";
+  version = "2.6";
 
   src = fetchFromGitHub {
     owner = "fusioninventory";
     repo = "fusioninventory-agent";
     rev = version;
-    sha256 = "034clffcn0agx85macjgml4lyhvvck7idn94pqd2c77pk6crvw2y";
+    sha256 = "1hbp5a9m03n6a80xc8z640zs71qhqk4ifafr6fp0vvzzvq097ip2";
   };
 
-  patches = [
-    ./remove_software_test.patch
-    # support for os-release file
-    (fetchurl {
-      url = "https://github.com/fusioninventory/fusioninventory-agent/pull/396.diff";
-      sha256 = "0bxrjmff80ab01n23xggci32ajsah6zvcmz5x4hj6ayy6dzwi6jb";
-    })
-    # support for Nix software inventory
-    (fetchurl {
-      url = "https://github.com/fusioninventory/fusioninventory-agent/pull/397.diff";
-      sha256 = "0pyf7mp0zsb3zcqb6yysr1zfp54p9ciwjn1pzayw6s9flmcgrmbw";
-    })
-    ];
-
   postPatch = ''
 
     patchShebangs bin
@@ -68,6 +54,9 @@ perlPackages.buildPerlPackage rec {
     XMLTreePP
   ];
 
+  # Test fails due to "Argument list too long"
+  doCheck = false;
+
   installPhase = ''
     mkdir -p $out
 
diff --git a/pkgs/servers/monitoring/fusion-inventory/remove_software_test.patch b/pkgs/servers/monitoring/fusion-inventory/remove_software_test.patch
deleted file mode 100644
index b360f418aa0..00000000000
--- a/pkgs/servers/monitoring/fusion-inventory/remove_software_test.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-diff --git a/t/agent/snmp/live.t b/t/agent/snmp/live.t
-index 8ee7ff02c..bd5551ab3 100755
---- a/t/agent/snmp/live.t
-+++ b/t/agent/snmp/live.t
-@@ -11,7 +11,7 @@ use Test::More;
- use FusionInventory::Agent::XML::Response;
- use FusionInventory::Agent::SNMP::Live;
- 
--plan tests => 12;
-+plan tests => 11;
- 
- my $snmp;
- throws_ok {
-@@ -52,15 +52,6 @@ throws_ok {
- } qr/^Unable to resolve the UDP\/IPv4 address "none"/,
- 'instanciation: unresolvable host';
- 
--throws_ok {
--    $snmp = FusionInventory::Agent::SNMP::Live->new(
--        version   => 1,
--        community => 'public',
--        hostname  => '1.1.1.1'
--    );
--} qr/no response from host 1.1.1.1/,
--'instanciation: unresponding host';
--
- SKIP: {
- skip 'live SNMP test disabled', 6 unless $ENV{TEST_LIVE_SNMP};
- 
-diff --git a/t/apps/agent.t b/t/apps/agent.t
-index c0f6fc52f..c83837d70 100755
---- a/t/apps/agent.t
-+++ b/t/apps/agent.t
-@@ -12,7 +12,7 @@ use XML::TreePP;
- use FusionInventory::Agent::Tools;
- use FusionInventory::Test::Utils;
- 
--plan tests => 34;
-+plan tests => 33;
- 
- my ($content, $out, $err, $rc);
- 
-@@ -71,11 +71,6 @@ subtest "first inventory execution and content" => sub {
-     check_content_ok($out);
- };
- 
--ok(
--    exists $content->{REQUEST}->{CONTENT}->{SOFTWARES},
--    'inventory has software'
--);
--
- ok(
-     exists $content->{REQUEST}->{CONTENT}->{ENVS},
-     'inventory has environment variables'
-diff --git a/t/tasks/inventory/linux/softwares.t b/t/tasks/inventory/linux/softwares.t
-index 72a0e578c..13944f34f 100755
---- a/t/tasks/inventory/linux/softwares.t
-+++ b/t/tasks/inventory/linux/softwares.t
-@@ -89,7 +89,7 @@ my $rpm_packages = [
-         PUBLISHER   => 'Mageia.Org',
-         NAME        => 'xfsprogs',
-         COMMENTS    => 'Utilities for managing the XFS filesystem',
--        INSTALLDATE => '25/03/2012',
-+        INSTALLDATE => '24/03/2012',
-         FILESIZE    => '3628382',
-         FROM        => 'rpm',
-         ARCH        => 'x86_64',
diff --git a/pkgs/servers/monitoring/grafana-image-renderer/default.nix b/pkgs/servers/monitoring/grafana-image-renderer/default.nix
new file mode 100644
index 00000000000..d2bf5040b0e
--- /dev/null
+++ b/pkgs/servers/monitoring/grafana-image-renderer/default.nix
@@ -0,0 +1,67 @@
+{ lib, mkYarnPackage, fetchFromGitHub, nodejs, runtimeShell }:
+
+# Notes for the upgrade:
+# * Download the tarball of the new version to use.
+# * Remove the `resolutions`-section from upstream `package.json`
+#   as this breaks with `yarn2nix`.
+# * Regenerate `yarn.lock` and `yarn2nix`.
+# * Replace new `package.json`, `yarn.nix`, `yarn.lock` here.
+# * Update `version`+`hash` and rebuild.
+
+mkYarnPackage rec {
+  name = "grafana-image-renderer-unstable";
+  version = "2020-12-01";
+
+  src = fetchFromGitHub {
+    owner = "grafana";
+    repo = "grafana-image-renderer";
+    rev = "ce1f81438e5f69c7fd7c73ce08bab624c4c92e25";
+    sha256 = "sha256-1Ke1KLLNZ1dkLH0BWB60r2c45RBbndd0eepjc0nlHVk=";
+  };
+
+  buildPhase = ''
+    runHook preBuild
+
+    pushd deps/renderer
+    npm run build
+    popd
+
+    runHook postBuild
+  '';
+
+  dontInstall = true;
+
+  packageJSON = ./package.json;
+  yarnNix = ./yarn.nix;
+  yarnLock = ./yarn.lock;
+
+  distPhase = ''
+    runHook preDist
+
+    shopt -s extglob
+
+    pushd deps/renderer
+    install_path="$out/libexec/grafana-image-renderer"
+    mkdir -p $install_path
+    cp -R ../../node_modules $install_path
+    cp -R ./!(node_modules) $install_path
+    popd
+
+    mkdir -p $out/bin
+    cat >$out/bin/grafana-image-renderer <<EOF
+    #! ${runtimeShell}
+    ${nodejs}/bin/node $install_path/build/app.js \$@
+    EOF
+    chmod +x $out/bin/grafana-image-renderer
+
+    runHook postDist
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/grafana/grafana-image-renderer";
+    description = "A Grafana backend plugin that handles rendering of panels & dashboards to PNGs using headless browser (Chromium/Chrome)";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ ma27 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/servers/monitoring/grafana-image-renderer/package.json b/pkgs/servers/monitoring/grafana-image-renderer/package.json
new file mode 100644
index 00000000000..b835205f823
--- /dev/null
+++ b/pkgs/servers/monitoring/grafana-image-renderer/package.json
@@ -0,0 +1,69 @@
+{
+  "name": "renderer",
+  "version": "1.0.0",
+  "author": "Grafana Labs",
+  "license": "Apache-2.0",
+  "repository": {
+    "type": "git",
+    "url": "http://github.com/grafana/grafana-image-renderer.git"
+  },
+  "scripts": {
+    "tslint": "tslint -c tslint.json --project tsconfig.json",
+    "typecheck": "tsc --noEmit",
+    "prettier:check": "prettier --list-different \"**/*.ts\"",
+    "prettier:write": "prettier --list-different \"**/*.ts\" --write",
+    "precommit": "npm run tslint & npm run typecheck",
+    "watch": "tsc-watch --onSuccess \"node build/app.js server --config=dev.json\"",
+    "build": "tsc",
+    "start": "node build/app.js --config=dev.json"
+  },
+  "dependencies": {
+    "@grpc/grpc-js": "^1.0",
+    "@grpc/proto-loader": "^0.5.4",
+    "@hapi/boom": "^9.1.0",
+    "express": "^4.16.3",
+    "express-prom-bundle": "^5.1.5",
+    "google-protobuf": "3.5.0",
+    "lodash": "^4.17.19",
+    "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",
+    "unique-filename": "^1.1.0",
+    "winston": "^3.2.1"
+  },
+  "devDependencies": {
+    "@types/express": "^4.11.1",
+    "@types/node": "^10.0.9",
+    "husky": "^3.1.0",
+    "lint-staged": "^9.5.0",
+    "pkg": "4.4.8",
+    "prettier": "^1.19.1",
+    "tsc-watch": "^4.2.3",
+    "tslint": "^6.1.1",
+    "typescript": "^3.8.3"
+  },
+  "husky": {
+    "hooks": {
+      "pre-commit": "lint-staged && npm run precommit"
+    }
+  },
+  "lint-staged": {
+    "*.ts": [
+      "prettier --write",
+      "git add"
+    ]
+  },
+  "pkg": {
+    "assets": "proto/*"
+  },
+  "bin": "build/app.js",
+  "engines": {
+    "node": ">=12 <13"
+  },
+  "volta": {
+    "node": "12.19.0"
+  }
+}
diff --git a/pkgs/servers/monitoring/grafana-image-renderer/yarn.lock b/pkgs/servers/monitoring/grafana-image-renderer/yarn.lock
new file mode 100644
index 00000000000..eaf8c1abb4e
--- /dev/null
+++ b/pkgs/servers/monitoring/grafana-image-renderer/yarn.lock
@@ -0,0 +1,3017 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@babel/code-frame@^7.0.0":
+  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.8.3"
+
+"@babel/highlight@^7.8.3":
+  version "7.8.3"
+  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797"
+  integrity sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==
+  dependencies:
+    chalk "^2.0.0"
+    esutils "^2.0.2"
+    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/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==
+  dependencies:
+    regenerator-runtime "^0.13.4"
+
+"@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==
+  dependencies:
+    semver "^6.2.0"
+
+"@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==
+  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==
+  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==
+
+"@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==
+  dependencies:
+    "@nodelib/fs.stat" "2.0.3"
+    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.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==
+  dependencies:
+    "@nodelib/fs.scandir" "2.1.3"
+    fastq "^1.6.0"
+
+"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2":
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf"
+  integrity sha1-m4sMxmPWaafY9vXQiToU00jzD78=
+
+"@protobufjs/base64@^1.1.2":
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735"
+  integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==
+
+"@protobufjs/codegen@^2.0.4":
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb"
+  integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==
+
+"@protobufjs/eventemitter@^1.1.0":
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70"
+  integrity sha1-NVy8mLr61ZePntCV85diHx0Ga3A=
+
+"@protobufjs/fetch@^1.1.0":
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45"
+  integrity sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=
+  dependencies:
+    "@protobufjs/aspromise" "^1.1.1"
+    "@protobufjs/inquire" "^1.1.0"
+
+"@protobufjs/float@^1.0.2":
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1"
+  integrity sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=
+
+"@protobufjs/inquire@^1.1.0":
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089"
+  integrity sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=
+
+"@protobufjs/path@^1.1.2":
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d"
+  integrity sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=
+
+"@protobufjs/pool@^1.1.0":
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54"
+  integrity sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=
+
+"@protobufjs/utf8@^1.1.0":
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570"
+  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==
+  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==
+  dependencies:
+    "@types/connect" "*"
+    "@types/node" "*"
+
+"@types/color-name@^1.1.1":
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
+  integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==
+
+"@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==
+  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==
+  dependencies:
+    "@types/node" "*"
+    "@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==
+  dependencies:
+    "@types/body-parser" "*"
+    "@types/express-serve-static-core" "*"
+    "@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==
+  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/mime@*":
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.1.tgz#dc488842312a7f075149312905b5e3c0b054c79d"
+  integrity sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw==
+
+"@types/minimatch@*":
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
+  integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
+
+"@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@^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/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/range-parser@*":
+  version "1.2.3"
+  resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c"
+  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==
+  dependencies:
+    "@types/express-serve-static-core" "*"
+    "@types/mime" "*"
+
+accepts@~1.3.7:
+  version "1.3.7"
+  resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
+  integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
+  dependencies:
+    mime-types "~2.1.24"
+    negotiator "0.6.2"
+
+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"
+
+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==
+  dependencies:
+    clean-stack "^2.0.0"
+    indent-string "^4.0.0"
+
+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"
+
+ansi-escapes@^3.0.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"
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+  integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
+
+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-styles@^2.2.1:
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
+  integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=
+
+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:
+  version "4.2.1"
+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359"
+  integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==
+  dependencies:
+    "@types/color-name" "^1.1.1"
+    color-convert "^2.0.1"
+
+any-observable@^0.3.0:
+  version "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=
+
+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"
+
+array-flatten@1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
+  integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
+
+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==
+
+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=
+
+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=
+
+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.9.1"
+  resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e"
+  integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==
+
+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=
+
+basic-auth@~2.0.0:
+  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"
+
+bintrees@1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/bintrees/-/bintrees-1.0.1.tgz#0e655c9b9c2435eaab68bf4027226d2b55a34524"
+  integrity sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ=
+
+body-parser@1.19.0:
+  version "1.19.0"
+  resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
+  integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==
+  dependencies:
+    bytes "3.1.0"
+    content-type "~1.0.4"
+    debug "2.6.9"
+    depd "~1.1.2"
+    http-errors "1.7.2"
+    iconv-lite "0.4.24"
+    on-finished "~2.3.0"
+    qs "6.7.0"
+    raw-body "2.4.0"
+    type-is "~1.6.17"
+
+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@^3.0.1:
+  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==
+
+builtin-modules@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
+  integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=
+
+byline@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1"
+  integrity sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=
+
+bytes@3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
+  integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
+
+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=
+
+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"
+  integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=
+  dependencies:
+    ansi-styles "^2.2.1"
+    escape-string-regexp "^1.0.2"
+    has-ansi "^2.0.0"
+    strip-ansi "^3.0.0"
+    supports-color "^2.0.0"
+
+chalk@^2.0.0, chalk@^2.3.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@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
+  integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
+  dependencies:
+    ansi-styles "^4.1.0"
+    supports-color "^7.1.0"
+
+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==
+
+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==
+
+cli-cursor@^2.0.0, 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-truncate@^0.2.1:
+  version "0.2.1"
+  resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574"
+  integrity sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=
+  dependencies:
+    slice-ansi "0.0.4"
+    string-width "^1.0.1"
+
+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"
+  integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
+
+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:
+  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.2:
+  version "1.5.3"
+  resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc"
+  integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==
+  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"
+
+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"
+  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"
+
+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.12.1, 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==
+
+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"
+
+content-disposition@0.5.3:
+  version "0.5.3"
+  resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
+  integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==
+  dependencies:
+    safe-buffer "5.1.2"
+
+content-type@~1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
+  integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
+
+cookie-signature@1.0.6:
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
+  integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
+
+cookie@0.4.0:
+  version "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:
+  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.2.1:
+  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"
+
+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==
+  dependencies:
+    path-key "^3.1.0"
+    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"
+  integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==
+
+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.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.1.0, debug@^4.1.1:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
+  integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
+  dependencies:
+    ms "^2.1.1"
+
+dedent@^0.7.0:
+  version "0.7.0"
+  resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
+  integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=
+
+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=
+
+del@^5.0.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/del/-/del-5.1.0.tgz#d9487c94e367410e6eff2925ee58c0c84a75b3a7"
+  integrity sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==
+  dependencies:
+    globby "^10.0.1"
+    graceful-fs "^4.2.2"
+    is-glob "^4.0.1"
+    is-path-cwd "^2.2.0"
+    is-path-inside "^3.0.1"
+    p-map "^3.0.0"
+    rimraf "^3.0.0"
+    slash "^3.0.0"
+
+delayed-stream@~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=
+
+depd@~1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
+  integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
+
+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"
+
+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-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"
+
+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"
+
+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=
+
+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=
+
+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:
+  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"
+
+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"
+  integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
+  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"
+
+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.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.14.1:
+  version "1.14.1"
+  resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.1.tgz#ba01d0c8278b5e95a9a45350142026659027a457"
+  integrity sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==
+  dependencies:
+    esprima "^4.0.1"
+    estraverse "^4.2.0"
+    esutils "^2.0.2"
+    optionator "^0.8.1"
+  optionalDependencies:
+    source-map "~0.6.1"
+
+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==
+
+estraverse@^4.2.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
+  integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
+
+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==
+
+etag@~1.8.1:
+  version "1.8.1"
+  resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
+  integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
+
+event-stream@=3.3.4:
+  version "3.3.4"
+  resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571"
+  integrity sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=
+  dependencies:
+    duplexer "~0.1.1"
+    from "~0"
+    map-stream "~0.1.0"
+    pause-stream "0.0.11"
+    split "0.3"
+    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"
+  integrity sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==
+  dependencies:
+    cross-spawn "^7.0.0"
+    get-stream "^5.0.0"
+    is-stream "^2.0.0"
+    merge-stream "^2.0.0"
+    npm-run-path "^3.0.0"
+    onetime "^5.1.0"
+    p-finally "^2.0.0"
+    signal-exit "^3.0.2"
+    strip-final-newline "^2.0.0"
+
+expand-template@^2.0.3:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c"
+  integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==
+
+express-prom-bundle@^5.1.5:
+  version "5.1.5"
+  resolved "https://registry.yarnpkg.com/express-prom-bundle/-/express-prom-bundle-5.1.5.tgz#f298615879299a58cf8ec1350186f4de91d91fa4"
+  integrity sha512-tUaQUBu0r9zGYcVDpKBI2AeWimuuodaC5BSBkzLPQxRTxaKQShQNnONQSYwjLxbHfPwlCKVZlzfbB9Recnj0Vg==
+  dependencies:
+    on-finished "^2.3.0"
+    url-value-parser "^2.0.0"
+
+express@^4.16.3:
+  version "4.17.1"
+  resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134"
+  integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==
+  dependencies:
+    accepts "~1.3.7"
+    array-flatten "1.1.1"
+    body-parser "1.19.0"
+    content-disposition "0.5.3"
+    content-type "~1.0.4"
+    cookie "0.4.0"
+    cookie-signature "1.0.6"
+    debug "2.6.9"
+    depd "~1.1.2"
+    encodeurl "~1.0.2"
+    escape-html "~1.0.3"
+    etag "~1.8.1"
+    finalhandler "~1.1.2"
+    fresh "0.5.2"
+    merge-descriptors "1.0.1"
+    methods "~1.1.2"
+    on-finished "~2.3.0"
+    parseurl "~1.3.3"
+    path-to-regexp "0.1.7"
+    proxy-addr "~2.0.5"
+    qs "6.7.0"
+    range-parser "~1.2.1"
+    safe-buffer "5.1.2"
+    send "0.17.1"
+    serve-static "1.14.1"
+    setprototypeof "1.1.1"
+    statuses "~1.5.0"
+    type-is "~1.6.18"
+    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=
+  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=
+
+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-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==
+  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:
+  version "2.0.6"
+  resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+  integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
+
+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==
+
+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==
+  dependencies:
+    reusify "^1.0.0"
+
+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=
+  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==
+
+figures@^1.7.0:
+  version "1.7.0"
+  resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
+  integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=
+  dependencies:
+    escape-string-regexp "^1.0.5"
+    object-assign "^4.1.0"
+
+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"
+
+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"
+
+finalhandler@~1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
+  integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==
+  dependencies:
+    debug "2.6.9"
+    encodeurl "~1.0.2"
+    escape-html "~1.0.3"
+    on-finished "~2.3.0"
+    parseurl "~1.3.3"
+    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==
+  dependencies:
+    locate-path "^5.0.0"
+    path-exists "^4.0.0"
+
+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==
+  dependencies:
+    asynckit "^0.4.0"
+    combined-stream "^1.0.6"
+    mime-types "^2.1.12"
+
+forwarded@~0.1.2:
+  version "0.1.2"
+  resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
+  integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=
+
+fresh@0.5.2:
+  version "0.5.2"
+  resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
+  integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
+
+from2@^2.3.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"
+
+from@~0:
+  version "0.1.7"
+  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==
+  dependencies:
+    graceful-fs "^4.2.0"
+    jsonfile "^4.0.0"
+    universalify "^0.1.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=
+
+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==
+  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"
+
+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==
+  dependencies:
+    is-glob "^4.0.1"
+
+glob@^7.1.1, glob@^7.1.3:
+  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"
+
+globby@^10.0.1:
+  version "10.0.2"
+  resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543"
+  integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==
+  dependencies:
+    "@types/glob" "^7.1.1"
+    array-union "^2.1.0"
+    dir-glob "^3.0.1"
+    fast-glob "^3.0.3"
+    glob "^7.1.3"
+    ignore "^5.1.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==
+  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"
+
+google-protobuf@3.5.0:
+  version "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"
+
+has-ansi@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
+  integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=
+  dependencies:
+    ansi-regex "^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"
+  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==
+
+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==
+
+http-errors@1.7.2:
+  version "1.7.2"
+  resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
+  integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==
+  dependencies:
+    depd "~1.1.2"
+    inherits "2.0.3"
+    setprototypeof "1.1.1"
+    statuses ">= 1.5.0 < 2"
+    toidentifier "1.0.0"
+
+http-errors@~1.7.2:
+  version "1.7.3"
+  resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
+  integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
+  dependencies:
+    depd "~1.1.2"
+    inherits "2.0.4"
+    setprototypeof "1.1.1"
+    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==
+  dependencies:
+    agent-base "^4.3.0"
+    debug "^3.1.0"
+
+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==
+  dependencies:
+    chalk "^2.4.2"
+    ci-info "^2.0.0"
+    cosmiconfig "^5.2.1"
+    execa "^1.0.0"
+    get-stdin "^7.0.0"
+    opencollective-postinstall "^2.0.2"
+    pkg-dir "^4.2.0"
+    please-upgrade-node "^3.2.0"
+    read-pkg "^5.2.0"
+    run-node "^1.0.0"
+    slash "^3.0.0"
+
+iconv-lite@0.4.24:
+  version "0.4.24"
+  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
+  integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
+  dependencies:
+    safer-buffer ">= 2.1.2 < 3"
+
+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==
+
+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"
+
+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@^3.0.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289"
+  integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=
+
+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==
+
+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.4, inherits@^2.0.1, inherits@^2.0.3, 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.3:
+  version "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==
+  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==
+
+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-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-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@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
+  integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
+  dependencies:
+    number-is-nan "^1.0.0"
+
+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-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-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@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
+  integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
+
+is-observable@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e"
+  integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==
+  dependencies:
+    symbol-observable "^1.1.0"
+
+is-path-cwd@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb"
+  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==
+
+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=
+
+is-regexp@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069"
+  integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk=
+
+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=
+
+isarray@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+  integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
+
+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=
+
+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"
+  integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+
+js-yaml@^3.13.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"
+
+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-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@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-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=
+  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"
+
+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=
+
+lint-staged@^9.5.0:
+  version "9.5.0"
+  resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-9.5.0.tgz#290ec605252af646d9b74d73a0fa118362b05a33"
+  integrity sha512-nawMob9cb/G1J98nb8v3VC/E8rcX1rryUYXVZ69aT9kde6YWX+uvNOEHY5yf2gcWcTJGiD0kqXmCnS3oD75GIA==
+  dependencies:
+    chalk "^2.4.2"
+    commander "^2.20.0"
+    cosmiconfig "^5.2.1"
+    debug "^4.1.1"
+    dedent "^0.7.0"
+    del "^5.0.0"
+    execa "^2.0.3"
+    listr "^0.14.3"
+    log-symbols "^3.0.0"
+    micromatch "^4.0.2"
+    normalize-path "^3.0.0"
+    please-upgrade-node "^3.1.1"
+    string-argv "^0.3.0"
+    stringify-object "^3.3.0"
+
+listr-silent-renderer@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e"
+  integrity sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=
+
+listr-update-renderer@^0.5.0:
+  version "0.5.0"
+  resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2"
+  integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==
+  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"
+
+listr-verbose-renderer@^0.5.0:
+  version "0.5.0"
+  resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db"
+  integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==
+  dependencies:
+    chalk "^2.4.1"
+    cli-cursor "^2.1.0"
+    date-fns "^1.27.2"
+    figures "^2.0.0"
+
+listr@^0.14.3:
+  version "0.14.3"
+  resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586"
+  integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==
+  dependencies:
+    "@samverschueren/stream-to-observable" "^0.3.0"
+    is-observable "^1.1.0"
+    is-promise "^2.1.0"
+    is-stream "^1.1.0"
+    listr-silent-renderer "^1.1.1"
+    listr-update-renderer "^0.5.0"
+    listr-verbose-renderer "^0.5.0"
+    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==
+  dependencies:
+    p-locate "^4.1.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.19:
+  version "4.17.19"
+  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b"
+  integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==
+
+log-symbols@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18"
+  integrity sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=
+  dependencies:
+    chalk "^1.0.0"
+
+log-symbols@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4"
+  integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==
+  dependencies:
+    chalk "^2.4.2"
+
+log-update@^2.3.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708"
+  integrity sha1-iDKP19HOeTiykoN0bwsbwSayRwg=
+  dependencies:
+    ansi-escapes "^3.0.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==
+  dependencies:
+    colors "^1.2.1"
+    fast-safe-stringify "^2.0.4"
+    fecha "^2.3.3"
+    ms "^2.1.1"
+    triple-beam "^1.3.0"
+
+long@^4.0.0:
+  version "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"
+
+map-stream@~0.1.0:
+  version "0.1.0"
+  resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194"
+  integrity sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=
+
+media-typer@0.3.0:
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
+  integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
+
+merge-descriptors@1.0.1:
+  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==
+
+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==
+
+methods@~1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
+  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==
+  dependencies:
+    braces "^3.0.1"
+    picomatch "^2.0.5"
+
+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-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==
+  dependencies:
+    mime-db "1.43.0"
+
+mime@1.6.0:
+  version "1.6.0"
+  resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
+  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==
+
+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==
+
+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==
+
+mkdirp@0.5.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.3:
+  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"
+
+morgan@^1.9.0:
+  version "1.9.1"
+  resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.9.1.tgz#0a8d16734a1d9afbc824b99df87e738e58e2da59"
+  integrity sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==
+  dependencies:
+    basic-auth "~2.0.0"
+    debug "2.6.9"
+    depd "~1.1.2"
+    on-finished "~2.3.0"
+    on-headers "~1.0.1"
+
+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.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==
+
+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==
+
+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==
+  dependencies:
+    inherits "^2.0.1"
+    readable-stream "^2.0.5"
+
+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"
+
+negotiator@0.6.2:
+  version "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-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"
+
+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"
+  integrity sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==
+  dependencies:
+    path-key "^3.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:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+  integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
+
+on-finished@^2.3.0, on-finished@~2.3.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
+  integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
+  dependencies:
+    ee-first "1.1.1"
+
+on-headers@~1.0.1:
+  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==
+
+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@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
+  integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=
+  dependencies:
+    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==
+  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==
+
+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"
+
+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"
+  integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==
+
+p-is-promise@^3.0.0:
+  version "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==
+  dependencies:
+    p-try "^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@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175"
+  integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==
+
+p-map@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d"
+  integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==
+  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==
+
+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.0.0"
+  resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f"
+  integrity sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==
+  dependencies:
+    "@babel/code-frame" "^7.0.0"
+    error-ex "^1.3.1"
+    json-parse-better-errors "^1.0.1"
+    lines-and-columns "^1.1.6"
+
+parseurl@~1.3.3:
+  version "1.3.3"
+  resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
+  integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
+
+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.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==
+
+path-to-regexp@0.1.7:
+  version "0.1.7"
+  resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
+  integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
+
+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==
+
+pause-stream@0.0.11:
+  version "0.0.11"
+  resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445"
+  integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=
+  dependencies:
+    through "~2.3"
+
+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.5:
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.1.tgz#21bac888b6ed8601f831ce7816e335bc779f0a4a"
+  integrity sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==
+
+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==
+  dependencies:
+    find-up "^4.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==
+  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"
+    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"
+    minimist "^1.2.5"
+    multistream "^2.1.1"
+    pkg-fetch "^2.6.7"
+    progress "^2.0.3"
+    resolve "^1.15.1"
+    stream-meter "^1.0.4"
+
+please-upgrade-node@^3.1.1, 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"
+  integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==
+  dependencies:
+    semver-compare "^1.0.0"
+
+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=
+
+prettier@^1.19.1:
+  version "1.19.1"
+  resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb"
+  integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==
+
+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==
+
+prom-client@^11.5.3:
+  version "11.5.3"
+  resolved "https://registry.yarnpkg.com/prom-client/-/prom-client-11.5.3.tgz#5fedfce1083bac6c2b223738e966d0e1643756f8"
+  integrity sha512-iz22FmTbtkyL2vt0MdDFY+kWof+S9UB/NACxSn2aJcewtw+EERsen0urSkZ2WrHseNdydsvcxCTAnPcSMZZv4Q==
+  dependencies:
+    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==
+  dependencies:
+    "@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"
+
+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==
+  dependencies:
+    forwarded "~0.1.2"
+    ipaddr.js "1.9.0"
+
+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=
+
+ps-tree@^1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.2.0.tgz#5e7425b89508736cdd4f2224d028f7bb3f722ebd"
+  integrity sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==
+  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"
+  integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
+  dependencies:
+    end-of-stream "^1.1.0"
+    once "^1.3.1"
+
+punycode@^2.1.0, punycode@^2.1.1:
+  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==
+  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==
+  dependencies:
+    debug "^4.1.0"
+    extract-zip "^1.6.6"
+    https-proxy-agent "^3.0.0"
+    mime "^2.0.3"
+    progress "^2.0.1"
+    proxy-from-env "^1.0.0"
+    rimraf "^2.6.1"
+    ws "^6.1.0"
+
+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==
+
+range-parser@~1.2.1:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
+  integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
+
+raw-body@2.4.0:
+  version "2.4.0"
+  resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332"
+  integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==
+  dependencies:
+    bytes "3.1.0"
+    http-errors "1.7.2"
+    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==
+  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.1.4, readable-stream@^2.2.2, 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:
+  version "3.5.0"
+  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.5.0.tgz#465d70e6d1087f6162d079cd0b5db7fbebfd1606"
+  integrity sha512-gSz026xs2LfxBPudDuI41V1lka8cxg64E66SGe78zJlsUofOg/yqwezdIcdfwik6B4h8LFmWPA9ef9X3FiNFLA==
+  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==
+
+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"
+
+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@^1.10.0, resolve@^1.3.2:
+  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==
+  dependencies:
+    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"
+
+reusify@^1.0.0:
+  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"
+
+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==
+
+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==
+  dependencies:
+    tslib "^1.9.0"
+
+safe-buffer@5.1.2, 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-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==
+
+"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, 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==
+
+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@2 || 3 || 4 || 5", semver@^5.3.0, 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@^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==
+
+send@0.17.1:
+  version "0.17.1"
+  resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
+  integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==
+  dependencies:
+    debug "2.6.9"
+    depd "~1.1.2"
+    destroy "~1.0.4"
+    encodeurl "~1.0.2"
+    escape-html "~1.0.3"
+    etag "~1.8.1"
+    fresh "0.5.2"
+    http-errors "~1.7.2"
+    mime "1.6.0"
+    ms "2.1.1"
+    on-finished "~2.3.0"
+    range-parser "~1.2.1"
+    statuses "~1.5.0"
+
+serve-static@1.14.1:
+  version "1.14.1"
+  resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9"
+  integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==
+  dependencies:
+    encodeurl "~1.0.2"
+    escape-html "~1.0.3"
+    parseurl "~1.3.3"
+    send "0.17.1"
+
+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"
+  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==
+
+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=
+
+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@0.0.4:
+  version "0.0.4"
+  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
+  integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=
+
+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==
+
+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"
+  integrity sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=
+  dependencies:
+    through "2"
+
+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=
+
+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"
+  integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=
+
+"statuses@>= 1.5.0 < 2", statuses@~1.5.0:
+  version "1.5.0"
+  resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
+  integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
+
+stream-combiner@~0.0.4:
+  version "0.0.4"
+  resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14"
+  integrity sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=
+  dependencies:
+    duplexer "~0.1.1"
+
+stream-meter@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/stream-meter/-/stream-meter-1.0.4.tgz#52af95aa5ea760a2491716704dbff90f73afdd1d"
+  integrity sha1-Uq+Vql6nYKJJFxZwTb/5D3Ov3R0=
+  dependencies:
+    readable-stream "^2.1.4"
+
+string-argv@^0.1.1:
+  version "0.1.2"
+  resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.1.2.tgz#c5b7bc03fb2b11983ba3a72333dd0559e77e4738"
+  integrity sha512-mBqPGEOMNJKXRo7z0keX0wlAhbBAjilUdPW13nN0PecVryZxdHIeM7TqbsSUA7VYuS00HGC6mojP7DlQzfa9ZA==
+
+string-argv@^0.3.0:
+  version "0.3.1"
+  resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da"
+  integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==
+
+string-width@^1.0.1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
+  integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
+  dependencies:
+    code-point-at "^1.0.0"
+    is-fullwidth-code-point "^1.0.0"
+    strip-ansi "^3.0.0"
+
+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==
+  dependencies:
+    is-fullwidth-code-point "^2.0.0"
+    strip-ansi "^4.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"
+
+stringify-object@^3.3.0:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629"
+  integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==
+  dependencies:
+    get-own-enumerable-property-symbols "^3.0.0"
+    is-obj "^1.0.1"
+    is-regexp "^1.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"
+  integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
+  dependencies:
+    ansi-regex "^2.0.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-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"
+  integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
+
+supports-color@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
+  integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
+
+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.1.0:
+  version "7.1.0"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1"
+  integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==
+  dependencies:
+    has-flag "^4.0.0"
+
+symbol-observable@^1.1.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
+  integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==
+
+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"
+
+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==
+
+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:
+  version "2.3.8"
+  resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
+  integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
+
+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"
+
+toidentifier@1.0.0:
+  version "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==
+  dependencies:
+    cross-spawn "^5.1.0"
+    node-cleanup "^2.1.2"
+    ps-tree "^1.2.0"
+    string-argv "^0.1.1"
+    strip-ansi "^4.0.0"
+
+tslib@^1.10.0:
+  version "1.11.1"
+  resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35"
+  integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==
+
+tslib@^1.8.1, 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==
+
+tslint@^6.1.1:
+  version "6.1.1"
+  resolved "https://registry.yarnpkg.com/tslint/-/tslint-6.1.1.tgz#ac03fbd17f85bfefaae348b353b25a88efe10cde"
+  integrity sha512-kd6AQ/IgPRpLn6g5TozqzPdGNZ0q0jtXW4//hRcj10qLYBaa3mTUU2y2MCG+RXZm8Zx+KZi0eA+YCrMyNlF4UA==
+  dependencies:
+    "@babel/code-frame" "^7.0.0"
+    builtin-modules "^1.1.1"
+    chalk "^2.3.0"
+    commander "^2.12.1"
+    diff "^4.0.1"
+    glob "^7.1.1"
+    js-yaml "^3.13.1"
+    minimatch "^3.0.4"
+    mkdirp "^0.5.3"
+    resolve "^1.3.2"
+    semver "^5.3.0"
+    tslib "^1.10.0"
+    tsutils "^2.29.0"
+
+tsutils@^2.29.0:
+  version "2.29.0"
+  resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99"
+  integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==
+  dependencies:
+    tslib "^1.8.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"
+
+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=
+  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-is@~1.6.17, type-is@~1.6.18:
+  version "1.6.18"
+  resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
+  integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
+  dependencies:
+    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==
+
+uid2@0.0.3:
+  version "0.0.3"
+  resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82"
+  integrity sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I=
+
+unique-filename@^1.1.0:
+  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"
+
+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==
+
+unpipe@1.0.0, unpipe@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
+  integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
+
+uri-js@^4.2.2:
+  version "4.2.2"
+  resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
+  integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==
+  dependencies:
+    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==
+
+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=
+
+utils-merge@1.0.1:
+  version "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==
+
+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"
+
+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@^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"
+
+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==
+  dependencies:
+    readable-stream "^2.3.6"
+    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==
+  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"
+    stack-trace "0.0.x"
+    triple-beam "^1.3.0"
+    winston-transport "^4.3.0"
+
+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@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba"
+  integrity sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=
+  dependencies:
+    string-width "^2.1.1"
+    strip-ansi "^4.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"
+
+yallist@^2.1.2:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
+  integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
+
+yauzl@2.4.1:
+  version "2.4.1"
+  resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005"
+  integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=
+  dependencies:
+    fd-slicer "~1.0.1"
diff --git a/pkgs/servers/monitoring/grafana-image-renderer/yarn.nix b/pkgs/servers/monitoring/grafana-image-renderer/yarn.nix
new file mode 100644
index 00000000000..3d11945721a
--- /dev/null
+++ b/pkgs/servers/monitoring/grafana-image-renderer/yarn.nix
@@ -0,0 +1,3549 @@
+{ fetchurl, fetchgit, linkFarm, runCommandNoCC, gnutar }: rec {
+  offline_cache = linkFarm "offline" packages;
+  packages = [
+    {
+      name = "_babel_code_frame___code_frame_7.8.3.tgz";
+      path = fetchurl {
+        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_highlight___highlight_7.8.3.tgz";
+      path = fetchurl {
+        name = "_babel_highlight___highlight_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz";
+        sha1 = "28f173d04223eaaa59bc1d439a3836e6d1265797";
+      };
+    }
+    {
+      name = "_babel_parser___parser_7.9.6.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_runtime___runtime_7.9.6.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 = "_grpc_grpc_js___grpc_js_1.0.3.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 = "_grpc_proto_loader___proto_loader_0.5.4.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 = "_hapi_boom___boom_9.1.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 = "_hapi_hoek___hoek_9.1.0.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 = "_nodelib_fs.scandir___fs.scandir_2.1.3.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 = "_nodelib_fs.stat___fs.stat_2.0.3.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 = "_nodelib_fs.walk___fs.walk_1.2.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 = "_protobufjs_aspromise___aspromise_1.1.2.tgz";
+      path = fetchurl {
+        name = "_protobufjs_aspromise___aspromise_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz";
+        sha1 = "9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf";
+      };
+    }
+    {
+      name = "_protobufjs_base64___base64_1.1.2.tgz";
+      path = fetchurl {
+        name = "_protobufjs_base64___base64_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz";
+        sha1 = "4c85730e59b9a1f1f349047dbf24296034bb2735";
+      };
+    }
+    {
+      name = "_protobufjs_codegen___codegen_2.0.4.tgz";
+      path = fetchurl {
+        name = "_protobufjs_codegen___codegen_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz";
+        sha1 = "7ef37f0d010fb028ad1ad59722e506d9262815cb";
+      };
+    }
+    {
+      name = "_protobufjs_eventemitter___eventemitter_1.1.0.tgz";
+      path = fetchurl {
+        name = "_protobufjs_eventemitter___eventemitter_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz";
+        sha1 = "355cbc98bafad5978f9ed095f397621f1d066b70";
+      };
+    }
+    {
+      name = "_protobufjs_fetch___fetch_1.1.0.tgz";
+      path = fetchurl {
+        name = "_protobufjs_fetch___fetch_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz";
+        sha1 = "ba99fb598614af65700c1619ff06d454b0d84c45";
+      };
+    }
+    {
+      name = "_protobufjs_float___float_1.0.2.tgz";
+      path = fetchurl {
+        name = "_protobufjs_float___float_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz";
+        sha1 = "5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1";
+      };
+    }
+    {
+      name = "_protobufjs_inquire___inquire_1.1.0.tgz";
+      path = fetchurl {
+        name = "_protobufjs_inquire___inquire_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz";
+        sha1 = "ff200e3e7cf2429e2dcafc1140828e8cc638f089";
+      };
+    }
+    {
+      name = "_protobufjs_path___path_1.1.2.tgz";
+      path = fetchurl {
+        name = "_protobufjs_path___path_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz";
+        sha1 = "6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d";
+      };
+    }
+    {
+      name = "_protobufjs_pool___pool_1.1.0.tgz";
+      path = fetchurl {
+        name = "_protobufjs_pool___pool_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz";
+        sha1 = "09fd15f2d6d3abfa9b65bc366506d6ad7846ff54";
+      };
+    }
+    {
+      name = "_protobufjs_utf8___utf8_1.1.0.tgz";
+      path = fetchurl {
+        name = "_protobufjs_utf8___utf8_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz";
+        sha1 = "a777360b5b39a1a2e5106f8e858f2fd2d060c570";
+      };
+    }
+    {
+      name = "_samverschueren_stream_to_observable___stream_to_observable_0.3.0.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 = "_types_body_parser___body_parser_1.17.1.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_color_name___color_name_1.1.1.tgz";
+      path = fetchurl {
+        name = "_types_color_name___color_name_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz";
+        sha1 = "1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0";
+      };
+    }
+    {
+      name = "_types_connect___connect_3.4.33.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_events___events_3.0.0.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.1.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.2.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.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.0.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_2.0.1.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.3.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_13.1.8.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_10.17.13.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_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_range_parser___range_parser_1.2.3.tgz";
+      path = fetchurl {
+        name = "_types_range_parser___range_parser_1.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz";
+        sha1 = "7ee330ba7caafb98090bece86a5ee44115904c2c";
+      };
+    }
+    {
+      name = "_types_serve_static___serve_static_1.13.3.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 = "accepts___accepts_1.3.7.tgz";
+      path = fetchurl {
+        name = "accepts___accepts_1.3.7.tgz";
+        url  = "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz";
+        sha1 = "531bc726517a3b2b41f850021c6cc15eaab507cd";
+      };
+    }
+    {
+      name = "agent_base___agent_base_4.3.0.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 = "aggregate_error___aggregate_error_3.0.1.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 = "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 = "ansi_escapes___ansi_escapes_3.2.0.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_regex___ansi_regex_2.1.1.tgz";
+      path = fetchurl {
+        name = "ansi_regex___ansi_regex_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz";
+        sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
+      };
+    }
+    {
+      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_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";
+        url  = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz";
+        sha1 = "41fbb20243e50b12be0f04b8dedbf07520ce841d";
+      };
+    }
+    {
+      name = "ansi_styles___ansi_styles_4.2.1.tgz";
+      path = fetchurl {
+        name = "ansi_styles___ansi_styles_4.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz";
+        sha1 = "90ae75c424d008d2624c5bf29ead3177ebfcf359";
+      };
+    }
+    {
+      name = "any_observable___any_observable_0.3.0.tgz";
+      path = fetchurl {
+        name = "any_observable___any_observable_0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz";
+        sha1 = "af933475e5806a67d0d7df090dd5e8bef65d119b";
+      };
+    }
+    {
+      name = "any_promise___any_promise_1.3.0.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 = "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 = "array_flatten___array_flatten_1.1.1.tgz";
+      path = fetchurl {
+        name = "array_flatten___array_flatten_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz";
+        sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2";
+      };
+    }
+    {
+      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 = "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 = "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";
+      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";
+        url  = "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz";
+        sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
+      };
+    }
+    {
+      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.9.1.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.0.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 = "basic_auth___basic_auth_2.0.1.tgz";
+      path = fetchurl {
+        name = "basic_auth___basic_auth_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz";
+        sha1 = "b998279bf47ce38344b4f3cf916d4679bbf51e3a";
+      };
+    }
+    {
+      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 = "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 = "body_parser___body_parser_1.19.0.tgz";
+      path = fetchurl {
+        name = "body_parser___body_parser_1.19.0.tgz";
+        url  = "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz";
+        sha1 = "96b2709e57c9c4e09a6fd66a8fd979844f69f08a";
+      };
+    }
+    {
+      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_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 = "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 = "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 = "byline___byline_5.0.0.tgz";
+      path = fetchurl {
+        name = "byline___byline_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz";
+        sha1 = "741c5216468eadc457b03410118ad77de8c1ddb1";
+      };
+    }
+    {
+      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 = "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 = "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";
+        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";
+        url  = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz";
+        sha1 = "cd42541677a54333cf541a49108c1432b44c9424";
+      };
+    }
+    {
+      name = "chalk___chalk_3.0.0.tgz";
+      path = fetchurl {
+        name = "chalk___chalk_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz";
+        sha1 = "3f73c2bf526591f574cc492c51e2456349f844e4";
+      };
+    }
+    {
+      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 = "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 = "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_truncate___cli_truncate_0.2.1.tgz";
+      path = fetchurl {
+        name = "cli_truncate___cli_truncate_0.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz";
+        sha1 = "9f15cfbb0705005369216c626ac7d05ab90dd574";
+      };
+    }
+    {
+      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 = "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.3.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___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 = "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";
+        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 = "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";
+        url  = "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz";
+        sha1 = "fd485e84c03eb4881c20722ba48035e8531aeb33";
+      };
+    }
+    {
+      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 = "content_disposition___content_disposition_0.5.3.tgz";
+      path = fetchurl {
+        name = "content_disposition___content_disposition_0.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz";
+        sha1 = "e130caf7e7279087c5616c2007d0485698984fbd";
+      };
+    }
+    {
+      name = "content_type___content_type_1.0.4.tgz";
+      path = fetchurl {
+        name = "content_type___content_type_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz";
+        sha1 = "e138cc75e040c727b1966fe5e5f8c9aee256fe3b";
+      };
+    }
+    {
+      name = "cookie_signature___cookie_signature_1.0.6.tgz";
+      path = fetchurl {
+        name = "cookie_signature___cookie_signature_1.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz";
+        sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
+      };
+    }
+    {
+      name = "cookie___cookie_0.4.0.tgz";
+      path = fetchurl {
+        name = "cookie___cookie_0.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz";
+        sha1 = "beb437e7022b3b6d49019d088665303ebe9c14ba";
+      };
+    }
+    {
+      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 = "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";
+      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 = "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";
+        url  = "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz";
+        sha1 = "2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz";
+        sha1 = "e83d17de16d8a7efb7717edbe5fb10135eee629b";
+      };
+    }
+    {
+      name = "debug___debug_4.1.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 = "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_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 = "del___del_5.1.0.tgz";
+      path = fetchurl {
+        name = "del___del_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/del/-/del-5.1.0.tgz";
+        sha1 = "d9487c94e367410e6eff2925ee58c0c84a75b3a7";
+      };
+    }
+    {
+      name = "delayed_stream___delayed_stream_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 = "depd___depd_1.1.2.tgz";
+      path = fetchurl {
+        name = "depd___depd_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz";
+        sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
+      };
+    }
+    {
+      name = "destroy___destroy_1.0.4.tgz";
+      path = fetchurl {
+        name = "destroy___destroy_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz";
+        sha1 = "978857442c44749e4206613e37946205826abd80";
+      };
+    }
+    {
+      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_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_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 = "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";
+      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 = "ee_first___ee_first_1.1.1.tgz";
+      path = fetchurl {
+        name = "ee_first___ee_first_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz";
+        sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
+      };
+    }
+    {
+      name = "elegant_spinner___elegant_spinner_1.0.1.tgz";
+      path = fetchurl {
+        name = "elegant_spinner___elegant_spinner_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz";
+        sha1 = "db043521c95d7e303fd8f345bedc3349cfb0729e";
+      };
+    }
+    {
+      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 = "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";
+        url  = "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz";
+        sha1 = "b4ac40648107fdcdcfae242f428bea8a14d4f1bf";
+      };
+    }
+    {
+      name = "es6_promise___es6_promise_4.2.8.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 = "escape_html___escape_html_1.0.3.tgz";
+      path = fetchurl {
+        name = "escape_html___escape_html_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz";
+        sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
+      };
+    }
+    {
+      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 = "escodegen___escodegen_1.14.1.tgz";
+      path = fetchurl {
+        name = "escodegen___escodegen_1.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.1.tgz";
+        sha1 = "ba01d0c8278b5e95a9a45350142026659027a457";
+      };
+    }
+    {
+      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 = "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 = "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 = "etag___etag_1.8.1.tgz";
+      path = fetchurl {
+        name = "etag___etag_1.8.1.tgz";
+        url  = "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz";
+        sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
+      };
+    }
+    {
+      name = "event_stream___event_stream_3.3.4.tgz";
+      path = fetchurl {
+        name = "event_stream___event_stream_3.3.4.tgz";
+        url  = "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz";
+        sha1 = "4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/execa/-/execa-2.1.0.tgz";
+        sha1 = "e5d3ecd837d2a60ec50f3da78fd39767747bbe99";
+      };
+    }
+    {
+      name = "expand_template___expand_template_2.0.3.tgz";
+      path = fetchurl {
+        name = "expand_template___expand_template_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz";
+        sha1 = "6e14b3fcee0f3a6340ecb57d2e8918692052a47c";
+      };
+    }
+    {
+      name = "express_prom_bundle___express_prom_bundle_5.1.5.tgz";
+      path = fetchurl {
+        name = "express_prom_bundle___express_prom_bundle_5.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/express-prom-bundle/-/express-prom-bundle-5.1.5.tgz";
+        sha1 = "f298615879299a58cf8ec1350186f4de91d91fa4";
+      };
+    }
+    {
+      name = "express___express_4.17.1.tgz";
+      path = fetchurl {
+        name = "express___express_4.17.1.tgz";
+        url  = "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz";
+        sha1 = "4491fc38605cf51f8629d39c2b5d026f98a4c134";
+      };
+    }
+    {
+      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";
+      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 = "fast_deep_equal___fast_deep_equal_3.1.1.tgz";
+      path = fetchurl {
+        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_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";
+      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_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 = "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 = "fastq___fastq_1.6.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 = "fd_slicer___fd_slicer_1.0.1.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 = "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 = "figures___figures_1.7.0.tgz";
+      path = fetchurl {
+        name = "figures___figures_1.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz";
+        sha1 = "cbe1e3affcf1cd44b80cadfed28dc793a9701d2e";
+      };
+    }
+    {
+      name = "figures___figures_2.0.0.tgz";
+      path = fetchurl {
+        name = "figures___figures_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz";
+        sha1 = "3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962";
+      };
+    }
+    {
+      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 = "finalhandler___finalhandler_1.1.2.tgz";
+      path = fetchurl {
+        name = "finalhandler___finalhandler_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz";
+        sha1 = "b7e7d000ffd11938d0fdb053506f6ebabe9f587d";
+      };
+    }
+    {
+      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 = "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 = "forwarded___forwarded_0.1.2.tgz";
+      path = fetchurl {
+        name = "forwarded___forwarded_0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz";
+        sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
+      };
+    }
+    {
+      name = "fresh___fresh_0.5.2.tgz";
+      path = fetchurl {
+        name = "fresh___fresh_0.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz";
+        sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
+      };
+    }
+    {
+      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 = "from___from_0.1.7.tgz";
+      path = fetchurl {
+        name = "from___from_0.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz";
+        sha1 = "83c60afc58b9c56997007ed1a768b3ab303a44fe";
+      };
+    }
+    {
+      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.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 = "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.2.tgz";
+        url  = "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz";
+        sha1 = "b5fde77f22cbe35f390b4e089922c50bce6ef664";
+      };
+    }
+    {
+      name = "get_stdin___get_stdin_7.0.0.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 = "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.1.0.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 = "getpass___getpass_0.1.7.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.0.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___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 = "globby___globby_10.0.2.tgz";
+      path = fetchurl {
+        name = "globby___globby_10.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz";
+        sha1 = "277593e745acaa4646c3ab411289ec47a0392543";
+      };
+    }
+    {
+      name = "globby___globby_11.0.0.tgz";
+      path = fetchurl {
+        name = "globby___globby_11.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/globby/-/globby-11.0.0.tgz";
+        sha1 = "56fd0e9f0d4f8fb0c456f1ab0dee96e1380bc154";
+      };
+    }
+    {
+      name = "google_protobuf___google_protobuf_3.5.0.tgz";
+      path = fetchurl {
+        name = "google_protobuf___google_protobuf_3.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.5.0.tgz";
+        sha1 = "b8cc63c74d83457bd8a9a904503c8efb26bca339";
+      };
+    }
+    {
+      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";
+      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 = "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_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 = "hosted_git_info___hosted_git_info_2.8.5.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 = "http_errors___http_errors_1.7.2.tgz";
+      path = fetchurl {
+        name = "http_errors___http_errors_1.7.2.tgz";
+        url  = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz";
+        sha1 = "4f5029cf13239f31036e5b2e55292bcfbcc85c8f";
+      };
+    }
+    {
+      name = "http_errors___http_errors_1.7.3.tgz";
+      path = fetchurl {
+        name = "http_errors___http_errors_1.7.3.tgz";
+        url  = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz";
+        sha1 = "6c619e4f9c60308c38519498c14fbb10aacebb06";
+      };
+    }
+    {
+      name = "http_signature___http_signature_1.2.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_3.0.1.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 = "iconv_lite___iconv_lite_0.4.24.tgz";
+      path = fetchurl {
+        name = "iconv_lite___iconv_lite_0.4.24.tgz";
+        url  = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz";
+        sha1 = "2022b4b25fbddc21d2f524974a474aafe733908b";
+      };
+    }
+    {
+      name = "ignore___ignore_5.1.4.tgz";
+      path = fetchurl {
+        name = "ignore___ignore_5.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz";
+        sha1 = "84b7b3dbe64552b6ef0eca99f6743dbec6d97adf";
+      };
+    }
+    {
+      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 = "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_3.2.0.tgz";
+      path = fetchurl {
+        name = "indent_string___indent_string_3.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz";
+        sha1 = "4a5fd6d27cc332f37e5419a504dbb837105c9289";
+      };
+    }
+    {
+      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 = "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.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 = "into_stream___into_stream_5.1.1.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 = "ipaddr.js___ipaddr.js_1.9.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 = "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_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_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_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";
+        url  = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
+        sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
+      };
+    }
+    {
+      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_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_1.0.1.tgz";
+      path = fetchurl {
+        name = "is_obj___is_obj_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz";
+        sha1 = "3e4729ac1f5fde025cd7d83a896dab9f4f67db0f";
+      };
+    }
+    {
+      name = "is_observable___is_observable_1.1.0.tgz";
+      path = fetchurl {
+        name = "is_observable___is_observable_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz";
+        sha1 = "b3e986c8f44de950867cab5403f5a3465005975e";
+      };
+    }
+    {
+      name = "is_path_cwd___is_path_cwd_2.2.0.tgz";
+      path = fetchurl {
+        name = "is_path_cwd___is_path_cwd_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz";
+        sha1 = "67d43b82664a7b5191fd9119127eb300048a9fdb";
+      };
+    }
+    {
+      name = "is_path_inside___is_path_inside_3.0.2.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_promise___is_promise_2.1.0.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_regexp___is_regexp_1.0.0.tgz";
+      path = fetchurl {
+        name = "is_regexp___is_regexp_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz";
+        sha1 = "fd2d883545c46bac5a633e7b9a09e87fa2cb5069";
+      };
+    }
+    {
+      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 = "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 = "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 = "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";
+        url  = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz";
+        sha1 = "19203fb59991df98e3a287050d4647cdeaf32499";
+      };
+    }
+    {
+      name = "js_yaml___js_yaml_3.13.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 = "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";
+        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_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_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 = "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 = "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 = "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 = "lint_staged___lint_staged_9.5.0.tgz";
+      path = fetchurl {
+        name = "lint_staged___lint_staged_9.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/lint-staged/-/lint-staged-9.5.0.tgz";
+        sha1 = "290ec605252af646d9b74d73a0fa118362b05a33";
+      };
+    }
+    {
+      name = "listr_silent_renderer___listr_silent_renderer_1.1.1.tgz";
+      path = fetchurl {
+        name = "listr_silent_renderer___listr_silent_renderer_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz";
+        sha1 = "924b5a3757153770bf1a8e3fbf74b8bbf3f9242e";
+      };
+    }
+    {
+      name = "listr_update_renderer___listr_update_renderer_0.5.0.tgz";
+      path = fetchurl {
+        name = "listr_update_renderer___listr_update_renderer_0.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz";
+        sha1 = "4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2";
+      };
+    }
+    {
+      name = "listr_verbose_renderer___listr_verbose_renderer_0.5.0.tgz";
+      path = fetchurl {
+        name = "listr_verbose_renderer___listr_verbose_renderer_0.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz";
+        sha1 = "f1132167535ea4c1261102b9f28dac7cba1e03db";
+      };
+    }
+    {
+      name = "listr___listr_0.14.3.tgz";
+      path = fetchurl {
+        name = "listr___listr_0.14.3.tgz";
+        url  = "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz";
+        sha1 = "2fea909604e434be464c50bddba0d496928fa586";
+      };
+    }
+    {
+      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.camelcase___lodash.camelcase_4.3.0.tgz";
+      path = fetchurl {
+        name = "lodash.camelcase___lodash.camelcase_4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz";
+        sha1 = "b28aa6288a2b9fc651035c7711f65ab6190331a6";
+      };
+    }
+    {
+      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 = "log_symbols___log_symbols_1.0.2.tgz";
+      path = fetchurl {
+        name = "log_symbols___log_symbols_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz";
+        sha1 = "376ff7b58ea3086a0f09facc74617eca501e1a18";
+      };
+    }
+    {
+      name = "log_symbols___log_symbols_3.0.0.tgz";
+      path = fetchurl {
+        name = "log_symbols___log_symbols_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz";
+        sha1 = "f3a08516a5dea893336a7dee14d18a1cfdab77c4";
+      };
+    }
+    {
+      name = "log_update___log_update_2.3.0.tgz";
+      path = fetchurl {
+        name = "log_update___log_update_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz";
+        sha1 = "88328fd7d1ce7938b29283746f0b1bc126b24708";
+      };
+    }
+    {
+      name = "logform___logform_2.1.2.tgz";
+      path = fetchurl {
+        name = "logform___logform_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/logform/-/logform-2.1.2.tgz";
+        sha1 = "957155ebeb67a13164069825ce67ddb5bb2dd360";
+      };
+    }
+    {
+      name = "long___long_4.0.0.tgz";
+      path = fetchurl {
+        name = "long___long_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz";
+        sha1 = "9a7b71cfb7d361a194ea555241c92f7468d5bf28";
+      };
+    }
+    {
+      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 = "map_stream___map_stream_0.1.0.tgz";
+      path = fetchurl {
+        name = "map_stream___map_stream_0.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz";
+        sha1 = "e56aa94c4c8055a16404a0674b78f215f7c8e194";
+      };
+    }
+    {
+      name = "media_typer___media_typer_0.3.0.tgz";
+      path = fetchurl {
+        name = "media_typer___media_typer_0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz";
+        sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
+      };
+    }
+    {
+      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 = "merge2___merge2_1.3.0.tgz";
+      path = fetchurl {
+        name = "merge2___merge2_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz";
+        sha1 = "5b366ee83b2f1582c48f87e47cf1a9352103ca81";
+      };
+    }
+    {
+      name = "methods___methods_1.1.2.tgz";
+      path = fetchurl {
+        name = "methods___methods_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz";
+        sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
+      };
+    }
+    {
+      name = "micromatch___micromatch_4.0.2.tgz";
+      path = fetchurl {
+        name = "micromatch___micromatch_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz";
+        sha1 = "4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259";
+      };
+    }
+    {
+      name = "mime_db___mime_db_1.43.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_types___mime_types_2.1.26.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___mime_1.6.0.tgz";
+      path = fetchurl {
+        name = "mime___mime_1.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz";
+        sha1 = "32cd9e5c64553bd58d19a568af452acff04981b1";
+      };
+    }
+    {
+      name = "mime___mime_2.4.4.tgz";
+      path = fetchurl {
+        name = "mime___mime_2.4.4.tgz";
+        url  = "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz";
+        sha1 = "bd7b91135fc6b01cde3e9bae33d659b63d8857e5";
+      };
+    }
+    {
+      name = "mimic_fn___mimic_fn_1.2.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";
+      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 = "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_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";
+        url  = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz";
+        sha1 = "67d66014b66a6a8aaa0c083c5fd58df4e4e97602";
+      };
+    }
+    {
+      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";
+        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 = "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.1.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";
+      path = fetchurl {
+        name = "ms___ms_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz";
+        sha1 = "d09d1f357b443f493382a8eb3ccd183872ae6009";
+      };
+    }
+    {
+      name = "multistream___multistream_2.1.1.tgz";
+      path = fetchurl {
+        name = "multistream___multistream_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/multistream/-/multistream-2.1.1.tgz";
+        sha1 = "629d3a29bd76623489980d04519a2c365948148c";
+      };
+    }
+    {
+      name = "mz___mz_2.7.0.tgz";
+      path = fetchurl {
+        name = "mz___mz_2.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz";
+        sha1 = "95008057a56cafadc2bc63dde7f9ff6955948e32";
+      };
+    }
+    {
+      name = "negotiator___negotiator_0.6.2.tgz";
+      path = fetchurl {
+        name = "negotiator___negotiator_0.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz";
+        sha1 = "feacf7ccf525a77ae9634436a64883ffeca346fb";
+      };
+    }
+    {
+      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_cleanup___node_cleanup_2.1.2.tgz";
+      path = fetchurl {
+        name = "node_cleanup___node_cleanup_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/node-cleanup/-/node-cleanup-2.1.2.tgz";
+        sha1 = "7ac19abd297e09a7f72a71545d951b517e4dde2c";
+      };
+    }
+    {
+      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_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 = "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";
+        url  = "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-3.1.0.tgz";
+        sha1 = "7f91be317f6a466efed3c9f2980ad8a4ee8b0fa5";
+      };
+    }
+    {
+      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 = "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_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 = "on_finished___on_finished_2.3.0.tgz";
+      path = fetchurl {
+        name = "on_finished___on_finished_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz";
+        sha1 = "20f1336481b083cd75337992a16971aa2d906947";
+      };
+    }
+    {
+      name = "on_headers___on_headers_1.0.2.tgz";
+      path = fetchurl {
+        name = "on_headers___on_headers_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz";
+        sha1 = "772b0ae6aaa525c399e489adfad90c403eb3c28f";
+      };
+    }
+    {
+      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_2.0.1.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.0.tgz";
+      path = fetchurl {
+        name = "onetime___onetime_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz";
+        sha1 = "fff0f3c91617fe62bb50189636e99ac8a6df7be5";
+      };
+    }
+    {
+      name = "opencollective_postinstall___opencollective_postinstall_2.0.2.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 = "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 = "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";
+        url  = "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz";
+        sha1 = "bd6fcaa9c559a096b680806f4d657b3f0f240561";
+      };
+    }
+    {
+      name = "p_is_promise___p_is_promise_3.0.0.tgz";
+      path = fetchurl {
+        name = "p_is_promise___p_is_promise_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-3.0.0.tgz";
+        sha1 = "58e78c7dfe2e163cf2a04ff869e7c1dba64a5971";
+      };
+    }
+    {
+      name = "p_limit___p_limit_2.2.2.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_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_2.1.0.tgz";
+      path = fetchurl {
+        name = "p_map___p_map_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz";
+        sha1 = "310928feef9c9ecc65b68b17693018a665cea175";
+      };
+    }
+    {
+      name = "p_map___p_map_3.0.0.tgz";
+      path = fetchurl {
+        name = "p_map___p_map_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz";
+        sha1 = "d704d9af8a2ba684e2600d9a215983d4141a979d";
+      };
+    }
+    {
+      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 = "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.0.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 = "parseurl___parseurl_1.3.3.tgz";
+      path = fetchurl {
+        name = "parseurl___parseurl_1.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz";
+        sha1 = "9da19e7bee8d12dff0513ed5b76957793bc2e8d4";
+      };
+    }
+    {
+      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.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 = "path_to_regexp___path_to_regexp_0.1.7.tgz";
+      path = fetchurl {
+        name = "path_to_regexp___path_to_regexp_0.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz";
+        sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c";
+      };
+    }
+    {
+      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 = "pause_stream___pause_stream_0.0.11.tgz";
+      path = fetchurl {
+        name = "pause_stream___pause_stream_0.0.11.tgz";
+        url  = "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz";
+        sha1 = "fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445";
+      };
+    }
+    {
+      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 = "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";
+      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.2.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_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_fetch___pkg_fetch_2.6.8.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 = "please_upgrade_node___please_upgrade_node_3.2.0.tgz";
+      path = fetchurl {
+        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";
+      };
+    }
+    {
+      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 = "prettier___prettier_1.19.1.tgz";
+      path = fetchurl {
+        name = "prettier___prettier_1.19.1.tgz";
+        url  = "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz";
+        sha1 = "f7d7f5ff8a9cd872a7be4ca142095956a60797cb";
+      };
+    }
+    {
+      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 = "prom_client___prom_client_11.5.3.tgz";
+      path = fetchurl {
+        name = "prom_client___prom_client_11.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/prom-client/-/prom-client-11.5.3.tgz";
+        sha1 = "5fedfce1083bac6c2b223738e966d0e1643756f8";
+      };
+    }
+    {
+      name = "protobufjs___protobufjs_6.8.8.tgz";
+      path = fetchurl {
+        name = "protobufjs___protobufjs_6.8.8.tgz";
+        url  = "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.8.8.tgz";
+        sha1 = "c8b4f1282fd7a90e6f5b109ed11c84af82908e7c";
+      };
+    }
+    {
+      name = "proxy_addr___proxy_addr_2.0.5.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_from_env___proxy_from_env_1.0.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 = "ps_tree___ps_tree_1.2.0.tgz";
+      path = fetchurl {
+        name = "ps_tree___ps_tree_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.2.0.tgz";
+        sha1 = "5e7425b89508736cdd4f2224d028f7bb3f722ebd";
+      };
+    }
+    {
+      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";
+        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 = "puppeteer_cluster___puppeteer_cluster_0.18.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___puppeteer_2.0.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 = "qs___qs_6.7.0.tgz";
+      path = fetchurl {
+        name = "qs___qs_6.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz";
+        sha1 = "41dc1a015e3d581f1621776be31afb2876a9b1bc";
+      };
+    }
+    {
+      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 = "range_parser___range_parser_1.2.1.tgz";
+      path = fetchurl {
+        name = "range_parser___range_parser_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz";
+        sha1 = "3cf37023d199e1c24d1a55b84800c2f3e6468031";
+      };
+    }
+    {
+      name = "raw_body___raw_body_2.4.0.tgz";
+      path = fetchurl {
+        name = "raw_body___raw_body_2.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz";
+        sha1 = "a1ce6fb9c9bc356ca52e89256ab59059e13d0332";
+      };
+    }
+    {
+      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.5.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 = "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 = "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";
+      path = fetchurl {
+        name = "request___request_2.88.2.tgz";
+        url  = "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz";
+        sha1 = "d73c918731cb5a87da047e207234146f664d12b3";
+      };
+    }
+    {
+      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___resolve_1.14.2.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 = "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 = "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 = "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 = "run_node___run_node_1.0.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.1.9.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 = "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_buffer___safe_buffer_5.2.0.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 = "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 = "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___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 = "send___send_0.17.1.tgz";
+      path = fetchurl {
+        name = "send___send_0.17.1.tgz";
+        url  = "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz";
+        sha1 = "c1d8b059f7900f7466dd4938bdc44e11ddb376c8";
+      };
+    }
+    {
+      name = "serve_static___serve_static_1.14.1.tgz";
+      path = fetchurl {
+        name = "serve_static___serve_static_1.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz";
+        sha1 = "666e636dc4f010f7ef29970a88a674320898b2f9";
+      };
+    }
+    {
+      name = "setprototypeof___setprototypeof_1.1.1.tgz";
+      path = fetchurl {
+        name = "setprototypeof___setprototypeof_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz";
+        sha1 = "7e95acb24aa92f5885e0abef5ba131330d4ae683";
+      };
+    }
+    {
+      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 = "signal_exit___signal_exit_3.0.2.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_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_0.0.4.tgz";
+      path = fetchurl {
+        name = "slice_ansi___slice_ansi_0.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz";
+        sha1 = "edbf8903f66f7ce2f8eafd6ceed65e264c831b35";
+      };
+    }
+    {
+      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 = "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";
+        url  = "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz";
+        sha1 = "cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f";
+      };
+    }
+    {
+      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 = "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";
+        url  = "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz";
+        sha1 = "547c70b347e8d32b4e108ea1a2a159e5fdde19c0";
+      };
+    }
+    {
+      name = "statuses___statuses_1.5.0.tgz";
+      path = fetchurl {
+        name = "statuses___statuses_1.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz";
+        sha1 = "161c7dac177659fd9811f43771fa99381478628c";
+      };
+    }
+    {
+      name = "stream_combiner___stream_combiner_0.0.4.tgz";
+      path = fetchurl {
+        name = "stream_combiner___stream_combiner_0.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz";
+        sha1 = "4d5e433c185261dde623ca3f44c586bcf5c4ad14";
+      };
+    }
+    {
+      name = "stream_meter___stream_meter_1.0.4.tgz";
+      path = fetchurl {
+        name = "stream_meter___stream_meter_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/stream-meter/-/stream-meter-1.0.4.tgz";
+        sha1 = "52af95aa5ea760a2491716704dbff90f73afdd1d";
+      };
+    }
+    {
+      name = "string_argv___string_argv_0.1.2.tgz";
+      path = fetchurl {
+        name = "string_argv___string_argv_0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/string-argv/-/string-argv-0.1.2.tgz";
+        sha1 = "c5b7bc03fb2b11983ba3a72333dd0559e77e4738";
+      };
+    }
+    {
+      name = "string_argv___string_argv_0.3.1.tgz";
+      path = fetchurl {
+        name = "string_argv___string_argv_0.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz";
+        sha1 = "95e2fbec0427ae19184935f816d74aaa4c5c19da";
+      };
+    }
+    {
+      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_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_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 = "stringify_object___stringify_object_3.3.0.tgz";
+      path = fetchurl {
+        name = "stringify_object___stringify_object_3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz";
+        sha1 = "703065aefca19300d3ce88af4f5b3956d7556629";
+      };
+    }
+    {
+      name = "strip_ansi___strip_ansi_3.0.1.tgz";
+      path = fetchurl {
+        name = "strip_ansi___strip_ansi_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz";
+        sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
+      };
+    }
+    {
+      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_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";
+        url  = "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz";
+        sha1 = "89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz";
+        sha1 = "e2e69a44ac8772f78a1ec0b35b689df6530efc8f";
+      };
+    }
+    {
+      name = "supports_color___supports_color_7.1.0.tgz";
+      path = fetchurl {
+        name = "supports_color___supports_color_7.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz";
+        sha1 = "68e32591df73e25ad1c4b49108a2ec507962bfd1";
+      };
+    }
+    {
+      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 = "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 = "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 = "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";
+        url  = "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz";
+        sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+      };
+    }
+    {
+      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 = "toidentifier___toidentifier_1.0.0.tgz";
+      path = fetchurl {
+        name = "toidentifier___toidentifier_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz";
+        sha1 = "7e1be3470f1e77948bc43d94a3c8f4d7752ba553";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz";
+        sha1 = "a595214c7298db8339eeeee083e4d10bd8cb8dd9";
+      };
+    }
+    {
+      name = "tsc_watch___tsc_watch_4.2.3.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 = "tslib___tslib_1.11.1.tgz";
+      path = fetchurl {
+        name = "tslib___tslib_1.11.1.tgz";
+        url  = "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz";
+        sha1 = "eb15d128827fbee2841549e171f45ed338ac7e35";
+      };
+    }
+    {
+      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 = "tslint___tslint_6.1.1.tgz";
+      path = fetchurl {
+        name = "tslint___tslint_6.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/tslint/-/tslint-6.1.1.tgz";
+        sha1 = "ac03fbd17f85bfefaae348b353b25a88efe10cde";
+      };
+    }
+    {
+      name = "tsutils___tsutils_2.29.0.tgz";
+      path = fetchurl {
+        name = "tsutils___tsutils_2.29.0.tgz";
+        url  = "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz";
+        sha1 = "32b488501467acbedd4b85498673a0812aca0b99";
+      };
+    }
+    {
+      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 = "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.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.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_is___type_is_1.6.18.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 = "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";
+      path = fetchurl {
+        name = "typescript___typescript_3.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz";
+        sha1 = "409eb8544ea0335711205869ec458ab109ee1061";
+      };
+    }
+    {
+      name = "uid2___uid2_0.0.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 = "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 = "unique_temp_dir___unique_temp_dir_1.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 = "unpipe___unpipe_1.0.0.tgz";
+      path = fetchurl {
+        name = "unpipe___unpipe_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz";
+        sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
+      };
+    }
+    {
+      name = "uri_js___uri_js_4.2.2.tgz";
+      path = fetchurl {
+        name = "uri_js___uri_js_4.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz";
+        sha1 = "94c540e1ff772956e2299507c010aea6c8838eb0";
+      };
+    }
+    {
+      name = "url_value_parser___url_value_parser_2.0.1.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 = "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 = "utils_merge___utils_merge_1.0.1.tgz";
+      path = fetchurl {
+        name = "utils_merge___utils_merge_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz";
+        sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
+      };
+    }
+    {
+      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 = "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 = "vary___vary_1.1.2.tgz";
+      path = fetchurl {
+        name = "vary___vary_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz";
+        sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
+      };
+    }
+    {
+      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 = "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 = "winston_transport___winston_transport_4.3.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___winston_3.2.1.tgz";
+      path = fetchurl {
+        name = "winston___winston_3.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/winston/-/winston-3.2.1.tgz";
+        sha1 = "63061377976c73584028be2490a1846055f77f07";
+      };
+    }
+    {
+      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 = "wrap_ansi___wrap_ansi_3.0.1.tgz";
+      path = fetchurl {
+        name = "wrap_ansi___wrap_ansi_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz";
+        sha1 = "288a04d87eda5c286e060dfe8f135ce8d007f8ba";
+      };
+    }
+    {
+      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 = "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 = "yallist___yallist_2.1.2.tgz";
+      path = fetchurl {
+        name = "yallist___yallist_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz";
+        sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
+      };
+    }
+    {
+      name = "yauzl___yauzl_2.4.1.tgz";
+      path = fetchurl {
+        name = "yauzl___yauzl_2.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz";
+        sha1 = "9528f442dab1b2284e58b4379bb194e22e0c4005";
+      };
+    }
+  ];
+}
diff --git a/pkgs/servers/monitoring/grafana/default.nix b/pkgs/servers/monitoring/grafana/default.nix
index 588113aa633..c06da6fee11 100644
--- a/pkgs/servers/monitoring/grafana/default.nix
+++ b/pkgs/servers/monitoring/grafana/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "grafana";
-  version = "7.3.5";
+  version = "7.3.6";
 
   excludedPackages = [ "release_publisher" ];
 
@@ -10,15 +10,15 @@ buildGoModule rec {
     rev = "v${version}";
     owner = "grafana";
     repo = "grafana";
-    sha256 = "1gxa1j7sd4xcyb2gh2ja6mwp0j4zcqwzaz25n9f9p9azhjyd2zh5";
+    sha256 = "10hm5bz2q9mccrjx1x77xckqvn2x9m7cl2dn60gvrl8m7q3afscp";
   };
 
   srcStatic = fetchurl {
     url = "https://dl.grafana.com/oss/release/grafana-${version}.linux-amd64.tar.gz";
-    sha256 = "0vplzj5jrx643qp68kxg1g1gazxjrnx771dmc1703zalv28z8fq3";
+    sha256 = "1fl4ng39qkc01nv49cfzm19sv3yzzshl22ylkwlsb41rmaifbd1f";
   };
 
-  vendorSha256 = "05brpjac54a8bxh7psy8gix9q2g36fr4z5msahp6i8wv2xfrf98b";
+  vendorSha256 = "0p4wwacvka5lgzwhlwnn6iiwi9x67zgqf0l4vblpfckvvb3ar41h";
 
   postPatch = ''
     substituteInPlace pkg/cmd/grafana-server/main.go \
diff --git a/pkgs/servers/monitoring/grafana/plugins/default.nix b/pkgs/servers/monitoring/grafana/plugins/default.nix
new file mode 100644
index 00000000000..95be470831c
--- /dev/null
+++ b/pkgs/servers/monitoring/grafana/plugins/default.nix
@@ -0,0 +1,7 @@
+{ newScope, pkgs }:
+
+let
+  callPackage = newScope (pkgs // plugins);
+  plugins = import ./plugins.nix { inherit callPackage; };
+in
+  plugins
diff --git a/pkgs/servers/monitoring/grafana/plugins/grafana-clock-panel/default.nix b/pkgs/servers/monitoring/grafana/plugins/grafana-clock-panel/default.nix
new file mode 100644
index 00000000000..c0648c97e68
--- /dev/null
+++ b/pkgs/servers/monitoring/grafana/plugins/grafana-clock-panel/default.nix
@@ -0,0 +1,13 @@
+{ grafanaPlugin, lib }:
+
+grafanaPlugin rec {
+  pname = "grafana-clock-panel";
+  version = "1.1.1";
+  zipHash = "sha256-SvZyg7r+XG6i7jqYwxpPn6ZzJc7qmtfPtyphYppURDk=";
+  meta = with lib; {
+    description = "Clock panel for Grafana";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ lukegb ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/servers/monitoring/grafana/plugins/grafana-piechart-panel/default.nix b/pkgs/servers/monitoring/grafana/plugins/grafana-piechart-panel/default.nix
new file mode 100644
index 00000000000..2c44d3a4a06
--- /dev/null
+++ b/pkgs/servers/monitoring/grafana/plugins/grafana-piechart-panel/default.nix
@@ -0,0 +1,13 @@
+{ grafanaPlugin, lib }:
+
+grafanaPlugin rec {
+  pname = "grafana-piechart-panel";
+  version = "1.6.1";
+  zipHash = "sha256-64K/efoBKuBFp8Jw79hTdMyTurTZsL0qfgPDcUWz2jg=";
+  meta = with lib; {
+    description = "Pie chart panel for Grafana";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ lukegb ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/servers/monitoring/grafana/plugins/grafana-plugin.nix b/pkgs/servers/monitoring/grafana/plugins/grafana-plugin.nix
new file mode 100644
index 00000000000..3b3cee88fd7
--- /dev/null
+++ b/pkgs/servers/monitoring/grafana/plugins/grafana-plugin.nix
@@ -0,0 +1,28 @@
+{ stdenvNoCC, fetchurl, unzip }:
+
+{ pname, version, zipHash, meta ? {}, passthru ? {}, ... }@args:
+stdenvNoCC.mkDerivation ({
+  inherit pname version;
+
+  src = fetchurl {
+    name = "${pname}-${version}.zip";
+    url = "https://grafana.com/api/plugins/${pname}/versions/${version}/download";
+    hash = zipHash;
+  };
+
+  nativeBuildInputs = [ unzip ];
+
+  installPhase = ''
+    cp -R "." "$out"
+    chmod -R a-w "$out"
+    chmod u+w "$out"
+  '';
+
+  passthru = {
+    updateScript = [ ./update-grafana-plugin.sh pname ];
+  } // passthru;
+
+  meta = {
+    homepage = "https://grafana.com/grafana/plugins/${pname}";
+  } // meta;
+} // (builtins.removeAttrs args [ "pname" "version" "sha256" "meta" ]))
diff --git a/pkgs/servers/monitoring/grafana/plugins/grafana-polystat-panel/default.nix b/pkgs/servers/monitoring/grafana/plugins/grafana-polystat-panel/default.nix
new file mode 100644
index 00000000000..efbaeda9376
--- /dev/null
+++ b/pkgs/servers/monitoring/grafana/plugins/grafana-polystat-panel/default.nix
@@ -0,0 +1,13 @@
+{ grafanaPlugin, lib }:
+
+grafanaPlugin rec {
+  pname = "grafana-polystat-panel";
+  version = "1.2.2";
+  zipHash = "sha256-HWQdhstnrDuXPithZ8kOG2ZtSeAT215MJ1ftMCt6/tc=";
+  meta = with lib; {
+    description = "Hexagonal multi-stat panel for Grafana";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ lukegb ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/servers/monitoring/grafana/plugins/grafana-worldmap-panel/default.nix b/pkgs/servers/monitoring/grafana/plugins/grafana-worldmap-panel/default.nix
new file mode 100644
index 00000000000..2f1671750fa
--- /dev/null
+++ b/pkgs/servers/monitoring/grafana/plugins/grafana-worldmap-panel/default.nix
@@ -0,0 +1,13 @@
+{ grafanaPlugin, lib }:
+
+grafanaPlugin rec {
+  pname = "grafana-worldmap-panel";
+  version = "0.3.2";
+  zipHash = "sha256-MGAJzS9X91x6wt305jH1chLoW3zd7pIYDwRnPg9qrgE=";
+  meta = with lib; {
+    description = "World Map panel for Grafana";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ lukegb ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/servers/monitoring/grafana/plugins/plugins.nix b/pkgs/servers/monitoring/grafana/plugins/plugins.nix
new file mode 100644
index 00000000000..b2991ba4e74
--- /dev/null
+++ b/pkgs/servers/monitoring/grafana/plugins/plugins.nix
@@ -0,0 +1,11 @@
+{ callPackage }:
+{
+  inherit callPackage;
+
+  grafanaPlugin = callPackage ./grafana-plugin.nix { };
+
+  grafana-clock-panel = callPackage ./grafana-clock-panel { };
+  grafana-piechart-panel = callPackage ./grafana-piechart-panel { };
+  grafana-polystat-panel = callPackage ./grafana-polystat-panel { };
+  grafana-worldmap-panel = callPackage ./grafana-worldmap-panel { };
+}
diff --git a/pkgs/servers/monitoring/grafana/plugins/update-grafana-plugin.sh b/pkgs/servers/monitoring/grafana/plugins/update-grafana-plugin.sh
new file mode 100755
index 00000000000..dd8f050c633
--- /dev/null
+++ b/pkgs/servers/monitoring/grafana/plugins/update-grafana-plugin.sh
@@ -0,0 +1,8 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl jq common-updater-scripts
+
+set -eu -o pipefail
+
+readonly plugin_name="$1"
+readonly latest_version="$(curl "https://grafana.com/api/plugins/${plugin_name}" | jq -r .version)"
+update-source-version "grafanaPlugins.${plugin_name}" "$latest_version"
diff --git a/pkgs/servers/monitoring/loki/default.nix b/pkgs/servers/monitoring/loki/default.nix
index f1cefdc0b1d..a3e85e2b822 100644
--- a/pkgs/servers/monitoring/loki/default.nix
+++ b/pkgs/servers/monitoring/loki/default.nix
@@ -1,37 +1,21 @@
-{ stdenv
-, lib
-, buildGoModule
-, fetchFromGitHub
-, makeWrapper
-, nixosTests
-, systemd
-, fetchpatch
+{ stdenv, lib, buildGoModule, fetchFromGitHub, makeWrapper, nixosTests, systemd
 }:
 
 buildGoModule rec {
-  version = "2.0.0";
+  version = "2.1.0";
   pname = "grafana-loki";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "grafana";
     repo = "loki";
-    sha256 = "09a0mqdmk754vigd1xqijzwazwrmfaqcgdr2c6dz25p7a65568hj";
+    sha256 = "O/3079a67j1i9pgf18SBx0iJcQPVmb0H+K/PzQVBCDQ=";
   };
 
   vendorSha256 = null;
 
   subPackages = [ "..." ];
 
-  patches = [
-    (fetchpatch {
-      # Fix expected return value in Test_validateDropConfig
-      # https://github.com/grafana/loki/issues/2519
-      url = "https://github.com/grafana/loki/commit/1316c0f0c5cda7c272c4873ea910211476fc1db8.patch";
-      sha256 = "06hwga58qpmivbhyjgyqzb75602hy8212a4b5vh99y9pnn6c913h";
-    })
-  ];
-
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = stdenv.lib.optionals stdenv.isLinux [ systemd.dev ];
 
diff --git a/pkgs/servers/monitoring/prometheus/bird-exporter.nix b/pkgs/servers/monitoring/prometheus/bird-exporter.nix
new file mode 100644
index 00000000000..39daab618b3
--- /dev/null
+++ b/pkgs/servers/monitoring/prometheus/bird-exporter.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoModule, fetchFromGitHub, nixosTests }:
+
+buildGoModule rec {
+  pname = "bird-exporter";
+  version = "1.3.5-git";
+
+  src = fetchFromGitHub {
+    owner = "czerwonk";
+    repo = "bird_exporter";
+    rev = "019fc09804625658d452a8e043cc16559c3b5b84";
+    sha256 = "1iym46368k8zzy4djx511m926dg8x5mg3xi91f65sknqv26zfggb";
+  };
+
+  vendorSha256 = null;
+
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) bird; };
+
+  meta = with stdenv.lib; {
+    description = "Prometheus exporter for the bird routing daemon";
+    homepage = "https://github.com/czerwonk/bird_exporter";
+    license = licenses.mit;
+    maintainers = with maintainers; [ lukegb ];
+  };
+}
diff --git a/pkgs/servers/monitoring/prometheus/default.nix b/pkgs/servers/monitoring/prometheus/default.nix
index 6ab1c80eced..2852fb2afc2 100644
--- a/pkgs/servers/monitoring/prometheus/default.nix
+++ b/pkgs/servers/monitoring/prometheus/default.nix
@@ -1,13 +1,15 @@
-{ stdenv, lib, go, buildGoPackage, fetchFromGitHub, mkYarnPackage, nixosTests }:
+{ stdenv, lib, go, buildGoPackage, fetchFromGitHub, mkYarnPackage, nixosTests
+, fetchpatch
+}:
 
 let
-  version = "2.22.2";
+  version = "2.23.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "prometheus";
     repo = "prometheus";
-    sha256 = "04pf3shdfd25wf8snkan5hzv1gjzazjw06i11xaamnc8gfahnzdv";
+    sha256 = "sha256-UQ1r8271EiZDU/h2zta6toMRfk2GjXol8GexYL9n+BE=";
   };
 
   webui = mkYarnPackage {
@@ -29,15 +31,23 @@ in buildGoPackage rec {
 
   goPackagePath = "github.com/prometheus/prometheus";
 
+  patches = [
+    # Fix https://github.com/prometheus/prometheus/issues/8144
+    (fetchpatch {
+      url = "https://github.com/prometheus/prometheus/commit/8b64b70fe4a5aa2877c95aa12c6798b12d3ff7ec.patch";
+      sha256 = "sha256-RuXT5pBXv8z6WoE59KNGh+OXr1KGLGWs/n0Hjf4BuH8=";
+    })
+  ];
+
   postPatch = ''
     ln -s ${webui.node_modules} web/ui/react-app/node_modules
     ln -s ${webui} web/ui/static/react
   '';
 
+  buildFlags = "-tags=builtinassets";
   buildFlagsArray = let
     t = "${goPackagePath}/vendor/github.com/prometheus/common/version";
   in [
-    "-tags=builtinassets"
     ''
       -ldflags=
          -X ${t}.Version=${version}
diff --git a/pkgs/servers/monitoring/prometheus/json-exporter.nix b/pkgs/servers/monitoring/prometheus/json-exporter.nix
index afa61080931..796eb065e63 100644
--- a/pkgs/servers/monitoring/prometheus/json-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/json-exporter.nix
@@ -1,31 +1,23 @@
-# This file was generated by go2nix.
-{ buildGoPackage, fetchFromGitHub, fetchpatch, lib, nixosTests }:
+{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
 
-buildGoPackage {
+buildGoModule rec {
   pname = "prometheus-json-exporter";
-  version = "unstable-2017-10-06";
-
-  goPackagePath = "github.com/kawamuray/prometheus-json-exporter";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
-    owner = "kawamuray";
-    repo = "prometheus-json-exporter";
-    rev = "51e3dc02a30ab818bb73e5c98c3853231c2dbb5f";
-    sha256 = "1v1p4zcqnb3d3rm55r695ydn61h6gz95f55cpa22hzw18dasahdh";
+    owner = "prometheus-community";
+    repo = "json_exporter";
+    rev = "v${version}";
+    sha256 = "1aabvd75a2223x5wnbyryigj7grw6l05jhr3g3s97b1f1hfigz6d";
   };
 
-  goDeps = ./json-exporter_deps.nix;
-
-  patches = [(fetchpatch { # adds bool support
-    url = "https://patch-diff.githubusercontent.com/raw/kawamuray/prometheus-json-exporter/pull/17.patch";
-    sha256 = "0mc5axhd2bykci41dgswl4r1552d70jsmb17lbih7czhsy6rgmrm";
-  })];
+  vendorSha256 = "03kb0gklq08krl7qnvs7267siw1pkyy346b42dsk1d9gr5302wsw";
 
   passthru.tests = { inherit (nixosTests.prometheus-exporters) json; };
 
   meta = with lib; {
     description = "A prometheus exporter which scrapes remote JSON by JSONPath";
-    homepage = "https://github.com/kawamuray/prometheus-json-exporter";
+    homepage = "https://github.com/prometheus-community/json_exporter";
     license = licenses.asl20;
     maintainers = with maintainers; [ willibutz ];
   };
diff --git a/pkgs/servers/monitoring/prometheus/json-exporter_deps.nix b/pkgs/servers/monitoring/prometheus/json-exporter_deps.nix
deleted file mode 100644
index 9416125bc0c..00000000000
--- a/pkgs/servers/monitoring/prometheus/json-exporter_deps.nix
+++ /dev/null
@@ -1,111 +0,0 @@
-# This file was generated by go2nix.
-[
-  {
-    goPackagePath = "github.com/Sirupsen/logrus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/Sirupsen/logrus";
-      rev = "a437dfd2463eaedbec3dfe443e477d3b0a810b3f";
-      sha256 = "1904s2bbc7p88anzjp6fyj3jrbm5p6wbb8j4490674dq10kkcfbj";
-    };
-  }
-  {
-    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 = "8ee79997227bf9b34611aee7946ae64735e6fd93";
-      sha256 = "0qm1lpdhf97k2hxgivq2cpjgawhlmmz39y230kgxijhm96xijxb8";
-    };
-  }
-  {
-    goPackagePath = "github.com/kawamuray/jsonpath";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kawamuray/jsonpath";
-      rev = "5c448ebf973557834ef870e788b0b2d95ac68d12";
-      sha256 = "1i1id1i85rf09rldp03h0ibyi6zg0fz9p9l5qj7i8dfs6h6y8f0a";
-    };
-  }
-  {
-    goPackagePath = "github.com/kawamuray/prometheus-exporter-harness";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kawamuray/prometheus-exporter-harness";
-      rev = "97eeea7b8b0619ea2a065d75c0f0f5909327afa6";
-      sha256 = "12al8irf8jb6p2xmm4wbh0wjqsyrdywynr4w122wxxnsx2n56xyv";
-    };
-  }
-  {
-    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 = "575f371f7862609249a1be4c9145f429fe065e32";
-      sha256 = "0hyvszjv5m6i40k2fn21c3bjr8jhlfdqavk1r6g2v5dybyj47vps";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_model";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_model";
-      rev = "fa8ad6fec33561be4280a8f0514318c79d7f6cb6";
-      sha256 = "11a7v1fjzhhwsl128znjcf5v7v6129xjgkdpym2lial4lac1dhm9";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/common";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/common";
-      rev = "0d5de9d6d8629cb8bee6d4674da4127cd8b615a3";
-      sha256 = "1zlvvgw67p66fz9nswkydq15j4a5z5kkiskl0jxps8i27ya1baq0";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/procfs";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/procfs";
-      rev = "abf152e5f3e97f2fafac028d2cc06c1feb87ffa5";
-      sha256 = "0cp8lznv1b4zhi3wnbjkfxwzhkqd3wbmiy6mwgjanip8l9l3ykws";
-    };
-  }
-  {
-    goPackagePath = "github.com/urfave/cli";
-    fetch = {
-      type = "git";
-      url = "https://github.com/urfave/cli";
-      rev = "0bdeddeeb0f650497d603c4ad7b20cfe685682f6";
-      sha256 = "1ny63c7bfwfrsp7vfkvb4i0xhq4v7yxqnwxa52y4xlfxs4r6v6fg";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "a5b47d31c556af34a302ce5d659e6fea44d90de0";
-      sha256 = "0v6l48fshdjrqzyq1kwn22gy7vy434xdr1i0lm3prsf6jbln9fam";
-    };
-  }
-]
diff --git a/pkgs/servers/monitoring/prometheus/lnd-exporter.nix b/pkgs/servers/monitoring/prometheus/lnd-exporter.nix
index 9499f70e71b..cdece121243 100644
--- a/pkgs/servers/monitoring/prometheus/lnd-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/lnd-exporter.nix
@@ -1,17 +1,17 @@
 { stdenv, buildGoModule, fetchFromGitHub, nixosTests }:
 
 buildGoModule rec {
-  pname = "lndmon-unstable";
-  version = "2020-01-09";
+  pname = "lndmon";
+  version = "unstable-2020-12-04";
 
   src = fetchFromGitHub {
     owner = "lightninglabs";
     repo = "lndmon";
-    sha256 = "0d4z8yv2459wsi4c91qs5an13acn73fd8s321xya5vxxiyf51q24";
-    rev = "2c7c5ce0fcb4e7eef4df60efe8a644587a309f6c";
+    sha256 = "0q72jbkhw1vpwxd0r80l1v4ab71sakc315plfqbijy7al9ywq5nl";
+    rev = "f07d574320dd1a6a428fecd47f3a5bb46a0fc4d1";
   };
 
-  vendorSha256 = "083h2ksnqmcr48958r5pag9a28xvljpc3prip6wn70ifp2wpjpin";
+  vendorSha256 = "06if387b9m02ciqgcissih1x06l33djp87vgspwzz589f77vczk8";
 
   doCheck = false;
 
diff --git a/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix b/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix
index 2c2fabf2357..771bbf39b08 100644
--- a/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix
@@ -1,21 +1,23 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub, nixosTests }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "nginxlog_exporter";
-  version = "1.3.0";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "martin-helmich";
     repo = "prometheus-nginxlog-exporter";
     rev = "v${version}";
-    sha256 = "0cma6hgagqdms6x40v0q4jn8gjq1awyg1aqk5l8mz7l6k132qq7k";
+    sha256 = "1kqyjw5yqgjb8xa5irdhpqvwp1qhba6igpc23n2qljhbh0aybkbq";
   };
 
-  goPackagePath = "github.com/martin-helmich/prometheus-nginxlog-exporter";
+  vendorSha256 = "130hq19y890amxhjywg5blassl8br2p9d62aai8fj839p3p2a7zp";
 
-  goDeps = ./nginxlog-exporter_deps.nix;
+  subPackages = [ "." ];
 
-  doCheck = true;
+  runVend = true;
+
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) nginxlog; };
 
   meta = with stdenv.lib; {
     description = "Export metrics from Nginx access log files to Prometheus";
diff --git a/pkgs/servers/monitoring/prometheus/nginxlog-exporter_deps.nix b/pkgs/servers/monitoring/prometheus/nginxlog-exporter_deps.nix
deleted file mode 100644
index 3051258a636..00000000000
--- a/pkgs/servers/monitoring/prometheus/nginxlog-exporter_deps.nix
+++ /dev/null
@@ -1,282 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
-[
-  {
-    goPackagePath = "github.com/armon/go-radix";
-    fetch = {
-      type = "git";
-      url = "https://github.com/armon/go-radix";
-      rev = "v1.0.0";
-      sha256 = "1m1k0jz9gjfrk4m7hjm7p03qmviamfgxwm2ghakqxw3hdds8v503";
-    };
-  }
-  {
-    goPackagePath = "github.com/beorn7/perks";
-    fetch = {
-      type = "git";
-      url = "https://github.com/beorn7/perks";
-      rev = "3ac7bf7a47d1";
-      sha256 = "1qc3l4r818xpvrhshh1sisc5lvl9479qspcfcdbivdyh0apah83r";
-    };
-  }
-  {
-    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/fsnotify/fsnotify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fsnotify/fsnotify";
-      rev = "v1.4.7";
-      sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev = "0c1f6d65b5a1";
-      sha256 = "1ad3zv0s3swslfwmk0wry9qbjz596689z13f2s7d9gska6msigsl";
-    };
-  }
-  {
-    goPackagePath = "github.com/gopherjs/gopherjs";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gopherjs/gopherjs";
-      rev = "0766667cb4d1";
-      sha256 = "13pfc9sxiwjky2lm1xb3i3lcisn8p6mgjk2d927l7r92ysph8dmw";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/consul";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/consul";
-      rev = "de080672fee9";
-      sha256 = "1q46gn7gv7ara21akkbyzlnari4naxax2d0z917y56ra4lwm259i";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/go-msgpack";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/go-msgpack";
-      rev = "v0.5.3";
-      sha256 = "00jv0ajqd58pkb2yyhlrjp0rv1mvb1ijx3yqjyikcmzvk9jb4h5m";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/golang-lru";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/golang-lru";
-      rev = "v0.5.1";
-      sha256 = "13f870cvk161bzjj6x41l45r5x9i1z9r2ymwmvm7768kg08zznpy";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/hcl";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/hcl";
-      rev = "v1.0.0";
-      sha256 = "0q6ml0qqs0yil76mpn4mdx4lp94id8vbv575qm60jzl1ijcl5i66";
-    };
-  }
-  {
-    goPackagePath = "github.com/hpcloud/tail";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hpcloud/tail";
-      rev = "v1.0.0";
-      sha256 = "1njpzc0pi1acg5zx9y6vj9xi6ksbsc5d387rd6904hy6rh2m6kn0";
-    };
-  }
-  {
-    goPackagePath = "github.com/jtolds/gls";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jtolds/gls";
-      rev = "v4.20.0";
-      sha256 = "1k7xd2q2ysv2xsh373qs801v6f359240kx0vrl0ydh7731lngvk6";
-    };
-  }
-  {
-    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/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 = "5636dc67ae77";
-      sha256 = "0fb4w52zp0jk8218gwk4wgbhpj7d4hp6n00dvm8s0ajbysbx524d";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_model";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_model";
-      rev = "fa8ad6fec335";
-      sha256 = "11a7v1fjzhhwsl128znjcf5v7v6129xjgkdpym2lial4lac1dhm9";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/common";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/common";
-      rev = "4402f4e5ea79";
-      sha256 = "1nskicw0k0kay9dqg8hw2clgcnvjfcz839rijvrz4wh7gl42qiag";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/procfs";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/procfs";
-      rev = "abf152e5f3e9";
-      sha256 = "0cp8lznv1b4zhi3wnbjkfxwzhkqd3wbmiy6mwgjanip8l9l3ykws";
-    };
-  }
-  {
-    goPackagePath = "github.com/satyrius/gonx";
-    fetch = {
-      type = "git";
-      url = "https://github.com/satyrius/gonx";
-      rev = "47c52b995fe5";
-      sha256 = "0f0b6ac9xlai168d32zas4v2afk5b2q1bs0qi3dykkk6lhq7b58m";
-    };
-  }
-  {
-    goPackagePath = "github.com/smartystreets/assertions";
-    fetch = {
-      type = "git";
-      url = "https://github.com/smartystreets/assertions";
-      rev = "b2de0cb4f26d";
-      sha256 = "1i7ldgavgl35c7gk25p7bvdr282ckng090zr4ch9mk1705akx09y";
-    };
-  }
-  {
-    goPackagePath = "github.com/smartystreets/goconvey";
-    fetch = {
-      type = "git";
-      url = "https://github.com/smartystreets/goconvey";
-      rev = "200a235640ff";
-      sha256 = "08hgfwjs5zqwsx1z5ja15d0g4glprb3ck7dfi88kwv5q5fl1p139";
-    };
-  }
-  {
-    goPackagePath = "github.com/stretchr/objx";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/objx";
-      rev = "v0.1.0";
-      sha256 = "19ynspzjdynbi85xw06mh8ad5j0qa1vryvxjgvbnyrr8rbm4vd8w";
-    };
-  }
-  {
-    goPackagePath = "github.com/stretchr/testify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/testify";
-      rev = "v1.4.0";
-      sha256 = "187i5g88sxfy4vxpm7dw1gwv29pa2qaq475lxrdh5livh69wqfjb";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "c200b10b5d5e";
-      sha256 = "1f764m3q05q2dq1pdms07jcixw4xakqw46w1djrmbhjmd9q8b0av";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/check.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/check.v1";
-      rev = "788fd7840127";
-      sha256 = "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/fsnotify.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/fsnotify.v1";
-      rev = "v1.4.7";
-      sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/tomb.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/tomb.v1";
-      rev = "dd632973f1e7";
-      sha256 = "1lqmq1ag7s4b3gc3ddvr792c5xb5k6sfn0cchr3i2s7f1c231zjv";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "v2.2.4";
-      sha256 = "11bwj757wi8kdrcnlgfqb8vv2d2xdhlghmyagd19i62khrkchsg2";
-    };
-  }
-]
diff --git a/pkgs/servers/monitoring/prometheus/promscale.nix b/pkgs/servers/monitoring/prometheus/promscale.nix
index ccc096fb72c..081c7c8352e 100644
--- a/pkgs/servers/monitoring/prometheus/promscale.nix
+++ b/pkgs/servers/monitoring/prometheus/promscale.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "promscale";
-  version = "0.1.3";
+  version = "0.1.4";
 
   src = fetchFromGitHub {
     owner = "timescale";
     repo = pname;
     rev = version;
-    sha256 = "sha256-xkVT7Kn7mW23p8oGU4AsmB66lNd4QLnhEW7J66ldFHM=";
+    sha256 = "0179sw5zx552y14lr56adxcgas642xvxpqly6y4m9pi33r1gs8lj";
   };
 
-  vendorSha256 = "sha256:1wfyawbdbabyp9nyhzfp632hg9rvwdyagsdqvvq6gv8bn5xfcjvh";
+  vendorSha256 = "sha256:04gzf0siz96ar4qdkcw6daswy14i1zvl7ir200adhw1c5phppab6";
 
   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/pkgs/servers/monitoring/prometheus/smokeping-prober.nix b/pkgs/servers/monitoring/prometheus/smokeping-prober.nix
new file mode 100644
index 00000000000..5e29e28e86c
--- /dev/null
+++ b/pkgs/servers/monitoring/prometheus/smokeping-prober.nix
@@ -0,0 +1,43 @@
+{ stdenv, buildGoModule, fetchFromGitHub, nixosTests }:
+
+let
+  inherit (stdenv) lib;
+  baseVersion = "0.3.1";
+  commit = "9ba85274dcc21bf8132cbe3b3dccfcb4aab57d9f";
+in
+buildGoModule rec {
+  pname = "smokeping_prober";
+  version = "${baseVersion}-g${commit}";
+
+  buildFlagsArray = let
+    setVars = {
+      Version = baseVersion;
+      Revision = commit;
+      Branch = commit;
+      BuildUser = "nix";
+    };
+    varFlags = lib.concatStringsSep " " (lib.mapAttrsToList (name: value: "-X github.com/prometheus/common/version.${name}=${value}") setVars);
+  in [
+    "-ldflags=${varFlags} -s -w"
+  ];
+
+  src = fetchFromGitHub {
+    rev = commit;
+    owner = "SuperQ";
+    repo = "smokeping_prober";
+    sha256 = "sha256:19596di2gzcvlcwiypsncq4zwbyb6d1r6wxsfi59wax3423i7ndg";
+  };
+  vendorSha256 = "sha256:1b2v3v3kn0m7dvjxbs8q0gw6zingksdqhm5g1frx0mymqk0lg889";
+
+  doCheck = true;
+
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) smokeping; };
+
+  meta = with stdenv.lib; {
+    description = "Prometheus exporter for sending continual ICMP/UDP pings";
+    homepage = "https://github.com/SuperQ/smokeping_prober";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ lukegb ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/servers/monitoring/prometheus/webui-yarndeps.nix b/pkgs/servers/monitoring/prometheus/webui-yarndeps.nix
index 56f9ec72278..8475e7533b0 100644
--- a/pkgs/servers/monitoring/prometheus/webui-yarndeps.nix
+++ b/pkgs/servers/monitoring/prometheus/webui-yarndeps.nix
@@ -18,11 +18,11 @@
       };
     }
     {
-      name = "_babel_compat_data___compat_data_7.11.0.tgz";
+      name = "_babel_compat_data___compat_data_7.12.5.tgz";
       path = fetchurl {
-        name = "_babel_compat_data___compat_data_7.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.11.0.tgz";
-        sha1 = "e9f73efe09af1355b723a7f39b11bad637d7c99c";
+        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";
       };
     }
     {
@@ -34,19 +34,19 @@
       };
     }
     {
-      name = "_babel_core___core_7.11.6.tgz";
+      name = "_babel_core___core_7.12.3.tgz";
       path = fetchurl {
-        name = "_babel_core___core_7.11.6.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/core/-/core-7.11.6.tgz";
-        sha1 = "3a9455dc7387ff1bac45770650bc13ba04a15651";
+        name = "_babel_core___core_7.12.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/core/-/core-7.12.3.tgz";
+        sha1 = "1b436884e1e3bff6fb1328dc02b208759de92ad8";
       };
     }
     {
-      name = "_babel_generator___generator_7.11.6.tgz";
+      name = "_babel_generator___generator_7.12.5.tgz";
       path = fetchurl {
-        name = "_babel_generator___generator_7.11.6.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.6.tgz";
-        sha1 = "b868900f81b163b4d464ea24545c61cbac4dc620";
+        name = "_babel_generator___generator_7.12.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.5.tgz";
+        sha1 = "a2c50de5c8b6d708ab95be5e6053936c1884a4de";
       };
     }
     {
@@ -66,11 +66,11 @@
       };
     }
     {
-      name = "_babel_helper_builder_react_jsx_experimental___helper_builder_react_jsx_experimental_7.11.5.tgz";
+      name = "_babel_helper_builder_react_jsx_experimental___helper_builder_react_jsx_experimental_7.12.4.tgz";
       path = fetchurl {
-        name = "_babel_helper_builder_react_jsx_experimental___helper_builder_react_jsx_experimental_7.11.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.11.5.tgz";
-        sha1 = "4ea43dd63857b0a35cd1f1b161dc29b43414e79f";
+        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";
       };
     }
     {
@@ -82,27 +82,27 @@
       };
     }
     {
-      name = "_babel_helper_compilation_targets___helper_compilation_targets_7.10.4.tgz";
+      name = "_babel_helper_compilation_targets___helper_compilation_targets_7.12.5.tgz";
       path = fetchurl {
-        name = "_babel_helper_compilation_targets___helper_compilation_targets_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz";
-        sha1 = "804ae8e3f04376607cc791b9d47d540276332bd2";
+        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_class_features_plugin___helper_create_class_features_plugin_7.10.5.tgz";
+      name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.10.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz";
-        sha1 = "9f61446ba80e8240b0a5c85c6fdac8459d6f259d";
+        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_regexp_features_plugin___helper_create_regexp_features_plugin_7.10.4.tgz";
+      name = "_babel_helper_create_regexp_features_plugin___helper_create_regexp_features_plugin_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_helper_create_regexp_features_plugin___helper_create_regexp_features_plugin_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz";
-        sha1 = "fdd60d88524659a0b6959c0579925e425714f3b8";
+        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";
       };
     }
     {
@@ -114,11 +114,11 @@
       };
     }
     {
-      name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.11.4.tgz";
+      name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.11.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.11.4.tgz";
-        sha1 = "2d8e3470252cc17aba917ede7803d4a7a276a41b";
+        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";
       };
     }
     {
@@ -146,27 +146,27 @@
       };
     }
     {
-      name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.11.0.tgz";
+      name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz";
-        sha1 = "ae69c83d84ee82f4b42f96e2a09410935a8f26df";
+        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_imports___helper_module_imports_7.10.4.tgz";
+      name = "_babel_helper_module_imports___helper_module_imports_7.12.5.tgz";
       path = fetchurl {
-        name = "_babel_helper_module_imports___helper_module_imports_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz";
-        sha1 = "4c5c54be04bd31670a7382797d75b9fa2e5b5620";
+        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_module_transforms___helper_module_transforms_7.11.0.tgz";
+      name = "_babel_helper_module_transforms___helper_module_transforms_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_helper_module_transforms___helper_module_transforms_7.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz";
-        sha1 = "b16f250229e47211abdd84b34b64737c2ab2d359";
+        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";
       };
     }
     {
@@ -194,35 +194,35 @@
       };
     }
     {
-      name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.11.4.tgz";
+      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.11.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz";
-        sha1 = "4474ea9f7438f18575e30b0cac784045b402a12d";
+        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.10.4.tgz";
+      name = "_babel_helper_replace_supers___helper_replace_supers_7.12.5.tgz";
       path = fetchurl {
-        name = "_babel_helper_replace_supers___helper_replace_supers_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz";
-        sha1 = "d585cd9388ea06e6031e4cd44b6713cbead9e6cf";
+        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.10.4.tgz";
+      name = "_babel_helper_simple_access___helper_simple_access_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_helper_simple_access___helper_simple_access_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz";
-        sha1 = "0f5ccda2945277a2a7a2d3a821e15395edcf3461";
+        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_skip_transparent_expression_wrappers___helper_skip_transparent_expression_wrappers_7.11.0.tgz";
+      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.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz";
-        sha1 = "eec162f112c2f58d3af0af125e3bb57665146729";
+        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";
       };
     }
     {
@@ -242,19 +242,27 @@
       };
     }
     {
-      name = "_babel_helper_wrap_function___helper_wrap_function_7.10.4.tgz";
+      name = "_babel_helper_validator_option___helper_validator_option_7.12.1.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_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_helpers___helpers_7.10.4.tgz";
+      name = "_babel_helper_wrap_function___helper_wrap_function_7.12.3.tgz";
       path = fetchurl {
-        name = "_babel_helpers___helpers_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.4.tgz";
-        sha1 = "2abeb0d721aff7c0a97376b9e1f6f65d7a475044";
+        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.12.5.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";
       };
     }
     {
@@ -266,19 +274,19 @@
       };
     }
     {
-      name = "_babel_parser___parser_7.11.5.tgz";
+      name = "_babel_parser___parser_7.12.5.tgz";
       path = fetchurl {
-        name = "_babel_parser___parser_7.11.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.5.tgz";
-        sha1 = "c7ff6303df71080ec7a4f5b8c003c58f1cf51037";
+        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_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.10.5.tgz";
+      name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.10.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz";
-        sha1 = "3491cabf2f7c179ab820606cec27fed15e0e8558";
+        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";
       };
     }
     {
@@ -290,11 +298,11 @@
       };
     }
     {
-      name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.10.4.tgz";
+      name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz";
-        sha1 = "a33bf632da390a59c7a8c570045d1115cd778807";
+        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";
       };
     }
     {
@@ -306,35 +314,35 @@
       };
     }
     {
-      name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.10.4.tgz";
+      name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz";
-        sha1 = "ba57a26cb98b37741e9d5bca1b8b0ddf8291f17e";
+        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_export_namespace_from___plugin_proposal_export_namespace_from_7.10.4.tgz";
+      name = "_babel_plugin_proposal_export_namespace_from___plugin_proposal_export_namespace_from_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_export_namespace_from___plugin_proposal_export_namespace_from_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz";
-        sha1 = "570d883b91031637b3e2958eea3c438e62c05f54";
+        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_json_strings___plugin_proposal_json_strings_7.10.4.tgz";
+      name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz";
-        sha1 = "593e59c63528160233bd321b1aebe0820c2341db";
+        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_logical_assignment_operators___plugin_proposal_logical_assignment_operators_7.11.0.tgz";
+      name = "_babel_plugin_proposal_logical_assignment_operators___plugin_proposal_logical_assignment_operators_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_logical_assignment_operators___plugin_proposal_logical_assignment_operators_7.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz";
-        sha1 = "9f80e482c03083c87125dee10026b58527ea20c8";
+        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";
       };
     }
     {
@@ -346,11 +354,11 @@
       };
     }
     {
-      name = "_babel_plugin_proposal_nullish_coalescing_operator___plugin_proposal_nullish_coalescing_operator_7.10.4.tgz";
+      name = "_babel_plugin_proposal_nullish_coalescing_operator___plugin_proposal_nullish_coalescing_operator_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_nullish_coalescing_operator___plugin_proposal_nullish_coalescing_operator_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz";
-        sha1 = "02a7e961fc32e6d5b2db0649e01bf80ddee7e04a";
+        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";
       };
     }
     {
@@ -362,27 +370,27 @@
       };
     }
     {
-      name = "_babel_plugin_proposal_numeric_separator___plugin_proposal_numeric_separator_7.10.4.tgz";
+      name = "_babel_plugin_proposal_numeric_separator___plugin_proposal_numeric_separator_7.12.5.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_numeric_separator___plugin_proposal_numeric_separator_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz";
-        sha1 = "ce1590ff0a65ad12970a609d78855e9a4c1aef06";
+        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_object_rest_spread___plugin_proposal_object_rest_spread_7.11.0.tgz";
+      name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz";
-        sha1 = "bd81f95a1f746760ea43b6c2d3d62b11790ad0af";
+        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_optional_catch_binding___plugin_proposal_optional_catch_binding_7.10.4.tgz";
+      name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz";
-        sha1 = "31c938309d24a78a49d68fdabffaa863758554dd";
+        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";
       };
     }
     {
@@ -394,27 +402,27 @@
       };
     }
     {
-      name = "_babel_plugin_proposal_optional_chaining___plugin_proposal_optional_chaining_7.11.0.tgz";
+      name = "_babel_plugin_proposal_optional_chaining___plugin_proposal_optional_chaining_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_optional_chaining___plugin_proposal_optional_chaining_7.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz";
-        sha1 = "de5866d0646f6afdaab8a566382fe3a221755076";
+        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.10.4.tgz";
+      name = "_babel_plugin_proposal_private_methods___plugin_proposal_private_methods_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_private_methods___plugin_proposal_private_methods_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz";
-        sha1 = "b160d972b8fdba5c7d111a145fc8c421fc2a6909";
+        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_unicode_property_regex___plugin_proposal_unicode_property_regex_7.10.4.tgz";
+      name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz";
-        sha1 = "4483cda53041ce3413b7fe2f00022665ddfaa75d";
+        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";
       };
     }
     {
@@ -426,19 +434,19 @@
       };
     }
     {
-      name = "_babel_plugin_syntax_class_properties___plugin_syntax_class_properties_7.10.4.tgz";
+      name = "_babel_plugin_syntax_class_properties___plugin_syntax_class_properties_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_class_properties___plugin_syntax_class_properties_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz";
-        sha1 = "6644e6a0baa55a61f9e3231f6c9eeb6ee46c124c";
+        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_decorators___plugin_syntax_decorators_7.10.4.tgz";
+      name = "_babel_plugin_syntax_decorators___plugin_syntax_decorators_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_decorators___plugin_syntax_decorators_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.10.4.tgz";
-        sha1 = "6853085b2c429f9d322d02f5a635018cdeb2360c";
+        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";
       };
     }
     {
@@ -458,11 +466,11 @@
       };
     }
     {
-      name = "_babel_plugin_syntax_flow___plugin_syntax_flow_7.10.4.tgz";
+      name = "_babel_plugin_syntax_flow___plugin_syntax_flow_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_flow___plugin_syntax_flow_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.4.tgz";
-        sha1 = "53351dd7ae01995e567d04ce42af1a6e0ba846a6";
+        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";
       };
     }
     {
@@ -474,11 +482,11 @@
       };
     }
     {
-      name = "_babel_plugin_syntax_jsx___plugin_syntax_jsx_7.10.4.tgz";
+      name = "_babel_plugin_syntax_jsx___plugin_syntax_jsx_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_jsx___plugin_syntax_jsx_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz";
-        sha1 = "39abaae3cbf710c4373d8429484e6ba21340166c";
+        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";
       };
     }
     {
@@ -530,99 +538,99 @@
       };
     }
     {
-      name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.10.4.tgz";
+      name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz";
-        sha1 = "4bbeb8917b54fcf768364e0a81f560e33a3ef57d";
+        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_typescript___plugin_syntax_typescript_7.10.4.tgz";
+      name = "_babel_plugin_syntax_typescript___plugin_syntax_typescript_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_typescript___plugin_syntax_typescript_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.4.tgz";
-        sha1 = "2f55e770d3501e83af217d782cb7517d7bb34d25";
+        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_transform_arrow_functions___plugin_transform_arrow_functions_7.10.4.tgz";
+      name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz";
-        sha1 = "e22960d77e697c74f41c501d44d73dbf8a6a64cd";
+        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_async_to_generator___plugin_transform_async_to_generator_7.10.4.tgz";
+      name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz";
-        sha1 = "41a5017e49eb6f3cda9392a51eef29405b245a37";
+        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_block_scoped_functions___plugin_transform_block_scoped_functions_7.10.4.tgz";
+      name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz";
-        sha1 = "1afa595744f75e43a91af73b0d998ecfe4ebc2e8";
+        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_scoping___plugin_transform_block_scoping_7.11.1.tgz";
+      name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.11.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz";
-        sha1 = "5b7efe98852bef8d652c0b28144cd93a9e4b5215";
+        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_classes___plugin_transform_classes_7.10.4.tgz";
+      name = "_babel_plugin_transform_classes___plugin_transform_classes_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_classes___plugin_transform_classes_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz";
-        sha1 = "405136af2b3e218bc4a1926228bc917ab1a0adc7";
+        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_computed_properties___plugin_transform_computed_properties_7.10.4.tgz";
+      name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz";
-        sha1 = "9ded83a816e82ded28d52d4b4ecbdd810cdfc0eb";
+        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_destructuring___plugin_transform_destructuring_7.10.4.tgz";
+      name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz";
-        sha1 = "70ddd2b3d1bea83d01509e9bb25ddb3a74fc85e5";
+        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_dotall_regex___plugin_transform_dotall_regex_7.10.4.tgz";
+      name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz";
-        sha1 = "469c2062105c1eb6a040eaf4fac4b488078395ee";
+        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_duplicate_keys___plugin_transform_duplicate_keys_7.10.4.tgz";
+      name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz";
-        sha1 = "697e50c9fee14380fe843d1f306b295617431e47";
+        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_exponentiation_operator___plugin_transform_exponentiation_operator_7.10.4.tgz";
+      name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz";
-        sha1 = "5ae338c57f8cf4001bdb35607ae66b92d665af2e";
+        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";
       };
     }
     {
@@ -634,115 +642,115 @@
       };
     }
     {
-      name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.10.4.tgz";
+      name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz";
-        sha1 = "c08892e8819d3a5db29031b115af511dbbfebae9";
+        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_function_name___plugin_transform_function_name_7.10.4.tgz";
+      name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz";
-        sha1 = "6a467880e0fc9638514ba369111811ddbe2644b7";
+        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_literals___plugin_transform_literals_7.10.4.tgz";
+      name = "_babel_plugin_transform_literals___plugin_transform_literals_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_literals___plugin_transform_literals_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz";
-        sha1 = "9f42ba0841100a135f22712d0e391c462f571f3c";
+        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_member_expression_literals___plugin_transform_member_expression_literals_7.10.4.tgz";
+      name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz";
-        sha1 = "b1ec44fcf195afcb8db2c62cd8e551c881baf8b7";
+        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_modules_amd___plugin_transform_modules_amd_7.10.5.tgz";
+      name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.10.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz";
-        sha1 = "1b9cddaf05d9e88b3aad339cb3e445c4f020a9b1";
+        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_commonjs___plugin_transform_modules_commonjs_7.10.4.tgz";
+      name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz";
-        sha1 = "66667c3eeda1ebf7896d41f1f16b17105a2fbca0";
+        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_systemjs___plugin_transform_modules_systemjs_7.10.5.tgz";
+      name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.10.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz";
-        sha1 = "6270099c854066681bae9e05f87e1b9cadbe8c85";
+        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_umd___plugin_transform_modules_umd_7.10.4.tgz";
+      name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz";
-        sha1 = "9a8481fe81b824654b3a0b65da3df89f3d21839e";
+        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_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.10.4.tgz";
+      name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz";
-        sha1 = "78b4d978810b6f3bcf03f9e318f2fc0ed41aecb6";
+        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_new_target___plugin_transform_new_target_7.10.4.tgz";
+      name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz";
-        sha1 = "9097d753cb7b024cb7381a3b2e52e9513a9c6888";
+        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_object_super___plugin_transform_object_super_7.10.4.tgz";
+      name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz";
-        sha1 = "d7146c4d139433e7a6526f888c667e314a093894";
+        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_parameters___plugin_transform_parameters_7.10.5.tgz";
+      name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.10.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz";
-        sha1 = "59d339d58d0b1950435f4043e74e2510005e2c4a";
+        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_property_literals___plugin_transform_property_literals_7.10.4.tgz";
+      name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz";
-        sha1 = "f6fe54b6590352298785b83edd815d214c42e3c0";
+        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_react_constant_elements___plugin_transform_react_constant_elements_7.10.4.tgz";
+      name = "_babel_plugin_transform_react_constant_elements___plugin_transform_react_constant_elements_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_react_constant_elements___plugin_transform_react_constant_elements_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.10.4.tgz";
-        sha1 = "0f485260bf1c29012bb973e7e404749eaac12c9e";
+        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";
       };
     }
     {
@@ -754,67 +762,67 @@
       };
     }
     {
-      name = "_babel_plugin_transform_react_display_name___plugin_transform_react_display_name_7.10.4.tgz";
+      name = "_babel_plugin_transform_react_display_name___plugin_transform_react_display_name_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_react_display_name___plugin_transform_react_display_name_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz";
-        sha1 = "b5795f4e3e3140419c3611b7a2a3832b9aef328d";
+        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_jsx_development___plugin_transform_react_jsx_development_7.11.5.tgz";
+      name = "_babel_plugin_transform_react_jsx_development___plugin_transform_react_jsx_development_7.12.5.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_react_jsx_development___plugin_transform_react_jsx_development_7.11.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.11.5.tgz";
-        sha1 = "e1439e6a57ee3d43e9f54ace363fb29cefe5d7b6";
+        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_self___plugin_transform_react_jsx_self_7.10.4.tgz";
+      name = "_babel_plugin_transform_react_jsx_self___plugin_transform_react_jsx_self_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_react_jsx_self___plugin_transform_react_jsx_self_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz";
-        sha1 = "cd301a5fed8988c182ed0b9d55e9bd6db0bd9369";
+        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_source___plugin_transform_react_jsx_source_7.10.5.tgz";
+      name = "_babel_plugin_transform_react_jsx_source___plugin_transform_react_jsx_source_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_react_jsx_source___plugin_transform_react_jsx_source_7.10.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.5.tgz";
-        sha1 = "34f1779117520a779c054f2cdd9680435b9222b4";
+        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.10.4.tgz";
+      name = "_babel_plugin_transform_react_jsx___plugin_transform_react_jsx_7.12.5.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_react_jsx___plugin_transform_react_jsx_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz";
-        sha1 = "673c9f913948764a4421683b2bef2936968fddf2";
+        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_pure_annotations___plugin_transform_react_pure_annotations_7.10.4.tgz";
+      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.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz";
-        sha1 = "3eefbb73db94afbc075f097523e445354a1c6501";
+        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.10.4.tgz";
+      name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz";
-        sha1 = "2015e59d839074e76838de2159db421966fd8b63";
+        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_reserved_words___plugin_transform_reserved_words_7.10.4.tgz";
+      name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz";
-        sha1 = "8f2682bcdcef9ed327e1b0861585d7013f8a54dd";
+        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";
       };
     }
     {
@@ -826,67 +834,67 @@
       };
     }
     {
-      name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.10.4.tgz";
+      name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz";
-        sha1 = "9fd25ec5cdd555bb7f473e5e6ee1c971eede4dd6";
+        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_spread___plugin_transform_spread_7.11.0.tgz";
+      name = "_babel_plugin_transform_spread___plugin_transform_spread_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_spread___plugin_transform_spread_7.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz";
-        sha1 = "fa84d300f5e4f57752fe41a6d1b3c554f13f17cc";
+        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_sticky_regex___plugin_transform_sticky_regex_7.10.4.tgz";
+      name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz";
-        sha1 = "8f3889ee8657581130a29d9cc91d7c73b7c4a28d";
+        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_template_literals___plugin_transform_template_literals_7.10.5.tgz";
+      name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.10.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz";
-        sha1 = "78bc5d626a6642db3312d9d0f001f5e7639fde8c";
+        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_typeof_symbol___plugin_transform_typeof_symbol_7.10.4.tgz";
+      name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz";
-        sha1 = "9509f1a7eec31c4edbffe137c16cc33ff0bc5bfc";
+        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_typescript___plugin_transform_typescript_7.11.0.tgz";
+      name = "_babel_plugin_transform_typescript___plugin_transform_typescript_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_typescript___plugin_transform_typescript_7.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.11.0.tgz";
-        sha1 = "2b4879676af37342ebb278216dd090ac67f13abb";
+        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_unicode_escapes___plugin_transform_unicode_escapes_7.10.4.tgz";
+      name = "_babel_plugin_transform_unicode_escapes___plugin_transform_unicode_escapes_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_unicode_escapes___plugin_transform_unicode_escapes_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz";
-        sha1 = "feae523391c7651ddac115dae0a9d06857892007";
+        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_regex___plugin_transform_unicode_regex_7.10.4.tgz";
+      name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz";
-        sha1 = "e56d71f9282fac6db09c82742055576d5e6d80a8";
+        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";
       };
     }
     {
@@ -898,11 +906,11 @@
       };
     }
     {
-      name = "_babel_preset_env___preset_env_7.11.5.tgz";
+      name = "_babel_preset_env___preset_env_7.12.1.tgz";
       path = fetchurl {
-        name = "_babel_preset_env___preset_env_7.11.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.11.5.tgz";
-        sha1 = "18cb4b9379e3e92ffea92c07471a99a2914e4272";
+        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";
       };
     }
     {
@@ -922,11 +930,11 @@
       };
     }
     {
-      name = "_babel_preset_react___preset_react_7.10.4.tgz";
+      name = "_babel_preset_react___preset_react_7.12.5.tgz";
       path = fetchurl {
-        name = "_babel_preset_react___preset_react_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.10.4.tgz";
-        sha1 = "92e8a66d816f9911d11d4cc935be67adfc82dbcf";
+        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";
       };
     }
     {
@@ -938,11 +946,11 @@
       };
     }
     {
-      name = "_babel_runtime_corejs3___runtime_corejs3_7.11.2.tgz";
+      name = "_babel_runtime_corejs3___runtime_corejs3_7.12.5.tgz";
       path = fetchurl {
-        name = "_babel_runtime_corejs3___runtime_corejs3_7.11.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.11.2.tgz";
-        sha1 = "02c3029743150188edeb66541195f54600278419";
+        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";
       };
     }
     {
@@ -954,11 +962,11 @@
       };
     }
     {
-      name = "_babel_runtime___runtime_7.11.2.tgz";
+      name = "_babel_runtime___runtime_7.12.5.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.12.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz";
+        sha1 = "410e7e487441e1b360c29be715d870d9b985882e";
       };
     }
     {
@@ -970,19 +978,19 @@
       };
     }
     {
-      name = "_babel_traverse___traverse_7.11.5.tgz";
+      name = "_babel_traverse___traverse_7.12.5.tgz";
       path = fetchurl {
-        name = "_babel_traverse___traverse_7.11.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.5.tgz";
-        sha1 = "be777b93b518eb6d76ee2e1ea1d143daa11e61c3";
+        name = "_babel_traverse___traverse_7.12.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.5.tgz";
+        sha1 = "78a0c68c8e8a35e4cacfd31db8bb303d5606f095";
       };
     }
     {
-      name = "_babel_types___types_7.11.5.tgz";
+      name = "_babel_types___types_7.12.6.tgz";
       path = fetchurl {
-        name = "_babel_types___types_7.11.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.11.5.tgz";
-        sha1 = "d9de577d01252d77c6800cee039ee64faf75662d";
+        name = "_babel_types___types_7.12.6.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.12.6.tgz";
+        sha1 = "ae0e55ef1cce1fbc881cd26f8234eb3e657edc96";
       };
     }
     {
@@ -1034,11 +1042,11 @@
       };
     }
     {
-      name = "_fortawesome_react_fontawesome___react_fontawesome_0.1.11.tgz";
+      name = "_fortawesome_react_fontawesome___react_fontawesome_0.1.12.tgz";
       path = fetchurl {
-        name = "_fortawesome_react_fontawesome___react_fontawesome_0.1.11.tgz";
-        url  = "https://registry.yarnpkg.com/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.11.tgz";
-        sha1 = "c1a95a2bdb6a18fa97b355a563832e248bf6ef4a";
+        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";
       };
     }
     {
@@ -1162,11 +1170,11 @@
       };
     }
     {
-      name = "_jest_types___types_25.5.0.tgz";
+      name = "_jest_types___types_26.6.2.tgz";
       path = fetchurl {
-        name = "_jest_types___types_25.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz";
-        sha1 = "4d6a4793f7b9599fc3680877b856a97dbccf2a9d";
+        name = "_jest_types___types_26.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz";
+        sha1 = "bef5a532030e1d88a2f5a6d933f84e97226ed48e";
       };
     }
     {
@@ -1218,11 +1226,11 @@
       };
     }
     {
-      name = "_sinonjs_samsam___samsam_5.2.0.tgz";
+      name = "_sinonjs_samsam___samsam_5.3.0.tgz";
       path = fetchurl {
-        name = "_sinonjs_samsam___samsam_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-5.2.0.tgz";
-        sha1 = "fcff83ab86f83b5498f4a967869c079408d9b5eb";
+        name = "_sinonjs_samsam___samsam_5.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-5.3.0.tgz";
+        sha1 = "1d2f0743dc54bf13fe9d508baefacdffa25d4329";
       };
     }
     {
@@ -1354,11 +1362,11 @@
       };
     }
     {
-      name = "_types_babel__core___babel__core_7.1.10.tgz";
+      name = "_types_babel__core___babel__core_7.1.12.tgz";
       path = fetchurl {
-        name = "_types_babel__core___babel__core_7.1.10.tgz";
-        url  = "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.10.tgz";
-        sha1 = "ca58fc195dd9734e77e57c6f2df565623636ab40";
+        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";
       };
     }
     {
@@ -1370,11 +1378,11 @@
       };
     }
     {
-      name = "_types_babel__template___babel__template_7.0.3.tgz";
+      name = "_types_babel__template___babel__template_7.4.0.tgz";
       path = fetchurl {
-        name = "_types_babel__template___babel__template_7.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.3.tgz";
-        sha1 = "b8aaeba0a45caca7b56a5de9459872dde3727214";
+        name = "_types_babel__template___babel__template_7.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.0.tgz";
+        sha1 = "0c888dd70b3ee9eebb6e4f200e809da0076262be";
       };
     }
     {
@@ -1402,11 +1410,11 @@
       };
     }
     {
-      name = "_types_enzyme___enzyme_3.10.7.tgz";
+      name = "_types_enzyme___enzyme_3.10.8.tgz";
       path = fetchurl {
-        name = "_types_enzyme___enzyme_3.10.7.tgz";
-        url  = "https://registry.yarnpkg.com/@types/enzyme/-/enzyme-3.10.7.tgz";
-        sha1 = "ebdf3b972d293095e09af479e36c772025285e3a";
+        name = "_types_enzyme___enzyme_3.10.8.tgz";
+        url  = "https://registry.yarnpkg.com/@types/enzyme/-/enzyme-3.10.8.tgz";
+        sha1 = "ad7ac9d3af3de6fd0673773123fafbc63db50d42";
       };
     }
     {
@@ -1466,19 +1474,27 @@
       };
     }
     {
-      name = "_types_jest___jest_26.0.14.tgz";
+      name = "_types_istanbul_reports___istanbul_reports_3.0.0.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_jest___jest_26.0.15.tgz";
       path = fetchurl {
-        name = "_types_jest___jest_26.0.14.tgz";
-        url  = "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.14.tgz";
-        sha1 = "078695f8f65cb55c5a98450d65083b2b73e5a3f3";
+        name = "_types_jest___jest_26.0.15.tgz";
+        url  = "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.15.tgz";
+        sha1 = "12e02c0372ad0548e07b9f4e19132b834cb1effe";
       };
     }
     {
-      name = "_types_jquery___jquery_3.5.2.tgz";
+      name = "_types_jquery___jquery_3.5.4.tgz";
       path = fetchurl {
-        name = "_types_jquery___jquery_3.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/@types/jquery/-/jquery-3.5.2.tgz";
-        sha1 = "e17c1756ecf7bbb431766c6761674a5d1de16579";
+        name = "_types_jquery___jquery_3.5.4.tgz";
+        url  = "https://registry.yarnpkg.com/@types/jquery/-/jquery-3.5.4.tgz";
+        sha1 = "e923f7d05ca790530f17f80a3b89bc28853fa17f";
       };
     }
     {
@@ -1514,19 +1530,19 @@
       };
     }
     {
-      name = "_types_node___node_14.11.5.tgz";
+      name = "_types_node___node_14.14.8.tgz";
       path = fetchurl {
-        name = "_types_node___node_14.11.5.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-14.11.5.tgz";
-        sha1 = "fecad41c041cae7f2404ad4b2d0742fdb628b305";
+        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_12.12.64.tgz";
+      name = "_types_node___node_12.19.5.tgz";
       path = fetchurl {
-        name = "_types_node___node_12.12.64.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-12.12.64.tgz";
-        sha1 = "e3b336dc4c6ba52c6b59e3bd69a100347c20b1c0";
+        name = "_types_node___node_12.19.5.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-12.19.5.tgz";
+        sha1 = "9be3946136e818597c71c62d04240d0602c645d4";
       };
     }
     {
@@ -1570,11 +1586,11 @@
       };
     }
     {
-      name = "_types_react_dom___react_dom_16.9.8.tgz";
+      name = "_types_react_dom___react_dom_16.9.9.tgz";
       path = fetchurl {
-        name = "_types_react_dom___react_dom_16.9.8.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.8.tgz";
-        sha1 = "fe4c1e11dfc67155733dfa6aa65108b4971cb423";
+        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";
       };
     }
     {
@@ -1594,19 +1610,19 @@
       };
     }
     {
-      name = "_types_react___react_16.9.51.tgz";
+      name = "_types_react___react_16.9.56.tgz";
       path = fetchurl {
-        name = "_types_react___react_16.9.51.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react/-/react-16.9.51.tgz";
-        sha1 = "f8aa51ffa9996f1387f63686696d9b59713d2b60";
+        name = "_types_react___react_16.9.56.tgz";
+        url  = "https://registry.yarnpkg.com/@types/react/-/react-16.9.56.tgz";
+        sha1 = "ea25847b53c5bec064933095fc366b1462e2adf0";
       };
     }
     {
-      name = "_types_reactstrap___reactstrap_8.5.1.tgz";
+      name = "_types_reactstrap___reactstrap_8.7.2.tgz";
       path = fetchurl {
-        name = "_types_reactstrap___reactstrap_8.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/reactstrap/-/reactstrap-8.5.1.tgz";
-        sha1 = "bd01ed7b14b9aeb476c0b8e195443dda98ac6156";
+        name = "_types_reactstrap___reactstrap_8.7.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/reactstrap/-/reactstrap-8.7.2.tgz";
+        sha1 = "0ab86f35e472e8f2002eaf8c7a42193c9cea6add";
       };
     }
     {
@@ -1674,11 +1690,11 @@
       };
     }
     {
-      name = "_types_yargs___yargs_15.0.7.tgz";
+      name = "_types_yargs___yargs_15.0.10.tgz";
       path = fetchurl {
-        name = "_types_yargs___yargs_15.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.7.tgz";
-        sha1 = "dad50a7a234a35ef9460737a56024287a3de1d2b";
+        name = "_types_yargs___yargs_15.0.10.tgz";
+        url  = "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.10.tgz";
+        sha1 = "0fe3c8173a0d5c3e780b389050140c3f5ea6ea74";
       };
     }
     {
@@ -2002,11 +2018,11 @@
       };
     }
     {
-      name = "ajv___ajv_6.12.5.tgz";
+      name = "ajv___ajv_6.12.6.tgz";
       path = fetchurl {
-        name = "ajv___ajv_6.12.5.tgz";
-        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.5.tgz";
-        sha1 = "19b0e8bae8f476e5ba666300387775fb1a00a4da";
+        name = "ajv___ajv_6.12.6.tgz";
+        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz";
+        sha1 = "baf5a62e802b07d977034586f8c3baf5adf26df4";
       };
     }
     {
@@ -2258,19 +2274,19 @@
       };
     }
     {
-      name = "array.prototype.flat___array.prototype.flat_1.2.3.tgz";
+      name = "array.prototype.flat___array.prototype.flat_1.2.4.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.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.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";
       };
     }
     {
@@ -2410,19 +2426,19 @@
       };
     }
     {
-      name = "aws4___aws4_1.10.1.tgz";
+      name = "aws4___aws4_1.11.0.tgz";
       path = fetchurl {
-        name = "aws4___aws4_1.10.1.tgz";
-        url  = "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz";
-        sha1 = "e1e82e4f3e999e2cfd61b161280d16a111f86428";
+        name = "aws4___aws4_1.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz";
+        sha1 = "d61f46d83b2519250e2784daf5b09479a8b41c59";
       };
     }
     {
-      name = "axe_core___axe_core_3.5.5.tgz";
+      name = "axe_core___axe_core_4.1.0.tgz";
       path = fetchurl {
-        name = "axe_core___axe_core_3.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/axe-core/-/axe-core-3.5.5.tgz";
-        sha1 = "84315073b53fa3c0c51676c588d59da09a192227";
+        name = "axe_core___axe_core_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/axe-core/-/axe-core-4.1.0.tgz";
+        sha1 = "93d395e6262ecdde5cb52a5d06533d0a0c7bb4cd";
       };
     }
     {
@@ -2506,11 +2522,11 @@
       };
     }
     {
-      name = "babel_plugin_named_asset_import___babel_plugin_named_asset_import_0.3.6.tgz";
+      name = "babel_plugin_named_asset_import___babel_plugin_named_asset_import_0.3.7.tgz";
       path = fetchurl {
-        name = "babel_plugin_named_asset_import___babel_plugin_named_asset_import_0.3.6.tgz";
-        url  = "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.6.tgz";
-        sha1 = "c9750a1b38d85112c9e166bf3ef7c5dbc605f4be";
+        name = "babel_plugin_named_asset_import___babel_plugin_named_asset_import_0.3.7.tgz";
+        url  = "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.7.tgz";
+        sha1 = "156cd55d3f1228a5765774340937afc8398067dd";
       };
     }
     {
@@ -2578,11 +2594,11 @@
       };
     }
     {
-      name = "base64_js___base64_js_1.3.1.tgz";
+      name = "base64_js___base64_js_1.5.1.tgz";
       path = fetchurl {
-        name = "base64_js___base64_js_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz";
-        sha1 = "58ece8cb75dd07e71ed08c736abc5fac4dbf8df1";
+        name = "base64_js___base64_js_1.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz";
+        sha1 = "1b1b440160a5bf7ad40b650f095963481903930a";
       };
     }
     {
@@ -2690,11 +2706,11 @@
       };
     }
     {
-      name = "bootstrap___bootstrap_4.5.2.tgz";
+      name = "bootstrap___bootstrap_4.5.3.tgz";
       path = fetchurl {
-        name = "bootstrap___bootstrap_4.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.5.2.tgz";
-        sha1 = "a85c4eda59155f0d71186b6e6ad9b875813779ab";
+        name = "bootstrap___bootstrap_4.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.5.3.tgz";
+        sha1 = "c6a72b355aaf323920be800246a6e4ef30997fe6";
       };
     }
     {
@@ -2770,11 +2786,11 @@
       };
     }
     {
-      name = "browserify_rsa___browserify_rsa_4.0.1.tgz";
+      name = "browserify_rsa___browserify_rsa_4.1.0.tgz";
       path = fetchurl {
-        name = "browserify_rsa___browserify_rsa_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz";
-        sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524";
+        name = "browserify_rsa___browserify_rsa_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz";
+        sha1 = "b2fd06b5b75ae297f7ce2dc651f918f5be158c8d";
       };
     }
     {
@@ -2802,11 +2818,11 @@
       };
     }
     {
-      name = "browserslist___browserslist_4.14.5.tgz";
+      name = "browserslist___browserslist_4.14.7.tgz";
       path = fetchurl {
-        name = "browserslist___browserslist_4.14.5.tgz";
-        url  = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.5.tgz";
-        sha1 = "1c751461a102ddc60e40993639b709be7f2c4015";
+        name = "browserslist___browserslist_4.14.7.tgz";
+        url  = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.7.tgz";
+        sha1 = "c071c1b3622c1c2e790799a37bb09473a4351cb6";
       };
     }
     {
@@ -2898,6 +2914,14 @@
       };
     }
     {
+      name = "call_bind___call_bind_1.0.0.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_me_maybe___call_me_maybe_1.0.1.tgz";
       path = fetchurl {
         name = "call_me_maybe___call_me_maybe_1.0.1.tgz";
@@ -2970,11 +2994,11 @@
       };
     }
     {
-      name = "caniuse_lite___caniuse_lite_1.0.30001146.tgz";
+      name = "caniuse_lite___caniuse_lite_1.0.30001159.tgz";
       path = fetchurl {
-        name = "caniuse_lite___caniuse_lite_1.0.30001146.tgz";
-        url  = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001146.tgz";
-        sha1 = "c61fcb1474520c1462913689201fb292ba6f447c";
+        name = "caniuse_lite___caniuse_lite_1.0.30001159.tgz";
+        url  = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001159.tgz";
+        sha1 = "bebde28f893fa9594dadcaa7d6b8e2aa0299df20";
       };
     }
     {
@@ -3018,14 +3042,6 @@
       };
     }
     {
-      name = "chalk___chalk_3.0.0.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.0.tgz";
       path = fetchurl {
         name = "chalk___chalk_4.1.0.tgz";
@@ -3058,11 +3074,11 @@
       };
     }
     {
-      name = "chokidar___chokidar_3.4.2.tgz";
+      name = "chokidar___chokidar_3.4.3.tgz";
       path = fetchurl {
-        name = "chokidar___chokidar_3.4.2.tgz";
-        url  = "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz";
-        sha1 = "38dc8e658dec3809741eb3ef7bb0a47fe424232d";
+        name = "chokidar___chokidar_3.4.3.tgz";
+        url  = "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz";
+        sha1 = "c1df38231448e45ca4ac588e6c79573ba6a57d5b";
       };
     }
     {
@@ -3234,19 +3250,19 @@
       };
     }
     {
-      name = "color_string___color_string_1.5.3.tgz";
+      name = "color_string___color_string_1.5.4.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.4.tgz";
+        url  = "https://registry.yarnpkg.com/color-string/-/color-string-1.5.4.tgz";
+        sha1 = "dd51cd25cfee953d138fe4002372cc3d0e504cb6";
       };
     }
     {
-      name = "color___color_3.1.2.tgz";
+      name = "color___color_3.1.3.tgz";
       path = fetchurl {
-        name = "color___color_3.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz";
-        sha1 = "68148e7f85d41ad7649c5fa8c8106f098d229e10";
+        name = "color___color_3.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz";
+        sha1 = "ca67fb4e7b97d611dcde39eceed422067d91596e";
       };
     }
     {
@@ -3354,11 +3370,11 @@
       };
     }
     {
-      name = "confusing_browser_globals___confusing_browser_globals_1.0.9.tgz";
+      name = "confusing_browser_globals___confusing_browser_globals_1.0.10.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 = "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";
       };
     }
     {
@@ -3466,19 +3482,19 @@
       };
     }
     {
-      name = "core_js_compat___core_js_compat_3.6.5.tgz";
+      name = "core_js_compat___core_js_compat_3.7.0.tgz";
       path = fetchurl {
-        name = "core_js_compat___core_js_compat_3.6.5.tgz";
-        url  = "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.5.tgz";
-        sha1 = "2a51d9a4e25dfd6e690251aa81f99e3c05481f1c";
+        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_pure___core_js_pure_3.6.5.tgz";
+      name = "core_js_pure___core_js_pure_3.7.0.tgz";
       path = fetchurl {
-        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_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";
       };
     }
     {
@@ -3490,11 +3506,11 @@
       };
     }
     {
-      name = "core_js___core_js_3.6.5.tgz";
+      name = "core_js___core_js_3.7.0.tgz";
       path = fetchurl {
-        name = "core_js___core_js_3.6.5.tgz";
-        url  = "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz";
-        sha1 = "7395dc273af37fb2e50e9bd3d9fe841285231d1a";
+        name = "core_js___core_js_3.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/core-js/-/core-js-3.7.0.tgz";
+        sha1 = "b0a761a02488577afbf97179e4681bf49568520f";
       };
     }
     {
@@ -3666,11 +3682,11 @@
       };
     }
     {
-      name = "css_tree___css_tree_1.0.0_alpha.39.tgz";
+      name = "css_tree___css_tree_1.1.1.tgz";
       path = fetchurl {
-        name = "css_tree___css_tree_1.0.0_alpha.39.tgz";
-        url  = "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.39.tgz";
-        sha1 = "2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb";
+        name = "css_tree___css_tree_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.1.tgz";
+        sha1 = "30b8c0161d9fb4e9e2141d762589b6ec2faebd2e";
       };
     }
     {
@@ -3682,11 +3698,11 @@
       };
     }
     {
-      name = "css_what___css_what_3.4.1.tgz";
+      name = "css_what___css_what_3.4.2.tgz";
       path = fetchurl {
-        name = "css_what___css_what_3.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/css-what/-/css-what-3.4.1.tgz";
-        sha1 = "81cb70b609e4b1351b1e54cbc90fd9c54af86e2e";
+        name = "css_what___css_what_3.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz";
+        sha1 = "ea7026fcb01777edbde52124e21f327e7ae950e4";
       };
     }
     {
@@ -3778,11 +3794,11 @@
       };
     }
     {
-      name = "csso___csso_4.0.3.tgz";
+      name = "csso___csso_4.1.1.tgz";
       path = fetchurl {
-        name = "csso___csso_4.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/csso/-/csso-4.0.3.tgz";
-        sha1 = "0d9985dc852c7cc2b2cacfbbe1079014d1a8e903";
+        name = "csso___csso_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/csso/-/csso-4.1.1.tgz";
+        sha1 = "e0cb02d6eb3af1df719222048e4359efd662af13";
       };
     }
     {
@@ -3818,11 +3834,11 @@
       };
     }
     {
-      name = "csstype___csstype_3.0.3.tgz";
+      name = "csstype___csstype_3.0.5.tgz";
       path = fetchurl {
-        name = "csstype___csstype_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/csstype/-/csstype-3.0.3.tgz";
-        sha1 = "2b410bbeba38ba9633353aff34b05d9755d065f8";
+        name = "csstype___csstype_3.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/csstype/-/csstype-3.0.5.tgz";
+        sha1 = "7fdec6a28a67ae18647c51668a9ff95bb2fa7bb8";
       };
     }
     {
@@ -3882,19 +3898,19 @@
       };
     }
     {
-      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";
       };
     }
     {
-      name = "debug___debug_4.2.0.tgz";
+      name = "debug___debug_4.3.1.tgz";
       path = fetchurl {
-        name = "debug___debug_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz";
-        sha1 = "7f150f93920e94c58f5574c2fd01a3110effe7f1";
+        name = "debug___debug_4.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz";
+        sha1 = "f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee";
       };
     }
     {
@@ -4050,11 +4066,11 @@
       };
     }
     {
-      name = "diff_sequences___diff_sequences_25.2.6.tgz";
+      name = "diff_sequences___diff_sequences_26.6.2.tgz";
       path = fetchurl {
-        name = "diff_sequences___diff_sequences_25.2.6.tgz";
-        url  = "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz";
-        sha1 = "5f467c00edd35352b7bca46d7927d60e687a76dd";
+        name = "diff_sequences___diff_sequences_26.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz";
+        sha1 = "48ba99157de1923412eed41db6b6d4aa9ca7c0b1";
       };
     }
     {
@@ -4330,11 +4346,11 @@
       };
     }
     {
-      name = "electron_to_chromium___electron_to_chromium_1.3.578.tgz";
+      name = "electron_to_chromium___electron_to_chromium_1.3.601.tgz";
       path = fetchurl {
-        name = "electron_to_chromium___electron_to_chromium_1.3.578.tgz";
-        url  = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.578.tgz";
-        sha1 = "e6671936f4571a874eb26e2e833aa0b2c0b776e0";
+        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";
       };
     }
     {
@@ -4362,11 +4378,11 @@
       };
     }
     {
-      name = "emoji_regex___emoji_regex_9.0.0.tgz";
+      name = "emoji_regex___emoji_regex_9.2.0.tgz";
       path = fetchurl {
-        name = "emoji_regex___emoji_regex_9.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.0.0.tgz";
-        sha1 = "48a2309cc8a1d2e9d23bc6a67c39b63032e76ea4";
+        name = "emoji_regex___emoji_regex_9.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.0.tgz";
+        sha1 = "a26da8e832b16a9753309f25e35e3c0efb9a066a";
       };
     }
     {
@@ -4418,11 +4434,11 @@
       };
     }
     {
-      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";
       };
     }
     {
@@ -4530,11 +4546,11 @@
       };
     }
     {
-      name = "escalade___escalade_3.1.0.tgz";
+      name = "escalade___escalade_3.1.1.tgz";
       path = fetchurl {
-        name = "escalade___escalade_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/escalade/-/escalade-3.1.0.tgz";
-        sha1 = "e8e2d7c7a8b76f6ee64c2181d6b8151441602d4e";
+        name = "escalade___escalade_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz";
+        sha1 = "d8cfdc7000965c5a0174b4a82eaa5c0552742e40";
       };
     }
     {
@@ -4570,11 +4586,11 @@
       };
     }
     {
-      name = "eslint_config_prettier___eslint_config_prettier_6.12.0.tgz";
+      name = "eslint_config_prettier___eslint_config_prettier_6.15.0.tgz";
       path = fetchurl {
-        name = "eslint_config_prettier___eslint_config_prettier_6.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.12.0.tgz";
-        sha1 = "9eb2bccff727db1c52104f0b49e87ea46605a0d2";
+        name = "eslint_config_prettier___eslint_config_prettier_6.15.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz";
+        sha1 = "7f93f6cb7d45a92f1537a70ecc06366e1ac6fed9";
       };
     }
     {
@@ -4650,11 +4666,11 @@
       };
     }
     {
-      name = "eslint_plugin_jsx_a11y___eslint_plugin_jsx_a11y_6.3.1.tgz";
+      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.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.3.1.tgz";
-        sha1 = "99ef7e97f567cc6a5b8dd5ab95a94a67058a2660";
+        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";
       };
     }
     {
@@ -4690,11 +4706,11 @@
       };
     }
     {
-      name = "eslint_plugin_react___eslint_plugin_react_7.21.3.tgz";
+      name = "eslint_plugin_react___eslint_plugin_react_7.21.5.tgz";
       path = fetchurl {
-        name = "eslint_plugin_react___eslint_plugin_react_7.21.3.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.21.3.tgz";
-        sha1 = "71655d2af5155b19285ec929dd2cdc67a4470b52";
+        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";
       };
     }
     {
@@ -5378,11 +5394,11 @@
       };
     }
     {
-      name = "gensync___gensync_1.0.0_beta.1.tgz";
+      name = "gensync___gensync_1.0.0_beta.2.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";
       };
     }
     {
@@ -5394,6 +5410,14 @@
       };
     }
     {
+      name = "get_intrinsic___get_intrinsic_1.0.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_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.2.tgz";
@@ -5906,11 +5930,11 @@
       };
     }
     {
-      name = "ieee754___ieee754_1.1.13.tgz";
+      name = "ieee754___ieee754_1.2.1.tgz";
       path = fetchurl {
-        name = "ieee754___ieee754_1.1.13.tgz";
-        url  = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz";
-        sha1 = "ec168558e95aa181fd87d37f55c32bbcb6708b84";
+        name = "ieee754___ieee754_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz";
+        sha1 = "8eb7a10a63fff25d15a57b001586d177d1b0d352";
       };
     }
     {
@@ -5962,11 +5986,11 @@
       };
     }
     {
-      name = "import_fresh___import_fresh_3.2.1.tgz";
+      name = "import_fresh___import_fresh_3.2.2.tgz";
       path = fetchurl {
-        name = "import_fresh___import_fresh_3.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz";
-        sha1 = "633ff618506e793af5ac91bf48b72677e15cbe66";
+        name = "import_fresh___import_fresh_3.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.2.tgz";
+        sha1 = "fc129c160c5d68235507f4331a6baad186bdbc3e";
       };
     }
     {
@@ -6234,6 +6258,14 @@
       };
     }
     {
+      name = "is_core_module___is_core_module_2.1.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_data_descriptor___is_data_descriptor_0.1.4.tgz";
       path = fetchurl {
         name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
@@ -6674,11 +6706,11 @@
       };
     }
     {
-      name = "jest_diff___jest_diff_25.5.0.tgz";
+      name = "jest_diff___jest_diff_26.6.2.tgz";
       path = fetchurl {
-        name = "jest_diff___jest_diff_25.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.5.0.tgz";
-        sha1 = "1dd26ed64f96667c068cef026b677dfa01afcfa9";
+        name = "jest_diff___jest_diff_26.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz";
+        sha1 = "1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394";
       };
     }
     {
@@ -6738,11 +6770,11 @@
       };
     }
     {
-      name = "jest_get_type___jest_get_type_25.2.6.tgz";
+      name = "jest_get_type___jest_get_type_26.3.0.tgz";
       path = fetchurl {
-        name = "jest_get_type___jest_get_type_25.2.6.tgz";
-        url  = "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz";
-        sha1 = "0b0a32fab8908b44d508be81681487dbabb8d877";
+        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";
       };
     }
     {
@@ -7114,6 +7146,14 @@
       };
     }
     {
+      name = "jsx_ast_utils___jsx_ast_utils_3.1.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 = "just_extend___just_extend_4.1.1.tgz";
       path = fetchurl {
         name = "just_extend___just_extend_4.1.1.tgz";
@@ -7178,11 +7218,11 @@
       };
     }
     {
-      name = "language_subtag_registry___language_subtag_registry_0.3.20.tgz";
+      name = "language_subtag_registry___language_subtag_registry_0.3.21.tgz";
       path = fetchurl {
-        name = "language_subtag_registry___language_subtag_registry_0.3.20.tgz";
-        url  = "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.20.tgz";
-        sha1 = "a00a37121894f224f763268e431c55556b0c0755";
+        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";
       };
     }
     {
@@ -7506,19 +7546,19 @@
       };
     }
     {
-      name = "mdn_data___mdn_data_2.0.4.tgz";
+      name = "mdn_data___mdn_data_2.0.14.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 = "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.6.tgz";
+      name = "mdn_data___mdn_data_2.0.4.tgz";
       path = fetchurl {
-        name = "mdn_data___mdn_data_2.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.6.tgz";
-        sha1 = "852dc60fcaa5daa2e8cf6c9189c440ed3e042978";
+        name = "mdn_data___mdn_data_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz";
+        sha1 = "699b3c38ac6f1d728091a64650b65d388502fd5b";
       };
     }
     {
@@ -7762,11 +7802,11 @@
       };
     }
     {
-      name = "moment_timezone___moment_timezone_0.5.31.tgz";
+      name = "moment_timezone___moment_timezone_0.5.32.tgz";
       path = fetchurl {
-        name = "moment_timezone___moment_timezone_0.5.31.tgz";
-        url  = "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.31.tgz";
-        sha1 = "9c40d8c5026f0c7ab46eda3d63e49c155148de05";
+        name = "moment_timezone___moment_timezone_0.5.32.tgz";
+        url  = "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.32.tgz";
+        sha1 = "db7677cc3cc680fd30303ebd90b0da1ca0dfecc2";
       };
     }
     {
@@ -7850,11 +7890,11 @@
       };
     }
     {
-      name = "nan___nan_2.14.1.tgz";
+      name = "nan___nan_2.14.2.tgz";
       path = fetchurl {
-        name = "nan___nan_2.14.1.tgz";
-        url  = "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz";
-        sha1 = "d7be34dfa3105b91494c3147089315eff8874b01";
+        name = "nan___nan_2.14.2.tgz";
+        url  = "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz";
+        sha1 = "f5376400695168f4cc694ac9393d0c9585eeea19";
       };
     }
     {
@@ -7978,11 +8018,11 @@
       };
     }
     {
-      name = "node_releases___node_releases_1.1.61.tgz";
+      name = "node_releases___node_releases_1.1.67.tgz";
       path = fetchurl {
-        name = "node_releases___node_releases_1.1.61.tgz";
-        url  = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.61.tgz";
-        sha1 = "707b0fca9ce4e11783612ba4a2fcba09047af16e";
+        name = "node_releases___node_releases_1.1.67.tgz";
+        url  = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.67.tgz";
+        sha1 = "28ebfcccd0baa6aad8e8d4d8fe4cbc49ae239c12";
       };
     }
     {
@@ -8138,11 +8178,11 @@
       };
     }
     {
-      name = "object.assign___object.assign_4.1.1.tgz";
+      name = "object.assign___object.assign_4.1.2.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 = "303867a666cdd41936ecdedfb1f8f3e32a478cdd";
+        name = "object.assign___object.assign_4.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz";
+        sha1 = "0ed54a342eceb37b38ff76eb831a0e788cb63940";
       };
     }
     {
@@ -8970,11 +9010,11 @@
       };
     }
     {
-      name = "postcss_font_variant___postcss_font_variant_4.0.0.tgz";
+      name = "postcss_font_variant___postcss_font_variant_4.0.1.tgz";
       path = fetchurl {
-        name = "postcss_font_variant___postcss_font_variant_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-4.0.0.tgz";
-        sha1 = "71dd3c6c10a0d846c5eda07803439617bbbabacc";
+        name = "postcss_font_variant___postcss_font_variant_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz";
+        sha1 = "42d4c0ab30894f60f98b17561eb5c0321f502641";
       };
     }
     {
@@ -9426,11 +9466,11 @@
       };
     }
     {
-      name = "pretty_error___pretty_error_2.1.1.tgz";
+      name = "pretty_error___pretty_error_2.1.2.tgz";
       path = fetchurl {
-        name = "pretty_error___pretty_error_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz";
-        sha1 = "5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3";
+        name = "pretty_error___pretty_error_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz";
+        sha1 = "be89f82d81b1c86ec8fdfbc385045882727f93b6";
       };
     }
     {
@@ -9442,11 +9482,11 @@
       };
     }
     {
-      name = "pretty_format___pretty_format_25.5.0.tgz";
+      name = "pretty_format___pretty_format_26.6.2.tgz";
       path = fetchurl {
-        name = "pretty_format___pretty_format_25.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz";
-        sha1 = "7873c1d774f682c34b8d48b6743a2bf2ac55791a";
+        name = "pretty_format___pretty_format_26.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz";
+        sha1 = "e35c2705f14cb7fe2fe94fa078345b444120fc93";
       };
     }
     {
@@ -9482,11 +9522,11 @@
       };
     }
     {
-      name = "promise_polyfill___promise_polyfill_8.1.3.tgz";
+      name = "promise_polyfill___promise_polyfill_8.2.0.tgz";
       path = fetchurl {
-        name = "promise_polyfill___promise_polyfill_8.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-8.1.3.tgz";
-        sha1 = "8c99b3cf53f3a91c68226ffde7bde81d7f904116";
+        name = "promise_polyfill___promise_polyfill_8.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-8.2.0.tgz";
+        sha1 = "367394726da7561457aba2133c9ceefbd6267da0";
       };
     }
     {
@@ -9498,11 +9538,11 @@
       };
     }
     {
-      name = "prompts___prompts_2.3.2.tgz";
+      name = "prompts___prompts_2.4.0.tgz";
       path = fetchurl {
-        name = "prompts___prompts_2.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/prompts/-/prompts-2.3.2.tgz";
-        sha1 = "480572d89ecf39566d2bd3fe2c9fccb7c4c0b068";
+        name = "prompts___prompts_2.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/prompts/-/prompts-2.4.0.tgz";
+        sha1 = "4aa5de0723a231d1ee9121c40fdf663df73f61d7";
       };
     }
     {
@@ -9746,19 +9786,19 @@
       };
     }
     {
-      name = "react_dom___react_dom_16.13.1.tgz";
+      name = "react_dom___react_dom_16.14.0.tgz";
       path = fetchurl {
-        name = "react_dom___react_dom_16.13.1.tgz";
-        url  = "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz";
-        sha1 = "c1bd37331a0486c078ee54c4740720993b2e0e7f";
+        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_error_overlay___react_error_overlay_6.0.7.tgz";
+      name = "react_error_overlay___react_error_overlay_6.0.8.tgz";
       path = fetchurl {
-        name = "react_error_overlay___react_error_overlay_6.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.7.tgz";
-        sha1 = "1dcfb459ab671d53f660a991513cb2f0a0553108";
+        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";
       };
     }
     {
@@ -9770,6 +9810,14 @@
       };
     }
     {
+      name = "react_is___react_is_17.0.1.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_lifecycles_compat___react_lifecycles_compat_3.0.4.tgz";
       path = fetchurl {
         name = "react_lifecycles_compat___react_lifecycles_compat_3.0.4.tgz";
@@ -9802,11 +9850,11 @@
       };
     }
     {
-      name = "react_test_renderer___react_test_renderer_16.13.1.tgz";
+      name = "react_test_renderer___react_test_renderer_16.14.0.tgz";
       path = fetchurl {
-        name = "react_test_renderer___react_test_renderer_16.13.1.tgz";
-        url  = "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.13.1.tgz";
-        sha1 = "de25ea358d9012606de51e012d9742e7f0deabc1";
+        name = "react_test_renderer___react_test_renderer_16.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.14.0.tgz";
+        sha1 = "e98360087348e260c56d4fe2315e970480c228ae";
       };
     }
     {
@@ -9818,19 +9866,19 @@
       };
     }
     {
-      name = "react___react_16.13.1.tgz";
+      name = "react___react_16.14.0.tgz";
       path = fetchurl {
-        name = "react___react_16.13.1.tgz";
-        url  = "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz";
-        sha1 = "2e818822f1a9743122c063d6410d85c1e3afe48e";
+        name = "react___react_16.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz";
+        sha1 = "94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d";
       };
     }
     {
-      name = "reactstrap___reactstrap_8.6.0.tgz";
+      name = "reactstrap___reactstrap_8.7.1.tgz";
       path = fetchurl {
-        name = "reactstrap___reactstrap_8.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/reactstrap/-/reactstrap-8.6.0.tgz";
-        sha1 = "baee0d12990c9fef3c82199fb05e84d9f0af1a26";
+        name = "reactstrap___reactstrap_8.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/reactstrap/-/reactstrap-8.7.1.tgz";
+        sha1 = "9631db8460a83a4d40fbee61abdd577b4f1a7069";
       };
     }
     {
@@ -9890,11 +9938,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";
       };
     }
     {
@@ -9930,11 +9978,11 @@
       };
     }
     {
-      name = "regenerate___regenerate_1.4.1.tgz";
+      name = "regenerate___regenerate_1.4.2.tgz";
       path = fetchurl {
-        name = "regenerate___regenerate_1.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.1.tgz";
-        sha1 = "cad92ad8e6b591773485fbe05a485caf4f457e6f";
+        name = "regenerate___regenerate_1.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz";
+        sha1 = "b9346d8827e8f5a32f7ba29637d398b69014848a";
       };
     }
     {
@@ -10042,11 +10090,11 @@
       };
     }
     {
-      name = "renderkid___renderkid_2.0.3.tgz";
+      name = "renderkid___renderkid_2.0.4.tgz";
       path = fetchurl {
-        name = "renderkid___renderkid_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.3.tgz";
-        sha1 = "380179c2ff5ae1365c522bf2fcfcff01c5b74149";
+        name = "renderkid___renderkid_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.4.tgz";
+        sha1 = "d325e532afb28d3f8796ffee306be8ffd6fc864c";
       };
     }
     {
@@ -10178,11 +10226,11 @@
       };
     }
     {
-      name = "resolve___resolve_1.17.0.tgz";
+      name = "resolve___resolve_1.19.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.19.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz";
+        sha1 = "1af5bf630409734a067cae29318aac7fa29a267c";
       };
     }
     {
@@ -10634,11 +10682,11 @@
       };
     }
     {
-      name = "sinon___sinon_9.2.0.tgz";
+      name = "sinon___sinon_9.2.1.tgz";
       path = fetchurl {
-        name = "sinon___sinon_9.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/sinon/-/sinon-9.2.0.tgz";
-        sha1 = "1d333967e30023609f7347351ebc0dc964c0f3c9";
+        name = "sinon___sinon_9.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/sinon/-/sinon-9.2.1.tgz";
+        sha1 = "64cc88beac718557055bd8caa526b34a2231be6d";
       };
     }
     {
@@ -10874,11 +10922,11 @@
       };
     }
     {
-      name = "stack_utils___stack_utils_1.0.2.tgz";
+      name = "stack_utils___stack_utils_1.0.3.tgz";
       path = fetchurl {
-        name = "stack_utils___stack_utils_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz";
-        sha1 = "33eba3897788558bebfc2db059dc158ec36cebb8";
+        name = "stack_utils___stack_utils_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.3.tgz";
+        sha1 = "db7a475733b5b8bf6521907b18891d29006f7751";
       };
     }
     {
@@ -10994,19 +11042,19 @@
       };
     }
     {
-      name = "string.prototype.trimend___string.prototype.trimend_1.0.1.tgz";
+      name = "string.prototype.trimend___string.prototype.trimend_1.0.2.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.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.trimstart___string.prototype.trimstart_1.0.1.tgz";
+      name = "string.prototype.trimstart___string.prototype.trimstart_1.0.2.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.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";
       };
     }
     {
@@ -11274,11 +11322,11 @@
       };
     }
     {
-      name = "timers_browserify___timers_browserify_2.0.11.tgz";
+      name = "timers_browserify___timers_browserify_2.0.12.tgz";
       path = fetchurl {
-        name = "timers_browserify___timers_browserify_2.0.11.tgz";
-        url  = "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz";
-        sha1 = "800b1f3eee272e5bc53ee465a04d0e804c31211f";
+        name = "timers_browserify___timers_browserify_2.0.12.tgz";
+        url  = "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz";
+        sha1 = "44a45c11fbf407f34f97bccd1577c652361b00ee";
       };
     }
     {
@@ -11426,11 +11474,11 @@
       };
     }
     {
-      name = "tslib___tslib_1.14.0.tgz";
+      name = "tslib___tslib_1.14.1.tgz";
       path = fetchurl {
-        name = "tslib___tslib_1.14.0.tgz";
-        url  = "https://registry.yarnpkg.com/tslib/-/tslib-1.14.0.tgz";
-        sha1 = "d624983f3e2c5e0b55307c3dd6c86acd737622c6";
+        name = "tslib___tslib_1.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz";
+        sha1 = "cf2d38bdc34a134bcaf1091c41f6619e2f672d00";
       };
     }
     {
@@ -11770,11 +11818,11 @@
       };
     }
     {
-      name = "v8_compile_cache___v8_compile_cache_2.1.1.tgz";
+      name = "v8_compile_cache___v8_compile_cache_2.2.0.tgz";
       path = fetchurl {
-        name = "v8_compile_cache___v8_compile_cache_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz";
-        sha1 = "54bc3cdd43317bca91e35dcaf305b1a7237de745";
+        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";
       };
     }
     {
@@ -11858,19 +11906,19 @@
       };
     }
     {
-      name = "watchpack_chokidar2___watchpack_chokidar2_2.0.0.tgz";
+      name = "watchpack_chokidar2___watchpack_chokidar2_2.0.1.tgz";
       path = fetchurl {
-        name = "watchpack_chokidar2___watchpack_chokidar2_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz";
-        sha1 = "9948a1866cbbd6cb824dea13a7ed691f6c8ddff0";
+        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.4.tgz";
+      name = "watchpack___watchpack_1.7.5.tgz";
       path = fetchurl {
-        name = "watchpack___watchpack_1.7.4.tgz";
-        url  = "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.4.tgz";
-        sha1 = "6e9da53b3c80bb2d6508188f5b200410866cd30b";
+        name = "watchpack___watchpack_1.7.5.tgz";
+        url  = "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz";
+        sha1 = "1267e6c55e0b9b5be44c2023aed5437a2c26c453";
       };
     }
     {
@@ -11986,11 +12034,11 @@
       };
     }
     {
-      name = "whatwg_fetch___whatwg_fetch_3.4.1.tgz";
+      name = "whatwg_fetch___whatwg_fetch_3.5.0.tgz";
       path = fetchurl {
-        name = "whatwg_fetch___whatwg_fetch_3.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.4.1.tgz";
-        sha1 = "e5f871572d6879663fa5674c8f833f15a8425ab3";
+        name = "whatwg_fetch___whatwg_fetch_3.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.5.0.tgz";
+        sha1 = "605a2cd0a7146e5db141e29d1c62ab84c0c4c868";
       };
     }
     {
@@ -12018,11 +12066,11 @@
       };
     }
     {
-      name = "whatwg_url___whatwg_url_8.3.0.tgz";
+      name = "whatwg_url___whatwg_url_8.4.0.tgz";
       path = fetchurl {
-        name = "whatwg_url___whatwg_url_8.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.3.0.tgz";
-        sha1 = "d1e11e565334486cdb280d3101b9c3fd1c867582";
+        name = "whatwg_url___whatwg_url_8.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.4.0.tgz";
+        sha1 = "50fb9615b05469591d2b2bd6dfaed2942ed72837";
       };
     }
     {
@@ -12250,11 +12298,11 @@
       };
     }
     {
-      name = "ws___ws_7.3.1.tgz";
+      name = "ws___ws_7.4.0.tgz";
       path = fetchurl {
-        name = "ws___ws_7.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz";
-        sha1 = "d0547bf67f7ce4f12a72dfe31262c68d7dc551c8";
+        name = "ws___ws_7.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/ws/-/ws-7.4.0.tgz";
+        sha1 = "a5dd76a24197940d4a8bb9e0e152bb4503764da7";
       };
     }
     {
@@ -12274,11 +12322,11 @@
       };
     }
     {
-      name = "xregexp___xregexp_4.3.0.tgz";
+      name = "xregexp___xregexp_4.4.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 = "xregexp___xregexp_4.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/xregexp/-/xregexp-4.4.0.tgz";
+        sha1 = "29660f5d6567cd2ef981dd4a50cb05d22c10719d";
       };
     }
     {
diff --git a/pkgs/servers/mpd/default.nix b/pkgs/servers/mpd/default.nix
index c403d160e2b..6b7cdc6a3a2 100644
--- a/pkgs/servers/mpd/default.nix
+++ b/pkgs/servers/mpd/default.nix
@@ -190,7 +190,7 @@ in
   mpd = run { };
   mpd-small = run { features = [
     "webdav" "curl" "mms" "bzip2" "zzip"
-    "audiofile" "faad" "flac" "gme" "mad"
+    "audiofile" "faad" "flac" "gme"
     "mpg123" "opus" "vorbis" "vorbisenc"
     "lame" "libsamplerate" "shout"
     "libmpdclient" "id3tag" "expat" "pcre"
diff --git a/pkgs/servers/nextcloud/default.nix b/pkgs/servers/nextcloud/default.nix
index 918c0419e00..8d4b52a0159 100644
--- a/pkgs/servers/nextcloud/default.nix
+++ b/pkgs/servers/nextcloud/default.nix
@@ -58,7 +58,7 @@ in {
   };
 
   nextcloud20 = generic {
-    version = "20.0.3";
-    sha256 = "sha256-4PZFBNM49k08Z3NX8AEs+LDtDcQuwI+Vi23E/3Dt8XU=";
+    version = "20.0.4";
+    sha256 = "sha256-Jp8WIuMm9dEeOH04YarU4rDnkzSul+7Vp7M1K6dmFCA=";
   };
 }
diff --git a/pkgs/servers/nfs-ganesha/default.nix b/pkgs/servers/nfs-ganesha/default.nix
index adbcbb63759..7ec56b023e5 100644
--- a/pkgs/servers/nfs-ganesha/default.nix
+++ b/pkgs/servers/nfs-ganesha/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nfs-ganesha";
-  version = "3.3";
+  version = "3.4";
 
   src = fetchFromGitHub {
     owner = "nfs-ganesha";
     repo = "nfs-ganesha";
     rev = "V${version}";
-    sha256 = "1w48rqrbqah0hnirvjdz8lyr9ah8b73j3cgsppb04gnrmpssgmb6";
+    sha256 = "1qi617ppjjl38mqpbxiqhpxanq9qgqshb87cajs30rqkv9nj811k";
   };
 
   patches = [ ./sysstatedir.patch ];
diff --git a/pkgs/servers/nfs-ganesha/sysstatedir.patch b/pkgs/servers/nfs-ganesha/sysstatedir.patch
index 534f71743e7..fff3d589735 100644
--- a/pkgs/servers/nfs-ganesha/sysstatedir.patch
+++ b/pkgs/servers/nfs-ganesha/sysstatedir.patch
@@ -1,15 +1,22 @@
 diff --git a/src/include/config-h.in.cmake b/src/include/config-h.in.cmake
-index 51697310b..2b5f91075 100644
+index 2a5795e9f..7314e0594 100644
 --- a/src/include/config-h.in.cmake
 +++ b/src/include/config-h.in.cmake
-@@ -72,8 +72,8 @@
+@@ -71,13 +71,13 @@
+ #cmakedefine HAVE_URCU_REF_GET_UNLESS_ZERO 1
  #define NFS_GANESHA 1
  
- #define GANESHA_CONFIG_PATH "@SYSCONFDIR@/ganesha/ganesha.conf"
+-#define GANESHA_CONFIG_PATH "@SYSCONFDIR@/ganesha/ganesha.conf"
 -#define GANESHA_PIDFILE_PATH "@SYSSTATEDIR@/run/ganesha.pid"
 -#define NFS_V4_RECOV_ROOT "@SYSSTATEDIR@/lib/nfs/ganesha"
++#define GANESHA_CONFIG_PATH "/etc/ganesha/ganesha.conf"
 +#define GANESHA_PIDFILE_PATH "/run/ganesha.pid"
 +#define NFS_V4_RECOV_ROOT "/var/lib/nfs/ganesha"
  /**
   * @brief Default value for krb5_param.ccache_dir
   */
+-#define DEFAULT_NFS_CCACHE_DIR "@SYSSTATEDIR@/run/ganesha"
++#define DEFAULT_NFS_CCACHE_DIR "/run/ganesha"
+ 
+ /* We're LGPL'd */
+ #define _LGPL_SOURCE 1
diff --git a/pkgs/servers/pinnwand/default.nix b/pkgs/servers/pinnwand/default.nix
index fd02fc77081..31417989c44 100644
--- a/pkgs/servers/pinnwand/default.nix
+++ b/pkgs/servers/pinnwand/default.nix
@@ -1,4 +1,4 @@
-{ lib, python3, fetchFromGitHub, nixosTests }:
+{ lib, python3, fetchFromGitHub, nixosTests, fetchpatch }:
 
 let
   python = python3.override {
@@ -25,7 +25,7 @@ in with python.pkgs; buildPythonApplication rec {
   };
 
   nativeBuildInputs = [
-    poetry
+    poetry-core
   ];
 
   propagatedBuildInputs = [
@@ -43,6 +43,14 @@ in with python.pkgs; buildPythonApplication rec {
     pytest
   '';
 
+  patches = [
+    # Use poetry-core instead of poetry. Fixed in 1.2.3
+    (fetchpatch {
+      url = "https://github.com/supakeen/pinnwand/commit/38ff5729c59abb97e4b416d3ca66466528b0eac7.patch";
+      sha256 = "F3cZe29z/7glmS3KWzcfmZnhYmC0LrLLS0zHk7WS2rQ=";
+    })
+  ];
+
   passthru.tests = nixosTests.pinnwand;
 
   meta = with lib; {
diff --git a/pkgs/servers/plex/raw.nix b/pkgs/servers/plex/raw.nix
index e27048b2723..3bc3c695693 100644
--- a/pkgs/servers/plex/raw.nix
+++ b/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.21.0.3711-b509cc236";
+  version = "1.21.1.3842-b0c7a97d9";
   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 = "0nhxxfcds3byhbz8gsd9107diy182m33xbcc8jgi78hwfadyjj7h";
+    sha256 = "0wq8q9dvdwciazidvh9plxjzngjr6ibg077yksxhy41dv14vkw7s";
   } else fetchurl {
     url = "https://downloads.plex.tv/plex-media-server-new/${version}/debian/plexmediaserver_${version}_amd64.deb";
-    sha256 = "0izsmcc337paakz1nqfsr78s097sxyxy3kbs43qpzpx7w5wshynb";
+    sha256 = "14pa50kvgi4m5hbw4a0q7y3s4xn9ghvnm4vdim9g18p1khfmwmwp";
   };
 
   outputs = [ "out" "basedb" ];
diff --git a/pkgs/servers/pulseaudio/default.nix b/pkgs/servers/pulseaudio/default.nix
index 70a964039fc..625e2e0e8ca 100644
--- a/pkgs/servers/pulseaudio/default.nix
+++ b/pkgs/servers/pulseaudio/default.nix
@@ -93,7 +93,8 @@ stdenv.mkDerivation rec {
     ]
     ++ lib.optional (jackaudioSupport && !libOnly) "--enable-jack"
     ++ lib.optional stdenv.isDarwin "--with-mac-sysroot=/"
-    ++ lib.optional (stdenv.isLinux && useSystemd) "--with-systemduserunitdir=${placeholder "out"}/lib/systemd/user";
+    ++ lib.optional (stdenv.isLinux && useSystemd) "--with-systemduserunitdir=${placeholder "out"}/lib/systemd/user"
+    ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) "--disable-gsettings";
 
   enableParallelBuilding = true;
 
@@ -118,7 +119,7 @@ stdenv.mkDerivation rec {
     rm -f $out/bin/qpaeq # this is packaged by the "qpaeq" package now, because of missing deps
   '';
 
-  preFixup = lib.optionalString stdenv.isLinux ''
+  preFixup = lib.optionalString (stdenv.isLinux  && (stdenv.hostPlatform == stdenv.buildPlatform)) ''
     wrapProgram $out/libexec/pulse/gsettings-helper \
      --prefix XDG_DATA_DIRS : "$out/share/gsettings-schemas/${name}" \
      --prefix GIO_EXTRA_MODULES : "${lib.getLib dconf}/lib/gio/modules"
diff --git a/pkgs/servers/roundcube/default.nix b/pkgs/servers/roundcube/default.nix
index 98ce4f25a2e..05604e936c7 100644
--- a/pkgs/servers/roundcube/default.nix
+++ b/pkgs/servers/roundcube/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "roundcube";
-  version = "1.4.9";
+  version = "1.4.10";
 
   src = fetchurl {
     url = "https://github.com/roundcube/roundcubemail/releases/download/${version}/roundcubemail-${version}-complete.tar.gz";
-    sha256 = "1cpcr3abjq1f2af0ca571y976yni48z3rh3x146c6ninl5ip9b4z";
+    sha256 = "03sjvmnrspkiq0w73xvp1w61pcxhv0djrdm3mvs8h0dp9pfc1n53";
   };
 
   patches = [ ./0001-Don-t-resolve-symlinks-when-trying-to-find-INSTALL_P.patch ];
diff --git a/pkgs/servers/samba/0001-lib-util-Standardize-use-of-st_-acm-time-ns.patch b/pkgs/servers/samba/0001-lib-util-Standardize-use-of-st_-acm-time-ns.patch
new file mode 100644
index 00000000000..6de704cba28
--- /dev/null
+++ b/pkgs/servers/samba/0001-lib-util-Standardize-use-of-st_-acm-time-ns.patch
@@ -0,0 +1,569 @@
+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/pkgs/servers/samba/4.x.nix b/pkgs/servers/samba/4.x.nix
index ec28834659a..164604242d8 100644
--- a/pkgs/servers/samba/4.x.nix
+++ b/pkgs/servers/samba/4.x.nix
@@ -12,6 +12,7 @@
 , docbook_xml_dtd_45
 , readline
 , popt
+, dbus
 , libbsd
 , libarchive
 , zlib
@@ -43,11 +44,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "samba";
-  version = "4.12.6";
+  version = "4.13.3";
 
   src = fetchurl {
     url = "mirror://samba/pub/samba/stable/${pname}-${version}.tar.gz";
-    sha256 = "1v3cmw40csmi3jd8mhlx4bm7bk4m0426zkyin7kq11skwnsrna02";
+    sha256 = "0hb5fli4kgwg376c289mcmdqszd51vs8pzzrw7j6yr9k7za8a1f1";
   };
 
   outputs = [ "out" "dev" "man" ];
@@ -57,6 +58,8 @@ 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 = [
@@ -79,6 +82,7 @@ stdenv.mkDerivation rec {
     python
     readline
     popt
+    dbus
     jansson
     libbsd
     libarchive
@@ -154,6 +158,7 @@ stdenv.mkDerivation rec {
     description = "The standard Windows interoperability suite of programs for Linux and Unix";
     license = licenses.gpl3;
     platforms = platforms.unix;
+    broken = stdenv.isDarwin;
     maintainers = with maintainers; [ aneeshusa ];
   };
 }
diff --git a/pkgs/servers/sql/postgresql/ext/postgis.nix b/pkgs/servers/sql/postgresql/ext/postgis.nix
index 0d6176d8597..fdf4b40d3b0 100644
--- a/pkgs/servers/sql/postgresql/ext/postgis.nix
+++ b/pkgs/servers/sql/postgresql/ext/postgis.nix
@@ -15,13 +15,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "postgis";
-  version = "3.0.3";
+  version = "3.1.0";
 
   outputs = [ "out" "doc" ];
 
   src = fetchurl {
     url = "https://download.osgeo.org/postgis/source/postgis-${version}.tar.gz";
-    sha256 = "05s8cx1rlysiq7dd44kf7cid0la61a4p895j9g95bvfb8v8dpzh7";
+    sha256 = "008280ijd6m9h35y9lcpql0fk0h9f3zkc1pfkdm0rkbnd12y41ns";
   };
 
   buildInputs = [ libxml2 postgresql geos proj gdal json_c protobufc ]
diff --git a/pkgs/servers/trezord/default.nix b/pkgs/servers/trezord/default.nix
index a6841f7fabe..b89abfc6153 100644
--- a/pkgs/servers/trezord/default.nix
+++ b/pkgs/servers/trezord/default.nix
@@ -20,7 +20,7 @@ buildGoModule rec {
   propagatedBuildInputs = [ trezor-udev-rules ];
 
   meta = with stdenv.lib; {
-    description = "TREZOR Communication Daemon aka TREZOR Bridge";
+    description = "Trezor Communication Daemon aka Trezor Bridge";
     homepage = "https://trezor.io";
     license = licenses.lgpl3;
     maintainers = with maintainers; [ canndrew jb55 prusnak mmahut _1000101 ];
diff --git a/pkgs/servers/unifi/default.nix b/pkgs/servers/unifi/default.nix
index 3072b44e4a3..b354fd994c9 100644
--- a/pkgs/servers/unifi/default.nix
+++ b/pkgs/servers/unifi/default.nix
@@ -38,23 +38,21 @@ let
     };
   };
 
-in {
-
-  # https://community.ui.com/releases / https://www.ui.com/download/unifi
-  # Outdated FAQ: https://help.ubnt.com/hc/en-us/articles/115000441548-UniFi-Current-Controller-Versions
+in rec {
+  # see https://community.ui.com/releases / https://www.ui.com/download/unifi
 
   unifiLTS = generic {
     version = "5.6.42";
     sha256 = "0wxkv774pw43c15jk0sg534l5za4j067nr85r5fw58iar3w2l84x";
   };
 
-  unifiStable = generic {
+  unifi5 = generic {
     version = "5.14.23";
     sha256 = "1aar05yjm3z5a30x505w4kakbyz35i7mk7xyg0wm4ml6h94d84pv";
   };
 
-  unifiBeta = generic {
-    version = "6.0.36";
-    sha256 = "1sjf4jd8jkf6194ahwqjxd2ip0r70bdk15gci1qrdw88agab143j";
+  unifi6 = generic {
+    version = "6.0.43";
+    sha256 = "1d9pw4f20pr4jb1xb43p7ycafv13ld1h40r05qg82029ml1s7jky";
   };
 }
diff --git a/pkgs/servers/uwsgi/additional-php-ldflags.patch b/pkgs/servers/uwsgi/additional-php-ldflags.patch
new file mode 100644
index 00000000000..8549d5c2d03
--- /dev/null
+++ b/pkgs/servers/uwsgi/additional-php-ldflags.patch
@@ -0,0 +1,13 @@
+diff --git a/plugins/php/uwsgiplugin.py b/plugins/php/uwsgiplugin.py
+index d930c44e..2fcbc22a 100644
+--- a/plugins/php/uwsgiplugin.py
++++ b/plugins/php/uwsgiplugin.py
+@@ -17,6 +17,8 @@ php_version = os.popen(PHPPATH + ' --version').read().rstrip().split('.')[0]
+ CFLAGS = [os.popen(PHPPATH + ' --includes').read().rstrip(), '-Wno-sign-compare']
+ LDFLAGS = os.popen(PHPPATH + ' --ldflags').read().rstrip().split()
+ 
++LDFLAGS.append(os.environ.get('UWSGICONFIG_PHP_LDFLAGS', []))
++
+ if ld_run_path:
+     LDFLAGS.append('-L%s' % ld_run_path)
+     os.environ['LD_RUN_PATH'] = ld_run_path
diff --git a/pkgs/servers/uwsgi/default.nix b/pkgs/servers/uwsgi/default.nix
index 39a3113eb41..d9ed810cdf4 100644
--- a/pkgs/servers/uwsgi/default.nix
+++ b/pkgs/servers/uwsgi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, pkgconfig, jansson, pcre
+{ stdenv, nixosTests, lib, fetchurl, pkgconfig, jansson, pcre
 # plugins: list of strings, eg. [ "python2" "python3" ]
 , plugins ? []
 , pam, withPAM ? stdenv.isLinux
@@ -38,8 +38,12 @@ let php-embed = php.override {
                   (lib.nameValuePair "php" {
                     # usage: https://uwsgi-docs.readthedocs.io/en/latest/PHP.html#running-php-apps-with-nginx
                     path = "plugins/php";
-                    inputs = [ php-embed ] ++ php-embed.buildInputs;
-                    NIX_CFLAGS_LINK = [ "-L${libmysqlclient}/lib/mysql" ];
+                    inputs = [
+                        php-embed
+                        php-embed.extensions.session
+                        php-embed.extensions.session.dev
+                        php-embed.unwrapped.dev
+                    ] ++ php-embed.unwrapped.buildInputs;
                   })
                 ];
 
@@ -61,6 +65,11 @@ stdenv.mkDerivation rec {
     sha256 = "0256v72b7zr6ds4srpaawk1px3bp0djdwm239w3wrxpw7dzk1gjn";
   };
 
+  patches = [
+        ./no-ext-session-php_session.h-on-NixOS.patch
+        ./additional-php-ldflags.patch
+  ];
+
   nativeBuildInputs = [ python3 pkgconfig ];
 
   buildInputs =  [ jansson pcre ]
@@ -83,6 +92,16 @@ stdenv.mkDerivation rec {
     substituteAll ${./nixos.ini} buildconf/nixos.ini
   '';
 
+  # this is a hack to make the php plugin link with session.so (which on nixos is a separate package)
+  # the hack works in coordination with ./additional-php-ldflags.patch
+  UWSGICONFIG_PHP_LDFLAGS = lib.optionalString (builtins.any (x: x.name == "php") needed)
+        (lib.concatStringsSep "," [
+            "-Wl"
+            "-rpath=${php-embed.extensions.session}/lib/php/extensions/"
+            "--library-path=${php-embed.extensions.session}/lib/php/extensions/"
+            "-l:session.so"
+        ]);
+
   buildPhase = ''
     mkdir -p $pluginDir
     python3 uwsgiconfig.py --build nixos
@@ -94,8 +113,6 @@ stdenv.mkDerivation rec {
     ${lib.concatMapStringsSep "\n" (x: x.install or "") needed}
   '';
 
-  NIX_CFLAGS_LINK = toString (lib.optional withSystemd "-lsystemd" ++ lib.concatMap (x: x.NIX_CFLAGS_LINK or []) needed);
-
   meta = with stdenv.lib; {
     homepage = "https://uwsgi-docs.readthedocs.org/en/latest/";
     description = "A fast, self-healing and developer/sysadmin-friendly application container server coded in pure C";
@@ -103,4 +120,7 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ abbradar schneefux globin ];
     platforms = platforms.unix;
   };
+
+  passthru.tests.uwsgi = nixosTests.uwsgi;
+
 }
diff --git a/pkgs/servers/uwsgi/no-ext-session-php_session.h-on-NixOS.patch b/pkgs/servers/uwsgi/no-ext-session-php_session.h-on-NixOS.patch
new file mode 100644
index 00000000000..bde8f4fda1d
--- /dev/null
+++ b/pkgs/servers/uwsgi/no-ext-session-php_session.h-on-NixOS.patch
@@ -0,0 +1,29 @@
+From 6b9b3559d8ce59eda6c5cd6f04224cebaaa5d0ea Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=D0=94=D0=B0=D0=BC=D1=98=D0=B0=D0=BD=20=D0=93=D0=B5=D0=BE?=
+ =?UTF-8?q?=D1=80=D0=B3=D0=B8=D0=B5=D0=B2=D1=81=D0=BA=D0=B8?=
+ <gdamjan@gmail.com>
+Date: Tue, 8 Sep 2020 17:11:39 +0200
+Subject: [PATCH] no ext/session/php_session.h on NixOS
+
+on NixOS php_session.h is in its own package, and is not installed in
+ext/session/
+---
+ plugins/php/common.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/plugins/php/common.h b/plugins/php/common.h
+index 9bf1c069..be93f519 100644
+--- a/plugins/php/common.h
++++ b/plugins/php/common.h
+@@ -10,7 +10,7 @@
+ #endif
+ #include "ext/standard/info.h"
+ 
+-#include "ext/session/php_session.h"
++#include "php_session.h"
+ 
+ #include <uwsgi.h>
+ 
+-- 
+2.28.0
+
diff --git a/pkgs/servers/web-apps/codimd/default.nix b/pkgs/servers/web-apps/hedgedoc/default.nix
index 7de539bb091..9fdaafbd24a 100644
--- a/pkgs/servers/web-apps/codimd/default.nix
+++ b/pkgs/servers/web-apps/hedgedoc/default.nix
@@ -2,14 +2,14 @@
 , which, nodejs, mkYarnPackage, python2, nixosTests }:
 
 mkYarnPackage rec {
-  name = "codimd";
-  version = "1.6.0";
+  name = "hedgedoc";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
-    owner  = "codimd";
-    repo   = "server";
+    owner  = "hedgedoc";
+    repo   = "hedgedoc";
     rev    = version;
-    sha256 = "1208a24v664ha9qzr7ky6i3ynphkaj0xi5l3rsw743i22nv5aj33";
+    sha256 = "0axad5581v25pynfj6pgy0h1xp92dyllnc7mk42z6hxbs4sgkrw1";
   };
 
   nativeBuildInputs = [ which makeWrapper ];
@@ -20,19 +20,15 @@ mkYarnPackage rec {
   packageJSON = ./package.json;
 
   postConfigure = ''
-    rm deps/CodiMD/node_modules
-    cp -R "$node_modules" deps/CodiMD
-    chmod -R u+w deps/CodiMD
+    rm deps/HedgeDoc/node_modules
+    cp -R "$node_modules" deps/HedgeDoc
+    chmod -R u+w deps/HedgeDoc
   '';
 
   buildPhase = ''
     runHook preBuild
 
-    cd deps/CodiMD
-
-    pushd node_modules/codemirror
-    npm run install
-    popd
+    cd deps/HedgeDoc
 
     pushd node_modules/sqlite3
     export CPPFLAGS="-I${nodejs}/include/node"
@@ -52,23 +48,23 @@ mkYarnPackage rec {
     mkdir -p $out
     cp -R {app.js,bin,lib,locales,node_modules,package.json,public} $out
 
-    cat > $out/bin/codimd <<EOF
+    cat > $out/bin/hedgedoc <<EOF
       #!${stdenv.shell}/bin/sh
       ${nodejs}/bin/node $out/app.js
     EOF
-    chmod +x $out/bin/codimd
-    wrapProgram $out/bin/codimd \
+    chmod +x $out/bin/hedgedoc
+    wrapProgram $out/bin/hedgedoc \
       --set NODE_PATH "$out/lib/node_modules"
 
     runHook postDist
   '';
 
-  passthru.tests = { inherit (nixosTests) codimd; };
+  passthru.tests = { inherit (nixosTests) hedgedoc; };
 
   meta = with stdenv.lib; {
     description = "Realtime collaborative markdown notes on all platforms";
     license = licenses.agpl3;
-    homepage = "https://github.com/codimd/server";
+    homepage = "https://hedgedoc.org";
     maintainers = with maintainers; [ willibutz ma27 globin ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/servers/web-apps/codimd/package.json b/pkgs/servers/web-apps/hedgedoc/package.json
index 7f78d14ff30..3e8046bbecd 100644
--- a/pkgs/servers/web-apps/codimd/package.json
+++ b/pkgs/servers/web-apps/hedgedoc/package.json
@@ -1,13 +1,14 @@
 {
-  "name": "CodiMD",
-  "version": "1.6.0",
-  "description": "Realtime collaborative markdown notes on all platforms.",
+  "name": "HedgeDoc",
+  "version": "1.7.1",
+  "description": "The best platform to write and share markdown.",
   "main": "app.js",
   "license": "AGPL-3.0",
   "scripts": {
     "test": "npm run-script eslint && npm run-script jsonlint && npm run-script mocha-suite",
     "eslint": "node_modules/.bin/eslint --max-warnings 0 lib public test app.js",
     "jsonlint": "find . -not -path './node_modules/*' -type f -name '*.json' -o -type f -name '*.json.example' | while read json; do echo $json ; jq . $json; done",
+    "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",
@@ -18,9 +19,9 @@
   "dependencies": {
     "@passport-next/passport-openid": "^1.0.0",
     "Idle.Js": "git+https://github.com/shawnmclean/Idle.js",
-    "archiver": "^2.1.1",
+    "archiver": "^5.0.2",
     "async": "^2.1.4",
-    "aws-sdk": "^2.345.0",
+    "aws-sdk": "^2.521.0",
     "azure-storage": "^2.7.0",
     "base64url": "^3.0.0",
     "body-parser": "^1.15.2",
@@ -28,41 +29,42 @@
     "bootstrap-validator": "^0.11.8",
     "chance": "^1.0.4",
     "cheerio": "^0.22.0",
-    "codemirror": "git+https://github.com/hackmdio/CodeMirror.git",
+    "codemirror": "git+https://github.com/hedgedoc/CodeMirror.git",
     "compression": "^1.6.2",
     "connect-flash": "^0.1.1",
     "connect-session-sequelize": "^6.0.0",
-    "cookie": "0.3.1",
-    "cookie-parser": "1.4.3",
+    "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",
+    "emojify.js": "^1.1.0",
     "escape-html": "^1.0.3",
     "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",
+    "gist-embed": "^2.6.0",
     "graceful-fs": "^4.1.11",
     "handlebars": "^4.5.2",
     "helmet": "^3.21.1",
-    "highlight.js": "~9.12.0",
-    "i18n": "^0.8.3",
+    "highlight.js": "^9.12.0",
+    "i18n": "^0.13.0",
     "imgur": "git+https://github.com/hackmdio/node-imgur.git",
-    "ionicons": "~2.0.1",
-    "jquery": "^3.4.1",
+    "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/codimd/js-sequence-diagrams.git",
+    "js-sequence-diagrams": "git+https://github.com/hedgedoc/js-sequence-diagrams.git",
     "js-yaml": "^3.13.1",
     "jsdom-nogyp": "^0.8.3",
     "keymaster": "^1.6.2",
     "list.js": "^1.5.0",
-    "lodash": "^4.17.11",
+    "lodash": "^4.17.20",
     "lutim": "^1.0.2",
     "lz-string": "git+https://github.com/hackmdio/lz-string.git",
     "mariadb": "^2.1.2",
@@ -79,11 +81,10 @@
     "markdown-it-regexp": "^0.4.0",
     "markdown-it-sub": "^1.0.0",
     "markdown-it-sup": "^1.0.0",
-    "markdown-pdf": "^10.0.0",
-    "mathjax": "~2.7.6",
+    "mathjax": "^2.7.6",
     "mattermost": "^3.4.0",
-    "mermaid": "~8.4.6",
-    "meta-marked": "git+https://github.com/codimd/meta-marked#semver:^0.4.5",
+    "mermaid": "^8.5.1",
+    "meta-marked": "git+https://github.com/hedgedoc/meta-marked",
     "method-override": "^2.3.7",
     "minimist": "^1.2.0",
     "minio": "^6.0.0",
@@ -103,22 +104,23 @@
     "passport-twitter": "^1.0.4",
     "passport.socketio": "^3.7.0",
     "pdfobject": "^2.0.201604172",
-    "pg": "^7.12.1",
+    "pg": "^8.2.1",
     "pg-hstore": "^2.3.3",
-    "prismjs": "^1.6.0",
-    "randomcolor": "^0.5.3",
-    "raphael": "git+https://github.com/dmitrybaranovskiy/raphael",
+    "prismjs": "^1.21.0",
+    "randomcolor": "^0.6.0",
+    "raphael": "^2.3.0",
     "readline-sync": "^1.4.7",
     "request": "^2.88.0",
-    "reveal.js": "~3.9.2",
+    "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.8",
-    "socket.io": "~2.1.1",
-    "socket.io-client": "~2.1.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",
     "store": "^2.0.12",
@@ -137,20 +139,20 @@
     "xss": "^1.0.3"
   },
   "resolutions": {
-    "**/tough-cookie": "~2.4.0",
+    "**/tough-cookie": "~2.5.0",
     "**/minimatch": "^3.0.2",
     "**/request": "^2.88.0"
   },
   "engines": {
-    "node": ">=8.x"
+    "node": ">=10.13"
   },
-  "bugs": "https://github.com/codimd/server/issues",
+  "bugs": "https://github.com/hedgedoc/hedgedoc/issues",
   "keywords": [
     "Collaborative",
     "Markdown",
     "Notes"
   ],
-  "homepage": "https://codimd.org",
+  "homepage": "https://hedgedoc.org",
   "maintainers": [
     {
       "name": "Claudius Coenen",
@@ -164,42 +166,43 @@
   ],
   "repository": {
     "type": "git",
-    "url": "https://github.com/codimd/server.git"
+    "url": "https://github.com/hedgedoc/hedgedoc.git"
   },
   "devDependencies": {
-    "babel-cli": "^6.26.0",
-    "babel-core": "^6.26.3",
-    "babel-loader": "^7.1.4",
-    "babel-plugin-transform-runtime": "^6.23.0",
-    "babel-polyfill": "^6.26.0",
-    "babel-preset-env": "^1.7.0",
-    "babel-runtime": "^6.26.0",
-    "copy-webpack-plugin": "^5.0.5",
-    "css-loader": "^3.2.0",
-    "eslint": "^5.9.0",
-    "eslint-config-standard": "^12.0.0",
-    "eslint-plugin-import": "^2.14.0",
-    "eslint-plugin-node": "^8.0.0",
-    "eslint-plugin-promise": "^4.0.1",
-    "eslint-plugin-standard": "^4.0.0",
-    "expose-loader": "^0.7.5",
-    "file-loader": "^4.3.0",
-    "html-webpack-plugin": "^4.0.0-beta.11",
-    "imports-loader": "^0.8.0",
-    "jsonlint": "^1.6.2",
-    "less": "^3.10.3",
-    "less-loader": "^5.0.0",
-    "mini-css-extract-plugin": "^0.8.0",
-    "mocha": "^5.2.0",
-    "mock-require": "^3.0.3",
-    "optimize-css-assets-webpack-plugin": "^5.0.3",
-    "script-loader": "^0.7.2",
-    "string-loader": "^0.0.1",
-    "style-loader": "^1.0.0",
-    "url-loader": "^2.3.0",
-    "webpack": "^4.41.2",
-    "webpack-cli": "^3.3.10",
-    "webpack-merge": "^4.2.2"
+    "babel-cli": "6.26.0",
+    "babel-core": "6.26.3",
+    "babel-loader": "7.1.5",
+    "babel-plugin-transform-runtime": "6.23.0",
+    "babel-polyfill": "6.26.0",
+    "babel-preset-env": "1.7.0",
+    "babel-runtime": "6.26.0",
+    "copy-webpack-plugin": "6.4.1",
+    "css-loader": "3.6.0",
+    "eslint": "5.16.0",
+    "eslint-config-standard": "12.0.0",
+    "eslint-plugin-import": "2.22.1",
+    "eslint-plugin-node": "8.0.1",
+    "eslint-plugin-promise": "4.2.1",
+    "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",
+    "jsonlint": "1.6.3",
+    "less": "3.13.1",
+    "less-loader": "5.0.0",
+    "mini-css-extract-plugin": "0.12.0",
+    "mocha": "5.2.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",
+    "script-loader": "0.7.2",
+    "string-loader": "0.0.1",
+    "url-loader": "2.3.0",
+    "webpack": "4.44.2",
+    "webpack-cli": "3.3.12",
+    "webpack-merge": "4.2.2"
   },
   "optionalDependencies": {
     "bufferutil": "^4.0.0",
diff --git a/pkgs/servers/web-apps/codimd/yarn.lock b/pkgs/servers/web-apps/hedgedoc/yarn.lock
index 46474683679..f228af65b5b 100644
--- a/pkgs/servers/web-apps/codimd/yarn.lock
+++ b/pkgs/servers/web-apps/hedgedoc/yarn.lock
@@ -8,9 +8,9 @@
   integrity sha512-l7z0DPCi2Hp88w12JhDTtx5d0Y3+vhfE7JKJb9O7sEz71Cwp053N8piTtTnnk/tUor9oZHgEKi/p3tQQmLPjvA==
 
 "@azure/ms-rest-js@^1.8.7":
-  version "1.8.14"
-  resolved "https://registry.yarnpkg.com/@azure/ms-rest-js/-/ms-rest-js-1.8.14.tgz#657fc145db20b6eb3d58d1a2055473aa72eb609d"
-  integrity sha512-IrCPN22c8RbKWA06ZXuFwwEb15cSnr0zZ6J8Fspp9ns1SSNTERf7hv+gWvTIis1FlwHy42Mfk8hVu0/r3a0AWA==
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@azure/ms-rest-js/-/ms-rest-js-1.9.0.tgz#5eb6516cf20e972a2eb4c589d6b48c3151bc801b"
+  integrity sha512-cB4Z2Mg7eBmet1rfbf0QSO1XbhfknRW7B+mX3IHJq0KGHaGJvCPoVTgdsJdCkazEMK1jtANFNEDDzSQacxyzbA==
   dependencies:
     "@types/tunnel" "0.0.0"
     axios "^0.19.0"
@@ -31,19 +31,24 @@
     adal-node "^0.1.28"
 
 "@babel/code-frame@^7.0.0":
-  version "7.8.3"
-  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e"
-  integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==
+  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.8.3"
+    "@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/highlight@^7.8.3":
-  version "7.8.3"
-  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797"
-  integrity sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==
+"@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==
   dependencies:
+    "@babel/helper-validator-identifier" "^7.10.4"
     chalk "^2.0.0"
-    esutils "^2.0.2"
     js-tokens "^4.0.0"
 
 "@braintree/sanitize-url@^3.1.0":
@@ -51,6 +56,43 @@
   resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-3.1.0.tgz#8ff71d51053cd5ee4981e5a501d80a536244f7fd"
   integrity sha512-GcIY79elgB+azP74j8vqkiXz8xLFfIzbQJdlwOPisgbKT00tviJQuEghOXSMVxJ00HoYJbGswr4kcllUc4xCcg==
 
+"@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"
+
+"@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==
+  dependencies:
+    "@nodelib/fs.stat" "2.0.3"
+    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.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==
+  dependencies:
+    "@nodelib/fs.scandir" "2.1.3"
+    fastq "^1.6.0"
+
+"@npmcli/move-file@^1.0.1":
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.0.1.tgz#de103070dac0f48ce49cf6693c23af59c0f70464"
+  integrity sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==
+  dependencies:
+    mkdirp "^1.0.4"
+
 "@passport-next/passport-openid@^1.0.0":
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/@passport-next/passport-openid/-/passport-openid-1.0.0.tgz#d3b5e067a9aa1388ed172ab7cc02c39b8634283d"
@@ -64,6 +106,16 @@
   resolved "https://registry.yarnpkg.com/@passport-next/passport-strategy/-/passport-strategy-1.1.0.tgz#4c0df069e2ec9262791b9ef1e23320c1d73bdb74"
   integrity sha512-2KhFjtPueJG6xVj2HnqXt9BlANOfYCVLyu+pXYjPGBDT8yk+vQwc/6tsceIj+mayKcoxMau2JimggXRPHgoc8w==
 
+"@tokenizer/token@^0.1.0", "@tokenizer/token@^0.1.1":
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.1.1.tgz#f0d92c12f87079ddfd1b29f614758b9696bc29e3"
+  integrity sha512-XO6INPbZCxdprl+9qa/AAbFFOMzzwqYxpjPgLICrMD6C2FCw6qfJOPcBk6JqqPLSaZ/Qx87qn4rpPmPMwaAK6w==
+
+"@types/anymatch@*":
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a"
+  integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==
+
 "@types/body-parser@*":
   version "1.19.0"
   resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f"
@@ -79,26 +131,28 @@
   dependencies:
     "@types/node" "*"
 
-"@types/estree@0.0.39":
-  version "0.0.39"
-  resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f"
-  integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==
+"@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@*":
-  version "4.17.2"
-  resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.2.tgz#f6f41fa35d42e79dbf6610eccbb2637e6008a0cf"
-  integrity sha512-El9yMpctM6tORDAiBwZVLMcxoTMcqqRO9dVyYcn7ycLWbvR8klrDn8CAOwRfZujZtWD7yS/mshTdz43jMOejbg==
+  version "4.17.13"
+  resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.13.tgz#d9af025e925fc8b089be37423b8d1eac781be084"
+  integrity sha512-RgDi5a4nuzam073lRGKTUIaL3eF2+H7LJvJ8eUnCI0wA6SNjXc44DCmWNiTLs/AZ7QlsFWZiw/gTG3nSQGL0fA==
   dependencies:
     "@types/node" "*"
+    "@types/qs" "*"
     "@types/range-parser" "*"
 
 "@types/express@*":
-  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.9"
+  resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.9.tgz#f5f2df6add703ff28428add52bdec8a1091b0a78"
+  integrity sha512-SDzEIZInC4sivGIFY4Sz1GG6J9UObPwCInYJjko2jzOf/Imx/dlpume6Xxwj1ORL82tBbmN4cPDIDkLbWHk9hw==
   dependencies:
     "@types/body-parser" "*"
     "@types/express-serve-static-core" "*"
+    "@types/qs" "*"
     "@types/serve-static" "*"
 
 "@types/geojson@^7946.0.7":
@@ -106,70 +160,100 @@
   resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.7.tgz#c8fa532b60a0042219cdf173ca21a975ef0666ad"
   integrity sha512-wE2v81i4C4Ol09RtsWFAqg3BUitWbHSpSlIo+bNdsCJijO9sjme+zm+73ZMCa/qMC8UEERxzGbvmr1cffo2SiQ==
 
+"@types/html-minifier-terser@^5.0.0":
+  version "5.1.1"
+  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/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.5"
-  resolved "https://registry.yarnpkg.com/@types/ldapjs/-/ldapjs-1.0.5.tgz#2b078dff23dc068e12a8236b280d5fb4fd9db4db"
-  integrity sha512-hrtMZjVfWNPxkwFkYhLAU0ITZ3/reDft4jDzLBvrGDSKCbEvW+GeZb4PgM3jlSwSsv0cXqnDeWcupFLIgW9E0Q==
+  version "1.0.9"
+  resolved "https://registry.yarnpkg.com/@types/ldapjs/-/ldapjs-1.0.9.tgz#1224192d14cc5ab5218fcea72ebb04489c52cb95"
+  integrity sha512-3PvY7Drp1zoLbcGlothCAkoc5o6Jp9KvUPwHadlHyKp3yPvyeIh7w2zQc9UXMzgDRkoeGXUEODtbEs5XCh9ZyA==
   dependencies:
     "@types/node" "*"
 
 "@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/node@*", "@types/node@>=8.0.0":
-  version "13.7.1"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-13.7.1.tgz#238eb34a66431b71d2aaddeaa7db166f25971a0d"
-  integrity sha512-Zq8gcQGmn4txQEJeiXo/KiLpon8TzAl0kmKH4zdWctPj05nWwp1ClMdAVEloqrQKfaC48PNLdgN/aVaLqUrluA==
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.3.tgz#c893b73721db73699943bfc3653b1deb7faa4a3a"
+  integrity sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==
 
-"@types/node@^10.12.12", "@types/node@^10.12.26":
-  version "10.17.15"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.15.tgz#bfff4e23e9e70be6eec450419d51e18de1daf8e7"
-  integrity sha512-daFGV9GSs6USfPgxceDA8nlSe48XrVCJfDeYm7eokxq/ye7iuOH87hKXgMtEAVLFapkczbZsx868PMDT1Y0a6A==
+"@types/node@*":
+  version "14.14.7"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.7.tgz#8ea1e8f8eae2430cf440564b98c6dfce1ec5945d"
+  integrity sha512-Zw1vhUSQZYw+7u5dAwNbIA9TuTotpzY/OF7sJM9FqPOF3SPjKnxrjoTktXDZgUjybf4cWVBP7O8wvKdSaGHweg==
 
 "@types/node@^12.12.17":
-  version "12.12.27"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.27.tgz#d7506f73160ad30fcebbcf5b8b7d2d976e649e42"
-  integrity sha512-odQFl/+B9idbdS0e8IxDl2ia/LP8KZLXhV3BUeI98TrZp0uoIzQPhGd+5EtzHmT0SMOIaPd7jfz6pOHLWTtl7A==
+  version "12.19.4"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-12.19.4.tgz#cdfbb62e26c7435ed9aab9c941393cc3598e9b46"
+  integrity sha512-o3oj1bETk8kBwzz1WlO6JWL/AfAA3Vm6J1B3C9CsdxHYp7XgPiH7OEXPUbZTndHlRaIElrANkQfe6ZmfJb3H2w==
+
+"@types/node@^14.14.7":
+  version "14.14.14"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.14.tgz#f7fd5f3cc8521301119f63910f0fb965c7d761ae"
+  integrity sha512-UHnOPWVWV1z+VV8k6L1HhG7UbGBgIdghqF3l9Ny9ApPghbjICXkUJSd/b9gOgQfjM1r+37cipdw/HJ3F6ICEnQ==
 
 "@types/node@^8.0.47":
-  version "8.10.59"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.59.tgz#9e34261f30183f9777017a13d185dfac6b899e04"
-  integrity sha512-8RkBivJrDCyPpBXhVZcjh7cQxVBSmRk9QM7hOketZzp6Tg79c0N8kkpAIito9bnJ3HCVCHVYz+KHTEbfQNfeVQ==
+  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.2"
-  resolved "https://registry.yarnpkg.com/@types/passport/-/passport-1.0.2.tgz#f085033e2b301b1f97d4b57bfa73d8e934650c63"
-  integrity sha512-Pf39AYKf8q+YoONym3150cEwfUD66dtwHJWvbeOzKxnA0GZZ/vAXhNWv9vMhKyRQBQZiQyWQnhYBEBlKW6G8wg==
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/@types/passport/-/passport-1.0.4.tgz#1b35c4e197560d3974fa5f71711b6e9cce0711f0"
+  integrity sha512-h5OfAbfBBYSzjeU0GTuuqYEk9McTgWeGQql9g3gUw2/NNCfD7VgExVRYJVVeU13Twn202Mvk9BT0bUrl30sEgA==
   dependencies:
     "@types/express" "*"
 
 "@types/q@^1.5.1":
-  version "1.5.2"
-  resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8"
-  integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==
+  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==
 
 "@types/range-parser@*":
   version "1.2.3"
   resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c"
   integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==
 
-"@types/readable-stream@^2.3.5":
-  version "2.3.5"
-  resolved "https://registry.yarnpkg.com/@types/readable-stream/-/readable-stream-2.3.5.tgz#99c215f9c78563ebdfeff400246a724fb36bae4a"
-  integrity sha512-Mq2eLkGYamlcolW603FY2ROBvcl90jPF+3jLkjpBV6qS+2aVeJqlgRG0TVAa1oWbmPdb5yOWlOPVvQle76nUNw==
+"@types/readable-stream@^2.3.5", "@types/readable-stream@^2.3.9":
+  version "2.3.9"
+  resolved "https://registry.yarnpkg.com/@types/readable-stream/-/readable-stream-2.3.9.tgz#40a8349e6ace3afd2dd1b6d8e9b02945de4566a9"
+  integrity sha512-sqsgQqFT7HmQz/V5jH1O0fvQQnXAJO46Gg9LRO/JPfjmVmGUlcx831TZZO3Y3HtWhIkzf3kTsNT0Z0kzIhIvZw==
   dependencies:
     "@types/node" "*"
     safe-buffer "*"
 
 "@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.7"
+  resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.7.tgz#e51b51a0becda910f9fd04c718044da69d6c492e"
+  integrity sha512-3diZWucbR+xTmbDlU+FRRxBf+31OhFew7cJXML/zh9NmvSPTNoFecAwHB66BUqFgENJtqMiyl7JAwUE/siqdLw==
   dependencies:
-    "@types/express-serve-static-core" "*"
     "@types/mime" "*"
+    "@types/node" "*"
+
+"@types/source-list-map@*":
+  version "0.1.2"
+  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"
@@ -178,150 +262,182 @@
   dependencies:
     "@types/node" "*"
 
-"@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==
+"@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==
   dependencies:
-    "@webassemblyjs/helper-module-context" "1.8.5"
-    "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
-    "@webassemblyjs/wast-parser" "1.8.5"
+    source-map "^0.6.1"
 
-"@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==
+"@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/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==
+"@types/webpack-sources@*":
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-2.0.0.tgz#08216ab9be2be2e1499beaebc4d469cec81e82a7"
+  integrity sha512-a5kPx98CNFRKQ+wqawroFunvFqv7GHm/3KOI52NY9xWADgc8smu4R6prt4EU/M4QfVjvgBkMqU4fBhw3QfMVkg==
+  dependencies:
+    "@types/node" "*"
+    "@types/source-list-map" "*"
+    source-map "^0.7.3"
 
-"@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==
+"@types/webpack@^4.41.8":
+  version "4.41.25"
+  resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.25.tgz#4d3b5aecc4e44117b376280fbfd2dc36697968c4"
+  integrity sha512-cr6kZ+4m9lp86ytQc1jPOJXgINQyz3kLLunZ57jznW+WIAL0JqZbGubQk4GlD42MuQL5JGOABrxdpqqWeovlVQ==
+  dependencies:
+    "@types/anymatch" "*"
+    "@types/node" "*"
+    "@types/tapable" "*"
+    "@types/uglify-js" "*"
+    "@types/webpack-sources" "*"
+    source-map "^0.6.0"
 
-"@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==
+"@webassemblyjs/ast@1.9.0":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964"
+  integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==
   dependencies:
-    "@webassemblyjs/wast-printer" "1.8.5"
+    "@webassemblyjs/helper-module-context" "1.9.0"
+    "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+    "@webassemblyjs/wast-parser" "1.9.0"
 
-"@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/floating-point-hex-parser@1.9.0":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4"
+  integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==
 
-"@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==
+"@webassemblyjs/helper-api-error@1.9.0":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2"
+  integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==
+
+"@webassemblyjs/helper-buffer@1.9.0":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00"
+  integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==
+
+"@webassemblyjs/helper-code-frame@1.9.0":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27"
+  integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==
   dependencies:
-    "@webassemblyjs/ast" "1.8.5"
-    mamacro "^0.0.3"
+    "@webassemblyjs/wast-printer" "1.9.0"
 
-"@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-fsm@1.9.0":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8"
+  integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==
 
-"@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==
+"@webassemblyjs/helper-module-context@1.9.0":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07"
+  integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==
   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/ast" "1.9.0"
 
-"@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==
+"@webassemblyjs/helper-wasm-bytecode@1.9.0":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790"
+  integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==
+
+"@webassemblyjs/helper-wasm-section@1.9.0":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346"
+  integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==
+  dependencies:
+    "@webassemblyjs/ast" "1.9.0"
+    "@webassemblyjs/helper-buffer" "1.9.0"
+    "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+    "@webassemblyjs/wasm-gen" "1.9.0"
+
+"@webassemblyjs/ieee754@1.9.0":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4"
+  integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==
   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==
+"@webassemblyjs/leb128@1.9.0":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95"
+  integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==
   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/utf8@1.9.0":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab"
+  integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==
 
-"@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==
+"@webassemblyjs/wasm-edit@1.9.0":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf"
+  integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==
+  dependencies:
+    "@webassemblyjs/ast" "1.9.0"
+    "@webassemblyjs/helper-buffer" "1.9.0"
+    "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+    "@webassemblyjs/helper-wasm-section" "1.9.0"
+    "@webassemblyjs/wasm-gen" "1.9.0"
+    "@webassemblyjs/wasm-opt" "1.9.0"
+    "@webassemblyjs/wasm-parser" "1.9.0"
+    "@webassemblyjs/wast-printer" "1.9.0"
+
+"@webassemblyjs/wasm-gen@1.9.0":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c"
+  integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==
   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/ast" "1.9.0"
+    "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+    "@webassemblyjs/ieee754" "1.9.0"
+    "@webassemblyjs/leb128" "1.9.0"
+    "@webassemblyjs/utf8" "1.9.0"
 
-"@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==
+"@webassemblyjs/wasm-opt@1.9.0":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61"
+  integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==
   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/ast" "1.9.0"
+    "@webassemblyjs/helper-buffer" "1.9.0"
+    "@webassemblyjs/wasm-gen" "1.9.0"
+    "@webassemblyjs/wasm-parser" "1.9.0"
 
-"@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==
+"@webassemblyjs/wasm-parser@1.9.0":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e"
+  integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==
   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/ast" "1.9.0"
+    "@webassemblyjs/helper-api-error" "1.9.0"
+    "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+    "@webassemblyjs/ieee754" "1.9.0"
+    "@webassemblyjs/leb128" "1.9.0"
+    "@webassemblyjs/utf8" "1.9.0"
 
-"@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"
+"@webassemblyjs/wast-parser@1.9.0":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914"
+  integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==
+  dependencies:
+    "@webassemblyjs/ast" "1.9.0"
+    "@webassemblyjs/floating-point-hex-parser" "1.9.0"
+    "@webassemblyjs/helper-api-error" "1.9.0"
+    "@webassemblyjs/helper-code-frame" "1.9.0"
+    "@webassemblyjs/helper-fsm" "1.9.0"
     "@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==
+"@webassemblyjs/wast-printer@1.9.0":
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899"
+  integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==
   dependencies:
-    "@webassemblyjs/ast" "1.8.5"
-    "@webassemblyjs/wast-parser" "1.8.5"
+    "@webassemblyjs/ast" "1.9.0"
+    "@webassemblyjs/wast-parser" "1.9.0"
     "@xtuc/long" "4.2.2"
 
 "@xtuc/ieee754@^1.2.0":
@@ -344,9 +460,9 @@ JSV@^4.0.x:
   integrity sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c=
 
 abab@^2.0.0:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a"
-  integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==
+  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"
@@ -361,11 +477,6 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7:
     mime-types "~2.1.24"
     negotiator "0.6.2"
 
-acorn-dynamic-import@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948"
-  integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==
-
 acorn-globals@^4.1.0:
   version "4.3.4"
   resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7"
@@ -374,35 +485,25 @@ acorn-globals@^4.1.0:
     acorn "^6.0.1"
     acorn-walk "^6.0.1"
 
-acorn-jsx@^5.0.0, acorn-jsx@^5.0.1:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz#294adb71b57398b0680015f0a38c563ee1db5384"
-  integrity sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==
+acorn-jsx@^5.0.0:
+  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-walk@^7.0.0:
-  version "7.1.1"
-  resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.1.1.tgz#345f0dffad5c735e7373d2fec9a1023e6a44b83e"
-  integrity sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==
-
 acorn@^5.5.3:
-  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.1, acorn@^6.0.7, acorn@^6.1.1, acorn@^6.2.1:
-  version "6.4.0"
-  resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.0.tgz#b659d2ffbafa24baf5db1cdbb2c94a983ecd2784"
-  integrity sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==
-
-acorn@^7.0.0:
-  version "7.1.0"
-  resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c"
-  integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==
+acorn@^6.0.1, acorn@^6.0.7, 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==
 
 adal-node@^0.1.28:
   version "0.1.28"
@@ -424,45 +525,39 @@ after@0.8.2:
   resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f"
   integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=
 
+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:
-  version "3.4.1"
-  resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da"
-  integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==
+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.2, ajv@^6.5.5, ajv@^6.9.1:
-  version "6.11.0"
-  resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.11.0.tgz#c3607cbc8ae392d8a5a536f25b21f8e5f3f87fe9"
-  integrity sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==
+ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.9.1:
+  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"
 
-align-text@^0.1.1, align-text@^0.1.3:
-  version "0.1.4"
-  resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
-  integrity sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=
-  dependencies:
-    kind-of "^3.0.2"
-    longest "^1.0.1"
-    repeat-string "^1.5.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-colors@^3.0.0:
-  version "3.2.4"
-  resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf"
-  integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==
-
 ansi-escapes@^3.2.0:
   version "3.2.0"
   resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
@@ -483,6 +578,11 @@ ansi-regex@^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@^2.2.1:
   version "2.2.1"
   resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
@@ -495,16 +595,18 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1:
   dependencies:
     color-convert "^1.9.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"
+
 ansi-styles@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178"
   integrity sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=
 
-ansicolors@~0.3.2:
-  version "0.3.2"
-  resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979"
-  integrity sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=
-
 any-promise@^1.3.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
@@ -526,36 +628,47 @@ anymatch@^2.0.0:
     micromatch "^3.1.4"
     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==
+  dependencies:
+    normalize-path "^3.0.0"
+    picomatch "^2.0.4"
+
 aproba@^1.0.3, aproba@^1.1.1:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
   integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
 
-archiver-utils@^1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-1.3.0.tgz#e50b4c09c70bf3d680e32ff1b7994e9f9d895174"
-  integrity sha1-5QtMCccL89aA4y/xt5lOn52JUXQ=
+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.0.0"
-    graceful-fs "^4.1.0"
+    glob "^7.1.4"
+    graceful-fs "^4.2.0"
     lazystream "^1.0.0"
-    lodash "^4.8.0"
-    normalize-path "^2.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@^2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/archiver/-/archiver-2.1.1.tgz#ff662b4a78201494a3ee544d3a33fe7496509ebc"
-  integrity sha1-/2YrSnggFJSj7lRNOjP+dJZQnrw=
+archiver@^5.0.2:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.1.0.tgz#05b0f6f7836f3e6356a0532763d2bb91017a7e37"
+  integrity sha512-iKuQUP1nuKzBC2PFlGet5twENzCfyODmvkxwDV0cEFXavwcLrIW5ssTuHi9dyTPvpWr6Faweo2eQaQiLIwyXTA==
   dependencies:
-    archiver-utils "^1.3.0"
-    async "^2.0.0"
+    archiver-utils "^2.1.0"
+    async "^3.2.0"
     buffer-crc32 "^0.2.1"
-    glob "^7.0.0"
-    lodash "^4.8.0"
-    readable-stream "^2.0.0"
-    tar-stream "^1.5.0"
-    zip-stream "^1.2.0"
+    readable-stream "^3.6.0"
+    readdir-glob "^1.0.0"
+    tar-stream "^2.1.4"
+    zip-stream "^4.0.4"
 
 are-we-there-yet@~1.1.2:
   version "1.1.5"
@@ -565,7 +678,7 @@ are-we-there-yet@~1.1.2:
     delegates "^1.0.0"
     readable-stream "^2.0.6"
 
-argparse@^1.0.10, argparse@^1.0.7:
+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==
@@ -604,7 +717,7 @@ array-flatten@1.1.1:
   resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
   integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
 
-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==
@@ -613,17 +726,10 @@ array-includes@^3.0.3:
     es-abstract "^1.17.0"
     is-string "^1.0.5"
 
-array-union@^1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
-  integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=
-  dependencies:
-    array-uniq "^1.0.1"
-
-array-uniq@^1.0.1:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
-  integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=
+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.2.1:
   version "0.2.1"
@@ -635,7 +741,7 @@ 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:
+array.prototype.flat@^1.2.3:
   version "1.2.3"
   resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b"
   integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==
@@ -648,19 +754,20 @@ 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, asap@~2.0.3:
+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@^4.0.0:
-  version "4.10.1"
-  resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0"
-  integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==
+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"
 
 asn1@0.2.3:
   version "0.2.3"
@@ -712,17 +819,17 @@ async-limiter@~1.0.0:
   resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
   integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
 
-async@>=0.6.0:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/async/-/async-3.1.1.tgz#dd3542db03de837979c9ebbca64ca01b06dc98df"
-  integrity sha512-X5Dj8hK1pJNC2Wzo2Rcp9FBVdJMGRR/S7V+lH46s8GVFhtbo5O4Le5GECCF/8PISVdkUA6mMPvgz7qTTD1rf1g==
+async@>=0.6.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:
   version "1.5.2"
   resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
   integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=
 
-async@^2.0.0, async@^2.1.4, async@^2.6.1:
+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==
@@ -739,19 +846,12 @@ atob@^2.1.2:
   resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
   integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
 
-autolinker@^3.11.0:
-  version "3.12.0"
-  resolved "https://registry.yarnpkg.com/autolinker/-/autolinker-3.12.0.tgz#1184397c85828041975a3b3135032b7b931966c6"
-  integrity sha512-iQAz75LAZ0dmlaMaIXX0Z+X4yuI6gxONZ14h0YTO0j/3d9DltyD+qkbINpocVZ8oCjMSJUdBeRfrXzGf/zvGZQ==
-  dependencies:
-    tslib "^1.9.3"
-
-aws-sdk@^2.345.0:
-  version "2.619.0"
-  resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.619.0.tgz#daacd97fb8d948c10278071129c12908039ab542"
-  integrity sha512-qujQf27p3mrGZGCL+C+vXCEB08AMm6gS1572fgHrVLBXfy6SjhV4dzEYtt+ZptQm+8z0zuHsDqghJuBCcdpxqQ==
+aws-sdk@^2.521.0:
+  version "2.817.0"
+  resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.817.0.tgz#3a97b690b0ec494cf8ee927affb3973cf26abcc8"
+  integrity sha512-DZIdWpkcqbqsCz0MEskHsyFaqc6Tk9XIFqXAg1AKHbOgC8nU45bz+Y2osX77pU01JkS/G7OhGtGmlKDrOPvFwg==
   dependencies:
-    buffer "4.9.1"
+    buffer "4.9.2"
     events "1.1.1"
     ieee754 "1.1.13"
     jmespath "0.15.0"
@@ -767,9 +867,9 @@ aws-sign2@~0.7.0:
   integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
 
 aws4@^1.8.0:
-  version "1.9.1"
-  resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e"
-  integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==
+  version "1.11.0"
+  resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"
+  integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==
 
 axios@^0.19.0:
   version "0.19.2"
@@ -795,7 +895,7 @@ azure-storage@^2.7.0:
     xml2js "0.2.8"
     xmlbuilder "^9.0.7"
 
-babel-cli@^6.26.0:
+babel-cli@6.26.0:
   version "6.26.0"
   resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1"
   integrity sha1-UCq1SHTX24itALiHoGODzgPQAvE=
@@ -826,7 +926,7 @@ babel-code-frame@^6.26.0:
     esutils "^2.0.2"
     js-tokens "^3.0.2"
 
-babel-core@^6.26.0, babel-core@^6.26.3:
+babel-core@6.26.3, babel-core@^6.26.0:
   version "6.26.3"
   resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207"
   integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==
@@ -978,7 +1078,7 @@ babel-helpers@^6.24.1:
     babel-runtime "^6.22.0"
     babel-template "^6.24.1"
 
-babel-loader@^7.1.4:
+babel-loader@7.1.5:
   version "7.1.5"
   resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.5.tgz#e3ee0cd7394aa557e013b02d3e492bfd07aa6d68"
   integrity sha512-iCHfbieL5d1LfOQeeVJEUyD9rTwBcP/fcEbRCfempxTDuqrKpu0AZjLAQHEQa3Yqyj9ORKe2iHfoj4rHLf7xpw==
@@ -1231,7 +1331,7 @@ babel-plugin-transform-regenerator@^6.22.0:
   dependencies:
     regenerator-transform "^0.10.0"
 
-babel-plugin-transform-runtime@^6.23.0:
+babel-plugin-transform-runtime@6.23.0:
   version "6.23.0"
   resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz#88490d446502ea9b8e7efb0fe09ec4d99479b1ee"
   integrity sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=
@@ -1246,7 +1346,7 @@ babel-plugin-transform-strict-mode@^6.24.1:
     babel-runtime "^6.22.0"
     babel-types "^6.24.1"
 
-babel-polyfill@^6.26.0:
+babel-polyfill@6.26.0, babel-polyfill@^6.26.0:
   version "6.26.0"
   resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153"
   integrity sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=
@@ -1255,7 +1355,7 @@ babel-polyfill@^6.26.0:
     core-js "^2.5.0"
     regenerator-runtime "^0.10.5"
 
-babel-preset-env@^1.7.0:
+babel-preset-env@1.7.0:
   version "1.7.0"
   resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a"
   integrity sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==
@@ -1304,7 +1404,7 @@ babel-register@^6.26.0:
     mkdirp "^0.5.1"
     source-map-support "^0.4.15"
 
-babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0:
+babel-runtime@6.26.0, babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0:
   version "6.26.0"
   resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
   integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
@@ -1365,25 +1465,35 @@ backoff@^2.5.0:
   dependencies:
     precond "0.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.0"
   resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
   integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
 
+base64-arraybuffer@0.1.4:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812"
+  integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=
+
 base64-arraybuffer@0.1.5:
   version "0.1.5"
   resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8"
   integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg=
 
-base64-js@^1.0.2:
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1"
-  integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==
+base64-js@^1.0.2, 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==
 
-base64id@1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6"
-  integrity sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=
+base64id@2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6"
+  integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==
 
 base64url@3.x.x, base64url@^3.0.0:
   version "3.0.1"
@@ -1403,7 +1513,7 @@ base@^0.11.1:
     mixin-deep "^1.2.0"
     pascalcase "^0.1.1"
 
-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==
@@ -1439,6 +1549,11 @@ binary-extensions@^1.0.0:
   resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65"
   integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==
 
+binary-extensions@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9"
+  integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==
+
 bindings@^1.5.0:
   version "1.5.0"
   resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df"
@@ -1446,29 +1561,21 @@ bindings@^1.5.0:
   dependencies:
     file-uri-to-path "1.0.0"
 
-bl@^1.0.0:
-  version "1.2.2"
-  resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c"
-  integrity sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==
-  dependencies:
-    readable-stream "^2.3.5"
-    safe-buffer "^5.1.1"
-
 bl@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/bl/-/bl-3.0.0.tgz#3611ec00579fd18561754360b21e9f784500ff88"
-  integrity sha512-EUAyP5UHU5hxF8BPT0LKW8gjYLhq1DQIcneOX/pL/m2Alo+OYDQAJlHq+yseMP50Os2nHXOSic6Ss3vSQeyf4A==
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/bl/-/bl-3.0.1.tgz#1cbb439299609e419b5a74d7fce2f8b37d8e5c6f"
+  integrity sha512-jrCW5ZhfQ/Vt07WX1Ngs+yn9BDqPL/gw28S7s9H6QK/gupnizNzJAss5akW20ISgOrbLTlXOOCTJeNUQqruAWQ==
   dependencies:
     readable-stream "^3.0.1"
 
-blint@^1:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/blint/-/blint-1.1.0.tgz#9fcc8134296651099062f8d2ee359e83c7bff8ba"
-  integrity sha512-XSNoVy5Hu6fE3xSL4M7EDrIL5UrxkMlSpOChF9rf3aEKyx1/hI/WIetmfS72JVcDUozbl7usaVt5hWx620Fjig==
+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==
   dependencies:
-    acorn "^7.0.0"
-    acorn-walk "^7.0.0"
-    nomnom "^1.8.1"
+    buffer "^5.5.0"
+    inherits "^2.0.4"
+    readable-stream "^3.4.0"
 
 blob@0.0.5:
   version "0.0.5"
@@ -1484,15 +1591,20 @@ block-stream2@^1.0.0:
     inherits "^2.0.1"
     readable-stream "^2.0.4"
 
-bluebird@^3.5.0, bluebird@^3.5.3, bluebird@^3.5.5:
+bluebird@^3.5.0, bluebird@^3.5.3, 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.1.1, bn.js@^4.4.0:
-  version "4.11.8"
-  resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
-  integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==
+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@^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==
 
 body-parser@1.19.0, body-parser@^1.15.2:
   version "1.19.0"
@@ -1525,7 +1637,7 @@ bootstrap@^3.4.0:
   resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-3.4.1.tgz#c3a347d419e289ad11f4033e3c4132b87c081d72"
   integrity sha512-yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA==
 
-bowser@^2.7.0:
+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==
@@ -1563,15 +1675,22 @@ braces@^2.3.1, braces@^2.3.2:
     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"
+
 brorand@^1.0.1:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
   integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
 
-browser-process-hrtime@^0.1.2:
-  version "0.1.3"
-  resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4"
-  integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==
+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"
@@ -1614,26 +1733,28 @@ browserify-mime@~1.2.9:
   resolved "https://registry.yarnpkg.com/browserify-mime/-/browserify-mime-1.2.9.tgz#aeb1af28de6c0d7a6a2ce40adb68ff18422af31f"
   integrity sha1-rrGvKN5sDXpqLOQK22j/GEIq8x8=
 
-browserify-rsa@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524"
-  integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=
+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 "^4.1.0"
+    bn.js "^5.0.0"
     randombytes "^2.0.1"
 
 browserify-sign@^4.0.0:
-  version "4.0.4"
-  resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298"
-  integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=
-  dependencies:
-    bn.js "^4.1.1"
-    browserify-rsa "^4.0.0"
-    create-hash "^1.1.0"
-    create-hmac "^1.1.2"
-    elliptic "^6.0.0"
-    inherits "^2.0.1"
-    parse-asn1 "^5.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"
@@ -1651,42 +1772,17 @@ browserslist@^3.2.6:
     electron-to-chromium "^1.3.47"
 
 browserslist@^4.0.0:
-  version "4.8.7"
-  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.7.tgz#ec8301ff415e6a42c949d0e66b405eb539c532d0"
-  integrity sha512-gFOnZNYBHrEyUML0xr5NJ6edFaaKbTFX9S9kQHlYfCP0Rit/boRIz4G+Avq6/4haEKJXdGGUnoolx+5MWW2BoA==
-  dependencies:
-    caniuse-lite "^1.0.30001027"
-    electron-to-chromium "^1.3.349"
-    node-releases "^1.1.49"
-
-buble@^0.19.8:
-  version "0.19.8"
-  resolved "https://registry.yarnpkg.com/buble/-/buble-0.19.8.tgz#d642f0081afab66dccd897d7b6360d94030b9d3d"
-  integrity sha512-IoGZzrUTY5fKXVkgGHw3QeXFMUNBFv+9l8a4QJKG1JhG3nCMHTdEX1DCOg8568E2Q9qvAQIiSokv6Jsgx8p2cA==
-  dependencies:
-    acorn "^6.1.1"
-    acorn-dynamic-import "^4.0.0"
-    acorn-jsx "^5.0.1"
-    chalk "^2.4.2"
-    magic-string "^0.25.3"
-    minimist "^1.2.0"
-    os-homedir "^2.0.0"
-    regexpu-core "^4.5.4"
-
-buffer-alloc-unsafe@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0"
-  integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==
-
-buffer-alloc@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec"
-  integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==
+  version "4.14.7"
+  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.7.tgz#c071c1b3622c1c2e790799a37bb09473a4351cb6"
+  integrity sha512-BSVRLCeG3Xt/j/1cCGj1019Wbty0H+Yvu2AOuZSuoaUWn3RatbL33Cxk+Q4jRMRAbOm0p7SLravLjpnT6s0vzQ==
   dependencies:
-    buffer-alloc-unsafe "^1.1.0"
-    buffer-fill "^1.0.0"
+    caniuse-lite "^1.0.30001157"
+    colorette "^1.2.1"
+    electron-to-chromium "^1.3.591"
+    escalade "^3.1.1"
+    node-releases "^1.1.66"
 
-buffer-crc32@^0.2.1:
+buffer-crc32@^0.2.1, buffer-crc32@^0.2.13:
   version "0.2.13"
   resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
   integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
@@ -1696,11 +1792,6 @@ buffer-equal-constant-time@1.0.1:
   resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
   integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=
 
-buffer-fill@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c"
-  integrity sha1-+PeLdniYiO858gXNY39o5wISKyw=
-
 buffer-from@^1.0.0:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
@@ -1716,16 +1807,7 @@ buffer-xor@^1.0.3:
   resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
   integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=
 
-buffer@4.9.1:
-  version "4.9.1"
-  resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298"
-  integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=
-  dependencies:
-    base64-js "^1.0.2"
-    ieee754 "^1.1.4"
-    isarray "^1.0.0"
-
-buffer@^4.3.0:
+buffer@4.9.2, 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==
@@ -1734,20 +1816,20 @@ buffer@^4.3.0:
     ieee754 "^1.1.4"
     isarray "^1.0.0"
 
-buffer@^5.1.0:
-  version "5.4.3"
-  resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.4.3.tgz#3fbc9c69eb713d323e3fc1a895eee0710c072115"
-  integrity sha512-zvj65TkFeIt3i6aj5bIvJDzjjQQGs4o/sNoezg1F1kYap9Nu2jcUdpwzRSJTHMMzG0H7bZkn4rNQpImhuxWX2A==
+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.0.2"
-    ieee754 "^1.1.4"
+    base64-js "^1.3.1"
+    ieee754 "^1.1.13"
 
 bufferutil@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.1.tgz#3a177e8e5819a1243fe16b63a199951a7ad8d4a7"
-  integrity sha512-xowrxvpxojqkagPcWRQVXZl0YXhRhAtBEIq3VoER1NH5Mw1n1o0ojdspp+GS2J//2gCVyrzQDApQ4unGF+QOoA==
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.2.tgz#79f68631910f6b993d870fc77dc0a2894eb96cd5"
+  integrity sha512-AtnG3W6M8B2n4xDQ5R+70EXvOpnXsFYg/AK2yTZd+HQ/oxAdz+GI+DvjmhBw3L0ole+LJ0ngqY4JMbDzkfNzhA==
   dependencies:
-    node-gyp-build "~3.7.0"
+    node-gyp-build "^4.2.0"
 
 builtin-status-codes@^3.0.0:
   version "3.0.0"
@@ -1755,12 +1837,12 @@ builtin-status-codes@^3.0.0:
   integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=
 
 bunyan@^1.8.3:
-  version "1.8.12"
-  resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.12.tgz#f150f0f6748abdd72aeae84f04403be2ef113797"
-  integrity sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=
+  version "1.8.14"
+  resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.14.tgz#3d8c1afea7de158a5238c7cb8a66ab6b38dd45b4"
+  integrity sha512-LlahJUxXzZLuw/hetUQJmRgZ1LF6+cr5TPpRj6jf327AsiIq2jhYEH4oqUUkVKTor+9w2BT3oxVwhzE5lw9tcg==
   optionalDependencies:
     dtrace-provider "~0.8"
-    moment "^2.10.6"
+    moment "^2.19.3"
     mv "~2"
     safe-json-stringify "~1"
 
@@ -1774,10 +1856,10 @@ bytes@3.1.0:
   resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
   integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
 
-cacache@^12.0.2, cacache@^12.0.3:
-  version "12.0.3"
-  resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390"
-  integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==
+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"
@@ -1795,6 +1877,29 @@ cacache@^12.0.2, cacache@^12.0.3:
     unique-filename "^1.1.1"
     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==
+  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.0"
+    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"
@@ -1810,6 +1915,14 @@ cache-base@^1.0.1:
     union-value "^1.0.0"
     unset-value "^1.0.0"
 
+call-bind@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.0.tgz#24127054bb3f9bdcb4b1fb82418186072f77b8ce"
+  integrity sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==
+  dependencies:
+    function-bind "^1.1.1"
+    get-intrinsic "^1.0.0"
+
 caller-callsite@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134"
@@ -1847,10 +1960,13 @@ camel-case@^3.0.0:
     no-case "^2.2.0"
     upper-case "^1.1.1"
 
-camelcase@^1.0.2:
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
-  integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=
+camel-case@^4.1.1:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.1.tgz#1fc41c854f00e2f7d0139dfeba1542d6896fe547"
+  integrity sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==
+  dependencies:
+    pascal-case "^3.1.1"
+    tslib "^1.10.0"
 
 camelcase@^5.0.0, camelcase@^5.3.1:
   version "5.3.1"
@@ -1872,40 +1988,20 @@ 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.30001027:
-  version "1.0.30001027"
-  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001027.tgz#283e2ef17d94889cc216a22c6f85303d78ca852d"
-  integrity sha512-7xvKeErvXZFtUItTHgNtLgS9RJpVnwBlWX8jSo/BO8VsF6deszemZSkJJJA1KOKrXuzZH4WALpAJdq5EyfgMLg==
-
-cardinal@^2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/cardinal/-/cardinal-2.1.1.tgz#7cc1055d822d212954d07b085dea251cc7bc5505"
-  integrity sha1-fMEFXYItISlU0HsIXeolHMe8VQU=
-  dependencies:
-    ansicolors "~0.3.2"
-    redeyed "~2.1.0"
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001157:
+  version "1.0.30001157"
+  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001157.tgz#2d11aaeb239b340bc1aa730eca18a37fdb07a9ab"
+  integrity sha512-gOerH9Wz2IRZ2ZPdMfBvyOi3cjaz4O4dgNwPGzx8EhqAs4+2IL/O+fJsbt+znSigujoZG8bVcIAUM/I/E5K3MA==
 
 caseless@~0.12.0:
   version "0.12.0"
   resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
   integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
 
-center-align@^0.1.1:
-  version "0.1.3"
-  resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
-  integrity sha1-qg0yYptu6XIgBBHL1EYckHvCt60=
-  dependencies:
-    align-text "^0.1.3"
-    lazy-cache "^1.0.3"
-
-chalk@2.4.2, chalk@^2.0.0, chalk@^2.1.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"
+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"
@@ -1918,6 +2014,23 @@ 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:
+  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@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
+  integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
+  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"
@@ -1928,9 +2041,29 @@ chalk@~0.4.0:
     strip-ansi "~0.1.0"
 
 chance@^1.0.4:
+  version "1.1.7"
+  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/chance/-/chance-1.1.4.tgz#d8743bf8e40bb05e024c305ca1ff441195eb23db"
-  integrity sha512-pXPDSu3knKlb6H7ahQfpq//J9mSOxYK8SMtp8MV/nRJh8aLRDIl0ipLH8At8+nVogVwtvPZzyIzY/EbcY/cLuQ==
+  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==
 
 chardet@^0.7.0:
   version "0.7.0"
@@ -1959,7 +2092,7 @@ cheerio@^0.22.0:
     lodash.reject "^4.4.0"
     lodash.some "^4.4.0"
 
-chokidar@^1.6.1, chokidar@^1.7.0:
+chokidar@^1.6.1:
   version "1.7.0"
   resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
   integrity sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=
@@ -1975,7 +2108,7 @@ chokidar@^1.6.1, chokidar@^1.7.0:
   optionalDependencies:
     fsevents "^1.0.0"
 
-chokidar@^2.0.2:
+chokidar@^2.1.8:
   version "2.1.8"
   resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917"
   integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==
@@ -1994,11 +2127,31 @@ chokidar@^2.0.2:
   optionalDependencies:
     fsevents "^1.2.7"
 
+chokidar@^3.0.0, chokidar@^3.4.1:
+  version "3.4.3"
+  resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b"
+  integrity sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==
+  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.1.2"
+
 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.2"
   resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4"
@@ -2024,13 +2177,18 @@ class-utils@^0.3.5:
     isobject "^3.0.0"
     static-extend "^0.1.1"
 
-clean-css@^4.1.6, clean-css@^4.2.1:
+clean-css@^4.1.6, clean-css@^4.2.1, clean-css@^4.2.3:
   version "4.2.3"
   resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78"
   integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==
   dependencies:
     source-map "~0.6.0"
 
+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==
+
 cli-color@^1.4.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/cli-color/-/cli-color-1.4.0.tgz#7d10738f48526824f8fe7da51857cb0f572fe01f"
@@ -2051,28 +2209,19 @@ cli-cursor@^2.1.0:
     restore-cursor "^2.0.0"
 
 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==
 
 clipboard@^2.0.0:
-  version "2.0.4"
-  resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.4.tgz#836dafd66cf0fea5d71ce5d5b0bf6e958009112d"
-  integrity sha512-Vw26VSLRpJfBofiVaFb/I8PVfdI1OxKcYShe6fm0sP/DtmiWQNCjhM/okTvdCo0G+lMMm1rMYbk4IK4x1X+kgQ==
+  version "2.0.6"
+  resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.6.tgz#52921296eec0fdf77ead1749421b21c968647376"
+  integrity sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==
   dependencies:
     good-listener "^1.2.2"
     select "^1.1.2"
     tiny-emitter "^2.0.0"
 
-cliui@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
-  integrity sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=
-  dependencies:
-    center-align "^0.1.1"
-    right-align "^0.1.1"
-    wordwrap "0.0.2"
-
 cliui@^5.0.0:
   version "5.0.0"
   resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
@@ -2082,7 +2231,7 @@ cliui@^5.0.0:
     strip-ansi "^5.2.0"
     wrap-ansi "^5.1.0"
 
-clone@^2.1.1, clone@^2.1.2:
+clone@^2.1.1:
   version "2.1.2"
   resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
   integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=
@@ -2095,6 +2244,11 @@ cls-bluebird@^2.1.0:
     is-bluebird "^1.0.2"
     shimmer "^1.1.0"
 
+co@3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/co/-/co-3.1.0.tgz#4ea54ea5a08938153185e15210c68d9092bc1b78"
+  integrity sha1-TqVOpaCJOBUxheFSEMaNkJK8G3g=
+
 coa@^2.0.2:
   version "2.0.2"
   resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3"
@@ -2109,17 +2263,14 @@ code-point-at@^1.0.0:
   resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
   integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
 
-"codemirror@git+https://github.com/hackmdio/CodeMirror.git":
-  version "5.49.3"
-  resolved "git+https://github.com/hackmdio/CodeMirror.git#2ac9b9f25707606b0c09b99decaf9d08dd434570"
-  dependencies:
-    blint "^1"
-    node-static "0.7.11"
-    phantomjs-prebuilt "^2.1.12"
-    rollup "^0.66.2"
-    rollup-plugin-buble "^0.19.2"
-    rollup-watch "^4.3.1"
-    uglify-js "^2.8.15"
+"codemirror@git+https://github.com/hedgedoc/CodeMirror.git":
+  version "5.58.2"
+  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"
@@ -2136,20 +2287,27 @@ color-convert@^1.9.0, color-convert@^1.9.1:
   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.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.2:
-  version "1.5.3"
-  resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc"
-  integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==
+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==
   dependencies:
     color-name "^1.0.0"
     simple-swizzle "^0.2.2"
@@ -2163,19 +2321,19 @@ color@3.0.x:
     color-string "^1.5.2"
 
 color@^3.0.0:
-  version "3.1.2"
-  resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10"
-  integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==
+  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.2"
+    color-string "^1.5.4"
 
-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=
+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==
 
-colors@>=0.6.0, colors@^1.2.1:
+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==
@@ -2195,7 +2353,7 @@ 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.9.0, commander@~2.20.3:
+commander@2, commander@^2.11.0, commander@^2.13.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==
@@ -2205,12 +2363,7 @@ commander@2.15.1:
   resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f"
   integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==
 
-commander@^3.0.0:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e"
-  integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==
-
-commander@^4.0.0:
+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==
@@ -2230,7 +2383,7 @@ component-emitter@1.2.1, component-emitter@~1.2.0:
   resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
   integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=
 
-component-emitter@^1.2.1:
+component-emitter@^1.2.1, component-emitter@~1.3.0:
   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==
@@ -2240,15 +2393,15 @@ 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@^1.2.0:
-  version "1.2.2"
-  resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-1.2.2.tgz#524a9f10903f3a813389b0225d27c48bb751890f"
-  integrity sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8=
+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==
   dependencies:
-    buffer-crc32 "^0.2.1"
-    crc32-stream "^2.0.0"
-    normalize-path "^2.0.0"
-    readable-stream "^2.0.0"
+    buffer-crc32 "^0.2.13"
+    crc32-stream "^4.0.1"
+    normalize-path "^3.0.0"
+    readable-stream "^3.6.0"
 
 compressible@~2.0.16:
   version "2.0.18"
@@ -2275,7 +2428,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.6.2, concat-stream@^1.4.7, concat-stream@^1.4.8, concat-stream@^1.5.0:
+concat-stream@^1.4.8, 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==
@@ -2285,6 +2438,16 @@ concat-stream@1.6.2, concat-stream@^1.4.7, concat-stream@^1.4.8, concat-stream@^
     readable-stream "^2.2.2"
     typedarray "^0.0.6"
 
+concat-stream@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1"
+  integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==
+  dependencies:
+    buffer-from "^1.0.0"
+    inherits "^2.0.3"
+    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"
@@ -2350,12 +2513,12 @@ convert-source-map@^1.5.0, convert-source-map@^1.5.1:
   dependencies:
     safe-buffer "~5.1.1"
 
-cookie-parser@1.4.3:
-  version "1.4.3"
-  resolved "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.4.3.tgz#0fe31fa19d000b95f4aadf1f53fdc2b8a203baa5"
-  integrity sha1-D+MfoZ0AC5X0qt8fU/3CuKIDuqU=
+cookie-parser@^1.4.3:
+  version "1.4.5"
+  resolved "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.4.5.tgz#3e572d4b7c0c80f9c61daf604e4336831b5d1d49"
+  integrity sha512-f13bPUj/gG/5mDr+xLmSxxDsB9DQiTIfhJS/sqjrmfAWiAN+x2O4i/XguTL9yDZ+/IFDanJ+5x7hC4CXT9Tdzw==
   dependencies:
-    cookie "0.3.1"
+    cookie "0.4.0"
     cookie-signature "1.0.6"
 
 cookie-signature@1.0.6:
@@ -2373,11 +2536,23 @@ cookie@0.4.0:
   resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
   integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==
 
+cookie@^0.4.0:
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1"
+  integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==
+
 cookiejar@2.0.6:
   version "2.0.6"
   resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.0.6.tgz#0abf356ad00d1c5a219d88d44518046dd026acfe"
   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==
+  dependencies:
+    is-what "^3.7.1"
+
 copy-concurrently@^1.0.0:
   version "1.0.5"
   resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0"
@@ -2395,23 +2570,22 @@ copy-descriptor@^0.1.0:
   resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
   integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
 
-copy-webpack-plugin@^5.0.5:
-  version "5.1.1"
-  resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.1.tgz#5481a03dea1123d88a988c6ff8b78247214f0b88"
-  integrity sha512-P15M5ZC8dyCjQHWwd4Ia/dm0SgVvZJMYeykVIVYXbGyqO4dWB5oyPHp9i7wjwo5LhtlhKbiBCdS2NvM07Wlybg==
-  dependencies:
-    cacache "^12.0.3"
-    find-cache-dir "^2.1.0"
-    glob-parent "^3.1.0"
-    globby "^7.1.1"
-    is-glob "^4.0.1"
-    loader-utils "^1.2.3"
-    minimatch "^3.0.4"
+copy-webpack-plugin@6.4.1:
+  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 "^2.2.1"
-    schema-utils "^1.0.0"
-    serialize-javascript "^2.1.2"
-    webpack-log "^2.0.0"
+    p-limit "^3.0.2"
+    schema-utils "^3.0.0"
+    serialize-javascript "^5.0.1"
+    webpack-sources "^1.4.3"
 
 core-js@^2.4.0, core-js@^2.5.0:
   version "2.6.11"
@@ -2433,30 +2607,31 @@ cosmiconfig@^5.0.0:
     js-yaml "^3.13.1"
     parse-json "^4.0.0"
 
-crc32-stream@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-2.0.0.tgz#e3cdd3b4df3168dd74e3de3fbbcb7b297fe908f4"
-  integrity sha1-483TtN8xaN10494/u8t7KX/pCPQ=
+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:
-    crc "^3.4.4"
-    readable-stream "^2.0.0"
+    exit-on-epipe "~1.0.1"
+    printj "~1.1.0"
 
-crc@^3.4.4:
-  version "3.8.0"
-  resolved "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6"
-  integrity sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==
+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==
   dependencies:
-    buffer "^5.1.0"
+    crc-32 "^1.2.0"
+    readable-stream "^3.4.0"
 
 create-ecdh@^4.0.0:
-  version "4.0.3"
-  resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff"
-  integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==
+  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.0.0"
+    elliptic "^6.5.3"
 
-create-hash@^1.1.0, create-hash@^1.1.2:
+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==
@@ -2467,7 +2642,7 @@ create-hash@^1.1.0, create-hash@^1.1.2:
     ripemd160 "^2.0.1"
     sha.js "^2.4.0"
 
-create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
+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==
@@ -2479,7 +2654,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
     safe-buffer "^5.0.1"
     sha.js "^2.4.8"
 
-cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5:
+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==
@@ -2507,13 +2682,6 @@ crypto-browserify@^3.11.0:
     randombytes "^2.0.0"
     randomfill "^1.0.3"
 
-crypto-random-string@^3.0.1:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-3.1.0.tgz#0368382de82e914179ad2ca9c7a788e260184bae"
-  integrity sha512-Tip3yGB+bA7B0W8E4K4mNf2rZhu5r2G5Tb89/utEl5tP1QuLjTF/S9a1b8ifDrR4ORc9Utf6tscpSEtBY3YcPQ==
-  dependencies:
-    type-fest "^0.8.1"
-
 css-b64-images@~0.2.5:
   version "0.2.5"
   resolved "https://registry.yarnpkg.com/css-b64-images/-/css-b64-images-0.2.5.tgz#42005d83204b2b4a5d93b6b1a5644133b5927a02"
@@ -2532,23 +2700,24 @@ css-declaration-sorter@^4.0.1:
     postcss "^7.0.1"
     timsort "^0.3.0"
 
-css-loader@^3.2.0:
-  version "3.4.2"
-  resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.4.2.tgz#d3fdb3358b43f233b78501c5ed7b1c6da6133202"
-  integrity sha512-jYq4zdZT0oS0Iykt+fqnzVLRIeiPWhka+7BqPn+oSIpWJAHak5tmB/WZrJ2a21JhCeFyNnnlroSl8c+MtVndzA==
+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.23"
+    postcss "^7.0.32"
     postcss-modules-extract-imports "^2.0.0"
     postcss-modules-local-by-default "^3.0.2"
-    postcss-modules-scope "^2.1.1"
+    postcss-modules-scope "^2.2.0"
     postcss-modules-values "^3.0.0"
-    postcss-value-parser "^4.0.2"
-    schema-utils "^2.6.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"
@@ -2583,10 +2752,13 @@ css-tree@1.0.0-alpha.37:
     mdn-data "2.0.4"
     source-map "^0.6.1"
 
-css-unit-converter@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996"
-  integrity sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=
+css-tree@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.1.tgz#7726678dfe2a57993a018d9dce519bf1760e3b6d"
+  integrity sha512-WroX+2MvsYcRGP8QA0p+rxzOniT/zpAoQ/DTKDSJzh5T3IQKUkFHeIIfgIapm2uaP178GWY3Mime1qbk8GO/tA==
+  dependencies:
+    mdn-data "2.0.12"
+    source-map "^0.6.1"
 
 css-what@2.1:
   version "2.1.3"
@@ -2594,14 +2766,9 @@ css-what@2.1:
   integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==
 
 css-what@^3.2.1:
-  version "3.2.1"
-  resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.2.1.tgz#f4a8f12421064621b456755e34a03a2c22df5da1"
-  integrity sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw==
-
-cssesc@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703"
-  integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==
+  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"
@@ -2682,11 +2849,11 @@ cssnano@^4.1.10:
     postcss "^7.0.0"
 
 csso@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/csso/-/csso-4.0.2.tgz#e5f81ab3a56b8eefb7f0092ce7279329f454de3d"
-  integrity sha512-kS7/oeNVXkHWxby5tHVxlhjizRCSv8QdU7hB2FpdAibDU8FjTAolhNjKNTiLzXtUrKT6HwClE81yXwEk1309wg==
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/csso/-/csso-4.1.0.tgz#1d31193efa99b87aa6bad6c0cef155e543d09e8b"
+  integrity sha512-h+6w/W1WqXaJA4tb1dk7r5tVbOm97MsKxzwnvOR04UQ6GILroryjMWu3pmCCtL2mLaEStQ0fZgeGiy99mo7iyg==
   dependencies:
-    css-tree "1.0.0-alpha.37"
+    css-tree "^1.0.0"
 
 cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0":
   version "0.3.8"
@@ -2728,9 +2895,9 @@ d3-axis@1:
   integrity sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==
 
 d3-brush@1:
-  version "1.1.5"
-  resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-1.1.5.tgz#066b8e84d17b192986030446c97c0fba7e1bacdc"
-  integrity sha512-rEaJ5gHlgLxXugWjIkolTA0OyMvw8UWU1imYXy1v642XyyswmI1ybKOv05Ft+ewq+TFmdliD3VuK0pRp1VT/5A==
+  version "1.1.6"
+  resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-1.1.6.tgz#b0a22c7372cabec128bdddf9bddc058592f89e9b"
+  integrity sha512-7RW+w7HfMCPyZLifTz/UnJmI5kdkXtpCbombUSs8xniAyo0vIbrDzDwUJB6eJOgl9u5DQOt2TQlYumxzD1SvYA==
   dependencies:
     d3-dispatch "1"
     d3-drag "1"
@@ -2752,9 +2919,9 @@ d3-collection@1:
   integrity sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==
 
 d3-color@1:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.4.0.tgz#89c45a995ed773b13314f06460df26d60ba0ecaf"
-  integrity sha512-TzNPeJy2+iEepfiL92LAAB7fvnp/dV2YwANPVHdDWmYMm23qIJBYww3qT8I8C1wXrmrg4UWs7BKc2tKIgyjzHg==
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.4.1.tgz#c52002bf8846ada4424d55d97982fef26eb3bc8a"
+  integrity sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==
 
 d3-contour@1:
   version "1.3.2"
@@ -2786,14 +2953,14 @@ d3-dsv@1:
     rw "1"
 
 d3-ease@1:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.6.tgz#ebdb6da22dfac0a22222f2d4da06f66c416a0ec0"
-  integrity sha512-SZ/lVU7LRXafqp7XtIcBdxnWl8yyLpgOmzAk0mWBI9gXNzLDx5ybZgnRbH9dN/yY5tzVBqCQ9avltSnqVwessQ==
+  version "1.0.7"
+  resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.7.tgz#9a834890ef8b8ae8c558b2fe55bd57f5993b85e2"
+  integrity sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==
 
 d3-fetch@1:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-1.1.2.tgz#957c8fbc6d4480599ba191b1b2518bf86b3e1be2"
-  integrity sha512-S2loaQCV/ZeyTyIF2oP8D1K9Z4QizUzW7cWeAOAS4U88qOt3Ucf6GsmgthuYSdyB2HyEm4CeGvkQxWsmInsIVA==
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-1.2.0.tgz#15ce2ecfc41b092b1db50abd2c552c2316cf7fc7"
+  integrity sha512-yC78NBVcd2zFAyR/HnUiBS7Lf6inSCoWcSxFfw8FYL7ydiqe80SazNwoffcqOfs95XaLo7yebsmQqDKSsXUtvA==
   dependencies:
     d3-dsv "1"
 
@@ -2808,14 +2975,14 @@ d3-force@1:
     d3-timer "1"
 
 d3-format@1:
-  version "1.4.3"
-  resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.4.3.tgz#4e8eb4dff3fdcb891a8489ec6e698601c41b96f1"
-  integrity sha512-mm/nE2Y9HgGyjP+rKIekeITVgBtX97o1nrvHCWX8F/yBYyevUTvu9vb5pUnKwrcSw7o7GuwMOWjS9gFDs4O+uQ==
+  version "1.4.5"
+  resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.4.5.tgz#374f2ba1320e3717eb74a9356c67daee17a7edb4"
+  integrity sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==
 
 d3-geo@1:
-  version "1.11.9"
-  resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.11.9.tgz#77eaed14ba62fc2c0aef55cd2943849c866f7ae6"
-  integrity sha512-9edcH6J3s/Aa3KJITWqFJbyB/8q3mMlA9Fi7z6yy+FAYMnRaxmC7jBhUnsINxVWD14GmqX3DK8uk7nV6/Ekt4A==
+  version "1.12.1"
+  resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.12.1.tgz#7fc2ab7414b72e59fbcbd603e80d9adc029b035f"
+  integrity sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==
   dependencies:
     d3-array "1"
 
@@ -2872,9 +3039,9 @@ d3-scale@2:
     d3-time-format "2"
 
 d3-selection@1, d3-selection@^1.1.0:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.1.tgz#98eedbbe085fbda5bafa2f9e3f3a2f4d7d622a98"
-  integrity sha512-BTIbRjv/m5rcVTfBs4AMBLKs4x8XaaLkwm28KWu9S2vKNqXkXt2AH2Qf0sdPZHjFxcWg/YL53zcqAz+3g4/7PA==
+  version "1.4.2"
+  resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.2.tgz#dcaa49522c0dbf32d6c1858afc26b6094555bc5c"
+  integrity sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==
 
 d3-shape@1:
   version "1.3.7"
@@ -2884,9 +3051,9 @@ d3-shape@1:
     d3-path "1"
 
 d3-time-format@2:
-  version "2.2.3"
-  resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.2.3.tgz#0c9a12ee28342b2037e5ea1cf0b9eb4dd75f29cb"
-  integrity sha512-RAHNnD8+XvC4Zc4d2A56Uw0yJoM7bsvOlJR33bclxq399Rak/b9bhvu/InjxdWhPtkgU53JJcleJTGkNRnN6IA==
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.3.0.tgz#107bdc028667788a8924ba040faf1fbccd5a7850"
+  integrity sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==
   dependencies:
     d3-time "1"
 
@@ -2929,9 +3096,9 @@ d3-zoom@1:
     d3-transition "1"
 
 d3@^5.14, d3@^5.7.0:
-  version "5.15.0"
-  resolved "https://registry.yarnpkg.com/d3/-/d3-5.15.0.tgz#ffd44958e6a3cb8a59a84429c45429b8bca5677a"
-  integrity sha512-C+E80SL2nLLtmykZ6klwYj5rPqB5nlfN5LdWEAVdWPppqTD8taoJi2PxLZjPeYT8FFRR2yucXq+kBlOnnvZeLg==
+  version "5.16.0"
+  resolved "https://registry.yarnpkg.com/d3/-/d3-5.16.0.tgz#9c5e8d3b56403c79d4ed42fbd62f6113f199c877"
+  integrity sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw==
   dependencies:
     d3-array "1"
     d3-axis "1"
@@ -3017,13 +3184,6 @@ date-utils@*:
   resolved "https://registry.yarnpkg.com/date-utils/-/date-utils-1.2.21.tgz#61fb16cdc1274b3c9acaaffe9fc69df8720a2b64"
   integrity sha1-YfsWzcEnSzyayq/+n8ad+HIKK2Q=
 
-debug@*, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
-  integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
-  dependencies:
-    ms "^2.1.1"
-
 debug@2, debug@2.6.9, 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"
@@ -3045,7 +3205,28 @@ debug@^3.1.0, debug@^3.2.6:
   dependencies:
     ms "^2.1.1"
 
-decamelize@^1.0.0, decamelize@^1.2.0:
+debug@^4.0.0, debug@^4.0.1, debug@^4.1.1:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1"
+  integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==
+  dependencies:
+    ms "2.1.2"
+
+debug@^4.1.0:
+  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==
+  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=
@@ -3176,18 +3357,9 @@ detect-libc@^1.0.2:
   resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
   integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
 
-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-match-patch@git+https://github.com/hackmdio/diff-match-patch.git":
   version "1.1.1"
-  resolved "git+https://github.com/hackmdio/diff-match-patch.git#5b73bb82454a81ecdbdb81afb4bea4c36132fbaa"
+  resolved "git+https://github.com/hackmdio/diff-match-patch.git#c2f8fb9d69aa9490b764850aa86ba442c93ccf78"
 
 diff@3.5.0:
   version "3.5.0"
@@ -3203,17 +3375,12 @@ diffie-hellman@^5.0.0:
     miller-rabin "^4.0.0"
     randombytes "^2.0.0"
 
-dir-glob@^2.0.0:
-  version "2.2.2"
-  resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4"
-  integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==
+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 "^3.0.0"
-
-dns-prefetch-control@0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/dns-prefetch-control/-/dns-prefetch-control-0.2.0.tgz#73988161841f3dcc81f47686d539a2c702c88624"
-  integrity sha512-hvSnros73+qyZXhHFjx2CMLwoj3Fe7eR9EJsFsqmcI1bB2OBWL/+0YzaEaKssCHnj/6crawNnUyw74Gm2EKe+Q==
+    path-type "^4.0.0"
 
 doctrine@1.5.0:
   version "1.5.0"
@@ -3264,9 +3431,9 @@ domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1:
   integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
 
 domelementtype@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d"
-  integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.2.tgz#f3b6e549201e46f588b59463dd77187131fe6971"
+  integrity sha512-wFwTwCVebUrMgGeAwRL/NhZtHAUyT9n9yg4IMDwf10+6iCMxSkVq9MGCVEH+QZWo1nNidy8kNvwmv4zWHDTqvA==
 
 domexception@^1.0.1:
   version "1.0.1"
@@ -3303,10 +3470,18 @@ dont-sniff-mimetype@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.3:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.3.tgz#21d3b52efaaba2ea5fda875bb1aa8124521cf4aa"
+  integrity sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA==
+  dependencies:
+    no-case "^3.0.3"
+    tslib "^1.10.0"
+
 dot-prop@^5.2.0:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb"
-  integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==
+  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"
 
@@ -3322,11 +3497,6 @@ dtrace-provider@~0.8:
   dependencies:
     nan "^2.14.0"
 
-duplexer@^0.1.1:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
-  integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=
-
 duplexify@^3.4.2, duplexify@^3.6.0:
   version "3.7.1"
   resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309"
@@ -3372,15 +3542,15 @@ ejs@^2.5.5:
   resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba"
   integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==
 
-electron-to-chromium@^1.3.349, electron-to-chromium@^1.3.47:
-  version "1.3.352"
-  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.352.tgz#f0fc1e561104dbfba55cb3d45cad3626dc75d7e9"
-  integrity sha512-dL/RyoueFG3UMhG0q3weAQvr+Tbqx/axAnOXYIIOsoYnV+2i+nRvX2S6msEo2+JARbBP8MFkkSYQ8AoY9Bh4Og==
+electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.591:
+  version "1.3.596"
+  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.596.tgz#c7ed98512c7ff36ddcbfed9e54e6355335c35257"
+  integrity sha512-nLO2Wd2yU42eSoNJVQKNf89CcEGqeFZd++QsnN2XIgje1s/19AgctfjLIbPORlvcCO8sYjLwX4iUgDdusOY8Sg==
 
-elliptic@^6.0.0:
-  version "6.5.2"
-  resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762"
-  integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==
+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==
   dependencies:
     bn.js "^4.4.0"
     brorand "^1.0.1"
@@ -3395,88 +3565,82 @@ emoji-regex@^7.0.1:
   resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
   integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
 
-emojify.js@~1.1.0:
+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:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/emojify.js/-/emojify.js-1.1.0.tgz#079fff223307c9007f570785e8e4935d5c398beb"
   integrity sha1-B5//IjMHyQB/VweF6OSTXVw5i+s=
 
-emojis-list@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
-  integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k=
+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"
+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.0.0, end-of-stream@^1.1.0:
+end-of-stream@^1.0.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==
   dependencies:
     once "^1.4.0"
 
-engine.io-client@~3.2.0:
-  version "3.2.1"
-  resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz#6f54c0475de487158a1a7c77d10178708b6add36"
-  integrity sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==
+engine.io-client@~3.4.0:
+  version "3.4.4"
+  resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.4.4.tgz#77d8003f502b0782dd792b073a4d2cf7ca5ab967"
+  integrity sha512-iU4CRr38Fecj8HoZEnFtm2EiKGbYZcPn3cHxqNGl/tmdWRf60KhK+9vE0JeSjgnlS/0oynEfLgKbT9ALpim0sQ==
   dependencies:
-    component-emitter "1.2.1"
+    component-emitter "~1.3.0"
     component-inherit "0.0.3"
     debug "~3.1.0"
-    engine.io-parser "~2.1.1"
+    engine.io-parser "~2.2.0"
     has-cors "1.1.0"
     indexof "0.0.1"
-    parseqs "0.0.5"
-    parseuri "0.0.5"
-    ws "~3.3.1"
+    parseqs "0.0.6"
+    parseuri "0.0.6"
+    ws "~6.1.0"
     xmlhttprequest-ssl "~1.5.4"
     yeast "0.1.2"
 
-engine.io-parser@~2.1.0, engine.io-parser@~2.1.1:
-  version "2.1.3"
-  resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz#757ab970fbf2dfb32c7b74b033216d5739ef79a6"
-  integrity sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==
+engine.io-parser@~2.2.0:
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.1.tgz#57ce5611d9370ee94f99641b589f94c97e4f5da7"
+  integrity sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==
   dependencies:
     after "0.8.2"
     arraybuffer.slice "~0.0.7"
-    base64-arraybuffer "0.1.5"
+    base64-arraybuffer "0.1.4"
     blob "0.0.5"
     has-binary2 "~1.0.2"
 
-engine.io@~3.2.0:
-  version "3.2.1"
-  resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.1.tgz#b60281c35484a70ee0351ea0ebff83ec8c9522a2"
-  integrity sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==
+engine.io@~3.4.0:
+  version "3.4.2"
+  resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.4.2.tgz#8fc84ee00388e3e228645e0a7d3dfaeed5bd122c"
+  integrity sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==
   dependencies:
     accepts "~1.3.4"
-    base64id "1.0.0"
+    base64id "2.0.0"
     cookie "0.3.1"
-    debug "~3.1.0"
-    engine.io-parser "~2.1.0"
-    ws "~3.3.1"
-
-enhanced-resolve@4.1.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f"
-  integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==
-  dependencies:
-    graceful-fs "^4.1.2"
-    memory-fs "^0.4.0"
-    tapable "^1.0.0"
+    debug "~4.1.0"
+    engine.io-parser "~2.2.0"
+    ws "^7.1.2"
 
-enhanced-resolve@^4.1.0:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz#2937e2b8066cd0fe7ce0990a98f0d71a35189f66"
-  integrity sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==
+enhanced-resolve@^4.1.1, enhanced-resolve@^4.3.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126"
+  integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==
   dependencies:
     graceful-fs "^4.1.2"
     memory-fs "^0.5.0"
@@ -3487,15 +3651,22 @@ entities@^1.1.1, entities@~1.1.1:
   resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56"
   integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==
 
-entities@^2.0.0, entities@~2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4"
-  integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==
+entities@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5"
+  integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==
 
-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==
+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"
+  integrity sha512-5CCY/3ci4MC1m2jlumNjWd7VBFt4VfFnmSqSNmVcXq4gxM3Vmarxtt+SvmBnzwLS669MWdVuXboNVj1qN2esVg==
+  dependencies:
+    he "^1.1.1"
 
 errno@^0.1.1, errno@^0.1.3, errno@~0.1.7:
   version "0.1.7"
@@ -3512,21 +3683,39 @@ error-ex@^1.2.0, error-ex@^1.3.1:
     is-arrayish "^0.2.1"
 
 es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2:
-  version "1.17.4"
-  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.4.tgz#e3aedf19706b20e7c2594c35fc0d57605a79e184"
-  integrity sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==
+  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==
   dependencies:
     es-to-primitive "^1.2.1"
     function-bind "^1.1.1"
     has "^1.0.3"
     has-symbols "^1.0.1"
-    is-callable "^1.1.5"
-    is-regex "^1.0.5"
-    object-inspect "^1.7.0"
+    is-callable "^1.2.2"
+    is-regex "^1.1.1"
+    object-inspect "^1.8.0"
     object-keys "^1.1.1"
-    object.assign "^4.1.0"
-    string.prototype.trimleft "^2.1.1"
-    string.prototype.trimright "^2.1.1"
+    object.assign "^4.1.1"
+    string.prototype.trimend "^1.0.1"
+    string.prototype.trimstart "^1.0.1"
+
+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==
+  dependencies:
+    es-to-primitive "^1.2.1"
+    function-bind "^1.1.1"
+    has "^1.0.3"
+    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"
 
 es-to-primitive@^1.2.1:
   version "1.2.1"
@@ -3560,11 +3749,6 @@ es6-iterator@^2.0.3, es6-iterator@~2.0.3:
     es5-ext "^0.10.35"
     es6-symbol "^3.1.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-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"
@@ -3583,6 +3767,11 @@ es6-weak-map@^2.0.2:
     es6-iterator "^2.0.3"
     es6-symbol "^3.1.1"
 
+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:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
@@ -3593,15 +3782,10 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1
   resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
   integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
 
-escaper@^2.5.3:
-  version "2.5.3"
-  resolved "https://registry.yarnpkg.com/escaper/-/escaper-2.5.3.tgz#8b8fe90ba364054151ab7eff18b4ce43b1e13ab5"
-  integrity sha512-QGb9sFxBVpbzMggrKTX0ry1oiI4CSDAl9vIL702hzl1jGW8VZs7qfqTRX7WDOjoNDoEVGcEtu1ZOQgReSfT2kQ==
-
 escodegen@^1.9.1:
-  version "1.14.1"
-  resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.1.tgz#ba01d0c8278b5e95a9a45350142026659027a457"
-  integrity sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==
+  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"
@@ -3610,23 +3794,23 @@ escodegen@^1.9.1:
   optionalDependencies:
     source-map "~0.6.1"
 
-eslint-config-standard@^12.0.0:
+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-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==
+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.4.1:
-  version "2.5.2"
-  resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.5.2.tgz#7878f7504824e1b857dd2505b59a8e5eda26a708"
-  integrity sha512-LGScZ/JSlqGKiT8OC+cYRxseMjyqt6QO54nl281CK93unD89ijSeRV6An8Ci/2nvWVKe8K/Tqdm75RQoIOCr+Q==
+eslint-module-utils@^2.6.0:
+  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.9"
     pkg-dir "^2.0.0"
@@ -3639,25 +3823,26 @@ eslint-plugin-es@^1.3.1:
     eslint-utils "^1.4.2"
     regexpp "^2.0.1"
 
-eslint-plugin-import@^2.14.0:
-  version "2.20.1"
-  resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.1.tgz#802423196dcb11d9ce8435a5fc02a6d3b46939b3"
-  integrity sha512-qQHgFOTjguR+LnYRoToeZWT62XM55MBVXObHM6SKFd1VzDcX/vqT1kAz8ssqigh5eMj8qXcRoXXGZpPP6RfdCw==
+eslint-plugin-import@2.22.1:
+  version "2.22.1"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz#0896c7e6a0cf44109a2d97b95903c2bb689d7702"
+  integrity sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==
   dependencies:
-    array-includes "^3.0.3"
-    array.prototype.flat "^1.2.1"
+    array-includes "^3.1.1"
+    array.prototype.flat "^1.2.3"
     contains-path "^0.1.0"
     debug "^2.6.9"
     doctrine "1.5.0"
-    eslint-import-resolver-node "^0.3.2"
-    eslint-module-utils "^2.4.1"
+    eslint-import-resolver-node "^0.3.4"
+    eslint-module-utils "^2.6.0"
     has "^1.0.3"
     minimatch "^3.0.4"
-    object.values "^1.1.0"
+    object.values "^1.1.1"
     read-pkg-up "^2.0.0"
-    resolve "^1.12.0"
+    resolve "^1.17.0"
+    tsconfig-paths "^3.9.0"
 
-eslint-plugin-node@^8.0.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==
@@ -3669,15 +3854,15 @@ eslint-plugin-node@^8.0.0:
     resolve "^1.8.1"
     semver "^5.5.0"
 
-eslint-plugin-promise@^4.0.1:
+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-standard@^4.0.0:
-  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-plugin-standard@4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz#0c3bf3a67e853f8bbbc580fb4945fbf16f41b7c5"
+  integrity sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ==
 
 eslint-scope@^4.0.3:
   version "4.0.3"
@@ -3695,11 +3880,11 @@ eslint-utils@^1.3.1, eslint-utils@^1.4.2:
     eslint-visitor-keys "^1.1.0"
 
 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==
+  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.9.0:
+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==
@@ -3750,34 +3935,34 @@ espree@^5.0.1:
     acorn-jsx "^5.0.0"
     eslint-visitor-keys "^1.0.0"
 
-esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0:
+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.0.1:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.1.0.tgz#c5c0b66f383e7656404f86b31334d72524eddb48"
-  integrity sha512-MxYW9xKmROWF672KqjO75sszsA8Mxhw06YFeS5VHlB98KDHbOSurm3ArsjO60Eaf3QmGMCP1yn+0JQkNLo/97Q==
+  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"
-  resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
-  integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==
+  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 "^4.1.0"
+    estraverse "^5.2.0"
 
-estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.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==
 
-estree-walker@^0.6.1:
-  version "0.6.1"
-  resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362"
-  integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==
+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"
@@ -3794,10 +3979,10 @@ eve-raphael@0.5.0:
   resolved "https://registry.yarnpkg.com/eve-raphael/-/eve-raphael-0.5.0.tgz#17c754b792beef3fa6684d79cf5a47c63c4cda30"
   integrity sha1-F8dUt5K+7z+maE15z1pHxjxM2jA=
 
-eve@~0.4.2:
-  version "0.4.2"
-  resolved "https://registry.yarnpkg.com/eve/-/eve-0.4.2.tgz#7eea0afc0e4efb7c9365615315a3576833ead2ae"
-  integrity sha1-fuoK/A5O+3yTZWFTFaNXaDPq0q4=
+eve@~0.5.1:
+  version "0.5.4"
+  resolved "https://registry.yarnpkg.com/eve/-/eve-0.5.4.tgz#67d080b9725291d7e389e34c26860dd97f1debaa"
+  integrity sha1-Z9CAuXJSkdfjieNMJoYN2X8d66o=
 
 event-emitter@^0.3.5:
   version "0.3.5"
@@ -3813,9 +3998,9 @@ events@1.1.1:
   integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=
 
 events@^3.0.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59"
-  integrity sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379"
+  integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==
 
 evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
   version "1.0.3"
@@ -3825,18 +4010,10 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
     md5.js "^1.3.4"
     safe-buffer "^5.1.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"
+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@^0.1.4:
   version "0.1.5"
@@ -3872,20 +4049,15 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2:
   dependencies:
     homedir-polyfill "^1.0.1"
 
-expect-ct@0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/expect-ct/-/expect-ct-0.2.0.tgz#3a54741b6ed34cc7a93305c605f63cd268a54a62"
-  integrity sha512-6SK3MG/Bbhm8MsgyJAylg+ucIOU71/FzyFalcfu5nY19dH8y/z0tBJU0wrNBXD4B27EoQtqPF/9wqH0iYAd04g==
-
-expose-loader@^0.7.5:
+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==
 
 express-session@^1.14.2:
-  version "1.17.0"
-  resolved "https://registry.yarnpkg.com/express-session/-/express-session-1.17.0.tgz#9b50dbb5e8a03c3537368138f072736150b7f9b3"
-  integrity sha512-t4oX2z7uoSqATbMfsxWMbNjAL0T5zpvcJCk3Z9wnPPN7ibddhnmDZXHfEcoBMG2ojKXZoCyPMc5FbtK+G7SoDg==
+  version "1.17.1"
+  resolved "https://registry.yarnpkg.com/express-session/-/express-session-1.17.1.tgz#36ecbc7034566d38c8509885c044d461c11bf357"
+  integrity sha512-UbHwgqjxQZJiWRTMyhvWGvjBQduGCSBDhhZXYenziMFjxst5rMV+aJZ6hKPHZnPyHGsrqRICxtX8jtEbm/z36Q==
   dependencies:
     cookie "0.4.0"
     cookie-signature "1.0.6"
@@ -3959,7 +4131,7 @@ extend@3.0.0:
   resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4"
   integrity sha1-WkdDU7nzNT3dgXbf03uRyDpG8dQ=
 
-extend@^3.0.2, extend@~3.0.2:
+extend@^3.0.0, 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==
@@ -3994,16 +4166,6 @@ extglob@^2.0.4:
     snapdragon "^0.8.1"
     to-regex "^3.0.1"
 
-extract-zip@^1.6.5:
-  version "1.6.7"
-  resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9"
-  integrity sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=
-  dependencies:
-    concat-stream "1.6.2"
-    debug "2.6.9"
-    mkdirp "0.5.1"
-    yauzl "2.4.1"
-
 extsprintf@1.2.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.2.0.tgz#5ad946c22f5b32ba7f8cd7426711c6e8a3fc2529"
@@ -4020,9 +4182,21 @@ extsprintf@^1.2.0:
   integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
 
 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==
+  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.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==
+  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"
@@ -4039,27 +4213,34 @@ 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==
 
-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=
+fastq@^1.6.0:
+  version "1.9.0"
+  resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.9.0.tgz#e16a72f338eaca48e91b5c23593bcc2ef66b7947"
+  integrity sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==
+  dependencies:
+    reusify "^1.0.4"
+
+fault@^1.0.0, fault@^1.0.2:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/fault/-/fault-1.0.4.tgz#eafcfc0a6d214fc94601e170df29954a4f842f13"
+  integrity sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==
   dependencies:
-    pend "~1.2.0"
+    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@^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.0"
+  resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.0.tgz#3ffb6395453e3f3efff850404f0a59b6747f5f41"
+  integrity sha512-aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg==
 
 figgy-pudding@^3.5.1:
-  version "3.5.1"
-  resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790"
-  integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==
+  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"
@@ -4068,6 +4249,13 @@ figures@^2.0.0:
   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"
+  integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==
+  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"
@@ -4075,7 +4263,7 @@ file-entry-cache@^5.0.1:
   dependencies:
     flat-cache "^2.0.1"
 
-file-loader@^4.3.0:
+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==
@@ -4088,6 +4276,16 @@ file-saver@^1.3.3:
   resolved "https://registry.yarnpkg.com/file-saver/-/file-saver-1.3.8.tgz#e68a30c7cb044e2fb362b428469feb291c2e09d8"
   integrity sha512-spKHSBQIxxS81N/O21WmuXA2F6wppUCsutpzenOeZzOCCJ5gEfcbqJP983IrpLXzYmXnMUa6J03SubcNPdKrlg==
 
+file-type@^16.1.0:
+  version "16.1.0"
+  resolved "https://registry.yarnpkg.com/file-type/-/file-type-16.1.0.tgz#1c8a4458b2103e07d2b49ae7f76384abafe86529"
+  integrity sha512-G4Klqf6tuprtG0pC4r9kni4Wv8XhAAsfHphVqsQGA+YiOlPAO40BZduDqKfv0RFsu9q9ZbFObWfwszY/NqhEZw==
+  dependencies:
+    readable-web-to-node-stream "^3.0.0"
+    strtok3 "^6.0.3"
+    token-types "^2.0.0"
+    typedarray-to-buffer "^3.1.5"
+
 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"
@@ -4119,6 +4317,13 @@ fill-range@^4.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"
+
 finalhandler@~1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
@@ -4150,6 +4355,15 @@ find-cache-dir@^2.1.0:
     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"
@@ -4164,7 +4378,15 @@ find-up@^3.0.0:
   dependencies:
     locate-path "^3.0.0"
 
-findup-sync@3.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"
+
+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==
@@ -4184,14 +4406,14 @@ flat-cache@^2.0.1:
     write "1.0.3"
 
 flatted@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08"
-  integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138"
+  integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==
 
 flowchart.js@^1.6.4:
-  version "1.13.0"
-  resolved "https://registry.yarnpkg.com/flowchart.js/-/flowchart.js-1.13.0.tgz#fd966270bd310ddefb168d6826c792c5f345372f"
-  integrity sha512-kr+XrH9WSE40ufAec/hs8kbAvSxFx4Fgyf/mjkJwTxWea5USuQAjZt0j9cZJO4ZayWkin9OkWxH4ovLF/5KZFA==
+  version "1.15.0"
+  resolved "https://registry.yarnpkg.com/flowchart.js/-/flowchart.js-1.15.0.tgz#132ba2df14af0a65e67280026ef05a1ffd16569f"
+  integrity sha512-IyCVUFfHPLPgKLynw3NCkZ7CvKJdc/bAu0aHm+2AxKhtSBCiUC1kcTX1KautC3HOp1A2JS1IOcYxDTmcMkx5nQ==
   dependencies:
     raphael "2.3.0"
 
@@ -4203,6 +4425,11 @@ flush-write-stream@^1.0.0:
     inherits "^2.0.3"
     readable-stream "^2.3.6"
 
+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==
+
 follow-redirects@1.5.10:
   version "1.5.10"
   resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a"
@@ -4259,10 +4486,15 @@ form-data@~2.3.2:
     combined-stream "^1.0.6"
     mime-types "^2.1.12"
 
+format@^0.2.0:
+  version "0.2.2"
+  resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b"
+  integrity sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=
+
 formidable@^1.0.17:
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.1.tgz#70fb7ca0290ee6ff961090415f4b3df3d2082659"
-  integrity sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==
+  version "1.2.2"
+  resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.2.tgz#bf69aea2972982675f00865342b982986f6b8dd9"
+  integrity sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==
 
 formidable@~1.0.14:
   version "1.0.17"
@@ -4281,11 +4513,6 @@ fragment-cache@^0.2.1:
   dependencies:
     map-cache "^0.2.2"
 
-frameguard@3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/frameguard/-/frameguard-3.1.0.tgz#bd1442cca1d67dc346a6751559b6d04502103a22"
-  integrity sha512-TxgSKM+7LTA6sidjOiSZK9wxY0ffMPY3Wta//MqwmX0nZuEHc8QrkV8Fh3ZhMJeiH+Uyh/tcaarImRy8u77O7g==
-
 fresh@0.5.2:
   version "0.5.2"
   resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
@@ -4304,15 +4531,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@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950"
-  integrity sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=
-  dependencies:
-    graceful-fs "^4.1.2"
-    jsonfile "^2.1.0"
-    klaw "^1.0.0"
-
 fs-extra@^7.0.1:
   version "7.0.1"
   resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9"
@@ -4329,6 +4547,13 @@ fs-minipass@^1.2.5:
   dependencies:
     minipass "^2.6.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-readdir-recursive@^1.0.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27"
@@ -4350,13 +4575,18 @@ fs.realpath@^1.0.0:
   integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
 
 fsevents@^1.0.0, fsevents@^1.2.7:
-  version "1.2.11"
-  resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.11.tgz#67bf57f4758f02ede88fb2a1712fef4d15358be3"
-  integrity sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==
+  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.1.2:
+  version "2.1.3"
+  resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e"
+  integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==
+
 function-bind@^1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
@@ -4398,12 +4628,14 @@ get-caller-file@^2.0.1:
   resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
   integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
 
-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==
+get-intrinsic@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.1.tgz#94a9768fcbdd0595a1c9273aacf4c89d075631be"
+  integrity sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==
   dependencies:
-    pump "^3.0.0"
+    function-bind "^1.1.1"
+    has "^1.0.3"
+    has-symbols "^1.0.1"
 
 get-value@^2.0.3, get-value@^2.0.6:
   version "2.0.6"
@@ -4417,7 +4649,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=
@@ -4445,6 +4677,13 @@ 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==
+  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"
@@ -4468,7 +4707,7 @@ glob@^6.0.1:
     once "^1.3.0"
     path-is-absolute "^1.0.0"
 
-glob@^7.0.0, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
+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==
@@ -4480,13 +4719,6 @@ glob@^7.0.0, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
     once "^1.3.0"
     path-is-absolute "^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-modules@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea"
@@ -4496,6 +4728,13 @@ global-modules@^1.0.0:
     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"
@@ -4526,17 +4765,17 @@ globals@^9.18.0:
   resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
   integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==
 
-globby@^7.1.1:
-  version "7.1.1"
-  resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680"
-  integrity sha1-+yzP+UAfhgCUXfral0QMypcrhoA=
+globby@^11.0.1:
+  version "11.0.1"
+  resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357"
+  integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==
   dependencies:
-    array-union "^1.0.1"
-    dir-glob "^2.0.0"
-    glob "^7.1.2"
-    ignore "^3.3.5"
-    pify "^3.0.0"
-    slash "^1.0.0"
+    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"
 
 good-listener@^1.2.2:
   version "1.2.2"
@@ -4545,10 +4784,10 @@ good-listener@^1.2.2:
   dependencies:
     delegate "^3.1.2"
 
-graceful-fs@^4.1.0, 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.1.9:
-  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.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==
 
 graphlib@^2.1.7, graphlib@^2.1.8:
   version "2.1.8"
@@ -4563,13 +4802,14 @@ growl@1.10.5:
   integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==
 
 handlebars@^4.5.2:
-  version "4.7.3"
-  resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.3.tgz#8ece2797826886cf8082d1726ff21d2a022550ee"
-  integrity sha512-SRGwSYuNfx8DwHD/6InAPzD6RgeruWLT+B8e8a7gGs8FWgHzlExpTFMEq2IA6QpAfOClpKHy6+8IqTjeBCu6Kg==
+  version "4.7.6"
+  resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.6.tgz#d4c05c1baf90e9945f77aa68a7a219aa4a7df74e"
+  integrity sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==
   dependencies:
+    minimist "^1.2.5"
     neo-async "^2.6.0"
-    optimist "^0.6.1"
     source-map "^0.6.1"
+    wordwrap "^1.0.0"
   optionalDependencies:
     uglify-js "^3.1.4"
 
@@ -4579,11 +4819,11 @@ har-schema@^2.0.0:
   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==
+  version "5.1.5"
+  resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd"
+  integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==
   dependencies:
-    ajv "^6.5.5"
+    ajv "^6.12.3"
     har-schema "^2.0.0"
 
 has-ansi@^2.0.0:
@@ -4615,7 +4855,12 @@ 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, has-symbols@^1.0.1:
+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.1"
   resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
   integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
@@ -4664,12 +4909,13 @@ has@^1.0.0, has@^1.0.3:
     function-bind "^1.1.1"
 
 hash-base@^3.0.0:
-  version "3.0.4"
-  resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918"
-  integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=
+  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.1"
-    safe-buffer "^5.0.1"
+    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"
@@ -4679,20 +4925,12 @@ hash.js@^1.0.0, hash.js@^1.0.3:
     inherits "^2.0.3"
     minimalistic-assert "^1.0.1"
 
-hasha@^2.2.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/hasha/-/hasha-2.2.0.tgz#78d7cbfc1e6d66303fe79837365984517b2f6ee1"
-  integrity sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=
-  dependencies:
-    is-stream "^1.0.1"
-    pinkie-promise "^2.0.0"
-
 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.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==
@@ -4702,33 +4940,29 @@ helmet-crossdomain@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.9.4:
-  version "2.9.4"
-  resolved "https://registry.yarnpkg.com/helmet-csp/-/helmet-csp-2.9.4.tgz#801382bac98f2f88706dc5c89d95c7e31af3a4a9"
-  integrity sha512-qUgGx8+yk7Xl8XFEGI4MFu1oNmulxhQVTlV8HP8tV3tpfslCs30OZz/9uQqsWPvDISiu/NwrrCowsZBhFADYqg==
+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.7.0"
+    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.21.2"
-  resolved "https://registry.yarnpkg.com/helmet/-/helmet-3.21.2.tgz#7e2a19d5f6d898a77b5d2858e8e4bb2cda59f19f"
-  integrity sha512-okUo+MeWgg00cKB8Csblu8EXgcIoDyb5ZS/3u0W4spCimeVuCUvVZ6Vj3O2VJ1Sxpyb8jCDvzu0L1KKT11pkIg==
+  version "3.23.3"
+  resolved "https://registry.yarnpkg.com/helmet/-/helmet-3.23.3.tgz#5ba30209c5f73ded4ab65746a3a11bedd4579ab7"
+  integrity sha512-U3MeYdzPJQhtvqAVBPntVgAvNSOJyagwZwyKsFdyRa8TV3pOKVFljalPOCxbw5Wwf2kncGhmP0qHjyazIdNdSA==
   dependencies:
     depd "2.0.0"
-    dns-prefetch-control "0.2.0"
     dont-sniff-mimetype "1.1.0"
-    expect-ct "0.2.0"
     feature-policy "0.3.0"
-    frameguard "3.1.0"
     helmet-crossdomain "0.4.0"
-    helmet-csp "2.9.4"
+    helmet-csp "2.10.0"
     hide-powered-by "1.1.0"
     hpkp "2.0.0"
     hsts "2.2.0"
-    ienoopen "1.1.0"
     nocache "2.1.0"
     referrer-policy "1.2.0"
     x-xss-protection "1.3.0"
@@ -4743,15 +4977,10 @@ hide-powered-by@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.15.9:
-  version "9.18.1"
-  resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.1.tgz#ed21aa001fe6252bb10a3d76d47573c6539fe13c"
-  integrity sha512-OrVKYz70LHsnCgmbXctv/bfuvntIKDz177h0Co37DQ5jamGZLVmoCVMtjMtNZY3X9DrCcKfklHPNeA0uPZhSJg==
-
-highlight.js@~9.12.0:
-  version "9.12.0"
-  resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.12.0.tgz#e6d9dbe57cbefe60751f02af336195870c90c01e"
-  integrity sha1-5tnb5Xy+/mB1HwKvM2GVhwyQwB4=
+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==
 
 hmac-drbg@^1.0.0:
   version "1.0.1"
@@ -4778,9 +5007,9 @@ homedir-polyfill@^1.0.1:
     parse-passwd "^1.0.0"
 
 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==
+  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"
@@ -4817,17 +5046,17 @@ html-encoding-sniffer@^1.0.2:
     whatwg-encoding "^1.0.1"
 
 html-minifier-terser@^5.0.1:
-  version "5.0.3"
-  resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.0.3.tgz#b33549b57be7f0357be0d0b892995aaed1ed90f8"
-  integrity sha512-It4No3H1V3Dhd/O0MePFdo0oX/M6u6YZTMw4My/010mT6vxdbqge7+0RoxGAmeSbKok6gjYZoP0p4rpZ2+J2yw==
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054"
+  integrity sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==
   dependencies:
-    camel-case "^3.0.0"
-    clean-css "^4.2.1"
-    commander "^4.0.0"
+    camel-case "^4.1.1"
+    clean-css "^4.2.3"
+    commander "^4.1.1"
     he "^1.2.0"
-    param-case "^2.1.1"
+    param-case "^3.0.3"
     relateurl "^0.2.7"
-    terser "^4.3.9"
+    terser "^4.6.3"
 
 html-minifier@^4.0.0:
   version "4.0.0"
@@ -4842,11 +5071,14 @@ html-minifier@^4.0.0:
     relateurl "^0.2.7"
     uglify-js "^3.5.1"
 
-html-webpack-plugin@^4.0.0-beta.11:
-  version "4.0.0-beta.11"
-  resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.0.0-beta.11.tgz#3059a69144b5aecef97708196ca32f9e68677715"
-  integrity sha512-4Xzepf0qWxf8CGg7/WQM5qBB2Lc/NFI7MhU59eUDTkuQp3skZczH4UA1d6oQyDEIoMDgERVhRyTdtUPZ5s5HBg==
+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==
   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"
@@ -4902,16 +5134,16 @@ 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=
 
-i18n@^0.8.3:
-  version "0.8.5"
-  resolved "https://registry.yarnpkg.com/i18n/-/i18n-0.8.5.tgz#3ae2db28fa1670e3f5ba30d3e505958b0b62e7ec"
-  integrity sha512-6UgLbhJGgn4XFeuZc/dDdrrri0ij24EK4hxv4Pbi5hloYAZ1B2+0eQchEryBFezLKYOHhVGV/5+H4i0oxng94w==
+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==
   dependencies:
-    debug "*"
-    make-plural "^6.0.1"
+    debug "^4.1.1"
+    make-plural "^6.2.2"
     math-interval-parser "^2.0.1"
     messageformat "^2.3.0"
-    mustache "*"
+    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:
@@ -4921,13 +5153,20 @@ iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4:
   dependencies:
     safer-buffer ">= 2.1.2 < 3"
 
-iconv-lite@^0.5.0, iconv-lite@^0.5.1:
-  version "0.5.1"
-  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.5.1.tgz#b2425d3c7b18f7219f2ca663d103bddb91718d64"
-  integrity sha512-ONHr16SQvKZNSqjQT9gy5z24Jw+uqfO02/ngBSBoqChZ+W8qXX7GPRa1RoUnzGADw8K63R1BXUMzarCVQBpY8Q==
+iconv-lite@^0.5.0:
+  version "0.5.2"
+  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.5.2.tgz#af6d628dccfb463b7364d97f715e4b74b8c8c2b8"
+  integrity sha512-kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag==
   dependencies:
     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==
+  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"
@@ -4935,15 +5174,15 @@ icss-utils@^4.0.0, icss-utils@^4.1.1:
   dependencies:
     postcss "^7.0.14"
 
-ieee754@1.1.13, ieee754@^1.1.4:
+ieee754@1.1.13:
   version "1.1.13"
   resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84"
   integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==
 
-ienoopen@1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/ienoopen/-/ienoopen-1.1.0.tgz#411e5d530c982287dbdc3bb31e7a9c9e32630974"
-  integrity sha512-MFs36e/ca6ohEKtinTJ5VvAJ6oDRAYFdYXweUnGY9L9vcoqFOU4n2ZhmJ0C4z/cwGZ3YIQRSB3XZ1+ghZkY5NQ==
+ieee754@^1.1.13, 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"
@@ -4957,20 +5196,15 @@ ignore-walk@^3.0.1:
   dependencies:
     minimatch "^3.0.4"
 
-ignore@^3.3.5:
-  version "3.3.10"
-  resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
-  integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==
-
 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.0.2:
-  version "5.1.4"
-  resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf"
-  integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==
+ignore@^5.0.0, ignore@^5.0.2, 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==
 
 image-size@~0.5.0:
   version "0.5.5"
@@ -4978,8 +5212,8 @@ image-size@~0.5.0:
   integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=
 
 "imgur@git+https://github.com/hackmdio/node-imgur.git":
-  version "0.3.1"
-  resolved "git+https://github.com/hackmdio/node-imgur.git#4fe9cfa3893505c34c49067483d85d3ad4376cd6"
+  version "0.5.0"
+  resolved "git+https://github.com/hackmdio/node-imgur.git#de0a7a1f1eb2cb6628385fedb990ad396a190573"
   dependencies:
     commander "^2.13.0"
     glob "^7.1.2"
@@ -4995,14 +5229,14 @@ import-fresh@^2.0.0:
     resolve-from "^3.0.0"
 
 import-fresh@^3.0.0:
-  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==
+  version "3.2.2"
+  resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.2.tgz#fc129c160c5d68235507f4331a6baad186bdbc3e"
+  integrity sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==
   dependencies:
     parent-module "^1.0.0"
     resolve-from "^4.0.0"
 
-import-local@2.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==
@@ -5010,7 +5244,7 @@ import-local@2.0.0:
     pkg-dir "^3.0.0"
     resolve-cwd "^2.0.0"
 
-imports-loader@^0.8.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==
@@ -5023,6 +5257,11 @@ imurmurhash@^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"
@@ -5033,7 +5272,7 @@ indexof@0.0.1:
   resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
   integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=
 
-infer-owner@^1.0.3:
+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==
@@ -5051,7 +5290,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.1, inherits@~2.0.3:
+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:
   version "2.0.4"
   resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
   integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@@ -5090,10 +5329,10 @@ inquirer@^6.2.2:
     strip-ansi "^5.1.0"
     through "^2.3.6"
 
-interpret@1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296"
-  integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==
+interpret@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
+  integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==
 
 invariant@^2.2.2:
   version "2.2.4"
@@ -5102,20 +5341,15 @@ invariant@^2.2.2:
   dependencies:
     loose-envify "^1.0.0"
 
-invert-kv@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02"
-  integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==
-
-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=
 
-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-absolute-url@^2.0.0:
   version "2.1.0"
@@ -5136,6 +5370,24 @@ is-accessor-descriptor@^1.0.0:
   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-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"
+  integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==
+  dependencies:
+    is-alphabetical "^1.0.0"
+    is-decimal "^1.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"
@@ -5158,6 +5410,13 @@ is-binary-path@^1.0.0:
   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-bluebird@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/is-bluebird/-/is-bluebird-1.0.2.tgz#096439060f4aa411abee19143a84d6a55346d6e2"
@@ -5168,10 +5427,15 @@ 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-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-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.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-color-stop@^1.0.0:
   version "1.1.0"
@@ -5185,6 +5449,13 @@ 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==
+  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"
@@ -5204,6 +5475,11 @@ is-date-object@^1.0.1:
   resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e"
   integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==
 
+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"
@@ -5232,6 +5508,11 @@ is-dotfile@^1.0.0:
   resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
   integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=
 
+is-empty@^1.0.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/is-empty/-/is-empty-1.2.0.tgz#de9bb5b278738a05a0b09a57e1fb4d4a341a9f6b"
+  integrity sha1-3pu1snhzigWgsJpX4ftNSjQan2s=
+
 is-equal-shallow@^0.1.3:
   version "0.1.3"
   resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
@@ -5278,6 +5559,11 @@ is-fullwidth-code-point@^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@^2.0.0, is-glob@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
@@ -5292,13 +5578,23 @@ is-glob@^3.1.0:
   dependencies:
     is-extglob "^2.1.0"
 
-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==
   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.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461"
+  integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=
+
 is-number@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
@@ -5318,6 +5614,11 @@ is-number@^4.0.0:
   resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff"
   integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==
 
+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"
@@ -5328,6 +5629,11 @@ is-plain-obj@^1.0.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"
@@ -5345,37 +5651,32 @@ 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.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=
+is-promise@^2.1:
+  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.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==
+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==
   dependencies:
-    has "^1.0.3"
-
-is-regexp@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069"
-  integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk=
+    has-symbols "^1.0.1"
 
 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-stream@^1.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-string@^1.0.5:
   version "1.0.5"
@@ -5396,16 +5697,31 @@ is-symbol@^1.0.2:
   dependencies:
     has-symbols "^1.0.1"
 
-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-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-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-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-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"
@@ -5463,35 +5779,35 @@ jquery-ui@^1.12.1:
   resolved "https://registry.yarnpkg.com/jquery-ui/-/jquery-ui-1.12.1.tgz#bcb4045c8dd0539c134bc1488cdd3e768a7a9e51"
   integrity sha1-vLQEXI3QU5wTS8FIjN0+dop6nlE=
 
-jquery@^3.4.1:
-  version "3.4.1"
-  resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.4.1.tgz#714f1f8d9dde4bdfa55764ba37ef214630d80ef2"
-  integrity sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw==
+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.10.3"
-  resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.10.3.tgz#c73fa10cf69d3dfa52d8ed624f23c64c0a6a94c1"
-  integrity sha512-wfk/IAWobz1TfApSdivH5PJ0miIHgDoYb1ugSqHcODPmaYu46rYe5FVuIEkhjg8IQiv6rDNPyhsqbsohI/C2vQ==
+  version "1.13.0"
+  resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.13.0.tgz#a056d5d3acfd4918549aae3ab039f9f3c51eebb2"
+  integrity sha512-/Tbp1OVzZjbwzwJQFIlYLm9eWQ+3aYbBXLSaqb1mEJzhcQAfrqMMQYtjb6io+U6KpD0ID4F+Id3/xcjH3l/sqA==
   dependencies:
     config-chain "^1.1.12"
     editorconfig "^0.15.3"
     glob "^7.1.3"
-    mkdirp "~0.5.1"
-    nopt "~4.0.1"
+    mkdirp "^1.0.4"
+    nopt "^5.0.0"
 
 js-cookie@^2.1.3:
   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/codimd/js-sequence-diagrams.git":
+"js-sequence-diagrams@git+https://github.com/hedgedoc/js-sequence-diagrams.git":
   version "2.0.1"
-  resolved "git+https://github.com/codimd/js-sequence-diagrams.git#b9afa038521e5dadf9b97624a3c7db21890be669"
+  resolved "git+https://github.com/hedgedoc/js-sequence-diagrams.git#bda0e49b6c2754f3c7158b1dfb9ccf26efc24b39"
   dependencies:
     lodash "4.17.x"
-    raphael "2.2.x"
-    snapsvg "0.4.x"
-    underscore "1.8.x"
+    raphael "2.3.x"
+    snapsvg "0.5.x"
+    underscore "1.11.x"
     webfontloader "~1.6.x"
 
 "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
@@ -5504,18 +5820,26 @@ 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.13.1:
-  version "3.13.1"
-  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
-  integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
+js-yaml@^3.13.0, js-yaml@^3.6.1:
+  version "3.14.0"
+  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482"
+  integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==
+  dependencies:
+    argparse "^1.0.7"
+    esprima "^4.0.0"
+
+js-yaml@^3.13.1, js-yaml@~3.14.0:
+  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"
 
 jsbi@^3.1.1:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/jsbi/-/jsbi-3.1.1.tgz#8ea18b3e08d102c6cc09acaa9a099921d775f4fa"
-  integrity sha512-+HQESPaV0mRiH614z4JPVPAftcRC2p53x92lySPzUzFwJbJTMpzHz8OYUkcXPN3fOcHUe0NdVcHnCtX/1+eCrA==
+  version "3.1.4"
+  resolved "https://registry.yarnpkg.com/jsbi/-/jsbi-3.1.4.tgz#9654dd02207a66a4911b4e4bb74265bc2cbc9dd0"
+  integrity sha512-52QRRFSsi9impURE8ZUbzAMCLjPm4THO7H2fcuIvaaeFTbSysvkodbQQXIVsNgq/ypDbq6dJiuGKL0vZ/i9hUg==
 
 jsbn@~0.1.0:
   version "0.1.1"
@@ -5588,6 +5912,11 @@ json-parse-better-errors@^1.0.1, json-parse-better-errors@^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"
@@ -5625,12 +5954,12 @@ json5@^1.0.1:
   dependencies:
     minimist "^1.2.0"
 
-jsonfile@^2.1.0:
-  version "2.4.0"
-  resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
-  integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug=
-  optionalDependencies:
-    graceful-fs "^4.1.6"
+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==
+  dependencies:
+    minimist "^1.2.5"
 
 jsonfile@^4.0.0:
   version "4.0.0"
@@ -5639,7 +5968,7 @@ jsonfile@^4.0.0:
   optionalDependencies:
     graceful-fs "^4.1.6"
 
-jsonlint@^1.6.2:
+jsonlint@1.6.3:
   version "1.6.3"
   resolved "https://registry.yarnpkg.com/jsonlint/-/jsonlint-1.6.3.tgz#cb5e31efc0b78291d0d862fbef05900adf212988"
   integrity sha512-jMVTMzP+7gU/IyC6hvKyWpUU8tmTkK5b3BPNuMI9U8Sit+YAWLlZwB6Y6YrdCxfg2kNz05p3XY3Bmm4m26Nv3A==
@@ -5679,16 +6008,16 @@ jws@3.x.x:
     jwa "^1.4.1"
     safe-buffer "^5.0.1"
 
-kew@^0.7.0:
-  version "0.7.0"
-  resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b"
-  integrity sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=
-
 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.1.0"
+  resolved "https://registry.yarnpkg.com/khroma/-/khroma-1.1.0.tgz#cc17723eb719c5245ea66d23dd577d5695452db5"
+  integrity sha512-aTO+YX22tYOLEQJYFiatAj1lc5QZ+H5sHWFRBWNCiKwc5NWNUJZyeSeiHEPeURJ2a1GEVYcmyMUwGjjLe5ec5A==
+
 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"
@@ -5713,19 +6042,10 @@ 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==
 
-klaw@^1.0.0:
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439"
-  integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk=
-  optionalDependencies:
-    graceful-fs "^4.1.9"
-
-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==
 
 last-call-webpack-plugin@^3.0.0:
   version "3.0.0"
@@ -5735,11 +6055,6 @@ last-call-webpack-plugin@^3.0.0:
     lodash "^4.17.5"
     webpack-sources "^1.1.0"
 
-lazy-cache@^1.0.3:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
-  integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4=
-
 lazystream@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4"
@@ -5747,13 +6062,6 @@ lazystream@^1.0.0:
   dependencies:
     readable-stream "^2.0.5"
 
-lcid@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf"
-  integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==
-  dependencies:
-    invert-kv "^2.0.0"
-
 ldap-filter@0.2.2:
   version "0.2.2"
   resolved "https://registry.yarnpkg.com/ldap-filter/-/ldap-filter-0.2.2.tgz#f2b842be0b86da3352798505b31ebcae590d77d0"
@@ -5761,13 +6069,13 @@ ldap-filter@0.2.2:
   dependencies:
     assert-plus "0.1.5"
 
-ldapauth-fork@^4.2.0:
-  version "4.3.1"
-  resolved "https://registry.yarnpkg.com/ldapauth-fork/-/ldapauth-fork-4.3.1.tgz#500c04f339257ac0e189af8752ec5df43982ceac"
-  integrity sha512-IJUnkEDQg6D45jUKW3FFfMWZhUjZoGkN97WaMXF1cBod0gJq74d+iwRavPqiE3o/KNRgqwFesrdE4Ym4Fc1GIQ==
+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==
   dependencies:
     "@types/ldapjs" "^1.0.0"
-    "@types/node" "^10.12.12"
+    "@types/node" "*"
     bcryptjs "^2.4.0"
     ldapjs "^1.0.2"
     lru-cache "^5.1.1"
@@ -5794,7 +6102,7 @@ left-pad@^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:
+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==
@@ -5803,21 +6111,20 @@ less-loader@^5.0.0:
     loader-utils "^1.1.0"
     pify "^4.0.1"
 
-less@^3.10.3:
-  version "3.11.1"
-  resolved "https://registry.yarnpkg.com/less/-/less-3.11.1.tgz#c6bf08e39e02404fe6b307a3dfffafdc55bd36e2"
-  integrity sha512-tlWX341RECuTOvoDIvtFqXsKj072hm3+9ymRBe76/mD6O5ZZecnlAOVDlWAleF2+aohFrxNidXhv2773f6kY7g==
+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==
   dependencies:
-    clone "^2.1.2"
+    copy-anything "^2.0.1"
     tslib "^1.10.0"
   optionalDependencies:
     errno "^0.1.1"
     graceful-fs "^4.1.2"
     image-size "~0.5.0"
+    make-dir "^2.1.0"
     mime "^1.4.1"
-    mkdirp "^0.5.0"
-    promise "^7.1.1"
-    request "^2.83.0"
+    native-request "^1.0.5"
     source-map "~0.6.0"
 
 levn@^0.3.0, levn@~0.3.0:
@@ -5828,6 +6135,20 @@ levn@^0.3.0, levn@~0.3.0:
     prelude-ls "~1.1.2"
     type-check "~0.3.2"
 
+libnpmconfig@^1.0.0:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/libnpmconfig/-/libnpmconfig-1.2.1.tgz#c0c2f793a74e67d4825e5039e7a02a0044dfcbc0"
+  integrity sha512-9esX8rTQAHqarx6qeZqmGQKBNZR5OIbl/Ayr0qQDy3oXja2iFVQQI81R6GZ2a02bSNZ9p3YOGX1O6HHCb1X7kA==
+  dependencies:
+    figgy-pudding "^3.5.1"
+    find-up "^3.0.0"
+    ini "^1.3.5"
+
+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=
+
 linkify-it@^2.0.0:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf"
@@ -5852,20 +6173,37 @@ load-json-file@^2.0.0:
     pify "^2.0.0"
     strip-bom "^3.0.0"
 
+load-plugin@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/load-plugin/-/load-plugin-3.0.0.tgz#8f3ce57cf4e5111639911012487bc1c2ba3d0e6c"
+  integrity sha512-od7eKCCZ62ITvFf8nHHrIiYmgOHb4xVNDRDqxBWSaao5FZyyZVX8OmRCbwjDGPrSrgIulwPNyBsWCGnhiDC0oQ==
+  dependencies:
+    libnpmconfig "^1.0.0"
+    resolve-from "^5.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.2.3, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3:
-  version "1.2.3"
-  resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7"
-  integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==
+loader-utils@^1.0.2, 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 "^2.0.0"
+    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"
@@ -5882,6 +6220,13 @@ locate-path@^3.0.0:
     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.assignin@^4.0.9:
   version "4.2.0"
   resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2"
@@ -5892,17 +6237,22 @@ lodash.bind@^4.1.4:
   resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35"
   integrity sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU=
 
-lodash.defaults@^4.0.1:
+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"
   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.filter@^4.4.0:
   version "4.6.0"
   resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace"
   integrity sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4=
 
-lodash.flatten@^4.2.0:
+lodash.flatten@^4.2.0, 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=
@@ -5912,6 +6262,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.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.map@^4.4.0:
   version "4.6.0"
   resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3"
@@ -5952,24 +6307,29 @@ lodash.sortby@^4.7.0:
   resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
   integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=
 
+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.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.x, lodash@^4.14.2, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.8.0:
-  version "4.17.15"
-  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
-  integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
+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==
 
-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"
 
@@ -5978,10 +6338,10 @@ long@^4.0.0:
   resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28"
   integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==
 
-longest@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
-  integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=
+longest-streak@^2.0.1:
+  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.0.0:
   version "1.4.0"
@@ -5995,6 +6355,13 @@ lower-case@^1.1.1:
   resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"
   integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw=
 
+lower-case@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.1.tgz#39eeb36e396115cc05e29422eaea9e692c9408c7"
+  integrity sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==
+  dependencies:
+    tslib "^1.10.0"
+
 lru-cache@^4.1.3, lru-cache@^4.1.5:
   version "4.1.5"
   resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
@@ -6010,6 +6377,13 @@ lru-cache@^5.1.1:
   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"
+
 lru-queue@0.1:
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3"
@@ -6018,9 +6392,9 @@ lru-queue@0.1:
     es5-ext "~0.10.2"
 
 lutim@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/lutim/-/lutim-1.0.2.tgz#0b1e5a83c0c8d45900beb4eaf551e34f34f8a3e8"
-  integrity sha512-eIeHBtFIxyef4mW+zgxoUyW59NN/lCRGoK7pDfnmY97asflEwA04met3SqFPEgPgeWgm4iRAMAJWZ3MDQ39ucw==
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/lutim/-/lutim-1.0.3.tgz#3a29d0f2731eed7097f2d7367defeaa2ae45d820"
+  integrity sha512-niTn8F4/SyxjXG2a1lXAS/t5Yox9DCOPfVff6Y5tfrBPkK/bnzp2bRIkSNF+X2PRxjfvev0jFmi9J6IX1IkC7A==
   dependencies:
     q "^1.5.1"
     request "^2.88.0"
@@ -6029,13 +6403,6 @@ lutim@^1.0.2:
   version "1.4.4"
   resolved "git+https://github.com/hackmdio/lz-string.git#efd1f64676264d6d8871b01f4f375fc6ef4f9022"
 
-magic-string@^0.25.3:
-  version "0.25.6"
-  resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.6.tgz#5586387d1242f919c6d223579cc938bf1420795e"
-  integrity sha512-3a5LOMSGoCTH5rbqobC2HuDNRtE2glHZ8J7pK+QZYppyWA36yuNpsX994rIY2nCuyP7CZYy7lQq/X2jygiZ89g==
-  dependencies:
-    sourcemap-codec "^1.4.4"
-
 make-dir@^1.0.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
@@ -6043,7 +6410,7 @@ make-dir@^1.0.0:
   dependencies:
     pify "^3.0.0"
 
-make-dir@^2.0.0:
+make-dir@^2.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==
@@ -6051,6 +6418,13 @@ make-dir@^2.0.0:
     pify "^4.0.1"
     semver "^5.6.0"
 
+make-dir@^3.0.2:
+  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-plural@^4.3.0:
   version "4.3.0"
   resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-4.3.0.tgz#f23de08efdb0cac2e0c9ba9f315b0dff6b4c2735"
@@ -6058,22 +6432,10 @@ make-plural@^4.3.0:
   optionalDependencies:
     minimist "^1.2.0"
 
-make-plural@^6.0.1:
-  version "6.0.1"
-  resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-6.0.1.tgz#ed3839fac3f469ebbe505751d48fe3319769edfc"
-  integrity sha512-h0uBNi4tpDkiWUyYKrJNj8Kif6q3Ba5zp/8jnfPy3pQE+4XcTj6h3eZM5SYVUyDNX9Zk69Isr/dx0I+78aJUaQ==
-
-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-age-cleaner@^0.1.1:
-  version "0.1.3"
-  resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a"
-  integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==
-  dependencies:
-    p-defer "^1.0.0"
+make-plural@^6.2.2:
+  version "6.2.2"
+  resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-6.2.2.tgz#beb5fd751355e72660eeb2218bb98eec92853c6c"
+  integrity sha512-8iTuFioatnTTmb/YJjywkVIHLjcwkFD9Ms0JpxjEm9Mo8eQYkh1z+55dwv4yc1jQ8ftVBxWQbihvZL1DfzGGWA==
 
 map-cache@^0.2.2:
   version "0.2.2"
@@ -6088,16 +6450,27 @@ map-visit@^1.0.0:
     object-visit "^1.0.0"
 
 mariadb@^2.1.2:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/mariadb/-/mariadb-2.2.0.tgz#077e8c44ded718f2ecebef321c3703fe8d524504"
-  integrity sha512-YXPF11u4NVgm3FLetJoAbq9Fb0a/RSwNrDHdmAqpqgYErWAOes/IVbOfvWPWZQ0hI88j/81f15AGJZAVuR3bGg==
+  version "2.5.2"
+  resolved "https://registry.yarnpkg.com/mariadb/-/mariadb-2.5.2.tgz#0046331541589a9c0405507d91d79bcc972b3f5e"
+  integrity sha512-SfaBl5/LiX2qJNNr7wCQvizVjtWxVm1CUWYKe+y4OMeyYMM6g0GhwX7/BbGtv/O3WthnGrM+Kj1imFnlescO0w==
   dependencies:
     "@types/geojson" "^7946.0.7"
-    "@types/node" ">=8.0.0"
+    "@types/node" "^14.14.7"
     denque "^1.4.1"
-    iconv-lite "^0.5.1"
+    iconv-lite "^0.6.2"
     long "^4.0.0"
-    moment-timezone "^0.5.27"
+    moment-timezone "^0.5.32"
+    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"
+  integrity sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==
 
 markdown-it-abbr@^1.0.4:
   version "1.0.4"
@@ -6110,9 +6483,9 @@ markdown-it-container@^2.0.0:
   integrity sha1-ABm0P9Au7+zi8ZYKKJX7qBpARpU=
 
 markdown-it-deflist@^2.0.1:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/markdown-it-deflist/-/markdown-it-deflist-2.0.3.tgz#5727db04184d3cb2bc6ee4a9641e3a1091d5fd6f"
-  integrity sha512-/BNZ8ksW42bflm1qQLnRI09oqU2847Z7MVavrR0MORyKLtiUYOMpwtlAfMSZAQU9UCvaUZMpgVAqoS3vpToJxw==
+  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"
@@ -6170,25 +6543,17 @@ markdown-it@^10.0.0:
     mdurl "^1.0.1"
     uc.micro "^1.0.5"
 
-markdown-pdf@^10.0.0:
-  version "10.0.0"
-  resolved "https://registry.yarnpkg.com/markdown-pdf/-/markdown-pdf-10.0.0.tgz#0cf7a32740c2966aa79392a35742749d6ed2a491"
-  integrity sha512-o3lFfAOTpCgCXEXpNN86RaCVGE1YlxjWuAJ79XevAPoTyCBsl06BWhnFogYedg+JZxPjB3LWsA8JxZiCjsPPLA==
+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:
-    commander "^3.0.0"
-    duplexer "^0.1.1"
-    extend "^3.0.2"
-    highlight.js "^9.15.9"
-    phantomjs-prebuilt "^2.1.3"
-    remarkable "^2.0.0"
-    stream-from-to "^1.4.2"
-    through2 "^3.0.1"
-    tmp "^0.1.0"
-
-marked@~0.8.0:
-  version "0.8.0"
-  resolved "https://registry.yarnpkg.com/marked/-/marked-0.8.0.tgz#ec5c0c9b93878dc52dd54be8d0e524097bd81a99"
-  integrity sha512-MyUe+T/Pw4TZufHkzAfDj6HarCBWia2y27/bhuYkTaiUnfDYFnCP3KUN+9oM7Wi6JA2rymtVYbQu3spE0GCmxQ==
+    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==
 
 math-interval-parser@^2.0.1:
   version "2.0.1"
@@ -6200,10 +6565,10 @@ 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:
-  version "2.7.7"
-  resolved "https://registry.yarnpkg.com/mathjax/-/mathjax-2.7.7.tgz#22ff89550a7b1f5f06a037d13da5ff3c33e11ec4"
-  integrity sha512-OOl0B2/0tSJAtAZarXnQuLDBLgTNRqiI9VqHTQzPsxf4okT2iIpDrvaklK9x2QEMD1sDj4yRn11Ygci41DxMAQ==
+mathjax@^2.7.6:
+  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==
 
 mattermost@^3.4.0:
   version "3.4.0"
@@ -6229,6 +6594,33 @@ md5.js@^1.3.4:
     inherits "^2.0.1"
     safe-buffer "^5.1.2"
 
+mdast-comment-marker@^1.0.0:
+  version "1.1.2"
+  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==
+  dependencies:
+    unist-util-visit "^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-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==
+
+mdn-data@2.0.12:
+  version "2.0.12"
+  resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.12.tgz#bbb658d08b38f574bbb88f7b83703defdcc46844"
+  integrity sha512-ULbAlgzVb8IqZ0Hsxm6hHSlQl3Jckst2YEQS7fODu9ilNWy2LvcoSY7TRFIktABP2mdppBioc66va90T+NUs8Q==
+
 mdn-data@2.0.4:
   version "2.0.4"
   resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b"
@@ -6244,15 +6636,6 @@ media-typer@0.3.0:
   resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
   integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
 
-mem@^4.0.0:
-  version "4.3.0"
-  resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178"
-  integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==
-  dependencies:
-    map-age-cleaner "^0.1.1"
-    mimic-fn "^2.0.0"
-    p-is-promise "^2.0.0"
-
 memoizee@^0.4.14:
   version "0.4.14"
   resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.14.tgz#07a00f204699f9a95c2d9e77218271c7cd610d57"
@@ -6267,7 +6650,7 @@ memoizee@^0.4.14:
     next-tick "1"
     timers-ext "^0.1.5"
 
-memory-fs@^0.4.0, memory-fs@^0.4.1:
+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=
@@ -6288,22 +6671,27 @@ merge-descriptors@1.0.1:
   resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
   integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
 
-mermaid@~8.4.6:
-  version "8.4.7"
-  resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-8.4.7.tgz#1af8f6bece99f022a514471c42b80cabf7706501"
-  integrity sha512-mj4mefncBd8y921auvsXMN5MbVqzkrXyCUPz1AbVdQ+W6XKO27Oyqnor4ZO2hlqlosJc+Dl273V+SJBmX5PTNw==
+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==
   dependencies:
     "@braintree/sanitize-url" "^3.1.0"
-    crypto-random-string "^3.0.1"
     d3 "^5.7.0"
     dagre "^0.8.4"
     dagre-d3 "^0.6.4"
+    entity-decode "^2.0.2"
     graphlib "^2.1.7"
     he "^1.2.0"
-    lodash "^4.17.11"
+    khroma "^1.1.0"
     minify "^4.1.1"
     moment-mini "^2.22.1"
-    scope-css "^1.2.1"
+    stylis "^3.5.2"
 
 messageformat-formatters@^2.0.1:
   version "2.0.1"
@@ -6311,9 +6699,9 @@ messageformat-formatters@^2.0.1:
   integrity sha512-E/lQRXhtHwGuiQjI7qxkLp8AHbMD5r2217XNe/SREbBlSawe0lOqsFb7rflZJmlQFSULNLIqlcjjsCPlB3m3Mg==
 
 messageformat-parser@^4.1.2:
-  version "4.1.2"
-  resolved "https://registry.yarnpkg.com/messageformat-parser/-/messageformat-parser-4.1.2.tgz#fd34ec39912a14868a1595eaeb742485ab8ab372"
-  integrity sha512-7dWuifeyldz7vhEuL96Kwq1fhZXBW+TUfbnHN4UCrCxoXQTYjHnR78eI66Gk9LaLLsAvzPNVJBaa66DRfFNaiA==
+  version "4.1.3"
+  resolved "https://registry.yarnpkg.com/messageformat-parser/-/messageformat-parser-4.1.3.tgz#b824787f57fcda7d50769f5b63e8d4fda68f5b9e"
+  integrity sha512-2fU3XDCanRqeOCkn7R5zW5VQHWf+T3hH65SzuqRvjatBK7r4uyFa5mEX+k6F9Bd04LVM5G4/BHBTUJsOdW7uyg==
 
 messageformat@^2.3.0:
   version "2.3.0"
@@ -6324,12 +6712,12 @@ messageformat@^2.3.0:
     messageformat-formatters "^2.0.1"
     messageformat-parser "^4.1.2"
 
-"meta-marked@git+https://github.com/codimd/meta-marked#semver:^0.4.5":
+"meta-marked@git+https://github.com/hedgedoc/meta-marked":
   version "0.4.5"
-  resolved "git+https://github.com/codimd/meta-marked#a7b45a287465f79656134ff7142d1d74c8fcacfd"
+  resolved "git+https://github.com/hedgedoc/meta-marked#4fb5cb5a204969cc91e66eee92c0211188e69a2b"
   dependencies:
-    js-yaml "~3.13.1"
-    marked "~0.8.0"
+    js-yaml "~3.14.0"
+    marked "~1.2.0"
 
 method-override@^2.3.7:
   version "2.3.10"
@@ -6384,6 +6772,14 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4:
     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==
+  dependencies:
+    braces "^3.0.1"
+    picomatch "^2.0.5"
+
 miller-rabin@^4.0.0:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
@@ -6392,47 +6788,47 @@ miller-rabin@^4.0.0:
     bn.js "^4.0.0"
     brorand "^1.0.1"
 
-mime-db@1.43.0, "mime-db@>= 1.43.0 < 2":
-  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.44.0:
+  version "1.44.0"
+  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92"
+  integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==
+
+"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-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.26"
-  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06"
-  integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==
+  version "2.1.27"
+  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f"
+  integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==
   dependencies:
-    mime-db "1.43.0"
+    mime-db "1.44.0"
 
 mime@1.3.4:
   version "1.3.4"
   resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53"
   integrity sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=
 
-mime@1.6.0, mime@^1.2.9, mime@^1.4.1:
+mime@1.6.0, mime@^1.4.1:
   version "1.6.0"
   resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
   integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
 
 mime@^2.4.4:
-  version "2.4.4"
-  resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5"
-  integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==
+  version "2.4.6"
+  resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1"
+  integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==
 
 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.0.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.8.0:
-  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==
+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==
   dependencies:
     loader-utils "^1.1.0"
     normalize-url "1.9.1"
@@ -6474,15 +6870,10 @@ minimist@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@~0.0.1:
-  version "0.0.10"
-  resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
-  integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=
+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"
@@ -6504,6 +6895,27 @@ minio@^6.0.0:
     xml "^1.0.0"
     xml2js "^0.4.15"
 
+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@^2.6.0, minipass@^2.8.6, minipass@^2.9.0:
   version "2.9.0"
   resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6"
@@ -6512,6 +6924,13 @@ minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0:
     safe-buffer "^5.1.2"
     yallist "^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@^1.2.1:
   version "1.3.3"
   resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d"
@@ -6519,6 +6938,14 @@ minizlib@^1.2.1:
   dependencies:
     minipass "^2.9.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"
@@ -6543,14 +6970,26 @@ mixin-deep@^1.2.0:
     for-in "^1.0.2"
     is-extendable "^1.0.1"
 
-mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.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"
 
-mocha@^5.2.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==
+  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==
+
+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==
@@ -6567,7 +7006,7 @@ mocha@^5.2.0:
     mkdirp "0.5.1"
     supports-color "5.4.0"
 
-mock-require@^3.0.3:
+mock-require@3.0.3:
   version "3.0.3"
   resolved "https://registry.yarnpkg.com/mock-require/-/mock-require-3.0.3.tgz#ccd544d9eae81dd576b3f219f69ec867318a1946"
   integrity sha512-lLzfLHcyc10MKQnNUCv7dMcoY/2Qxd6wJfbqCcVk3LDb8An4hF6ohk5AztrvgKhJCqj36uyzi/p5se+tvyD+Wg==
@@ -6580,28 +7019,28 @@ 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.27:
-  version "0.5.27"
-  resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.27.tgz#73adec8139b6fe30452e78f210f27b1f346b8877"
-  integrity sha512-EIKQs7h5sAsjhPCqN6ggx6cEbs94GK050254TIJySD1bzoM5JTYDwAU1IoVOeTOL6Gm27kYJ51/uuvq1kIlrbw==
+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==
   dependencies:
     moment ">= 2.9.0"
 
-"moment@>= 2.9.0", moment@^2.10.6, moment@^2.17.1, moment@^2.24.0:
-  version "2.24.0"
-  resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b"
-  integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==
+"moment@>= 2.9.0", moment@^2.17.1, moment@^2.19.3, 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==
 
 morgan@^1.7.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"
 
 move-concurrently@^1.0.1:
   version "1.0.1"
@@ -6625,15 +7064,15 @@ ms@2.1.1:
   resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
   integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
 
-ms@^2.1.1:
+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==
 
-mustache@*:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.0.0.tgz#7f02465dbb5b435859d154831c032acdfbbefb31"
-  integrity sha512-FJgjyX/IVkbXBXYUwH+OYwQKqWpFPLaLVESd70yHjSDunwzV2hZOoTBvPf4KLoxesUzzyfTH6F784Uqd7Wm5yA==
+mustache@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.0.1.tgz#d99beb031701ad433338e7ea65e0489416c854a2"
+  integrity sha512-yL5VE97+OXn4+Er3THSmTdCFCtx5hHWzrolvH+JObZnUYwuaG7XV+Ch4fR2cIrcYI0tFHxS7iyFYl14bW8y2sA==
 
 mute-stream@0.0.7:
   version "0.0.7"
@@ -6650,19 +7089,18 @@ mv@~2:
     rimraf "~2.4.0"
 
 mysql2@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-2.1.0.tgz#55ecfd4353114c148cc4c253192dbbfd000e6642"
-  integrity sha512-9kGVyi930rG2KaHrz3sHwtc6K+GY9d8wWk1XRSYxQiunvGcn4DwuZxOwmK11ftuhhwrYDwGx9Ta4VBwznJn36A==
+  version "2.2.5"
+  resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-2.2.5.tgz#72624ffb4816f80f96b9c97fedd8c00935f9f340"
+  integrity sha512-XRqPNxcZTpmFdXbJqb+/CtYVLCx14x1RTeNMD4954L331APu75IC74GDqnZMEt1kwaXy6TySo55rF2F3YJS78g==
   dependencies:
-    cardinal "^2.1.1"
     denque "^1.4.1"
     generate-function "^2.3.1"
-    iconv-lite "^0.5.0"
+    iconv-lite "^0.6.2"
     long "^4.0.0"
-    lru-cache "^5.1.1"
+    lru-cache "^6.0.0"
     named-placeholders "^1.1.2"
     seq-queue "^0.0.5"
-    sqlstring "^2.3.1"
+    sqlstring "^2.3.2"
 
 named-placeholders@^1.1.2:
   version "1.1.2"
@@ -6672,9 +7110,14 @@ named-placeholders@^1.1.2:
     lru-cache "^4.1.3"
 
 nan@^2.12.1, nan@^2.14.0:
-  version "2.14.0"
-  resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
-  integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==
+  version "2.14.2"
+  resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19"
+  integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==
+
+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==
 
 nanomatch@^1.2.9:
   version "1.2.13"
@@ -6698,6 +7141,11 @@ 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"
@@ -6709,9 +7157,9 @@ ncp@~2.0.0:
   integrity sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=
 
 needle@^2.2.1:
-  version "2.3.2"
-  resolved "https://registry.yarnpkg.com/needle/-/needle-2.3.2.tgz#3342dea100b7160960a450dc8c22160ac712a528"
-  integrity sha512-DUzITvPVDUy6vczKKYTnWc/pBZ0EnjMJnQ3y+Jo5zfKFimJs7S3HFCxCRZYB9FUZcrzUQr3WsmvZgddMEIZv6w==
+  version "2.5.2"
+  resolved "https://registry.yarnpkg.com/needle/-/needle-2.5.2.tgz#cf1a8fce382b5a280108bba90a14993c00e4010a"
+  integrity sha512-LbRIwS9BfkPvNwNHlsA41Q29kL2L/6VaOJ0qisM5lLWsTV3nP15abO5ITL6L81zqFhzjRKDAYjpcBcwM0AVvLQ==
   dependencies:
     debug "^3.2.6"
     iconv-lite "^0.4.4"
@@ -6723,9 +7171,9 @@ negotiator@0.6.2:
   integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
 
 neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1:
-  version "2.6.1"
-  resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
-  integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==
+  version "2.6.2"
+  resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
+  integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
 
 next-tick@1:
   version "1.1.0"
@@ -6749,20 +7197,28 @@ no-case@^2.2.0:
   dependencies:
     lower-case "^1.1.1"
 
+no-case@^3.0.3:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.3.tgz#c21b434c1ffe48b39087e86cfb4d2582e9df18f8"
+  integrity sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==
+  dependencies:
+    lower-case "^2.0.1"
+    tslib "^1.10.0"
+
 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-forge@^0.7.0:
-  version "0.7.6"
-  resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.6.tgz#fdf3b418aee1f94f0ef642cd63486c77ca9724ac"
-  integrity sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw==
+node-forge@^0.10.0:
+  version "0.10.0"
+  resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3"
+  integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==
 
-node-gyp-build@~3.7.0:
-  version "3.7.0"
-  resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-3.7.0.tgz#daa77a4f547b9aed3e2aac779eaf151afd60ec8d"
-  integrity sha512-L/Eg02Epx6Si2NXmedx+Okg+4UHqmaf3TNcxd50SF9NQGcJaON3AtU++kax69XV7YWz4tUspqZSAsVofhFKG2w==
+node-gyp-build@^4.2.0:
+  version "4.2.3"
+  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-libs-browser@^2.2.1:
   version "2.2.1"
@@ -6793,22 +7249,6 @@ node-libs-browser@^2.2.1:
     util "^0.11.0"
     vm-browserify "^1.0.1"
 
-node-pre-gyp@*:
-  version "0.14.0"
-  resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83"
-  integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==
-  dependencies:
-    detect-libc "^1.0.2"
-    mkdirp "^0.5.1"
-    needle "^2.2.1"
-    nopt "^4.0.1"
-    npm-packlist "^1.1.6"
-    npmlog "^4.0.2"
-    rc "^1.2.7"
-    rimraf "^2.6.1"
-    semver "^5.3.0"
-    tar "^4.4.2"
-
 node-pre-gyp@^0.11.0:
   version "0.11.0"
   resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz#db1f33215272f692cd38f03238e3e9b47c5dd054"
@@ -6825,23 +7265,12 @@ node-pre-gyp@^0.11.0:
     semver "^5.3.0"
     tar "^4"
 
-node-releases@^1.1.49:
-  version "1.1.49"
-  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.49.tgz#67ba5a3fac2319262675ef864ed56798bb33b93e"
-  integrity sha512-xH8t0LS0disN0mtRCh+eByxFPie+msJUBL/lJDBuap53QGiYPa9joh83K4pCZgWJ+2L4b9h88vCVdXQ60NO2bg==
-  dependencies:
-    semver "^6.3.0"
-
-node-static@0.7.11:
-  version "0.7.11"
-  resolved "https://registry.yarnpkg.com/node-static/-/node-static-0.7.11.tgz#60120d349f3cef533e4e820670057eb631882e7f"
-  integrity sha512-zfWC/gICcqb74D9ndyvxZWaI1jzcoHmf4UTHWQchBNuNMxdBLJMDiUgZ1tjGLEIe/BMhj2DxKD8HOuc2062pDQ==
-  dependencies:
-    colors ">=0.6.0"
-    mime "^1.2.9"
-    optimist ">=0.3.4"
+node-releases@^1.1.66:
+  version "1.1.66"
+  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.66.tgz#609bd0dc069381015cd982300bae51ab4f1b1814"
+  integrity sha512-JHEQ1iWPGK+38VLB2H9ef2otU4l8s3yAMt9Xf934r6+ojCYDMHPMqvCc9TnzfeFSP1QEOeU6YZEd3+De0LTCgg==
 
-nomnom@^1.5.x, nomnom@^1.8.1:
+nomnom@^1.5.x:
   version "1.8.1"
   resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.8.1.tgz#2151f722472ba79e50a76fc125bb8c8f2e4dc2a7"
   integrity sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=
@@ -6849,14 +7278,21 @@ nomnom@^1.5.x, nomnom@^1.8.1:
     chalk "~0.4.0"
     underscore "~1.6.0"
 
-nopt@^4.0.1, nopt@~4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
-  integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=
+nopt@^4.0.1:
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48"
+  integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==
   dependencies:
     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"
@@ -6874,7 +7310,7 @@ normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1:
   dependencies:
     remove-trailing-separator "^1.0.1"
 
-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==
@@ -6915,13 +7351,6 @@ npm-packlist@^1.1.6:
     npm-bundled "^1.0.1"
     npm-normalize-package-bin "^1.0.1"
 
-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"
-
 npmlog@^4.0.2:
   version "4.1.2"
   resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
@@ -6983,17 +7412,20 @@ object-copy@^0.1.0:
     define-property "^0.2.5"
     kind-of "^3.0.3"
 
-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-inspect@^1.8.0:
+  version "1.8.0"
+  resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0"
+  integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==
 
 object-is@^1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.2.tgz#6b80eb84fe451498f65007982f035a5b445edec4"
-  integrity sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.3.tgz#2e3b9e65560137455ee3bd62aec4d90a2ea1cc81"
+  integrity sha512-teyqLvFWzLkq5B9ki8FVWA902UER2qkxmdA4nLf+wjOLAWgxzCWZNCxpDq9MvE8MmhWNr+I8w3BN49Vx36Y6Xg==
+  dependencies:
+    define-properties "^1.1.3"
+    es-abstract "^1.18.0-next.1"
 
-object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1:
+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==
@@ -7005,15 +7437,15 @@ object-visit@^1.0.0:
   dependencies:
     isobject "^3.0.0"
 
-object.assign@^4.1.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da"
-  integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==
+object.assign@^4.1.1:
+  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:
-    define-properties "^1.1.2"
-    function-bind "^1.1.1"
-    has-symbols "^1.0.0"
-    object-keys "^1.0.11"
+    call-bind "^1.0.0"
+    define-properties "^1.1.3"
+    has-symbols "^1.0.1"
+    object-keys "^1.1.1"
 
 object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0:
   version "2.1.0"
@@ -7038,7 +7470,7 @@ object.pick@^1.3.0:
   dependencies:
     isobject "^3.0.1"
 
-object.values@^1.1.0:
+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==
@@ -7055,7 +7487,7 @@ on-finished@~2.3.0:
   dependencies:
     ee-first "1.1.1"
 
-on-headers@~1.0.1, on-headers@~1.0.2:
+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==
@@ -7067,10 +7499,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"
@@ -7080,24 +7514,16 @@ onetime@^2.0.0:
     mimic-fn "^1.0.0"
 
 openid@2.x.x:
-  version "2.0.6"
-  resolved "https://registry.yarnpkg.com/openid/-/openid-2.0.6.tgz#707375e59ab9f73025899727679b20328171c9aa"
-  integrity sha1-cHN15Zq59zAliZcnZ5sgMoFxyao=
-  dependencies:
-    request "^2.61.0"
-
-optimist@>=0.3.4, optimist@^0.6.1:
-  version "0.6.1"
-  resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
-  integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY=
+  version "2.0.7"
+  resolved "https://registry.yarnpkg.com/openid/-/openid-2.0.7.tgz#37bf50af2aa692623364c004de35d41fd399c6e4"
+  integrity sha512-xH6qaz/hS55rEX8xURz4HRUO96cpj821WY6UEG9rgcusZ8Jsq54jGWP1EMCjGvgngonw8vgSljM1i2OESv16Gw==
   dependencies:
-    minimist "~0.0.1"
-    wordwrap "~0.0.2"
+    request "^2.88.2"
 
-optimize-css-assets-webpack-plugin@^5.0.3:
-  version "5.0.3"
-  resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz#e2f1d4d94ad8c0af8967ebd7cf138dcb1ef14572"
-  integrity sha512-q9fbvCRS6EYtUKKSwI87qm2IxlyJK5b4dygW1rKUBT6mMDhdG5e5bZT63v6tnJR9F9FB/H5a0HTmtw+laUBxKA==
+optimize-css-assets-webpack-plugin@5.0.4:
+  version "5.0.4"
+  resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz#85883c6528aaa02e30bbad9908c92926bb52dc90"
+  integrity sha512-wqd6FdI2a5/FdoiCNNkEvLeA//lHHfG24Ln2Xm2qqdIk4aOlsR18jwpyOihqQ8849W3qu2DX8fOYxpvTMj+93A==
   dependencies:
     cssnano "^4.1.10"
     last-call-webpack-plugin "^3.0.0"
@@ -7124,20 +7550,6 @@ os-homedir@^1.0.0:
   resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
   integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
 
-os-homedir@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-2.0.0.tgz#a0c76bb001a8392a503cbd46e7e650b3423a923c"
-  integrity sha512-saRNz0DSC5C/I++gFIaJTXoFJMRwiP5zHar5vV3xQ2TkgEw6hDCcU5F272JjUylpiVgBrZNQHnfjkLabTfb92Q==
-
-os-locale@^3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a"
-  integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==
-  dependencies:
-    execa "^1.0.0"
-    lcid "^2.0.0"
-    mem "^4.0.0"
-
 os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
@@ -7160,21 +7572,6 @@ output-file-sync@^1.1.2:
     mkdirp "^0.5.1"
     object-assign "^4.1.0"
 
-p-defer@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c"
-  integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=
-
-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-is-promise@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e"
-  integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==
-
 p-limit@^1.1.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
@@ -7182,10 +7579,17 @@ p-limit@^1.1.0:
   dependencies:
     p-try "^1.0.0"
 
-p-limit@^2.0.0, p-limit@^2.2.1:
-  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@^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.0.2"
+  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.0.2.tgz#1664e010af3cadc681baafd3e2a437be7b0fb5fe"
+  integrity sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==
   dependencies:
     p-try "^2.0.0"
 
@@ -7203,6 +7607,20 @@ p-locate@^3.0.0:
   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"
@@ -7239,6 +7657,14 @@ param-case@^2.1.1:
   dependencies:
     no-case "^2.2.0"
 
+param-case@^3.0.3:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.3.tgz#4be41f8399eff621c56eebb829a5e451d9801238"
+  integrity sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA==
+  dependencies:
+    dot-case "^3.0.3"
+    tslib "^1.10.0"
+
 parent-module@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
@@ -7246,18 +7672,29 @@ parent-module@^1.0.0:
   dependencies:
     callsites "^3.0.0"
 
-parse-asn1@^5.0.0:
-  version "5.1.5"
-  resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e"
-  integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==
+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 "^4.0.0"
+    asn1.js "^5.2.0"
     browserify-aes "^1.0.0"
-    create-hash "^1.1.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-glob@^3.0.4:
   version "3.0.4"
   resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
@@ -7283,6 +7720,16 @@ parse-json@^4.0.0:
     error-ex "^1.3.1"
     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==
+  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"
@@ -7300,6 +7747,11 @@ parseqs@0.0.5:
   dependencies:
     better-assert "~1.0.0"
 
+parseqs@0.0.6:
+  version "0.0.6"
+  resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5"
+  integrity sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==
+
 parseuri@0.0.5:
   version "0.0.5"
   resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a"
@@ -7307,11 +7759,24 @@ parseuri@0.0.5:
   dependencies:
     better-assert "~1.0.0"
 
+parseuri@0.0.6:
+  version "0.0.6"
+  resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a"
+  integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==
+
 parseurl@~1.3.2, parseurl@~1.3.3:
   version "1.3.3"
   resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
   integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
 
+pascal-case@^3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.1.tgz#5ac1975133ed619281e88920973d2cd1f279de5f"
+  integrity sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==
+  dependencies:
+    no-case "^3.0.3"
+    tslib "^1.10.0"
+
 pascalcase@^0.1.1:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
@@ -7354,13 +7819,13 @@ passport-google-oauth20@^1.0.0:
     passport-oauth2 "1.x.x"
 
 passport-ldapauth@^2.0.0:
-  version "2.1.3"
-  resolved "https://registry.yarnpkg.com/passport-ldapauth/-/passport-ldapauth-2.1.3.tgz#833530c31c1e2f8d2ab7a1ff97339291074dc6f6"
-  integrity sha512-23n425UTasN6XhcXG0qQ0h0YrS/zfo8kNIEhSLfPsNpglhYhhQFfB1pmDc5RrH+Kiz5fKLkki5BpvkKHCwkixg==
+  version "2.1.4"
+  resolved "https://registry.yarnpkg.com/passport-ldapauth/-/passport-ldapauth-2.1.4.tgz#2259e4e5d2d9c2b3d50a04f6640a941effda8da9"
+  integrity sha512-VeVL69ZK+cpJe0DKMSGuwcf7k+V4dr0U0Y7ZhXL785pcRb5gRA6qYZfIH+XTsAzwqTK9l0Dn3Ds4weOZ1jKkLQ==
   dependencies:
-    "@types/node" "^10.12.26"
+    "@types/node" "*"
     "@types/passport" "^1.0.0"
-    ldapauth-fork "^4.2.0"
+    ldapauth-fork "^4.3.2"
     passport-strategy "^1.0.0"
 
 passport-local@^1.0.0:
@@ -7399,15 +7864,14 @@ passport-oauth@^1.0.0:
     passport-oauth2 "1.x.x"
 
 passport-saml@^1.0.0:
-  version "1.3.2"
-  resolved "https://registry.yarnpkg.com/passport-saml/-/passport-saml-1.3.2.tgz#6cd7e747d7fd0283877d9f48b84c55908ab4182b"
-  integrity sha512-oRtv1lF0AeOVGPD/UJMJnOO7AIc/Wgw7qfMxgejm2bjBo85a26LQfP+XnOD5gW7fxRdYKXDAIOvqPhFeGJmyBw==
+  version "1.5.0"
+  resolved "https://registry.yarnpkg.com/passport-saml/-/passport-saml-1.5.0.tgz#4f22526b577987fb2304219c29e05d2172fca5cf"
+  integrity sha512-6f4bfnu/X2KNbuqshOryPap0g8BvhOrlt1qDtJdA44qzQXZ5QUMwaTmexAHIf96LTqPqQ91MzPvi5MGsOgTYTw==
   dependencies:
     debug "^3.1.0"
     passport-strategy "*"
-    q "^1.5.0"
-    xml-crypto "^1.4.0"
-    xml-encryption "^1.0.0"
+    xml-crypto "^2.0.0"
+    xml-encryption "1.2.1"
     xml2js "0.4.x"
     xmlbuilder "^11.0.0"
     xmldom "0.1.x"
@@ -7455,6 +7919,11 @@ path-exists@^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, path-is-absolute@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
@@ -7465,7 +7934,7 @@ path-is-inside@^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.0, path-key@^2.0.1:
+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=
@@ -7487,12 +7956,10 @@ path-type@^2.0.0:
   dependencies:
     pify "^2.0.0"
 
-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==
 
 pause@0.0.1:
   version "0.0.1"
@@ -7500,9 +7967,9 @@ pause@0.0.1:
   integrity sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=
 
 pbkdf2@^3.0.3:
-  version "3.0.17"
-  resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6"
-  integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94"
+  integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==
   dependencies:
     create-hash "^1.1.2"
     create-hmac "^1.1.4"
@@ -7511,24 +7978,24 @@ pbkdf2@^3.0.3:
     sha.js "^2.4.8"
 
 pdfobject@^2.0.201604172:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/pdfobject/-/pdfobject-2.1.1.tgz#2949d4d218d130d16b6149c7f7226f0a73400d4a"
-  integrity sha512-QFktTHyjs4q/WhGFfV2RdAbscPdNkyQb/JfFz18cwILvs9ocDiYVFAEh/jgkKGv6my+r4nlbLjwj7BHFKAupHQ==
+  version "2.2.4"
+  resolved "https://registry.yarnpkg.com/pdfobject/-/pdfobject-2.2.4.tgz#ccb3c191129298a471e9ccb59c88a3ee0b7c7530"
+  integrity sha512-r6Rw9CQWsrY6uqmKvlgFNoupmuRbSt9EsG0sZhSAy3cIk4WgOXyAVmebFSlLhqj6gA5NIEXL3lSEbwOOYfdUvw==
 
-pend@~1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
-  integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA=
+peek-readable@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-3.1.0.tgz#250b08b7de09db8573d7fd8ea475215bbff14348"
+  integrity sha512-KGuODSTV6hcgdZvDrIDBUkN0utcAVj1LL7FfGbM0viKTtCHmtZcuEJ+lGqsp0fTFkGqesdtemV2yUSMeyy3ddA==
 
 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=
 
-pg-connection-string@0.1.3:
-  version "0.1.3"
-  resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-0.1.3.tgz#da1847b20940e42ee1492beaf65d49d91b245df7"
-  integrity sha1-2hhHsglA5C7hSSvq9l1J2RskXfc=
+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-hstore@^2.3.3:
   version "2.3.3"
@@ -7542,15 +8009,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-packet-stream@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/pg-packet-stream/-/pg-packet-stream-1.1.0.tgz#e45c3ae678b901a2873af1e17b92d787962ef914"
-  integrity sha512-kRBH0tDIW/8lfnnOyTwKD23ygJ/kexQVXZs7gEyBljw4FYqimZFxnMMx50ndZ8In77QgfGuItS5LLclC2TtjYg==
+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@^2.0.10:
-  version "2.0.10"
-  resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-2.0.10.tgz#842ee23b04e86824ce9d786430f8365082d81c4a"
-  integrity sha512-qdwzY92bHf3nwzIUcj+zJ0Qo5lpG/YxchahxIN8+ZVmXqkahKXsnl2aiJPHLYN9o5mB/leG+Xh6XKxtP7e0sjg==
+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-types@^2.1.0:
   version "2.2.0"
@@ -7563,41 +8030,30 @@ pg-types@^2.1.0:
     postgres-date "~1.0.4"
     postgres-interval "^1.1.0"
 
-pg@^7.12.1:
-  version "7.18.1"
-  resolved "https://registry.yarnpkg.com/pg/-/pg-7.18.1.tgz#67f59c47a99456fcb34f9fe53662b79d4a992f6d"
-  integrity sha512-1KtKBKg/zWrjEEv//klBbVOPGucuc7HHeJf6OEMueVcUeyF3yueHf+DvhVwBjIAe9/97RAydO/lWjkcMwssuEw==
+pg@^8.2.1:
+  version "8.5.1"
+  resolved "https://registry.yarnpkg.com/pg/-/pg-8.5.1.tgz#34dcb15f6db4a29c702bf5031ef2e1e25a06a120"
+  integrity sha512-9wm3yX9lCfjvA98ybCyw2pADUivyNWT/yIP4ZcDVpMN0og70BUWYEGXPCTAQdGTAqnytfRADb7NERrY1qxhIqw==
   dependencies:
     buffer-writer "2.0.0"
     packet-reader "1.0.0"
-    pg-connection-string "0.1.3"
-    pg-packet-stream "^1.1.0"
-    pg-pool "^2.0.10"
+    pg-connection-string "^2.4.0"
+    pg-pool "^3.2.2"
+    pg-protocol "^1.4.0"
     pg-types "^2.1.0"
     pgpass "1.x"
-    semver "4.3.2"
 
 pgpass@1.x:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.2.tgz#2a7bb41b6065b67907e91da1b07c1847c877b306"
-  integrity sha1-Knu0G2BltnkH6R2hsHwYR8h3swY=
-  dependencies:
-    split "^1.0.0"
-
-phantomjs-prebuilt@^2.1.12, phantomjs-prebuilt@^2.1.3:
-  version "2.1.16"
-  resolved "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz#efd212a4a3966d3647684ea8ba788549be2aefef"
-  integrity sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=
-  dependencies:
-    es6-promise "^4.0.3"
-    extract-zip "^1.6.5"
-    fs-extra "^1.0.0"
-    hasha "^2.2.0"
-    kew "^0.7.0"
-    progress "^1.1.8"
-    request "^2.81.0"
-    request-progress "^2.0.1"
-    which "^1.2.10"
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.4.tgz#85eb93a83800b20f8057a2b029bf05abaf94ea9c"
+  integrity sha512-YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==
+  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==
 
 pify@^2.0.0:
   version "2.3.0"
@@ -7614,18 +8070,6 @@ pify@^4.0.1:
   resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
   integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
 
-pinkie-promise@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
-  integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o=
-  dependencies:
-    pinkie "^2.0.0"
-
-pinkie@^2.0.0:
-  version "2.0.4"
-  resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
-  integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA=
-
 pkg-dir@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b"
@@ -7640,11 +8084,30 @@ pkg-dir@^3.0.0:
   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"
+
 pkginfo@^0.2.3:
   version "0.2.3"
   resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.2.3.tgz#7239c42a5ef6c30b8f328439d9b9ff71042490f8"
   integrity sha1-cjnEKl72wwuPMoQ52bn/cQQkkPg=
 
+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"
+  integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==
+  dependencies:
+    semver-compare "^1.0.0"
+
+pluralize@^8.0.0:
+  version "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"
@@ -7661,14 +8124,13 @@ posix-character-classes@^0.1.0:
   integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
 
 postcss-calc@^7.0.1:
-  version "7.0.1"
-  resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436"
-  integrity sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ==
+  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:
-    css-unit-converter "^1.1.1"
-    postcss "^7.0.5"
-    postcss-selector-parser "^5.0.0-rc.4"
-    postcss-value-parser "^3.3.1"
+    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"
@@ -7787,19 +8249,19 @@ postcss-modules-extract-imports@^2.0.0:
     postcss "^7.0.5"
 
 postcss-modules-local-by-default@^3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz#e8a6561be914aaf3c052876377524ca90dbb7915"
-  integrity sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ==
+  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.16"
+    postcss "^7.0.32"
     postcss-selector-parser "^6.0.2"
-    postcss-value-parser "^4.0.0"
+    postcss-value-parser "^4.1.0"
 
-postcss-modules-scope@^2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.1.1.tgz#33d4fc946602eb5e9355c4165d68a10727689dba"
-  integrity sha512-OXRUPecnHCg8b9xWvldG/jUpRIGPNRka0r4D4j0ESUU2/5IOnpsjfPPmDprM3Ih8CgZ8FXjWqaniK5v4rWt3oQ==
+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"
@@ -7931,23 +8393,15 @@ postcss-selector-parser@^3.0.0:
     indexes-of "^1.0.1"
     uniq "^1.0.1"
 
-postcss-selector-parser@^5.0.0-rc.4:
-  version "5.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c"
-  integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==
-  dependencies:
-    cssesc "^2.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.2"
-  resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c"
-  integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==
+  version "6.0.4"
+  resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3"
+  integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==
   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"
@@ -7968,20 +8422,20 @@ postcss-unique-selectors@^4.0.1:
     postcss "^7.0.0"
     uniqs "^2.0.0"
 
-postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.1:
+postcss-value-parser@^3.0.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.0, postcss-value-parser@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9"
-  integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==
+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@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.23, postcss@^7.0.5, postcss@^7.0.6:
-  version "7.0.26"
-  resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.26.tgz#5ed615cfcab35ba9bbb82414a4fa88ea10429587"
-  integrity sha512-IY4oRjpXWYshuTDFxMVkJDtWIk2LhsTlu8bZnbEJA4+bYT16Lvpo8Qv6EvDumhYRgzjZl489pmsY3qVgJQ08nA==
+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:
+  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"
@@ -7998,9 +8452,9 @@ postgres-bytea@~1.0.0:
   integrity sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=
 
 postgres-date@~1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.4.tgz#1c2728d62ef1bff49abdd35c1f86d4bdf118a728"
-  integrity sha512-bESRvKVuTrjoBluEcpv2346+6kgB7UlnqWZsnbnCccTNq/pqfj1j6oBaN5+b/NrDXepYUT/HKadqv3iS9lJuVA==
+  version "1.0.7"
+  resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8"
+  integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==
 
 postgres-interval@^1.1.0:
   version "1.2.0"
@@ -8030,17 +8484,22 @@ preserve@^0.2.0:
   integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=
 
 pretty-error@^2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3"
-  integrity sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6"
+  integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==
   dependencies:
-    renderkid "^2.0.1"
-    utila "~0.4"
+    lodash "^4.17.20"
+    renderkid "^2.0.4"
 
-prismjs@^1.6.0:
-  version "1.19.0"
-  resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.19.0.tgz#713afbd45c3baca4b321569f2df39e17e729d4dc"
-  integrity sha512-IVFtbW9mCWm9eOIaEkNyo2Vl4NnEifis2GQ7/MLRG5TQe6t+4Sj9J5QWI9i3v+SS43uZBlCAOn+zYTVYQcPXJw==
+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==
+
+prismjs@^1.21.0:
+  version "1.22.0"
+  resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.22.0.tgz#73c3400afc58a823dd7eed023f8e1ce9fd8977fa"
+  integrity sha512-lLJ/Wt9yy0AiSYBf212kK3mM5L8ycwlyTlSxHBAneXLR0nzFMlZ5y7riFPF3E33zXOF2IH95xdY5jIyZbM9z/w==
   optionalDependencies:
     clipboard "^2.0.0"
 
@@ -8064,11 +8523,6 @@ process@^0.11.10:
   resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
   integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
 
-progress@^1.1.8:
-  version "1.1.8"
-  resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be"
-  integrity sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=
-
 progress@^2.0.0:
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
@@ -8079,25 +8533,18 @@ promise-inflight@^1.0.1:
   resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
   integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM=
 
-promise@^7.1.1:
-  version "7.3.1"
-  resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
-  integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==
-  dependencies:
-    asap "~2.0.3"
-
 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.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"
 
 prr@~1.0.1:
   version "1.0.1"
@@ -8109,10 +8556,10 @@ pseudomap@^1.0.2:
   resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
   integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
 
-psl@^1.1.24:
-  version "1.7.0"
-  resolved "https://registry.yarnpkg.com/psl/-/psl-1.7.0.tgz#f1c4c47a8ef97167dea5d6bbf4816d736e884a3c"
-  integrity sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==
+psl@^1.1.28:
+  version "1.8.0"
+  resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24"
+  integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
 
 public-encrypt@^4.0.0:
   version "4.0.3"
@@ -8156,17 +8603,17 @@ punycode@1.3.2:
   resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
   integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=
 
-punycode@^1.2.4, punycode@^1.4.1:
+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:
+punycode@^2.1.0, punycode@^2.1.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
   integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
 
-q@^1.1.2, q@^1.5.0, q@^1.5.1:
+q@^1.1.2, q@^1.5.1:
   version "1.5.1"
   resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
   integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=
@@ -8227,17 +8674,17 @@ randomatic@^3.0.0:
     kind-of "^6.0.0"
     math-random "^1.0.1"
 
-randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5:
+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"
 
-randomcolor@^0.5.3:
-  version "0.5.4"
-  resolved "https://registry.yarnpkg.com/randomcolor/-/randomcolor-0.5.4.tgz#df615b13f25b89ea58c5f8f72647f0a6f07adcc3"
-  integrity sha512-nYd4nmTuuwMFzHL6W+UWR5fNERGZeVauho8mrJDUSXdNDbao4rbrUwhuLgKC/j8VCS5+34Ria8CsTDuBjrIrQA==
+randomcolor@^0.6.0:
+  version "0.6.2"
+  resolved "https://registry.yarnpkg.com/randomcolor/-/randomcolor-0.6.2.tgz#7a57362ae1a1278439aeed2c15e5deb8ea33f56d"
+  integrity sha512-Mn6TbyYpFgwFuQ8KJKqf3bqqY9O1y37/0jgSK/61PUxV4QfIMv0+K2ioq8DfOjkBslcjwSzRfIDEXfzA9aCx7A==
 
 randomfill@^1.0.3:
   version "1.0.4"
@@ -8252,26 +8699,13 @@ 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.2.x:
-  version "2.2.8"
-  resolved "https://registry.yarnpkg.com/raphael/-/raphael-2.2.8.tgz#4b18443c2c6030c3b492d8d11fbbca14ebe4d3f3"
-  integrity sha512-0kWKcGn4lXTw4eUiOhjspYiG+v0m6zSmTmlO62E0hl2CYKUvCuHER9YKqXYvOn2nj24mYp8jzHOLeBuj/Gn28Q==
-  dependencies:
-    eve-raphael "0.5.0"
-
-raphael@2.3.0:
+raphael@2.3.0, raphael@2.3.x, raphael@^2.3.0:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/raphael/-/raphael-2.3.0.tgz#eabeb09dba861a1d4cee077eaafb8c53f3131f89"
   integrity sha512-w2yIenZAQnp257XUWGni4bLMVxpUpcIl7qgxEgDIXtmSypYtlNxfXWpOBxs7LBTps5sDwhRnrToJrMUrivqNTQ==
   dependencies:
     eve-raphael "0.5.0"
 
-"raphael@git+https://github.com/dmitrybaranovskiy/raphael":
-  version "2.3.0"
-  resolved "git+https://github.com/dmitrybaranovskiy/raphael#d8fbe4be81d362837f95e33886b80fb41de443b4"
-  dependencies:
-    eve-raphael "0.5.0"
-
 raw-body@2.4.0:
   version "2.4.0"
   resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332"
@@ -8314,7 +8748,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.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, 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.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:
   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==
@@ -8337,15 +8771,6 @@ readable-stream@1.0.27-1:
     isarray "0.0.1"
     string_decoder "~0.10.x"
 
-"readable-stream@2 || 3", readable-stream@^3.0.1, readable-stream@^3.1.1, readable-stream@^3.4.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"
-
 "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"
@@ -8356,6 +8781,15 @@ readable-stream@1.0.27-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:
+  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"
+
 readable-stream@~2.0.0:
   version "2.0.6"
   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e"
@@ -8368,6 +8802,21 @@ readable-stream@~2.0.0:
     string_decoder "~0.10.x"
     util-deprecate "~1.0.1"
 
+readable-web-to-node-stream@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.0.tgz#4ca5408e70471069119d691934141a52de413955"
+  integrity sha512-HNmLb3n0SteGAs8HQlErYPGeO+y7cvL/mVUKtXeUkl0iCZ/2GIgKGrCFHyS7UXFnO8uc9U+0y3pYIzAPsjFfvA==
+  dependencies:
+    "@types/readable-stream" "^2.3.9"
+    readable-stream "^3.6.0"
+
+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.0.0, readdirp@^2.2.1:
   version "2.2.1"
   resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
@@ -8377,18 +8826,18 @@ readdirp@^2.0.0, readdirp@^2.2.1:
     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"
+
 readline-sync@^1.4.7:
   version "1.4.10"
   resolved "https://registry.yarnpkg.com/readline-sync/-/readline-sync-1.4.10.tgz#41df7fbb4b6312d673011594145705bf56d8873b"
   integrity sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==
 
-redeyed@~2.1.0:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-2.1.1.tgz#8984b5815d99cb220469c99eeeffe38913e6cc0b"
-  integrity sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=
-  dependencies:
-    esprima "~4.0.0"
-
 reduce-component@1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/reduce-component/-/reduce-component-1.0.1.tgz#e0c93542c574521bea13df0f9488ed82ab77c5da"
@@ -8399,17 +8848,10 @@ referrer-policy@1.2.0:
   resolved "https://registry.yarnpkg.com/referrer-policy/-/referrer-policy-1.2.0.tgz#b99cfb8b57090dc454895ef897a4cc35ef67a98e"
   integrity sha512-LgQJIuS6nAy1Jd88DCQRemyE3mS+ispwlqMk3b0yjZ257fI1v9c+/p6SD5gP5FGyXUIgrNOAfmyioHwZtYv2VA==
 
-regenerate-unicode-properties@^8.1.0:
-  version "8.1.0"
-  resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e"
-  integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==
-  dependencies:
-    regenerate "^1.4.0"
-
-regenerate@^1.2.1, regenerate@^1.4.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11"
-  integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==
+regenerate@^1.2.1:
+  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.10.5:
   version "0.10.5"
@@ -8467,28 +8909,11 @@ regexpu-core@^2.0.0:
     regjsgen "^0.2.0"
     regjsparser "^0.1.4"
 
-regexpu-core@^4.5.4:
-  version "4.6.0"
-  resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6"
-  integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==
-  dependencies:
-    regenerate "^1.4.0"
-    regenerate-unicode-properties "^8.1.0"
-    regjsgen "^0.5.0"
-    regjsparser "^0.6.0"
-    unicode-match-property-ecmascript "^1.0.4"
-    unicode-match-property-value-ecmascript "^1.1.0"
-
 regjsgen@^0.2.0:
   version "0.2.0"
   resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7"
   integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=
 
-regjsgen@^0.5.0:
-  version "0.5.1"
-  resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c"
-  integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==
-
 regjsparser@^0.1.4:
   version "0.1.5"
   resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c"
@@ -8496,48 +8921,588 @@ regjsparser@^0.1.4:
   dependencies:
     jsesc "~0.5.0"
 
-regjsparser@^0.6.0:
-  version "0.6.3"
-  resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.3.tgz#74192c5805d35e9f5ebe3c1fb5b40d40a8a38460"
-  integrity sha512-8uZvYbnfAtEm9Ab8NTb3hdLwL4g/LQzEYP7Xs27T96abJCCE2d6r3cPZPQEsLKy0vRSGVNG+/zVGtLr86HQduA==
-  dependencies:
-    jsesc "~0.5.0"
-
 relateurl@^0.2.7:
   version "0.2.7"
   resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
   integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=
 
-remarkable@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/remarkable/-/remarkable-2.0.0.tgz#795f965bede8300362ce51a716edc322d9e7a4ca"
-  integrity sha512-3gvKFAgL4xmmVRKAMNm6UzDo/rO2gPVkZrWagp6AXEA4JvCcMcRx9aapYbb7AJAmLLvi/u06+EhzqoS7ha9qOg==
+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==
+  dependencies:
+    markdown-extensions "^1.1.0"
+    remark "^12.0.0"
+    unified-args "^8.0.0"
+
+remark-lint-blockquote-indentation@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-2.0.1.tgz#27347959acf42a6c3e401488d8210e973576b254"
+  integrity sha512-uJ9az/Ms9AapnkWpLSCJfawBfnBI2Tn1yUsPNqIFv6YM98ymetItUMyP6ng9NFPqDvTQBbiarulkgoEo0wcafQ==
+  dependencies:
+    mdast-util-to-string "^1.0.2"
+    pluralize "^8.0.0"
+    unified-lint-rule "^1.0.0"
+    unist-util-generated "^1.1.0"
+    unist-util-position "^3.0.0"
+    unist-util-visit "^2.0.0"
+
+remark-lint-code-block-style@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-code-block-style/-/remark-lint-code-block-style-2.0.1.tgz#448b0f2660acfcdfff2138d125ff5b1c1279c0cb"
+  integrity sha512-eRhmnColmSxJhO61GHZkvO67SpHDshVxs2j3+Zoc5Y1a4zQT2133ZAij04XKaBFfsVLjhbY/+YOWxgvtjx2nmA==
+  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"
+
+remark-lint-definition-case@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-definition-case/-/remark-lint-definition-case-2.0.1.tgz#10340eb2f87acff41140d52ad7e5b40b47e6690a"
+  integrity sha512-M+XlThtQwEJLQnQb5Gi6xZdkw92rGp7m2ux58WMw/Qlcg02WgHR/O0OcHPe5VO5hMJrtI+cGG5T0svsCgRZd3w==
+  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"
+
+remark-lint-definition-spacing@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-definition-spacing/-/remark-lint-definition-spacing-2.0.1.tgz#97f01bf9bf77a7bdf8013b124b7157dd90b07c64"
+  integrity sha512-xK9DOQO5MudITD189VyUiMHBIKltW1oc55L7Fti3i9DedXoBG7Phm+V9Mm7IdWzCVkquZVgVk63xQdqzSQRrSQ==
+  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"
+
+remark-lint-emphasis-marker@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-emphasis-marker/-/remark-lint-emphasis-marker-2.0.1.tgz#1d5ca2070d4798d16c23120726158157796dc317"
+  integrity sha512-7mpbAUrSnHiWRyGkbXRL5kfSKY9Cs8cdob7Fw+Z02/pufXMF4yRWaegJ5NTUu1RE+SKlF44wtWWjvcIoyY6/aw==
+  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"
+
+remark-lint-fenced-code-flag@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-2.0.1.tgz#2cb3ddb1157082c45760c7d01ca08e13376aaf62"
+  integrity sha512-+COnWHlS/h02FMxoZWxNlZW3Y8M0cQQpmx3aNCbG7xkyMyCKsMLg9EmRvYHHIbxQCuF3JT0WWx5AySqlc7d+NA==
+  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"
+
+remark-lint-fenced-code-marker@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-2.0.1.tgz#7bbeb0fb45b0818a3c8a2d232cf0c723ade58ecf"
+  integrity sha512-lujpjm04enn3ma6lITlttadld6eQ1OWAEcT3qZzvFHp+zPraC0yr0eXlvtDN/0UH8mrln/QmGiZp3i8IdbucZg==
+  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"
+
+remark-lint-file-extension@^1.0.0:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/remark-lint-file-extension/-/remark-lint-file-extension-1.0.5.tgz#7e2feec02919aa3db5c71fda19d726a9e24a4c6c"
+  integrity sha512-oVQdf5vEomwHkfQ7R/mgmsWW2H/t9kSvnrxtVoNOHr+qnOEafKKDn+AFhioN2kqtjCZBAjSSrePs6xGKmXKDTw==
+  dependencies:
+    unified-lint-rule "^1.0.0"
+
+remark-lint-final-definition@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-final-definition/-/remark-lint-final-definition-2.1.0.tgz#b6e654c01ebcb1afc936d7b9cd74db8ec273e0bb"
+  integrity sha512-83K7n2icOHPfBzbR5Mr1o7cu8gOjD8FwJkFx/ly+rW+8SHfjCj4D3WOFGQ1xVdmHjfomBDXXDSNo2oiacADVXQ==
+  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"
+
+remark-lint-hard-break-spaces@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-2.0.1.tgz#2149b55cda17604562d040c525a2a0d26aeb0f0f"
+  integrity sha512-Qfn/BMQFamHhtbfLrL8Co/dbYJFLRL4PGVXZ5wumkUO5f9FkZC2RsV+MD9lisvGTkJK0ZEJrVVeaPbUIFM0OAw==
+  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"
+
+remark-lint-heading-increment@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-heading-increment/-/remark-lint-heading-increment-2.0.1.tgz#b578f251508a05d79bc2d1ae941e0620e23bf1d3"
+  integrity sha512-bYDRmv/lk3nuWXs2VSD1B4FneGT6v7a74FuVmb305hyEMmFSnneJvVgnOJxyKlbNlz12pq1IQ6MhlJBda/SFtQ==
+  dependencies:
+    unified-lint-rule "^1.0.0"
+    unist-util-generated "^1.1.0"
+    unist-util-visit "^2.0.0"
+
+remark-lint-heading-style@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-heading-style/-/remark-lint-heading-style-2.0.1.tgz#8216fca67d97bbbeec8a19b6c71bfefc16549f72"
+  integrity sha512-IrFLNs0M5Vbn9qg51AYhGUfzgLAcDOjh2hFGMz3mx664dV6zLcNZOPSdJBBJq3JQR4gKpoXcNwN1+FFaIATj+A==
+  dependencies:
+    mdast-util-heading-style "^1.0.2"
+    unified-lint-rule "^1.0.0"
+    unist-util-generated "^1.1.0"
+    unist-util-visit "^2.0.0"
+
+remark-lint-link-title-style@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-link-title-style/-/remark-lint-link-title-style-2.0.1.tgz#51a595c69fcfa73a245a030dfaa3504938a1173a"
+  integrity sha512-+Q7Ew8qpOQzjqbDF6sUHmn9mKgje+m2Ho8Xz7cEnGIRaKJgtJzkn/dZqQM/az0gn3zaN6rOuwTwqw4EsT5EsIg==
+  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-list-item-content-indent@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-list-item-content-indent/-/remark-lint-list-item-content-indent-2.0.1.tgz#96387459440dcd61e522ab02bff138b32bfaa63a"
+  integrity sha512-OzUMqavxyptAdG7vWvBSMc9mLW9ZlTjbW4XGayzczd3KIr6Uwp3NEFXKx6MLtYIM/vwBqMrPQUrObOC7A2uBpQ==
+  dependencies:
+    pluralize "^8.0.0"
+    unified-lint-rule "^1.0.0"
+    unist-util-generated "^1.1.0"
+    unist-util-position "^3.0.0"
+    unist-util-visit "^2.0.0"
+
+remark-lint-list-item-indent@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-list-item-indent/-/remark-lint-list-item-indent-2.0.1.tgz#c6472514e17bc02136ca87936260407ada90bf8d"
+  integrity sha512-4IKbA9GA14Q9PzKSQI6KEHU/UGO36CSQEjaDIhmb9UOhyhuzz4vWhnSIsxyI73n9nl9GGRAMNUSGzr4pQUFwTA==
+  dependencies:
+    pluralize "^8.0.0"
+    unified-lint-rule "^1.0.0"
+    unist-util-generated "^1.1.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==
+  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"
+
+remark-lint-maximum-heading-length@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-maximum-heading-length/-/remark-lint-maximum-heading-length-2.0.1.tgz#56f240707a75b59bce3384ccc9da94548affa98f"
+  integrity sha512-1CjJ71YDqEpoOjUnc4wrwZV8ZGXWUIYRYeGoarAy3QKHepJL9M+zkdbOxZDfhc3tjVoDW/LWcgsW+DEpczgiMA==
+  dependencies:
+    mdast-util-to-string "^1.0.2"
+    unified-lint-rule "^1.0.0"
+    unist-util-generated "^1.1.0"
+    unist-util-visit "^2.0.0"
+
+remark-lint-maximum-line-length@^2.0.0:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-2.0.3.tgz#d0d15410637d61b031a83d7c78022ec46d6c858a"
+  integrity sha512-zyWHBFh1oPAy+gkaVFXiTHYP2WwriIeBtaarDqkweytw0+qmuikjVMJTWbQ3+XfYBreD7KKDM9SI79nkp0/IZQ==
+  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"
+
+remark-lint-no-auto-link-without-protocol@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-auto-link-without-protocol/-/remark-lint-no-auto-link-without-protocol-2.0.1.tgz#f75e5c24adb42385593e0d75ca39987edb70b6c4"
+  integrity sha512-TFcXxzucsfBb/5uMqGF1rQA+WJJqm1ZlYQXyvJEXigEZ8EAxsxZGPb/gOQARHl/y0vymAuYxMTaChavPKaBqpQ==
+  dependencies:
+    mdast-util-to-string "^1.0.2"
+    unified-lint-rule "^1.0.0"
+    unist-util-generated "^1.1.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==
+  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-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==
+  dependencies:
+    pluralize "^8.0.0"
+    unified-lint-rule "^1.0.0"
+    unist-util-generated "^1.1.0"
+    unist-util-position "^3.0.0"
+    unist-util-visit "^2.0.0"
+
+remark-lint-no-duplicate-headings@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-duplicate-headings/-/remark-lint-no-duplicate-headings-2.0.1.tgz#4a4b70e029155ebcfc03d8b2358c427b69a87576"
+  integrity sha512-F6AP0FJcHIlkmq0pHX0J5EGvLA9LfhuYTvnNO8y3kvflHeRjFkDyt2foz/taXR8OcLQR51n/jIJiwrrSMbiauw==
+  dependencies:
+    mdast-util-to-string "^1.0.2"
+    unified-lint-rule "^1.0.0"
+    unist-util-generated "^1.1.0"
+    unist-util-position "^3.0.0"
+    unist-util-stringify-position "^2.0.0"
+    unist-util-visit "^2.0.0"
+
+remark-lint-no-emphasis-as-heading@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-emphasis-as-heading/-/remark-lint-no-emphasis-as-heading-2.0.1.tgz#fcc064133fe00745943c334080fed822f72711ea"
+  integrity sha512-z86+yWtVivtuGIxIC4g9RuATbgZgOgyLcnaleonJ7/HdGTYssjJNyqCJweaWSLoaI0akBQdDwmtJahW5iuX3/g==
+  dependencies:
+    unified-lint-rule "^1.0.0"
+    unist-util-generated "^1.1.0"
+    unist-util-visit "^2.0.0"
+
+remark-lint-no-file-name-articles@^1.0.0:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-1.0.5.tgz#4ca3425f6613f94feaef6941028583299727c339"
+  integrity sha512-AQk5eTb3s3TAPPjiglZgqlQj4ycao+gPs8/XkdN1VCPUtewW0GgwoQe7YEuBKayJ6ioN8dGP37Kg/P/PlKaRQA==
+  dependencies:
+    unified-lint-rule "^1.0.0"
+
+remark-lint-no-file-name-consecutive-dashes@^1.0.0:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-1.0.5.tgz#e9a6f2aeab948aa249c8a8356359e3d8843a4c5c"
+  integrity sha512-Mg2IDsi790/dSdAzwnBnsMYdZm3qC2QgGwqOWcr0TPABJhhjC3p8r5fX4MNMTXI5It7B7bW9+ImmCeLOZiXkLg==
+  dependencies:
+    unified-lint-rule "^1.0.0"
+
+remark-lint-no-file-name-irregular-characters@^1.0.0:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-irregular-characters/-/remark-lint-no-file-name-irregular-characters-1.0.5.tgz#6866f5b8370cdc916d55e7cf87bb6a55f9b6e0c6"
+  integrity sha512-Oe5i99qNUKc2bxmiH421o5B/kqlf1dfjAxpHNLhi2X2dXE91zRGavrlRM/4f4oR0N9Bqb3qB9JZPyMPWrzu9XA==
+  dependencies:
+    unified-lint-rule "^1.0.0"
+
+remark-lint-no-file-name-mixed-case@^1.0.0:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-mixed-case/-/remark-lint-no-file-name-mixed-case-1.0.5.tgz#3e37bfef74bbdd4b07aa9ef9dd452758f8b46731"
+  integrity sha512-ilrUCbHZin/ENwr8c3SC2chgkFsizXjBQIB/oZ7gnm1IkCkZPiMyXZAHdpwC/DjbrpGxfMYh9JmIHao4giS5+A==
+  dependencies:
+    unified-lint-rule "^1.0.0"
+
+remark-lint-no-file-name-outer-dashes@^1.0.0:
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-1.0.6.tgz#4e0e4d42a63f0fdfb856bb5d8d8112725656e700"
+  integrity sha512-rT8CmcIlenegS0Yst4maYXdZfqIjBOiRUY8j/KJkORF5tKH+3O1/S07025qPGmcRihzK3w4yO0K8rgkKQw0b9w==
+  dependencies:
+    unified-lint-rule "^1.0.0"
+
+remark-lint-no-heading-punctuation@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-heading-punctuation/-/remark-lint-no-heading-punctuation-2.0.1.tgz#face59f9a95c8aa278a8ee0c728bc44cd53ea9ed"
+  integrity sha512-lY/eF6GbMeGu4cSuxfGHyvaQQBIq/6T/o+HvAR5UfxSTxmxZFwbZneAI2lbeR1zPcqOU87NsZ5ZZzWVwdLpPBw==
+  dependencies:
+    mdast-util-to-string "^1.0.2"
+    unified-lint-rule "^1.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==
+  dependencies:
+    mdast-util-to-string "^1.0.2"
+    unified-lint-rule "^1.0.0"
+    unist-util-generated "^1.1.0"
+    unist-util-visit "^2.0.0"
+
+remark-lint-no-literal-urls@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-2.0.1.tgz#731908f9866c1880e6024dcee1269fb0f40335d6"
+  integrity sha512-IDdKtWOMuKVQIlb1CnsgBoyoTcXU3LppelDFAIZePbRPySVHklTtuK57kacgU5grc7gPM04bZV96eliGrRU7Iw==
+  dependencies:
+    mdast-util-to-string "^1.0.2"
+    unified-lint-rule "^1.0.0"
+    unist-util-generated "^1.1.0"
+    unist-util-position "^3.0.0"
+    unist-util-visit "^2.0.0"
+
+remark-lint-no-multiple-toplevel-headings@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-2.0.1.tgz#3ff2b505adf720f4ff2ad2b1021f8cfd50ad8635"
+  integrity sha512-VKSItR6c+u3OsE5pUiSmNusERNyQS9Nnji26ezoQ1uvy06k3RypIjmzQqJ/hCkSiF+hoyC3ibtrrGT8gorzCmQ==
+  dependencies:
+    unified-lint-rule "^1.0.0"
+    unist-util-generated "^1.1.0"
+    unist-util-position "^3.0.0"
+    unist-util-stringify-position "^2.0.0"
+    unist-util-visit "^2.0.0"
+
+remark-lint-no-shell-dollars@^2.0.0:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-2.0.2.tgz#b2c6c3ed95e5615f8e5f031c7d271a18dc17618e"
+  integrity sha512-zhkHZOuyaD3r/TUUkkVqW0OxsR9fnSrAnHIF63nfJoAAUezPOu8D1NBsni6rX8H2DqGbPYkoeWrNsTwiKP0yow==
+  dependencies:
+    unified-lint-rule "^1.0.0"
+    unist-util-generated "^1.1.0"
+    unist-util-visit "^2.0.0"
+
+remark-lint-no-shortcut-reference-image@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-2.0.1.tgz#d174d12a57e8307caf6232f61a795bc1d64afeaa"
+  integrity sha512-2jcZBdnN6ecP7u87gkOVFrvICLXIU5OsdWbo160FvS/2v3qqqwF2e/n/e7D9Jd+KTq1mR1gEVVuTqkWWuh3cig==
+  dependencies:
+    unified-lint-rule "^1.0.0"
+    unist-util-generated "^1.1.0"
+    unist-util-visit "^2.0.0"
+
+remark-lint-no-shortcut-reference-link@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-2.0.1.tgz#8f963f81036e45cfb7061b3639e9c6952308bc94"
+  integrity sha512-pTZbslG412rrwwGQkIboA8wpBvcjmGFmvugIA+UQR+GfFysKtJ5OZMPGJ98/9CYWjw9Z5m0/EktplZ5TjFjqwA==
+  dependencies:
+    unified-lint-rule "^1.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==
+  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"
+
+remark-lint-ordered-list-marker-style@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-2.0.1.tgz#183c31967e6f2ae8ef00effad03633f7fd00ffaa"
+  integrity sha512-Cnpw1Dn9CHn+wBjlyf4qhPciiJroFOEGmyfX008sQ8uGoPZsoBVIJx76usnHklojSONbpjEDcJCjnOvfAcWW1A==
+  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"
+
+remark-lint-ordered-list-marker-value@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-ordered-list-marker-value/-/remark-lint-ordered-list-marker-value-2.0.1.tgz#0de343de2efb41f01eae9f0f7e7d30fe43db5595"
+  integrity sha512-blt9rS7OKxZ2NW8tqojELeyNEwPhhTJGVa+YpUkdEH+KnrdcD7Nzhnj6zfLWOx6jFNZk3jpq5nvLFAPteHaNKg==
+  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"
+
+remark-lint-rule-style@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-rule-style/-/remark-lint-rule-style-2.0.1.tgz#f59bd82e75d3eaabd0eee1c8c0f5513372eb553c"
+  integrity sha512-hz4Ff9UdlYmtO6Czz99WJavCjqCer7Cav4VopXt+yVIikObw96G5bAuLYcVS7hvMUGqC9ZuM02/Y/iq9n8pkAg==
+  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"
+
+remark-lint-strong-marker@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-strong-marker/-/remark-lint-strong-marker-2.0.1.tgz#1ad8f190c6ac0f8138b638965ccf3bcd18f6d4e4"
+  integrity sha512-8X2IsW1jZ5FmW9PLfQjkL0OVy/J3xdXLcZrG1GTeQKQ91BrPFyEZqUM2oM6Y4S6LGtxWer+neZkPZNroZoRPBQ==
+  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"
+
+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==
+  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"
+
+remark-lint-table-pipe-alignment@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-table-pipe-alignment/-/remark-lint-table-pipe-alignment-2.0.1.tgz#12b7e4c54473d69c9866cb33439c718d09cffcc5"
+  integrity sha512-O89U7bp0ja6uQkT2uQrNB76GaPvFabrHiUGhqEUnld21yEdyj7rgS57kn84lZNSuuvN1Oor6bDyCwWQGzzpoOQ==
+  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"
+
+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==
+  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"
+
+remark-lint-unordered-list-marker-style@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-2.0.1.tgz#e64692aa9594dbe7e945ae76ab2218949cd92477"
+  integrity sha512-8KIDJNDtgbymEvl3LkrXgdxPMTOndcux3BHhNGB2lU4UnxSpYeHsxcDgirbgU6dqCAfQfvMjPvfYk19QTF9WZA==
+  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"
+
+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==
   dependencies:
-    argparse "^1.0.10"
-    autolinker "^3.11.0"
+    remark-message-control "^6.0.0"
+
+remark-message-control@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/remark-message-control/-/remark-message-control-6.0.0.tgz#955b054b38c197c9f2e35b1d88a4912949db7fc5"
+  integrity sha512-k9bt7BYc3G7YBdmeAhvd3VavrPa/XlKWR3CyHjr4sLO9xJyly8WHHT3Sp+8HPR8lEUv+/sZaffL7IjMLV0f6BA==
+  dependencies:
+    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==
+  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"
+
+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==
+  dependencies:
+    remark-lint "^7.0.0"
+    remark-lint-blockquote-indentation "^2.0.0"
+    remark-lint-code-block-style "^2.0.0"
+    remark-lint-definition-case "^2.0.0"
+    remark-lint-definition-spacing "^2.0.0"
+    remark-lint-emphasis-marker "^2.0.0"
+    remark-lint-fenced-code-flag "^2.0.0"
+    remark-lint-fenced-code-marker "^2.0.0"
+    remark-lint-file-extension "^1.0.0"
+    remark-lint-final-definition "^2.0.0"
+    remark-lint-hard-break-spaces "^2.0.0"
+    remark-lint-heading-increment "^2.0.0"
+    remark-lint-heading-style "^2.0.0"
+    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-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-duplicate-headings "^2.0.0"
+    remark-lint-no-emphasis-as-heading "^2.0.0"
+    remark-lint-no-file-name-articles "^1.0.0"
+    remark-lint-no-file-name-consecutive-dashes "^1.0.0"
+    remark-lint-no-file-name-irregular-characters "^1.0.0"
+    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-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-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-pipe-alignment "^2.0.0"
+    remark-lint-table-pipes "^2.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==
+  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"
+
+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==
+  dependencies:
+    remark-parse "^8.0.0"
+    remark-stringify "^8.0.0"
+    unified "^9.0.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=
 
-renderkid@^2.0.1:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.3.tgz#380179c2ff5ae1365c522bf2fcfcff01c5b74149"
-  integrity sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==
+renderkid@^2.0.4:
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.4.tgz#d325e532afb28d3f8796ffee306be8ffd6fc864c"
+  integrity sha512-K2eXrSOJdq+HuKzlcjOlGoOarUu5SDguDEhE7+Ah4zuOWL40j8A/oHvLlLob9PSTNvVnBd+/q0Er1QfpEuem5g==
   dependencies:
     css-select "^1.1.0"
     dom-converter "^0.2"
     htmlparser2 "^3.3.0"
+    lodash "^4.17.20"
     strip-ansi "^3.0.0"
-    utila "^0.4.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==
 
-repeat-string@^1.5.2, repeat-string@^1.6.1:
+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:
   version "1.6.1"
   resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
   integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
@@ -8549,30 +9514,28 @@ repeating@^2.0.0:
   dependencies:
     is-finite "^1.0.0"
 
-request-progress@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-2.0.1.tgz#5d36bb57961c673aa5b788dbc8141fdf23b44e08"
-  integrity sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=
-  dependencies:
-    throttleit "^1.0.0"
+replace-ext@1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb"
+  integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=
 
-request-promise-core@1.1.3:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9"
-  integrity sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==
+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.15"
+    lodash "^4.17.19"
 
 request-promise-native@^1.0.5:
-  version "1.0.8"
-  resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36"
-  integrity sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==
+  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.3"
+    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.61.0, request@^2.81.0, request@^2.83.0, request@^2.86.0, request@^2.87.0, request@^2.88.0:
+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:
   version "2.88.2"
   resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
   integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
@@ -8594,7 +9557,7 @@ request@2.x, "request@>= 2.52.0", request@^2.61.0, request@^2.81.0, request@^2.8
     performance-now "^2.1.0"
     qs "~6.5.2"
     safe-buffer "^5.1.2"
-    tough-cookie "^2.4.3"
+    tough-cookie "~2.5.0"
     tunnel-agent "^0.6.0"
     uuid "^3.3.2"
 
@@ -8608,11 +9571,6 @@ require-main-filename@^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==
 
-require-relative@0.8.7:
-  version "0.8.7"
-  resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de"
-  integrity sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=
-
 resolve-cwd@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
@@ -8638,16 +9596,22 @@ 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-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.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.5.0, resolve@^1.8.1:
-  version "1.15.1"
-  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8"
-  integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==
+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==
   dependencies:
+    is-core-module "^2.1.0"
     path-parse "^1.0.6"
 
 restore-cursor@^2.0.0:
@@ -8670,7 +9634,12 @@ retry-as-promised@^3.2.0:
   dependencies:
     any-promise "^1.3.0"
 
-reveal.js@~3.9.2:
+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==
+
+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==
@@ -8685,13 +9654,6 @@ rgba-regex@^1.0.0:
   resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3"
   integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=
 
-right-align@^0.1.1:
-  version "0.1.3"
-  resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
-  integrity sha1-YTObci/mo1FWiSENJOFMlhSGE+8=
-  dependencies:
-    align-text "^0.1.1"
-
 rimraf@2.6.3:
   version "2.6.3"
   resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
@@ -8706,6 +9668,13 @@ rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3:
   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"
+
 rimraf@~2.4.0:
   version "2.4.5"
   resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da"
@@ -8721,44 +9690,15 @@ ripemd160@^2.0.0, ripemd160@^2.0.1:
     hash-base "^3.0.0"
     inherits "^2.0.1"
 
-rollup-plugin-buble@^0.19.2:
-  version "0.19.8"
-  resolved "https://registry.yarnpkg.com/rollup-plugin-buble/-/rollup-plugin-buble-0.19.8.tgz#f9232e2bb62a7573d04f9705c1bd6f02c2a02c6a"
-  integrity sha512-8J4zPk2DQdk3rxeZvxgzhHh/rm5nJkjwgcsUYisCQg1QbT5yagW+hehYEW7ZNns/NVbDCTv4JQ7h4fC8qKGOKw==
-  dependencies:
-    buble "^0.19.8"
-    rollup-pluginutils "^2.3.3"
-
-rollup-pluginutils@^2.0.1, rollup-pluginutils@^2.3.3:
-  version "2.8.2"
-  resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e"
-  integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==
-  dependencies:
-    estree-walker "^0.6.1"
-
-rollup-watch@^4.3.1:
-  version "4.3.1"
-  resolved "https://registry.yarnpkg.com/rollup-watch/-/rollup-watch-4.3.1.tgz#5aa1eaeab787addf368905d102b39d6fc5ce4a8b"
-  integrity sha512-6yjnIwfjpSrqA8IafyIu7fsEyeImNR4aDjA1bQ7KWeVuiA+Clfsx8+PGQkyABWIQzmauQ//tIJ5wAxLXsXs8qQ==
-  dependencies:
-    chokidar "^1.7.0"
-    require-relative "0.8.7"
-    rollup-pluginutils "^2.0.1"
-
-rollup@^0.66.2:
-  version "0.66.6"
-  resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.66.6.tgz#ce7d6185beb7acea644ce220c25e71ae03275482"
-  integrity sha512-J7/SWanrcb83vfIHqa8+aVVGzy457GcjA6GVZEnD0x2u4OnOd0Q1pCrEoNe8yLwM6z6LZP02zBT2uW0yh5TqOw==
-  dependencies:
-    "@types/estree" "0.0.39"
-    "@types/node" "*"
-
 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=
-  dependencies:
-    is-promise "^2.1.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==
 
 run-queue@^1.0.0, run-queue@^1.0.3:
   version "1.0.3"
@@ -8773,22 +9713,27 @@ rw@1:
   integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=
 
 rxjs@^6.4.0:
-  version "6.5.4"
-  resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c"
-  integrity sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==
+  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.2.0, 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:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
-  integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
+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"
+  integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
 
 safe-buffer@5.1.2, 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-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-json-stringify@~1:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz#356e44bc98f1f93ce45df14bcd7c01cda86e0afd"
@@ -8801,7 +9746,7 @@ safe-regex@^1.1.0:
   dependencies:
     ret "~0.1.10"
 
-"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", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, 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==
@@ -8830,24 +9775,25 @@ schema-utils@^1.0.0:
     ajv-errors "^1.0.0"
     ajv-keywords "^3.1.0"
 
-schema-utils@^2.5.0, schema-utils@^2.6.0, schema-utils@^2.6.4:
-  version "2.6.4"
-  resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.4.tgz#a27efbf6e4e78689d91872ee3ccfa57d7bdd0f53"
-  integrity sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==
+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:
-    ajv "^6.10.2"
-    ajv-keywords "^3.4.1"
+    "@types/json-schema" "^7.0.5"
+    ajv "^6.12.4"
+    ajv-keywords "^3.5.2"
 
-scope-css@^1.2.1:
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/scope-css/-/scope-css-1.2.1.tgz#c35768bc900cad030a3e0d663a818c0f6a57f40e"
-  integrity sha512-UjLRmyEYaDNiOS673xlVkZFlVCtckJR/dKgr434VMm7Lb+AOOqXKdAcY7PpGlJYErjXXJzKN7HWo4uRPiZZG0Q==
+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:
-    escaper "^2.5.3"
-    slugify "^1.3.1"
-    strip-css-comments "^3.0.0"
+    "@types/json-schema" "^7.0.6"
+    ajv "^6.12.5"
+    ajv-keywords "^3.5.2"
 
-script-loader@^0.7.2:
+script-loader@0.7.2:
   version "0.7.2"
   resolved "https://registry.yarnpkg.com/script-loader/-/script-loader-0.7.2.tgz#2016db6f86f25f5cf56da38915d83378bb166ba7"
   integrity sha512-UMNLEvgOAQuzK8ji8qIscM3GIrRCWN6MmMXGD4SD5l6cSycgGsCo0tX5xRnfQcoghqct0tjHjcykgI1PyBE2aA==
@@ -8874,17 +9820,17 @@ select@^1.1.2:
   resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d"
   integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=
 
+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@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0, semver@^5.5.1, 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@4.3.2:
-  version "4.3.2"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.2.tgz#c7a07158a80bedd052355b770d82d6640f803be7"
-  integrity sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c=
-
-semver@^6.3.0:
+semver@^6.0.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==
@@ -8933,9 +9879,9 @@ sequelize-pool@^2.3.0:
   integrity sha512-Ibz08vnXvkZ8LJTiUOxRcj1Ckdn7qafNZ2t59jYHMX1VIebTAOYefWdRYFt6z6+hy52WGthAHAoLc9hvk3onqA==
 
 sequelize@^5.21.1:
-  version "5.21.4"
-  resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-5.21.4.tgz#a49597dbd7862e4e1fb8ec819de04705d06d9d17"
-  integrity sha512-Ap1pZpvKb0o3H1HuBygMi9LfCJnwYLkXNBoISqkMJ17X6MbXuOB0Pz+XazawodU1uaMl9osCSrP+Uklkc6pgQg==
+  version "5.22.3"
+  resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-5.22.3.tgz#7e7a92ddd355d883c9eb11cdb106d874d0d2636f"
+  integrity sha512-+nxf4TzdrB+PRmoWhR05TP9ukLAurK7qtKcIFv5Vhxm5Z9v+d2PcTT6Ea3YAoIQVkZ47QlT9XWAIUevMT/3l8Q==
   dependencies:
     bluebird "^3.5.0"
     cls-bluebird "^2.1.0"
@@ -8953,15 +9899,19 @@ sequelize@^5.21.1:
     validator "^10.11.0"
     wkx "^0.4.8"
 
-serialize-javascript@^2.1.2:
-  version "2.1.2"
-  resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61"
-  integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==
+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"
 
-series-stream@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/series-stream/-/series-stream-1.0.1.tgz#311a09c5c1d5a091440832e1a480a47400f1005d"
-  integrity sha1-MRoJxcHVoJFECDLhpICkdADxAF0=
+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"
@@ -9023,10 +9973,12 @@ shimmer@^1.1.0:
   resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.1.tgz#610859f7de327b587efebf501fb43117f9aff337"
   integrity sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==
 
-shortid@2.2.8:
-  version "2.2.8"
-  resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.8.tgz#033b117d6a2e975804f6f0969dbe7d3d0b355131"
-  integrity sha1-AzsRfWoul1gE9vCWnb59PQs1UTE=
+shortid@2.2.16:
+  version "2.2.16"
+  resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.16.tgz#b742b8f0cb96406fd391c76bfc18a67a57fe5608"
+  integrity sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g==
+  dependencies:
+    nanoid "^2.1.0"
 
 sigmund@^1.0.1:
   version "1.0.1"
@@ -9034,9 +9986,9 @@ sigmund@^1.0.1:
   integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=
 
 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-swizzle@^0.2.2:
   version "0.2.2"
@@ -9050,6 +10002,11 @@ slash@^1.0.0:
   resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
   integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=
 
+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@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636"
@@ -9059,10 +10016,10 @@ slice-ansi@^2.1.0:
     astral-regex "^1.0.0"
     is-fullwidth-code-point "^2.0.0"
 
-slugify@^1.3.1:
-  version "1.3.6"
-  resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.3.6.tgz#ba5fd6159b570fe4811d02ea9b1f4906677638c3"
-  integrity sha512-wA9XS475ZmGNlEnYYLPReSfuz/c3VQsEMoU43mi6OnKMCdbnFXd4/Yg7J0lBv8jkPolacMpOrWEaoYxuE1+hoQ==
+sliced@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/sliced/-/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41"
+  integrity sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=
 
 snapdragon-node@^2.0.1:
   version "2.1.1"
@@ -9094,58 +10051,84 @@ snapdragon@^0.8.1:
     source-map-resolve "^0.5.0"
     use "^3.1.0"
 
-snapsvg@0.4.x:
-  version "0.4.0"
-  resolved "https://registry.yarnpkg.com/snapsvg/-/snapsvg-0.4.0.tgz#e0767014167825957de7e125c29b0fa89796ea03"
-  integrity sha1-4HZwFBZ4JZV95+ElwpsPqJeW6gM=
+snapsvg@0.5.x:
+  version "0.5.1"
+  resolved "https://registry.yarnpkg.com/snapsvg/-/snapsvg-0.5.1.tgz#0caf52c79189a290746fc446cc5e863f6bdddfe3"
+  integrity sha1-DK9Sx5GJopB0b8RGzF6GP2vd3+M=
   dependencies:
-    eve "~0.4.2"
+    eve "~0.5.1"
 
 socket.io-adapter@~1.1.0:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9"
   integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==
 
-socket.io-client@2.1.1, socket.io-client@~2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.1.tgz#dcb38103436ab4578ddb026638ae2f21b623671f"
-  integrity sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==
+socket.io-client@2.3.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.3.0.tgz#14d5ba2e00b9bcd145ae443ab96b3f86cbcc1bb4"
+  integrity sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==
   dependencies:
     backo2 "1.0.2"
     base64-arraybuffer "0.1.5"
     component-bind "1.0.0"
     component-emitter "1.2.1"
-    debug "~3.1.0"
-    engine.io-client "~3.2.0"
+    debug "~4.1.0"
+    engine.io-client "~3.4.0"
     has-binary2 "~1.0.2"
     has-cors "1.1.0"
     indexof "0.0.1"
     object-component "0.0.3"
     parseqs "0.0.5"
     parseuri "0.0.5"
-    socket.io-parser "~3.2.0"
+    socket.io-parser "~3.3.0"
     to-array "0.1.4"
 
-socket.io-parser@~3.2.0:
-  version "3.2.0"
-  resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz#e7c6228b6aa1f814e6148aea325b51aa9499e077"
-  integrity sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==
+socket.io-client@^2.1.1:
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.3.1.tgz#91a4038ef4d03c19967bb3c646fec6e0eaa78cff"
+  integrity sha512-YXmXn3pA8abPOY//JtYxou95Ihvzmg8U6kQyolArkIyLd0pgVhrfor/iMsox8cn07WCOOvvuJ6XKegzIucPutQ==
   dependencies:
-    component-emitter "1.2.1"
+    backo2 "1.0.2"
+    component-bind "1.0.0"
+    component-emitter "~1.3.0"
     debug "~3.1.0"
-    isarray "2.0.1"
+    engine.io-client "~3.4.0"
+    has-binary2 "~1.0.2"
+    indexof "0.0.1"
+    parseqs "0.0.6"
+    parseuri "0.0.6"
+    socket.io-parser "~3.3.0"
+    to-array "0.1.4"
 
-socket.io@~2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz#a069c5feabee3e6b214a75b40ce0652e1cfb9980"
-  integrity sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==
+socket.io-parser@~3.3.0:
+  version "3.3.1"
+  resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.1.tgz#f07d9c8cb3fb92633aa93e76d98fd3a334623199"
+  integrity sha512-1QLvVAe8dTz+mKmZ07Swxt+LAo4Y1ff50rlyoEx00TQmDFVQYPfcqGvIDJLGaBdhdNCecXtyKpD+EgKGcmmbuQ==
   dependencies:
+    component-emitter "~1.3.0"
     debug "~3.1.0"
-    engine.io "~3.2.0"
+    isarray "2.0.1"
+
+socket.io-parser@~3.4.0:
+  version "3.4.1"
+  resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.4.1.tgz#b06af838302975837eab2dc980037da24054d64a"
+  integrity sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==
+  dependencies:
+    component-emitter "1.2.1"
+    debug "~4.1.0"
+    isarray "2.0.1"
+
+socket.io@^2.1.1:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.3.0.tgz#cd762ed6a4faeca59bc1f3e243c0969311eb73fb"
+  integrity sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==
+  dependencies:
+    debug "~4.1.0"
+    engine.io "~3.4.0"
     has-binary2 "~1.0.2"
     socket.io-adapter "~1.1.0"
-    socket.io-client "2.1.1"
-    socket.io-parser "~3.2.0"
+    socket.io-client "2.3.0"
+    socket.io-parser "~3.4.0"
 
 sort-keys@^1.0.0:
   version "1.1.2"
@@ -9178,9 +10161,9 @@ source-map-support@^0.4.12, source-map-support@^0.4.15:
     source-map "^0.5.6"
 
 source-map-support@~0.5.12:
-  version "0.5.16"
-  resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042"
-  integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==
+  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"
@@ -9190,7 +10173,7 @@ source-map-url@^0.4.0:
   resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
   integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=
 
-source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1:
+source-map@^0.5.6, source-map@^0.5.7:
   version "0.5.7"
   resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
   integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
@@ -9200,36 +10183,36 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
   resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
   integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
 
-sourcemap-codec@^1.4.4:
-  version "1.4.8"
-  resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
-  integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
+source-map@^0.7.3:
+  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.0"
-  resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4"
-  integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==
+  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.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.5"
-  resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654"
-  integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==
+  version "3.0.6"
+  resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz#c80757383c28abf7296744998cbc106ae8b854ce"
+  integrity sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==
 
 spin.js@^2.3.2:
   version "2.3.2"
@@ -9243,12 +10226,12 @@ split-string@^3.0.1, split-string@^3.0.2:
   dependencies:
     extend-shallow "^3.0.0"
 
-split@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9"
-  integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==
+split2@^3.1.1:
+  version "3.2.2"
+  resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f"
+  integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==
   dependencies:
-    through "2"
+    readable-stream "^3.0.0"
 
 sprintf-js@^1.1.2:
   version "1.1.2"
@@ -9261,18 +10244,17 @@ sprintf-js@~1.0.2:
   integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
 
 sqlite3@^4.1.0:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-4.1.1.tgz#539a42e476640796578e22d589b3283c28055242"
-  integrity sha512-CvT5XY+MWnn0HkbwVKJAyWEMfzpAPwnTiB3TobA5Mri44SrTovmmh499NPQP+gatkeOipqPlBLel7rn4E/PCQg==
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-4.2.0.tgz#49026d665e9fc4f922e56fb9711ba5b4c85c4901"
+  integrity sha512-roEOz41hxui2Q7uYnWsjMOTry6TcNUNmp8audCx18gF10P2NknwdpF+E+HKvz/F2NvPKGGBF4NGc+ZPQ+AABwg==
   dependencies:
     nan "^2.12.1"
     node-pre-gyp "^0.11.0"
-    request "^2.87.0"
 
-sqlstring@^2.3.1:
-  version "2.3.1"
-  resolved "https://registry.yarnpkg.com/sqlstring/-/sqlstring-2.3.1.tgz#475393ff9e91479aea62dcaf0ca3d14983a7fb40"
-  integrity sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A=
+sqlstring@^2.3.2:
+  version "2.3.2"
+  resolved "https://registry.yarnpkg.com/sqlstring/-/sqlstring-2.3.2.tgz#cdae7169389a1375b18e885f2e60b3e460809514"
+  integrity sha512-vF4ZbYdKS8OnoJAWBmMxCQDkiEBkGQYU7UZPtL8flbDRSNkhaXvRJ279ZtI6M+zDaQovVU4tuRgzK5fVhvFAhg==
 
 sshpk@^1.7.0:
   version "1.16.1"
@@ -9296,6 +10278,13 @@ ssri@^6.0.1:
   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==
+  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"
@@ -9306,6 +10295,11 @@ 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"
@@ -9345,16 +10339,6 @@ stream-each@^1.1.0:
     end-of-stream "^1.1.0"
     stream-shift "^1.0.0"
 
-stream-from-to@^1.4.2:
-  version "1.4.3"
-  resolved "https://registry.yarnpkg.com/stream-from-to/-/stream-from-to-1.4.3.tgz#b270473ebc514e73615727c5d2f76b229941df94"
-  integrity sha1-snBHPrxRTnNhVyfF0vdrIplB35Q=
-  dependencies:
-    async "^1.5.2"
-    concat-stream "^1.4.7"
-    mkdirp "^0.5.0"
-    series-stream "^1.0.1"
-
 stream-http@^2.7.2:
   version "2.8.3"
   resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc"
@@ -9376,7 +10360,7 @@ strict-uri-encode@^1.0.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:
+string-loader@0.0.1:
   version "0.0.1"
   resolved "https://registry.yarnpkg.com/string-loader/-/string-loader-0.0.1.tgz#496f3cccc990213e0dd5411499f9ac6a6a6f2ff8"
   integrity sha1-SW88zMmQIT4N1UEUmfmsampvL/g=
@@ -9412,21 +10396,30 @@ string-width@^3.0.0, string-width@^3.1.0:
     is-fullwidth-code-point "^2.0.0"
     strip-ansi "^5.1.0"
 
-string.prototype.trimleft@^2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74"
-  integrity sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==
+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==
+  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.2"
+  resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz#6ddd9a8796bc714b489a3ae22246a208f37bfa46"
+  integrity sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw==
   dependencies:
     define-properties "^1.1.3"
-    function-bind "^1.1.1"
+    es-abstract "^1.18.0-next.1"
 
-string.prototype.trimright@^2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9"
-  integrity sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==
+string.prototype.trimstart@^1.0.1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz#22d45da81015309cd0cdd79787e8919fc5c613e7"
+  integrity sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg==
   dependencies:
     define-properties "^1.1.3"
-    function-bind "^1.1.1"
+    es-abstract "^1.18.0-next.1"
 
 string@^3.3.3:
   version "3.3.3"
@@ -9452,6 +10445,15 @@ 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"
@@ -9473,6 +10475,13 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
   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-ansi@~0.1.0:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991"
@@ -9483,30 +10492,19 @@ strip-bom@^3.0.0:
   resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
   integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
 
-strip-css-comments@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/strip-css-comments/-/strip-css-comments-3.0.0.tgz#7a5625eff8a2b226cf8947a11254da96e13dae89"
-  integrity sha1-elYl7/iisibPiUehElTaluE9rok=
-  dependencies:
-    is-regexp "^1.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-json-comments@^2.0.1, 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=
 
-style-loader@^1.0.0:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.1.3.tgz#9e826e69c683c4d9bf9db924f85e9abb30d5e200"
-  integrity sha512-rlkH7X/22yuwFYK357fMN/BxYOorfnfq0eD7+vqlemSK4wEcejFF1dg4zxP0euBW8NrYx2WZzZ8PPFevr7D+Kw==
+strtok3@^6.0.3:
+  version "6.0.4"
+  resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-6.0.4.tgz#ede0d20fde5aa9fda56417c3558eaafccc724694"
+  integrity sha512-rqWMKwsbN9APU47bQTMEYTPcwdpKDtmf1jVhHzNW2cL1WqAxaM9iBb9t5P2fj+RV2YsErUWgQzHD5JwV0uCTEQ==
   dependencies:
-    loader-utils "^1.2.3"
-    schema-utils "^2.6.4"
+    "@tokenizer/token" "^0.1.1"
+    "@types/debug" "^4.1.5"
+    peek-readable "^3.1.0"
 
 stylehacks@^4.0.0:
   version "4.0.3"
@@ -9517,6 +10515,11 @@ stylehacks@^4.0.0:
     postcss "^7.0.0"
     postcss-selector-parser "^3.0.0"
 
+stylis@^3.5.2:
+  version "3.5.4"
+  resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.5.4.tgz#f665f25f5e299cf3d64654ab949a57c768b73fbe"
+  integrity sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==
+
 superagent@1.8.3:
   version "1.8.3"
   resolved "https://registry.yarnpkg.com/superagent/-/superagent-1.8.3.tgz#2b7d70fcc870eda4f2a61e619dd54009b86547c3"
@@ -9541,13 +10544,6 @@ supports-color@5.4.0:
   dependencies:
     has-flag "^3.0.0"
 
-supports-color@6.1.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@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
@@ -9560,6 +10556,20 @@ supports-color@^5.3.0:
   dependencies:
     has-flag "^3.0.0"
 
+supports-color@^6.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.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"
+
 svgo@^1.0.0:
   version "1.3.2"
   resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167"
@@ -9599,20 +10609,18 @@ tapable@^1.0.0, tapable@^1.1.3:
   resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
   integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==
 
-tar-stream@^1.5.0:
-  version "1.6.2"
-  resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555"
-  integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==
+tar-stream@^2.1.4:
+  version "2.1.4"
+  resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.4.tgz#c4fb1a11eb0da29b893a5b25476397ba2d053bfa"
+  integrity sha512-o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw==
   dependencies:
-    bl "^1.0.0"
-    buffer-alloc "^1.2.0"
-    end-of-stream "^1.0.0"
+    bl "^4.0.3"
+    end-of-stream "^1.4.1"
     fs-constants "^1.0.0"
-    readable-stream "^2.3.0"
-    to-buffer "^1.1.1"
-    xtend "^4.0.0"
+    inherits "^2.0.3"
+    readable-stream "^3.1.1"
 
-tar@^4, tar@^4.4.2:
+tar@^4:
   version "4.4.13"
   resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525"
   integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==
@@ -9625,6 +10633,18 @@ tar@^4, tar@^4.4.2:
     safe-buffer "^5.1.2"
     yallist "^3.0.3"
 
+tar@^6.0.2:
+  version "6.0.5"
+  resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.5.tgz#bde815086e10b39f1dcd298e89d596e1535e200f"
+  integrity sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==
+  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"
+
 tedious@^6.6.0:
   version "6.7.0"
   resolved "https://registry.yarnpkg.com/tedious/-/tedious-6.7.0.tgz#ad02365f16f9e0416b216e13d3f83c53addd42ca"
@@ -9643,24 +10663,24 @@ tedious@^6.6.0:
     sprintf-js "^1.1.2"
 
 terser-webpack-plugin@^1.4.3:
-  version "1.4.3"
-  resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c"
-  integrity sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==
+  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 "^2.1.2"
+    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@^4.0.0, terser@^4.1.2, terser@^4.3.9:
-  version "4.6.3"
-  resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.3.tgz#e33aa42461ced5238d352d2df2a67f21921f8d87"
-  integrity sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==
+terser@^4.0.0, terser@^4.1.2, terser@^4.6.3:
+  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"
@@ -9676,11 +10696,6 @@ text-table@^0.2.0:
   resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
   integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
 
-throttleit@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c"
-  integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=
-
 through2@^0.6.5:
   version "0.6.5"
   resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48"
@@ -9697,22 +10712,15 @@ through2@^2.0.0:
     readable-stream "~2.3.6"
     xtend "~4.0.1"
 
-through2@^3.0.1:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.1.tgz#39276e713c3302edf9e388dd9c812dd3b825bd5a"
-  integrity sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==
-  dependencies:
-    readable-stream "2 || 3"
-
-through@2, through@^2.3.6:
+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=
 
 timers-browserify@^2.0.4:
-  version "2.0.11"
-  resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f"
-  integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==
+  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"
 
@@ -9741,13 +10749,6 @@ tmp@^0.0.33:
   dependencies:
     os-tmpdir "~1.0.2"
 
-tmp@^0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877"
-  integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==
-  dependencies:
-    rimraf "^2.6.3"
-
 to-array@0.1.4:
   version "0.1.4"
   resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890"
@@ -9758,11 +10759,6 @@ to-arraybuffer@^1.0.0:
   resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
   integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=
 
-to-buffer@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80"
-  integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==
-
 to-fast-properties@^1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
@@ -9783,6 +10779,13 @@ to-regex-range@^2.1.0:
     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"
@@ -9793,11 +10796,27 @@ to-regex@^3.0.1, to-regex@^3.0.2:
     regex-not "^1.0.2"
     safe-regex "^1.1.0"
 
+to-vfile@^6.0.0:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/to-vfile/-/to-vfile-6.1.0.tgz#5f7a3f65813c2c4e34ee1f7643a5646344627699"
+  integrity sha512-BxX8EkCxOAZe+D/ToHdDsJcVI4HqQfmw0tCkp31zf3dNP/XWIAjU4CmeuSwsSoOzOTqHPOL0KUzyZqJplkD0Qw==
+  dependencies:
+    is-buffer "^2.0.0"
+    vfile "^4.0.0"
+
 toidentifier@1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
   integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
 
+token-types@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/token-types/-/token-types-2.0.0.tgz#b23618af744818299c6fbf125e0fdad98bab7e85"
+  integrity sha512-WWvu8sGK8/ZmGusekZJJ5NM6rRVTTDO7/bahz4NGiSDb/XsmdYBn6a1N/bymUHuWYTWeuLUg98wUzvE4jPdCZw==
+  dependencies:
+    "@tokenizer/token" "^0.1.0"
+    ieee754 "^1.1.13"
+
 toobusy-js@^0.5.1:
   version "0.5.1"
   resolved "https://registry.yarnpkg.com/toobusy-js/-/toobusy-js-0.5.1.tgz#5511f78f6a87a6a512d44fdb0efa13672217f659"
@@ -9808,13 +10827,13 @@ 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.4.0:
-  version "2.4.3"
-  resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781"
-  integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==
+tough-cookie@^2.3.3, tough-cookie@^2.3.4, 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==
   dependencies:
-    psl "^1.1.24"
-    punycode "^1.4.1"
+    psl "^1.1.28"
+    punycode "^2.1.1"
 
 tr46@^1.0.1:
   version "1.0.1"
@@ -9828,11 +10847,26 @@ trim-right@^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"
   integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==
 
+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==
+
 try-catch@^2.0.0:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/try-catch/-/try-catch-2.0.1.tgz#a35d354187c422f291a0bcfd9eb77e3a4f90c1e5"
@@ -9843,10 +10877,20 @@ try-to-catch@^1.0.2:
   resolved "https://registry.yarnpkg.com/try-to-catch/-/try-to-catch-1.1.1.tgz#770162dd13b9a0e55da04db5b7f888956072038a"
   integrity sha512-ikUlS+/BcImLhNYyIgZcEmq4byc31QpC+46/6Jm5ECWkVFhf8SM2Fp/0pMVXPX6vk45SMCwrP4Taxucne8I0VA==
 
-tslib@^1.10.0, tslib@^1.9.0, tslib@^1.9.2, tslib@^1.9.3:
-  version "1.10.0"
-  resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
-  integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==
+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@^1.10.0, tslib@^1.9.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==
 
 tty-browserify@0.0.0:
   version "0.0.0"
@@ -9884,11 +10928,6 @@ type-check@~0.3.2:
   dependencies:
     prelude-ls "~1.1.2"
 
-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-is@~1.6.17, type-is@~1.6.18:
   version "1.6.18"
   resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
@@ -9903,9 +10942,16 @@ type@^1.0.1:
   integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==
 
 type@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3"
-  integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==
+  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"
+  integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==
+  dependencies:
+    is-typedarray "^1.0.0"
 
 typedarray@^0.0.6:
   version "0.0.6"
@@ -9917,28 +10963,15 @@ uc.micro@^1.0.1, uc.micro@^1.0.5:
   resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac"
   integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==
 
-uglify-js@^2.8.15:
-  version "2.8.29"
-  resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
-  integrity sha1-KcVzMUgFe7Th913zW3qcty5qWd0=
-  dependencies:
-    source-map "~0.5.1"
-    yargs "~3.10.0"
-  optionalDependencies:
-    uglify-to-browserify "~1.0.0"
-
-uglify-js@^3.1.4, uglify-js@^3.5.1:
-  version "3.7.7"
-  resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.7.7.tgz#21e52c7dccda80a53bf7cde69628a7e511aec9c9"
-  integrity sha512-FeSU+hi7ULYy6mn8PKio/tXsdSXN35lm4KgV2asx00kzrLU9Pi3oAslcJT70Jdj7PHX29gGUPOT6+lXGBbemhA==
-  dependencies:
-    commander "~2.20.3"
-    source-map "~0.6.1"
+uglify-js@^3.1.4:
+  version "3.11.6"
+  resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.11.6.tgz#144b50d3e05eadd3ad4dd047c60ca541a8cd4e9c"
+  integrity sha512-oASI1FOJ7BBFkSCNDZ446EgkSuHkOZBuqRFrwXIKWCoXw8ZXQETooTQjkAcBS03Acab7ubCKsXnwuV2svy061g==
 
-uglify-to-browserify@~1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
-  integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc=
+uglify-js@^3.5.1:
+  version "3.12.2"
+  resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.12.2.tgz#c7ae89da0ed1bb58999c7fce07190b347fdbdaba"
+  integrity sha512-rWYleAvfJPjduYCt+ELvzybNah/zIkRteGXIBO8X0lteRZPGladF61hFi8tU7qKTsF7u6DUQCtT9k00VlFOgkg==
 
 uid-safe@~2.1.5:
   version "2.1.5"
@@ -9952,56 +10985,99 @@ uid2@0.0.x:
   resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82"
   integrity sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I=
 
-ultron@~1.1.0:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c"
-  integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==
-
 umzug@^2.1.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/umzug/-/umzug-2.2.0.tgz#6160bdc1817e4a63a625946775063c638623e62e"
-  integrity sha512-xZLW76ax70pND9bx3wqwb8zqkFGzZIK8dIHD9WdNy/CrNfjWcwQgQkGCuUqcuwEBvUm+g07z+qWvY+pxDmMEEw==
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/umzug/-/umzug-2.3.0.tgz#0ef42b62df54e216b05dcaf627830a6a8b84a184"
+  integrity sha512-Z274K+e8goZK8QJxmbRPhl89HPO1K+ORFtm6rySPhFKfKc5GHhqdzD0SGhSWHkzoXasqJuItdhorSvY7/Cgflw==
   dependencies:
-    babel-runtime "^6.23.0"
-    bluebird "^3.5.3"
-
-underscore@1.8.x, underscore@~1.8.3:
-  version "1.8.3"
-  resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022"
-  integrity sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=
+    bluebird "^3.7.2"
 
-"underscore@>= 1.3.1", underscore@^1.7.0:
-  version "1.9.2"
-  resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.2.tgz#0c8d6f536d6f378a5af264a72f7bec50feb7cf2f"
-  integrity sha512-D39qtimx0c1fI3ya1Lnhk3E9nONswSKhnffBI0gME9C99fYOkNi04xs8K6pePLhvl1frbDemkaBQ5ikWllR2HQ==
+underscore@1.11.x, "underscore@>= 1.3.1", underscore@^1.7.0:
+  version "1.11.0"
+  resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.11.0.tgz#dd7c23a195db34267186044649870ff1bab5929e"
+  integrity sha512-xY96SsN3NA461qIRKZ/+qox37YXPtSBswMGfiNptr+wrt6ds4HaMw23TP612fEyGekRE6LNRiLYr/aqbHXNedw==
 
 underscore@~1.6.0:
   version "1.6.0"
   resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8"
   integrity sha1-izixDKze9jM3uLJOT/htRa6lKag=
 
-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==
+underscore@~1.8.3:
+  version "1.8.3"
+  resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022"
+  integrity sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=
 
-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==
+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:
-    unicode-canonical-property-names-ecmascript "^1.0.4"
-    unicode-property-aliases-ecmascript "^1.0.4"
+    inherits "^2.0.0"
+    xtend "^4.0.0"
 
-unicode-match-property-value-ecmascript@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277"
-  integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==
+unified-args@^8.0.0:
+  version "8.1.0"
+  resolved "https://registry.yarnpkg.com/unified-args/-/unified-args-8.1.0.tgz#a27dbe996a49fbbf3d9f5c6a98008ab9b0ee6ae5"
+  integrity sha512-t1HPS1cQPsVvt/6EtyWIbQGurza5684WGRigNghZRvzIdHm3LPgMdXPyGx0npORKzdiy5+urkF0rF5SXM8lBuQ==
+  dependencies:
+    camelcase "^5.0.0"
+    chalk "^3.0.0"
+    chokidar "^3.0.0"
+    fault "^1.0.2"
+    json5 "^2.0.0"
+    minimist "^1.2.0"
+    text-table "^0.2.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==
+  dependencies:
+    concat-stream "^2.0.0"
+    debug "^4.0.0"
+    fault "^1.0.0"
+    figures "^3.0.0"
+    glob "^7.0.3"
+    ignore "^5.0.0"
+    is-buffer "^2.0.0"
+    is-empty "^1.0.0"
+    is-plain-obj "^2.0.0"
+    js-yaml "^3.6.1"
+    load-plugin "^3.0.0"
+    parse-json "^5.0.0"
+    to-vfile "^6.0.0"
+    trough "^1.0.0"
+    unist-util-inspect "^5.0.0"
+    vfile-reporter "^6.0.0"
+    vfile-statistics "^1.1.0"
+
+unified-lint-rule@^1.0.0:
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/unified-lint-rule/-/unified-lint-rule-1.0.6.tgz#b4ab801ff93c251faa917a8d1c10241af030de84"
+  integrity sha512-YPK15YBFwnsVorDFG/u0cVVQN5G2a3V8zv5/N6KN3TCG+ajKtaALcy7u14DCSrJI+gZeyYquFL9cioJXOGXSvg==
+  dependencies:
+    wrapped "^1.0.1"
 
-unicode-property-aliases-ecmascript@^1.0.4:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57"
-  integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==
+unified-message-control@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/unified-message-control/-/unified-message-control-3.0.1.tgz#7018855daea9af96082cbea35970d48c9c4dbbf2"
+  integrity sha512-K2Kvvp1DBzeuxYLLsumZh/gDWUTl4e2z/P3VReFirC78cfHKtQifbhnfRrSBtKtd1Uc6cvYTW0/SZIUaMAEcTg==
+  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==
+  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"
@@ -10037,6 +11113,59 @@ unique-slug@^2.0.0:
   dependencies:
     imurmurhash "^0.1.4"
 
+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==
+
+unist-util-inspect@^5.0.0:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/unist-util-inspect/-/unist-util-inspect-5.0.1.tgz#168c8770a99902318ca268f8c391e294bcf44540"
+  integrity sha512-fPNWewS593JSmg49HbnE86BJKuBi1/nMWhDSccBvbARfxezEuJV85EaARR9/VplveiwCoLm2kWq+DhP8TBaDpw==
+  dependencies:
+    is-empty "^1.0.0"
+
+unist-util-is@^4.0.0:
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.0.3.tgz#e8b44db55fc20c43752b3346c116344d45d7c91d"
+  integrity sha512-bTofCFVx0iQM8Jqb1TBDVRIQW03YkD3p66JOd/aCWuqzlLyUtx1ZAGw/u+Zw+SttKvSVcvTiKYbfrtLoLefykw==
+
+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"
+  integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==
+  dependencies:
+    "@types/unist" "^2.0.2"
+
+unist-util-visit-parents@^3.0.0:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6"
+  integrity sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==
+  dependencies:
+    "@types/unist" "^2.0.0"
+    unist-util-is "^4.0.0"
+
+unist-util-visit@^2.0.0:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c"
+  integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==
+  dependencies:
+    "@types/unist" "^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"
@@ -10071,9 +11200,9 @@ upper-case@^1.1.1:
   integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=
 
 uri-js@^4.2.2:
-  version "4.2.2"
-  resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
-  integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==
+  version "4.4.0"
+  resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602"
+  integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==
   dependencies:
     punycode "^2.1.0"
 
@@ -10082,7 +11211,7 @@ 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:
+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==
@@ -10118,13 +11247,13 @@ user-home@^1.1.1:
   integrity sha1-K1viOjK2Onyd640PKNSFcko98ZA=
 
 utf-8-validate@^5.0.1:
-  version "5.0.2"
-  resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.2.tgz#63cfbccd85dc1f2b66cf7a1d0eebc08ed056bfb3"
-  integrity sha512-SwV++i2gTD5qh2XqaPzBnNX88N6HdyhQrNNRykvcS0QKvItV9u3vPEJr+X5Hhfb1JC0r0e1alL0iB09rY8+nmw==
+  version "5.0.3"
+  resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.3.tgz#3b64e418ad2ff829809025fdfef595eab2f03a27"
+  integrity sha512-jtJM6fpGv8C1SoH4PtG22pGto6x+Y8uPprW0tw3//gGFhDDTiuksgradgFN6yRayDP4SyZZa6ZMGHLIa17+M8A==
   dependencies:
-    node-gyp-build "~3.7.0"
+    node-gyp-build "^4.2.0"
 
-util-deprecate@^1.0.1, util-deprecate@~1.0.1:
+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=
@@ -10161,7 +11290,7 @@ util@^0.11.0:
   dependencies:
     inherits "2.0.3"
 
-utila@^0.4.0, utila@~0.4:
+utila@~0.4:
   version "0.4.0"
   resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c"
   integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=
@@ -10181,10 +11310,10 @@ 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.0.3:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe"
-  integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==
+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==
 
 v8flags@^2.1.1:
   version "2.1.1"
@@ -10249,6 +11378,52 @@ verror@1.6.0:
   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"
+  integrity sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==
+
+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-reporter@^6.0.0:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/vfile-reporter/-/vfile-reporter-6.0.1.tgz#45d4dc11df2e312196ea2ceb95e42a67fc8ce814"
+  integrity sha512-0OppK9mo8G2XUpv+hIKLVSDsoxJrXnOy73+vIm0jQUOUFYRduqpFHX+QqAQfvRHyX9B0UFiRuNJnBOjQCIsw1g==
+  dependencies:
+    repeat-string "^1.5.0"
+    string-width "^4.0.0"
+    supports-color "^6.0.0"
+    unist-util-stringify-position "^2.0.0"
+    vfile-sort "^2.1.2"
+    vfile-statistics "^1.1.0"
+
+vfile-sort@^2.1.2:
+  version "2.2.2"
+  resolved "https://registry.yarnpkg.com/vfile-sort/-/vfile-sort-2.2.2.tgz#720fe067ce156aba0b411a01bb0dc65596aa1190"
+  integrity sha512-tAyUqD2R1l/7Rn7ixdGkhXLD3zsg+XLAeUDUhXearjfIcpL1Hcsj5hHpCoy/gvfK/Ws61+e972fm0F7up7hfYA==
+
+vfile-statistics@^1.1.0:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/vfile-statistics/-/vfile-statistics-1.1.4.tgz#b99fd15ecf0f44ba088cc973425d666cb7a9f245"
+  integrity sha512-lXhElVO0Rq3frgPvFBwahmed3X03vjPF8OcjKMy8+F1xU/3Q3QU3tKEDp743SFtb74PdF0UWpxPvtOP0GCLheA==
+
+vfile@^4.0.0:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.0.tgz#26c78ac92eb70816b01d4565e003b7e65a2a0e01"
+  integrity sha512-a/alcwCvtuc8OX92rqqo7PflxiCgXRFjdyoGVuYV+qbgCb0GgZJRvIgCD4+U/Kl1yhaRsaTwksF88xbPyGsgpw==
+  dependencies:
+    "@types/unist" "^2.0.0"
+    is-buffer "^2.0.0"
+    replace-ext "1.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"
@@ -10265,20 +11440,29 @@ vm-browserify@^1.0.1:
   integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==
 
 w3c-hr-time@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045"
-  integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=
+  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 "^0.1.2"
+    browser-process-hrtime "^1.0.0"
 
-watchpack@^1.6.0:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00"
-  integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==
+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.7.4:
+  version "1.7.5"
+  resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453"
+  integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==
   dependencies:
-    chokidar "^2.0.2"
     graceful-fs "^4.1.2"
     neo-async "^2.5.0"
+  optionalDependencies:
+    chokidar "^3.4.1"
+    watchpack-chokidar2 "^2.0.1"
 
 weak-map@^1.0.5:
   version "1.0.5"
@@ -10295,39 +11479,31 @@ webidl-conversions@^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.10:
-  version "3.3.11"
-  resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.11.tgz#3bf21889bf597b5d82c38f215135a411edfdc631"
-  integrity sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g==
-  dependencies:
-    chalk "2.4.2"
-    cross-spawn "6.0.5"
-    enhanced-resolve "4.1.0"
-    findup-sync "3.0.0"
-    global-modules "2.0.0"
-    import-local "2.0.0"
-    interpret "1.2.0"
-    loader-utils "1.2.3"
-    supports-color "6.1.0"
-    v8-compile-cache "2.0.3"
-    yargs "13.2.4"
-
-webpack-log@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f"
-  integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==
+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:
-    ansi-colors "^3.0.0"
-    uuid "^3.3.2"
+    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:
+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==
   dependencies:
     lodash "^4.17.15"
 
-webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1:
+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==
@@ -10335,33 +11511,33 @@ webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1:
     source-list-map "^2.0.0"
     source-map "~0.6.1"
 
-webpack@^4.41.2:
-  version "4.41.6"
-  resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.6.tgz#12f2f804bf6542ef166755050d4afbc8f66ba7e1"
-  integrity sha512-yxXfV0Zv9WMGRD+QexkZzmGIh54bsvEs+9aRWxnN8erLWEOehAKUTeNBoUbA6HPEZPlRo7KDi2ZcNveoZgK9MA==
+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==
   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"
+    "@webassemblyjs/ast" "1.9.0"
+    "@webassemblyjs/helper-module-context" "1.9.0"
+    "@webassemblyjs/wasm-edit" "1.9.0"
+    "@webassemblyjs/wasm-parser" "1.9.0"
+    acorn "^6.4.1"
     ajv "^6.10.2"
     ajv-keywords "^3.4.1"
     chrome-trace-event "^1.0.2"
-    enhanced-resolve "^4.1.0"
+    enhanced-resolve "^4.3.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"
+    mkdirp "^0.5.3"
     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.3"
-    watchpack "^1.6.0"
+    watchpack "^1.7.4"
     webpack-sources "^1.4.1"
 
 whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3:
@@ -10399,7 +11575,7 @@ which-module@^2.0.0:
   resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
   integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
 
-which@^1.2.10, which@^1.2.14, which@^1.2.9, which@^1.3.1:
+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==
@@ -10413,33 +11589,28 @@ wide-align@^1.1.0:
   dependencies:
     string-width "^1.0.2 || 2"
 
-window-size@0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
-  integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=
-
-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==
+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.1.0:
-  version "3.2.1"
-  resolved "https://registry.yarnpkg.com/winston/-/winston-3.2.1.tgz#63061377976c73584028be2490a1846055f77f07"
-  integrity sha512-zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw==
-  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"
+  version "3.3.3"
+  resolved "https://registry.yarnpkg.com/winston/-/winston-3.3.3.tgz#ae6172042cafb29786afa3d09c8ff833ab7c9170"
+  integrity sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==
+  dependencies:
+    "@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"
 
 wkx@^0.4.8:
   version "0.4.8"
@@ -10453,15 +11624,10 @@ 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==
 
-wordwrap@0.0.2:
-  version "0.0.2"
-  resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
-  integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=
-
-wordwrap@~0.0.2:
-  version "0.0.3"
-  resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
-  integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc=
+wordwrap@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
+  integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=
 
 worker-farm@^1.7.0:
   version "1.7.0"
@@ -10479,6 +11645,14 @@ wrap-ansi@^5.1.0:
     string-width "^3.0.0"
     strip-ansi "^5.0.0"
 
+wrapped@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/wrapped/-/wrapped-1.0.1.tgz#c783d9d807b273e9b01e851680a938c87c907242"
+  integrity sha1-x4PZ2Aeyc+mwHoUWgKk4yHyQckI=
+  dependencies:
+    co "3.1.0"
+    sliced "^1.0.1"
+
 wrappy@1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
@@ -10505,14 +11679,17 @@ ws@^6.0.0:
   dependencies:
     async-limiter "~1.0.0"
 
-ws@~3.3.1:
-  version "3.3.3"
-  resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"
-  integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==
+ws@^7.1.2:
+  version "7.4.0"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.0.tgz#a5dd76a24197940d4a8bb9e0e152bb4503764da7"
+  integrity sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==
+
+ws@~6.1.0:
+  version "6.1.4"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9"
+  integrity sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==
   dependencies:
     async-limiter "~1.0.0"
-    safe-buffer "~5.1.0"
-    ultron "~1.1.0"
 
 wurl@^2.5.3:
   version "2.5.4"
@@ -10524,21 +11701,21 @@ x-xss-protection@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@^1.4.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/xml-crypto/-/xml-crypto-1.4.0.tgz#de1cec8cd31cbd689cd90d3d6e8a27d4ae807de7"
-  integrity sha512-K8FRdRxICVulK4WhiTUcJrRyAIJFPVOqxfurA3x/JlmXBTxy+SkEENF6GeRt7p/rB6WSOUS9g0gXNQw5n+407g==
+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==
   dependencies:
     xmldom "0.1.27"
     xpath "0.0.27"
 
-xml-encryption@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/xml-encryption/-/xml-encryption-1.0.0.tgz#fe50d3bbbe2ae06876d6aa95aa3bf958284e1612"
-  integrity sha512-xTqcgKPN3XOswvDPXrhtyvWZ96IFcO9Azv3vS060kOpBsK5T7OxbQDxb59bPLl4b4c2IgmSZC3kJB0n5WPr2Mw==
+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==
   dependencies:
     escape-html "^1.0.3"
-    node-forge "^0.7.0"
+    node-forge "^0.10.0"
     xmldom "~0.1.15"
     xpath "0.0.27"
 
@@ -10596,9 +11773,9 @@ xmldom@0.1.x, xmldom@~0.1.15:
   integrity sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==
 
 "xmldom@>= 0.1.x":
-  version "0.2.1"
-  resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.2.1.tgz#cac9465066f161e1c3302793ea4dbe59c518274f"
-  integrity sha512-kXXiYvmblIgEemGeB75y97FyaZavx6SQhGppLw5TKWAD2Wd0KAly0g23eVLh17YcpxZpnFym1Qk/eaRjy1APPg==
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.4.0.tgz#8771e482a333af44587e30ce026f0998c23f3830"
+  integrity sha512-2E93k08T30Ugs+34HBSTQLVtpi6mCddaY8uO+pMNk1pqSjV5vElzn4mmh6KLxN3hki8rNcHSYzILoh3TEWORvA==
 
 xmlhttprequest-ssl@~1.5.4:
   version "1.5.5"
@@ -10621,14 +11798,14 @@ xpath@0.0.27:
   integrity sha512-fg03WRxtkCV6ohClePNAECYsmpKKTv5L8y/X3Dn1hQrec3POx2jHZ/0P2qQ6HvsrU1BmeqXcof3NGGueG6LxwQ==
 
 xss@^1.0.3:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.6.tgz#eaf11e9fc476e3ae289944a1009efddd8a124b51"
-  integrity sha512-6Q9TPBeNyoTRxgZFk5Ggaepk/4vUOYdOsIUYvLehcsIZTFjaavbVnsuAkLA5lIFuug5hw8zxcB9tm01gsjph2A==
+  version "1.0.8"
+  resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.8.tgz#32feb87feb74b3dcd3d404b7a68ababf10700535"
+  integrity sha512-3MgPdaXV8rfQ/pNn16Eio6VXYPTkqwa0vc7GkiymmY/DqR1SE/7VPAAVZz1GJsJFrllMYO3RHfEaiUGjab6TNw==
   dependencies:
-    commander "^2.9.0"
+    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.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, 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==
@@ -10655,75 +11832,45 @@ yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3:
   resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
   integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
 
-yargs-parser@^13.1.0, yargs-parser@^13.1.1:
-  version "13.1.1"
-  resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0"
-  integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==
+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@^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@13.2.4:
-  version "13.2.4"
-  resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83"
-  integrity sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==
+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==
   dependencies:
     cliui "^5.0.0"
     find-up "^3.0.0"
     get-caller-file "^2.0.1"
-    os-locale "^3.1.0"
     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.0"
-
-yargs@^13.1.0:
-  version "13.3.0"
-  resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83"
-  integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==
-  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.1"
-
-yargs@~3.10.0:
-  version "3.10.0"
-  resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
-  integrity sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=
-  dependencies:
-    camelcase "^1.0.2"
-    cliui "^2.1.0"
-    decamelize "^1.0.0"
-    window-size "0.1.0"
-
-yauzl@2.4.1:
-  version "2.4.1"
-  resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005"
-  integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=
-  dependencies:
-    fd-slicer "~1.0.1"
+    yargs-parser "^13.1.2"
 
 yeast@0.1.2:
   version "0.1.2"
   resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"
   integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk=
 
-zip-stream@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-1.2.0.tgz#a8bc45f4c1b49699c6b90198baacaacdbcd4ba04"
-  integrity sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ=
+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==
   dependencies:
-    archiver-utils "^1.3.0"
-    compress-commons "^1.2.0"
-    lodash "^4.8.0"
-    readable-stream "^2.0.0"
+    archiver-utils "^2.1.0"
+    compress-commons "^4.0.2"
+    readable-stream "^3.6.0"
diff --git a/pkgs/servers/web-apps/codimd/yarn.nix b/pkgs/servers/web-apps/hedgedoc/yarn.nix
index d97950dd7af..340341d0f1e 100644
--- a/pkgs/servers/web-apps/codimd/yarn.nix
+++ b/pkgs/servers/web-apps/hedgedoc/yarn.nix
@@ -10,11 +10,11 @@
       };
     }
     {
-      name = "_azure_ms_rest_js___ms_rest_js_1.8.14.tgz";
+      name = "_azure_ms_rest_js___ms_rest_js_1.9.0.tgz";
       path = fetchurl {
-        name = "_azure_ms_rest_js___ms_rest_js_1.8.14.tgz";
-        url  = "https://registry.yarnpkg.com/@azure/ms-rest-js/-/ms-rest-js-1.8.14.tgz";
-        sha1 = "657fc145db20b6eb3d58d1a2055473aa72eb609d";
+        name = "_azure_ms_rest_js___ms_rest_js_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@azure/ms-rest-js/-/ms-rest-js-1.9.0.tgz";
+        sha1 = "5eb6516cf20e972a2eb4c589d6b48c3151bc801b";
       };
     }
     {
@@ -26,19 +26,27 @@
       };
     }
     {
-      name = "_babel_code_frame___code_frame_7.8.3.tgz";
+      name = "_babel_code_frame___code_frame_7.12.11.tgz";
       path = fetchurl {
-        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_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_highlight___highlight_7.8.3.tgz";
+      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.12.11.tgz";
       path = fetchurl {
-        name = "_babel_highlight___highlight_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz";
-        sha1 = "28f173d04223eaaa59bc1d439a3836e6d1265797";
+        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_highlight___highlight_7.10.4.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";
       };
     }
     {
@@ -50,6 +58,46 @@
       };
     }
     {
+      name = "_dabh_diagnostics___diagnostics_2.0.2.tgz";
+      path = fetchurl {
+        name = "_dabh_diagnostics___diagnostics_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.2.tgz";
+        sha1 = "290d08f7b381b8f94607dc8f471a12c675f9db31";
+      };
+    }
+    {
+      name = "_nodelib_fs.scandir___fs.scandir_2.1.3.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 = "_nodelib_fs.stat___fs.stat_2.0.3.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 = "_nodelib_fs.walk___fs.walk_1.2.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 = "_npmcli_move_file___move_file_1.0.1.tgz";
+      path = fetchurl {
+        name = "_npmcli_move_file___move_file_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.0.1.tgz";
+        sha1 = "de103070dac0f48ce49cf6693c23af59c0f70464";
+      };
+    }
+    {
       name = "_passport_next_passport_openid___passport_openid_1.0.0.tgz";
       path = fetchurl {
         name = "_passport_next_passport_openid___passport_openid_1.0.0.tgz";
@@ -66,6 +114,22 @@
       };
     }
     {
+      name = "_tokenizer_token___token_0.1.1.tgz";
+      path = fetchurl {
+        name = "_tokenizer_token___token_0.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.1.1.tgz";
+        sha1 = "f0d92c12f87079ddfd1b29f614758b9696bc29e3";
+      };
+    }
+    {
+      name = "_types_anymatch___anymatch_1.3.1.tgz";
+      path = fetchurl {
+        name = "_types_anymatch___anymatch_1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz";
+        sha1 = "336badc1beecb9dacc38bea2cf32adf627a8421a";
+      };
+    }
+    {
       name = "_types_body_parser___body_parser_1.19.0.tgz";
       path = fetchurl {
         name = "_types_body_parser___body_parser_1.19.0.tgz";
@@ -82,27 +146,27 @@
       };
     }
     {
-      name = "_types_estree___estree_0.0.39.tgz";
+      name = "_types_debug___debug_4.1.5.tgz";
       path = fetchurl {
-        name = "_types_estree___estree_0.0.39.tgz";
-        url  = "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz";
-        sha1 = "e177e699ee1b8c22d23174caaa7422644389509f";
+        name = "_types_debug___debug_4.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz";
+        sha1 = "b14efa8852b7768d898906613c23f688713e02cd";
       };
     }
     {
-      name = "_types_express_serve_static_core___express_serve_static_core_4.17.2.tgz";
+      name = "_types_express_serve_static_core___express_serve_static_core_4.17.13.tgz";
       path = fetchurl {
-        name = "_types_express_serve_static_core___express_serve_static_core_4.17.2.tgz";
-        url  = "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.2.tgz";
-        sha1 = "f6f41fa35d42e79dbf6610eccbb2637e6008a0cf";
+        name = "_types_express_serve_static_core___express_serve_static_core_4.17.13.tgz";
+        url  = "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.13.tgz";
+        sha1 = "d9af025e925fc8b089be37423b8d1eac781be084";
       };
     }
     {
-      name = "_types_express___express_4.17.2.tgz";
+      name = "_types_express___express_4.17.9.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_express___express_4.17.9.tgz";
+        url  = "https://registry.yarnpkg.com/@types/express/-/express-4.17.9.tgz";
+        sha1 = "f5f2df6add703ff28428add52bdec8a1091b0a78";
       };
     }
     {
@@ -114,67 +178,99 @@
       };
     }
     {
-      name = "_types_ldapjs___ldapjs_1.0.5.tgz";
+      name = "_types_html_minifier_terser___html_minifier_terser_5.1.1.tgz";
+      path = fetchurl {
+        name = "_types_html_minifier_terser___html_minifier_terser_5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz";
+        sha1 = "3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50";
+      };
+    }
+    {
+      name = "_types_json_schema___json_schema_7.0.6.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_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_ldapjs___ldapjs_1.0.9.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_mime___mime_2.0.3.tgz";
       path = fetchurl {
-        name = "_types_ldapjs___ldapjs_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/@types/ldapjs/-/ldapjs-1.0.5.tgz";
-        sha1 = "2b078dff23dc068e12a8236b280d5fb4fd9db4db";
+        name = "_types_mime___mime_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.3.tgz";
+        sha1 = "c893b73721db73699943bfc3653b1deb7faa4a3a";
       };
     }
     {
-      name = "_types_mime___mime_2.0.1.tgz";
+      name = "_types_node___node_14.14.7.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_node___node_14.14.7.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-14.14.7.tgz";
+        sha1 = "8ea1e8f8eae2430cf440564b98c6dfce1ec5945d";
       };
     }
     {
-      name = "_types_node___node_13.7.1.tgz";
+      name = "_types_node___node_12.19.4.tgz";
       path = fetchurl {
-        name = "_types_node___node_13.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-13.7.1.tgz";
-        sha1 = "238eb34a66431b71d2aaddeaa7db166f25971a0d";
+        name = "_types_node___node_12.19.4.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-12.19.4.tgz";
+        sha1 = "cdfbb62e26c7435ed9aab9c941393cc3598e9b46";
       };
     }
     {
-      name = "_types_node___node_10.17.15.tgz";
+      name = "_types_node___node_14.14.14.tgz";
       path = fetchurl {
-        name = "_types_node___node_10.17.15.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-10.17.15.tgz";
-        sha1 = "bfff4e23e9e70be6eec450419d51e18de1daf8e7";
+        name = "_types_node___node_14.14.14.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-14.14.14.tgz";
+        sha1 = "f7fd5f3cc8521301119f63910f0fb965c7d761ae";
       };
     }
     {
-      name = "_types_node___node_12.12.27.tgz";
+      name = "_types_node___node_8.10.66.tgz";
       path = fetchurl {
-        name = "_types_node___node_12.12.27.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-12.12.27.tgz";
-        sha1 = "d7506f73160ad30fcebbcf5b8b7d2d976e649e42";
+        name = "_types_node___node_8.10.66.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-8.10.66.tgz";
+        sha1 = "dd035d409df322acc83dff62a602f12a5783bbb3";
       };
     }
     {
-      name = "_types_node___node_8.10.59.tgz";
+      name = "_types_passport___passport_1.0.4.tgz";
       path = fetchurl {
-        name = "_types_node___node_8.10.59.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-8.10.59.tgz";
-        sha1 = "9e34261f30183f9777017a13d185dfac6b899e04";
+        name = "_types_passport___passport_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/@types/passport/-/passport-1.0.4.tgz";
+        sha1 = "1b35c4e197560d3974fa5f71711b6e9cce0711f0";
       };
     }
     {
-      name = "_types_passport___passport_1.0.2.tgz";
+      name = "_types_q___q_1.5.4.tgz";
       path = fetchurl {
-        name = "_types_passport___passport_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/@types/passport/-/passport-1.0.2.tgz";
-        sha1 = "f085033e2b301b1f97d4b57bfa73d8e934650c63";
+        name = "_types_q___q_1.5.4.tgz";
+        url  = "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz";
+        sha1 = "15925414e0ad2cd765bfef58842f7e26a7accb24";
       };
     }
     {
-      name = "_types_q___q_1.5.2.tgz";
+      name = "_types_qs___qs_6.9.5.tgz";
       path = fetchurl {
-        name = "_types_q___q_1.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz";
-        sha1 = "690a1475b84f2a884fd07cd797c00f5f31356ea8";
+        name = "_types_qs___qs_6.9.5.tgz";
+        url  = "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.5.tgz";
+        sha1 = "434711bdd49eb5ee69d90c1d67c354a9a8ecb18b";
       };
     }
     {
@@ -186,19 +282,35 @@
       };
     }
     {
-      name = "_types_readable_stream___readable_stream_2.3.5.tgz";
+      name = "_types_readable_stream___readable_stream_2.3.9.tgz";
       path = fetchurl {
-        name = "_types_readable_stream___readable_stream_2.3.5.tgz";
-        url  = "https://registry.yarnpkg.com/@types/readable-stream/-/readable-stream-2.3.5.tgz";
-        sha1 = "99c215f9c78563ebdfeff400246a724fb36bae4a";
+        name = "_types_readable_stream___readable_stream_2.3.9.tgz";
+        url  = "https://registry.yarnpkg.com/@types/readable-stream/-/readable-stream-2.3.9.tgz";
+        sha1 = "40a8349e6ace3afd2dd1b6d8e9b02945de4566a9";
       };
     }
     {
-      name = "_types_serve_static___serve_static_1.13.3.tgz";
+      name = "_types_serve_static___serve_static_1.13.7.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.7.tgz";
+        url  = "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.7.tgz";
+        sha1 = "e51b51a0becda910f9fd04c718044da69d6c492e";
+      };
+    }
+    {
+      name = "_types_source_list_map___source_list_map_0.1.2.tgz";
+      path = fetchurl {
+        name = "_types_source_list_map___source_list_map_0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz";
+        sha1 = "0078836063ffaf17412349bba364087e0ac02ec9";
+      };
+    }
+    {
+      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";
       };
     }
     {
@@ -210,147 +322,179 @@
       };
     }
     {
-      name = "_webassemblyjs_ast___ast_1.8.5.tgz";
+      name = "_types_uglify_js___uglify_js_3.11.1.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_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 = "_types_webpack_sources___webpack_sources_2.0.0.tgz";
+      path = fetchurl {
+        name = "_types_webpack_sources___webpack_sources_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-2.0.0.tgz";
+        sha1 = "08216ab9be2be2e1499beaebc4d469cec81e82a7";
+      };
+    }
+    {
+      name = "_types_webpack___webpack_4.41.25.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 = "_types_webpack___webpack_4.41.25.tgz";
+        url  = "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.25.tgz";
+        sha1 = "4d3b5aecc4e44117b376280fbfd2dc36697968c4";
       };
     }
     {
-      name = "_webassemblyjs_floating_point_hex_parser___floating_point_hex_parser_1.8.5.tgz";
+      name = "_webassemblyjs_ast___ast_1.9.0.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_ast___ast_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz";
+        sha1 = "bd850604b4042459a5a41cd7d338cbed695ed964";
       };
     }
     {
-      name = "_webassemblyjs_helper_api_error___helper_api_error_1.8.5.tgz";
+      name = "_webassemblyjs_floating_point_hex_parser___floating_point_hex_parser_1.9.0.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_floating_point_hex_parser___floating_point_hex_parser_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz";
+        sha1 = "3c3d3b271bddfc84deb00f71344438311d52ffb4";
       };
     }
     {
-      name = "_webassemblyjs_helper_buffer___helper_buffer_1.8.5.tgz";
+      name = "_webassemblyjs_helper_api_error___helper_api_error_1.9.0.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_api_error___helper_api_error_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz";
+        sha1 = "203f676e333b96c9da2eeab3ccef33c45928b6a2";
       };
     }
     {
-      name = "_webassemblyjs_helper_code_frame___helper_code_frame_1.8.5.tgz";
+      name = "_webassemblyjs_helper_buffer___helper_buffer_1.9.0.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_buffer___helper_buffer_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz";
+        sha1 = "a1442d269c5feb23fcbc9ef759dac3547f29de00";
       };
     }
     {
-      name = "_webassemblyjs_helper_fsm___helper_fsm_1.8.5.tgz";
+      name = "_webassemblyjs_helper_code_frame___helper_code_frame_1.9.0.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_code_frame___helper_code_frame_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz";
+        sha1 = "647f8892cd2043a82ac0c8c5e75c36f1d9159f27";
       };
     }
     {
-      name = "_webassemblyjs_helper_module_context___helper_module_context_1.8.5.tgz";
+      name = "_webassemblyjs_helper_fsm___helper_fsm_1.9.0.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_fsm___helper_fsm_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz";
+        sha1 = "c05256b71244214671f4b08ec108ad63b70eddb8";
       };
     }
     {
-      name = "_webassemblyjs_helper_wasm_bytecode___helper_wasm_bytecode_1.8.5.tgz";
+      name = "_webassemblyjs_helper_module_context___helper_module_context_1.9.0.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_module_context___helper_module_context_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz";
+        sha1 = "25d8884b76839871a08a6c6f806c3979ef712f07";
       };
     }
     {
-      name = "_webassemblyjs_helper_wasm_section___helper_wasm_section_1.8.5.tgz";
+      name = "_webassemblyjs_helper_wasm_bytecode___helper_wasm_bytecode_1.9.0.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_helper_wasm_bytecode___helper_wasm_bytecode_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz";
+        sha1 = "4fed8beac9b8c14f8c58b70d124d549dd1fe5790";
       };
     }
     {
-      name = "_webassemblyjs_ieee754___ieee754_1.8.5.tgz";
+      name = "_webassemblyjs_helper_wasm_section___helper_wasm_section_1.9.0.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_helper_wasm_section___helper_wasm_section_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz";
+        sha1 = "5a4138d5a6292ba18b04c5ae49717e4167965346";
       };
     }
     {
-      name = "_webassemblyjs_leb128___leb128_1.8.5.tgz";
+      name = "_webassemblyjs_ieee754___ieee754_1.9.0.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_ieee754___ieee754_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz";
+        sha1 = "15c7a0fbaae83fb26143bbacf6d6df1702ad39e4";
       };
     }
     {
-      name = "_webassemblyjs_utf8___utf8_1.8.5.tgz";
+      name = "_webassemblyjs_leb128___leb128_1.9.0.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_leb128___leb128_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz";
+        sha1 = "f19ca0b76a6dc55623a09cffa769e838fa1e1c95";
       };
     }
     {
-      name = "_webassemblyjs_wasm_edit___wasm_edit_1.8.5.tgz";
+      name = "_webassemblyjs_utf8___utf8_1.9.0.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_utf8___utf8_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz";
+        sha1 = "04d33b636f78e6a6813227e82402f7637b6229ab";
       };
     }
     {
-      name = "_webassemblyjs_wasm_gen___wasm_gen_1.8.5.tgz";
+      name = "_webassemblyjs_wasm_edit___wasm_edit_1.9.0.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_edit___wasm_edit_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz";
+        sha1 = "3fe6d79d3f0f922183aa86002c42dd256cfee9cf";
       };
     }
     {
-      name = "_webassemblyjs_wasm_opt___wasm_opt_1.8.5.tgz";
+      name = "_webassemblyjs_wasm_gen___wasm_gen_1.9.0.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_gen___wasm_gen_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz";
+        sha1 = "50bc70ec68ded8e2763b01a1418bf43491a7a49c";
       };
     }
     {
-      name = "_webassemblyjs_wasm_parser___wasm_parser_1.8.5.tgz";
+      name = "_webassemblyjs_wasm_opt___wasm_opt_1.9.0.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_wasm_opt___wasm_opt_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz";
+        sha1 = "2211181e5b31326443cc8112eb9f0b9028721a61";
       };
     }
     {
-      name = "_webassemblyjs_wast_parser___wast_parser_1.8.5.tgz";
+      name = "_webassemblyjs_wasm_parser___wasm_parser_1.9.0.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_wasm_parser___wasm_parser_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz";
+        sha1 = "9d48e44826df4a6598294aa6c87469d642fff65e";
       };
     }
     {
-      name = "_webassemblyjs_wast_printer___wast_printer_1.8.5.tgz";
+      name = "_webassemblyjs_wast_parser___wast_parser_1.9.0.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 = "_webassemblyjs_wast_parser___wast_parser_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz";
+        sha1 = "3031115d79ac5bd261556cecc3fa90a3ef451914";
+      };
+    }
+    {
+      name = "_webassemblyjs_wast_printer___wast_printer_1.9.0.tgz";
+      path = fetchurl {
+        name = "_webassemblyjs_wast_printer___wast_printer_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz";
+        sha1 = "4935d54c85fef637b00ce9f52377451d00d47899";
       };
     }
     {
@@ -394,11 +538,11 @@
       };
     }
     {
-      name = "abab___abab_2.0.3.tgz";
+      name = "abab___abab_2.0.5.tgz";
       path = fetchurl {
-        name = "abab___abab_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz";
-        sha1 = "623e2075e02eb2d3f2475e49f99c91846467907a";
+        name = "abab___abab_2.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz";
+        sha1 = "c0b678fb32d60fc1219c784d6a826fe385aeb79a";
       };
     }
     {
@@ -418,14 +562,6 @@
       };
     }
     {
-      name = "acorn_dynamic_import___acorn_dynamic_import_4.0.0.tgz";
-      path = fetchurl {
-        name = "acorn_dynamic_import___acorn_dynamic_import_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz";
-        sha1 = "482210140582a36b83c3e342e1cfebcaa9240948";
-      };
-    }
-    {
       name = "acorn_globals___acorn_globals_4.3.4.tgz";
       path = fetchurl {
         name = "acorn_globals___acorn_globals_4.3.4.tgz";
@@ -434,11 +570,11 @@
       };
     }
     {
-      name = "acorn_jsx___acorn_jsx_5.1.0.tgz";
+      name = "acorn_jsx___acorn_jsx_5.3.1.tgz";
       path = fetchurl {
-        name = "acorn_jsx___acorn_jsx_5.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz";
-        sha1 = "294adb71b57398b0680015f0a38c563ee1db5384";
+        name = "acorn_jsx___acorn_jsx_5.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz";
+        sha1 = "fc8661e11b7ac1539c47dbfea2e72b3af34d267b";
       };
     }
     {
@@ -450,35 +586,19 @@
       };
     }
     {
-      name = "acorn_walk___acorn_walk_7.1.1.tgz";
-      path = fetchurl {
-        name = "acorn_walk___acorn_walk_7.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.1.1.tgz";
-        sha1 = "345f0dffad5c735e7373d2fec9a1023e6a44b83e";
-      };
-    }
-    {
-      name = "acorn___acorn_5.7.3.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_6.4.0.tgz";
+      name = "acorn___acorn_5.7.4.tgz";
       path = fetchurl {
-        name = "acorn___acorn_6.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/acorn/-/acorn-6.4.0.tgz";
-        sha1 = "b659d2ffbafa24baf5db1cdbb2c94a983ecd2784";
+        name = "acorn___acorn_5.7.4.tgz";
+        url  = "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz";
+        sha1 = "3e8d8a9947d0599a1796d10225d7432f4a4acf5e";
       };
     }
     {
-      name = "acorn___acorn_7.1.0.tgz";
+      name = "acorn___acorn_6.4.2.tgz";
       path = fetchurl {
-        name = "acorn___acorn_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz";
-        sha1 = "949d36f2c292535da602283586c2477c57eb2d6c";
+        name = "acorn___acorn_6.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz";
+        sha1 = "35866fd710528e92de10cf06016498e47e39e1e6";
       };
     }
     {
@@ -498,35 +618,35 @@
       };
     }
     {
-      name = "ajv_errors___ajv_errors_1.0.1.tgz";
+      name = "aggregate_error___aggregate_error_3.1.0.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 = "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_keywords___ajv_keywords_3.4.1.tgz";
+      name = "ajv_errors___ajv_errors_1.0.1.tgz";
       path = fetchurl {
-        name = "ajv_keywords___ajv_keywords_3.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz";
-        sha1 = "ef916e271c64ac12171fd8384eaae6b2345854da";
+        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___ajv_6.11.0.tgz";
+      name = "ajv_keywords___ajv_keywords_3.5.2.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_keywords___ajv_keywords_3.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz";
+        sha1 = "31f29da5ab6e00d1c2d329acf7b5929614d5014d";
       };
     }
     {
-      name = "align_text___align_text_0.1.4.tgz";
+      name = "ajv___ajv_6.12.6.tgz";
       path = fetchurl {
-        name = "align_text___align_text_0.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz";
-        sha1 = "0cd90a561093f35d0a99256c22b7069433fad117";
+        name = "ajv___ajv_6.12.6.tgz";
+        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz";
+        sha1 = "baf5a62e802b07d977034586f8c3baf5adf26df4";
       };
     }
     {
@@ -538,14 +658,6 @@
       };
     }
     {
-      name = "ansi_colors___ansi_colors_3.2.4.tgz";
-      path = fetchurl {
-        name = "ansi_colors___ansi_colors_3.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz";
-        sha1 = "e3a3da4bfbae6c86a9c285625de124a234026fbf";
-      };
-    }
-    {
       name = "ansi_escapes___ansi_escapes_3.2.0.tgz";
       path = fetchurl {
         name = "ansi_escapes___ansi_escapes_3.2.0.tgz";
@@ -578,6 +690,14 @@
       };
     }
     {
+      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_2.2.1.tgz";
       path = fetchurl {
         name = "ansi_styles___ansi_styles_2.2.1.tgz";
@@ -594,19 +714,19 @@
       };
     }
     {
-      name = "ansi_styles___ansi_styles_1.0.0.tgz";
+      name = "ansi_styles___ansi_styles_4.3.0.tgz";
       path = fetchurl {
-        name = "ansi_styles___ansi_styles_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz";
-        sha1 = "cb102df1c56f5123eab8b67cd7b98027a0279178";
+        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 = "ansicolors___ansicolors_0.3.2.tgz";
+      name = "ansi_styles___ansi_styles_1.0.0.tgz";
       path = fetchurl {
-        name = "ansicolors___ansicolors_0.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz";
-        sha1 = "665597de86a9ffe3aa9bfbe6cae5c6ea426b4979";
+        name = "ansi_styles___ansi_styles_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz";
+        sha1 = "cb102df1c56f5123eab8b67cd7b98027a0279178";
       };
     }
     {
@@ -634,6 +754,14 @@
       };
     }
     {
+      name = "anymatch___anymatch_3.1.1.tgz";
+      path = fetchurl {
+        name = "anymatch___anymatch_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz";
+        sha1 = "c55ecf02185e2469259399310c173ce31233b142";
+      };
+    }
+    {
       name = "aproba___aproba_1.2.0.tgz";
       path = fetchurl {
         name = "aproba___aproba_1.2.0.tgz";
@@ -642,19 +770,19 @@
       };
     }
     {
-      name = "archiver_utils___archiver_utils_1.3.0.tgz";
+      name = "archiver_utils___archiver_utils_2.1.0.tgz";
       path = fetchurl {
-        name = "archiver_utils___archiver_utils_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-1.3.0.tgz";
-        sha1 = "e50b4c09c70bf3d680e32ff1b7994e9f9d895174";
+        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_2.1.1.tgz";
+      name = "archiver___archiver_5.1.0.tgz";
       path = fetchurl {
-        name = "archiver___archiver_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/archiver/-/archiver-2.1.1.tgz";
-        sha1 = "ff662b4a78201494a3ee544d3a33fe7496509ebc";
+        name = "archiver___archiver_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/archiver/-/archiver-5.1.0.tgz";
+        sha1 = "05b0f6f7836f3e6356a0532763d2bb91017a7e37";
       };
     }
     {
@@ -730,19 +858,11 @@
       };
     }
     {
-      name = "array_union___array_union_1.0.2.tgz";
-      path = fetchurl {
-        name = "array_union___array_union_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz";
-        sha1 = "9a34410e4f4e3da23dea375be5be70f24778ec39";
-      };
-    }
-    {
-      name = "array_uniq___array_uniq_1.0.3.tgz";
+      name = "array_union___array_union_2.1.0.tgz";
       path = fetchurl {
-        name = "array_uniq___array_uniq_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz";
-        sha1 = "af6ac877a25cc7f74e058894753858dfdb24fdb6";
+        name = "array_union___array_union_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz";
+        sha1 = "b798420adbeb1de828d84acd8a2e23d3efe85e8d";
       };
     }
     {
@@ -786,11 +906,11 @@
       };
     }
     {
-      name = "asn1.js___asn1.js_4.10.1.tgz";
+      name = "asn1.js___asn1.js_5.4.1.tgz";
       path = fetchurl {
-        name = "asn1.js___asn1.js_4.10.1.tgz";
-        url  = "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz";
-        sha1 = "b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0";
+        name = "asn1.js___asn1.js_5.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz";
+        sha1 = "11a980b84ebb91781ce35b0fdc2ee294e3783f07";
       };
     }
     {
@@ -866,11 +986,11 @@
       };
     }
     {
-      name = "async___async_3.1.1.tgz";
+      name = "async___async_3.2.0.tgz";
       path = fetchurl {
-        name = "async___async_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/async/-/async-3.1.1.tgz";
-        sha1 = "dd3542db03de837979c9ebbca64ca01b06dc98df";
+        name = "async___async_3.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz";
+        sha1 = "b3a2685c5ebb641d3de02d161002c60fc9f85720";
       };
     }
     {
@@ -906,19 +1026,11 @@
       };
     }
     {
-      name = "autolinker___autolinker_3.12.0.tgz";
+      name = "aws_sdk___aws_sdk_2.817.0.tgz";
       path = fetchurl {
-        name = "autolinker___autolinker_3.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/autolinker/-/autolinker-3.12.0.tgz";
-        sha1 = "1184397c85828041975a3b3135032b7b931966c6";
-      };
-    }
-    {
-      name = "aws_sdk___aws_sdk_2.619.0.tgz";
-      path = fetchurl {
-        name = "aws_sdk___aws_sdk_2.619.0.tgz";
-        url  = "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.619.0.tgz";
-        sha1 = "daacd97fb8d948c10278071129c12908039ab542";
+        name = "aws_sdk___aws_sdk_2.817.0.tgz";
+        url  = "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.817.0.tgz";
+        sha1 = "3a97b690b0ec494cf8ee927affb3973cf26abcc8";
       };
     }
     {
@@ -930,11 +1042,11 @@
       };
     }
     {
-      name = "aws4___aws4_1.9.1.tgz";
+      name = "aws4___aws4_1.11.0.tgz";
       path = fetchurl {
-        name = "aws4___aws4_1.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz";
-        sha1 = "7e33d8f7d449b3f673cd72deb9abdc552dbe528e";
+        name = "aws4___aws4_1.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz";
+        sha1 = "d61f46d83b2519250e2784daf5b09479a8b41c59";
       };
     }
     {
@@ -1426,6 +1538,14 @@
       };
     }
     {
+      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.0.tgz";
       path = fetchurl {
         name = "balanced_match___balanced_match_1.0.0.tgz";
@@ -1434,6 +1554,14 @@
       };
     }
     {
+      name = "base64_arraybuffer___base64_arraybuffer_0.1.4.tgz";
+      path = fetchurl {
+        name = "base64_arraybuffer___base64_arraybuffer_0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz";
+        sha1 = "9818c79e059b1355f97e0428a017c838e90ba812";
+      };
+    }
+    {
       name = "base64_arraybuffer___base64_arraybuffer_0.1.5.tgz";
       path = fetchurl {
         name = "base64_arraybuffer___base64_arraybuffer_0.1.5.tgz";
@@ -1442,19 +1570,19 @@
       };
     }
     {
-      name = "base64_js___base64_js_1.3.1.tgz";
+      name = "base64_js___base64_js_1.5.1.tgz";
       path = fetchurl {
-        name = "base64_js___base64_js_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz";
-        sha1 = "58ece8cb75dd07e71ed08c736abc5fac4dbf8df1";
+        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 = "base64id___base64id_1.0.0.tgz";
+      name = "base64id___base64id_2.0.0.tgz";
       path = fetchurl {
-        name = "base64id___base64id_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz";
-        sha1 = "47688cb99bb6804f0e06d3e763b1c32e57d8e6b6";
+        name = "base64id___base64id_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz";
+        sha1 = "2770ac6bc47d312af97a8bf9a634342e0cd25cb6";
       };
     }
     {
@@ -1522,35 +1650,35 @@
       };
     }
     {
-      name = "bindings___bindings_1.5.0.tgz";
+      name = "binary_extensions___binary_extensions_2.1.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 = "binary_extensions___binary_extensions_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz";
+        sha1 = "30fa40c9e7fe07dbc895678cd287024dea241dd9";
       };
     }
     {
-      name = "bl___bl_1.2.2.tgz";
+      name = "bindings___bindings_1.5.0.tgz";
       path = fetchurl {
-        name = "bl___bl_1.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz";
-        sha1 = "a160911717103c07410cef63ef51b397c025af9c";
+        name = "bindings___bindings_1.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz";
+        sha1 = "10353c9e945334bc0511a6d90b38fbc7c9c504df";
       };
     }
     {
-      name = "bl___bl_3.0.0.tgz";
+      name = "bl___bl_3.0.1.tgz";
       path = fetchurl {
-        name = "bl___bl_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/bl/-/bl-3.0.0.tgz";
-        sha1 = "3611ec00579fd18561754360b21e9f784500ff88";
+        name = "bl___bl_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/bl/-/bl-3.0.1.tgz";
+        sha1 = "1cbb439299609e419b5a74d7fce2f8b37d8e5c6f";
       };
     }
     {
-      name = "blint___blint_1.1.0.tgz";
+      name = "bl___bl_4.0.3.tgz";
       path = fetchurl {
-        name = "blint___blint_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/blint/-/blint-1.1.0.tgz";
-        sha1 = "9fcc8134296651099062f8d2ee359e83c7bff8ba";
+        name = "bl___bl_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz";
+        sha1 = "12d6287adc29080e22a705e5764b2a9522cdc489";
       };
     }
     {
@@ -1578,11 +1706,19 @@
       };
     }
     {
-      name = "bn.js___bn.js_4.11.8.tgz";
+      name = "bn.js___bn.js_4.11.9.tgz";
       path = fetchurl {
-        name = "bn.js___bn.js_4.11.8.tgz";
-        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz";
-        sha1 = "2cde09eb5ee341f484746bb0309b3253b1b1442f";
+        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_5.1.3.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";
       };
     }
     {
@@ -1650,6 +1786,14 @@
       };
     }
     {
+      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 = "brorand___brorand_1.1.0.tgz";
       path = fetchurl {
         name = "brorand___brorand_1.1.0.tgz";
@@ -1658,11 +1802,11 @@
       };
     }
     {
-      name = "browser_process_hrtime___browser_process_hrtime_0.1.3.tgz";
+      name = "browser_process_hrtime___browser_process_hrtime_1.0.0.tgz";
       path = fetchurl {
-        name = "browser_process_hrtime___browser_process_hrtime_0.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz";
-        sha1 = "616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4";
+        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";
       };
     }
     {
@@ -1706,19 +1850,19 @@
       };
     }
     {
-      name = "browserify_rsa___browserify_rsa_4.0.1.tgz";
+      name = "browserify_rsa___browserify_rsa_4.1.0.tgz";
       path = fetchurl {
-        name = "browserify_rsa___browserify_rsa_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz";
-        sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524";
+        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.0.4.tgz";
+      name = "browserify_sign___browserify_sign_4.2.1.tgz";
       path = fetchurl {
-        name = "browserify_sign___browserify_sign_4.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz";
-        sha1 = "aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298";
+        name = "browserify_sign___browserify_sign_4.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz";
+        sha1 = "eaf4add46dd54be3bb3b36c0cf15abbeba7956c3";
       };
     }
     {
@@ -1738,35 +1882,11 @@
       };
     }
     {
-      name = "browserslist___browserslist_4.8.7.tgz";
+      name = "browserslist___browserslist_4.14.7.tgz";
       path = fetchurl {
-        name = "browserslist___browserslist_4.8.7.tgz";
-        url  = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.7.tgz";
-        sha1 = "ec8301ff415e6a42c949d0e66b405eb539c532d0";
-      };
-    }
-    {
-      name = "buble___buble_0.19.8.tgz";
-      path = fetchurl {
-        name = "buble___buble_0.19.8.tgz";
-        url  = "https://registry.yarnpkg.com/buble/-/buble-0.19.8.tgz";
-        sha1 = "d642f0081afab66dccd897d7b6360d94030b9d3d";
-      };
-    }
-    {
-      name = "buffer_alloc_unsafe___buffer_alloc_unsafe_1.1.0.tgz";
-      path = fetchurl {
-        name = "buffer_alloc_unsafe___buffer_alloc_unsafe_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz";
-        sha1 = "bd7dc26ae2972d0eda253be061dba992349c19f0";
-      };
-    }
-    {
-      name = "buffer_alloc___buffer_alloc_1.2.0.tgz";
-      path = fetchurl {
-        name = "buffer_alloc___buffer_alloc_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz";
-        sha1 = "890dd90d923a873e08e10e5fd51a57e5b7cce0ec";
+        name = "browserslist___browserslist_4.14.7.tgz";
+        url  = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.7.tgz";
+        sha1 = "c071c1b3622c1c2e790799a37bb09473a4351cb6";
       };
     }
     {
@@ -1786,14 +1906,6 @@
       };
     }
     {
-      name = "buffer_fill___buffer_fill_1.0.0.tgz";
-      path = fetchurl {
-        name = "buffer_fill___buffer_fill_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz";
-        sha1 = "f8f78b76789888ef39f205cd637f68e702122b2c";
-      };
-    }
-    {
       name = "buffer_from___buffer_from_1.1.1.tgz";
       path = fetchurl {
         name = "buffer_from___buffer_from_1.1.1.tgz";
@@ -1818,14 +1930,6 @@
       };
     }
     {
-      name = "buffer___buffer_4.9.1.tgz";
-      path = fetchurl {
-        name = "buffer___buffer_4.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz";
-        sha1 = "6d1bb601b07a4efced97094132093027c95bc298";
-      };
-    }
-    {
       name = "buffer___buffer_4.9.2.tgz";
       path = fetchurl {
         name = "buffer___buffer_4.9.2.tgz";
@@ -1834,19 +1938,19 @@
       };
     }
     {
-      name = "buffer___buffer_5.4.3.tgz";
+      name = "buffer___buffer_5.7.1.tgz";
       path = fetchurl {
-        name = "buffer___buffer_5.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/buffer/-/buffer-5.4.3.tgz";
-        sha1 = "3fbc9c69eb713d323e3fc1a895eee0710c072115";
+        name = "buffer___buffer_5.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz";
+        sha1 = "ba62e7c13133053582197160851a8f648e99eed0";
       };
     }
     {
-      name = "bufferutil___bufferutil_4.0.1.tgz";
+      name = "bufferutil___bufferutil_4.0.2.tgz";
       path = fetchurl {
-        name = "bufferutil___bufferutil_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.1.tgz";
-        sha1 = "3a177e8e5819a1243fe16b63a199951a7ad8d4a7";
+        name = "bufferutil___bufferutil_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.2.tgz";
+        sha1 = "79f68631910f6b993d870fc77dc0a2894eb96cd5";
       };
     }
     {
@@ -1858,11 +1962,11 @@
       };
     }
     {
-      name = "bunyan___bunyan_1.8.12.tgz";
+      name = "bunyan___bunyan_1.8.14.tgz";
       path = fetchurl {
-        name = "bunyan___bunyan_1.8.12.tgz";
-        url  = "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.12.tgz";
-        sha1 = "f150f0f6748abdd72aeae84f04403be2ef113797";
+        name = "bunyan___bunyan_1.8.14.tgz";
+        url  = "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.14.tgz";
+        sha1 = "3d8c1afea7de158a5238c7cb8a66ab6b38dd45b4";
       };
     }
     {
@@ -1882,11 +1986,19 @@
       };
     }
     {
-      name = "cacache___cacache_12.0.3.tgz";
+      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.0.5.tgz";
       path = fetchurl {
-        name = "cacache___cacache_12.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz";
-        sha1 = "be99abba4e1bf5df461cd5a2c1071fc432573390";
+        name = "cacache___cacache_15.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz";
+        sha1 = "69162833da29170d6732334643c60e005f5f17d0";
       };
     }
     {
@@ -1898,6 +2010,14 @@
       };
     }
     {
+      name = "call_bind___call_bind_1.0.0.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 = "caller_callsite___caller_callsite_2.0.0.tgz";
       path = fetchurl {
         name = "caller_callsite___caller_callsite_2.0.0.tgz";
@@ -1946,11 +2066,11 @@
       };
     }
     {
-      name = "camelcase___camelcase_1.2.1.tgz";
+      name = "camel_case___camel_case_4.1.1.tgz";
       path = fetchurl {
-        name = "camelcase___camelcase_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz";
-        sha1 = "9bb5304d2e0b56698b2c758b08a3eaa9daa58a39";
+        name = "camel_case___camel_case_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.1.tgz";
+        sha1 = "1fc41c854f00e2f7d0139dfeba1542d6896fe547";
       };
     }
     {
@@ -1978,19 +2098,11 @@
       };
     }
     {
-      name = "caniuse_lite___caniuse_lite_1.0.30001027.tgz";
+      name = "caniuse_lite___caniuse_lite_1.0.30001157.tgz";
       path = fetchurl {
-        name = "caniuse_lite___caniuse_lite_1.0.30001027.tgz";
-        url  = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001027.tgz";
-        sha1 = "283e2ef17d94889cc216a22c6f85303d78ca852d";
-      };
-    }
-    {
-      name = "cardinal___cardinal_2.1.1.tgz";
-      path = fetchurl {
-        name = "cardinal___cardinal_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/cardinal/-/cardinal-2.1.1.tgz";
-        sha1 = "7cc1055d822d212954d07b085dea251cc7bc5505";
+        name = "caniuse_lite___caniuse_lite_1.0.30001157.tgz";
+        url  = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001157.tgz";
+        sha1 = "2d11aaeb239b340bc1aa730eca18a37fdb07a9ab";
       };
     }
     {
@@ -2002,11 +2114,19 @@
       };
     }
     {
-      name = "center_align___center_align_0.1.3.tgz";
+      name = "ccount___ccount_1.1.0.tgz";
       path = fetchurl {
-        name = "center_align___center_align_0.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz";
-        sha1 = "aa0d32629b6ee972200411cbd4461c907bc2b7ad";
+        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";
+        url  = "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz";
+        sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98";
       };
     }
     {
@@ -2018,11 +2138,11 @@
       };
     }
     {
-      name = "chalk___chalk_1.1.3.tgz";
+      name = "chalk___chalk_3.0.0.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_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz";
+        sha1 = "3f73c2bf526591f574cc492c51e2456349f844e4";
       };
     }
     {
@@ -2034,11 +2154,43 @@
       };
     }
     {
-      name = "chance___chance_1.1.4.tgz";
+      name = "chance___chance_1.1.7.tgz";
       path = fetchurl {
-        name = "chance___chance_1.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/chance/-/chance-1.1.4.tgz";
-        sha1 = "d8743bf8e40bb05e024c305ca1ff441195eb23db";
+        name = "chance___chance_1.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/chance/-/chance-1.1.7.tgz";
+        sha1 = "e99dde5ac16681af787b5ba94c8277c090d6cfe8";
+      };
+    }
+    {
+      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";
+        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";
       };
     }
     {
@@ -2074,6 +2226,14 @@
       };
     }
     {
+      name = "chokidar___chokidar_3.4.3.tgz";
+      path = fetchurl {
+        name = "chokidar___chokidar_3.4.3.tgz";
+        url  = "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz";
+        sha1 = "c1df38231448e45ca4ac588e6c79573ba6a57d5b";
+      };
+    }
+    {
       name = "chownr___chownr_1.1.4.tgz";
       path = fetchurl {
         name = "chownr___chownr_1.1.4.tgz";
@@ -2082,6 +2242,14 @@
       };
     }
     {
+      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.2.tgz";
       path = fetchurl {
         name = "chrome_trace_event___chrome_trace_event_1.0.2.tgz";
@@ -2114,6 +2282,14 @@
       };
     }
     {
+      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 = "cli_color___cli_color_1.4.0.tgz";
       path = fetchurl {
         name = "cli_color___cli_color_1.4.0.tgz";
@@ -2130,27 +2306,19 @@
       };
     }
     {
-      name = "cli_width___cli_width_2.2.0.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 = "clipboard___clipboard_2.0.4.tgz";
+      name = "cli_width___cli_width_2.2.1.tgz";
       path = fetchurl {
-        name = "clipboard___clipboard_2.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.4.tgz";
-        sha1 = "836dafd66cf0fea5d71ce5d5b0bf6e958009112d";
+        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 = "cliui___cliui_2.1.0.tgz";
+      name = "clipboard___clipboard_2.0.6.tgz";
       path = fetchurl {
-        name = "cliui___cliui_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz";
-        sha1 = "4b475760ff80264c762c3a1719032e91c7fea0d1";
+        name = "clipboard___clipboard_2.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.6.tgz";
+        sha1 = "52921296eec0fdf77ead1749421b21c968647376";
       };
     }
     {
@@ -2178,6 +2346,14 @@
       };
     }
     {
+      name = "co___co_3.1.0.tgz";
+      path = fetchurl {
+        name = "co___co_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/co/-/co-3.1.0.tgz";
+        sha1 = "4ea54ea5a08938153185e15210c68d9092bc1b78";
+      };
+    }
+    {
       name = "coa___coa_2.0.2.tgz";
       path = fetchurl {
         name = "coa___coa_2.0.2.tgz";
@@ -2198,9 +2374,9 @@
     path =
       let
         repo = fetchgit {
-          url = "https://github.com/hackmdio/CodeMirror.git";
-          rev = "2ac9b9f25707606b0c09b99decaf9d08dd434570";
-          sha256 = "0aw6lixljaj0z8dbak0s60qfyk48qs747fw249qa4s9i6gb7f48v";
+          url = "https://github.com/hedgedoc/CodeMirror.git";
+          rev = "f780b569b3717cdff4c8507538cc63101bfa02e1";
+          sha256 = "0b6axzi9kwsd24pcqfk5rmy9nhsdyklpd3z8w9wiynd64435dilz";
         };
       in
         runCommandNoCC "CodeMirror.git" { buildInputs = [gnutar]; } ''
@@ -2210,6 +2386,14 @@
         '';
   }
     {
+      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";
@@ -2226,6 +2410,14 @@
       };
     }
     {
+      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";
@@ -2242,11 +2434,11 @@
       };
     }
     {
-      name = "color_string___color_string_1.5.3.tgz";
+      name = "color_string___color_string_1.5.4.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.4.tgz";
+        url  = "https://registry.yarnpkg.com/color-string/-/color-string-1.5.4.tgz";
+        sha1 = "dd51cd25cfee953d138fe4002372cc3d0e504cb6";
       };
     }
     {
@@ -2258,19 +2450,19 @@
       };
     }
     {
-      name = "color___color_3.1.2.tgz";
+      name = "color___color_3.1.3.tgz";
       path = fetchurl {
-        name = "color___color_3.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz";
-        sha1 = "68148e7f85d41ad7649c5fa8c8106f098d229e10";
+        name = "color___color_3.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz";
+        sha1 = "ca67fb4e7b97d611dcde39eceed422067d91596e";
       };
     }
     {
-      name = "colornames___colornames_1.1.1.tgz";
+      name = "colorette___colorette_1.2.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 = "colorette___colorette_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz";
+        sha1 = "4d0b921325c14faf92633086a536db6e89564b1b";
       };
     }
     {
@@ -2314,14 +2506,6 @@
       };
     }
     {
-      name = "commander___commander_3.0.2.tgz";
-      path = fetchurl {
-        name = "commander___commander_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz";
-        sha1 = "6837c3fb677ad9933d1cfba42dd14d5117d6b39e";
-      };
-    }
-    {
       name = "commander___commander_4.1.1.tgz";
       path = fetchurl {
         name = "commander___commander_4.1.1.tgz";
@@ -2370,11 +2554,11 @@
       };
     }
     {
-      name = "compress_commons___compress_commons_1.2.2.tgz";
+      name = "compress_commons___compress_commons_4.0.2.tgz";
       path = fetchurl {
-        name = "compress_commons___compress_commons_1.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/compress-commons/-/compress-commons-1.2.2.tgz";
-        sha1 = "524a9f10903f3a813389b0225d27c48bb751890f";
+        name = "compress_commons___compress_commons_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.0.2.tgz";
+        sha1 = "d6896be386e52f37610cef9e6fa5defc58c31bd7";
       };
     }
     {
@@ -2410,6 +2594,14 @@
       };
     }
     {
+      name = "concat_stream___concat_stream_2.0.0.tgz";
+      path = fetchurl {
+        name = "concat_stream___concat_stream_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz";
+        sha1 = "414cf5af790a48c60ab9be4527d56d5e41133cb1";
+      };
+    }
+    {
       name = "config_chain___config_chain_1.1.12.tgz";
       path = fetchurl {
         name = "config_chain___config_chain_1.1.12.tgz";
@@ -2498,11 +2690,11 @@
       };
     }
     {
-      name = "cookie_parser___cookie_parser_1.4.3.tgz";
+      name = "cookie_parser___cookie_parser_1.4.5.tgz";
       path = fetchurl {
-        name = "cookie_parser___cookie_parser_1.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.4.3.tgz";
-        sha1 = "0fe31fa19d000b95f4aadf1f53fdc2b8a203baa5";
+        name = "cookie_parser___cookie_parser_1.4.5.tgz";
+        url  = "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.4.5.tgz";
+        sha1 = "3e572d4b7c0c80f9c61daf604e4336831b5d1d49";
       };
     }
     {
@@ -2530,6 +2722,14 @@
       };
     }
     {
+      name = "cookie___cookie_0.4.1.tgz";
+      path = fetchurl {
+        name = "cookie___cookie_0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz";
+        sha1 = "afd713fe26ebd21ba95ceb61f9a8116e50a537d1";
+      };
+    }
+    {
       name = "cookiejar___cookiejar_2.0.6.tgz";
       path = fetchurl {
         name = "cookiejar___cookiejar_2.0.6.tgz";
@@ -2538,6 +2738,14 @@
       };
     }
     {
+      name = "copy_anything___copy_anything_2.0.1.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_concurrently___copy_concurrently_1.0.5.tgz";
       path = fetchurl {
         name = "copy_concurrently___copy_concurrently_1.0.5.tgz";
@@ -2554,11 +2762,11 @@
       };
     }
     {
-      name = "copy_webpack_plugin___copy_webpack_plugin_5.1.1.tgz";
+      name = "copy_webpack_plugin___copy_webpack_plugin_6.4.1.tgz";
       path = fetchurl {
-        name = "copy_webpack_plugin___copy_webpack_plugin_5.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.1.tgz";
-        sha1 = "5481a03dea1123d88a988c6ff8b78247214f0b88";
+        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";
       };
     }
     {
@@ -2586,27 +2794,27 @@
       };
     }
     {
-      name = "crc32_stream___crc32_stream_2.0.0.tgz";
+      name = "crc_32___crc_32_1.2.0.tgz";
       path = fetchurl {
-        name = "crc32_stream___crc32_stream_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-2.0.0.tgz";
-        sha1 = "e3cdd3b4df3168dd74e3de3fbbcb7b297fe908f4";
+        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 = "crc___crc_3.8.0.tgz";
+      name = "crc32_stream___crc32_stream_4.0.1.tgz";
       path = fetchurl {
-        name = "crc___crc_3.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz";
-        sha1 = "ad60269c2c856f8c299e2c4cc0de4556914056c6";
+        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 = "create_ecdh___create_ecdh_4.0.3.tgz";
+      name = "create_ecdh___create_ecdh_4.0.4.tgz";
       path = fetchurl {
-        name = "create_ecdh___create_ecdh_4.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz";
-        sha1 = "c9111b6f33045c4697f144787f9254cdc77c45ff";
+        name = "create_ecdh___create_ecdh_4.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz";
+        sha1 = "d6e7f4bffa66736085a0762fd3a632684dabcc4e";
       };
     }
     {
@@ -2642,14 +2850,6 @@
       };
     }
     {
-      name = "crypto_random_string___crypto_random_string_3.1.0.tgz";
-      path = fetchurl {
-        name = "crypto_random_string___crypto_random_string_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-3.1.0.tgz";
-        sha1 = "0368382de82e914179ad2ca9c7a788e260184bae";
-      };
-    }
-    {
       name = "css_b64_images___css_b64_images_0.2.5.tgz";
       path = fetchurl {
         name = "css_b64_images___css_b64_images_0.2.5.tgz";
@@ -2674,11 +2874,11 @@
       };
     }
     {
-      name = "css_loader___css_loader_3.4.2.tgz";
+      name = "css_loader___css_loader_3.6.0.tgz";
       path = fetchurl {
-        name = "css_loader___css_loader_3.4.2.tgz";
-        url  = "https://registry.yarnpkg.com/css-loader/-/css-loader-3.4.2.tgz";
-        sha1 = "d3fdb3358b43f233b78501c5ed7b1c6da6133202";
+        name = "css_loader___css_loader_3.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/css-loader/-/css-loader-3.6.0.tgz";
+        sha1 = "2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645";
       };
     }
     {
@@ -2714,11 +2914,11 @@
       };
     }
     {
-      name = "css_unit_converter___css_unit_converter_1.1.1.tgz";
+      name = "css_tree___css_tree_1.0.1.tgz";
       path = fetchurl {
-        name = "css_unit_converter___css_unit_converter_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz";
-        sha1 = "d9b9281adcfd8ced935bdbaba83786897f64e996";
+        name = "css_tree___css_tree_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.1.tgz";
+        sha1 = "7726678dfe2a57993a018d9dce519bf1760e3b6d";
       };
     }
     {
@@ -2730,19 +2930,11 @@
       };
     }
     {
-      name = "css_what___css_what_3.2.1.tgz";
-      path = fetchurl {
-        name = "css_what___css_what_3.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/css-what/-/css-what-3.2.1.tgz";
-        sha1 = "f4a8f12421064621b456755e34a03a2c22df5da1";
-      };
-    }
-    {
-      name = "cssesc___cssesc_2.0.0.tgz";
+      name = "css_what___css_what_3.4.2.tgz";
       path = fetchurl {
-        name = "cssesc___cssesc_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz";
-        sha1 = "3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703";
+        name = "css_what___css_what_3.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz";
+        sha1 = "ea7026fcb01777edbde52124e21f327e7ae950e4";
       };
     }
     {
@@ -2810,11 +3002,11 @@
       };
     }
     {
-      name = "csso___csso_4.0.2.tgz";
+      name = "csso___csso_4.1.0.tgz";
       path = fetchurl {
-        name = "csso___csso_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/csso/-/csso-4.0.2.tgz";
-        sha1 = "e5f81ab3a56b8eefb7f0092ce7279329f454de3d";
+        name = "csso___csso_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/csso/-/csso-4.1.0.tgz";
+        sha1 = "1d31193efa99b87aa6bad6c0cef155e543d09e8b";
       };
     }
     {
@@ -2874,11 +3066,11 @@
       };
     }
     {
-      name = "d3_brush___d3_brush_1.1.5.tgz";
+      name = "d3_brush___d3_brush_1.1.6.tgz";
       path = fetchurl {
-        name = "d3_brush___d3_brush_1.1.5.tgz";
-        url  = "https://registry.yarnpkg.com/d3-brush/-/d3-brush-1.1.5.tgz";
-        sha1 = "066b8e84d17b192986030446c97c0fba7e1bacdc";
+        name = "d3_brush___d3_brush_1.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/d3-brush/-/d3-brush-1.1.6.tgz";
+        sha1 = "b0a22c7372cabec128bdddf9bddc058592f89e9b";
       };
     }
     {
@@ -2898,11 +3090,11 @@
       };
     }
     {
-      name = "d3_color___d3_color_1.4.0.tgz";
+      name = "d3_color___d3_color_1.4.1.tgz";
       path = fetchurl {
-        name = "d3_color___d3_color_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/d3-color/-/d3-color-1.4.0.tgz";
-        sha1 = "89c45a995ed773b13314f06460df26d60ba0ecaf";
+        name = "d3_color___d3_color_1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/d3-color/-/d3-color-1.4.1.tgz";
+        sha1 = "c52002bf8846ada4424d55d97982fef26eb3bc8a";
       };
     }
     {
@@ -2938,19 +3130,19 @@
       };
     }
     {
-      name = "d3_ease___d3_ease_1.0.6.tgz";
+      name = "d3_ease___d3_ease_1.0.7.tgz";
       path = fetchurl {
-        name = "d3_ease___d3_ease_1.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.6.tgz";
-        sha1 = "ebdb6da22dfac0a22222f2d4da06f66c416a0ec0";
+        name = "d3_ease___d3_ease_1.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.7.tgz";
+        sha1 = "9a834890ef8b8ae8c558b2fe55bd57f5993b85e2";
       };
     }
     {
-      name = "d3_fetch___d3_fetch_1.1.2.tgz";
+      name = "d3_fetch___d3_fetch_1.2.0.tgz";
       path = fetchurl {
-        name = "d3_fetch___d3_fetch_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-1.1.2.tgz";
-        sha1 = "957c8fbc6d4480599ba191b1b2518bf86b3e1be2";
+        name = "d3_fetch___d3_fetch_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-1.2.0.tgz";
+        sha1 = "15ce2ecfc41b092b1db50abd2c552c2316cf7fc7";
       };
     }
     {
@@ -2962,19 +3154,19 @@
       };
     }
     {
-      name = "d3_format___d3_format_1.4.3.tgz";
+      name = "d3_format___d3_format_1.4.5.tgz";
       path = fetchurl {
-        name = "d3_format___d3_format_1.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/d3-format/-/d3-format-1.4.3.tgz";
-        sha1 = "4e8eb4dff3fdcb891a8489ec6e698601c41b96f1";
+        name = "d3_format___d3_format_1.4.5.tgz";
+        url  = "https://registry.yarnpkg.com/d3-format/-/d3-format-1.4.5.tgz";
+        sha1 = "374f2ba1320e3717eb74a9356c67daee17a7edb4";
       };
     }
     {
-      name = "d3_geo___d3_geo_1.11.9.tgz";
+      name = "d3_geo___d3_geo_1.12.1.tgz";
       path = fetchurl {
-        name = "d3_geo___d3_geo_1.11.9.tgz";
-        url  = "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.11.9.tgz";
-        sha1 = "77eaed14ba62fc2c0aef55cd2943849c866f7ae6";
+        name = "d3_geo___d3_geo_1.12.1.tgz";
+        url  = "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.12.1.tgz";
+        sha1 = "7fc2ab7414b72e59fbcbd603e80d9adc029b035f";
       };
     }
     {
@@ -3042,11 +3234,11 @@
       };
     }
     {
-      name = "d3_selection___d3_selection_1.4.1.tgz";
+      name = "d3_selection___d3_selection_1.4.2.tgz";
       path = fetchurl {
-        name = "d3_selection___d3_selection_1.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.1.tgz";
-        sha1 = "98eedbbe085fbda5bafa2f9e3f3a2f4d7d622a98";
+        name = "d3_selection___d3_selection_1.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.2.tgz";
+        sha1 = "dcaa49522c0dbf32d6c1858afc26b6094555bc5c";
       };
     }
     {
@@ -3058,11 +3250,11 @@
       };
     }
     {
-      name = "d3_time_format___d3_time_format_2.2.3.tgz";
+      name = "d3_time_format___d3_time_format_2.3.0.tgz";
       path = fetchurl {
-        name = "d3_time_format___d3_time_format_2.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.2.3.tgz";
-        sha1 = "0c9a12ee28342b2037e5ea1cf0b9eb4dd75f29cb";
+        name = "d3_time_format___d3_time_format_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.3.0.tgz";
+        sha1 = "107bdc028667788a8924ba040faf1fbccd5a7850";
       };
     }
     {
@@ -3106,11 +3298,11 @@
       };
     }
     {
-      name = "d3___d3_5.15.0.tgz";
+      name = "d3___d3_5.16.0.tgz";
       path = fetchurl {
-        name = "d3___d3_5.15.0.tgz";
-        url  = "https://registry.yarnpkg.com/d3/-/d3-5.15.0.tgz";
-        sha1 = "ffd44958e6a3cb8a59a84429c45429b8bca5677a";
+        name = "d3___d3_5.16.0.tgz";
+        url  = "https://registry.yarnpkg.com/d3/-/d3-5.16.0.tgz";
+        sha1 = "9c5e8d3b56403c79d4ed42fbd62f6113f199c877";
       };
     }
     {
@@ -3170,14 +3362,6 @@
       };
     }
     {
-      name = "debug___debug_4.1.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 = "debug___debug_2.6.9.tgz";
       path = fetchurl {
         name = "debug___debug_2.6.9.tgz";
@@ -3202,6 +3386,30 @@
       };
     }
     {
+      name = "debug___debug_4.2.0.tgz";
+      path = fetchurl {
+        name = "debug___debug_4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz";
+        sha1 = "7f150f93920e94c58f5574c2fd01a3110effe7f1";
+      };
+    }
+    {
+      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_4.1.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 = "decamelize___decamelize_1.2.0.tgz";
       path = fetchurl {
         name = "decamelize___decamelize_1.2.0.tgz";
@@ -3378,21 +3586,13 @@
       };
     }
     {
-      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-match-patch.git";
     path =
       let
         repo = fetchgit {
           url = "https://github.com/hackmdio/diff-match-patch.git";
-          rev = "5b73bb82454a81ecdbdb81afb4bea4c36132fbaa";
-          sha256 = "0awiyanl31n7n8ipx5yri713yvk6i692gphgvcr2nm9rr57hn6i7";
+          rev = "c2f8fb9d69aa9490b764850aa86ba442c93ccf78";
+          sha256 = "0hlv66cxrqih7spnissl44jd8f8x9dyvzc68fn0g2fwwrnpjjib7";
         };
       in
         runCommandNoCC "diff-match-patch.git" { buildInputs = [gnutar]; } ''
@@ -3418,19 +3618,11 @@
       };
     }
     {
-      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 = "dns_prefetch_control___dns_prefetch_control_0.2.0.tgz";
+      name = "dir_glob___dir_glob_3.0.1.tgz";
       path = fetchurl {
-        name = "dns_prefetch_control___dns_prefetch_control_0.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/dns-prefetch-control/-/dns-prefetch-control-0.2.0.tgz";
-        sha1 = "73988161841f3dcc81f47686d539a2c702c88624";
+        name = "dir_glob___dir_glob_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz";
+        sha1 = "56dbf73d992a4a93ba1584f4534063fd2e41717f";
       };
     }
     {
@@ -3490,11 +3682,11 @@
       };
     }
     {
-      name = "domelementtype___domelementtype_2.0.1.tgz";
+      name = "domelementtype___domelementtype_2.0.2.tgz";
       path = fetchurl {
-        name = "domelementtype___domelementtype_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz";
-        sha1 = "1f8bdfe91f5a78063274e803b4bdcedf6e94f94d";
+        name = "domelementtype___domelementtype_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.2.tgz";
+        sha1 = "f3b6e549201e46f588b59463dd77187131fe6971";
       };
     }
     {
@@ -3538,11 +3730,19 @@
       };
     }
     {
-      name = "dot_prop___dot_prop_5.2.0.tgz";
+      name = "dot_case___dot_case_3.0.3.tgz";
       path = fetchurl {
-        name = "dot_prop___dot_prop_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz";
-        sha1 = "c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb";
+        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_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";
       };
     }
     {
@@ -3562,14 +3762,6 @@
       };
     }
     {
-      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 = "duplexify___duplexify_3.7.1.tgz";
       path = fetchurl {
         name = "duplexify___duplexify_3.7.1.tgz";
@@ -3618,19 +3810,19 @@
       };
     }
     {
-      name = "electron_to_chromium___electron_to_chromium_1.3.352.tgz";
+      name = "electron_to_chromium___electron_to_chromium_1.3.596.tgz";
       path = fetchurl {
-        name = "electron_to_chromium___electron_to_chromium_1.3.352.tgz";
-        url  = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.352.tgz";
-        sha1 = "f0fc1e561104dbfba55cb3d45cad3626dc75d7e9";
+        name = "electron_to_chromium___electron_to_chromium_1.3.596.tgz";
+        url  = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.596.tgz";
+        sha1 = "c7ed98512c7ff36ddcbfed9e54e6355335c35257";
       };
     }
     {
-      name = "elliptic___elliptic_6.5.2.tgz";
+      name = "elliptic___elliptic_6.5.3.tgz";
       path = fetchurl {
-        name = "elliptic___elliptic_6.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz";
-        sha1 = "05c5678d7173c049d8ca433552224a495d0e3762";
+        name = "elliptic___elliptic_6.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz";
+        sha1 = "cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6";
       };
     }
     {
@@ -3642,6 +3834,14 @@
       };
     }
     {
+      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 = "emojify.js___emojify.js_1.1.0.tgz";
       path = fetchurl {
         name = "emojify.js___emojify.js_1.1.0.tgz";
@@ -3650,19 +3850,19 @@
       };
     }
     {
-      name = "emojis_list___emojis_list_2.1.0.tgz";
+      name = "emojis_list___emojis_list_3.0.0.tgz";
       path = fetchurl {
-        name = "emojis_list___emojis_list_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz";
-        sha1 = "4daa4d9db00f9819880c79fa457ae5b09a1fd389";
+        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";
+      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";
       };
     }
     {
@@ -3682,43 +3882,35 @@
       };
     }
     {
-      name = "engine.io_client___engine.io_client_3.2.1.tgz";
-      path = fetchurl {
-        name = "engine.io_client___engine.io_client_3.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz";
-        sha1 = "6f54c0475de487158a1a7c77d10178708b6add36";
-      };
-    }
-    {
-      name = "engine.io_parser___engine.io_parser_2.1.3.tgz";
+      name = "engine.io_client___engine.io_client_3.4.4.tgz";
       path = fetchurl {
-        name = "engine.io_parser___engine.io_parser_2.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz";
-        sha1 = "757ab970fbf2dfb32c7b74b033216d5739ef79a6";
+        name = "engine.io_client___engine.io_client_3.4.4.tgz";
+        url  = "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.4.4.tgz";
+        sha1 = "77d8003f502b0782dd792b073a4d2cf7ca5ab967";
       };
     }
     {
-      name = "engine.io___engine.io_3.2.1.tgz";
+      name = "engine.io_parser___engine.io_parser_2.2.1.tgz";
       path = fetchurl {
-        name = "engine.io___engine.io_3.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.1.tgz";
-        sha1 = "b60281c35484a70ee0351ea0ebff83ec8c9522a2";
+        name = "engine.io_parser___engine.io_parser_2.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.1.tgz";
+        sha1 = "57ce5611d9370ee94f99641b589f94c97e4f5da7";
       };
     }
     {
-      name = "enhanced_resolve___enhanced_resolve_4.1.0.tgz";
+      name = "engine.io___engine.io_3.4.2.tgz";
       path = fetchurl {
-        name = "enhanced_resolve___enhanced_resolve_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz";
-        sha1 = "41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f";
+        name = "engine.io___engine.io_3.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/engine.io/-/engine.io-3.4.2.tgz";
+        sha1 = "8fc84ee00388e3e228645e0a7d3dfaeed5bd122c";
       };
     }
     {
-      name = "enhanced_resolve___enhanced_resolve_4.1.1.tgz";
+      name = "enhanced_resolve___enhanced_resolve_4.3.0.tgz";
       path = fetchurl {
-        name = "enhanced_resolve___enhanced_resolve_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz";
-        sha1 = "2937e2b8066cd0fe7ce0990a98f0d71a35189f66";
+        name = "enhanced_resolve___enhanced_resolve_4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz";
+        sha1 = "3b806f3bfafc1ec7de69551ef93cca46c1704126";
       };
     }
     {
@@ -3730,19 +3922,27 @@
       };
     }
     {
-      name = "entities___entities_2.0.0.tgz";
+      name = "entities___entities_2.1.0.tgz";
       path = fetchurl {
-        name = "entities___entities_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz";
-        sha1 = "68d6084cab1b079767540d80e56a39b423e4abf4";
+        name = "entities___entities_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz";
+        sha1 = "992d3129cf7df6870b96c57858c249a120f8b8b5";
       };
     }
     {
-      name = "env_variable___env_variable_0.0.6.tgz";
+      name = "entities___entities_2.0.3.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 = "entities___entities_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz";
+        sha1 = "5c487e5742ab93c15abb5da22759b8590ec03b7f";
+      };
+    }
+    {
+      name = "entity_decode___entity_decode_2.0.2.tgz";
+      path = fetchurl {
+        name = "entity_decode___entity_decode_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/entity-decode/-/entity-decode-2.0.2.tgz";
+        sha1 = "e4f807e52c3294246e9347d1f2b02b07fd5f92e7";
       };
     }
     {
@@ -3762,11 +3962,19 @@
       };
     }
     {
-      name = "es_abstract___es_abstract_1.17.4.tgz";
+      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";
       path = fetchurl {
-        name = "es_abstract___es_abstract_1.17.4.tgz";
-        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.4.tgz";
-        sha1 = "e3aedf19706b20e7c2594c35fc0d57605a79e184";
+        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";
       };
     }
     {
@@ -3802,14 +4010,6 @@
       };
     }
     {
-      name = "es6_promise___es6_promise_4.2.8.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_symbol___es6_symbol_3.1.3.tgz";
       path = fetchurl {
         name = "es6_symbol___es6_symbol_3.1.3.tgz";
@@ -3826,6 +4026,14 @@
       };
     }
     {
+      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_html___escape_html_1.0.3.tgz";
       path = fetchurl {
         name = "escape_html___escape_html_1.0.3.tgz";
@@ -3842,19 +4050,11 @@
       };
     }
     {
-      name = "escaper___escaper_2.5.3.tgz";
-      path = fetchurl {
-        name = "escaper___escaper_2.5.3.tgz";
-        url  = "https://registry.yarnpkg.com/escaper/-/escaper-2.5.3.tgz";
-        sha1 = "8b8fe90ba364054151ab7eff18b4ce43b1e13ab5";
-      };
-    }
-    {
-      name = "escodegen___escodegen_1.14.1.tgz";
+      name = "escodegen___escodegen_1.14.3.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_1.14.3.tgz";
+        url  = "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz";
+        sha1 = "4e7b81fba61581dc97582ed78cab7f0e8d63f503";
       };
     }
     {
@@ -3866,19 +4066,19 @@
       };
     }
     {
-      name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.3.tgz";
+      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.3.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz";
-        sha1 = "dbaa52b6b2816b50bc6711af75422de808e98404";
+        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.5.2.tgz";
+      name = "eslint_module_utils___eslint_module_utils_2.6.0.tgz";
       path = fetchurl {
-        name = "eslint_module_utils___eslint_module_utils_2.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.5.2.tgz";
-        sha1 = "7878f7504824e1b857dd2505b59a8e5eda26a708";
+        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";
       };
     }
     {
@@ -3890,11 +4090,11 @@
       };
     }
     {
-      name = "eslint_plugin_import___eslint_plugin_import_2.20.1.tgz";
+      name = "eslint_plugin_import___eslint_plugin_import_2.22.1.tgz";
       path = fetchurl {
-        name = "eslint_plugin_import___eslint_plugin_import_2.20.1.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.1.tgz";
-        sha1 = "802423196dcb11d9ce8435a5fc02a6d3b46939b3";
+        name = "eslint_plugin_import___eslint_plugin_import_2.22.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz";
+        sha1 = "0896c7e6a0cf44109a2d97b95903c2bb689d7702";
       };
     }
     {
@@ -3914,11 +4114,11 @@
       };
     }
     {
-      name = "eslint_plugin_standard___eslint_plugin_standard_4.0.1.tgz";
+      name = "eslint_plugin_standard___eslint_plugin_standard_4.1.0.tgz";
       path = fetchurl {
-        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";
+        name = "eslint_plugin_standard___eslint_plugin_standard_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz";
+        sha1 = "0c3bf3a67e853f8bbbc580fb4945fbf16f41b7c5";
       };
     }
     {
@@ -3938,11 +4138,11 @@
       };
     }
     {
-      name = "eslint_visitor_keys___eslint_visitor_keys_1.1.0.tgz";
+      name = "eslint_visitor_keys___eslint_visitor_keys_1.3.0.tgz";
       path = fetchurl {
-        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";
+        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";
       };
     }
     {
@@ -3970,19 +4170,19 @@
       };
     }
     {
-      name = "esquery___esquery_1.1.0.tgz";
+      name = "esquery___esquery_1.3.1.tgz";
       path = fetchurl {
-        name = "esquery___esquery_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/esquery/-/esquery-1.1.0.tgz";
-        sha1 = "c5c0b66f383e7656404f86b31334d72524eddb48";
+        name = "esquery___esquery_1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz";
+        sha1 = "b78b5828aa8e214e29fb74c4d5b752e1c033da57";
       };
     }
     {
-      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";
       };
     }
     {
@@ -3994,11 +4194,11 @@
       };
     }
     {
-      name = "estree_walker___estree_walker_0.6.1.tgz";
+      name = "estraverse___estraverse_5.2.0.tgz";
       path = fetchurl {
-        name = "estree_walker___estree_walker_0.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz";
-        sha1 = "53049143f40c6eb918b23671d1fe3219f3a1b362";
+        name = "estraverse___estraverse_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz";
+        sha1 = "307df42547e6cc7324d3cf03c155d5cdb8c53880";
       };
     }
     {
@@ -4026,11 +4226,11 @@
       };
     }
     {
-      name = "eve___eve_0.4.2.tgz";
+      name = "eve___eve_0.5.4.tgz";
       path = fetchurl {
-        name = "eve___eve_0.4.2.tgz";
-        url  = "https://registry.yarnpkg.com/eve/-/eve-0.4.2.tgz";
-        sha1 = "7eea0afc0e4efb7c9365615315a3576833ead2ae";
+        name = "eve___eve_0.5.4.tgz";
+        url  = "https://registry.yarnpkg.com/eve/-/eve-0.5.4.tgz";
+        sha1 = "67d080b9725291d7e389e34c26860dd97f1debaa";
       };
     }
     {
@@ -4050,11 +4250,11 @@
       };
     }
     {
-      name = "events___events_3.1.0.tgz";
+      name = "events___events_3.2.0.tgz";
       path = fetchurl {
-        name = "events___events_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz";
-        sha1 = "84279af1b34cb75aa88bf5ff291f6d0bd9b31a59";
+        name = "events___events_3.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz";
+        sha1 = "93b87c18f8efcd4202a461aec4dfc0556b639379";
       };
     }
     {
@@ -4066,11 +4266,11 @@
       };
     }
     {
-      name = "execa___execa_1.0.0.tgz";
+      name = "exit_on_epipe___exit_on_epipe_1.0.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 = "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";
       };
     }
     {
@@ -4106,14 +4306,6 @@
       };
     }
     {
-      name = "expect_ct___expect_ct_0.2.0.tgz";
-      path = fetchurl {
-        name = "expect_ct___expect_ct_0.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/expect-ct/-/expect-ct-0.2.0.tgz";
-        sha1 = "3a54741b6ed34cc7a93305c605f63cd268a54a62";
-      };
-    }
-    {
       name = "expose_loader___expose_loader_0.7.5.tgz";
       path = fetchurl {
         name = "expose_loader___expose_loader_0.7.5.tgz";
@@ -4122,11 +4314,11 @@
       };
     }
     {
-      name = "express_session___express_session_1.17.0.tgz";
+      name = "express_session___express_session_1.17.1.tgz";
       path = fetchurl {
-        name = "express_session___express_session_1.17.0.tgz";
-        url  = "https://registry.yarnpkg.com/express-session/-/express-session-1.17.0.tgz";
-        sha1 = "9b50dbb5e8a03c3537368138f072736150b7f9b3";
+        name = "express_session___express_session_1.17.1.tgz";
+        url  = "https://registry.yarnpkg.com/express-session/-/express-session-1.17.1.tgz";
+        sha1 = "36ecbc7034566d38c8509885c044d461c11bf357";
       };
     }
     {
@@ -4202,14 +4394,6 @@
       };
     }
     {
-      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.2.0.tgz";
       path = fetchurl {
         name = "extsprintf___extsprintf_1.2.0.tgz";
@@ -4234,11 +4418,19 @@
       };
     }
     {
-      name = "fast_deep_equal___fast_deep_equal_3.1.1.tgz";
+      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_glob___fast_glob_3.2.4.tgz";
       path = fetchurl {
-        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_glob___fast_glob_3.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz";
+        sha1 = "d20aefbf99579383e7f3cc66529158c9b98554d3";
       };
     }
     {
@@ -4266,11 +4458,19 @@
       };
     }
     {
-      name = "fd_slicer___fd_slicer_1.0.1.tgz";
+      name = "fastq___fastq_1.9.0.tgz";
+      path = fetchurl {
+        name = "fastq___fastq_1.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/fastq/-/fastq-1.9.0.tgz";
+        sha1 = "e16a72f338eaca48e91b5c23593bcc2ef66b7947";
+      };
+    }
+    {
+      name = "fault___fault_1.0.4.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 = "fault___fault_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/fault/-/fault-1.0.4.tgz";
+        sha1 = "eafcfc0a6d214fc94601e170df29954a4f842f13";
       };
     }
     {
@@ -4282,19 +4482,19 @@
       };
     }
     {
-      name = "fecha___fecha_2.3.3.tgz";
+      name = "fecha___fecha_4.2.0.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.0.tgz";
+        url  = "https://registry.yarnpkg.com/fecha/-/fecha-4.2.0.tgz";
+        sha1 = "3ffb6395453e3f3efff850404f0a59b6747f5f41";
       };
     }
     {
-      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";
       };
     }
     {
@@ -4306,6 +4506,14 @@
       };
     }
     {
+      name = "figures___figures_3.2.0.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";
@@ -4330,6 +4538,14 @@
       };
     }
     {
+      name = "file_type___file_type_16.1.0.tgz";
+      path = fetchurl {
+        name = "file_type___file_type_16.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/file-type/-/file-type-16.1.0.tgz";
+        sha1 = "1c8a4458b2103e07d2b49ae7f76384abafe86529";
+      };
+    }
+    {
       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";
@@ -4362,6 +4578,14 @@
       };
     }
     {
+      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 = "finalhandler___finalhandler_1.1.2.tgz";
       path = fetchurl {
         name = "finalhandler___finalhandler_1.1.2.tgz";
@@ -4386,6 +4610,14 @@
       };
     }
     {
+      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";
@@ -4402,6 +4634,14 @@
       };
     }
     {
+      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";
@@ -4418,19 +4658,19 @@
       };
     }
     {
-      name = "flatted___flatted_2.0.1.tgz";
+      name = "flatted___flatted_2.0.2.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_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz";
+        sha1 = "4575b21e2bcee7434aa9be662f4b7b5f9c2b5138";
       };
     }
     {
-      name = "flowchart.js___flowchart.js_1.13.0.tgz";
+      name = "flowchart.js___flowchart.js_1.15.0.tgz";
       path = fetchurl {
-        name = "flowchart.js___flowchart.js_1.13.0.tgz";
-        url  = "https://registry.yarnpkg.com/flowchart.js/-/flowchart.js-1.13.0.tgz";
-        sha1 = "fd966270bd310ddefb168d6826c792c5f345372f";
+        name = "flowchart.js___flowchart.js_1.15.0.tgz";
+        url  = "https://registry.yarnpkg.com/flowchart.js/-/flowchart.js-1.15.0.tgz";
+        sha1 = "132ba2df14af0a65e67280026ef05a1ffd16569f";
       };
     }
     {
@@ -4442,6 +4682,14 @@
       };
     }
     {
+      name = "fn.name___fn.name_1.1.0.tgz";
+      path = fetchurl {
+        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 = "follow_redirects___follow_redirects_1.5.10.tgz";
       path = fetchurl {
         name = "follow_redirects___follow_redirects_1.5.10.tgz";
@@ -4506,11 +4754,19 @@
       };
     }
     {
-      name = "formidable___formidable_1.2.1.tgz";
+      name = "format___format_0.2.2.tgz";
       path = fetchurl {
-        name = "formidable___formidable_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/formidable/-/formidable-1.2.1.tgz";
-        sha1 = "70fb7ca0290ee6ff961090415f4b3df3d2082659";
+        name = "format___format_0.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz";
+        sha1 = "d6170107e9efdc4ed30c9dc39016df942b5cb58b";
+      };
+    }
+    {
+      name = "formidable___formidable_1.2.2.tgz";
+      path = fetchurl {
+        name = "formidable___formidable_1.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/formidable/-/formidable-1.2.2.tgz";
+        sha1 = "bf69aea2972982675f00865342b982986f6b8dd9";
       };
     }
     {
@@ -4538,14 +4794,6 @@
       };
     }
     {
-      name = "frameguard___frameguard_3.1.0.tgz";
-      path = fetchurl {
-        name = "frameguard___frameguard_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/frameguard/-/frameguard-3.1.0.tgz";
-        sha1 = "bd1442cca1d67dc346a6751559b6d04502103a22";
-      };
-    }
-    {
       name = "fresh___fresh_0.5.2.tgz";
       path = fetchurl {
         name = "fresh___fresh_0.5.2.tgz";
@@ -4570,14 +4818,6 @@
       };
     }
     {
-      name = "fs_extra___fs_extra_1.0.0.tgz";
-      path = fetchurl {
-        name = "fs_extra___fs_extra_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz";
-        sha1 = "cd3ce5f7e7cb6145883fcae3191e9877f8587950";
-      };
-    }
-    {
       name = "fs_extra___fs_extra_7.0.1.tgz";
       path = fetchurl {
         name = "fs_extra___fs_extra_7.0.1.tgz";
@@ -4594,6 +4834,14 @@
       };
     }
     {
+      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_readdir_recursive___fs_readdir_recursive_1.1.0.tgz";
       path = fetchurl {
         name = "fs_readdir_recursive___fs_readdir_recursive_1.1.0.tgz";
@@ -4618,11 +4866,19 @@
       };
     }
     {
-      name = "fsevents___fsevents_1.2.11.tgz";
+      name = "fsevents___fsevents_1.2.13.tgz";
       path = fetchurl {
-        name = "fsevents___fsevents_1.2.11.tgz";
-        url  = "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.11.tgz";
-        sha1 = "67bf57f4758f02ede88fb2a1712fef4d15358be3";
+        name = "fsevents___fsevents_1.2.13.tgz";
+        url  = "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz";
+        sha1 = "f325cb0455592428bcf11b383370ef70e3bfcc38";
+      };
+    }
+    {
+      name = "fsevents___fsevents_2.1.3.tgz";
+      path = fetchurl {
+        name = "fsevents___fsevents_2.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz";
+        sha1 = "fb738703ae8d2f9fe900c33836ddebee8b97f23e";
       };
     }
     {
@@ -4674,11 +4930,11 @@
       };
     }
     {
-      name = "get_stream___get_stream_4.1.0.tgz";
+      name = "get_intrinsic___get_intrinsic_1.0.1.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_intrinsic___get_intrinsic_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.1.tgz";
+        sha1 = "94a9768fcbdd0595a1c9273aacf4c89d075631be";
       };
     }
     {
@@ -4730,6 +4986,14 @@
       };
     }
     {
+      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";
@@ -4754,14 +5018,6 @@
       };
     }
     {
-      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_modules___global_modules_1.0.0.tgz";
       path = fetchurl {
         name = "global_modules___global_modules_1.0.0.tgz";
@@ -4770,6 +5026,14 @@
       };
     }
     {
+      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";
@@ -4802,11 +5066,11 @@
       };
     }
     {
-      name = "globby___globby_7.1.1.tgz";
+      name = "globby___globby_11.0.1.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_11.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz";
+        sha1 = "9a2bf107a068f3ffeabc49ad702c79ede8cfd357";
       };
     }
     {
@@ -4818,11 +5082,11 @@
       };
     }
     {
-      name = "graceful_fs___graceful_fs_4.2.3.tgz";
+      name = "graceful_fs___graceful_fs_4.2.4.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";
+        url  = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz";
+        sha1 = "2256bde14d3632958c465ebc96dc467ca07a29fb";
       };
     }
     {
@@ -4842,11 +5106,11 @@
       };
     }
     {
-      name = "handlebars___handlebars_4.7.3.tgz";
+      name = "handlebars___handlebars_4.7.6.tgz";
       path = fetchurl {
-        name = "handlebars___handlebars_4.7.3.tgz";
-        url  = "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.3.tgz";
-        sha1 = "8ece2797826886cf8082d1726ff21d2a022550ee";
+        name = "handlebars___handlebars_4.7.6.tgz";
+        url  = "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.6.tgz";
+        sha1 = "d4c05c1baf90e9945f77aa68a7a219aa4a7df74e";
       };
     }
     {
@@ -4858,11 +5122,11 @@
       };
     }
     {
-      name = "har_validator___har_validator_5.1.3.tgz";
+      name = "har_validator___har_validator_5.1.5.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 = "har_validator___har_validator_5.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz";
+        sha1 = "1f0803b9f8cb20c0fa13822df1ecddb36bde1efd";
       };
     }
     {
@@ -4906,6 +5170,14 @@
       };
     }
     {
+      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.1.tgz";
       path = fetchurl {
         name = "has_symbols___has_symbols_1.0.1.tgz";
@@ -4962,11 +5234,11 @@
       };
     }
     {
-      name = "hash_base___hash_base_3.0.4.tgz";
+      name = "hash_base___hash_base_3.1.0.tgz";
       path = fetchurl {
-        name = "hash_base___hash_base_3.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz";
-        sha1 = "5fc8686847ecd73499403319a6b0a3f3f6ae4918";
+        name = "hash_base___hash_base_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz";
+        sha1 = "55c381d9e06e1d2997a883b4a3fddfe7f0d3af33";
       };
     }
     {
@@ -4978,14 +5250,6 @@
       };
     }
     {
-      name = "hasha___hasha_2.2.0.tgz";
-      path = fetchurl {
-        name = "hasha___hasha_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/hasha/-/hasha-2.2.0.tgz";
-        sha1 = "78d7cbfc1e6d66303fe79837365984517b2f6ee1";
-      };
-    }
-    {
       name = "he___he_1.1.1.tgz";
       path = fetchurl {
         name = "he___he_1.1.1.tgz";
@@ -5010,19 +5274,19 @@
       };
     }
     {
-      name = "helmet_csp___helmet_csp_2.9.4.tgz";
+      name = "helmet_csp___helmet_csp_2.10.0.tgz";
       path = fetchurl {
-        name = "helmet_csp___helmet_csp_2.9.4.tgz";
-        url  = "https://registry.yarnpkg.com/helmet-csp/-/helmet-csp-2.9.4.tgz";
-        sha1 = "801382bac98f2f88706dc5c89d95c7e31af3a4a9";
+        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.21.2.tgz";
+      name = "helmet___helmet_3.23.3.tgz";
       path = fetchurl {
-        name = "helmet___helmet_3.21.2.tgz";
-        url  = "https://registry.yarnpkg.com/helmet/-/helmet-3.21.2.tgz";
-        sha1 = "7e2a19d5f6d898a77b5d2858e8e4bb2cda59f19f";
+        name = "helmet___helmet_3.23.3.tgz";
+        url  = "https://registry.yarnpkg.com/helmet/-/helmet-3.23.3.tgz";
+        sha1 = "5ba30209c5f73ded4ab65746a3a11bedd4579ab7";
       };
     }
     {
@@ -5042,19 +5306,11 @@
       };
     }
     {
-      name = "highlight.js___highlight.js_9.18.1.tgz";
-      path = fetchurl {
-        name = "highlight.js___highlight.js_9.18.1.tgz";
-        url  = "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.1.tgz";
-        sha1 = "ed21aa001fe6252bb10a3d76d47573c6539fe13c";
-      };
-    }
-    {
-      name = "highlight.js___highlight.js_9.12.0.tgz";
+      name = "highlight.js___highlight.js_9.18.5.tgz";
       path = fetchurl {
-        name = "highlight.js___highlight.js_9.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.12.0.tgz";
-        sha1 = "e6d9dbe57cbefe60751f02af336195870c90c01e";
+        name = "highlight.js___highlight.js_9.18.5.tgz";
+        url  = "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.5.tgz";
+        sha1 = "d18a359867f378c138d6819edfc2a8acd5f29825";
       };
     }
     {
@@ -5082,11 +5338,11 @@
       };
     }
     {
-      name = "hosted_git_info___hosted_git_info_2.8.5.tgz";
+      name = "hosted_git_info___hosted_git_info_2.8.8.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 = "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";
       };
     }
     {
@@ -5138,11 +5394,11 @@
       };
     }
     {
-      name = "html_minifier_terser___html_minifier_terser_5.0.3.tgz";
+      name = "html_minifier_terser___html_minifier_terser_5.1.1.tgz";
       path = fetchurl {
-        name = "html_minifier_terser___html_minifier_terser_5.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.0.3.tgz";
-        sha1 = "b33549b57be7f0357be0d0b892995aaed1ed90f8";
+        name = "html_minifier_terser___html_minifier_terser_5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz";
+        sha1 = "922e96f1f3bb60832c2634b79884096389b1f054";
       };
     }
     {
@@ -5154,11 +5410,11 @@
       };
     }
     {
-      name = "html_webpack_plugin___html_webpack_plugin_4.0.0_beta.11.tgz";
+      name = "html_webpack_plugin___html_webpack_plugin_4.5.0.tgz";
       path = fetchurl {
-        name = "html_webpack_plugin___html_webpack_plugin_4.0.0_beta.11.tgz";
-        url  = "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.0.0-beta.11.tgz";
-        sha1 = "3059a69144b5aecef97708196ca32f9e68677715";
+        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";
       };
     }
     {
@@ -5202,11 +5458,11 @@
       };
     }
     {
-      name = "i18n___i18n_0.8.5.tgz";
+      name = "i18n___i18n_0.13.2.tgz";
       path = fetchurl {
-        name = "i18n___i18n_0.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/i18n/-/i18n-0.8.5.tgz";
-        sha1 = "3ae2db28fa1670e3f5ba30d3e505958b0b62e7ec";
+        name = "i18n___i18n_0.13.2.tgz";
+        url  = "https://registry.yarnpkg.com/i18n/-/i18n-0.13.2.tgz";
+        sha1 = "3886678fe7cbbed45bac2ce53b8144c788a1c1b5";
       };
     }
     {
@@ -5218,11 +5474,19 @@
       };
     }
     {
-      name = "iconv_lite___iconv_lite_0.5.1.tgz";
+      name = "iconv_lite___iconv_lite_0.5.2.tgz";
       path = fetchurl {
-        name = "iconv_lite___iconv_lite_0.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.5.1.tgz";
-        sha1 = "b2425d3c7b18f7219f2ca663d103bddb91718d64";
+        name = "iconv_lite___iconv_lite_0.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.5.2.tgz";
+        sha1 = "af6d628dccfb463b7364d97f715e4b74b8c8c2b8";
+      };
+    }
+    {
+      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";
       };
     }
     {
@@ -5242,11 +5506,11 @@
       };
     }
     {
-      name = "ienoopen___ienoopen_1.1.0.tgz";
+      name = "ieee754___ieee754_1.2.1.tgz";
       path = fetchurl {
-        name = "ienoopen___ienoopen_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/ienoopen/-/ienoopen-1.1.0.tgz";
-        sha1 = "411e5d530c982287dbdc3bb31e7a9c9e32630974";
+        name = "ieee754___ieee754_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz";
+        sha1 = "8eb7a10a63fff25d15a57b001586d177d1b0d352";
       };
     }
     {
@@ -5266,14 +5530,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";
@@ -5282,11 +5538,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";
       };
     }
     {
@@ -5303,8 +5559,8 @@
       let
         repo = fetchgit {
           url = "https://github.com/hackmdio/node-imgur.git";
-          rev = "4fe9cfa3893505c34c49067483d85d3ad4376cd6";
-          sha256 = "1bixzclrs7lzpfkcxwmzl9kz6l2bjz0jz40bikdl1zhgc2zjiiv0";
+          rev = "de0a7a1f1eb2cb6628385fedb990ad396a190573";
+          sha256 = "11m1wyh6l3ngfgc3qdxa5drlagvniz82fi7c191nb27d3s0lcfmd";
         };
       in
         runCommandNoCC "node-imgur.git" { buildInputs = [gnutar]; } ''
@@ -5322,11 +5578,11 @@
       };
     }
     {
-      name = "import_fresh___import_fresh_3.2.1.tgz";
+      name = "import_fresh___import_fresh_3.2.2.tgz";
       path = fetchurl {
-        name = "import_fresh___import_fresh_3.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz";
-        sha1 = "633ff618506e793af5ac91bf48b72677e15cbe66";
+        name = "import_fresh___import_fresh_3.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.2.tgz";
+        sha1 = "fc129c160c5d68235507f4331a6baad186bdbc3e";
       };
     }
     {
@@ -5354,6 +5610,14 @@
       };
     }
     {
+      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";
@@ -5434,11 +5698,11 @@
       };
     }
     {
-      name = "interpret___interpret_1.2.0.tgz";
+      name = "interpret___interpret_1.4.0.tgz";
       path = fetchurl {
-        name = "interpret___interpret_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz";
-        sha1 = "d5061a6224be58e8083985f5014d844359576296";
+        name = "interpret___interpret_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz";
+        sha1 = "665ab8bc4da27a774a40584e812e3e0fa45b1a1e";
       };
     }
     {
@@ -5450,14 +5714,6 @@
       };
     }
     {
-      name = "invert_kv___invert_kv_2.0.0.tgz";
-      path = fetchurl {
-        name = "invert_kv___invert_kv_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz";
-        sha1 = "7393f5afa59ec9ff5f67a27620d11c226e3eec02";
-      };
-    }
-    {
       name = "ionicons___ionicons_2.0.1.tgz";
       path = fetchurl {
         name = "ionicons___ionicons_2.0.1.tgz";
@@ -5466,11 +5722,11 @@
       };
     }
     {
-      name = "ipaddr.js___ipaddr.js_1.9.0.tgz";
+      name = "ipaddr.js___ipaddr.js_1.9.1.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 = "ipaddr.js___ipaddr.js_1.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz";
+        sha1 = "bff38543eeb8984825079ff3a2a8e6cbd46781b3";
       };
     }
     {
@@ -5498,6 +5754,30 @@
       };
     }
     {
+      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_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";
+        url  = "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz";
+        sha1 = "7eb9a2431f855f6b1ef1a78e326df515696c4dbf";
+      };
+    }
+    {
       name = "is_arguments___is_arguments_1.0.4.tgz";
       path = fetchurl {
         name = "is_arguments___is_arguments_1.0.4.tgz";
@@ -5530,6 +5810,14 @@
       };
     }
     {
+      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_bluebird___is_bluebird_1.0.2.tgz";
       path = fetchurl {
         name = "is_bluebird___is_bluebird_1.0.2.tgz";
@@ -5546,11 +5834,19 @@
       };
     }
     {
-      name = "is_callable___is_callable_1.1.5.tgz";
+      name = "is_buffer___is_buffer_2.0.5.tgz";
       path = fetchurl {
-        name = "is_callable___is_callable_1.1.5.tgz";
-        url  = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz";
-        sha1 = "f7e46b596890456db74e7f6e976cb3273d06faab";
+        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.2.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";
       };
     }
     {
@@ -5562,6 +5858,14 @@
       };
     }
     {
+      name = "is_core_module___is_core_module_2.2.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_data_descriptor___is_data_descriptor_0.1.4.tgz";
       path = fetchurl {
         name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
@@ -5586,6 +5890,14 @@
       };
     }
     {
+      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";
@@ -5618,6 +5930,14 @@
       };
     }
     {
+      name = "is_empty___is_empty_1.2.0.tgz";
+      path = fetchurl {
+        name = "is_empty___is_empty_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-empty/-/is-empty-1.2.0.tgz";
+        sha1 = "de9bb5b278738a05a0b09a57e1fb4d4a341a9f6b";
+      };
+    }
+    {
       name = "is_equal_shallow___is_equal_shallow_0.1.3.tgz";
       path = fetchurl {
         name = "is_equal_shallow___is_equal_shallow_0.1.3.tgz";
@@ -5682,6 +6002,14 @@
       };
     }
     {
+      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_2.0.1.tgz";
       path = fetchurl {
         name = "is_glob___is_glob_2.0.1.tgz";
@@ -5706,6 +6034,22 @@
       };
     }
     {
+      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.0.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_number___is_number_2.1.0.tgz";
       path = fetchurl {
         name = "is_number___is_number_2.1.0.tgz";
@@ -5730,6 +6074,14 @@
       };
     }
     {
+      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";
@@ -5746,6 +6098,14 @@
       };
     }
     {
+      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";
@@ -5770,11 +6130,11 @@
       };
     }
     {
-      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";
       };
     }
     {
@@ -5786,19 +6146,11 @@
       };
     }
     {
-      name = "is_regex___is_regex_1.0.5.tgz";
-      path = fetchurl {
-        name = "is_regex___is_regex_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz";
-        sha1 = "39d589a358bf18967f726967120b8fc1aed74eae";
-      };
-    }
-    {
-      name = "is_regexp___is_regexp_1.0.0.tgz";
+      name = "is_regex___is_regex_1.1.1.tgz";
       path = fetchurl {
-        name = "is_regexp___is_regexp_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz";
-        sha1 = "fd2d883545c46bac5a633e7b9a09e87fa2cb5069";
+        name = "is_regex___is_regex_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz";
+        sha1 = "c6f98aacc546f6cec5468a07b7b153ab564a57b9";
       };
     }
     {
@@ -5810,11 +6162,11 @@
       };
     }
     {
-      name = "is_stream___is_stream_1.1.0.tgz";
+      name = "is_stream___is_stream_2.0.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";
+        url  = "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz";
+        sha1 = "bde9c32680d6fae04129d6ac9d921ce7815f78e3";
       };
     }
     {
@@ -5850,6 +6202,22 @@
       };
     }
     {
+      name = "is_what___is_what_3.12.0.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_whitespace_character___is_whitespace_character_1.0.4.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_windows___is_windows_1.0.2.tgz";
       path = fetchurl {
         name = "is_windows___is_windows_1.0.2.tgz";
@@ -5858,6 +6226,14 @@
       };
     }
     {
+      name = "is_word_character___is_word_character_1.0.4.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_wsl___is_wsl_1.1.0.tgz";
       path = fetchurl {
         name = "is_wsl___is_wsl_1.1.0.tgz";
@@ -5946,19 +6322,19 @@
       };
     }
     {
-      name = "jquery___jquery_3.4.1.tgz";
+      name = "jquery___jquery_3.5.1.tgz";
       path = fetchurl {
-        name = "jquery___jquery_3.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/jquery/-/jquery-3.4.1.tgz";
-        sha1 = "714f1f8d9dde4bdfa55764ba37ef214630d80ef2";
+        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.10.3.tgz";
+      name = "js_beautify___js_beautify_1.13.0.tgz";
       path = fetchurl {
-        name = "js_beautify___js_beautify_1.10.3.tgz";
-        url  = "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.10.3.tgz";
-        sha1 = "c73fa10cf69d3dfa52d8ed624f23c64c0a6a94c1";
+        name = "js_beautify___js_beautify_1.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.13.0.tgz";
+        sha1 = "a056d5d3acfd4918549aae3ab039f9f3c51eebb2";
       };
     }
     {
@@ -5974,9 +6350,9 @@
     path =
       let
         repo = fetchgit {
-          url = "https://github.com/codimd/js-sequence-diagrams.git";
-          rev = "b9afa038521e5dadf9b97624a3c7db21890be669";
-          sha256 = "12v57bdld5a2550xvqh1rcinpld48awgd1s0gbny7z0b0z827ggw";
+          url = "https://github.com/hedgedoc/js-sequence-diagrams.git";
+          rev = "bda0e49b6c2754f3c7158b1dfb9ccf26efc24b39";
+          sha256 = "0d2zf62fmad760rg9hrkyhp03k5apms3fm0mf64yy8q6p3iw7jvw";
         };
       in
         runCommandNoCC "js-sequence-diagrams.git" { buildInputs = [gnutar]; } ''
@@ -6002,19 +6378,27 @@
       };
     }
     {
-      name = "js_yaml___js_yaml_3.13.1.tgz";
+      name = "js_yaml___js_yaml_3.14.0.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";
       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";
       };
     }
     {
-      name = "jsbi___jsbi_3.1.1.tgz";
+      name = "jsbi___jsbi_3.1.4.tgz";
       path = fetchurl {
-        name = "jsbi___jsbi_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/jsbi/-/jsbi-3.1.1.tgz";
-        sha1 = "8ea18b3e08d102c6cc09acaa9a099921d775f4fa";
+        name = "jsbi___jsbi_3.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/jsbi/-/jsbi-3.1.4.tgz";
+        sha1 = "9654dd02207a66a4911b4e4bb74265bc2cbc9dd0";
       };
     }
     {
@@ -6074,6 +6458,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";
@@ -6130,11 +6522,11 @@
       };
     }
     {
-      name = "jsonfile___jsonfile_2.4.0.tgz";
+      name = "json5___json5_2.1.3.tgz";
       path = fetchurl {
-        name = "jsonfile___jsonfile_2.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz";
-        sha1 = "3736a2b428b87bbda0cc83b53fa3d633a35c2ae8";
+        name = "json5___json5_2.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz";
+        sha1 = "c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43";
       };
     }
     {
@@ -6186,14 +6578,6 @@
       };
     }
     {
-      name = "kew___kew_0.7.0.tgz";
-      path = fetchurl {
-        name = "kew___kew_0.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz";
-        sha1 = "79d93d2d33363d6fdd2970b335d9141ad591d79b";
-      };
-    }
-    {
       name = "keymaster___keymaster_1.6.2.tgz";
       path = fetchurl {
         name = "keymaster___keymaster_1.6.2.tgz";
@@ -6202,6 +6586,14 @@
       };
     }
     {
+      name = "khroma___khroma_1.1.0.tgz";
+      path = fetchurl {
+        name = "khroma___khroma_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/khroma/-/khroma-1.1.0.tgz";
+        sha1 = "cc17723eb719c5245ea66d23dd577d5695452db5";
+      };
+    }
+    {
       name = "kind_of___kind_of_3.2.2.tgz";
       path = fetchurl {
         name = "kind_of___kind_of_3.2.2.tgz";
@@ -6234,19 +6626,11 @@
       };
     }
     {
-      name = "klaw___klaw_1.3.1.tgz";
-      path = fetchurl {
-        name = "klaw___klaw_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz";
-        sha1 = "4088433b46b3b1ba259d78785d8e96f73ba02439";
-      };
-    }
-    {
-      name = "kuler___kuler_1.0.1.tgz";
+      name = "kuler___kuler_2.0.0.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";
       };
     }
     {
@@ -6258,14 +6642,6 @@
       };
     }
     {
-      name = "lazy_cache___lazy_cache_1.0.4.tgz";
-      path = fetchurl {
-        name = "lazy_cache___lazy_cache_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz";
-        sha1 = "a1d78fc3a50474cb80845d3b3b6e1da49a446e8e";
-      };
-    }
-    {
       name = "lazystream___lazystream_1.0.0.tgz";
       path = fetchurl {
         name = "lazystream___lazystream_1.0.0.tgz";
@@ -6274,14 +6650,6 @@
       };
     }
     {
-      name = "lcid___lcid_2.0.0.tgz";
-      path = fetchurl {
-        name = "lcid___lcid_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz";
-        sha1 = "6ef5d2df60e52f82eb228a4c373e8d1f397253cf";
-      };
-    }
-    {
       name = "ldap_filter___ldap_filter_0.2.2.tgz";
       path = fetchurl {
         name = "ldap_filter___ldap_filter_0.2.2.tgz";
@@ -6290,11 +6658,11 @@
       };
     }
     {
-      name = "ldapauth_fork___ldapauth_fork_4.3.1.tgz";
+      name = "ldapauth_fork___ldapauth_fork_4.3.3.tgz";
       path = fetchurl {
-        name = "ldapauth_fork___ldapauth_fork_4.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/ldapauth-fork/-/ldapauth-fork-4.3.1.tgz";
-        sha1 = "500c04f339257ac0e189af8752ec5df43982ceac";
+        name = "ldapauth_fork___ldapauth_fork_4.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/ldapauth-fork/-/ldapauth-fork-4.3.3.tgz";
+        sha1 = "d62c8f18a5035fd47a572f2ac7aa8c8227b3f4c2";
       };
     }
     {
@@ -6322,11 +6690,11 @@
       };
     }
     {
-      name = "less___less_3.11.1.tgz";
+      name = "less___less_3.13.1.tgz";
       path = fetchurl {
-        name = "less___less_3.11.1.tgz";
-        url  = "https://registry.yarnpkg.com/less/-/less-3.11.1.tgz";
-        sha1 = "c6bf08e39e02404fe6b307a3dfffafdc55bd36e2";
+        name = "less___less_3.13.1.tgz";
+        url  = "https://registry.yarnpkg.com/less/-/less-3.13.1.tgz";
+        sha1 = "0ebc91d2a0e9c0c6735b83d496b0ab0583077909";
       };
     }
     {
@@ -6338,6 +6706,22 @@
       };
     }
     {
+      name = "libnpmconfig___libnpmconfig_1.2.1.tgz";
+      path = fetchurl {
+        name = "libnpmconfig___libnpmconfig_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/libnpmconfig/-/libnpmconfig-1.2.1.tgz";
+        sha1 = "c0c2f793a74e67d4825e5039e7a02a0044dfcbc0";
+      };
+    }
+    {
+      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 = "linkify_it___linkify_it_2.2.0.tgz";
       path = fetchurl {
         name = "linkify_it___linkify_it_2.2.0.tgz";
@@ -6362,6 +6746,14 @@
       };
     }
     {
+      name = "load_plugin___load_plugin_3.0.0.tgz";
+      path = fetchurl {
+        name = "load_plugin___load_plugin_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/load-plugin/-/load-plugin-3.0.0.tgz";
+        sha1 = "8f3ce57cf4e5111639911012487bc1c2ba3d0e6c";
+      };
+    }
+    {
       name = "loader_runner___loader_runner_2.4.0.tgz";
       path = fetchurl {
         name = "loader_runner___loader_runner_2.4.0.tgz";
@@ -6370,11 +6762,19 @@
       };
     }
     {
-      name = "loader_utils___loader_utils_1.2.3.tgz";
+      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_1.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz";
-        sha1 = "1ff5dc6911c9f0a062531a4c04b609406108c2c7";
+        name = "loader_utils___loader_utils_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz";
+        sha1 = "e4cace5b816d425a166b5f097e10cd12b36064b0";
       };
     }
     {
@@ -6394,6 +6794,14 @@
       };
     }
     {
+      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.assignin___lodash.assignin_4.2.0.tgz";
       path = fetchurl {
         name = "lodash.assignin___lodash.assignin_4.2.0.tgz";
@@ -6418,6 +6826,14 @@
       };
     }
     {
+      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.filter___lodash.filter_4.6.0.tgz";
       path = fetchurl {
         name = "lodash.filter___lodash.filter_4.6.0.tgz";
@@ -6442,6 +6858,14 @@
       };
     }
     {
+      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.map___lodash.map_4.6.0.tgz";
       path = fetchurl {
         name = "lodash.map___lodash.map_4.6.0.tgz";
@@ -6506,6 +6930,14 @@
       };
     }
     {
+      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.uniq___lodash.uniq_4.5.0.tgz";
       path = fetchurl {
         name = "lodash.uniq___lodash.uniq_4.5.0.tgz";
@@ -6514,19 +6946,19 @@
       };
     }
     {
-      name = "lodash___lodash_4.17.15.tgz";
+      name = "lodash___lodash_4.17.20.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.20.tgz";
+        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz";
+        sha1 = "b44a9b6297bcb698f1c51a3545a2b3b368d59c52";
       };
     }
     {
-      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";
       };
     }
     {
@@ -6538,11 +6970,11 @@
       };
     }
     {
-      name = "longest___longest_1.0.1.tgz";
+      name = "longest_streak___longest_streak_2.0.4.tgz";
       path = fetchurl {
-        name = "longest___longest_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz";
-        sha1 = "30a0b2da38f73770e8294a0d22e6625ed77d0097";
+        name = "longest_streak___longest_streak_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz";
+        sha1 = "b8599957da5b5dab64dee3fe316fa774597d90e4";
       };
     }
     {
@@ -6562,6 +6994,14 @@
       };
     }
     {
+      name = "lower_case___lower_case_2.0.1.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 = "lru_cache___lru_cache_4.1.5.tgz";
       path = fetchurl {
         name = "lru_cache___lru_cache_4.1.5.tgz";
@@ -6578,6 +7018,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 = "lru_queue___lru_queue_0.1.0.tgz";
       path = fetchurl {
         name = "lru_queue___lru_queue_0.1.0.tgz";
@@ -6586,11 +7034,11 @@
       };
     }
     {
-      name = "lutim___lutim_1.0.2.tgz";
+      name = "lutim___lutim_1.0.3.tgz";
       path = fetchurl {
-        name = "lutim___lutim_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/lutim/-/lutim-1.0.2.tgz";
-        sha1 = "0b1e5a83c0c8d45900beb4eaf551e34f34f8a3e8";
+        name = "lutim___lutim_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/lutim/-/lutim-1.0.3.tgz";
+        sha1 = "3a29d0f2731eed7097f2d7367defeaa2ae45d820";
       };
     }
     {
@@ -6610,14 +7058,6 @@
         '';
   }
     {
-      name = "magic_string___magic_string_0.25.6.tgz";
-      path = fetchurl {
-        name = "magic_string___magic_string_0.25.6.tgz";
-        url  = "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.6.tgz";
-        sha1 = "5586387d1242f919c6d223579cc938bf1420795e";
-      };
-    }
-    {
       name = "make_dir___make_dir_1.3.0.tgz";
       path = fetchurl {
         name = "make_dir___make_dir_1.3.0.tgz";
@@ -6634,35 +7074,27 @@
       };
     }
     {
-      name = "make_plural___make_plural_4.3.0.tgz";
+      name = "make_dir___make_dir_3.1.0.tgz";
       path = fetchurl {
-        name = "make_plural___make_plural_4.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/make-plural/-/make-plural-4.3.0.tgz";
-        sha1 = "f23de08efdb0cac2e0c9ba9f315b0dff6b4c2735";
-      };
-    }
-    {
-      name = "make_plural___make_plural_6.0.1.tgz";
-      path = fetchurl {
-        name = "make_plural___make_plural_6.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/make-plural/-/make-plural-6.0.1.tgz";
-        sha1 = "ed3839fac3f469ebbe505751d48fe3319769edfc";
+        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";
+      name = "make_plural___make_plural_4.3.0.tgz";
       path = fetchurl {
-        name = "mamacro___mamacro_0.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz";
-        sha1 = "ad2c9576197c9f1abf308d0787865bd975a3f3e4";
+        name = "make_plural___make_plural_4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/make-plural/-/make-plural-4.3.0.tgz";
+        sha1 = "f23de08efdb0cac2e0c9ba9f315b0dff6b4c2735";
       };
     }
     {
-      name = "map_age_cleaner___map_age_cleaner_0.1.3.tgz";
+      name = "make_plural___make_plural_6.2.2.tgz";
       path = fetchurl {
-        name = "map_age_cleaner___map_age_cleaner_0.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz";
-        sha1 = "7d583a7306434c055fe474b0f45078e6e1b4b92a";
+        name = "make_plural___make_plural_6.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/make-plural/-/make-plural-6.2.2.tgz";
+        sha1 = "beb5fd751355e72660eeb2218bb98eec92853c6c";
       };
     }
     {
@@ -6682,11 +7114,27 @@
       };
     }
     {
-      name = "mariadb___mariadb_2.2.0.tgz";
+      name = "mariadb___mariadb_2.5.2.tgz";
       path = fetchurl {
-        name = "mariadb___mariadb_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/mariadb/-/mariadb-2.2.0.tgz";
-        sha1 = "077e8c44ded718f2ecebef321c3703fe8d524504";
+        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 = "markdown_extensions___markdown_extensions_1.1.1.tgz";
+      path = fetchurl {
+        name = "markdown_extensions___markdown_extensions_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/markdown-extensions/-/markdown-extensions-1.1.1.tgz";
+        sha1 = "fea03b539faeaee9b4ef02a3769b455b189f7fc3";
       };
     }
     {
@@ -6706,11 +7154,11 @@
       };
     }
     {
-      name = "markdown_it_deflist___markdown_it_deflist_2.0.3.tgz";
+      name = "markdown_it_deflist___markdown_it_deflist_2.1.0.tgz";
       path = fetchurl {
-        name = "markdown_it_deflist___markdown_it_deflist_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/markdown-it-deflist/-/markdown-it-deflist-2.0.3.tgz";
-        sha1 = "5727db04184d3cb2bc6ee4a9641e3a1091d5fd6f";
+        name = "markdown_it_deflist___markdown_it_deflist_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/markdown-it-deflist/-/markdown-it-deflist-2.1.0.tgz";
+        sha1 = "50d7a56b9544cd81252f7623bd785e28a8dcef5c";
       };
     }
     {
@@ -6794,19 +7242,19 @@
       };
     }
     {
-      name = "markdown_pdf___markdown_pdf_10.0.0.tgz";
+      name = "markdown_table___markdown_table_2.0.0.tgz";
       path = fetchurl {
-        name = "markdown_pdf___markdown_pdf_10.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/markdown-pdf/-/markdown-pdf-10.0.0.tgz";
-        sha1 = "0cf7a32740c2966aa79392a35742749d6ed2a491";
+        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 = "marked___marked_0.8.0.tgz";
+      name = "marked___marked_1.2.7.tgz";
       path = fetchurl {
-        name = "marked___marked_0.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/marked/-/marked-0.8.0.tgz";
-        sha1 = "ec5c0c9b93878dc52dd54be8d0e524097bd81a99";
+        name = "marked___marked_1.2.7.tgz";
+        url  = "https://registry.yarnpkg.com/marked/-/marked-1.2.7.tgz";
+        sha1 = "6e14b595581d2319cdcf033a24caaf41455a01fb";
       };
     }
     {
@@ -6826,11 +7274,11 @@
       };
     }
     {
-      name = "mathjax___mathjax_2.7.7.tgz";
+      name = "mathjax___mathjax_2.7.9.tgz";
       path = fetchurl {
-        name = "mathjax___mathjax_2.7.7.tgz";
-        url  = "https://registry.yarnpkg.com/mathjax/-/mathjax-2.7.7.tgz";
-        sha1 = "22ff89550a7b1f5f06a037d13da5ff3c33e11ec4";
+        name = "mathjax___mathjax_2.7.9.tgz";
+        url  = "https://registry.yarnpkg.com/mathjax/-/mathjax-2.7.9.tgz";
+        sha1 = "d6b67955c173e7d719fcb2fc0288662884eb7d3d";
       };
     }
     {
@@ -6858,6 +7306,46 @@
       };
     }
     {
+      name = "mdast_comment_marker___mdast_comment_marker_1.1.2.tgz";
+      path = fetchurl {
+        name = "mdast_comment_marker___mdast_comment_marker_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/mdast-comment-marker/-/mdast-comment-marker-1.1.2.tgz";
+        sha1 = "5ad2e42cfcc41b92a10c1421a98c288d7b447a6d";
+      };
+    }
+    {
+      name = "mdast_util_compact___mdast_util_compact_2.0.1.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_heading_style___mdast_util_heading_style_1.0.6.tgz";
+      path = fetchurl {
+        name = "mdast_util_heading_style___mdast_util_heading_style_1.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/mdast-util-heading-style/-/mdast-util-heading-style-1.0.6.tgz";
+        sha1 = "6410418926fd5673d40f519406b35d17da10e3c5";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz";
+        sha1 = "27055500103f51637bd07d01da01eb1967a43527";
+      };
+    }
+    {
+      name = "mdn_data___mdn_data_2.0.12.tgz";
+      path = fetchurl {
+        name = "mdn_data___mdn_data_2.0.12.tgz";
+        url  = "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.12.tgz";
+        sha1 = "bbb658d08b38f574bbb88f7b83703defdcc46844";
+      };
+    }
+    {
       name = "mdn_data___mdn_data_2.0.4.tgz";
       path = fetchurl {
         name = "mdn_data___mdn_data_2.0.4.tgz";
@@ -6882,14 +7370,6 @@
       };
     }
     {
-      name = "mem___mem_4.3.0.tgz";
-      path = fetchurl {
-        name = "mem___mem_4.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz";
-        sha1 = "461af497bc4ae09608cdb2e60eefb69bff744178";
-      };
-    }
-    {
       name = "memoizee___memoizee_0.4.14.tgz";
       path = fetchurl {
         name = "memoizee___memoizee_0.4.14.tgz";
@@ -6922,11 +7402,19 @@
       };
     }
     {
-      name = "mermaid___mermaid_8.4.7.tgz";
+      name = "merge2___merge2_1.4.1.tgz";
       path = fetchurl {
-        name = "mermaid___mermaid_8.4.7.tgz";
-        url  = "https://registry.yarnpkg.com/mermaid/-/mermaid-8.4.7.tgz";
-        sha1 = "1af8f6bece99f022a514471c42b80cabf7706501";
+        name = "merge2___merge2_1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz";
+        sha1 = "4368892f885e907455a6fd7dc55c0c9d404990ae";
+      };
+    }
+    {
+      name = "mermaid___mermaid_8.8.4.tgz";
+      path = fetchurl {
+        name = "mermaid___mermaid_8.8.4.tgz";
+        url  = "https://registry.yarnpkg.com/mermaid/-/mermaid-8.8.4.tgz";
+        sha1 = "5ea699bcfa1ef848d78b2ce8efb1e0118f30d9f7";
       };
     }
     {
@@ -6938,11 +7426,11 @@
       };
     }
     {
-      name = "messageformat_parser___messageformat_parser_4.1.2.tgz";
+      name = "messageformat_parser___messageformat_parser_4.1.3.tgz";
       path = fetchurl {
-        name = "messageformat_parser___messageformat_parser_4.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/messageformat-parser/-/messageformat-parser-4.1.2.tgz";
-        sha1 = "fd34ec39912a14868a1595eaeb742485ab8ab372";
+        name = "messageformat_parser___messageformat_parser_4.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/messageformat-parser/-/messageformat-parser-4.1.3.tgz";
+        sha1 = "b824787f57fcda7d50769f5b63e8d4fda68f5b9e";
       };
     }
     {
@@ -6958,9 +7446,9 @@
     path =
       let
         repo = fetchgit {
-          url = "https://github.com/codimd/meta-marked";
-          rev = "a7b45a287465f79656134ff7142d1d74c8fcacfd";
-          sha256 = "0cd3mxxgr3h49y6df5py8d36pyxv2j8kafxfw0npqhss9233f491";
+          url = "https://github.com/hedgedoc/meta-marked";
+          rev = "4fb5cb5a204969cc91e66eee92c0211188e69a2b";
+          sha256 = "05fi7p37zqqbrrk929pp6945prg4qb27q0rm81ginw3aqawps33c";
         };
       in
         runCommandNoCC "meta-marked" { buildInputs = [gnutar]; } ''
@@ -7002,6 +7490,14 @@
       };
     }
     {
+      name = "micromatch___micromatch_4.0.2.tgz";
+      path = fetchurl {
+        name = "micromatch___micromatch_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz";
+        sha1 = "4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259";
+      };
+    }
+    {
       name = "miller_rabin___miller_rabin_4.0.1.tgz";
       path = fetchurl {
         name = "miller_rabin___miller_rabin_4.0.1.tgz";
@@ -7010,19 +7506,27 @@
       };
     }
     {
-      name = "mime_db___mime_db_1.43.0.tgz";
+      name = "mime_db___mime_db_1.44.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.44.0.tgz";
+        url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz";
+        sha1 = "fa11c5eb0aca1334b4233cb4d52f10c5a6272f92";
       };
     }
     {
-      name = "mime_types___mime_types_2.1.26.tgz";
+      name = "mime_db___mime_db_1.45.0.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_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";
       };
     }
     {
@@ -7042,11 +7546,11 @@
       };
     }
     {
-      name = "mime___mime_2.4.4.tgz";
+      name = "mime___mime_2.4.6.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.4.6.tgz";
+        url  = "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz";
+        sha1 = "e5b407c90db442f2beb5b162373d07b69affa4d1";
       };
     }
     {
@@ -7058,19 +7562,11 @@
       };
     }
     {
-      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 = "mini_css_extract_plugin___mini_css_extract_plugin_0.8.2.tgz";
+      name = "mini_css_extract_plugin___mini_css_extract_plugin_0.12.0.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_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";
       };
     }
     {
@@ -7114,19 +7610,11 @@
       };
     }
     {
-      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_0.0.10.tgz";
-      path = fetchurl {
-        name = "minimist___minimist_0.0.10.tgz";
-        url  = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz";
-        sha1 = "de3f98543dbf96082be48ad1a0c7cda836301dcf";
+        name = "minimist___minimist_1.2.5.tgz";
+        url  = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz";
+        sha1 = "67d66014b66a6a8aaa0c083c5fd58df4e4e97602";
       };
     }
     {
@@ -7138,6 +7626,30 @@
       };
     }
     {
+      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_2.9.0.tgz";
       path = fetchurl {
         name = "minipass___minipass_2.9.0.tgz";
@@ -7146,6 +7658,14 @@
       };
     }
     {
+      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_1.3.3.tgz";
       path = fetchurl {
         name = "minizlib___minizlib_1.3.3.tgz";
@@ -7154,6 +7674,14 @@
       };
     }
     {
+      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";
@@ -7178,6 +7706,22 @@
       };
     }
     {
+      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 = "mocha___mocha_5.2.0.tgz";
       path = fetchurl {
         name = "mocha___mocha_5.2.0.tgz";
@@ -7202,27 +7746,27 @@
       };
     }
     {
-      name = "moment_timezone___moment_timezone_0.5.27.tgz";
+      name = "moment_timezone___moment_timezone_0.5.32.tgz";
       path = fetchurl {
-        name = "moment_timezone___moment_timezone_0.5.27.tgz";
-        url  = "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.27.tgz";
-        sha1 = "73adec8139b6fe30452e78f210f27b1f346b8877";
+        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___moment_2.24.0.tgz";
+      name = "moment___moment_2.29.1.tgz";
       path = fetchurl {
-        name = "moment___moment_2.24.0.tgz";
-        url  = "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz";
-        sha1 = "0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b";
+        name = "moment___moment_2.29.1.tgz";
+        url  = "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz";
+        sha1 = "b2be769fa31940be9eeea6469c075e35006fa3d3";
       };
     }
     {
-      name = "morgan___morgan_1.9.1.tgz";
+      name = "morgan___morgan_1.10.0.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";
       };
     }
     {
@@ -7258,11 +7802,11 @@
       };
     }
     {
-      name = "mustache___mustache_4.0.0.tgz";
+      name = "mustache___mustache_4.0.1.tgz";
       path = fetchurl {
-        name = "mustache___mustache_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/mustache/-/mustache-4.0.0.tgz";
-        sha1 = "7f02465dbb5b435859d154831c032acdfbbefb31";
+        name = "mustache___mustache_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/mustache/-/mustache-4.0.1.tgz";
+        sha1 = "d99beb031701ad433338e7ea65e0489416c854a2";
       };
     }
     {
@@ -7282,11 +7826,11 @@
       };
     }
     {
-      name = "mysql2___mysql2_2.1.0.tgz";
+      name = "mysql2___mysql2_2.2.5.tgz";
       path = fetchurl {
-        name = "mysql2___mysql2_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/mysql2/-/mysql2-2.1.0.tgz";
-        sha1 = "55ecfd4353114c148cc4c253192dbbfd000e6642";
+        name = "mysql2___mysql2_2.2.5.tgz";
+        url  = "https://registry.yarnpkg.com/mysql2/-/mysql2-2.2.5.tgz";
+        sha1 = "72624ffb4816f80f96b9c97fedd8c00935f9f340";
       };
     }
     {
@@ -7298,11 +7842,19 @@
       };
     }
     {
-      name = "nan___nan_2.14.0.tgz";
+      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_2.1.11.tgz";
       path = fetchurl {
-        name = "nan___nan_2.14.0.tgz";
-        url  = "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz";
-        sha1 = "7818f722027b2459a86f0295d434d1fc2336c52c";
+        name = "nanoid___nanoid_2.1.11.tgz";
+        url  = "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz";
+        sha1 = "ec24b8a758d591561531b4176a01e3ab4f0f0280";
       };
     }
     {
@@ -7322,6 +7874,14 @@
       };
     }
     {
+      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";
@@ -7338,11 +7898,11 @@
       };
     }
     {
-      name = "needle___needle_2.3.2.tgz";
+      name = "needle___needle_2.5.2.tgz";
       path = fetchurl {
-        name = "needle___needle_2.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/needle/-/needle-2.3.2.tgz";
-        sha1 = "3342dea100b7160960a450dc8c22160ac712a528";
+        name = "needle___needle_2.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/needle/-/needle-2.5.2.tgz";
+        sha1 = "cf1a8fce382b5a280108bba90a14993c00e4010a";
       };
     }
     {
@@ -7354,11 +7914,11 @@
       };
     }
     {
-      name = "neo_async___neo_async_2.6.1.tgz";
+      name = "neo_async___neo_async_2.6.2.tgz";
       path = fetchurl {
-        name = "neo_async___neo_async_2.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz";
-        sha1 = "ac27ada66167fa8849a6addd837f6b189ad2081c";
+        name = "neo_async___neo_async_2.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz";
+        sha1 = "b4aafb93e3aeb2d8174ca53cf163ab7d7308305f";
       };
     }
     {
@@ -7394,6 +7954,14 @@
       };
     }
     {
+      name = "no_case___no_case_3.0.3.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 = "nocache___nocache_2.1.0.tgz";
       path = fetchurl {
         name = "nocache___nocache_2.1.0.tgz";
@@ -7402,19 +7970,19 @@
       };
     }
     {
-      name = "node_forge___node_forge_0.7.6.tgz";
+      name = "node_forge___node_forge_0.10.0.tgz";
       path = fetchurl {
-        name = "node_forge___node_forge_0.7.6.tgz";
-        url  = "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.6.tgz";
-        sha1 = "fdf3b418aee1f94f0ef642cd63486c77ca9724ac";
+        name = "node_forge___node_forge_0.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz";
+        sha1 = "32dea2afb3e9926f02ee5ce8794902691a676bf3";
       };
     }
     {
-      name = "node_gyp_build___node_gyp_build_3.7.0.tgz";
+      name = "node_gyp_build___node_gyp_build_4.2.3.tgz";
       path = fetchurl {
-        name = "node_gyp_build___node_gyp_build_3.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-3.7.0.tgz";
-        sha1 = "daa77a4f547b9aed3e2aac779eaf151afd60ec8d";
+        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";
       };
     }
     {
@@ -7426,14 +7994,6 @@
       };
     }
     {
-      name = "node_pre_gyp___node_pre_gyp_0.14.0.tgz";
-      path = fetchurl {
-        name = "node_pre_gyp___node_pre_gyp_0.14.0.tgz";
-        url  = "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz";
-        sha1 = "9a0596533b877289bcad4e143982ca3d904ddc83";
-      };
-    }
-    {
       name = "node_pre_gyp___node_pre_gyp_0.11.0.tgz";
       path = fetchurl {
         name = "node_pre_gyp___node_pre_gyp_0.11.0.tgz";
@@ -7442,19 +8002,11 @@
       };
     }
     {
-      name = "node_releases___node_releases_1.1.49.tgz";
-      path = fetchurl {
-        name = "node_releases___node_releases_1.1.49.tgz";
-        url  = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.49.tgz";
-        sha1 = "67ba5a3fac2319262675ef864ed56798bb33b93e";
-      };
-    }
-    {
-      name = "node_static___node_static_0.7.11.tgz";
+      name = "node_releases___node_releases_1.1.66.tgz";
       path = fetchurl {
-        name = "node_static___node_static_0.7.11.tgz";
-        url  = "https://registry.yarnpkg.com/node-static/-/node-static-0.7.11.tgz";
-        sha1 = "60120d349f3cef533e4e820670057eb631882e7f";
+        name = "node_releases___node_releases_1.1.66.tgz";
+        url  = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.66.tgz";
+        sha1 = "609bd0dc069381015cd982300bae51ab4f1b1814";
       };
     }
     {
@@ -7466,11 +8018,19 @@
       };
     }
     {
-      name = "nopt___nopt_4.0.1.tgz";
+      name = "nopt___nopt_4.0.3.tgz";
       path = fetchurl {
-        name = "nopt___nopt_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz";
-        sha1 = "d0d4685afd5415193c8c7505602d0d17cd64474d";
+        name = "nopt___nopt_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz";
+        sha1 = "a375cad9d02fd921278d954c2254d5aa57e15e48";
+      };
+    }
+    {
+      name = "nopt___nopt_5.0.0.tgz";
+      path = fetchurl {
+        name = "nopt___nopt_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz";
+        sha1 = "530942bb58a512fccafe53fe210f13a25355dc88";
       };
     }
     {
@@ -7538,14 +8098,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 = "npmlog___npmlog_4.1.2.tgz";
       path = fetchurl {
         name = "npmlog___npmlog_4.1.2.tgz";
@@ -7626,19 +8178,19 @@
       };
     }
     {
-      name = "object_inspect___object_inspect_1.7.0.tgz";
+      name = "object_inspect___object_inspect_1.8.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_inspect___object_inspect_1.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz";
+        sha1 = "df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0";
       };
     }
     {
-      name = "object_is___object_is_1.0.2.tgz";
+      name = "object_is___object_is_1.1.3.tgz";
       path = fetchurl {
-        name = "object_is___object_is_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/object-is/-/object-is-1.0.2.tgz";
-        sha1 = "6b80eb84fe451498f65007982f035a5b445edec4";
+        name = "object_is___object_is_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/object-is/-/object-is-1.1.3.tgz";
+        sha1 = "2e3b9e65560137455ee3bd62aec4d90a2ea1cc81";
       };
     }
     {
@@ -7658,11 +8210,11 @@
       };
     }
     {
-      name = "object.assign___object.assign_4.1.0.tgz";
+      name = "object.assign___object.assign_4.1.2.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.assign___object.assign_4.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz";
+        sha1 = "0ed54a342eceb37b38ff76eb831a0e788cb63940";
       };
     }
     {
@@ -7722,11 +8274,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";
       };
     }
     {
@@ -7738,27 +8290,19 @@
       };
     }
     {
-      name = "openid___openid_2.0.6.tgz";
+      name = "openid___openid_2.0.7.tgz";
       path = fetchurl {
-        name = "openid___openid_2.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/openid/-/openid-2.0.6.tgz";
-        sha1 = "707375e59ab9f73025899727679b20328171c9aa";
+        name = "openid___openid_2.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/openid/-/openid-2.0.7.tgz";
+        sha1 = "37bf50af2aa692623364c004de35d41fd399c6e4";
       };
     }
     {
-      name = "optimist___optimist_0.6.1.tgz";
+      name = "optimize_css_assets_webpack_plugin___optimize_css_assets_webpack_plugin_5.0.4.tgz";
       path = fetchurl {
-        name = "optimist___optimist_0.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz";
-        sha1 = "da3ea74686fa21a19a111c326e90eb15a0196686";
-      };
-    }
-    {
-      name = "optimize_css_assets_webpack_plugin___optimize_css_assets_webpack_plugin_5.0.3.tgz";
-      path = fetchurl {
-        name = "optimize_css_assets_webpack_plugin___optimize_css_assets_webpack_plugin_5.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz";
-        sha1 = "e2f1d4d94ad8c0af8967ebd7cf138dcb1ef14572";
+        name = "optimize_css_assets_webpack_plugin___optimize_css_assets_webpack_plugin_5.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz";
+        sha1 = "85883c6528aaa02e30bbad9908c92926bb52dc90";
       };
     }
     {
@@ -7786,22 +8330,6 @@
       };
     }
     {
-      name = "os_homedir___os_homedir_2.0.0.tgz";
-      path = fetchurl {
-        name = "os_homedir___os_homedir_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/os-homedir/-/os-homedir-2.0.0.tgz";
-        sha1 = "a0c76bb001a8392a503cbd46e7e650b3423a923c";
-      };
-    }
-    {
-      name = "os_locale___os_locale_3.1.0.tgz";
-      path = fetchurl {
-        name = "os_locale___os_locale_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz";
-        sha1 = "a802a6ee17f24c10483ab9935719cef4ed16bf1a";
-      };
-    }
-    {
       name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
       path = fetchurl {
         name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
@@ -7826,30 +8354,6 @@
       };
     }
     {
-      name = "p_defer___p_defer_1.0.0.tgz";
-      path = fetchurl {
-        name = "p_defer___p_defer_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz";
-        sha1 = "9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c";
-      };
-    }
-    {
-      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_is_promise___p_is_promise_2.1.0.tgz";
-      path = fetchurl {
-        name = "p_is_promise___p_is_promise_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz";
-        sha1 = "918cebaea248a62cf7ffab8e3bca8c5f882fc42e";
-      };
-    }
-    {
       name = "p_limit___p_limit_1.3.0.tgz";
       path = fetchurl {
         name = "p_limit___p_limit_1.3.0.tgz";
@@ -7858,11 +8362,19 @@
       };
     }
     {
-      name = "p_limit___p_limit_2.2.2.tgz";
+      name = "p_limit___p_limit_2.3.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_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.0.2.tgz";
+      path = fetchurl {
+        name = "p_limit___p_limit_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/p-limit/-/p-limit-3.0.2.tgz";
+        sha1 = "1664e010af3cadc681baafd3e2a437be7b0fb5fe";
       };
     }
     {
@@ -7882,6 +8394,22 @@
       };
     }
     {
+      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";
@@ -7930,6 +8458,14 @@
       };
     }
     {
+      name = "param_case___param_case_3.0.3.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 = "parent_module___parent_module_1.0.1.tgz";
       path = fetchurl {
         name = "parent_module___parent_module_1.0.1.tgz";
@@ -7938,11 +8474,19 @@
       };
     }
     {
-      name = "parse_asn1___parse_asn1_5.1.5.tgz";
+      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_asn1___parse_asn1_5.1.5.tgz";
-        url  = "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz";
-        sha1 = "003271343da58dc94cace494faef3d2147ecea0e";
+        name = "parse_entities___parse_entities_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz";
+        sha1 = "53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8";
       };
     }
     {
@@ -7970,6 +8514,14 @@
       };
     }
     {
+      name = "parse_json___parse_json_5.1.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_passwd___parse_passwd_1.0.0.tgz";
       path = fetchurl {
         name = "parse_passwd___parse_passwd_1.0.0.tgz";
@@ -7994,6 +8546,14 @@
       };
     }
     {
+      name = "parseqs___parseqs_0.0.6.tgz";
+      path = fetchurl {
+        name = "parseqs___parseqs_0.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.6.tgz";
+        sha1 = "8e4bb5a19d1cdc844a08ac974d34e273afa670d5";
+      };
+    }
+    {
       name = "parseuri___parseuri_0.0.5.tgz";
       path = fetchurl {
         name = "parseuri___parseuri_0.0.5.tgz";
@@ -8002,6 +8562,14 @@
       };
     }
     {
+      name = "parseuri___parseuri_0.0.6.tgz";
+      path = fetchurl {
+        name = "parseuri___parseuri_0.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz";
+        sha1 = "e1496e829e3ac2ff47f39a4dd044b32823c4a25a";
+      };
+    }
+    {
       name = "parseurl___parseurl_1.3.3.tgz";
       path = fetchurl {
         name = "parseurl___parseurl_1.3.3.tgz";
@@ -8010,6 +8578,14 @@
       };
     }
     {
+      name = "pascal_case___pascal_case_3.1.1.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 = "pascalcase___pascalcase_0.1.1.tgz";
       path = fetchurl {
         name = "pascalcase___pascalcase_0.1.1.tgz";
@@ -8058,11 +8634,11 @@
       };
     }
     {
-      name = "passport_ldapauth___passport_ldapauth_2.1.3.tgz";
+      name = "passport_ldapauth___passport_ldapauth_2.1.4.tgz";
       path = fetchurl {
-        name = "passport_ldapauth___passport_ldapauth_2.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/passport-ldapauth/-/passport-ldapauth-2.1.3.tgz";
-        sha1 = "833530c31c1e2f8d2ab7a1ff97339291074dc6f6";
+        name = "passport_ldapauth___passport_ldapauth_2.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/passport-ldapauth/-/passport-ldapauth-2.1.4.tgz";
+        sha1 = "2259e4e5d2d9c2b3d50a04f6640a941effda8da9";
       };
     }
     {
@@ -8098,11 +8674,11 @@
       };
     }
     {
-      name = "passport_saml___passport_saml_1.3.2.tgz";
+      name = "passport_saml___passport_saml_1.5.0.tgz";
       path = fetchurl {
-        name = "passport_saml___passport_saml_1.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/passport-saml/-/passport-saml-1.3.2.tgz";
-        sha1 = "6cd7e747d7fd0283877d9f48b84c55908ab4182b";
+        name = "passport_saml___passport_saml_1.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/passport-saml/-/passport-saml-1.5.0.tgz";
+        sha1 = "4f22526b577987fb2304219c29e05d2172fca5cf";
       };
     }
     {
@@ -8162,6 +8738,14 @@
       };
     }
     {
+      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";
@@ -8210,11 +8794,11 @@
       };
     }
     {
-      name = "path_type___path_type_3.0.0.tgz";
+      name = "path_type___path_type_4.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";
+        url  = "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz";
+        sha1 = "84ed01c0a7ba380afe09d90a8c180dcd9d03043b";
       };
     }
     {
@@ -8226,27 +8810,27 @@
       };
     }
     {
-      name = "pbkdf2___pbkdf2_3.0.17.tgz";
+      name = "pbkdf2___pbkdf2_3.1.1.tgz";
       path = fetchurl {
-        name = "pbkdf2___pbkdf2_3.0.17.tgz";
-        url  = "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz";
-        sha1 = "976c206530617b14ebb32114239f7b09336e93a6";
+        name = "pbkdf2___pbkdf2_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz";
+        sha1 = "cb8724b0fada984596856d1a6ebafd3584654b94";
       };
     }
     {
-      name = "pdfobject___pdfobject_2.1.1.tgz";
+      name = "pdfobject___pdfobject_2.2.4.tgz";
       path = fetchurl {
-        name = "pdfobject___pdfobject_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/pdfobject/-/pdfobject-2.1.1.tgz";
-        sha1 = "2949d4d218d130d16b6149c7f7226f0a73400d4a";
+        name = "pdfobject___pdfobject_2.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/pdfobject/-/pdfobject-2.2.4.tgz";
+        sha1 = "ccb3c191129298a471e9ccb59c88a3ee0b7c7530";
       };
     }
     {
-      name = "pend___pend_1.2.0.tgz";
+      name = "peek_readable___peek_readable_3.1.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 = "peek_readable___peek_readable_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/peek-readable/-/peek-readable-3.1.0.tgz";
+        sha1 = "250b08b7de09db8573d7fd8ea475215bbff14348";
       };
     }
     {
@@ -8258,11 +8842,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";
       };
     }
     {
@@ -8282,19 +8866,19 @@
       };
     }
     {
-      name = "pg_packet_stream___pg_packet_stream_1.1.0.tgz";
+      name = "pg_pool___pg_pool_3.2.2.tgz";
       path = fetchurl {
-        name = "pg_packet_stream___pg_packet_stream_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/pg-packet-stream/-/pg-packet-stream-1.1.0.tgz";
-        sha1 = "e45c3ae678b901a2873af1e17b92d787962ef914";
+        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_2.0.10.tgz";
+      name = "pg_protocol___pg_protocol_1.4.0.tgz";
       path = fetchurl {
-        name = "pg_pool___pg_pool_2.0.10.tgz";
-        url  = "https://registry.yarnpkg.com/pg-pool/-/pg-pool-2.0.10.tgz";
-        sha1 = "842ee23b04e86824ce9d786430f8365082d81c4a";
+        name = "pg_protocol___pg_protocol_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.4.0.tgz";
+        sha1 = "43a71a92f6fe3ac559952555aa3335c8cb4908be";
       };
     }
     {
@@ -8306,27 +8890,27 @@
       };
     }
     {
-      name = "pg___pg_7.18.1.tgz";
+      name = "pg___pg_8.5.1.tgz";
       path = fetchurl {
-        name = "pg___pg_7.18.1.tgz";
-        url  = "https://registry.yarnpkg.com/pg/-/pg-7.18.1.tgz";
-        sha1 = "67f59c47a99456fcb34f9fe53662b79d4a992f6d";
+        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";
       };
     }
     {
-      name = "phantomjs_prebuilt___phantomjs_prebuilt_2.1.16.tgz";
+      name = "picomatch___picomatch_2.2.2.tgz";
       path = fetchurl {
-        name = "phantomjs_prebuilt___phantomjs_prebuilt_2.1.16.tgz";
-        url  = "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz";
-        sha1 = "efd212a4a3966d3647684ea8ba788549be2aefef";
+        name = "picomatch___picomatch_2.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz";
+        sha1 = "21f333e9b6b8eaff02468f5146ea406d345f4dad";
       };
     }
     {
@@ -8354,22 +8938,6 @@
       };
     }
     {
-      name = "pinkie_promise___pinkie_promise_2.0.1.tgz";
-      path = fetchurl {
-        name = "pinkie_promise___pinkie_promise_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz";
-        sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa";
-      };
-    }
-    {
-      name = "pinkie___pinkie_2.0.4.tgz";
-      path = fetchurl {
-        name = "pinkie___pinkie_2.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz";
-        sha1 = "72556b80cfa0d48a974e80e77248e80ed4f7f870";
-      };
-    }
-    {
       name = "pkg_dir___pkg_dir_2.0.0.tgz";
       path = fetchurl {
         name = "pkg_dir___pkg_dir_2.0.0.tgz";
@@ -8386,6 +8954,14 @@
       };
     }
     {
+      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 = "pkginfo___pkginfo_0.2.3.tgz";
       path = fetchurl {
         name = "pkginfo___pkginfo_0.2.3.tgz";
@@ -8394,6 +8970,22 @@
       };
     }
     {
+      name = "please_upgrade_node___please_upgrade_node_3.2.0.tgz";
+      path = fetchurl {
+        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";
+      };
+    }
+    {
+      name = "pluralize___pluralize_8.0.0.tgz";
+      path = fetchurl {
+        name = "pluralize___pluralize_8.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz";
+        sha1 = "1a6fa16a38d12a1901e0320fa017051c539ce3b1";
+      };
+    }
+    {
       name = "pn___pn_1.1.0.tgz";
       path = fetchurl {
         name = "pn___pn_1.1.0.tgz";
@@ -8418,11 +9010,11 @@
       };
     }
     {
-      name = "postcss_calc___postcss_calc_7.0.1.tgz";
+      name = "postcss_calc___postcss_calc_7.0.5.tgz";
       path = fetchurl {
-        name = "postcss_calc___postcss_calc_7.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz";
-        sha1 = "36d77bab023b0ecbb9789d84dcb23c4941145436";
+        name = "postcss_calc___postcss_calc_7.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz";
+        sha1 = "f8a6e99f12e619c2ebc23cf6c486fdc15860933e";
       };
     }
     {
@@ -8530,19 +9122,19 @@
       };
     }
     {
-      name = "postcss_modules_local_by_default___postcss_modules_local_by_default_3.0.2.tgz";
+      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.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz";
-        sha1 = "e8a6561be914aaf3c052876377524ca90dbb7915";
+        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.1.1.tgz";
+      name = "postcss_modules_scope___postcss_modules_scope_2.2.0.tgz";
       path = fetchurl {
-        name = "postcss_modules_scope___postcss_modules_scope_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.1.1.tgz";
-        sha1 = "33d4fc946602eb5e9355c4165d68a10727689dba";
+        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";
       };
     }
     {
@@ -8658,19 +9250,11 @@
       };
     }
     {
-      name = "postcss_selector_parser___postcss_selector_parser_5.0.0.tgz";
+      name = "postcss_selector_parser___postcss_selector_parser_6.0.4.tgz";
       path = fetchurl {
-        name = "postcss_selector_parser___postcss_selector_parser_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz";
-        sha1 = "249044356697b33b64f1a8f7c80922dddee7195c";
-      };
-    }
-    {
-      name = "postcss_selector_parser___postcss_selector_parser_6.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_selector_parser___postcss_selector_parser_6.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz";
-        sha1 = "934cf799d016c83411859e09dcecade01286ec5c";
+        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";
       };
     }
     {
@@ -8698,19 +9282,19 @@
       };
     }
     {
-      name = "postcss_value_parser___postcss_value_parser_4.0.2.tgz";
+      name = "postcss_value_parser___postcss_value_parser_4.1.0.tgz";
       path = fetchurl {
-        name = "postcss_value_parser___postcss_value_parser_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz";
-        sha1 = "482282c09a42706d1fc9a069b73f44ec08391dc9";
+        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_7.0.26.tgz";
+      name = "postcss___postcss_7.0.35.tgz";
       path = fetchurl {
-        name = "postcss___postcss_7.0.26.tgz";
-        url  = "https://registry.yarnpkg.com/postcss/-/postcss-7.0.26.tgz";
-        sha1 = "5ed615cfcab35ba9bbb82414a4fa88ea10429587";
+        name = "postcss___postcss_7.0.35.tgz";
+        url  = "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz";
+        sha1 = "d2be00b998f7f211d8a276974079f2e92b970e24";
       };
     }
     {
@@ -8730,11 +9314,11 @@
       };
     }
     {
-      name = "postgres_date___postgres_date_1.0.4.tgz";
+      name = "postgres_date___postgres_date_1.0.7.tgz";
       path = fetchurl {
-        name = "postgres_date___postgres_date_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.4.tgz";
-        sha1 = "1c2728d62ef1bff49abdd35c1f86d4bdf118a728";
+        name = "postgres_date___postgres_date_1.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz";
+        sha1 = "51bc086006005e5061c591cee727f2531bf641a8";
       };
     }
     {
@@ -8778,19 +9362,27 @@
       };
     }
     {
-      name = "pretty_error___pretty_error_2.1.1.tgz";
+      name = "pretty_error___pretty_error_2.1.2.tgz";
+      path = fetchurl {
+        name = "pretty_error___pretty_error_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz";
+        sha1 = "be89f82d81b1c86ec8fdfbc385045882727f93b6";
+      };
+    }
+    {
+      name = "printj___printj_1.1.2.tgz";
       path = fetchurl {
-        name = "pretty_error___pretty_error_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz";
-        sha1 = "5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3";
+        name = "printj___printj_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz";
+        sha1 = "d90deb2975a8b9f600fb3a1c94e3f4c53c78a222";
       };
     }
     {
-      name = "prismjs___prismjs_1.19.0.tgz";
+      name = "prismjs___prismjs_1.22.0.tgz";
       path = fetchurl {
-        name = "prismjs___prismjs_1.19.0.tgz";
-        url  = "https://registry.yarnpkg.com/prismjs/-/prismjs-1.19.0.tgz";
-        sha1 = "713afbd45c3baca4b321569f2df39e17e729d4dc";
+        name = "prismjs___prismjs_1.22.0.tgz";
+        url  = "https://registry.yarnpkg.com/prismjs/-/prismjs-1.22.0.tgz";
+        sha1 = "73c3400afc58a823dd7eed023f8e1ce9fd8977fa";
       };
     }
     {
@@ -8826,14 +9418,6 @@
       };
     }
     {
-      name = "progress___progress_1.1.8.tgz";
-      path = fetchurl {
-        name = "progress___progress_1.1.8.tgz";
-        url  = "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz";
-        sha1 = "e260c78f6161cdd9b0e56cc3e0a85de17c7a57be";
-      };
-    }
-    {
       name = "progress___progress_2.0.3.tgz";
       path = fetchurl {
         name = "progress___progress_2.0.3.tgz";
@@ -8850,14 +9434,6 @@
       };
     }
     {
-      name = "promise___promise_7.3.1.tgz";
-      path = fetchurl {
-        name = "promise___promise_7.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz";
-        sha1 = "064b72602b18f90f29192b8b1bc418ffd1ebd3bf";
-      };
-    }
-    {
       name = "proto_list___proto_list_1.2.4.tgz";
       path = fetchurl {
         name = "proto_list___proto_list_1.2.4.tgz";
@@ -8866,11 +9442,11 @@
       };
     }
     {
-      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";
       };
     }
     {
@@ -8890,11 +9466,11 @@
       };
     }
     {
-      name = "psl___psl_1.7.0.tgz";
+      name = "psl___psl_1.8.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 = "psl___psl_1.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz";
+        sha1 = "9326f8bcfb013adcc005fdff056acce020e51c24";
       };
     }
     {
@@ -9042,11 +9618,11 @@
       };
     }
     {
-      name = "randomcolor___randomcolor_0.5.4.tgz";
+      name = "randomcolor___randomcolor_0.6.2.tgz";
       path = fetchurl {
-        name = "randomcolor___randomcolor_0.5.4.tgz";
-        url  = "https://registry.yarnpkg.com/randomcolor/-/randomcolor-0.5.4.tgz";
-        sha1 = "df615b13f25b89ea58c5f8f72647f0a6f07adcc3";
+        name = "randomcolor___randomcolor_0.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/randomcolor/-/randomcolor-0.6.2.tgz";
+        sha1 = "7a57362ae1a1278439aeed2c15e5deb8ea33f56d";
       };
     }
     {
@@ -9066,14 +9642,6 @@
       };
     }
     {
-      name = "raphael___raphael_2.2.8.tgz";
-      path = fetchurl {
-        name = "raphael___raphael_2.2.8.tgz";
-        url  = "https://registry.yarnpkg.com/raphael/-/raphael-2.2.8.tgz";
-        sha1 = "4b18443c2c6030c3b492d8d11fbbca14ebe4d3f3";
-      };
-    }
-    {
       name = "raphael___raphael_2.3.0.tgz";
       path = fetchurl {
         name = "raphael___raphael_2.3.0.tgz";
@@ -9082,22 +9650,6 @@
       };
     }
     {
-    name = "raphael";
-    path =
-      let
-        repo = fetchgit {
-          url = "https://github.com/dmitrybaranovskiy/raphael";
-          rev = "d8fbe4be81d362837f95e33886b80fb41de443b4";
-          sha256 = "1g2jif250j3szn75fivns8d66m9s7msivhdh4jqbbmy8mvv8xzn9";
-        };
-      in
-        runCommandNoCC "raphael" { 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 = "raw_body___raw_body_2.4.0.tgz";
       path = fetchurl {
         name = "raw_body___raw_body_2.4.0.tgz";
@@ -9154,14 +9706,6 @@
       };
     }
     {
-      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 = "readable_stream___readable_stream_1.0.34.tgz";
       path = fetchurl {
         name = "readable_stream___readable_stream_1.0.34.tgz";
@@ -9170,6 +9714,14 @@
       };
     }
     {
+      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 = "readable_stream___readable_stream_2.0.6.tgz";
       path = fetchurl {
         name = "readable_stream___readable_stream_2.0.6.tgz";
@@ -9178,6 +9730,22 @@
       };
     }
     {
+      name = "readable_web_to_node_stream___readable_web_to_node_stream_3.0.0.tgz";
+      path = fetchurl {
+        name = "readable_web_to_node_stream___readable_web_to_node_stream_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.0.tgz";
+        sha1 = "4ca5408e70471069119d691934141a52de413955";
+      };
+    }
+    {
+      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";
@@ -9186,19 +9754,19 @@
       };
     }
     {
-      name = "readline_sync___readline_sync_1.4.10.tgz";
+      name = "readdirp___readdirp_3.5.0.tgz";
       path = fetchurl {
-        name = "readline_sync___readline_sync_1.4.10.tgz";
-        url  = "https://registry.yarnpkg.com/readline-sync/-/readline-sync-1.4.10.tgz";
-        sha1 = "41df7fbb4b6312d673011594145705bf56d8873b";
+        name = "readdirp___readdirp_3.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz";
+        sha1 = "9ba74c019b15d365278d2e91bb8c48d7b4d42c9e";
       };
     }
     {
-      name = "redeyed___redeyed_2.1.1.tgz";
+      name = "readline_sync___readline_sync_1.4.10.tgz";
       path = fetchurl {
-        name = "redeyed___redeyed_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/redeyed/-/redeyed-2.1.1.tgz";
-        sha1 = "8984b5815d99cb220469c99eeeffe38913e6cc0b";
+        name = "readline_sync___readline_sync_1.4.10.tgz";
+        url  = "https://registry.yarnpkg.com/readline-sync/-/readline-sync-1.4.10.tgz";
+        sha1 = "41df7fbb4b6312d673011594145705bf56d8873b";
       };
     }
     {
@@ -9218,19 +9786,11 @@
       };
     }
     {
-      name = "regenerate_unicode_properties___regenerate_unicode_properties_8.1.0.tgz";
+      name = "regenerate___regenerate_1.4.2.tgz";
       path = fetchurl {
-        name = "regenerate_unicode_properties___regenerate_unicode_properties_8.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz";
-        sha1 = "ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e";
-      };
-    }
-    {
-      name = "regenerate___regenerate_1.4.0.tgz";
-      path = fetchurl {
-        name = "regenerate___regenerate_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz";
-        sha1 = "4a856ec4b56e4077c557589cae85e7a4c8869a11";
+        name = "regenerate___regenerate_1.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz";
+        sha1 = "b9346d8827e8f5a32f7ba29637d398b69014848a";
       };
     }
     {
@@ -9298,14 +9858,6 @@
       };
     }
     {
-      name = "regexpu_core___regexpu_core_4.6.0.tgz";
-      path = fetchurl {
-        name = "regexpu_core___regexpu_core_4.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz";
-        sha1 = "2037c18b327cfce8a6fea2a4ec441f2432afb8b6";
-      };
-    }
-    {
       name = "regjsgen___regjsgen_0.2.0.tgz";
       path = fetchurl {
         name = "regjsgen___regjsgen_0.2.0.tgz";
@@ -9314,14 +9866,6 @@
       };
     }
     {
-      name = "regjsgen___regjsgen_0.5.1.tgz";
-      path = fetchurl {
-        name = "regjsgen___regjsgen_0.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz";
-        sha1 = "48f0bf1a5ea205196929c0d9798b42d1ed98443c";
-      };
-    }
-    {
       name = "regjsparser___regjsparser_0.1.5.tgz";
       path = fetchurl {
         name = "regjsparser___regjsparser_0.1.5.tgz";
@@ -9330,14 +9874,6 @@
       };
     }
     {
-      name = "regjsparser___regjsparser_0.6.3.tgz";
-      path = fetchurl {
-        name = "regjsparser___regjsparser_0.6.3.tgz";
-        url  = "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.3.tgz";
-        sha1 = "74192c5805d35e9f5ebe3c1fb5b40d40a8a38460";
-      };
-    }
-    {
       name = "relateurl___relateurl_0.2.7.tgz";
       path = fetchurl {
         name = "relateurl___relateurl_0.2.7.tgz";
@@ -9346,11 +9882,411 @@
       };
     }
     {
-      name = "remarkable___remarkable_2.0.0.tgz";
+      name = "remark_cli___remark_cli_8.0.1.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_lint_blockquote_indentation___remark_lint_blockquote_indentation_2.0.1.tgz";
+      path = fetchurl {
+        name = "remark_lint_blockquote_indentation___remark_lint_blockquote_indentation_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-2.0.1.tgz";
+        sha1 = "27347959acf42a6c3e401488d8210e973576b254";
+      };
+    }
+    {
+      name = "remark_lint_code_block_style___remark_lint_code_block_style_2.0.1.tgz";
+      path = fetchurl {
+        name = "remark_lint_code_block_style___remark_lint_code_block_style_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-code-block-style/-/remark-lint-code-block-style-2.0.1.tgz";
+        sha1 = "448b0f2660acfcdfff2138d125ff5b1c1279c0cb";
+      };
+    }
+    {
+      name = "remark_lint_definition_case___remark_lint_definition_case_2.0.1.tgz";
+      path = fetchurl {
+        name = "remark_lint_definition_case___remark_lint_definition_case_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-definition-case/-/remark-lint-definition-case-2.0.1.tgz";
+        sha1 = "10340eb2f87acff41140d52ad7e5b40b47e6690a";
+      };
+    }
+    {
+      name = "remark_lint_definition_spacing___remark_lint_definition_spacing_2.0.1.tgz";
+      path = fetchurl {
+        name = "remark_lint_definition_spacing___remark_lint_definition_spacing_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-definition-spacing/-/remark-lint-definition-spacing-2.0.1.tgz";
+        sha1 = "97f01bf9bf77a7bdf8013b124b7157dd90b07c64";
+      };
+    }
+    {
+      name = "remark_lint_emphasis_marker___remark_lint_emphasis_marker_2.0.1.tgz";
+      path = fetchurl {
+        name = "remark_lint_emphasis_marker___remark_lint_emphasis_marker_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-emphasis-marker/-/remark-lint-emphasis-marker-2.0.1.tgz";
+        sha1 = "1d5ca2070d4798d16c23120726158157796dc317";
+      };
+    }
+    {
+      name = "remark_lint_fenced_code_flag___remark_lint_fenced_code_flag_2.0.1.tgz";
+      path = fetchurl {
+        name = "remark_lint_fenced_code_flag___remark_lint_fenced_code_flag_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-2.0.1.tgz";
+        sha1 = "2cb3ddb1157082c45760c7d01ca08e13376aaf62";
+      };
+    }
+    {
+      name = "remark_lint_fenced_code_marker___remark_lint_fenced_code_marker_2.0.1.tgz";
+      path = fetchurl {
+        name = "remark_lint_fenced_code_marker___remark_lint_fenced_code_marker_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-2.0.1.tgz";
+        sha1 = "7bbeb0fb45b0818a3c8a2d232cf0c723ade58ecf";
+      };
+    }
+    {
+      name = "remark_lint_file_extension___remark_lint_file_extension_1.0.5.tgz";
+      path = fetchurl {
+        name = "remark_lint_file_extension___remark_lint_file_extension_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-file-extension/-/remark-lint-file-extension-1.0.5.tgz";
+        sha1 = "7e2feec02919aa3db5c71fda19d726a9e24a4c6c";
+      };
+    }
+    {
+      name = "remark_lint_final_definition___remark_lint_final_definition_2.1.0.tgz";
+      path = fetchurl {
+        name = "remark_lint_final_definition___remark_lint_final_definition_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-final-definition/-/remark-lint-final-definition-2.1.0.tgz";
+        sha1 = "b6e654c01ebcb1afc936d7b9cd74db8ec273e0bb";
+      };
+    }
+    {
+      name = "remark_lint_hard_break_spaces___remark_lint_hard_break_spaces_2.0.1.tgz";
+      path = fetchurl {
+        name = "remark_lint_hard_break_spaces___remark_lint_hard_break_spaces_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-2.0.1.tgz";
+        sha1 = "2149b55cda17604562d040c525a2a0d26aeb0f0f";
+      };
+    }
+    {
+      name = "remark_lint_heading_increment___remark_lint_heading_increment_2.0.1.tgz";
+      path = fetchurl {
+        name = "remark_lint_heading_increment___remark_lint_heading_increment_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-heading-increment/-/remark-lint-heading-increment-2.0.1.tgz";
+        sha1 = "b578f251508a05d79bc2d1ae941e0620e23bf1d3";
+      };
+    }
+    {
+      name = "remark_lint_heading_style___remark_lint_heading_style_2.0.1.tgz";
+      path = fetchurl {
+        name = "remark_lint_heading_style___remark_lint_heading_style_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-heading-style/-/remark-lint-heading-style-2.0.1.tgz";
+        sha1 = "8216fca67d97bbbeec8a19b6c71bfefc16549f72";
+      };
+    }
+    {
+      name = "remark_lint_link_title_style___remark_lint_link_title_style_2.0.1.tgz";
+      path = fetchurl {
+        name = "remark_lint_link_title_style___remark_lint_link_title_style_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-link-title-style/-/remark-lint-link-title-style-2.0.1.tgz";
+        sha1 = "51a595c69fcfa73a245a030dfaa3504938a1173a";
+      };
+    }
+    {
+      name = "remark_lint_list_item_content_indent___remark_lint_list_item_content_indent_2.0.1.tgz";
+      path = fetchurl {
+        name = "remark_lint_list_item_content_indent___remark_lint_list_item_content_indent_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-list-item-content-indent/-/remark-lint-list-item-content-indent-2.0.1.tgz";
+        sha1 = "96387459440dcd61e522ab02bff138b32bfaa63a";
+      };
+    }
+    {
+      name = "remark_lint_list_item_indent___remark_lint_list_item_indent_2.0.1.tgz";
+      path = fetchurl {
+        name = "remark_lint_list_item_indent___remark_lint_list_item_indent_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-list-item-indent/-/remark-lint-list-item-indent-2.0.1.tgz";
+        sha1 = "c6472514e17bc02136ca87936260407ada90bf8d";
+      };
+    }
+    {
+      name = "remark_lint_list_item_spacing___remark_lint_list_item_spacing_2.0.1.tgz";
       path = fetchurl {
-        name = "remarkable___remarkable_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/remarkable/-/remarkable-2.0.0.tgz";
-        sha1 = "795f965bede8300362ce51a716edc322d9e7a4ca";
+        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_maximum_heading_length___remark_lint_maximum_heading_length_2.0.1.tgz";
+      path = fetchurl {
+        name = "remark_lint_maximum_heading_length___remark_lint_maximum_heading_length_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-maximum-heading-length/-/remark-lint-maximum-heading-length-2.0.1.tgz";
+        sha1 = "56f240707a75b59bce3384ccc9da94548affa98f";
+      };
+    }
+    {
+      name = "remark_lint_maximum_line_length___remark_lint_maximum_line_length_2.0.3.tgz";
+      path = fetchurl {
+        name = "remark_lint_maximum_line_length___remark_lint_maximum_line_length_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-2.0.3.tgz";
+        sha1 = "d0d15410637d61b031a83d7c78022ec46d6c858a";
+      };
+    }
+    {
+      name = "remark_lint_no_auto_link_without_protocol___remark_lint_no_auto_link_without_protocol_2.0.1.tgz";
+      path = fetchurl {
+        name = "remark_lint_no_auto_link_without_protocol___remark_lint_no_auto_link_without_protocol_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-no-auto-link-without-protocol/-/remark-lint-no-auto-link-without-protocol-2.0.1.tgz";
+        sha1 = "f75e5c24adb42385593e0d75ca39987edb70b6c4";
+      };
+    }
+    {
+      name = "remark_lint_no_blockquote_without_marker___remark_lint_no_blockquote_without_marker_3.0.1.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_consecutive_blank_lines___remark_lint_no_consecutive_blank_lines_2.0.1.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_duplicate_headings___remark_lint_no_duplicate_headings_2.0.1.tgz";
+      path = fetchurl {
+        name = "remark_lint_no_duplicate_headings___remark_lint_no_duplicate_headings_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-no-duplicate-headings/-/remark-lint-no-duplicate-headings-2.0.1.tgz";
+        sha1 = "4a4b70e029155ebcfc03d8b2358c427b69a87576";
+      };
+    }
+    {
+      name = "remark_lint_no_emphasis_as_heading___remark_lint_no_emphasis_as_heading_2.0.1.tgz";
+      path = fetchurl {
+        name = "remark_lint_no_emphasis_as_heading___remark_lint_no_emphasis_as_heading_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-no-emphasis-as-heading/-/remark-lint-no-emphasis-as-heading-2.0.1.tgz";
+        sha1 = "fcc064133fe00745943c334080fed822f72711ea";
+      };
+    }
+    {
+      name = "remark_lint_no_file_name_articles___remark_lint_no_file_name_articles_1.0.5.tgz";
+      path = fetchurl {
+        name = "remark_lint_no_file_name_articles___remark_lint_no_file_name_articles_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-1.0.5.tgz";
+        sha1 = "4ca3425f6613f94feaef6941028583299727c339";
+      };
+    }
+    {
+      name = "remark_lint_no_file_name_consecutive_dashes___remark_lint_no_file_name_consecutive_dashes_1.0.5.tgz";
+      path = fetchurl {
+        name = "remark_lint_no_file_name_consecutive_dashes___remark_lint_no_file_name_consecutive_dashes_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-1.0.5.tgz";
+        sha1 = "e9a6f2aeab948aa249c8a8356359e3d8843a4c5c";
+      };
+    }
+    {
+      name = "remark_lint_no_file_name_irregular_characters___remark_lint_no_file_name_irregular_characters_1.0.5.tgz";
+      path = fetchurl {
+        name = "remark_lint_no_file_name_irregular_characters___remark_lint_no_file_name_irregular_characters_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-no-file-name-irregular-characters/-/remark-lint-no-file-name-irregular-characters-1.0.5.tgz";
+        sha1 = "6866f5b8370cdc916d55e7cf87bb6a55f9b6e0c6";
+      };
+    }
+    {
+      name = "remark_lint_no_file_name_mixed_case___remark_lint_no_file_name_mixed_case_1.0.5.tgz";
+      path = fetchurl {
+        name = "remark_lint_no_file_name_mixed_case___remark_lint_no_file_name_mixed_case_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-no-file-name-mixed-case/-/remark-lint-no-file-name-mixed-case-1.0.5.tgz";
+        sha1 = "3e37bfef74bbdd4b07aa9ef9dd452758f8b46731";
+      };
+    }
+    {
+      name = "remark_lint_no_file_name_outer_dashes___remark_lint_no_file_name_outer_dashes_1.0.6.tgz";
+      path = fetchurl {
+        name = "remark_lint_no_file_name_outer_dashes___remark_lint_no_file_name_outer_dashes_1.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-1.0.6.tgz";
+        sha1 = "4e0e4d42a63f0fdfb856bb5d8d8112725656e700";
+      };
+    }
+    {
+      name = "remark_lint_no_heading_punctuation___remark_lint_no_heading_punctuation_2.0.1.tgz";
+      path = fetchurl {
+        name = "remark_lint_no_heading_punctuation___remark_lint_no_heading_punctuation_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-no-heading-punctuation/-/remark-lint-no-heading-punctuation-2.0.1.tgz";
+        sha1 = "face59f9a95c8aa278a8ee0c728bc44cd53ea9ed";
+      };
+    }
+    {
+      name = "remark_lint_no_inline_padding___remark_lint_no_inline_padding_2.0.1.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_literal_urls___remark_lint_no_literal_urls_2.0.1.tgz";
+      path = fetchurl {
+        name = "remark_lint_no_literal_urls___remark_lint_no_literal_urls_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-2.0.1.tgz";
+        sha1 = "731908f9866c1880e6024dcee1269fb0f40335d6";
+      };
+    }
+    {
+      name = "remark_lint_no_multiple_toplevel_headings___remark_lint_no_multiple_toplevel_headings_2.0.1.tgz";
+      path = fetchurl {
+        name = "remark_lint_no_multiple_toplevel_headings___remark_lint_no_multiple_toplevel_headings_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-2.0.1.tgz";
+        sha1 = "3ff2b505adf720f4ff2ad2b1021f8cfd50ad8635";
+      };
+    }
+    {
+      name = "remark_lint_no_shell_dollars___remark_lint_no_shell_dollars_2.0.2.tgz";
+      path = fetchurl {
+        name = "remark_lint_no_shell_dollars___remark_lint_no_shell_dollars_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-2.0.2.tgz";
+        sha1 = "b2c6c3ed95e5615f8e5f031c7d271a18dc17618e";
+      };
+    }
+    {
+      name = "remark_lint_no_shortcut_reference_image___remark_lint_no_shortcut_reference_image_2.0.1.tgz";
+      path = fetchurl {
+        name = "remark_lint_no_shortcut_reference_image___remark_lint_no_shortcut_reference_image_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-2.0.1.tgz";
+        sha1 = "d174d12a57e8307caf6232f61a795bc1d64afeaa";
+      };
+    }
+    {
+      name = "remark_lint_no_shortcut_reference_link___remark_lint_no_shortcut_reference_link_2.0.1.tgz";
+      path = fetchurl {
+        name = "remark_lint_no_shortcut_reference_link___remark_lint_no_shortcut_reference_link_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-2.0.1.tgz";
+        sha1 = "8f963f81036e45cfb7061b3639e9c6952308bc94";
+      };
+    }
+    {
+      name = "remark_lint_no_table_indentation___remark_lint_no_table_indentation_2.0.1.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_ordered_list_marker_style___remark_lint_ordered_list_marker_style_2.0.1.tgz";
+      path = fetchurl {
+        name = "remark_lint_ordered_list_marker_style___remark_lint_ordered_list_marker_style_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-2.0.1.tgz";
+        sha1 = "183c31967e6f2ae8ef00effad03633f7fd00ffaa";
+      };
+    }
+    {
+      name = "remark_lint_ordered_list_marker_value___remark_lint_ordered_list_marker_value_2.0.1.tgz";
+      path = fetchurl {
+        name = "remark_lint_ordered_list_marker_value___remark_lint_ordered_list_marker_value_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-ordered-list-marker-value/-/remark-lint-ordered-list-marker-value-2.0.1.tgz";
+        sha1 = "0de343de2efb41f01eae9f0f7e7d30fe43db5595";
+      };
+    }
+    {
+      name = "remark_lint_rule_style___remark_lint_rule_style_2.0.1.tgz";
+      path = fetchurl {
+        name = "remark_lint_rule_style___remark_lint_rule_style_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-rule-style/-/remark-lint-rule-style-2.0.1.tgz";
+        sha1 = "f59bd82e75d3eaabd0eee1c8c0f5513372eb553c";
+      };
+    }
+    {
+      name = "remark_lint_strong_marker___remark_lint_strong_marker_2.0.1.tgz";
+      path = fetchurl {
+        name = "remark_lint_strong_marker___remark_lint_strong_marker_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-strong-marker/-/remark-lint-strong-marker-2.0.1.tgz";
+        sha1 = "1ad8f190c6ac0f8138b638965ccf3bcd18f6d4e4";
+      };
+    }
+    {
+      name = "remark_lint_table_cell_padding___remark_lint_table_cell_padding_2.0.1.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_pipe_alignment___remark_lint_table_pipe_alignment_2.0.1.tgz";
+      path = fetchurl {
+        name = "remark_lint_table_pipe_alignment___remark_lint_table_pipe_alignment_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-table-pipe-alignment/-/remark-lint-table-pipe-alignment-2.0.1.tgz";
+        sha1 = "12b7e4c54473d69c9866cb33439c718d09cffcc5";
+      };
+    }
+    {
+      name = "remark_lint_table_pipes___remark_lint_table_pipes_2.0.1.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_unordered_list_marker_style___remark_lint_unordered_list_marker_style_2.0.1.tgz";
+      path = fetchurl {
+        name = "remark_lint_unordered_list_marker_style___remark_lint_unordered_list_marker_style_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-2.0.1.tgz";
+        sha1 = "e64692aa9594dbe7e945ae76ab2218949cd92477";
+      };
+    }
+    {
+      name = "remark_lint___remark_lint_7.0.1.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_message_control___remark_message_control_6.0.0.tgz";
+      path = fetchurl {
+        name = "remark_message_control___remark_message_control_6.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/remark-message-control/-/remark-message-control-6.0.0.tgz";
+        sha1 = "955b054b38c197c9f2e35b1d88a4912949db7fc5";
+      };
+    }
+    {
+      name = "remark_parse___remark_parse_8.0.3.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_preset_lint_markdown_style_guide___remark_preset_lint_markdown_style_guide_3.0.1.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_stringify___remark_stringify_8.1.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___remark_12.0.1.tgz";
+      path = fetchurl {
+        name = "remark___remark_12.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark/-/remark-12.0.1.tgz";
+        sha1 = "f1ddf68db7be71ca2bad0a33cd3678b86b9c709f";
       };
     }
     {
@@ -9362,11 +10298,11 @@
       };
     }
     {
-      name = "renderkid___renderkid_2.0.3.tgz";
+      name = "renderkid___renderkid_2.0.4.tgz";
       path = fetchurl {
-        name = "renderkid___renderkid_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.3.tgz";
-        sha1 = "380179c2ff5ae1365c522bf2fcfcff01c5b74149";
+        name = "renderkid___renderkid_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.4.tgz";
+        sha1 = "d325e532afb28d3f8796ffee306be8ffd6fc864c";
       };
     }
     {
@@ -9394,27 +10330,27 @@
       };
     }
     {
-      name = "request_progress___request_progress_2.0.1.tgz";
+      name = "replace_ext___replace_ext_1.0.0.tgz";
       path = fetchurl {
-        name = "request_progress___request_progress_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/request-progress/-/request-progress-2.0.1.tgz";
-        sha1 = "5d36bb57961c673aa5b788dbc8141fdf23b44e08";
+        name = "replace_ext___replace_ext_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz";
+        sha1 = "de63128373fcbf7c3ccfa4de5a480c45a67958eb";
       };
     }
     {
-      name = "request_promise_core___request_promise_core_1.1.3.tgz";
+      name = "request_promise_core___request_promise_core_1.1.4.tgz";
       path = fetchurl {
-        name = "request_promise_core___request_promise_core_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz";
-        sha1 = "e9a3c081b51380dfea677336061fea879a829ee9";
+        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.8.tgz";
+      name = "request_promise_native___request_promise_native_1.0.9.tgz";
       path = fetchurl {
-        name = "request_promise_native___request_promise_native_1.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.8.tgz";
-        sha1 = "a455b960b826e44e2bf8999af64dff2bfe58cb36";
+        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";
       };
     }
     {
@@ -9442,14 +10378,6 @@
       };
     }
     {
-      name = "require_relative___require_relative_0.8.7.tgz";
-      path = fetchurl {
-        name = "require_relative___require_relative_0.8.7.tgz";
-        url  = "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz";
-        sha1 = "7999539fc9e047a37928fa196f8e1563dabd36de";
-      };
-    }
-    {
       name = "resolve_cwd___resolve_cwd_2.0.0.tgz";
       path = fetchurl {
         name = "resolve_cwd___resolve_cwd_2.0.0.tgz";
@@ -9482,6 +10410,14 @@
       };
     }
     {
+      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";
@@ -9490,11 +10426,11 @@
       };
     }
     {
-      name = "resolve___resolve_1.15.1.tgz";
+      name = "resolve___resolve_1.19.0.tgz";
       path = fetchurl {
-        name = "resolve___resolve_1.15.1.tgz";
-        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz";
-        sha1 = "27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8";
+        name = "resolve___resolve_1.19.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz";
+        sha1 = "1af5bf630409734a067cae29318aac7fa29a267c";
       };
     }
     {
@@ -9522,6 +10458,14 @@
       };
     }
     {
+      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 = "reveal.js___reveal.js_3.9.2.tgz";
       path = fetchurl {
         name = "reveal.js___reveal.js_3.9.2.tgz";
@@ -9546,14 +10490,6 @@
       };
     }
     {
-      name = "right_align___right_align_0.1.3.tgz";
-      path = fetchurl {
-        name = "right_align___right_align_0.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz";
-        sha1 = "61339b722fe6a3515689210d24e14c96148613ef";
-      };
-    }
-    {
       name = "rimraf___rimraf_2.6.3.tgz";
       path = fetchurl {
         name = "rimraf___rimraf_2.6.3.tgz";
@@ -9570,6 +10506,14 @@
       };
     }
     {
+      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 = "rimraf___rimraf_2.4.5.tgz";
       path = fetchurl {
         name = "rimraf___rimraf_2.4.5.tgz";
@@ -9586,43 +10530,19 @@
       };
     }
     {
-      name = "rollup_plugin_buble___rollup_plugin_buble_0.19.8.tgz";
+      name = "run_async___run_async_2.4.1.tgz";
       path = fetchurl {
-        name = "rollup_plugin_buble___rollup_plugin_buble_0.19.8.tgz";
-        url  = "https://registry.yarnpkg.com/rollup-plugin-buble/-/rollup-plugin-buble-0.19.8.tgz";
-        sha1 = "f9232e2bb62a7573d04f9705c1bd6f02c2a02c6a";
+        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 = "rollup_pluginutils___rollup_pluginutils_2.8.2.tgz";
+      name = "run_parallel___run_parallel_1.1.10.tgz";
       path = fetchurl {
-        name = "rollup_pluginutils___rollup_pluginutils_2.8.2.tgz";
-        url  = "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz";
-        sha1 = "72f2af0748b592364dbd3389e600e5a9444a351e";
-      };
-    }
-    {
-      name = "rollup_watch___rollup_watch_4.3.1.tgz";
-      path = fetchurl {
-        name = "rollup_watch___rollup_watch_4.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/rollup-watch/-/rollup-watch-4.3.1.tgz";
-        sha1 = "5aa1eaeab787addf368905d102b39d6fc5ce4a8b";
-      };
-    }
-    {
-      name = "rollup___rollup_0.66.6.tgz";
-      path = fetchurl {
-        name = "rollup___rollup_0.66.6.tgz";
-        url  = "https://registry.yarnpkg.com/rollup/-/rollup-0.66.6.tgz";
-        sha1 = "ce7d6185beb7acea644ce220c25e71ae03275482";
-      };
-    }
-    {
-      name = "run_async___run_async_2.3.0.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 = "run_parallel___run_parallel_1.1.10.tgz";
+        url  = "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz";
+        sha1 = "60a51b2ae836636c81377df16cb107351bcd13ef";
       };
     }
     {
@@ -9642,19 +10562,19 @@
       };
     }
     {
-      name = "rxjs___rxjs_6.5.4.tgz";
+      name = "rxjs___rxjs_6.6.3.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.3.tgz";
+        url  = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz";
+        sha1 = "8ca84635c4daa900c0d3967a6ee7ac60271ee552";
       };
     }
     {
-      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";
       };
     }
     {
@@ -9666,6 +10586,14 @@
       };
     }
     {
+      name = "safe_buffer___safe_buffer_5.2.0.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_json_stringify___safe_json_stringify_1.2.0.tgz";
       path = fetchurl {
         name = "safe_json_stringify___safe_json_stringify_1.2.0.tgz";
@@ -9722,19 +10650,19 @@
       };
     }
     {
-      name = "schema_utils___schema_utils_2.6.4.tgz";
+      name = "schema_utils___schema_utils_2.7.1.tgz";
       path = fetchurl {
-        name = "schema_utils___schema_utils_2.6.4.tgz";
-        url  = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.4.tgz";
-        sha1 = "a27efbf6e4e78689d91872ee3ccfa57d7bdd0f53";
+        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 = "scope_css___scope_css_1.2.1.tgz";
+      name = "schema_utils___schema_utils_3.0.0.tgz";
       path = fetchurl {
-        name = "scope_css___scope_css_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/scope-css/-/scope-css-1.2.1.tgz";
-        sha1 = "c35768bc900cad030a3e0d663a818c0f6a57f40e";
+        name = "schema_utils___schema_utils_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz";
+        sha1 = "67502f6aa2b66a2d4032b4279a2944978a0913ef";
       };
     }
     {
@@ -9778,19 +10706,19 @@
       };
     }
     {
-      name = "semver___semver_5.7.1.tgz";
+      name = "semver_compare___semver_compare_1.0.0.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_compare___semver_compare_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz";
+        sha1 = "0dee216a1c941ab37e9efb1788f6afc5ff5537fc";
       };
     }
     {
-      name = "semver___semver_4.3.2.tgz";
+      name = "semver___semver_5.7.1.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_5.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz";
+        sha1 = "a954f931aeba508d307bbf069eff0c01c96116f7";
       };
     }
     {
@@ -9834,27 +10762,27 @@
       };
     }
     {
-      name = "sequelize___sequelize_5.21.4.tgz";
+      name = "sequelize___sequelize_5.22.3.tgz";
       path = fetchurl {
-        name = "sequelize___sequelize_5.21.4.tgz";
-        url  = "https://registry.yarnpkg.com/sequelize/-/sequelize-5.21.4.tgz";
-        sha1 = "a49597dbd7862e4e1fb8ec819de04705d06d9d17";
+        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_2.1.2.tgz";
+      name = "serialize_javascript___serialize_javascript_4.0.0.tgz";
       path = fetchurl {
-        name = "serialize_javascript___serialize_javascript_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz";
-        sha1 = "ecec53b0e0317bdc95ef76ab7074b7384785fa61";
+        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 = "series_stream___series_stream_1.0.1.tgz";
+      name = "serialize_javascript___serialize_javascript_5.0.1.tgz";
       path = fetchurl {
-        name = "series_stream___series_stream_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/series-stream/-/series-stream-1.0.1.tgz";
-        sha1 = "311a09c5c1d5a091440832e1a480a47400f1005d";
+        name = "serialize_javascript___serialize_javascript_5.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz";
+        sha1 = "7886ec848049a462467a97d3d918ebb2aaf934f4";
       };
     }
     {
@@ -9930,11 +10858,11 @@
       };
     }
     {
-      name = "shortid___shortid_2.2.8.tgz";
+      name = "shortid___shortid_2.2.16.tgz";
       path = fetchurl {
-        name = "shortid___shortid_2.2.8.tgz";
-        url  = "https://registry.yarnpkg.com/shortid/-/shortid-2.2.8.tgz";
-        sha1 = "033b117d6a2e975804f6f0969dbe7d3d0b355131";
+        name = "shortid___shortid_2.2.16.tgz";
+        url  = "https://registry.yarnpkg.com/shortid/-/shortid-2.2.16.tgz";
+        sha1 = "b742b8f0cb96406fd391c76bfc18a67a57fe5608";
       };
     }
     {
@@ -9946,11 +10874,11 @@
       };
     }
     {
-      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.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";
       };
     }
     {
@@ -9970,6 +10898,14 @@
       };
     }
     {
+      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_2.1.0.tgz";
       path = fetchurl {
         name = "slice_ansi___slice_ansi_2.1.0.tgz";
@@ -9978,11 +10914,11 @@
       };
     }
     {
-      name = "slugify___slugify_1.3.6.tgz";
+      name = "sliced___sliced_1.0.1.tgz";
       path = fetchurl {
-        name = "slugify___slugify_1.3.6.tgz";
-        url  = "https://registry.yarnpkg.com/slugify/-/slugify-1.3.6.tgz";
-        sha1 = "ba5fd6159b570fe4811d02ea9b1f4906677638c3";
+        name = "sliced___sliced_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/sliced/-/sliced-1.0.1.tgz";
+        sha1 = "0b3a662b5d04c3177b1926bea82b03f837a2ef41";
       };
     }
     {
@@ -10010,11 +10946,11 @@
       };
     }
     {
-      name = "snapsvg___snapsvg_0.4.0.tgz";
+      name = "snapsvg___snapsvg_0.5.1.tgz";
       path = fetchurl {
-        name = "snapsvg___snapsvg_0.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/snapsvg/-/snapsvg-0.4.0.tgz";
-        sha1 = "e0767014167825957de7e125c29b0fa89796ea03";
+        name = "snapsvg___snapsvg_0.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/snapsvg/-/snapsvg-0.5.1.tgz";
+        sha1 = "0caf52c79189a290746fc446cc5e863f6bdddfe3";
       };
     }
     {
@@ -10026,27 +10962,43 @@
       };
     }
     {
-      name = "socket.io_client___socket.io_client_2.1.1.tgz";
+      name = "socket.io_client___socket.io_client_2.3.0.tgz";
       path = fetchurl {
-        name = "socket.io_client___socket.io_client_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.1.tgz";
-        sha1 = "dcb38103436ab4578ddb026638ae2f21b623671f";
+        name = "socket.io_client___socket.io_client_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.3.0.tgz";
+        sha1 = "14d5ba2e00b9bcd145ae443ab96b3f86cbcc1bb4";
       };
     }
     {
-      name = "socket.io_parser___socket.io_parser_3.2.0.tgz";
+      name = "socket.io_client___socket.io_client_2.3.1.tgz";
       path = fetchurl {
-        name = "socket.io_parser___socket.io_parser_3.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz";
-        sha1 = "e7c6228b6aa1f814e6148aea325b51aa9499e077";
+        name = "socket.io_client___socket.io_client_2.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.3.1.tgz";
+        sha1 = "91a4038ef4d03c19967bb3c646fec6e0eaa78cff";
       };
     }
     {
-      name = "socket.io___socket.io_2.1.1.tgz";
+      name = "socket.io_parser___socket.io_parser_3.3.1.tgz";
       path = fetchurl {
-        name = "socket.io___socket.io_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz";
-        sha1 = "a069c5feabee3e6b214a75b40ce0652e1cfb9980";
+        name = "socket.io_parser___socket.io_parser_3.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.1.tgz";
+        sha1 = "f07d9c8cb3fb92633aa93e76d98fd3a334623199";
+      };
+    }
+    {
+      name = "socket.io_parser___socket.io_parser_3.4.1.tgz";
+      path = fetchurl {
+        name = "socket.io_parser___socket.io_parser_3.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.4.1.tgz";
+        sha1 = "b06af838302975837eab2dc980037da24054d64a";
+      };
+    }
+    {
+      name = "socket.io___socket.io_2.3.0.tgz";
+      path = fetchurl {
+        name = "socket.io___socket.io_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/socket.io/-/socket.io-2.3.0.tgz";
+        sha1 = "cd762ed6a4faeca59bc1f3e243c0969311eb73fb";
       };
     }
     {
@@ -10082,11 +11034,11 @@
       };
     }
     {
-      name = "source_map_support___source_map_support_0.5.16.tgz";
+      name = "source_map_support___source_map_support_0.5.19.tgz";
       path = fetchurl {
-        name = "source_map_support___source_map_support_0.5.16.tgz";
-        url  = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz";
-        sha1 = "0ae069e7fe3ba7538c64c98515e35339eac5a042";
+        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";
       };
     }
     {
@@ -10114,43 +11066,43 @@
       };
     }
     {
-      name = "sourcemap_codec___sourcemap_codec_1.4.8.tgz";
+      name = "source_map___source_map_0.7.3.tgz";
       path = fetchurl {
-        name = "sourcemap_codec___sourcemap_codec_1.4.8.tgz";
-        url  = "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz";
-        sha1 = "ea804bd94857402e6992d05a38ef1ae35a9ab4c4";
+        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.0.tgz";
+      name = "spdx_correct___spdx_correct_3.1.1.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_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.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.5.tgz";
+      name = "spdx_license_ids___spdx_license_ids_3.0.6.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 = "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";
       };
     }
     {
@@ -10170,11 +11122,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";
       };
     }
     {
@@ -10194,19 +11146,19 @@
       };
     }
     {
-      name = "sqlite3___sqlite3_4.1.1.tgz";
+      name = "sqlite3___sqlite3_4.2.0.tgz";
       path = fetchurl {
-        name = "sqlite3___sqlite3_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/sqlite3/-/sqlite3-4.1.1.tgz";
-        sha1 = "539a42e476640796578e22d589b3283c28055242";
+        name = "sqlite3___sqlite3_4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/sqlite3/-/sqlite3-4.2.0.tgz";
+        sha1 = "49026d665e9fc4f922e56fb9711ba5b4c85c4901";
       };
     }
     {
-      name = "sqlstring___sqlstring_2.3.1.tgz";
+      name = "sqlstring___sqlstring_2.3.2.tgz";
       path = fetchurl {
-        name = "sqlstring___sqlstring_2.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/sqlstring/-/sqlstring-2.3.1.tgz";
-        sha1 = "475393ff9e91479aea62dcaf0ca3d14983a7fb40";
+        name = "sqlstring___sqlstring_2.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/sqlstring/-/sqlstring-2.3.2.tgz";
+        sha1 = "cdae7169389a1375b18e885f2e60b3e460809514";
       };
     }
     {
@@ -10226,6 +11178,14 @@
       };
     }
     {
+      name = "ssri___ssri_8.0.0.tgz";
+      path = fetchurl {
+        name = "ssri___ssri_8.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz";
+        sha1 = "79ca74e21f8ceaeddfcb4b90143c458b8d988808";
+      };
+    }
+    {
       name = "stable___stable_0.1.8.tgz";
       path = fetchurl {
         name = "stable___stable_0.1.8.tgz";
@@ -10242,6 +11202,14 @@
       };
     }
     {
+      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";
@@ -10290,14 +11258,6 @@
       };
     }
     {
-      name = "stream_from_to___stream_from_to_1.4.3.tgz";
-      path = fetchurl {
-        name = "stream_from_to___stream_from_to_1.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/stream-from-to/-/stream-from-to-1.4.3.tgz";
-        sha1 = "b270473ebc514e73615727c5d2f76b229941df94";
-      };
-    }
-    {
       name = "stream_http___stream_http_2.8.3.tgz";
       path = fetchurl {
         name = "stream_http___stream_http_2.8.3.tgz";
@@ -10362,19 +11322,27 @@
       };
     }
     {
-      name = "string.prototype.trimleft___string.prototype.trimleft_2.1.1.tgz";
+      name = "string_width___string_width_4.2.0.tgz";
       path = fetchurl {
-        name = "string.prototype.trimleft___string.prototype.trimleft_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz";
-        sha1 = "9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74";
+        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.prototype.trimright___string.prototype.trimright_2.1.1.tgz";
+      name = "string.prototype.trimend___string.prototype.trimend_1.0.2.tgz";
       path = fetchurl {
-        name = "string.prototype.trimright___string.prototype.trimright_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz";
-        sha1 = "440314b15996c866ce8a0341894d45186200c5d9";
+        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.trimstart___string.prototype.trimstart_1.0.2.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";
       };
     }
     {
@@ -10410,6 +11378,14 @@
       };
     }
     {
+      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";
@@ -10434,6 +11410,14 @@
       };
     }
     {
+      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_ansi___strip_ansi_0.1.1.tgz";
       path = fetchurl {
         name = "strip_ansi___strip_ansi_0.1.1.tgz";
@@ -10450,22 +11434,6 @@
       };
     }
     {
-      name = "strip_css_comments___strip_css_comments_3.0.0.tgz";
-      path = fetchurl {
-        name = "strip_css_comments___strip_css_comments_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/strip-css-comments/-/strip-css-comments-3.0.0.tgz";
-        sha1 = "7a5625eff8a2b226cf8947a11254da96e13dae89";
-      };
-    }
-    {
-      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_json_comments___strip_json_comments_2.0.1.tgz";
       path = fetchurl {
         name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
@@ -10474,11 +11442,11 @@
       };
     }
     {
-      name = "style_loader___style_loader_1.1.3.tgz";
+      name = "strtok3___strtok3_6.0.4.tgz";
       path = fetchurl {
-        name = "style_loader___style_loader_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/style-loader/-/style-loader-1.1.3.tgz";
-        sha1 = "9e826e69c683c4d9bf9db924f85e9abb30d5e200";
+        name = "strtok3___strtok3_6.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/strtok3/-/strtok3-6.0.4.tgz";
+        sha1 = "ede0d20fde5aa9fda56417c3558eaafccc724694";
       };
     }
     {
@@ -10490,6 +11458,14 @@
       };
     }
     {
+      name = "stylis___stylis_3.5.4.tgz";
+      path = fetchurl {
+        name = "stylis___stylis_3.5.4.tgz";
+        url  = "https://registry.yarnpkg.com/stylis/-/stylis-3.5.4.tgz";
+        sha1 = "f665f25f5e299cf3d64654ab949a57c768b73fbe";
+      };
+    }
+    {
       name = "superagent___superagent_1.8.3.tgz";
       path = fetchurl {
         name = "superagent___superagent_1.8.3.tgz";
@@ -10506,14 +11482,6 @@
       };
     }
     {
-      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_2.0.0.tgz";
       path = fetchurl {
         name = "supports_color___supports_color_2.0.0.tgz";
@@ -10530,6 +11498,22 @@
       };
     }
     {
+      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 = "svgo___svgo_1.3.2.tgz";
       path = fetchurl {
         name = "svgo___svgo_1.3.2.tgz";
@@ -10562,11 +11546,11 @@
       };
     }
     {
-      name = "tar_stream___tar_stream_1.6.2.tgz";
+      name = "tar_stream___tar_stream_2.1.4.tgz";
       path = fetchurl {
-        name = "tar_stream___tar_stream_1.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz";
-        sha1 = "8ea55dab37972253d9a9af90fdcd559ae435c555";
+        name = "tar_stream___tar_stream_2.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.4.tgz";
+        sha1 = "c4fb1a11eb0da29b893a5b25476397ba2d053bfa";
       };
     }
     {
@@ -10578,6 +11562,14 @@
       };
     }
     {
+      name = "tar___tar_6.0.5.tgz";
+      path = fetchurl {
+        name = "tar___tar_6.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/tar/-/tar-6.0.5.tgz";
+        sha1 = "bde815086e10b39f1dcd298e89d596e1535e200f";
+      };
+    }
+    {
       name = "tedious___tedious_6.7.0.tgz";
       path = fetchurl {
         name = "tedious___tedious_6.7.0.tgz";
@@ -10586,19 +11578,19 @@
       };
     }
     {
-      name = "terser_webpack_plugin___terser_webpack_plugin_1.4.3.tgz";
+      name = "terser_webpack_plugin___terser_webpack_plugin_1.4.5.tgz";
       path = fetchurl {
-        name = "terser_webpack_plugin___terser_webpack_plugin_1.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz";
-        sha1 = "5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c";
+        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___terser_4.6.3.tgz";
+      name = "terser___terser_4.8.0.tgz";
       path = fetchurl {
-        name = "terser___terser_4.6.3.tgz";
-        url  = "https://registry.yarnpkg.com/terser/-/terser-4.6.3.tgz";
-        sha1 = "e33aa42461ced5238d352d2df2a67f21921f8d87";
+        name = "terser___terser_4.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz";
+        sha1 = "63056343d7c70bb29f3af665865a46fe03a0df17";
       };
     }
     {
@@ -10618,14 +11610,6 @@
       };
     }
     {
-      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 = "through2___through2_0.6.5.tgz";
       path = fetchurl {
         name = "through2___through2_0.6.5.tgz";
@@ -10642,14 +11626,6 @@
       };
     }
     {
-      name = "through2___through2_3.0.1.tgz";
-      path = fetchurl {
-        name = "through2___through2_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/through2/-/through2-3.0.1.tgz";
-        sha1 = "39276e713c3302edf9e388dd9c812dd3b825bd5a";
-      };
-    }
-    {
       name = "through___through_2.3.8.tgz";
       path = fetchurl {
         name = "through___through_2.3.8.tgz";
@@ -10658,11 +11634,11 @@
       };
     }
     {
-      name = "timers_browserify___timers_browserify_2.0.11.tgz";
+      name = "timers_browserify___timers_browserify_2.0.12.tgz";
       path = fetchurl {
-        name = "timers_browserify___timers_browserify_2.0.11.tgz";
-        url  = "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz";
-        sha1 = "800b1f3eee272e5bc53ee465a04d0e804c31211f";
+        name = "timers_browserify___timers_browserify_2.0.12.tgz";
+        url  = "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz";
+        sha1 = "44a45c11fbf407f34f97bccd1577c652361b00ee";
       };
     }
     {
@@ -10698,14 +11674,6 @@
       };
     }
     {
-      name = "tmp___tmp_0.1.0.tgz";
-      path = fetchurl {
-        name = "tmp___tmp_0.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz";
-        sha1 = "ee434a4e22543082e294ba6201dcc6eafefa2877";
-      };
-    }
-    {
       name = "to_array___to_array_0.1.4.tgz";
       path = fetchurl {
         name = "to_array___to_array_0.1.4.tgz";
@@ -10722,14 +11690,6 @@
       };
     }
     {
-      name = "to_buffer___to_buffer_1.1.1.tgz";
-      path = fetchurl {
-        name = "to_buffer___to_buffer_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz";
-        sha1 = "493bd48f62d7c43fcded313a03dcadb2e1213a80";
-      };
-    }
-    {
       name = "to_fast_properties___to_fast_properties_1.0.3.tgz";
       path = fetchurl {
         name = "to_fast_properties___to_fast_properties_1.0.3.tgz";
@@ -10754,6 +11714,14 @@
       };
     }
     {
+      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";
@@ -10762,6 +11730,14 @@
       };
     }
     {
+      name = "to_vfile___to_vfile_6.1.0.tgz";
+      path = fetchurl {
+        name = "to_vfile___to_vfile_6.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/to-vfile/-/to-vfile-6.1.0.tgz";
+        sha1 = "5f7a3f65813c2c4e34ee1f7643a5646344627699";
+      };
+    }
+    {
       name = "toidentifier___toidentifier_1.0.0.tgz";
       path = fetchurl {
         name = "toidentifier___toidentifier_1.0.0.tgz";
@@ -10770,6 +11746,14 @@
       };
     }
     {
+      name = "token_types___token_types_2.0.0.tgz";
+      path = fetchurl {
+        name = "token_types___token_types_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/token-types/-/token-types-2.0.0.tgz";
+        sha1 = "b23618af744818299c6fbf125e0fdad98bab7e85";
+      };
+    }
+    {
       name = "toobusy_js___toobusy_js_0.5.1.tgz";
       path = fetchurl {
         name = "toobusy_js___toobusy_js_0.5.1.tgz";
@@ -10786,11 +11770,11 @@
       };
     }
     {
-      name = "tough_cookie___tough_cookie_2.4.3.tgz";
+      name = "tough_cookie___tough_cookie_2.5.0.tgz";
       path = fetchurl {
-        name = "tough_cookie___tough_cookie_2.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz";
-        sha1 = "53f36da3f47783b0925afa06ff9f3b165280f781";
+        name = "tough_cookie___tough_cookie_2.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz";
+        sha1 = "cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2";
       };
     }
     {
@@ -10810,6 +11794,22 @@
       };
     }
     {
+      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";
@@ -10818,6 +11818,14 @@
       };
     }
     {
+      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 = "try_catch___try_catch_2.0.1.tgz";
       path = fetchurl {
         name = "try_catch___try_catch_2.0.1.tgz";
@@ -10834,11 +11842,19 @@
       };
     }
     {
-      name = "tslib___tslib_1.10.0.tgz";
+      name = "tsconfig_paths___tsconfig_paths_3.9.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 = "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.14.1.tgz";
+      path = fetchurl {
+        name = "tslib___tslib_1.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz";
+        sha1 = "cf2d38bdc34a134bcaf1091c41f6619e2f672d00";
       };
     }
     {
@@ -10890,14 +11906,6 @@
       };
     }
     {
-      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_is___type_is_1.6.18.tgz";
       path = fetchurl {
         name = "type_is___type_is_1.6.18.tgz";
@@ -10914,11 +11922,19 @@
       };
     }
     {
-      name = "type___type_2.0.0.tgz";
+      name = "type___type_2.1.0.tgz";
       path = fetchurl {
-        name = "type___type_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz";
-        sha1 = "5f16ff6ef2eb44f260494dae271033b29c09a9c3";
+        name = "type___type_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/type/-/type-2.1.0.tgz";
+        sha1 = "9bdc22c648cf8cf86dd23d32336a41cfb6475e3f";
+      };
+    }
+    {
+      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";
       };
     }
     {
@@ -10938,27 +11954,19 @@
       };
     }
     {
-      name = "uglify_js___uglify_js_2.8.29.tgz";
+      name = "uglify_js___uglify_js_3.11.6.tgz";
       path = fetchurl {
-        name = "uglify_js___uglify_js_2.8.29.tgz";
-        url  = "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz";
-        sha1 = "29c5733148057bb4e1f75df35b7a9cb72e6a59dd";
+        name = "uglify_js___uglify_js_3.11.6.tgz";
+        url  = "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.11.6.tgz";
+        sha1 = "144b50d3e05eadd3ad4dd047c60ca541a8cd4e9c";
       };
     }
     {
-      name = "uglify_js___uglify_js_3.7.7.tgz";
+      name = "uglify_js___uglify_js_3.12.2.tgz";
       path = fetchurl {
-        name = "uglify_js___uglify_js_3.7.7.tgz";
-        url  = "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.7.7.tgz";
-        sha1 = "21e52c7dccda80a53bf7cde69628a7e511aec9c9";
-      };
-    }
-    {
-      name = "uglify_to_browserify___uglify_to_browserify_1.0.2.tgz";
-      path = fetchurl {
-        name = "uglify_to_browserify___uglify_to_browserify_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz";
-        sha1 = "6e0924d6bda6b5afe349e39a6d632850a0f882b7";
+        name = "uglify_js___uglify_js_3.12.2.tgz";
+        url  = "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.12.2.tgz";
+        sha1 = "c7ae89da0ed1bb58999c7fce07190b347fdbdaba";
       };
     }
     {
@@ -10978,19 +11986,27 @@
       };
     }
     {
-      name = "ultron___ultron_1.1.1.tgz";
+      name = "umzug___umzug_2.3.0.tgz";
+      path = fetchurl {
+        name = "umzug___umzug_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/umzug/-/umzug-2.3.0.tgz";
+        sha1 = "0ef42b62df54e216b05dcaf627830a6a8b84a184";
+      };
+    }
+    {
+      name = "underscore___underscore_1.11.0.tgz";
       path = fetchurl {
-        name = "ultron___ultron_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz";
-        sha1 = "9fe1536a10a664a65266a1e3ccf85fd36302bc9c";
+        name = "underscore___underscore_1.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/underscore/-/underscore-1.11.0.tgz";
+        sha1 = "dd7c23a195db34267186044649870ff1bab5929e";
       };
     }
     {
-      name = "umzug___umzug_2.2.0.tgz";
+      name = "underscore___underscore_1.6.0.tgz";
       path = fetchurl {
-        name = "umzug___umzug_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/umzug/-/umzug-2.2.0.tgz";
-        sha1 = "6160bdc1817e4a63a625946775063c638623e62e";
+        name = "underscore___underscore_1.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz";
+        sha1 = "8b38b10cacdef63337b8b24e4ff86d45aea529a8";
       };
     }
     {
@@ -11002,51 +12018,51 @@
       };
     }
     {
-      name = "underscore___underscore_1.9.2.tgz";
+      name = "unherit___unherit_1.1.3.tgz";
       path = fetchurl {
-        name = "underscore___underscore_1.9.2.tgz";
-        url  = "https://registry.yarnpkg.com/underscore/-/underscore-1.9.2.tgz";
-        sha1 = "0c8d6f536d6f378a5af264a72f7bec50feb7cf2f";
+        name = "unherit___unherit_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz";
+        sha1 = "6c9b503f2b41b262330c80e91c8614abdaa69c22";
       };
     }
     {
-      name = "underscore___underscore_1.6.0.tgz";
+      name = "unified_args___unified_args_8.1.0.tgz";
       path = fetchurl {
-        name = "underscore___underscore_1.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz";
-        sha1 = "8b38b10cacdef63337b8b24e4ff86d45aea529a8";
+        name = "unified_args___unified_args_8.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/unified-args/-/unified-args-8.1.0.tgz";
+        sha1 = "a27dbe996a49fbbf3d9f5c6a98008ab9b0ee6ae5";
       };
     }
     {
-      name = "unicode_canonical_property_names_ecmascript___unicode_canonical_property_names_ecmascript_1.0.4.tgz";
+      name = "unified_engine___unified_engine_8.0.0.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 = "unified_engine___unified_engine_8.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/unified-engine/-/unified-engine-8.0.0.tgz";
+        sha1 = "e3996ff6eaecc6ca3408af92b70e25691192d17d";
       };
     }
     {
-      name = "unicode_match_property_ecmascript___unicode_match_property_ecmascript_1.0.4.tgz";
+      name = "unified_lint_rule___unified_lint_rule_1.0.6.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 = "unified_lint_rule___unified_lint_rule_1.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/unified-lint-rule/-/unified-lint-rule-1.0.6.tgz";
+        sha1 = "b4ab801ff93c251faa917a8d1c10241af030de84";
       };
     }
     {
-      name = "unicode_match_property_value_ecmascript___unicode_match_property_value_ecmascript_1.1.0.tgz";
+      name = "unified_message_control___unified_message_control_3.0.1.tgz";
       path = fetchurl {
-        name = "unicode_match_property_value_ecmascript___unicode_match_property_value_ecmascript_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz";
-        sha1 = "5b4b426e08d13a80365e0d657ac7a6c1ec46a277";
+        name = "unified_message_control___unified_message_control_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/unified-message-control/-/unified-message-control-3.0.1.tgz";
+        sha1 = "7018855daea9af96082cbea35970d48c9c4dbbf2";
       };
     }
     {
-      name = "unicode_property_aliases_ecmascript___unicode_property_aliases_ecmascript_1.0.5.tgz";
+      name = "unified___unified_9.2.0.tgz";
       path = fetchurl {
-        name = "unicode_property_aliases_ecmascript___unicode_property_aliases_ecmascript_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz";
-        sha1 = "a9cc6cc7ce63a0a3023fc99e341b94431d405a57";
+        name = "unified___unified_9.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/unified/-/unified-9.2.0.tgz";
+        sha1 = "67a62c627c40589edebbf60f53edfd4d822027f8";
       };
     }
     {
@@ -11090,6 +12106,70 @@
       };
     }
     {
+      name = "unist_util_generated___unist_util_generated_1.1.6.tgz";
+      path = fetchurl {
+        name = "unist_util_generated___unist_util_generated_1.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.6.tgz";
+        sha1 = "5ab51f689e2992a472beb1b35f2ce7ff2f324d4b";
+      };
+    }
+    {
+      name = "unist_util_inspect___unist_util_inspect_5.0.1.tgz";
+      path = fetchurl {
+        name = "unist_util_inspect___unist_util_inspect_5.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/unist-util-inspect/-/unist-util-inspect-5.0.1.tgz";
+        sha1 = "168c8770a99902318ca268f8c391e294bcf44540";
+      };
+    }
+    {
+      name = "unist_util_is___unist_util_is_4.0.3.tgz";
+      path = fetchurl {
+        name = "unist_util_is___unist_util_is_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.0.3.tgz";
+        sha1 = "e8b44db55fc20c43752b3346c116344d45d7c91d";
+      };
+    }
+    {
+      name = "unist_util_position___unist_util_position_3.1.0.tgz";
+      path = fetchurl {
+        name = "unist_util_position___unist_util_position_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.1.0.tgz";
+        sha1 = "1c42ee6301f8d52f47d14f62bbdb796571fa2d47";
+      };
+    }
+    {
+      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";
+        url  = "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz";
+        sha1 = "cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da";
+      };
+    }
+    {
+      name = "unist_util_visit_parents___unist_util_visit_parents_3.1.1.tgz";
+      path = fetchurl {
+        name = "unist_util_visit_parents___unist_util_visit_parents_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz";
+        sha1 = "65a6ce698f78a6b0f56aa0e88f13801886cdaef6";
+      };
+    }
+    {
+      name = "unist_util_visit___unist_util_visit_2.0.3.tgz";
+      path = fetchurl {
+        name = "unist_util_visit___unist_util_visit_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz";
+        sha1 = "c3703893146df47203bb8a9795af47d7b971208c";
+      };
+    }
+    {
       name = "universalify___universalify_0.1.2.tgz";
       path = fetchurl {
         name = "universalify___universalify_0.1.2.tgz";
@@ -11138,11 +12218,11 @@
       };
     }
     {
-      name = "uri_js___uri_js_4.2.2.tgz";
+      name = "uri_js___uri_js_4.4.0.tgz";
       path = fetchurl {
-        name = "uri_js___uri_js_4.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz";
-        sha1 = "94c540e1ff772956e2299507c010aea6c8838eb0";
+        name = "uri_js___uri_js_4.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz";
+        sha1 = "aa714261de793e8a82347a7bcc9ce74e86f28602";
       };
     }
     {
@@ -11194,11 +12274,11 @@
       };
     }
     {
-      name = "utf_8_validate___utf_8_validate_5.0.2.tgz";
+      name = "utf_8_validate___utf_8_validate_5.0.3.tgz";
       path = fetchurl {
-        name = "utf_8_validate___utf_8_validate_5.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.2.tgz";
-        sha1 = "63cfbccd85dc1f2b66cf7a1d0eebc08ed056bfb3";
+        name = "utf_8_validate___utf_8_validate_5.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.3.tgz";
+        sha1 = "3b64e418ad2ff829809025fdfef595eab2f03a27";
       };
     }
     {
@@ -11274,11 +12354,11 @@
       };
     }
     {
-      name = "v8_compile_cache___v8_compile_cache_2.0.3.tgz";
+      name = "v8_compile_cache___v8_compile_cache_2.2.0.tgz";
       path = fetchurl {
-        name = "v8_compile_cache___v8_compile_cache_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz";
-        sha1 = "00f7494d2ae2b688cfe2899df6ed2c54bef91dbe";
+        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";
       };
     }
     {
@@ -11362,6 +12442,54 @@
       };
     }
     {
+      name = "vfile_location___vfile_location_3.2.0.tgz";
+      path = fetchurl {
+        name = "vfile_location___vfile_location_3.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.2.0.tgz";
+        sha1 = "d8e41fbcbd406063669ebf6c33d56ae8721d0f3c";
+      };
+    }
+    {
+      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_reporter___vfile_reporter_6.0.1.tgz";
+      path = fetchurl {
+        name = "vfile_reporter___vfile_reporter_6.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/vfile-reporter/-/vfile-reporter-6.0.1.tgz";
+        sha1 = "45d4dc11df2e312196ea2ceb95e42a67fc8ce814";
+      };
+    }
+    {
+      name = "vfile_sort___vfile_sort_2.2.2.tgz";
+      path = fetchurl {
+        name = "vfile_sort___vfile_sort_2.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/vfile-sort/-/vfile-sort-2.2.2.tgz";
+        sha1 = "720fe067ce156aba0b411a01bb0dc65596aa1190";
+      };
+    }
+    {
+      name = "vfile_statistics___vfile_statistics_1.1.4.tgz";
+      path = fetchurl {
+        name = "vfile_statistics___vfile_statistics_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/vfile-statistics/-/vfile-statistics-1.1.4.tgz";
+        sha1 = "b99fd15ecf0f44ba088cc973425d666cb7a9f245";
+      };
+    }
+    {
+      name = "vfile___vfile_4.2.0.tgz";
+      path = fetchurl {
+        name = "vfile___vfile_4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/vfile/-/vfile-4.2.0.tgz";
+        sha1 = "26c78ac92eb70816b01d4565e003b7e65a2a0e01";
+      };
+    }
+    {
       name = "visibilityjs___visibilityjs_1.2.8.tgz";
       path = fetchurl {
         name = "visibilityjs___visibilityjs_1.2.8.tgz";
@@ -11386,19 +12514,27 @@
       };
     }
     {
-      name = "w3c_hr_time___w3c_hr_time_1.0.1.tgz";
+      name = "w3c_hr_time___w3c_hr_time_1.0.2.tgz";
       path = fetchurl {
-        name = "w3c_hr_time___w3c_hr_time_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz";
-        sha1 = "82ac2bff63d950ea9e3189a58a65625fedf19045";
+        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___watchpack_1.6.0.tgz";
+      name = "watchpack_chokidar2___watchpack_chokidar2_2.0.1.tgz";
       path = fetchurl {
-        name = "watchpack___watchpack_1.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz";
-        sha1 = "4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00";
+        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";
       };
     }
     {
@@ -11426,19 +12562,11 @@
       };
     }
     {
-      name = "webpack_cli___webpack_cli_3.3.11.tgz";
-      path = fetchurl {
-        name = "webpack_cli___webpack_cli_3.3.11.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.11.tgz";
-        sha1 = "3bf21889bf597b5d82c38f215135a411edfdc631";
-      };
-    }
-    {
-      name = "webpack_log___webpack_log_2.0.0.tgz";
+      name = "webpack_cli___webpack_cli_3.3.12.tgz";
       path = fetchurl {
-        name = "webpack_log___webpack_log_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz";
-        sha1 = "5b7928e0637593f119d32f6227c1e0ac31e1b47f";
+        name = "webpack_cli___webpack_cli_3.3.12.tgz";
+        url  = "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.12.tgz";
+        sha1 = "94e9ada081453cd0aa609c99e500012fd3ad2d4a";
       };
     }
     {
@@ -11458,11 +12586,11 @@
       };
     }
     {
-      name = "webpack___webpack_4.41.6.tgz";
+      name = "webpack___webpack_4.44.2.tgz";
       path = fetchurl {
-        name = "webpack___webpack_4.41.6.tgz";
-        url  = "https://registry.yarnpkg.com/webpack/-/webpack-4.41.6.tgz";
-        sha1 = "12f2f804bf6542ef166755050d4afbc8f66ba7e1";
+        name = "webpack___webpack_4.44.2.tgz";
+        url  = "https://registry.yarnpkg.com/webpack/-/webpack-4.44.2.tgz";
+        sha1 = "6bfe2b0af055c8b2d1e90ed2cd9363f841266b72";
       };
     }
     {
@@ -11522,27 +12650,19 @@
       };
     }
     {
-      name = "window_size___window_size_0.1.0.tgz";
-      path = fetchurl {
-        name = "window_size___window_size_0.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz";
-        sha1 = "5438cd2ea93b202efa3a19fe8887aee7c94f9c9d";
-      };
-    }
-    {
-      name = "winston_transport___winston_transport_4.3.0.tgz";
+      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";
       };
     }
     {
@@ -11562,19 +12682,11 @@
       };
     }
     {
-      name = "wordwrap___wordwrap_0.0.2.tgz";
+      name = "wordwrap___wordwrap_1.0.0.tgz";
       path = fetchurl {
-        name = "wordwrap___wordwrap_0.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz";
-        sha1 = "b79669bb42ecb409f83d583cad52ca17eaa1643f";
-      };
-    }
-    {
-      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 = "wordwrap___wordwrap_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz";
+        sha1 = "27584810891456a4171c8d0226441ade90cbcaeb";
       };
     }
     {
@@ -11594,6 +12706,14 @@
       };
     }
     {
+      name = "wrapped___wrapped_1.0.1.tgz";
+      path = fetchurl {
+        name = "wrapped___wrapped_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/wrapped/-/wrapped-1.0.1.tgz";
+        sha1 = "c783d9d807b273e9b01e851680a938c87c907242";
+      };
+    }
+    {
       name = "wrappy___wrappy_1.0.2.tgz";
       path = fetchurl {
         name = "wrappy___wrappy_1.0.2.tgz";
@@ -11626,11 +12746,19 @@
       };
     }
     {
-      name = "ws___ws_3.3.3.tgz";
+      name = "ws___ws_7.4.0.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_6.1.4.tgz";
       path = fetchurl {
-        name = "ws___ws_3.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz";
-        sha1 = "f1cf84fe2d5e901ebce94efaece785f187a228f2";
+        name = "ws___ws_6.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz";
+        sha1 = "5b5c8800afab925e94ccb29d153c8d02c1776ef9";
       };
     }
     {
@@ -11650,19 +12778,19 @@
       };
     }
     {
-      name = "xml_crypto___xml_crypto_1.4.0.tgz";
+      name = "xml_crypto___xml_crypto_2.0.0.tgz";
       path = fetchurl {
-        name = "xml_crypto___xml_crypto_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/xml-crypto/-/xml-crypto-1.4.0.tgz";
-        sha1 = "de1cec8cd31cbd689cd90d3d6e8a27d4ae807de7";
+        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.0.0.tgz";
+      name = "xml_encryption___xml_encryption_1.2.1.tgz";
       path = fetchurl {
-        name = "xml_encryption___xml_encryption_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/xml-encryption/-/xml-encryption-1.0.0.tgz";
-        sha1 = "fe50d3bbbe2ae06876d6aa95aa3bf958284e1612";
+        name = "xml_encryption___xml_encryption_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/xml-encryption/-/xml-encryption-1.2.1.tgz";
+        sha1 = "e6d18817c4309fd07ca7793cca93c3fd06745baa";
       };
     }
     {
@@ -11738,11 +12866,11 @@
       };
     }
     {
-      name = "xmldom___xmldom_0.2.1.tgz";
+      name = "xmldom___xmldom_0.4.0.tgz";
       path = fetchurl {
-        name = "xmldom___xmldom_0.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/xmldom/-/xmldom-0.2.1.tgz";
-        sha1 = "cac9465066f161e1c3302793ea4dbe59c518274f";
+        name = "xmldom___xmldom_0.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/xmldom/-/xmldom-0.4.0.tgz";
+        sha1 = "8771e482a333af44587e30ce026f0998c23f3830";
       };
     }
     {
@@ -11778,11 +12906,11 @@
       };
     }
     {
-      name = "xss___xss_1.0.6.tgz";
+      name = "xss___xss_1.0.8.tgz";
       path = fetchurl {
-        name = "xss___xss_1.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/xss/-/xss-1.0.6.tgz";
-        sha1 = "eaf11e9fc476e3ae289944a1009efddd8a124b51";
+        name = "xss___xss_1.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/xss/-/xss-1.0.8.tgz";
+        sha1 = "32feb87feb74b3dcd3d404b7a68ababf10700535";
       };
     }
     {
@@ -11826,43 +12954,27 @@
       };
     }
     {
-      name = "yargs_parser___yargs_parser_13.1.1.tgz";
-      path = fetchurl {
-        name = "yargs_parser___yargs_parser_13.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz";
-        sha1 = "d26058532aa06d365fe091f6a1fc06b2f7e5eca0";
-      };
-    }
-    {
-      name = "yargs___yargs_13.2.4.tgz";
-      path = fetchurl {
-        name = "yargs___yargs_13.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz";
-        sha1 = "0b562b794016eb9651b98bd37acf364aa5d6dc83";
-      };
-    }
-    {
-      name = "yargs___yargs_13.3.0.tgz";
+      name = "yallist___yallist_4.0.0.tgz";
       path = fetchurl {
-        name = "yargs___yargs_13.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz";
-        sha1 = "4c657a55e07e5f2cf947f8a366567c04a0dedc83";
+        name = "yallist___yallist_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz";
+        sha1 = "9bb92790d9c0effec63be73519e11a35019a3a72";
       };
     }
     {
-      name = "yargs___yargs_3.10.0.tgz";
+      name = "yargs_parser___yargs_parser_13.1.2.tgz";
       path = fetchurl {
-        name = "yargs___yargs_3.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz";
-        sha1 = "f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1";
+        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 = "yauzl___yauzl_2.4.1.tgz";
+      name = "yargs___yargs_13.3.2.tgz";
       path = fetchurl {
-        name = "yauzl___yauzl_2.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz";
-        sha1 = "9528f442dab1b2284e58b4379bb194e22e0c4005";
+        name = "yargs___yargs_13.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz";
+        sha1 = "ad7ffefec1aa59565ac915f82dccb38a9c31a2dd";
       };
     }
     {
@@ -11874,11 +12986,11 @@
       };
     }
     {
-      name = "zip_stream___zip_stream_1.2.0.tgz";
+      name = "zip_stream___zip_stream_4.0.4.tgz";
       path = fetchurl {
-        name = "zip_stream___zip_stream_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/zip-stream/-/zip-stream-1.2.0.tgz";
-        sha1 = "a8bc45f4c1b49699c6b90198baacaacdbcd4ba04";
+        name = "zip_stream___zip_stream_4.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.0.4.tgz";
+        sha1 = "3a8f100b73afaa7d1ae9338d910b321dec77ff3a";
       };
     }
   ];
diff --git a/pkgs/servers/web-apps/searx/default.nix b/pkgs/servers/web-apps/searx/default.nix
index dc87acddd88..b56e430d995 100644
--- a/pkgs/servers/web-apps/searx/default.nix
+++ b/pkgs/servers/web-apps/searx/default.nix
@@ -22,7 +22,7 @@ buildPythonApplication rec {
     pyyaml lxml grequests flaskbabel flask requests
     gevent speaklater Babel pytz dateutil pygments
     pyasn1 pyasn1-modules ndg-httpsclient certifi pysocks
-    jinja2
+    jinja2 werkzeug
   ];
 
   checkInputs = [
diff --git a/pkgs/servers/wsdd/default.nix b/pkgs/servers/wsdd/default.nix
index 1411b6f3adc..45006cc59e3 100644
--- a/pkgs/servers/wsdd/default.nix
+++ b/pkgs/servers/wsdd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, makeWrapper, nixosTests, python3 }:
+{ stdenv, fetchFromGitHub, makeWrapper, nixosTests, python3, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "wsdd";
@@ -15,6 +15,15 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ python3 ];
 
+  patches = [
+    (fetchpatch {	
+      # https://github.com/christgau/wsdd/issues/72
+      name = "fix_send_messages_using_correct_socket.patch";	
+      url = "https://github.com/christgau/wsdd/commit/1ed74fe73a9fe2e2720859e2822116d65e4ffa5b.patch";	
+      sha256 = "1n9bqvh20nhnvnc5pxvzf9kk8nky6rmbmfryg65lfmr1hmg676zg";	
+    })
+  ];
+
   installPhase = ''
     install -Dm0755 src/wsdd.py $out/bin/wsdd
     wrapProgram $out/bin/wsdd --prefix PYTHONPATH : "$PYTHONPATH"
diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix
index 42b2c69f688..aeb08090d6f 100644
--- a/pkgs/servers/x11/xorg/default.nix
+++ b/pkgs/servers/x11/xorg/default.nix
@@ -2029,11 +2029,11 @@ lib.makeScope newScope (self: with self; {
   }) {};
 
   xf86videonouveau = callPackage ({ stdenv, pkgconfig, fetchurl, xorgproto, libdrm, udev, libpciaccess, xorgserver }: stdenv.mkDerivation {
-    name = "xf86-video-nouveau-1.0.15";
+    name = "xf86-video-nouveau-1.0.16";
     builder = ./builder.sh;
     src = fetchurl {
-      url = "mirror://xorg/individual/driver/xf86-video-nouveau-1.0.15.tar.bz2";
-      sha256 = "0k0xah72ryjwak4dc4crszxrlkmi9x1s7p3sd4la642n77yi1pmf";
+      url = "mirror://xorg/individual/driver/xf86-video-nouveau-1.0.16.tar.bz2";
+      sha256 = "01mz8gnq7j6bvrqb2ljm3d1wpjhi9p2z2w8zbkdrqmqmcj060h1h";
     };
     hardeningDisable = [ "bindnow" "relro" ];
     nativeBuildInputs = [ pkgconfig ];
@@ -2289,11 +2289,11 @@ lib.makeScope newScope (self: with self; {
   }) {};
 
   xf86videovesa = callPackage ({ stdenv, pkgconfig, fetchurl, xorgproto, libpciaccess, xorgserver }: stdenv.mkDerivation {
-    name = "xf86-video-vesa-2.4.0";
+    name = "xf86-video-vesa-2.5.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = "mirror://xorg/individual/driver/xf86-video-vesa-2.4.0.tar.bz2";
-      sha256 = "1373vsxn6qh00na0s9c09kf09gj78rzi98zq93id8v5zsya3qi5z";
+      url = "mirror://xorg/individual/driver/xf86-video-vesa-2.5.0.tar.bz2";
+      sha256 = "0nf6ai74c60xk96kgr8q9mx6lrxm5id3765ws4d801irqzrj85hz";
     };
     hardeningDisable = [ "bindnow" "relro" ];
     nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/servers/x11/xorg/dont-create-logdir-during-build.patch b/pkgs/servers/x11/xorg/dont-create-logdir-during-build.patch
new file mode 100644
index 00000000000..3675292f9c9
--- /dev/null
+++ b/pkgs/servers/x11/xorg/dont-create-logdir-during-build.patch
@@ -0,0 +1,32 @@
+---
+ hw/xfree86/Makefile.am | 1 -
+ hw/xfree86/Makefile.in | 1 -
+ 2 files changed, 2 deletions(-)
+
+diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
+index 9aeaea1..dcca3b8 100644
+--- a/hw/xfree86/Makefile.am
++++ b/hw/xfree86/Makefile.am
+@@ -100,7 +100,6 @@ EXTRA_DIST = xorgconf.cpp
+ 
+ # Without logdir, X will post an error on the terminal and will not start
+ install-data-local:
+-	$(AM_V_GEN)$(MKDIR_P) $(DESTDIR)$(logdir)
+ if CYGWIN
+ 	$(INSTALL_DATA) libXorg.exe.a $(DESTDIR)$(libdir)/libXorg.exe.a
+ endif
+diff --git a/hw/xfree86/Makefile.in b/hw/xfree86/Makefile.in
+index c4fceee..74da8f1 100644
+--- a/hw/xfree86/Makefile.in
++++ b/hw/xfree86/Makefile.in
+@@ -1161,7 +1161,6 @@ uninstall-am: uninstall-binPROGRAMS uninstall-local \
+ 
+ # Without logdir, X will post an error on the terminal and will not start
+ install-data-local:
+-	$(AM_V_GEN)$(MKDIR_P) $(DESTDIR)$(logdir)
+ @CYGWIN_TRUE@	$(INSTALL_DATA) libXorg.exe.a $(DESTDIR)$(libdir)/libXorg.exe.a
+ 
+ install-exec-hook:
+-- 
+2.25.4
+
diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix
index 02dfb7ee1f5..e31d1ab707c 100644
--- a/pkgs/servers/x11/xorg/overrides.nix
+++ b/pkgs/servers/x11/xorg/overrides.nix
@@ -74,7 +74,8 @@ self: super:
   mkfontdir = self.mkfontscale;
 
   libxcb = super.libxcb.overrideAttrs (attrs: {
-    configureFlags = [ "--enable-xkb" "--enable-xinput" ];
+    configureFlags = [ "--enable-xkb" "--enable-xinput" ]
+      ++ stdenv.lib.optional stdenv.hostPlatform.isStatic "--disable-shared";
     outputs = [ "out" "dev" "man" "doc" ];
   });
 
@@ -82,15 +83,18 @@ self: super:
     outputs = [ "out" "dev" "man" ];
     configureFlags = attrs.configureFlags or []
       ++ malloc0ReturnsNullCrossFlag;
-    depsBuildBuild = [ buildPackages.stdenv.cc ];
+    depsBuildBuild = [
+      buildPackages.stdenv.cc
+    ] ++ stdenv.lib.optionals stdenv.hostPlatform.isStatic [
+      (self.buildPackages.stdenv.cc.libc.static or null)
+    ];
     preConfigure = ''
       sed 's,^as_dummy.*,as_dummy="\$PATH",' -i configure
     '';
-    postInstall =
-      ''
-        # Remove useless DocBook XML files.
-        rm -rf $out/share/doc
-      '';
+    postInstall = ''
+      # Remove useless DocBook XML files.
+      rm -rf $out/share/doc
+    '';
     CPP = stdenv.lib.optionalString stdenv.isDarwin "clang -E -";
     propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.xorgproto ];
   });
@@ -138,6 +142,11 @@ self: super:
   xdpyinfo = super.xdpyinfo.overrideAttrs (attrs: {
     configureFlags = attrs.configureFlags or []
       ++ malloc0ReturnsNullCrossFlag;
+    preConfigure = attrs.preConfigure or ""
+    # missing transitive dependencies
+    + stdenv.lib.optionalString stdenv.hostPlatform.isStatic ''
+      export NIX_CFLAGS_LINK="$NIX_CFLAGS_LINK -lXau -lXdmcp"
+    '';
   });
 
   # Propagate some build inputs because of header file dependencies.
@@ -223,8 +232,9 @@ self: super:
   libXi = super.libXi.overrideAttrs (attrs: {
     outputs = [ "out" "dev" "man" "doc" ];
     propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.libXfixes ];
-    configureFlags = stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
-      "xorg_cv_malloc0_returns_null=no";
+    configureFlags = stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+      "xorg_cv_malloc0_returns_null=no"
+    ] ++ stdenv.lib.optional stdenv.hostPlatform.isStatic "--disable-shared";
   });
 
   libXinerama = super.libXinerama.overrideAttrs (attrs: {
@@ -571,7 +581,7 @@ self: super:
       attrs =
         if (abiCompat == null || lib.hasPrefix abiCompat version) then
           attrs_passed // {
-            buildInputs = attrs_passed.buildInputs ++ [ libdrm.dev ]; patchPhase = ''
+            buildInputs = attrs_passed.buildInputs ++ [ libdrm.dev ]; postPatch = ''
             for i in dri3/*.c
             do
               sed -i -e "s|#include <drm_fourcc.h>|#include <libdrm/drm_fourcc.h>|" $i
@@ -626,6 +636,12 @@ self: super:
       if (!isDarwin)
       then {
         outputs = [ "out" "dev" ];
+        patches = [
+          # The build process tries to create the specified logdir when building.
+          #
+          # We set it to /var/log which can't be touched from inside the sandbox causing the build to hard-fail
+          ./dont-create-logdir-during-build.patch
+        ];
         buildInputs = commonBuildInputs ++ [ libdrm mesa ];
         propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ libpciaccess epoxy ] ++ commonPropagatedBuildInputs ++ lib.optionals stdenv.isLinux [
           udev
@@ -642,6 +658,7 @@ self: super:
           "--with-xkb-bin-directory=${self.xkbcomp}/bin"
           "--with-xkb-path=${self.xkeyboardconfig}/share/X11/xkb"
           "--with-xkb-output=$out/share/X11/xkb/compiled"
+          "--with-log-dir=/var/log"
           "--enable-glamor"
         ] ++ lib.optionals stdenv.hostPlatform.isMusl [
           "--disable-tls"
@@ -738,6 +755,11 @@ self: super:
 
   xauth = super.xauth.overrideAttrs (attrs: {
     doCheck = false; # fails
+    preConfigure = attrs.preConfigure or ""
+    # missing transitive dependencies
+    + stdenv.lib.optionalString stdenv.hostPlatform.isStatic ''
+      export NIX_CFLAGS_LINK="$NIX_CFLAGS_LINK -lxcb -lXau -lXdmcp"
+    '';
   });
 
   xcursorthemes = super.xcursorthemes.overrideAttrs (attrs: {
@@ -758,8 +780,8 @@ self: super:
     ];
     propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.xauth ]
                          ++ lib.optionals isDarwin [ self.libX11 self.xorgproto ];
-    prePatch = ''
-      sed -i 's|^defaultserverargs="|&-logfile \"$HOME/.xorg.log\"|p' startx.cpp
+    postFixup = ''
+      substituteInPlace $out/bin/startx --replace $out/etc/X11/xinit/xserverrc /etc/X11/xinit/xserverrc
     '';
   });
 
diff --git a/pkgs/servers/x11/xorg/tarballs.list b/pkgs/servers/x11/xorg/tarballs.list
index 4fc3f3304e1..fdfafd1837d 100644
--- a/pkgs/servers/x11/xorg/tarballs.list
+++ b/pkgs/servers/x11/xorg/tarballs.list
@@ -105,7 +105,7 @@ mirror://xorg/individual/driver/xf86-video-mach64-6.9.6.tar.bz2
 mirror://xorg/individual/driver/xf86-video-mga-2.0.0.tar.bz2
 mirror://xorg/individual/driver/xf86-video-neomagic-1.3.0.tar.bz2
 mirror://xorg/individual/driver/xf86-video-newport-0.2.4.tar.bz2
-mirror://xorg/individual/driver/xf86-video-nouveau-1.0.15.tar.bz2
+mirror://xorg/individual/driver/xf86-video-nouveau-1.0.16.tar.bz2
 mirror://xorg/individual/driver/xf86-video-nv-2.1.21.tar.bz2
 mirror://xorg/individual/driver/xf86-video-omap-0.4.5.tar.bz2
 mirror://xorg/individual/driver/xf86-video-openchrome-0.6.0.tar.bz2
@@ -125,7 +125,7 @@ mirror://xorg/individual/driver/xf86-video-tga-1.2.2.tar.bz2
 mirror://xorg/individual/driver/xf86-video-trident-1.3.8.tar.bz2
 mirror://xorg/individual/driver/xf86-video-v4l-0.3.0.tar.bz2
 mirror://xorg/individual/driver/xf86-video-vboxvideo-1.0.0.tar.bz2
-mirror://xorg/individual/driver/xf86-video-vesa-2.4.0.tar.bz2
+mirror://xorg/individual/driver/xf86-video-vesa-2.5.0.tar.bz2
 mirror://xorg/individual/driver/xf86-video-vmware-13.3.0.tar.bz2
 mirror://xorg/individual/driver/xf86-video-voodoo-1.2.5.tar.bz2
 mirror://xorg/individual/driver/xf86-video-wsfb-0.4.0.tar.bz2
diff --git a/pkgs/servers/xandikos/default.nix b/pkgs/servers/xandikos/default.nix
index 6bd3ebc4232..515282c1dbc 100644
--- a/pkgs/servers/xandikos/default.nix
+++ b/pkgs/servers/xandikos/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , fetchFromGitHub
 , python3Packages
+, installShellFiles
 }:
 
 python3Packages.buildPythonApplication rec {
@@ -24,10 +25,17 @@ python3Packages.buildPythonApplication rec {
     prometheus_client
   ];
 
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    installManPage xandikos.1
+  '';
+
   meta = with stdenv.lib; {
     description = "Lightweight CalDAV/CardDAV server";
     homepage = "https://github.com/jelmer/xandikos";
     license = licenses.gpl3Plus;
+    changelog = "https://github.com/jelmer/xandikos/blob/v${version}/NEWS";
     maintainers = with maintainers; [ _0x4A6F ];
   };
 }
diff --git a/pkgs/shells/any-nix-shell/default.nix b/pkgs/shells/any-nix-shell/default.nix
index bab39aef244..cfd000d84c6 100644
--- a/pkgs/shells/any-nix-shell/default.nix
+++ b/pkgs/shells/any-nix-shell/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "any-nix-shell";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "haslersn";
     repo = "any-nix-shell";
     rev = "v${version}";
-    sha256 = "02cv86csk1m8nlh2idvh7bjw43lpssmdawya2jhr4bam2606yzdv";
+    sha256 = "05xixgsdfv0qk648r74nvazw16dpw49ryz8dax9kwmhqrgkjaqv6";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/shells/bash/5.0.nix b/pkgs/shells/bash/5.1.nix
index 7120910d79e..8950e5f5b1c 100644
--- a/pkgs/shells/bash/5.0.nix
+++ b/pkgs/shells/bash/5.1.nix
@@ -1,9 +1,15 @@
-{ stdenv, buildPackages
-, fetchurl, binutils ? null, bison, util-linux
-
-# patch for cygwin requires readline support
-, interactive ? stdenv.isCygwin, readline80 ? null
-, withDocs ? false, texinfo ? null
+{ stdenv
+, buildPackages
+, fetchurl
+, binutils ? null
+, bison
+, util-linux
+
+  # patch for cygwin requires readline support
+, interactive ? stdenv.isCygwin
+, readline80 ? null
+, withDocs ? false
+, texinfo ? null
 }:
 
 with stdenv.lib;
@@ -11,21 +17,19 @@ with stdenv.lib;
 assert interactive -> readline80 != null;
 assert withDocs -> texinfo != null;
 assert stdenv.hostPlatform.isDarwin -> binutils != null;
-
 let
-  upstreamPatches = import ./bash-5.0-patches.nix (nr: sha256: fetchurl {
-    url = "mirror://gnu/bash/bash-5.0-patches/bash50-${nr}";
+  upstreamPatches = import ./bash-5.1-patches.nix (nr: sha256: fetchurl {
+    url = "mirror://gnu/bash/bash-5.1-patches/bash51-${nr}";
     inherit sha256;
   });
 in
-
 stdenv.mkDerivation rec {
   name = "bash-${optionalString interactive "interactive-"}${version}-p${toString (builtins.length upstreamPatches)}";
-  version = "5.0";
+  version = "5.1";
 
   src = fetchurl {
     url = "mirror://gnu/bash/bash-${version}.tar.gz";
-    sha256 = "0kgvfwqdcd90waczf4gx39xnrxzijhjrzyzv7s8v4w31qqm0za5l";
+    sha256 = "1alv68wplnfdm6mh39hm57060xgssb9vqca4yr1cyva0c342n0fc";
   };
 
   hardeningDisable = [ "format" ];
@@ -44,7 +48,7 @@ stdenv.mkDerivation rec {
   patchFlags = [ "-p0" "-T" ];
 
   patches = upstreamPatches
-    ++ [ ./pgrp-pipe-5.0.patch ];
+    ++ [ ./pgrp-pipe-5.1.patch ];
 
   configureFlags = [
     (if interactive then "--with-installed-readline" else "--disable-readline")
@@ -87,7 +91,8 @@ stdenv.mkDerivation rec {
     rm -f $out/lib/bash/Makefile.inc
   '';
 
-  postFixup = if interactive
+  postFixup =
+    if interactive
     then ''
       substituteInPlace "$out/bin/bashbug" \
         --replace '${stdenv.shell}' "$out/bin/bash"
@@ -101,7 +106,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.gnu.org/software/bash/";
     description =
       "GNU Bourne-Again Shell, the de facto standard shell on Linux" +
-        (if interactive then " (for interactive use)" else "");
+      (if interactive then " (for interactive use)" else "");
 
     longDescription = ''
       Bash is the shell, or command language interpreter, that will
diff --git a/pkgs/shells/bash/bash-5.0-patches.nix b/pkgs/shells/bash/bash-5.0-patches.nix
deleted file mode 100644
index 4315191d193..00000000000
--- a/pkgs/shells/bash/bash-5.0-patches.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-# Automatically generated by `update-patch-set.sh'; do not edit.
-
-patch: [
-(patch "001" "12bjfdy6bg8nhyw27bdgxn7h4paylx8d927skfmi9pxd1wgrxzpj")
-(patch "002" "01w7yrzmz10mw06ys0546vhl7isv2v402ziyvfd7k67588spvs47")
-(patch "003" "0ny81ridp5n0j69hb8ixrc7dmxybby54jbsz5hikly8kgg1wvssf")
-(patch "004" "021gqqvgydixkrmqss64b6srfdlkvnx88lyfzpxfrn5d6bc7li0l")
-(patch "005" "0xl2kyzm84nlyklrqzkn73ixabhzfhn9x91lzcmis89cppclvxav")
-(patch "006" "0844749ixk1z60437nkznzms1f0nzh9an62kj7sny6r0zyk2k1fn")
-(patch "007" "16xg37gp1b8zlj5969w8mcrparwqlcbj9695vn3qhgb7wdz1xd0p")
-(patch "008" "1qyp19krjh8zxvb0jgwmyjz40djslwcf4xi7kc1ab0iaca44bipf")
-(patch "009" "00yrjjqd95s81b21qq3ba1y7h879q8jaajlkjggc6grhcwbs4g7d")
-(patch "010" "04ca5bjv456v538mkspzvn4xb2zdphh31r4fpvfm9p5my0jw7yyn")
-(patch "011" "1sklyixvsv8993kxzs0jigacpdchjrq7jv5xpdx7kbqyp4rf6k9c")
-(patch "012" "0cz21qg2gbr40lfgza7g02bqi2qknwqgxnq459pjj640d0cywhr9")
-(patch "013" "16h9nwz3yzwj7fnxvlidjymdc4yr30h818433gh9j1x3in6igmzm")
-(patch "014" "12gm5bvv2pd3m72z2ilj26pa08c61az253dsgfl24vpf2ijywvjx")
-(patch "015" "0pm0px758w4i23s55wajcv6lqfiym7zgxvq0pxf6vclkv8nxy5x5")
-(patch "016" "0vdha332km2iwx8g2ld15jy7d24cbplzgr1531dpzylr9ajxglgz")
-(patch "017" "0cfw5lz3fcvq9h1fxihxvw940fjk68015jazvl8x8rlazgxbkwsc")
-(patch "018" "1lw1vv0aj6x254hgx4klbz8qkvwxif0g6i7dx116cnhhb8vlwcbw")
-]
diff --git a/pkgs/shells/bash/bash-5.1-patches.nix b/pkgs/shells/bash/bash-5.1-patches.nix
new file mode 100644
index 00000000000..b834deda0f8
--- /dev/null
+++ b/pkgs/shells/bash/bash-5.1-patches.nix
@@ -0,0 +1,8 @@
+# Automatically generated by `update-patch-set.sh'; do not edit.
+
+patch: [
+(patch "001" "1ymm8ppss6gyh9ifznjwiabrb4k91npd09c10y7mk66xp8yppc7b")
+(patch "002" "1gjx9zqcm407am3n2sh44b8dxm48kgm15rzfiijqxr01m0hn3shm")
+(patch "003" "1cdnpbfc64yhvkjj4d12s9ywp11g195vzfl1cab24sq55wkcrwi2")
+(patch "004" "11iwhy6v562bv0kk7lwj7f5jj65ma9bblivy0v02h3ggcibbdbls")
+]
diff --git a/pkgs/shells/bash/pgrp-pipe-5.0.patch b/pkgs/shells/bash/pgrp-pipe-5.1.patch
index 2a9fa6f33c3..2a9fa6f33c3 100644
--- a/pkgs/shells/bash/pgrp-pipe-5.0.patch
+++ b/pkgs/shells/bash/pgrp-pipe-5.1.patch
diff --git a/pkgs/shells/fish/plugins/build-fish-plugin.nix b/pkgs/shells/fish/plugins/build-fish-plugin.nix
new file mode 100644
index 00000000000..e2ec342e544
--- /dev/null
+++ b/pkgs/shells/fish/plugins/build-fish-plugin.nix
@@ -0,0 +1,77 @@
+{ stdenv, lib, writeShellScriptBin, writeScript, fish }:
+
+let
+  rtpPath = "share/fish";
+
+  mapToFuncPath = v:
+    if lib.isString v
+    then v
+    else "${v}/${rtpPath}/vendor_functions.d";
+
+  fishWithFunctionPath = plugins: let
+    funcPaths = map mapToFuncPath plugins;
+  in writeShellScriptBin "fish" ''
+    ${fish}/bin/fish \
+      --init-command \
+        "set --prepend fish_function_path ${lib.escapeShellArgs funcPaths}" \
+      "$@"
+  '';
+
+in attrs@{
+  pname,
+  version,
+  src,
+
+  name ? "fishplugin-${pname}-${version}",
+  unpackPhase ? "",
+  configurePhase ? ":",
+  buildPhase ? ":",
+  preInstall ? "",
+  postInstall ? "",
+  # name of the subdirectory in which to store the plugin
+  installPath ? lib.getName pname,
+
+  checkInputs ? [],
+  # plugins or paths to add to the function path of the test fish shell
+  checkFunctionPath ? [],
+  # test script to be executed in a fish shell
+  checkPhase ? "",
+  doCheck ? checkPhase != "",
+
+  ...
+}:
+
+stdenv.mkDerivation (attrs // {
+  inherit name;
+  inherit unpackPhase configurePhase buildPhase;
+
+  inherit preInstall postInstall;
+  installPhase = ''
+    runHook preInstall
+
+    (
+      install_vendor_files() {
+        source="$1"
+        target="$out/${rtpPath}/vendor_$2.d"
+
+        [ -d $source ] || return 0
+        mkdir -p $target
+        cp -r $source/*.fish "$target/"
+      }
+
+      install_vendor_files completions completions
+      install_vendor_files functions functions
+      install_vendor_files conf conf
+      install_vendor_files conf.d conf
+    )
+
+    runHook postInstall
+  '';
+
+  inherit doCheck;
+  checkInputs = [ (fishWithFunctionPath checkFunctionPath) ] ++ checkInputs;
+  checkPhase = ''
+    export HOME=$(mktemp -d)  # fish wants a writable home
+    fish "${writeScript "${name}-test" checkPhase}"
+  '';
+})
diff --git a/pkgs/shells/fish/plugins/default.nix b/pkgs/shells/fish/plugins/default.nix
new file mode 100644
index 00000000000..e543d49516a
--- /dev/null
+++ b/pkgs/shells/fish/plugins/default.nix
@@ -0,0 +1,13 @@
+{ lib, newScope }:
+
+lib.makeScope newScope (self: with self; {
+
+  buildFishPlugin = callPackage ./build-fish-plugin.nix { };
+
+  fishtape = callPackage ./fishtape.nix { };
+
+  foreign-env = callPackage ./foreign-env { };
+
+  pure = callPackage ./pure.nix { };
+
+})
diff --git a/pkgs/shells/fish/plugins/fishtape.nix b/pkgs/shells/fish/plugins/fishtape.nix
new file mode 100644
index 00000000000..326ff61c417
--- /dev/null
+++ b/pkgs/shells/fish/plugins/fishtape.nix
@@ -0,0 +1,32 @@
+{ lib, buildFishPlugin, fetchFromGitHub }:
+
+buildFishPlugin rec {
+  pname = "fishtape";
+  version = "2.1.3";
+
+  src = fetchFromGitHub {
+    owner = "jorgebucaran";
+    repo = "fishtape";
+    rev = version;
+    sha256 = "0dxcyhs2shhgy5xnwcimqja8vqsyk841x486lgq13i3y1h0kp2kd";
+  };
+
+  checkFunctionPath = [ "./" ]; # fishtape is introspective
+  checkPhase = ''
+    rm test/tty.fish  # test expects a tty
+    fishtape test/*.fish
+  '';
+
+  preInstall = ''
+    # move the function script in the proper sub-directory
+    mkdir functions
+    mv fishtape.fish functions/
+  '';
+
+  meta = {
+    description = "TAP-based test runner for Fish";
+    homepage = "https://github.com/jorgebucaran/fishtape";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ pacien ];
+  };
+}
diff --git a/pkgs/shells/fish/fish-foreign-env/default.nix b/pkgs/shells/fish/plugins/foreign-env/default.nix
index ef157f32392..03435340d17 100644
--- a/pkgs/shells/fish/fish-foreign-env/default.nix
+++ b/pkgs/shells/fish/plugins/foreign-env/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchFromGitHub, gnused, bash, coreutils }:
+{ lib, buildFishPlugin, fetchFromGitHub, gnused, bash, coreutils }:
 
-stdenv.mkDerivation {
-  pname = "fish-foreign-env";
+buildFishPlugin {
+  pname = "foreign-env";
   version = "git-20200209";
 
   src = fetchFromGitHub {
@@ -11,18 +11,16 @@ stdenv.mkDerivation {
     sha256 = "00xqlyl3lffc5l0viin1nyp819wf81fncqyz87jx8ljjdhilmgbs";
   };
 
-  installPhase = ''
-    mkdir -p $out/share/fish-foreign-env/functions/
-    cp functions/* $out/share/fish-foreign-env/functions/
+  patches = [ ./suppress-harmless-warnings.patch ];
+
+  preInstall = ''
     sed -e "s|sed|${gnused}/bin/sed|" \
         -e "s|bash|${bash}/bin/bash|" \
         -e "s|\| tr|\| ${coreutils}/bin/tr|" \
-        -i $out/share/fish-foreign-env/functions/*
+        -i functions/*
   '';
 
-  patches = [ ./suppress-harmless-warnings.patch ];
-
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A foreign environment interface for Fish shell";
     license = licenses.mit;
     maintainers = with maintainers; [ jgillich ];
diff --git a/pkgs/shells/fish/fish-foreign-env/suppress-harmless-warnings.patch b/pkgs/shells/fish/plugins/foreign-env/suppress-harmless-warnings.patch
index 6eed3515212..6eed3515212 100644
--- a/pkgs/shells/fish/fish-foreign-env/suppress-harmless-warnings.patch
+++ b/pkgs/shells/fish/plugins/foreign-env/suppress-harmless-warnings.patch
diff --git a/pkgs/shells/fish/plugins/pure.nix b/pkgs/shells/fish/plugins/pure.nix
new file mode 100644
index 00000000000..54af2e0663e
--- /dev/null
+++ b/pkgs/shells/fish/plugins/pure.nix
@@ -0,0 +1,29 @@
+{ lib, buildFishPlugin, fetchFromGitHub, git, fishtape }:
+
+buildFishPlugin rec {
+  pname = "pure";
+  version = "3.4.2";
+
+  src = fetchFromGitHub {
+    owner = "rafaelrinaldi";
+    repo = "pure";
+    rev = "v${version}";
+    sha256 = "134sz3f98gb6z2vgd5kkm6dd8pka5gijk843c32s616w35y07sga";
+  };
+
+  checkInputs = [ git ];
+  checkFunctionPath = [ fishtape ];
+  checkPhase = ''
+    # https://github.com/rafaelrinaldi/pure/issues/264
+    rm tests/_pure_string_width.test.fish
+
+    fishtape tests/*.test.fish
+  '';
+
+  meta = {
+    description = "Pretty, minimal and fast Fish prompt, ported from zsh";
+    homepage = "https://github.com/rafaelrinaldi/pure";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ pacien ];
+  };
+}
diff --git a/pkgs/shells/ion/default.nix b/pkgs/shells/ion/default.nix
index f84f150bc55..c2cc626bd3c 100644
--- a/pkgs/shells/ion/default.nix
+++ b/pkgs/shells/ion/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, rustPlatform }:
+{ stdenv, fetchFromGitHub, rustPlatform, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "ion";
@@ -20,6 +20,10 @@ rustPlatform.buildRustPackage rec {
     maintainers = with maintainers; [ dywedir ];
   };
 
+  buildInputs = stdenv.lib.optional stdenv.hostPlatform.isDarwin [
+    Security
+  ];
+
   passthru = {
     shellPath = "/bin/ion";
   };
diff --git a/pkgs/shells/nushell/default.nix b/pkgs/shells/nushell/default.nix
index 44961696195..1774a1c6677 100644
--- a/pkgs/shells/nushell/default.nix
+++ b/pkgs/shells/nushell/default.nix
@@ -15,16 +15,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nushell";
-  version = "0.23.0";
+  version = "0.24.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "0rbg0jchg59x0g4h0xahdm9qah8l8g4i2s8lkaqzdkm4yv29gqx4";
+    sha256 = "0nza860gg9lnkld9c7is93fmfxl9yay8yf2f18h16cgjk3n686kd";
   };
 
-  cargoSha256 = "1sbgn68n0rqh1m98dm3r2a3pqqqx4v7axw5djw8qlx4gv7xw1ql0";
+  cargoSha256 = "1mb6ws2zw089cx475c1vpvvxkzi8by6wmw4frans5lbl3a2lldl0";
 
   nativeBuildInputs = [ pkg-config ]
     ++ lib.optionals (withStableFeatures && stdenv.isLinux) [ python3 ];
diff --git a/pkgs/shells/tcsh/default.nix b/pkgs/shells/tcsh/default.nix
index 87cbf8c59f3..d6527ef24b5 100644
--- a/pkgs/shells/tcsh/default.nix
+++ b/pkgs/shells/tcsh/default.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchurl, fetchpatch
-, ncurses }:
+, ncurses
+}:
 
-with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "tcsh";
-  version = "6.22.02";
+  version = "6.22.03";
 
   src = fetchurl {
     urls = [
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
       "ftp://ftp.astron.com/pub/tcsh/${pname}-${version}.tar.gz"
       "ftp://ftp.funet.fi/pub/unix/shells/tcsh/${pname}-${version}.tar.gz"
     ];
-    sha256 = "0nw8prz1n0lmr82wnpyhrzmki630afn7p9cfgr3vl00vr9c72a7d";
+    sha256 = "sha256-viz9ZT0qDH9QbS3RTBIyS6dJvUhAN75t9Eo5c/UiYrc=";
   };
 
   buildInputs = [ ncurses ];
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
       sha256 = "1qc6ydxhdfizsbkaxhpn3wib8sfphrw10xnnsxx2prvzg9g2zp67";
     });
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "An enhanced version of the Berkeley UNIX C shell (csh)";
     longDescription = ''
       tcsh is an enhanced but completely compatible version of the
diff --git a/pkgs/shells/zsh/default.nix b/pkgs/shells/zsh/default.nix
index 56c76289e85..eab6d88a0b7 100644
--- a/pkgs/shells/zsh/default.nix
+++ b/pkgs/shells/zsh/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation {
     "--with-tcsetpgrp"
     "--enable-pcre"
     "--enable-zprofile=${placeholder "out"}/etc/zprofile"
+    "--disable-site-fndir"
   ];
 
   # the zsh/zpty module is not available on hydra
diff --git a/pkgs/shells/zsh/oh-my-zsh/default.nix b/pkgs/shells/zsh/oh-my-zsh/default.nix
index 8264626b36d..2d13bf8e925 100644
--- a/pkgs/shells/zsh/oh-my-zsh/default.nix
+++ b/pkgs/shells/zsh/oh-my-zsh/default.nix
@@ -5,15 +5,15 @@
 , nix, nixfmt, jq, coreutils, gnused, curl, cacert }:
 
 stdenv.mkDerivation rec {
-  version = "2020-12-14";
+  version = "2021-01-05";
   pname = "oh-my-zsh";
-  rev = "f2a4b2b17bbf9103dd90d23a73163e9b4e0e47f1";
+  rev = "86f805280f6a8cf65d8d0a9380489aae4b72f767";
 
   src = fetchFromGitHub {
     inherit rev;
     owner = "ohmyzsh";
     repo = "ohmyzsh";
-    sha256 = "1kcrdvasphlrxcx5yzhlb5nmnzbbybl9lzp85r6bscsjsmgi7ssc";
+    sha256 = "1wf4g1z7fvravsp020xdqvczf4kcw1nh3b22djlsgd97n8qgziaz";
   };
 
   installPhase = ''
diff --git a/pkgs/shells/zsh/zsh-powerlevel10k/default.nix b/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
index c8e845eec99..7e39e6779d1 100644
--- a/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
+++ b/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
@@ -19,13 +19,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "powerlevel10k";
-  version = "1.14.3";
+  version = "1.14.4";
 
   src = fetchFromGitHub {
     owner = "romkatv";
     repo = "powerlevel10k";
     rev = "v${version}";
-    sha256 = "073d9hlf6x1nq63mzpywc1b8cljbm1dd8qr07fdf0hsk2fcjiqg7";
+    sha256 = "1072ikklvpvx6qf0q8ydbi1qc1dxjjfs4031b4zzgjw766xnpcbk";
   };
 
   patches = [
diff --git a/pkgs/test/default.nix b/pkgs/test/default.nix
index 8746f065b1b..f45e981cff0 100644
--- a/pkgs/test/default.nix
+++ b/pkgs/test/default.nix
@@ -39,6 +39,7 @@ with pkgs;
   cross = callPackage ./cross {};
 
   rustCustomSysroot = callPackage ./rust-sysroot {};
+  buildRustCrate = callPackage ../build-support/rust/build-rust-crate/test { };
 
   nixos-functions = callPackage ./nixos-functions {};
 
diff --git a/pkgs/tools/X11/opentabletdriver/default.nix b/pkgs/tools/X11/opentabletdriver/default.nix
new file mode 100644
index 00000000000..486cb50b7f3
--- /dev/null
+++ b/pkgs/tools/X11/opentabletdriver/default.nix
@@ -0,0 +1,164 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, fetchurl
+, linkFarmFromDrvs
+, dotnet-netcore
+, dotnet-sdk
+, dotnetPackages
+, dpkg
+, gtk3
+, libX11
+, libXrandr
+, libappindicator
+, libevdev
+, libnotify
+, udev
+, copyDesktopItems
+, makeDesktopItem
+, makeWrapper
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "OpenTabletDriver";
+  version = "0.4.2";
+
+  src = fetchFromGitHub {
+    owner = "InfinityGhost";
+    repo = "OpenTabletDriver";
+    rev = "v${version}";
+    sha256 = "048y7gjlk2yw4vh62px1d9w0va6ap1a0cndcpbirlyj9q6b8jxax";
+  };
+
+  debPkg = fetchurl {
+    url = "https://github.com/InfinityGhost/OpenTabletDriver/releases/download/v${version}/OpenTabletDriver.deb";
+    sha256 = "13gg0dhvjy88h9lhcrp30fjiwgb9dzjsgk1k760pi1ki71a5vz2r";
+  };
+
+  nativeBuildInputs = [
+    dotnet-sdk
+    dotnetPackages.Nuget
+    dpkg
+    copyDesktopItems
+    makeWrapper
+    wrapGAppsHook
+  ];
+
+  nugetDeps = linkFarmFromDrvs "${pname}-nuget-deps" (import ./deps.nix {
+    fetchNuGet = { name, version, sha256 }: fetchurl {
+      name = "nuget-${name}-${version}.nupkg";
+      url = "https://www.nuget.org/api/v2/package/${name}/${version}";
+      inherit sha256;
+    };
+  });
+
+  runtimeDeps = [
+    gtk3
+    libX11
+    libXrandr
+    libappindicator
+    libevdev
+    libnotify
+    udev
+  ];
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    export DOTNET_CLI_TELEMETRY_OPTOUT=1
+    export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=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
+
+    for project in OpenTabletDriver.{Console,Daemon,UX.Gtk}; do
+        dotnet restore --source "$PWD/nixos" $project
+    done
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    for project in OpenTabletDriver.{Console,Daemon,UX.Gtk}; do
+        dotnet build $project \
+            --no-restore \
+            --configuration Release \
+            --framework net5
+    done
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    for project in OpenTabletDriver.{Console,Daemon,UX.Gtk}; do
+      dotnet publish $project \
+          --no-build \
+          --no-self-contained \
+          --configuration Release \
+          --framework net5 \
+          --output $out/lib
+    done
+
+    # Give a more "*nix" name to the binaries
+    makeWrapper $out/lib/OpenTabletDriver.Console $out/bin/otd \
+        "''${gappsWrapperArgs[@]}" \
+        --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
+        --set DOTNET_ROOT "${dotnet-netcore}" \
+        --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDeps}"
+
+    makeWrapper $out/lib/OpenTabletDriver.Daemon $out/bin/otd-daemon \
+        "''${gappsWrapperArgs[@]}" \
+        --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
+        --set DOTNET_ROOT "${dotnet-netcore}" \
+        --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDeps}"
+
+    makeWrapper $out/lib/OpenTabletDriver.UX.Gtk $out/bin/otd-gui \
+        "''${gappsWrapperArgs[@]}" \
+        --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
+        --set DOTNET_ROOT "${dotnet-netcore}" \
+        --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDeps}"
+
+    mkdir -p $out/lib/OpenTabletDriver
+    cp -rv ./OpenTabletDriver/Configurations $out/lib/OpenTabletDriver
+    install -Dm644 $src/OpenTabletDriver.UX/Assets/otd.png -t $out/share/pixmaps
+
+    # TODO: Ideally this should be build from OpenTabletDriver/OpenTabletDriver-udev instead
+    dpkg-deb --fsys-tarfile ${debPkg} | tar xf - ./usr/lib/udev/rules.d/30-opentabletdriver.rules
+    install -Dm644 ./usr/lib/udev/rules.d/30-opentabletdriver.rules -t $out/lib/udev/rules.d
+
+    runHook postInstall
+  '';
+
+  desktopItems = [
+    (makeDesktopItem {
+      desktopName = "OpenTabletDriver";
+      name = "OpenTabletDriver";
+      exec = "otd-gui";
+      icon = "otd";
+      comment = meta.description;
+      type = "Application";
+      categories = "Utility;";
+    })
+  ];
+
+  dontWrapGApps = true;
+  dontStrip = true;
+
+  meta = with lib; {
+    description = "Open source, cross-platform, user-mode tablet driver";
+    homepage = "https://github.com/InfinityGhost/OpenTabletDriver";
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ thiagokokada ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/X11/opentabletdriver/deps.nix b/pkgs/tools/X11/opentabletdriver/deps.nix
new file mode 100644
index 00000000000..34d2981cff5
--- /dev/null
+++ b/pkgs/tools/X11/opentabletdriver/deps.nix
@@ -0,0 +1,462 @@
+{ fetchNuGet }: [
+  (fetchNuGet {
+    name = "AtkSharp";
+    version = "3.22.25.74";
+    sha256 = "04zjpjrddw5clac0mjpk0q00rbmv45bh1bsqa4s3pc5pb7fm9cd9";
+  })
+  (fetchNuGet {
+    name = "CairoSharp";
+    version = "3.22.25.74";
+    sha256 = "0sx7vmwcrfbkg3g887v051iklcdmdhh43ndp96nk4bccjimmmwl6";
+  })
+  (fetchNuGet {
+    name = "Eto.Forms";
+    version = "2.5.6";
+    sha256 = "035ny8jlanchwq16gcq0xb6ywabjl71c7qbpv26sjwg96na8vz51";
+  })
+  (fetchNuGet {
+    name = "Eto.Platform.Gtk";
+    version = "2.5.6";
+    sha256 = "1ijkjd3lc7x59yk369kxipzgk1zhyr9g6k319wc0n033vij26mwl";
+  })
+  (fetchNuGet {
+    name = "GdkSharp";
+    version = "3.22.25.74";
+    sha256 = "07sdfvqk2jmyjj7fyd0mikhnzsk52zd3g2dhip8kz3006cczqm81";
+  })
+  (fetchNuGet {
+    name = "GioSharp";
+    version = "3.22.25.74";
+    sha256 = "01l4216bm5jxbxypkkq4d2527c6zd68kbywr3h1lr1darc9nf1d1";
+  })
+  (fetchNuGet {
+    name = "GLibSharp";
+    version = "3.22.25.74";
+    sha256 = "0k2p79z4wcswi528v0ykc37rsqfqi6xd6pl0j4csdj9zf19svgx2";
+  })
+  (fetchNuGet {
+    name = "GtkSharp";
+    version = "3.22.25.74";
+    sha256 = "0vazfvkjyzppcynqa1h70s1jmp4vq2j30v5x2scg8n2c5dxaj0k3";
+  })
+  (fetchNuGet {
+    name = "HidSharpCore";
+    version = "1.1.0";
+    sha256 = "122s5j3wrv8hcgnbxrnjqydvcfz7gdm8xq0wlwzrgwdjk44lr45a";
+  })
+  (fetchNuGet {
+    name = "MessagePack.Annotations";
+    version = "2.1.194";
+    sha256 = "1jkhq3hiy4brvzsywl4p4jb9jrnzs3vmgr3s8fxpb1dzafadw8b0";
+  })
+  (fetchNuGet {
+    name = "MessagePack";
+    version = "2.1.194";
+    sha256 = "1v2gyd9sd6hppfhlzngmzzhnpr39b95rwrqq0r9zzp480b6vzaj0";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Bcl.AsyncInterfaces";
+    version = "1.1.1";
+    sha256 = "0a1ahssqds2ympr7s4xcxv5y8jgxs7ahd6ah6fbgglj4rki1f1vw";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CSharp";
+    version = "4.4.1";
+    sha256 = "0z6d1i6xcf0c00z6rs75rgw4ncs9q2m8amasf6mmbf40fm02ry7g";
+  })
+  (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 = "3.0.0";
+    sha256 = "1bk8r4r3ihmi6322jmcag14jmw11mjqys202azqjzglcx59pxh51";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Targets";
+    version = "1.1.0";
+    sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
+  })
+  (fetchNuGet {
+    name = "Microsoft.VisualStudio.Threading.Analyzers";
+    version = "16.7.56";
+    sha256 = "04v9df0k7bsc0rzgkw4mnvi43pdrh42vk6xdcwn9m6im33m0nnz2";
+  })
+  (fetchNuGet {
+    name = "Microsoft.VisualStudio.Threading";
+    version = "16.7.56";
+    sha256 = "13x0xrsjxd86clf9cjjwmpzlyp8pkrf13riya7igs8zy93zw2qap";
+  })
+  (fetchNuGet {
+    name = "Microsoft.VisualStudio.Validation";
+    version = "15.5.31";
+    sha256 = "1ah99rn922qa0sd2k3h64m324f2r32pw8cn4cfihgvwx4qdrpmgw";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Primitives";
+    version = "4.3.0";
+    sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Registry";
+    version = "4.6.0";
+    sha256 = "0i4y782yrqqyx85pg597m20gm0v126w0j9ddk5z7xb3crx4z9f2s";
+  })
+  (fetchNuGet {
+    name = "Nerdbank.Streams";
+    version = "2.6.77";
+    sha256 = "13dnfwxa8syx7vfjmd5pcrqz31k0q8y3mmh6yz6bmljhjri65q5c";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "12.0.2";
+    sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "12.0.3";
+    sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x";
+  })
+  (fetchNuGet {
+    name = "PangoSharp";
+    version = "3.22.25.74";
+    sha256 = "172i1hjpz4rgqlilir8a57kgmciw9x0shz4zwbhhlr59mndvqbih";
+  })
+  (fetchNuGet {
+    name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "0rwpqngkqiapqc5c2cpkj7idhngrgss5qpnqg0yh40mbyflcxf8i";
+  })
+  (fetchNuGet {
+    name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "1n06gxwlinhs0w7s8a94r1q3lwqzvynxwd3mp10ws9bg6gck8n4r";
+  })
+  (fetchNuGet {
+    name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "0404wqrc7f2yc0wxv71y3nnybvqx8v4j9d47hlscxy759a525mc3";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Net.Http";
+    version = "4.3.0";
+    sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk";
+  })
+  (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.2";
+    sha256 = "0zy5r25jppz48i2bkg8b9lfig24xixg6nm3xyr1379zdnqnpm8f6";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System";
+    version = "4.3.0";
+    sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4";
+  })
+  (fetchNuGet {
+    name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "096ch4n4s8k82xga80lfmpimpzahd2ip1mgwdqgar0ywbbl6x438";
+  })
+  (fetchNuGet {
+    name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "1dm8fifl7rf1gy7lnwln78ch4rw54g0pl5g1c189vawavll7p6rj";
+  })
+  (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.2";
+    sha256 = "1m9z1k9kzva9n9kwinqxl97x2vgl79qhqjlv17k9s2ymcyv2bwr6";
+  })
+  (fetchNuGet {
+    name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "1cpx56mcfxz7cpn57wvj18sjisvzq8b5vd9rw16ihd2i6mcp3wa1";
+  })
+  (fetchNuGet {
+    name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "15gsm1a8jdmgmf8j5v1slfz8ks124nfdhk2vxs2rw3asrxalg8hi";
+  })
+  (fetchNuGet {
+    name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "0q0n5q1r1wnqmr5i5idsrd9ywl33k0js4pngkwq9p368mbxp8x1w";
+  })
+  (fetchNuGet {
+    name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "1x0g58pbpjrmj2x2qw17rdwwnrcl0wvim2hdwz48lixvwvp22n9c";
+  })
+  (fetchNuGet {
+    name = "StreamJsonRpc";
+    version = "2.6.121";
+    sha256 = "0xzvpk17w2skndzdg47j7gkrrvw6521db4mv8lc3v8hm97vs9m76";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Concurrent";
+    version = "4.3.0";
+    sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Immutable";
+    version = "1.7.1";
+    sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq";
+  })
+  (fetchNuGet {
+    name = "System.Collections";
+    version = "4.3.0";
+    sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
+  })
+  (fetchNuGet {
+    name = "System.CommandLine";
+    version = "2.0.0-beta1.20253.1";
+    sha256 = "16saf1fm9q80bb624fkqz0ksrwpnbw9617d7xg3jib7a2wgagm2r";
+  })
+  (fetchNuGet {
+    name = "System.CommandLine";
+    version = "2.0.0-beta1.20303.1";
+    sha256 = "0isnz8ipqlqim06hf56zlaq2vnsy5facvf5nvq6kzm5h1dm3l2vn";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel.Annotations";
+    version = "4.7.0";
+    sha256 = "06x1m46ddxj0ng28d7gry9gjkqdg2kp89jyf480g5gznyybbs49z";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Debug";
+    version = "4.3.0";
+    sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.DiagnosticSource";
+    version = "4.3.0";
+    sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tracing";
+    version = "4.3.0";
+    sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4";
+  })
+  (fetchNuGet {
+    name = "System.Globalization.Calendars";
+    version = "4.3.0";
+    sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq";
+  })
+  (fetchNuGet {
+    name = "System.Globalization.Extensions";
+    version = "4.3.0";
+    sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls";
+  })
+  (fetchNuGet {
+    name = "System.Globalization";
+    version = "4.3.0";
+    sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem.Primitives";
+    version = "4.3.0";
+    sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem";
+    version = "4.3.0";
+    sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw";
+  })
+  (fetchNuGet {
+    name = "System.IO.Pipelines";
+    version = "4.7.2";
+    sha256 = "16v4qaypm72cfsfqr8z3k6yrpzn0m3apgkh6aljfwpycdk150sf9";
+  })
+  (fetchNuGet {
+    name = "System.IO";
+    version = "4.3.0";
+    sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
+  })
+  (fetchNuGet {
+    name = "System.Linq";
+    version = "4.3.0";
+    sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
+  })
+  (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.4";
+    sha256 = "0kdp31b8819v88l719j6my0yas6myv9d1viql3qz5577mv819jhl";
+  })
+  (fetchNuGet {
+    name = "System.Net.Primitives";
+    version = "4.3.0";
+    sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii";
+  })
+  (fetchNuGet {
+    name = "System.Net.WebSockets";
+    version = "4.3.0";
+    sha256 = "1gfj800078kggcgl0xyl00a6y5k4wwh2k2qm69rjy22wbmq7fy4p";
+  })
+  (fetchNuGet {
+    name = "System.Numerics.Vectors";
+    version = "4.5.0";
+    sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.Lightweight";
+    version = "4.6.0";
+    sha256 = "0hry2k6b7kicg4zxnq0hhn0ys52711pxy7l9v5sp7gvp9cicwpgp";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit";
+    version = "4.7.0";
+    sha256 = "121l1z2ypwg02yz84dy6gr82phpys0njk7yask3sihgy214w43qp";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Primitives";
+    version = "4.3.0";
+    sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276";
+  })
+  (fetchNuGet {
+    name = "System.Reflection";
+    version = "4.3.0";
+    sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m";
+  })
+  (fetchNuGet {
+    name = "System.Resources.ResourceManager";
+    version = "4.3.0";
+    sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.CompilerServices.Unsafe";
+    version = "4.5.2";
+    sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.CompilerServices.Unsafe";
+    version = "4.7.1";
+    sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Extensions";
+    version = "4.3.0";
+    sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Handles";
+    version = "4.3.0";
+    sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices";
+    version = "4.3.0";
+    sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Numerics";
+    version = "4.3.0";
+    sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z";
+  })
+  (fetchNuGet {
+    name = "System.Runtime";
+    version = "4.3.0";
+    sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
+  })
+  (fetchNuGet {
+    name = "System.Security.AccessControl";
+    version = "4.6.0";
+    sha256 = "1wl1dyghi0qhpap1vgfhg2ybdyyhy9vc2a7dpm1xb30vfgmlkjmf";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Algorithms";
+    version = "4.3.0";
+    sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Cng";
+    version = "4.3.0";
+    sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Csp";
+    version = "4.3.0";
+    sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Encoding";
+    version = "4.3.0";
+    sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Primitives";
+    version = "4.3.0";
+    sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.X509Certificates";
+    version = "4.3.0";
+    sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h";
+  })
+  (fetchNuGet {
+    name = "System.Security.Principal.Windows";
+    version = "4.6.0";
+    sha256 = "1jmfzfz1n8hp63s5lja5xxpzkinbp6g59l3km9h8avjiisdrg5wm";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding";
+    version = "4.3.0";
+    sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks.Dataflow";
+    version = "4.11.1";
+    sha256 = "09fbfsiay1xcbpvnq2j38b6mb2scvf0s8mpn78bcqsldidg7k2vw";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks.Extensions";
+    version = "4.5.4";
+    sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks";
+    version = "4.3.0";
+    sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7";
+  })
+  (fetchNuGet {
+    name = "System.Threading";
+    version = "4.3.0";
+    sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34";
+  })
+  (fetchNuGet {
+    name = "WaylandNET";
+    version = "0.2.0";
+    sha256 = "1qjpvra08vdqdw4j1gamz6451x5sd5r1j86lsvrl8akq4nymfr8k";
+  })
+]
diff --git a/pkgs/tools/X11/opentabletdriver/shell.nix b/pkgs/tools/X11/opentabletdriver/shell.nix
new file mode 100644
index 00000000000..526fa4a4432
--- /dev/null
+++ b/pkgs/tools/X11/opentabletdriver/shell.nix
@@ -0,0 +1,12 @@
+{ pkgs ? import ../../../../. {} }:
+
+with pkgs;
+
+mkShell {
+  buildInputs = [
+    common-updater-scripts
+    curl
+    dotnetCorePackages.sdk_5_0
+    jq
+  ];
+}
diff --git a/pkgs/tools/X11/opentabletdriver/update.sh b/pkgs/tools/X11/opentabletdriver/update.sh
new file mode 100755
index 00000000000..04fae30c05a
--- /dev/null
+++ b/pkgs/tools/X11/opentabletdriver/update.sh
@@ -0,0 +1,64 @@
+#!/usr/bin/env nix-shell
+#!nix-shell shell.nix -i bash
+
+set -eo pipefail
+
+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')"
+old_version="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./default.nix)"
+if [[ "$new_version" == "$old_version" ]]; then
+  echo "Up to date"
+  [[ "${1}" != "--force" ]] && exit 0
+fi
+
+cd ../../../..
+update-source-version opentabletdriver "$new_version"
+store_src="$(nix-build . -A opentabletdriver.src --no-out-link)"
+src="$(mktemp -d /tmp/opentabletdriver-src.XXX)"
+echo "Temp src dir: $src"
+cp -rT "$store_src" "$src"
+chmod -R +w "$src"
+
+pushd "$src"
+
+# Setup empty nuget package folder to force reinstall.
+mkdir ./nuget_tmp.packages
+cat >./nuget_tmp.config <<EOF
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+  <packageSources>
+    <add key="nuget" value="https://api.nuget.org/v3/index.json" />
+  </packageSources>
+  <config>
+    <add key="globalPackagesFolder" value="$(realpath ./nuget_tmp.packages)" />
+  </config>
+</configuration>
+EOF
+
+export DOTNET_CLI_TELEMETRY_OPTOUT=1
+
+for project in OpenTabletDriver.{Console,Daemon,UX.Gtk}; do
+    dotnet restore $project --configfile ./nuget_tmp.config
+done
+
+echo "{ fetchNuGet }: [" >"$deps_file"
+while read pkg_spec; do
+  { read pkg_name; read 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 >>"$deps_file" <<EOF
+  (fetchNuGet {
+    name = "$pkg_name";
+    version = "$pkg_version";
+    sha256 = "$pkg_sha256";
+  })
+EOF
+done < <(find ./nuget_tmp.packages -name '*.nuspec' | sort)
+echo "]" >>"$deps_file"
+
+popd
+rm -r "$src"
diff --git a/pkgs/tools/X11/xkb-switch-i3/default.nix b/pkgs/tools/X11/xkb-switch-i3/default.nix
new file mode 100644
index 00000000000..9485cb62b2b
--- /dev/null
+++ b/pkgs/tools/X11/xkb-switch-i3/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, cmake
+, fetchFromGitHub
+, i3
+, jsoncpp
+, libsigcxx
+, libX11
+, libxkbfile
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "xkb-switch-i3";
+  version = "1.8.1";
+
+  src = fetchFromGitHub {
+    owner = "Zebradil";
+    repo = "xkb-switch-i3";
+    rev = version;
+    sha256 = "15c19hp0n1k3w15qn97j6wp5b8hbk0mq6x3xjfn6dkkjfz1fl6cn";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = [ i3 jsoncpp libsigcxx libX11 libxkbfile ];
+
+  meta = with stdenv.lib; {
+    description = "Switch your X keyboard layouts from the command line(i3 edition)";
+    homepage = "https://github.com/Zebradil/xkb-switch-i3";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ ewok ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/X11/xwallpaper/default.nix b/pkgs/tools/X11/xwallpaper/default.nix
index 759613553fe..aab4d1180e0 100644
--- a/pkgs/tools/X11/xwallpaper/default.nix
+++ b/pkgs/tools/X11/xwallpaper/default.nix
@@ -5,6 +5,7 @@
 , pixman
 , xcbutil
 , xcbutilimage
+, libseccomp
 , libjpeg
 , libpng
 , libXpm
@@ -24,7 +25,7 @@ stdenv.mkDerivation rec {
   preConfigure = "./autogen.sh";
 
   nativeBuildInputs = [ pkg-config autoreconfHook ];
-  buildInputs = [ pixman xcbutilimage xcbutil libjpeg libpng libXpm ];
+  buildInputs = [ pixman xcbutilimage xcbutil libseccomp libjpeg libpng libXpm ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/stoeckmann/xwallpaper";
diff --git a/pkgs/tools/admin/aws-nuke/default.nix b/pkgs/tools/admin/aws-nuke/default.nix
new file mode 100644
index 00000000000..ee29c7402e7
--- /dev/null
+++ b/pkgs/tools/admin/aws-nuke/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "aws-nuke";
+  version = "2.14.0";
+
+  src = fetchFromGitHub {
+    owner = "rebuy-de";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-ULHT2ysAVZHSojIdsbPTuwskwOQVrK8f14r9eq+Effs=";
+  };
+
+  vendorSha256 = "sha256-GUCsl5VyptNvStJZgCsJDlllZasX1OhbVkahcQFuiC8=";
+
+  preBuild = ''
+    if [ "x$outputHashAlgo" != "x" ]; then
+      # Only `go generate` when fetching the go mod vendor code
+      go generate ./...
+    fi
+  '';
+
+  doCheck = false;
+
+  subPackages = [ "." ];
+
+  meta = with stdenv.lib; {
+    description = "Nuke a whole AWS account and delete all its resources";
+    homepage = "https://github.com/rebuy-de/aws-nuke";
+    license = licenses.mit;
+    maintainers = with maintainers; [ grahamc ];
+  };
+}
diff --git a/pkgs/tools/admin/awscli/default.nix b/pkgs/tools/admin/awscli/default.nix
index 56e2dfa7e8e..b3052cb41b0 100644
--- a/pkgs/tools/admin/awscli/default.nix
+++ b/pkgs/tools/admin/awscli/default.nix
@@ -28,11 +28,11 @@ let
 
 in with py.pkgs; buildPythonApplication rec {
   pname = "awscli";
-  version = "1.18.197"; # N.B: if you change this, change botocore to a matching version too
+  version = "1.18.209"; # N.B: if you change this, change botocore to a matching version too
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0m73ks5ans135vrwmbd4fpbmi7mgiqj0dmlx4ximk0jh7hbl7rcb";
+    sha256 = "sha256-Le+vjLdXquZiFPuO9v73vm1/iFDaRCNDjXX719AtAxE=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/admin/azure-cli/default.nix b/pkgs/tools/admin/azure-cli/default.nix
index 81389f39dd3..4026effd6f6 100644
--- a/pkgs/tools/admin/azure-cli/default.nix
+++ b/pkgs/tools/admin/azure-cli/default.nix
@@ -1,12 +1,12 @@
 { stdenv, lib, python3, fetchFromGitHub, installShellFiles }:
 
 let
-  version = "2.15.1";
+  version = "2.17.0";
   src = fetchFromGitHub {
     owner = "Azure";
     repo = "azure-cli";
     rev = "azure-cli-${version}";
-    sha256 = "05vwaafb6yzvrhig0gjkb4803yj6qr00gqh41rws9520899f2m9d";
+    sha256 = "2QLPtZYZZ+W5xZH2hxFnjox31v3My3zocouqLWGWSYI=";
   };
 
   # put packages that needs to be overriden in the py package scope
@@ -67,6 +67,7 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
     azure-mgmt-containerregistry
     azure-mgmt-containerservice
     azure-mgmt-cosmosdb
+    azure-mgmt-databoxedge
     azure-mgmt-datalake-analytics
     azure-mgmt-datalake-store
     azure-mgmt-datamigration
diff --git a/pkgs/tools/admin/azure-cli/python-packages.nix b/pkgs/tools/admin/azure-cli/python-packages.nix
index 29787cfb17a..ab417af8d44 100644
--- a/pkgs/tools/admin/azure-cli/python-packages.nix
+++ b/pkgs/tools/admin/azure-cli/python-packages.nix
@@ -6,7 +6,8 @@ let
     prePatch = (attrs.prePatch or "") + ''
       rm -f azure_bdist_wheel.py tox.ini
       substituteInPlace setup.py \
-        --replace "wheel==0.30.0" "wheel"
+        --replace "wheel==0.30.0" "wheel" \
+        --replace "cryptography>=2.3.1,<3.0.0" "cryptography"
       sed -i "/azure-namespace-package/c\ " setup.cfg
     '';
 
@@ -124,8 +125,8 @@ let
         '';
       };
 
-      azure-batch = overrideAzureMgmtPackage super.azure-batch "9.0.0" "zip"
-        "112d73gxjqng348mcvi36ska6pxyg8qc3qswvhf5x4a0lr86zjj7";
+      azure-batch = overrideAzureMgmtPackage super.azure-batch "10.0.0" "zip"
+        "83d7a2b0be42ca456ac2b56fa3dc6ce704c130e888d37d924072c1d3718f32d0";
 
       azure-mgmt-apimanagement = overrideAzureMgmtPackage super.azure-mgmt-apimanagement "0.2.0" "zip"
         "0whx3s8ri9939r3pdvjf8iqcslas1xy6cnccidmp10r5ng0023vr";
@@ -148,8 +149,8 @@ let
       azure-mgmt-recoveryservicesbackup = overrideAzureMgmtPackage super.azure-mgmt-recoveryservicesbackup "0.6.0" "zip"
         "13s2k4jl8570bj6jkqzm0w29z29rl7h5i7czd3kr6vqar5wj9xjd";
 
-      azure-mgmt-resource = overrideAzureMgmtPackage super.azure-mgmt-resource "10.2.0" "zip"
-        "ddfe4c0c55f0e3fd1f66dd82c1d4a3d872ce124639b9a77fcd172daf464438a5";
+      azure-mgmt-resource = overrideAzureMgmtPackage super.azure-mgmt-resource "10.3.0" "zip"
+        "1bb95rlwfikfl3pgyga0v5lfgr1xyaybm1nq2498rncfcvdpkjhz";
 
       azure-mgmt-appconfiguration = overrideAzureMgmtPackage super.azure-mgmt-appconfiguration "0.6.0" "zip"
         "0pvc8f3g12q7als0pgy26kqi2i9grykwrjyiv2vijci9wxn22vpy";
@@ -157,8 +158,8 @@ let
       azure-mgmt-cognitiveservices = overrideAzureMgmtPackage super.azure-mgmt-cognitiveservices "6.3.0" "zip"
         "059lhbxqx1r1717s8xz5ahpxwphq5fgy0h7k6b63cahm818rs0hx";
 
-      azure-mgmt-compute = overrideAzureMgmtPackage super.azure-mgmt-compute "14.0.0" "zip"
-        "0bvqv56plcgmnfyj0apphlbsn2vfm1a22idvy8y5npbfjz4zwja9";
+      azure-mgmt-compute = overrideAzureMgmtPackage super.azure-mgmt-compute "18.0.0" "zip"
+        "34815c91193640ad8ff0c4dad7f2d997548c853d2e8b10250329ed516e55879e";
 
       azure-mgmt-consumption = overrideAzureMgmtPackage super.azure-mgmt-consumption "2.0.0" "zip"
         "12ai4qps73ivawh0yzvgb148ksx02r30pqlvfihx497j62gsi1cs";
@@ -196,8 +197,8 @@ let
       azure-mgmt-devtestlabs = overrideAzureMgmtPackage super.azure-mgmt-devtestlabs "4.0.0" "zip"
         "1397ksrd61jv7400mgn8sqngp6ahir55fyq9n5k69wk88169qm2r";
 
-      azure-mgmt-netapp = overrideAzureMgmtPackage super.azure-mgmt-netapp "0.13.0" "zip"
-        "1fq3hgwwhba6vv07rciiibwmp2zlygz20zp1mzdxajqlfg838q78";
+      azure-mgmt-netapp = overrideAzureMgmtPackage super.azure-mgmt-netapp "0.14.0" "zip"
+        "0f8m7j8sdm1rfrwizz3qfk4lyb2x02af3v66as5yqjriipk1bnbg";
 
       azure-mgmt-dns = overrideAzureMgmtPackage super.azure-mgmt-dns "2.1.0" "zip"
         "1l55py4fzzwhxlmnwa41gpmqk9v2ncc79w7zq11sm9a5ynrv2c1p";
@@ -205,8 +206,8 @@ let
       azure-mgmt-loganalytics = overrideAzureMgmtPackage super.azure-mgmt-loganalytics "0.7.0" "zip"
         "18n2lqvrhq40gdqhlzzg8mc03571i02c7qq7jv771lc58rqpzysh";
 
-      azure-mgmt-network = overrideAzureMgmtPackage super.azure-mgmt-network "12.0.0" "zip"
-        "150074lnld426lv37v4gy41cqqvj57zw4mrz5svv7iynljb2jl3l";
+      azure-mgmt-network = overrideAzureMgmtPackage super.azure-mgmt-network "17.0.0" "zip"
+        "3694f2675e152afccb1588a6cc7bb4b4795d442a4e5d7082cdf1f4e32a779199";
 
       azure-mgmt-media = overrideAzureMgmtPackage super.azure-mgmt-media "2.1.0" "zip"
         "1py0hch0wghzfxazdrrs7p0kln2zn9jh3fmkzwd2z8qggj38q6gm";
@@ -229,8 +230,8 @@ let
       azure-mgmt-search = overrideAzureMgmtPackage super.azure-mgmt-search "2.0.0" "zip"
         "14v8ja8har2xrb00v98610pqvakcdvnzw8hkd6wbr1np3f3dxi8f";
 
-      azure-mgmt-security = overrideAzureMgmtPackage super.azure-mgmt-security "0.4.1" "zip"
-        "08gf401d40bd1kn9wmpxcjxqdh84cd9hxm8rdjd0918483sqs71r";
+      azure-mgmt-security = overrideAzureMgmtPackage super.azure-mgmt-security "0.6.0" "zip"
+        "9f37d0151d730801222af111f0830905634795dbfd59ad1b89c35197421e74d3";
 
       azure-mgmt-signalr = overrideAzureMgmtPackage super.azure-mgmt-signalr "0.4.0" "zip"
         "09n12ligh301z4xwixl50n8f1rgd2k6lpsxqzr6n6jvgkpdds0v5";
@@ -241,8 +242,8 @@ let
       azure-mgmt-sqlvirtualmachine = overrideAzureMgmtPackage super.azure-mgmt-sqlvirtualmachine "0.5.0" "zip"
         "1b9am8raa17hxnz7d5pk2ix0309wsnhnchq1mi22icd728sl5adm";
 
-      azure-mgmt-synapse = overrideAzureMgmtPackage super.azure-mgmt-synapse "0.3.0" "zip"
-        "0sa12s5af9xl1wnblilswxc6ydr2anm9an000iz3ks54pydby2vy";
+      azure-mgmt-synapse = overrideAzureMgmtPackage super.azure-mgmt-synapse "0.5.0" "zip"
+        "0dr8xml9zlsnag761zx7ifvdkhsv4syzxpmdn4gbf9c5qcq65dsf";
 
       azure-mgmt-datamigration = overrideAzureMgmtPackage super.azure-mgmt-datamigration "0.1.0" "zip"
         "1pq5rn32yvrf5kqjafnj0kc92gpfg435w2l0k7cm8gvlja4r4m77";
@@ -256,11 +257,11 @@ let
       azure-mgmt-keyvault = overrideAzureMgmtPackage super.azure-mgmt-keyvault "8.0.0" "zip"
         "2c974c6114d8d27152642c82a975812790a5e86ccf609bf370a476d9ea0d2e7d";
 
-      azure-mgmt-cdn = overrideAzureMgmtPackage super.azure-mgmt-cdn "5.0.0" "zip"
-        "0y1bq6lirwx4n8zydi49jx72xfc7dppzhy82x22sx98id8lxgcwm";
+      azure-mgmt-cdn = overrideAzureMgmtPackage super.azure-mgmt-cdn "5.2.0" "zip"
+        "10b8y1b5qlyr666x7yimnwis9386ciphrxdnmmyzk90qg6h0niry";
 
-      azure-mgmt-containerregistry = overrideAzureMgmtPackage super.azure-mgmt-containerregistry "3.0.0rc15" "zip"
-        "1fnmdl3m7kdn6c2ws5vrm7nwadcbq9mgc6g5bg4s1a4xjb23q6vb";
+      azure-mgmt-containerregistry = overrideAzureMgmtPackage super.azure-mgmt-containerregistry "3.0.0rc16" "zip"
+        "eT5gH0K4q2Qr1lEpuqjxQhOUrA6bEsAktj+PKsfMXTo=";
 
       azure-mgmt-monitor = overrideAzureMgmtPackage super.azure-mgmt-monitor "0.11.0" "zip"
         "05jhn66d4sl1qi6w34rqd8wl500jndismiwhdmzzmprdvn1zxqf6";
@@ -392,19 +393,6 @@ let
         '';
       });
 
-      cryptography = super.cryptography.overridePythonAttrs(oldAttrs: rec {
-        version = "2.9.2";
-
-        src = super.fetchPypi {
-          inherit (oldAttrs) pname;
-          inherit version;
-          sha256 = "0af25w5mkd6vwns3r6ai1w5ip9xp0ms9s261zzssbpadzdr05hx0";
-        };
-
-        # prevent cycle with cryptography-vectors
-        doCheck = false;
-      });
-
       knack = super.knack.overridePythonAttrs(oldAttrs: rec {
         version = "0.7.2";
 
diff --git a/pkgs/tools/admin/chamber/default.nix b/pkgs/tools/admin/chamber/default.nix
index 7a80ed37188..c2126181f36 100644
--- a/pkgs/tools/admin/chamber/default.nix
+++ b/pkgs/tools/admin/chamber/default.nix
@@ -1,15 +1,23 @@
-{ buildGoModule, lib, fetchFromGitHub }:
+{ buildGoModule, lib, fetchFromGitHub, fetchpatch }:
+
 buildGoModule rec {
   pname = "chamber";
-  version = "2.8.2";
+  version = "2.9.0";
 
   src = fetchFromGitHub {
     owner = "segmentio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-7L9RaE4LvHRR6MUimze5QpbnfasWJdY4arfS/Usy2q0=";
+    sha256 = "eOMY9P/fCYvnl6KGNb6wohykLA0Sj9Ti0L18gx5dqUk=";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/segmentio/chamber/commit/3aeb416cdf4c232552b653262e37047fc13b1f02.patch";
+      sha256 = "cyxNF9ZP4oG+1sfX9yWZCyntpAvwYUh5BzTirZQGejc=";
+    })
+  ];
+
   vendorSha256 = null;
 
   # set the version. see: chamber's Makefile
diff --git a/pkgs/tools/admin/chkcrontab/default.nix b/pkgs/tools/admin/chkcrontab/default.nix
index 0740b0c1be6..73076b65c58 100644
--- a/pkgs/tools/admin/chkcrontab/default.nix
+++ b/pkgs/tools/admin/chkcrontab/default.nix
@@ -14,7 +14,7 @@ buildPythonApplication rec {
   meta = with stdenv.lib; {
     description = "A tool to detect crontab errors";
     license = licenses.asl20;
-    maintainers = with maintainers; [ ma27 ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
     homepage = "https://github.com/lyda/chkcrontab";
   };
 }
diff --git a/pkgs/tools/admin/clair/default.nix b/pkgs/tools/admin/clair/default.nix
index 565196280ce..cbe6e3eed1f 100644
--- a/pkgs/tools/admin/clair/default.nix
+++ b/pkgs/tools/admin/clair/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "clair";
-  version = "2.1.4";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "quay";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1bvwh3ghxb3ynq8a07ka9i0rzaqg1aikxvqxmpjkwjvhwk63lwqd";
+    sha256 = "10kgg2i5yzdfhylrdkmh8rsc4cgdnhcgfa8fa4dm8m3licjciwam";
   };
 
-  vendorSha256 = "0x31n50vd8660z816as6kms5dkv87b0mhblccpkvd9cbvcv2n37a";
+  vendorSha256 = "1l3b86f5xmyc6lskvb4ab30adcgzb69ayccc0wcz2f28sda3i80r";
 
   doCheck = false;
 
@@ -25,6 +25,7 @@ buildGoModule rec {
   meta = with lib; {
     description = "Vulnerability Static Analysis for Containers";
     homepage = "https://github.com/quay/clair";
+    changelog = "https://github.com/quay/clair/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ marsam ];
   };
diff --git a/pkgs/tools/admin/credhub-cli/default.nix b/pkgs/tools/admin/credhub-cli/default.nix
new file mode 100644
index 00000000000..f3cc5141618
--- /dev/null
+++ b/pkgs/tools/admin/credhub-cli/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "credhub-cli";
+  version = "2.9.0";
+
+  src = fetchFromGitHub {
+    owner = "cloudfoundry-incubator";
+    repo = "credhub-cli";
+    rev = version;
+    sha256 = "1j0i0b79ph2i52cj0qln8wvp6gwhl73akkn026h27vvmlw9sndc2";
+  };
+
+  # these tests require network access that we're not going to give them
+  postPatch = ''
+    rm commands/api_test.go
+    rm commands/socks5_test.go
+  '';
+  __darwinAllowLocalNetworking = true;
+
+  vendorSha256 = null;
+
+  buildFlagsArray = [
+    "-ldflags="
+    "-s"
+    "-w"
+    "-X code.cloudfoundry.org/credhub-cli/version.Version=${version}"
+  ];
+
+  postInstall = ''
+    ln -s $out/bin/credhub-cli $out/bin/credhub
+  '';
+
+  preCheck = ''
+    export HOME=$TMPDIR
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Provides a command line interface to interact with CredHub servers";
+    homepage = "https://github.com/cloudfoundry-incubator/credhub-cli";
+    maintainers = with maintainers; [ ris ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/tools/admin/eksctl/default.nix b/pkgs/tools/admin/eksctl/default.nix
index 6f38b14f44b..54d78d8fab7 100644
--- a/pkgs/tools/admin/eksctl/default.nix
+++ b/pkgs/tools/admin/eksctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "eksctl";
-  version = "0.34.0";
+  version = "0.35.0";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = pname;
     rev = version;
-    sha256 = "1n2mvnis6r5vpb60jlb3c84sllsbvy93gzsds54igsp6l3zngq19";
+    sha256 = "0l4wlg6x074slndkihvwdvw4frsyzwxfqm1pkzqwc3x8awa9nlbv";
   };
 
-  vendorSha256 = "0ggxilp44mm81b8hrxyb7642vy2q1109yz619z97mgvk0drhkhc0";
+  vendorSha256 = "0sfx8x1iwdqwbyiid5hc9wiwjc16aig8vplpjlqxkmcvig8qlwff";
 
   doCheck = false;
 
diff --git a/pkgs/tools/admin/fastlane/Gemfile.lock b/pkgs/tools/admin/fastlane/Gemfile.lock
index 1bfce860653..19305c7d137 100644
--- a/pkgs/tools/admin/fastlane/Gemfile.lock
+++ b/pkgs/tools/admin/fastlane/Gemfile.lock
@@ -1,75 +1,77 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    CFPropertyList (3.0.2)
+    CFPropertyList (3.0.3)
     addressable (2.7.0)
       public_suffix (>= 2.0.2, < 5.0)
     atomos (0.1.3)
     aws-eventstream (1.1.0)
-    aws-partitions (1.320.0)
-    aws-sdk-core (3.96.1)
+    aws-partitions (1.414.0)
+    aws-sdk-core (3.110.0)
       aws-eventstream (~> 1, >= 1.0.2)
       aws-partitions (~> 1, >= 1.239.0)
       aws-sigv4 (~> 1.1)
       jmespath (~> 1.0)
-    aws-sdk-kms (1.31.0)
-      aws-sdk-core (~> 3, >= 3.71.0)
+    aws-sdk-kms (1.40.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.66.0)
-      aws-sdk-core (~> 3, >= 3.96.1)
+    aws-sdk-s3 (1.87.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
       aws-sdk-kms (~> 1)
       aws-sigv4 (~> 1.1)
-    aws-sigv4 (1.1.3)
-      aws-eventstream (~> 1.0, >= 1.0.2)
-    babosa (1.0.3)
+    aws-sigv4 (1.2.2)
+      aws-eventstream (~> 1, >= 1.0.2)
+    babosa (1.0.4)
     claide (1.0.3)
     colored (1.2)
     colored2 (3.1.2)
     commander-fastlane (4.4.6)
       highline (~> 1.7.2)
-    declarative (0.0.10)
+    declarative (0.0.20)
     declarative-option (0.1.0)
-    digest-crc (0.5.1)
+    digest-crc (0.6.3)
+      rake (>= 12.0.0, < 14.0.0)
     domain_name (0.5.20190701)
       unf (>= 0.0.5, < 1.0.0)
-    dotenv (2.7.5)
-    emoji_regex (1.0.1)
-    excon (0.73.0)
-    faraday (1.0.1)
+    dotenv (2.7.6)
+    emoji_regex (3.2.1)
+    excon (0.78.1)
+    faraday (1.3.0)
+      faraday-net_http (~> 1.0)
       multipart-post (>= 1.2, < 3)
-    faraday-cookie_jar (0.0.6)
-      faraday (>= 0.7.4)
+      ruby2_keywords
+    faraday-cookie_jar (0.0.7)
+      faraday (>= 0.8.0)
       http-cookie (~> 1.0.0)
+    faraday-net_http (1.0.0)
     faraday_middleware (1.0.0)
       faraday (~> 1.0)
-    fastimage (2.1.7)
-    fastlane (2.148.1)
+    fastimage (2.2.1)
+    fastlane (2.171.0)
       CFPropertyList (>= 2.3, < 4.0.0)
       addressable (>= 2.3, < 3.0.0)
       aws-sdk-s3 (~> 1.0)
-      babosa (>= 1.0.2, < 2.0.0)
+      babosa (>= 1.0.3, < 2.0.0)
       bundler (>= 1.12.0, < 3.0.0)
       colored
       commander-fastlane (>= 4.4.6, < 5.0.0)
       dotenv (>= 2.1.1, < 3.0.0)
-      emoji_regex (>= 0.1, < 2.0)
+      emoji_regex (>= 0.1, < 4.0)
       excon (>= 0.71.0, < 1.0.0)
-      faraday (>= 0.17, < 2.0)
+      faraday (~> 1.0)
       faraday-cookie_jar (~> 0.0.6)
-      faraday_middleware (>= 0.13.1, < 2.0)
+      faraday_middleware (~> 1.0)
       fastimage (>= 2.1.0, < 3.0.0)
       gh_inspector (>= 1.1.2, < 2.0.0)
       google-api-client (>= 0.37.0, < 0.39.0)
       google-cloud-storage (>= 1.15.0, < 2.0.0)
       highline (>= 1.7.2, < 2.0.0)
       json (< 3.0.0)
-      jwt (~> 2.1.0)
+      jwt (>= 2.1.0, < 3)
       mini_magick (>= 4.9.4, < 5.0.0)
-      multi_xml (~> 0.5)
       multipart-post (~> 2.0.0)
       plist (>= 3.1.0, < 4.0.0)
-      public_suffix (~> 2.0.0)
-      rubyzip (>= 1.3.0, < 2.0.0)
+      rubyzip (>= 2.0.0, < 3.0.0)
       security (= 0.1.3)
       simctl (~> 1.6.3)
       slack-notifier (>= 2.0.0, < 3.0.0)
@@ -93,17 +95,17 @@ GEM
     google-cloud-core (1.5.0)
       google-cloud-env (~> 1.0)
       google-cloud-errors (~> 1.0)
-    google-cloud-env (1.3.1)
+    google-cloud-env (1.4.0)
       faraday (>= 0.17.3, < 2.0)
-    google-cloud-errors (1.0.0)
-    google-cloud-storage (1.26.1)
+    google-cloud-errors (1.0.1)
+    google-cloud-storage (1.29.2)
       addressable (~> 2.5)
       digest-crc (~> 0.4)
       google-api-client (~> 0.33)
       google-cloud-core (~> 1.2)
       googleauth (~> 0.9)
       mini_mime (~> 1.0)
-    googleauth (0.12.0)
+    googleauth (0.14.0)
       faraday (>= 0.17.3, < 2.0)
       jwt (>= 1.4, < 3.0)
       memoist (~> 0.16)
@@ -115,26 +117,27 @@ GEM
       domain_name (~> 0.5)
     httpclient (2.8.3)
     jmespath (1.4.0)
-    json (2.3.0)
-    jwt (2.1.0)
+    json (2.5.1)
+    jwt (2.2.2)
     memoist (0.16.2)
-    mini_magick (4.10.1)
+    mini_magick (4.11.0)
     mini_mime (1.0.2)
-    multi_json (1.14.1)
-    multi_xml (0.6.0)
+    multi_json (1.15.0)
     multipart-post (2.0.0)
-    nanaimo (0.2.6)
+    nanaimo (0.3.0)
     naturally (2.2.0)
-    os (1.1.0)
-    plist (3.5.0)
-    public_suffix (2.0.5)
+    os (1.1.1)
+    plist (3.6.0)
+    public_suffix (4.0.6)
+    rake (13.0.3)
     representable (3.0.4)
       declarative (< 0.1.0)
       declarative-option (< 0.2.0)
       uber (< 0.2.0)
     retriable (3.1.2)
     rouge (2.0.7)
-    rubyzip (1.3.0)
+    ruby2_keywords (0.0.2)
+    rubyzip (2.3.0)
     security (0.1.3)
     signet (0.14.0)
       addressable (~> 2.3)
@@ -149,7 +152,7 @@ GEM
     terminal-table (1.8.0)
       unicode-display_width (~> 1.1, >= 1.1.1)
     tty-cursor (0.7.1)
-    tty-screen (0.7.1)
+    tty-screen (0.8.1)
     tty-spinner (0.9.3)
       tty-cursor (~> 0.7)
     uber (0.1.0)
@@ -158,15 +161,15 @@ GEM
     unf_ext (0.0.7.7)
     unicode-display_width (1.7.0)
     word_wrap (1.0.0)
-    xcodeproj (1.16.0)
+    xcodeproj (1.19.0)
       CFPropertyList (>= 2.3.3, < 4.0)
       atomos (~> 0.1.3)
       claide (>= 1.0.2, < 2.0)
       colored2 (~> 3.1)
-      nanaimo (~> 0.2.6)
+      nanaimo (~> 0.3.0)
     xcpretty (0.3.0)
       rouge (~> 2.0.7)
-    xcpretty-travis-formatter (1.0.0)
+    xcpretty-travis-formatter (1.0.1)
       xcpretty (~> 0.2, >= 0.0.7)
 
 PLATFORMS
@@ -176,4 +179,4 @@ DEPENDENCIES
   fastlane
 
 BUNDLED WITH
-   2.1.4
\ No newline at end of file
+   2.1.4
diff --git a/pkgs/tools/admin/fastlane/gemset.nix b/pkgs/tools/admin/fastlane/gemset.nix
index e289bc6f17d..a3c32f7c5de 100644
--- a/pkgs/tools/admin/fastlane/gemset.nix
+++ b/pkgs/tools/admin/fastlane/gemset.nix
@@ -35,10 +35,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "011ch85shkb3i3w16jymjx19dmxcgb6jrl6dzwqr4bx16ikdyclc";
+      sha256 = "0dy7y0zgc53cz1qiifx74glixkjd96nk8p6qrq1n5cdylnlpng8k";
       type = "gem";
     };
-    version = "1.320.0";
+    version = "1.414.0";
   };
   aws-sdk-core = {
     dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"];
@@ -46,10 +46,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jdnzynjrpp2jyg8vrbfbaad16k8ni1520xah1z2ckl5779x9fi6";
+      sha256 = "1lrxwi9im4bpdcga6w7bmam7hywy5c2yss09377lyqm89whb4kl4";
       type = "gem";
     };
-    version = "3.96.1";
+    version = "3.110.0";
   };
   aws-sdk-kms = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -57,10 +57,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1czxr6yi8p9gma4dwgygp1jn0i289hwa2vw69kzfscgbn118c3mm";
+      sha256 = "1pk76w1w9z4dh1sic08jp1j2rbbmnrfci53a6pkxq0g3y4kkx2g4";
       type = "gem";
     };
-    version = "1.31.0";
+    version = "1.40.0";
   };
   aws-sdk-s3 = {
     dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"];
@@ -68,10 +68,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x1d1azxwanvm0d7qppw41x5nx2zv0bcz41yk9vqi5lvr7apaq13";
+      sha256 = "0capqhvm08ngq74n33ym0khixkdj342jpikssw57avdmd8g6kaq7";
       type = "gem";
     };
-    version = "1.66.0";
+    version = "1.87.0";
   };
   aws-sigv4 = {
     dependencies = ["aws-eventstream"];
@@ -79,30 +79,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kysxyw1zkvggbmcj4xnscdh15kxli8mx07hv447h74g9x02drsd";
+      sha256 = "1ll9382c1x2hp750cilh01h1cycgyhdr4cmmgx23k94hyyb8chv5";
       type = "gem";
     };
-    version = "1.1.3";
+    version = "1.2.2";
   };
   babosa = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10nn9bw63i4awpzn5vrx6kmpx1sg7z8r3fhw9r8bvg9pz2wh489g";
+      sha256 = "16dwqn33kmxkqkv51cwiikdkbrdjfsymlnc0rgbjwilmym8a9phq";
       type = "gem";
     };
-    version = "1.0.3";
+    version = "1.0.4";
   };
   CFPropertyList = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1825ll26p28swjiw8n3x2pnh5ygsmg83spf82fnzcjn2p87vc5lf";
+      sha256 = "0ia09r8bj3bjhcfiyr3vlk9zx7vahfypbs2lyrxix9x1jx3lfzq4";
       type = "gem";
     };
-    version = "3.0.2";
+    version = "3.0.3";
   };
   claide = {
     groups = ["default"];
@@ -150,10 +150,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0642xvwzzbgi3kp1bg467wma4g3xqrrn0sk369hjam7w579gnv5j";
+      sha256 = "1yczgnqrbls7shrg63y88g7wand2yp9h6sf56c9bdcksn5nds8c0";
       type = "gem";
     };
-    version = "0.0.10";
+    version = "0.0.20";
   };
   declarative-option = {
     groups = ["default"];
@@ -166,14 +166,15 @@
     version = "0.1.0";
   };
   digest-crc = {
+    dependencies = ["rake"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10f10yhz7rn31pq859jx47dypsfsxcmx8h482xn7aijfr6vn8yv9";
+      sha256 = "118d5p02kdw6a5pi8af12dxma7q3b77zz5q5xjjf5kgp8qh1930a";
       type = "gem";
     };
-    version = "0.5.1";
+    version = "0.6.3";
   };
   domain_name = {
     dependencies = ["unf"];
@@ -191,41 +192,41 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17hkd62ig9b0czv192kqdfq7gw0a8hgq07yclri6myc8y5lmfin5";
+      sha256 = "0iym172c5337sm1x2ykc2i3f961vj3wdclbyg1x6sxs3irgfsl94";
       type = "gem";
     };
-    version = "2.7.5";
+    version = "2.7.6";
   };
   emoji_regex = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jfsv8ik2h1msqf3if1f121pnx3lccp8fqnka9na309mnw3bq532";
+      sha256 = "0qbzlracxw4xwyvrgr0qcl1alk4ijk6pv53ni6f43csi649y3n3s";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "3.2.1";
   };
   excon = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zvphy60fwycl6z2h7dpsy9lgyfrh27fj16987p7bl1n4xlqkvmw";
+      sha256 = "16ij8617v3js03yj1zd32mmrf7kpi9l96bid5mpqk30c4mzai55r";
       type = "gem";
     };
-    version = "0.73.0";
+    version = "0.78.1";
   };
   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.0.1";
+    version = "1.3.0";
   };
   faraday-cookie_jar = {
     dependencies = ["faraday" "http-cookie"];
@@ -233,10 +234,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1di4gx6446a6zdkrpj679m5k515i53wvb4yxcsqvy8d8zacxiiv6";
+      sha256 = "00hligx26w9wdnpgsrf0qdnqld4rdccy8ym6027h5m735mpvxjzk";
       type = "gem";
     };
-    version = "0.0.6";
+    version = "0.0.7";
+  };
+  faraday-net_http = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1kk5d1c5nxbmwawl5gcznwiscjz24nz3vdhxrlzvj7748c1qqr6d";
+      type = "gem";
+    };
+    version = "1.0.0";
   };
   faraday_middleware = {
     dependencies = ["faraday"];
@@ -254,21 +265,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06lgsy1zdkhhgd9w1c0nb7v9d38mljwz13n6gi3acbzkhz1sf642";
+      sha256 = "1vqp53s9vgd28f4l17q0vs7xv32y64af0ny3wb1fgg4i534rzg6j";
       type = "gem";
     };
-    version = "2.1.7";
+    version = "2.2.1";
   };
   fastlane = {
-    dependencies = ["CFPropertyList" "addressable" "aws-sdk-s3" "babosa" "colored" "commander-fastlane" "dotenv" "emoji_regex" "excon" "faraday" "faraday-cookie_jar" "faraday_middleware" "fastimage" "gh_inspector" "google-api-client" "google-cloud-storage" "highline" "json" "jwt" "mini_magick" "multi_xml" "multipart-post" "plist" "public_suffix" "rubyzip" "security" "simctl" "slack-notifier" "terminal-notifier" "terminal-table" "tty-screen" "tty-spinner" "word_wrap" "xcodeproj" "xcpretty" "xcpretty-travis-formatter"];
+    dependencies = ["CFPropertyList" "addressable" "aws-sdk-s3" "babosa" "colored" "commander-fastlane" "dotenv" "emoji_regex" "excon" "faraday" "faraday-cookie_jar" "faraday_middleware" "fastimage" "gh_inspector" "google-api-client" "google-cloud-storage" "highline" "json" "jwt" "mini_magick" "multipart-post" "plist" "rubyzip" "security" "simctl" "slack-notifier" "terminal-notifier" "terminal-table" "tty-screen" "tty-spinner" "word_wrap" "xcodeproj" "xcpretty" "xcpretty-travis-formatter"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jss8cpcngwrmpck6ncijksrfcj5csgljwn2rmqv9gx1azj4mlgv";
+      sha256 = "1h921zfck75f5b50z9jxnhanf8q9d58n122ffnpd1980q5w912rp";
       type = "gem";
     };
-    version = "2.148.1";
+    version = "2.171.0";
   };
   gh_inspector = {
     groups = ["default"];
@@ -308,20 +319,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rbascsddvwsq827fj4m2daqh0l3ghmdlbbhy48clgaysapaz685";
+      sha256 = "0bjgxyvagy6hjj8yg7fqq24rwdjxb6hx7fdd1bmn4mwd846lci2i";
       type = "gem";
     };
-    version = "1.3.1";
+    version = "1.4.0";
   };
   google-cloud-errors = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nl08lhgjvz3g7nsarn9nnsck0k3dg8mwg4awcnklnzpvs62b4ih";
+      sha256 = "1hvs1x39g77hbdqjxmzcl6gq8160pv3kskvzbbch0ww1np6qwm67";
       type = "gem";
     };
-    version = "1.0.0";
+    version = "1.0.1";
   };
   google-cloud-storage = {
     dependencies = ["addressable" "digest-crc" "google-api-client" "google-cloud-core" "googleauth" "mini_mime"];
@@ -329,10 +340,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wdnd5wisbrlivapdr7bcg8v59hayqz3q5qiqs0628g371lwx30k";
+      sha256 = "0dy5f00jsnd6id7bkc03pl2d6c78rl3lkysdn0f90padys5id1k5";
       type = "gem";
     };
-    version = "1.26.1";
+    version = "1.29.2";
   };
   googleauth = {
     dependencies = ["faraday" "jwt" "memoist" "multi_json" "os" "signet"];
@@ -340,10 +351,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rsk471ld98pxhvzig3lnw9i13454c9nschvzxvq6vjqnn9ip0yh";
+      sha256 = "0cm60nbmwzf83fzy06f3iyn5a6sw91siw8x9bdvpwwmjsmivana6";
       type = "gem";
     };
-    version = "0.12.0";
+    version = "0.14.0";
   };
   highline = {
     groups = ["default"];
@@ -391,20 +402,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nrmw2r4nfxlfgprfgki3hjifgrcrs3l5zvm3ca3gb4743yr25mn";
+      sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.5.1";
   };
   jwt = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1w0kaqrbl71cq9sbnixc20x5lqah3hs2i93xmhlfdg2y3by7yzky";
+      sha256 = "14ynyq1q483spj20ffl4xayfqx1a8qr761mqjfxczf8lwlap392n";
       type = "gem";
     };
-    version = "2.1.0";
+    version = "2.2.2";
   };
   memoist = {
     groups = ["default"];
@@ -421,10 +432,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lpq12z70n10c1qshcddd5nib2pkcbkwzvmiqqzj60l01k3x4fg9";
+      sha256 = "1aj604x11d9pksbljh0l38f70b558rhdgji1s9i763hiagvvx2hs";
       type = "gem";
     };
-    version = "4.10.1";
+    version = "4.11.0";
   };
   mini_mime = {
     groups = ["default"];
@@ -441,20 +452,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xy54mjf7xg41l8qrg1bqri75agdqmxap9z466fjismc1rn2jwfr";
-      type = "gem";
-    };
-    version = "1.14.1";
-  };
-  multi_xml = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0lmd4f401mvravi1i1yq7b2qjjli0yq7dfc4p1nj5nwajp7r6hyj";
+      sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z";
       type = "gem";
     };
-    version = "0.6.0";
+    version = "1.15.0";
   };
   multipart-post = {
     groups = ["default"];
@@ -471,10 +472,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ajfyaqjw3dzykk612yw8sm21savfqy292hgps8h8l4lvxww1lz6";
+      sha256 = "0xi36h3f7nm8bc2k0b6svpda1lyank2gf872lxjbhw3h95hdrbma";
       type = "gem";
     };
-    version = "0.2.6";
+    version = "0.3.0";
   };
   naturally = {
     groups = ["default"];
@@ -491,30 +492,40 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xnynckvrn9ailkmkrmkldnpv8hmmbdwxr7c7iz27cl1cpcdd49n";
+      sha256 = "12fli64wz5j9868gpzv5wqsingk1jk457qyqksv9ksmq9b0zpc9x";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.1.1";
   };
   plist = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ra0910xxbhfsmdi0ig36pr3q0khdqzwb5da3wg7y3n8d1sh9ffp";
+      sha256 = "1whhr897z6z6av85x2cipyjk46bwh6s4wx6nbrcd3iifnzvbqs7l";
       type = "gem";
     };
-    version = "3.5.0";
+    version = "3.6.0";
   };
   public_suffix = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "040jf98jpp6w140ghkhw2hvc1qx41zvywx5gj7r2ylr1148qnj7q";
+      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
+      type = "gem";
+    };
+    version = "4.0.6";
+  };
+  rake = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1iik52mf9ky4cgs38fp2m8r6skdkq1yz23vh18lk95fhbcxb6a67";
       type = "gem";
     };
-    version = "2.0.5";
+    version = "13.0.3";
   };
   representable = {
     dependencies = ["declarative" "declarative-option" "uber"];
@@ -547,15 +558,25 @@
     };
     version = "2.0.7";
   };
+  ruby2_keywords = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17pcc0wgvh3ikrkr7bm3nx0qhyiqwidd13ij0fa50k7gsbnr2p0l";
+      type = "gem";
+    };
+    version = "0.0.2";
+  };
   rubyzip = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qxc2zxwwipm6kviiar4gfhcakpx1jdcs89v6lvzivn5hq1xk78l";
+      sha256 = "0590m2pr9i209pp5z4mx0nb1961ishdiqb28995hw1nln1d1b5ji";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "2.3.0";
   };
   security = {
     groups = ["default"];
@@ -635,10 +656,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jwgr2i3wilng3mx851xczmkzllbirmsmr42ik4amqyyvry1yzyf";
+      sha256 = "18jr6s1cg8yb26wzkqa6874q0z93rq0y5aw092kdqazk71y6a235";
       type = "gem";
     };
-    version = "0.7.1";
+    version = "0.8.1";
   };
   tty-spinner = {
     dependencies = ["tty-cursor"];
@@ -708,10 +729,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bkk8y6lzd86w9yx72hd1nil3fkk5f0v3il9vm554gzpl6dhc2bi";
+      sha256 = "1411j6sfnz0cx4fiw52f0yqx4bgcn8cmpgi3i5rwmmahayyjz2fn";
       type = "gem";
     };
-    version = "1.16.0";
+    version = "1.19.0";
   };
   xcpretty = {
     dependencies = ["rouge"];
@@ -730,9 +751,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15b5c0lxz2blmichfdlabzlbyw5nlh1ci898pxwb661m9bahz3ml";
+      sha256 = "14rg4f70klrs910n7rsgfa4dn8s2qyny55194ax2qyyb2wpk7k5a";
       type = "gem";
     };
-    version = "1.0.0";
+    version = "1.0.1";
   };
 }
\ No newline at end of file
diff --git a/pkgs/tools/admin/google-cloud-sdk/default.nix b/pkgs/tools/admin/google-cloud-sdk/default.nix
index 29592451734..b2148fafe28 100644
--- a/pkgs/tools/admin/google-cloud-sdk/default.nix
+++ b/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 = "0kldvy63gba5k6ymybnggw3q3rlav1gcbpxiwnv6670lk5qzqdsw";
+      sha256 = "1miqvh2b3mxrrr63q8f5i944mp3rz6685ckmnk5fml2wyc273jiv";
     };
 
     x86_64-linux = {
       url = "${baseUrl}/${name}-linux-x86_64.tar.gz";
-      sha256 = "1ifl4skwqhkapfwhymyz7v4jpwpd01n4x3956w5ci8c3zvw8l118";
+      sha256 = "15kfsxn6j37rsw97ixj7ixkzcby0pkgc5xj7cpqdq975ym58sgv7";
     };
   }.${system};
 
 in stdenv.mkDerivation rec {
   pname = "google-cloud-sdk";
-  version = "319.0.0";
+  version = "321.0.0";
 
   src = fetchurl (sources "${pname}-${version}" stdenv.hostPlatform.system);
 
@@ -99,7 +99,7 @@ in stdenv.mkDerivation rec {
     # This package contains vendored dependencies. All have free licenses.
     license = licenses.free;
     homepage = "https://cloud.google.com/sdk/";
-    maintainers = with maintainers; [ pradyuman stephenmw zimbatm ];
+    maintainers = with maintainers; [ iammrinal0 pradyuman stephenmw zimbatm ];
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
   };
 }
diff --git a/pkgs/tools/admin/lexicon/default.nix b/pkgs/tools/admin/lexicon/default.nix
index 4e87a68866c..6c105cf9b33 100644
--- a/pkgs/tools/admin/lexicon/default.nix
+++ b/pkgs/tools/admin/lexicon/default.nix
@@ -31,14 +31,14 @@ in
 
 buildPythonApplication rec {
   pname = "lexicon";
-  version = "3.4.3";
+  version = "3.5.2";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "AnalogJ";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ym4gj4xyd69rsc5niilvcb72gys22rjxhj4qd574vyx3ryl34za";
+    sha256 = "1jsc2ybbf3mbvgzkgliria494dpj23mgqnw2lh43cnd9rgsjvzn3";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/admin/trivy/default.nix b/pkgs/tools/admin/trivy/default.nix
index ffe5d25bd9c..0a4bf934d80 100644
--- a/pkgs/tools/admin/trivy/default.nix
+++ b/pkgs/tools/admin/trivy/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "trivy";
-  version = "0.14.0";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ylk6n062n9w2c8179mj0z5acz98b30w6dkpz8gslachsz9sb5ij";
+    sha256 = "11fd32qb69g23lxrynsnfy8a783sl60rzknvq4shdg41p2ikigdk";
   };
 
-  vendorSha256 = "0kljvy61n72dg99jyc47fzhc8ihyfjk30a1a031gczk3q3z2l7kj";
+  vendorSha256 = "09birwc8x90l2y0znf4fwny3phnmq0cz0l2z3xzwg0j3msrdl2np";
 
   subPackages = [ "cmd/trivy" ];
 
diff --git a/pkgs/tools/archivers/p7zip/default.nix b/pkgs/tools/archivers/p7zip/default.nix
index a155c1717eb..610e89c2fc3 100644
--- a/pkgs/tools/archivers/p7zip/default.nix
+++ b/pkgs/tools/archivers/p7zip/default.nix
@@ -13,6 +13,10 @@ stdenv.mkDerivation rec {
   }
   ;
 
+  patches = [
+    ./gcc10.patch
+  ];
+
   # Default makefile is full of impurities on Darwin. The patch doesn't hurt Linux so I'm leaving it unconditional
   postPatch = ''
     sed -i '/CC=\/usr/d' makefile.macosx_llvm_64bits
diff --git a/pkgs/tools/archivers/p7zip/gcc10.patch b/pkgs/tools/archivers/p7zip/gcc10.patch
new file mode 100644
index 00000000000..9361249af93
--- /dev/null
+++ b/pkgs/tools/archivers/p7zip/gcc10.patch
@@ -0,0 +1,40 @@
+From 1b7d2c73f01b2d2b6a3d2d16840e96e92afdcd61 Mon Sep 17 00:00:00 2001
+From: jinfeihan57 <jinfeihan57@gmail.com>
+Date: Tue, 9 Jun 2020 16:48:25 +0800
+Subject: [PATCH] gix gcc10 compiler error
+
+---
+ CPP/Windows/ErrorMsg.cpp | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/CPP/Windows/ErrorMsg.cpp b/CPP/Windows/ErrorMsg.cpp
+index 99684ae..90a7e20 100644
+--- a/CPP/Windows/ErrorMsg.cpp
++++ b/CPP/Windows/ErrorMsg.cpp
+@@ -13,7 +13,7 @@ UString MyFormatMessage(DWORD errorCode)
+   const char * txt = 0;
+   AString msg;
+ 
+-  switch(errorCode) {
++  switch(HRESULT(errorCode)) {
+     case ERROR_NO_MORE_FILES   : txt = "No more files"; break ;
+     case E_NOTIMPL             : txt = "E_NOTIMPL"; break ;
+     case E_NOINTERFACE         : txt = "E_NOINTERFACE"; break ;
+@@ -22,7 +22,7 @@ UString MyFormatMessage(DWORD errorCode)
+     case STG_E_INVALIDFUNCTION : txt = "STG_E_INVALIDFUNCTION"; break ;
+     case E_OUTOFMEMORY         : txt = "E_OUTOFMEMORY"; break ;
+     case E_INVALIDARG          : txt = "E_INVALIDARG"; break ;
+-    case ERROR_DIRECTORY          : txt = "Error Directory"; break ;
++    case ERROR_DIRECTORY       : txt = "Error Directory"; break ;
+     default:
+       txt = strerror(errorCode);
+   }
+@@ -43,7 +43,7 @@ bool MyFormatMessage(DWORD messageID, CSysString &message)
+   const char * txt = 0;
+   AString msg;
+ 
+-  switch(messageID) {
++  switch(HRESULT(messageID)) {
+     case ERROR_NO_MORE_FILES   : txt = "No more files"; break ;
+     case E_NOTIMPL             : txt = "E_NOTIMPL"; break ;
+     case E_NOINTERFACE         : txt = "E_NOINTERFACE"; break ;
diff --git a/pkgs/tools/audio/aucdtect/default.nix b/pkgs/tools/audio/aucdtect/default.nix
deleted file mode 100644
index ad9d5fb8690..00000000000
--- a/pkgs/tools/audio/aucdtect/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ stdenv, fetchurl, lib, rpmextract }:
-
-with lib;
-
-stdenv.mkDerivation rec {
-  pname = "aucdtect";
-  version = "0.8-2";
-
-  src = fetchurl {
-    url = "http://www.true-audio.com/ftp/${pname}-${version}.i586.rpm";
-    sha256 = "1lp5f0rq5b5n5il0c64m00gcfskarvgqslpryms9443d200y6mmd";
-  };
-
-  unpackCmd = "${rpmextract}/bin/rpmextract $src";
-
-  installPhase = ''
-    runHook preInstall
-
-    install -Dm755 local/bin/auCDtect $out/bin/aucdtect
-
-    runHook postInstall
-  '';
-
-  dontStrip = true;
-
-  meta = with stdenv.lib; {
-    description = "Verify authenticity of lossless audio files";
-    homepage = "http://tausoft.org";
-    license = licenses.unfreeRedistributable;
-    maintainers = with maintainers; [ peterhoeg ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/tools/audio/beets/badfiles-plugin-nix-paths.patch b/pkgs/tools/audio/beets/badfiles-plugin-nix-paths.patch
new file mode 100644
index 00000000000..6956183344c
--- /dev/null
+++ b/pkgs/tools/audio/beets/badfiles-plugin-nix-paths.patch
@@ -0,0 +1,21 @@
+diff --git i/beetsplug/badfiles.py w/beetsplug/badfiles.py
+index 36b45de3..5208b696 100644
+--- i/beetsplug/badfiles.py
++++ w/beetsplug/badfiles.py
+@@ -71,14 +71,14 @@ class BadFiles(BeetsPlugin):
+         return status, errors, [line for line in output.split("\n") if line]
+ 
+     def check_mp3val(self, path):
+-        status, errors, output = self.run_command(["mp3val", path])
++        status, errors, output = self.run_command(["@mp3val@/bin/mp3val", path])
+         if status == 0:
+             output = [line for line in output if line.startswith("WARNING:")]
+             errors = len(output)
+         return status, errors, output
+ 
+     def check_flac(self, path):
+-        return self.run_command(["flac", "-wst", path])
++        return self.run_command(["@flac@/bin/flac", "-wst", path])
+ 
+     def check_custom(self, command):
+         def checker(path):
diff --git a/pkgs/tools/audio/beets/bash-completion-always-print.patch b/pkgs/tools/audio/beets/bash-completion-always-print.patch
new file mode 100644
index 00000000000..7bc3e57117e
--- /dev/null
+++ b/pkgs/tools/audio/beets/bash-completion-always-print.patch
@@ -0,0 +1,43 @@
+diff --git i/beets/ui/commands.py w/beets/ui/commands.py
+index 4d010f4b..0b023585 100755
+--- i/beets/ui/commands.py
++++ w/beets/ui/commands.py
+@@ -1741,20 +1741,6 @@ default_commands.append(config_cmd)
+ def print_completion(*args):
+     for line in completion_script(default_commands + plugins.commands()):
+         print_(line, end=u'')
+-    if not any(map(os.path.isfile, BASH_COMPLETION_PATHS)):
+-        log.warning(u'Warning: Unable to find the bash-completion package. '
+-                    u'Command line completion might not work.')
+-
+-BASH_COMPLETION_PATHS = map(syspath, [
+-    u'/etc/bash_completion',
+-    u'/usr/share/bash-completion/bash_completion',
+-    u'/usr/local/share/bash-completion/bash_completion',
+-    # SmartOS
+-    u'/opt/local/share/bash-completion/bash_completion',
+-    # Homebrew (before bash-completion2)
+-    u'/usr/local/etc/bash_completion',
+-])
+-
+ 
+ def completion_script(commands):
+     """Yield the full completion shell script as strings.
+diff --git i/test/test_ui.py w/test/test_ui.py
+index 5cfed1fd..9d3dc458 100644
+--- i/test/test_ui.py
++++ w/test/test_ui.py
+@@ -1230,12 +1230,7 @@ class CompletionTest(_common.TestCase, TestHelper):
+                                   stdout=subprocess.PIPE, env=env)
+ 
+         # Load bash_completion library.
+-        for path in commands.BASH_COMPLETION_PATHS:
+-            if os.path.exists(util.syspath(path)):
+-                bash_completion = path
+-                break
+-        else:
+-            self.skipTest(u'bash-completion script not found')
++        self.skipTest(u'bash-completion script not found')
+         try:
+             with open(util.syspath(bash_completion), 'rb') as f:
+                 tester.stdin.writelines(f)
diff --git a/pkgs/tools/audio/beets/compatibility-with-breaking-changes-to-the-ast-module.patch b/pkgs/tools/audio/beets/compatibility-with-breaking-changes-to-the-ast-module.patch
deleted file mode 100644
index 4865b6f6234..00000000000
--- a/pkgs/tools/audio/beets/compatibility-with-breaking-changes-to-the-ast-module.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 771ce704ebeac4cd9bd74b3ddde9fb01f3dc7eb4 Mon Sep 17 00:00:00 2001
-From: wisp3rwind <17089248+wisp3rwind@users.noreply.github.com>
-Date: Tue, 9 Jun 2020 19:34:31 +0200
-Subject: [PATCH] compatibility with breaking changes to the ast module
-
-new in 3.10, also backported to 3.8 and 3.9: https://github.com/python/cpython/pull/20649
-In fact, our generation of some Literals has been invalid since Python
-3.4, fix that too.
----
- beets/util/functemplate.py | 29 ++++++++++++++++++++---------
- 1 file changed, 20 insertions(+), 9 deletions(-)
-
-diff --git a/beets/util/functemplate.py b/beets/util/functemplate.py
-index af22b790..266534a9 100644
---- a/beets/util/functemplate.py
-+++ b/beets/util/functemplate.py
-@@ -73,15 +73,26 @@ def ex_literal(val):
-     """An int, float, long, bool, string, or None literal with the given
-     value.
-     """
--    if val is None:
--        return ast.Name('None', ast.Load())
--    elif isinstance(val, six.integer_types):
--        return ast.Num(val)
--    elif isinstance(val, bool):
--        return ast.Name(bytes(val), ast.Load())
--    elif isinstance(val, six.string_types):
--        return ast.Str(val)
--    raise TypeError(u'no literal for {0}'.format(type(val)))
-+    if sys.version_info[:2] < (3, 4):
-+        if val is None:
-+            return ast.Name('None', ast.Load())
-+        elif isinstance(val, six.integer_types):
-+            return ast.Num(val)
-+        elif isinstance(val, bool):
-+            return ast.Name(bytes(val), ast.Load())
-+        elif isinstance(val, six.string_types):
-+            return ast.Str(val)
-+        raise TypeError(u'no literal for {0}'.format(type(val)))
-+    elif sys.version_info[:2] < (3, 6):
-+        if val in [None, True, False]:
-+            return ast.NameConstant(val)
-+        elif isinstance(val, six.integer_types):
-+            return ast.Num(val)
-+        elif isinstance(val, six.string_types):
-+            return ast.Str(val)
-+        raise TypeError(u'no literal for {0}'.format(type(val)))
-+    else:
-+        return ast.Constant(val)
- 
- 
- def ex_varassign(name, expr):
--- 
-2.27.0
-
diff --git a/pkgs/tools/audio/beets/convert-plugin-ffmpeg-path.patch b/pkgs/tools/audio/beets/convert-plugin-ffmpeg-path.patch
new file mode 100644
index 00000000000..bcc77179d79
--- /dev/null
+++ b/pkgs/tools/audio/beets/convert-plugin-ffmpeg-path.patch
@@ -0,0 +1,43 @@
+diff --git i/beetsplug/convert.py w/beetsplug/convert.py
+index 70363f6e..2962aa4f 100644
+--- i/beetsplug/convert.py
++++ w/beetsplug/convert.py
+@@ -81,7 +81,7 @@ def get_format(fmt=None):
+         command = config['convert']['command'].as_str()
+     elif 'opts' in keys:
+         # Undocumented option for backwards compatibility with < 1.3.1.
+-        command = u'ffmpeg -i $source -y {0} $dest'.format(
++        command = u'@ffmpeg@/bin/ffmpeg -i $source -y {0} $dest'.format(
+             config['convert']['opts'].as_str()
+         )
+     if 'extension' in keys:
+@@ -121,22 +121,22 @@ class ConvertPlugin(BeetsPlugin):
+             u'id3v23': u'inherit',
+             u'formats': {
+                 u'aac': {
+-                    u'command': u'ffmpeg -i $source -y -vn -acodec aac '
++                    u'command': u'@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec aac '
+                                 u'-aq 1 $dest',
+                     u'extension': u'm4a',
+                 },
+                 u'alac': {
+-                    u'command': u'ffmpeg -i $source -y -vn -acodec alac $dest',
++                    u'command': u'@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec alac $dest',
+                     u'extension': u'm4a',
+                 },
+-                u'flac': u'ffmpeg -i $source -y -vn -acodec flac $dest',
+-                u'mp3': u'ffmpeg -i $source -y -vn -aq 2 $dest',
++                u'flac': u'@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec flac $dest',
++                u'mp3': u'@ffmpeg@/bin/ffmpeg -i $source -y -vn -aq 2 $dest',
+                 u'opus':
+-                    u'ffmpeg -i $source -y -vn -acodec libopus -ab 96k $dest',
++                    u'@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec libopus -ab 96k $dest',
+                 u'ogg':
+-                    u'ffmpeg -i $source -y -vn -acodec libvorbis -aq 3 $dest',
++                    u'@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec libvorbis -aq 3 $dest',
+                 u'wma':
+-                    u'ffmpeg -i $source -y -vn -acodec wmav2 -vn $dest',
++                    u'@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec wmav2 -vn $dest',
+             },
+             u'max_bitrate': 500,
+             u'auto': False,
diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix
index 56551891a4a..f72692c845c 100644
--- a/pkgs/tools/audio/beets/default.nix
+++ b/pkgs/tools/audio/beets/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, writeScript, glibcLocales, diffPlugins
+{ stdenv, lib, fetchFromGitHub, writeScript, glibcLocales, diffPlugins, substituteAll
 , pythonPackages, imagemagick, gobject-introspection, gst_all_1
 , runtimeShell
 , fetchpatch
@@ -6,61 +6,70 @@
 # Attributes needed for tests of the external plugins
 , callPackage, beets
 
-, enableAbsubmit       ? stdenv.lib.elem stdenv.hostPlatform.system essentia-extractor.meta.platforms, essentia-extractor ? null
-, enableAcousticbrainz ? true
-, enableAcoustid       ? true
-, enableBadfiles       ? true, flac ? null, mp3val ? null
-, enableConvert        ? true, ffmpeg_3 ? null
-, enableDiscogs        ? true
-, enableEmbyupdate     ? true
-, enableFetchart       ? true
-, enableGmusic         ? true
-, enableKeyfinder      ? true, keyfinder-cli ? null
-, enableKodiupdate     ? true
-, enableLastfm         ? true
-, enableLoadext        ? true
-, enableMpd            ? true
-, enablePlaylist       ? true
-, enableReplaygain     ? true, bs1770gain ? null
-, enableSonosUpdate    ? true
-, enableSubsonicupdate ? true
-, enableThumbnails     ? true
-, enableWeb            ? true
+, enableAbsubmit         ? lib.elem stdenv.hostPlatform.system essentia-extractor.meta.platforms, essentia-extractor ? null
+, enableAcousticbrainz   ? true
+, enableAcoustid         ? true
+, enableBadfiles         ? true, flac ? null, mp3val ? null
+, enableBeatport         ? true
+, enableBpsync           ? true
+, enableConvert          ? true, ffmpeg ? null
+, enableDeezer           ? true
+, enableDiscogs          ? true
+, enableEmbyupdate       ? true
+, enableFetchart         ? true
+, enableGmusic           ? true
+, enableKeyfinder        ? true, keyfinder-cli ? null
+, enableKodiupdate       ? true
+, enableLastfm           ? true
+, enableLoadext          ? true
+, enableMpd              ? true
+, enablePlaylist         ? true
+, enableReplaygain       ? true
+, enableSonosUpdate      ? true
+, enableSubsonicplaylist ? true
+, enableSubsonicupdate   ? true
+, enableThumbnails       ? true
+, enableWeb              ? true
 
 # External plugins
-, enableAlternatives   ? false
-, enableCheck          ? false, liboggz ? null
-, enableCopyArtifacts  ? false
-, enableExtraFiles     ? false
+, enableAlternatives     ? false
+, enableCheck            ? false, liboggz ? null
+, enableCopyArtifacts    ? false
+, enableExtraFiles       ? false
 
 , bashInteractive, bash-completion
 }:
 
-assert enableAbsubmit    -> essentia-extractor            != null;
-assert enableAcoustid    -> pythonPackages.pyacoustid     != null;
+assert enableAbsubmit    -> essentia-extractor               != null;
+assert enableAcoustid    -> pythonPackages.pyacoustid        != null;
 assert enableBadfiles    -> flac != null && mp3val != null;
+assert enableBeatport    -> pythonPackages.requests_oauthlib != null;
+assert enableBpsync      -> enableBeatport;
 assert enableCheck       -> flac != null && mp3val != null && liboggz != null;
-assert enableConvert     -> ffmpeg_3 != null;
-assert enableDiscogs     -> pythonPackages.discogs_client != null;
-assert enableFetchart    -> pythonPackages.responses      != null;
-assert enableGmusic      -> pythonPackages.gmusicapi      != null;
-assert enableKeyfinder   -> keyfinder-cli != null;
-assert enableLastfm      -> pythonPackages.pylast         != null;
-assert enableMpd         -> pythonPackages.mpd2           != null;
-assert enableReplaygain  -> bs1770gain                    != null;
-assert enableSonosUpdate -> pythonPackages.soco           != null;
-assert enableThumbnails  -> pythonPackages.pyxdg          != null;
-assert enableWeb         -> pythonPackages.flask          != null;
-
-with stdenv.lib;
+assert enableConvert     -> ffmpeg                         != null;
+assert enableDiscogs     -> pythonPackages.discogs_client    != null;
+assert enableFetchart    -> pythonPackages.responses         != null;
+assert enableGmusic      -> pythonPackages.gmusicapi         != null;
+assert enableKeyfinder   -> keyfinder-cli                    != null;
+assert enableLastfm      -> pythonPackages.pylast            != null;
+assert enableMpd         -> pythonPackages.mpd2              != null;
+assert enableReplaygain  -> ffmpeg                         != null;
+assert enableSonosUpdate -> pythonPackages.soco              != null;
+assert enableThumbnails  -> pythonPackages.pyxdg             != null;
+assert enableWeb         -> pythonPackages.flask             != null;
+
+with lib;
 
 let
   optionalPlugins = {
     absubmit = enableAbsubmit;
     acousticbrainz = enableAcousticbrainz;
     badfiles = enableBadfiles;
+    beatport = enableBeatport;
+    bpsync = enableBpsync;
     chroma = enableAcoustid;
     convert = enableConvert;
+    deezer = enableDeezer;
     discogs = enableDiscogs;
     embyupdate = enableEmbyupdate;
     fetchart = enableFetchart;
@@ -75,18 +84,19 @@ let
     playlist = enablePlaylist;
     replaygain = enableReplaygain;
     sonosupdate = enableSonosUpdate;
+    subsonicplaylist = enableSubsonicplaylist;
     subsonicupdate = enableSubsonicupdate;
     thumbnails = enableThumbnails;
     web = enableWeb;
   };
 
   pluginsWithoutDeps = [
-    "beatport" "bench" "bpd" "bpm" "bucket" "cue" "duplicates" "edit" "embedart"
-    "export" "filefilter" "freedesktop" "fromfilename" "ftintitle" "fuzzy"
+    "bench" "bpd" "bpm" "bucket" "cue" "duplicates" "edit" "embedart"
+    "export" "filefilter" "fish" "freedesktop" "fromfilename" "ftintitle" "fuzzy"
     "hook" "ihate" "importadded" "importfeeds" "info" "inline" "ipfs" "lyrics"
-    "mbcollection" "mbsubmit" "mbsync" "metasync" "missing" "permissions" "play"
+    "mbcollection" "mbsubmit" "mbsync" "metasync" "missing" "parentwork" "permissions" "play"
     "plexupdate" "random" "rewrite" "scrub" "smartplaylist" "spotify" "the"
-    "types" "zero"
+    "types" "unimported" "zero"
   ];
 
   enabledOptionalPlugins = attrNames (filterAttrs (_: id) optionalPlugins);
@@ -102,28 +112,33 @@ let
     enableAlternatives = false;
     enableCopyArtifacts = false;
     enableExtraFiles = false;
-  }).overrideAttrs (stdenv.lib.const {
+  }).overrideAttrs (const {
     doInstallCheck = false;
   });
 
   pluginArgs = externalTestArgs // { inherit pythonPackages; };
 
   plugins = {
-    alternatives = callPackage ./alternatives-plugin.nix pluginArgs;
-    check = callPackage ./check-plugin.nix pluginArgs;
-    copyartifacts = callPackage ./copyartifacts-plugin.nix pluginArgs;
-    extrafiles = callPackage ./extrafiles-plugin.nix pluginArgs;
+    alternatives = callPackage ./plugins/alternatives.nix pluginArgs;
+    check = callPackage ./plugins/check.nix pluginArgs;
+    copyartifacts = callPackage ./plugins/copyartifacts.nix pluginArgs;
+    extrafiles = callPackage ./plugins/extrafiles.nix pluginArgs;
   };
 
 in pythonPackages.buildPythonApplication rec {
   pname = "beets";
-  version = "1.4.9";
+  # While there is a stable version, 1.4.9, it is more than 1000 commits behind
+  # master and lacks many bug fixes and improvements[1]. Also important,
+  # 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-2020-12-22";
 
   src = fetchFromGitHub {
     owner = "beetbox";
     repo = "beets";
-    rev = "v${version}";
-    sha256 = "1qxdqbzvz97zgykzdwn78g2xyxmg0q2jdb12dnjnrwvhmjv67vi8";
+    rev = "53dcb24d10788897f20c341774b474808ec2c0b6";
+    sha256 = "sha256-P++NA13T2TRHW3Se10np8BSe/WRBYAKRte5xKoHKW50=";
   };
 
   propagatedBuildInputs = [
@@ -137,19 +152,25 @@ in pythonPackages.buildPythonApplication rec {
     pythonPackages.unidecode
     pythonPackages.gst-python
     pythonPackages.pygobject3
+    pythonPackages.reflink
+    pythonPackages.confuse
+    pythonPackages.mediafile
     gobject-introspection
   ] ++ optional enableAbsubmit      essentia-extractor
     ++ optional enableAcoustid      pythonPackages.pyacoustid
+    ++ optional enableBeatport      pythonPackages.requests_oauthlib
     ++ optional (enableFetchart
+              || enableDeezer
               || enableEmbyupdate
               || enableKodiupdate
               || enableLoadext
               || enablePlaylist
+              || enableSubsonicplaylist
               || enableSubsonicupdate
               || enableAcousticbrainz)
                                     pythonPackages.requests
     ++ optional enableCheck         plugins.check
-    ++ optional enableConvert       ffmpeg_3
+    ++ optional enableConvert       ffmpeg
     ++ optional enableDiscogs       pythonPackages.discogs_client
     ++ optional enableGmusic        pythonPackages.gmusicapi
     ++ optional enableKeyfinder     keyfinder-cli
@@ -187,41 +208,35 @@ in pythonPackages.buildPythonApplication rec {
   ];
 
   patches = [
-    ./replaygain-default-bs1770gain.patch
+    # Bash completion fix for Nix
+    ./bash-completion-always-print.patch
+    # From some reason upstream assumes the program 'keyfinder-cli' is located
+    # in the path as `KeyFinder`
     ./keyfinder-default-bin.patch
-    ./mutagen-1.43.patch
-    (fetchpatch {
-      # Fixes failing testcases around the werkzeug component; can dropped after 1.4.9
-      url = "https://github.com/beetbox/beets/commit/d43d54e21cde97f57f19486925ab56b419254cc8.patch";
-      sha256 = "13n2gzmcgfi0m2ycl2r1hpczgksplnkc3y6b66vg57rx5y8nnv5c";
+  ]
+    # We need to force ffmpeg as the default, since we do not package
+    # bs1770gain, and set the absolute path there, to avoid impurities.
+    ++ lib.optional enableReplaygain (substituteAll {
+      src = ./replaygain-default-ffmpeg.patch;
+      ffmpeg = getBin ffmpeg;
     })
+    # Put absolute Nix paths in place
+    ++ lib.optional enableConvert (substituteAll {
+      src = ./convert-plugin-ffmpeg-path.patch;
+      ffmpeg = getBin ffmpeg;
+    })
+    ++ lib.optional enableBadfiles (substituteAll {
+      src = ./badfiles-plugin-nix-paths.patch;
+      inherit mp3val flac;
+    })
+  ;
 
-    # Fixes 548 tests due to breaking changes to the ast module
-    # https://github.com/beetbox/beets/pull/3621
-    # Can be dropped after 1.4.9
-    ./compatibility-with-breaking-changes-to-the-ast-module.patch
-  ];
-
+  # Disable failing tests
   postPatch = ''
     sed -i -e '/assertIn.*item.*path/d' test/test_info.py
     echo echo completion tests passed > test/rsrc/test_completion.sh
 
-    sed -i -e '/^BASH_COMPLETION_PATHS *=/,/^])$/ {
-      /^])$/i u"${completion}"
-    }' beets/ui/commands.py
-  '' + optionalString enableBadfiles ''
-    sed -i -e '/self\.run_command(\[/ {
-      s,"flac","${flac.bin}/bin/flac",
-      s,"mp3val","${mp3val}/bin/mp3val",
-    }' beetsplug/badfiles.py
-  '' + optionalString enableConvert ''
-    sed -i -e 's,\(util\.command_output(\)\([^)]\+\)),\1[b"${ffmpeg_3.bin}/bin/ffmpeg" if args[0] == b"ffmpeg" else args[0]] + \2[1:]),' beetsplug/convert.py
-  '' + optionalString enableReplaygain ''
-    sed -i -re '
-      s!^( *cmd *= *b?['\'''"])(bs1770gain['\'''"])!\1${bs1770gain}/bin/\2!
-    ' beetsplug/replaygain.py
-    sed -i -e 's/if has_program.*bs1770gain.*:/if True:/' \
-      test/test_replaygain.py
+    sed -i -e 's/len(mf.images)/0/' test/test_zero.py
   '';
 
   postInstall = ''
@@ -281,7 +296,7 @@ in pythonPackages.buildPythonApplication rec {
     description = "Music tagger and library organizer";
     homepage = "http://beets.io";
     license = licenses.mit;
-    maintainers = with maintainers; [ aszlig domenkozar pjones ];
+    maintainers = with maintainers; [ aszlig domenkozar doronbehar lovesegfault pjones ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/audio/beets/keyfinder-default-bin.patch b/pkgs/tools/audio/beets/keyfinder-default-bin.patch
index 1ea195a678e..ec6bc3a5561 100644
--- a/pkgs/tools/audio/beets/keyfinder-default-bin.patch
+++ b/pkgs/tools/audio/beets/keyfinder-default-bin.patch
@@ -1,8 +1,8 @@
 diff --git a/beetsplug/keyfinder.py b/beetsplug/keyfinder.py
-index 34a4abc..59e8539 100644
+index 702003f0..08689cd8 100644
 --- a/beetsplug/keyfinder.py
 +++ b/beetsplug/keyfinder.py
-@@ -30,7 +30,7 @@ class KeyFinderPlugin(BeetsPlugin):
+@@ -31,7 +31,7 @@ class KeyFinderPlugin(BeetsPlugin):
      def __init__(self):
          super(KeyFinderPlugin, self).__init__()
          self.config.add({
@@ -11,18 +11,8 @@ index 34a4abc..59e8539 100644
              u'auto': True,
              u'overwrite': False,
          })
-@@ -59,8 +59,7 @@ class KeyFinderPlugin(BeetsPlugin):
-                 continue
- 
-             try:
--                output = util.command_output([bin, '-f',
--                                              util.syspath(item.path)])
-+                output = util.command_output([bin, util.syspath(item.path)])
-             except (subprocess.CalledProcessError, OSError) as exc:
-                 self._log.error(u'execution failed: {0}', exc)
-                 continue
 diff --git a/test/test_keyfinder.py b/test/test_keyfinder.py
-index 57e2bcd..c1ee916 100644
+index c8735e47..d7d670a4 100644
 --- a/test/test_keyfinder.py
 +++ b/test/test_keyfinder.py
 @@ -44,7 +44,7 @@ class KeyFinderTest(unittest.TestCase, TestHelper):
@@ -31,6 +21,6 @@ index 57e2bcd..c1ee916 100644
          command_output.assert_called_with(
 -            ['KeyFinder', '-f', util.syspath(item.path)])
 +            ['keyfinder-cli', util.syspath(item.path)])
- 
+
      def test_add_key_on_import(self, command_output):
-         command_output.return_value = 'dbm'
+         command_output.return_value = util.CommandOutput(b"dbm", b"")
diff --git a/pkgs/tools/audio/beets/mutagen-1.43.patch b/pkgs/tools/audio/beets/mutagen-1.43.patch
deleted file mode 100644
index d0d448c15e9..00000000000
--- a/pkgs/tools/audio/beets/mutagen-1.43.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-Backport
-https://github.com/beetbox/mediafile/commit/b3343c4ee08d1251ae5e2344401a2f5892b4e868
-https://github.com/beetbox/mediafile/commit/d2fc3b59f77c515b02dfe7ad936f89264375d2b4
-to Beets 1.4.9.
-
-diff --git i/setup.py w/setup.py
-index 79278f8b..b8d60687 100755
---- i/setup.py
-+++ w/setup.py
-@@ -87,7 +87,7 @@ setup(
- 
-     install_requires=[
-         'six>=1.9',
--        'mutagen>=1.33',
-+        'mutagen>=1.43',
-         'unidecode',
-         'musicbrainzngs>=0.4',
-         'pyyaml',
-diff --git i/test/test_mediafile.py w/test/test_mediafile.py
-index 36a2c53a..0ddde44e 100644
---- i/test/test_mediafile.py
-+++ w/test/test_mediafile.py
-@@ -888,7 +888,7 @@ class WavpackTest(ReadWriteTestBase, unittest.TestCase):
-         'bitrate': 109312,
-         'format': u'WavPack',
-         'samplerate': 44100,
--        'bitdepth': 0,
-+        'bitdepth': 16,
-         'channels': 1,
-     }
- 
-@@ -912,7 +912,7 @@ class AIFFTest(ReadWriteTestBase, unittest.TestCase):
-         'bitrate': 705600,
-         'format': u'AIFF',
-         'samplerate': 44100,
--        'bitdepth': 0,
-+        'bitdepth': 16,
-         'channels': 1,
-     }
- 
diff --git a/pkgs/tools/audio/beets/alternatives-plugin.nix b/pkgs/tools/audio/beets/plugins/alternatives.nix
index fdad7dd8984..fdad7dd8984 100644
--- a/pkgs/tools/audio/beets/alternatives-plugin.nix
+++ b/pkgs/tools/audio/beets/plugins/alternatives.nix
diff --git a/pkgs/tools/audio/beets/beet-check-tests.patch b/pkgs/tools/audio/beets/plugins/check-tests.patch
index 2de97b86c8b..2de97b86c8b 100644
--- a/pkgs/tools/audio/beets/beet-check-tests.patch
+++ b/pkgs/tools/audio/beets/plugins/check-tests.patch
diff --git a/pkgs/tools/audio/beets/check-plugin.nix b/pkgs/tools/audio/beets/plugins/check.nix
index 241dcdad452..241dcdad452 100644
--- a/pkgs/tools/audio/beets/check-plugin.nix
+++ b/pkgs/tools/audio/beets/plugins/check.nix
diff --git a/pkgs/tools/audio/beets/copyartifacts-plugin.nix b/pkgs/tools/audio/beets/plugins/copyartifacts.nix
index 9432cb9bd0b..9432cb9bd0b 100644
--- a/pkgs/tools/audio/beets/copyartifacts-plugin.nix
+++ b/pkgs/tools/audio/beets/plugins/copyartifacts.nix
diff --git a/pkgs/tools/audio/beets/extrafiles-plugin.nix b/pkgs/tools/audio/beets/plugins/extrafiles.nix
index 7d0e446ce60..7d0e446ce60 100644
--- a/pkgs/tools/audio/beets/extrafiles-plugin.nix
+++ b/pkgs/tools/audio/beets/plugins/extrafiles.nix
diff --git a/pkgs/tools/audio/beets/replaygain-default-bs1770gain.patch b/pkgs/tools/audio/beets/replaygain-default-bs1770gain.patch
deleted file mode 100644
index 538f9e93303..00000000000
--- a/pkgs/tools/audio/beets/replaygain-default-bs1770gain.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff --git a/beetsplug/replaygain.py b/beetsplug/replaygain.py
-index 40b3a3a..9b54a5a 100644
---- a/beetsplug/replaygain.py
-+++ b/beetsplug/replaygain.py
-@@ -627,11 +627,10 @@ class ReplayGainPlugin(BeetsPlugin):
-         super(ReplayGainPlugin, self).__init__()
-         self.import_stages = [self.imported]
- 
--        # default backend is 'command' for backward-compatibility.
-         self.config.add({
-             'overwrite': False,
-             'auto': True,
--            'backend': u'command',
-+            'backend': u'bs1770gain',
-             'targetlevel': 89,
-         })
- 
diff --git a/pkgs/tools/audio/beets/replaygain-default-ffmpeg.patch b/pkgs/tools/audio/beets/replaygain-default-ffmpeg.patch
new file mode 100644
index 00000000000..0ceba3c0944
--- /dev/null
+++ b/pkgs/tools/audio/beets/replaygain-default-ffmpeg.patch
@@ -0,0 +1,26 @@
+diff --git i/beetsplug/replaygain.py w/beetsplug/replaygain.py
+index 9d6fa23c..c5800039 100644
+--- i/beetsplug/replaygain.py
++++ w/beetsplug/replaygain.py
+@@ -391,7 +391,7 @@ class FfmpegBackend(Backend):
+ 
+     def __init__(self, config, log):
+         super(FfmpegBackend, self).__init__(config, log)
+-        self._ffmpeg_path = "ffmpeg"
++        self._ffmpeg_path = "@ffmpeg@/bin/ffmpeg"
+ 
+         # check that ffmpeg is installed
+         try:
+@@ -1228,11 +1228,10 @@ class ReplayGainPlugin(BeetsPlugin):
+     def __init__(self):
+         super(ReplayGainPlugin, self).__init__()
+ 
+-        # default backend is 'command' for backward-compatibility.
+         self.config.add({
+             'overwrite': False,
+             'auto': True,
+-            'backend': u'command',
++            'backend': u'ffmpeg',
+             'threads': cpu_count(),
+             'parallel_on_import': False,
+             'per_disc': False,
diff --git a/pkgs/tools/audio/kaldi/default.nix b/pkgs/tools/audio/kaldi/default.nix
new file mode 100644
index 00000000000..fa291a05078
--- /dev/null
+++ b/pkgs/tools/audio/kaldi/default.nix
@@ -0,0 +1,88 @@
+{ stdenv
+, openblas
+, blas
+, lapack
+, openfst
+, icu
+, cmake
+, pkg-config
+, fetchFromGitHub
+, git
+, python3
+}:
+
+assert blas.implementation == "openblas" && lapack.implementation == "openblas";
+let
+  # rev from https://github.com/kaldi-asr/kaldi/blob/master/cmake/third_party/openfst.cmake
+  openfst = fetchFromGitHub {
+    owner = "kkm000";
+    repo = "openfst";
+    rev = "0bca6e76d24647427356dc242b0adbf3b5f1a8d9";
+    sha256 = "1802rr14a03zl1wa5a0x1fa412kcvbgprgkadfj5s6s3agnn11rx";
+  };
+in
+stdenv.mkDerivation {
+  pname = "kaldi";
+  version = "2020-12-26";
+
+  src = fetchFromGitHub {
+    owner = "kaldi-asr";
+    repo = "kaldi";
+    rev = "813b73185a18725e4f6021981d17221d6ee23a19";
+    sha256 = "sha256-lTqXTG5ZTPmhCgt+BVzOwjKEIj+bLGUa+IxJq+XtHUg=";
+  };
+
+  cmakeFlags = [
+    "-DKALDI_BUILD_TEST=off"
+    "-DBUILD_SHARED_LIBS=on"
+  ];
+
+  preConfigure = ''
+    mkdir bin
+    cat > bin/git <<'EOF'
+    #!${stdenv.shell}
+    if [[ "$1" == "--version" ]]; then
+      # cmake checks this
+      ${git}/bin/git --version
+    elif [[ "$1" == "clone" ]]; then
+      # mock this call:
+
+      # https://github.com/kaldi-asr/kaldi/blob/c9d8b9ad3fef89237ba5517617d977b7d70a7ed5/cmake/third_party/openfst.cmake#L5
+      cp -r ${openfst} ''${@: -1}
+      chmod -R +w ''${@: -1}
+    elif [[ "$1" == "rev-list" ]]; then
+      # fix up this call:
+      # https://github.com/kaldi-asr/kaldi/blob/c9d8b9ad3fef89237ba5517617d977b7d70a7ed5/cmake/VersionHelper.cmake#L8
+      echo 0
+    fi
+    true
+    EOF
+    chmod +x bin/git
+    export PATH=$(pwd)/bin:$PATH
+  '';
+
+  buildInputs = [
+    openblas
+    openfst
+    icu
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    python3
+  ];
+
+  postInstall = ''
+    mkdir -p $out/share/kaldi
+    cp -r ../egs $out/share/kaldi
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Speech Recognition Toolkit";
+    homepage = "https://kaldi-asr.org";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mic92 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/audio/volctl/default.nix b/pkgs/tools/audio/volctl/default.nix
index 2a55015be10..1965fb08316 100644
--- a/pkgs/tools/audio/volctl/default.nix
+++ b/pkgs/tools/audio/volctl/default.nix
@@ -1,43 +1,49 @@
-{ stdenv, fetchFromGitHub, python3, libpulseaudio, glib, gtk3, gobject-introspection, wrapGAppsHook }:
+{ stdenv, python3Packages, fetchFromGitHub, wrapGAppsHook, gobject-introspection, libpulseaudio, glib, gtk3, pango, xorg }:
 
-python3.pkgs.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "volctl";
-  version = "0.6.3";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "buzz";
     repo = pname;
-    rev = version;
-    sha256 = "0rppqc5wiqxd83z2mgvhi6gdx7yhy9wnav1dbbi1wvm7lzw6fnil";
+    rev = "v${version}";
+    sha256 = "02scfscf4mdrphzrd7cbwbhpig9bhvaws8qk4zc81z8vvf3mcfv2";
   };
 
+  postPatch = ''
+    substituteInPlace volctl/lib/xwrappers.py \
+      --replace 'libXfixes.so' "${xorg.libXfixes}/lib/libXfixes.so" \
+      --replace 'libXfixes.so.3' "${xorg.libXfixes}/lib/libXfixes.so.3"
+  '';
+
+  preBuild = ''
+    export LD_LIBRARY_PATH=${libpulseaudio}/lib
+  '';
+
   nativeBuildInputs = [
     gobject-introspection
     wrapGAppsHook
   ];
 
-  buildInputs = [
-    glib
-    gtk3
-    libpulseaudio
-  ];
-
-  pythonPath = with python3.pkgs; [
+  propagatedBuildInputs = [ pango gtk3 ] ++ (with python3Packages; [
+    click
+    pycairo
     pygobject3
-  ];
+    pyyaml
+  ]);
 
+  # with strictDeps importing "gi.repository.Gtk" fails with "gi.RepositoryError: Typelib file for namespace 'Pango', version '1.0' not found"
   strictDeps = false;
 
-  preBuild = ''
-    export LD_LIBRARY_PATH=${libpulseaudio}/lib
-  '';
+  # no tests included
+  doCheck = false;
+
+  pythonImportsCheck = [ "volctl" ];
 
   preFixup = ''
     glib-compile-schemas ${glib.makeSchemaPath "$out" "${pname}-${version}"}
-
-    gappsWrapperArgs+=(
-      --prefix LD_LIBRARY_PATH : "${libpulseaudio}/lib"
-    )
+    gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : "${libpulseaudio}/lib")
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/backup/borg/default.nix b/pkgs/tools/backup/borg/default.nix
index 7bfb9e57392..f7d9896431c 100644
--- a/pkgs/tools/backup/borg/default.nix
+++ b/pkgs/tools/backup/borg/default.nix
@@ -2,11 +2,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "borgbackup";
-  version = "1.1.14";
+  version = "1.1.15";
 
   src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "1fpdj73cgp96xwasdcifxl7q2pr1my2f4vfdjpv771llri3hgfvx";
+    sha256 = "1g62sdzcw3zx4ccky125ciwnzx6z9kwyvskvp7ijmqxqk3nrxjs9";
   };
 
   nativeBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/backup/duplicacy/default.nix b/pkgs/tools/backup/duplicacy/default.nix
index b261289f0bf..9fecfb70f39 100644
--- a/pkgs/tools/backup/duplicacy/default.nix
+++ b/pkgs/tools/backup/duplicacy/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "duplicacy";
-  version = "2.3.0";
+  version = "2.7.2";
 
   goPackagePath = "github.com/gilbertchen/duplicacy";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "gilbertchen";
     repo = "duplicacy";
     rev = "v${version}";
-    sha256 = "12swp3kbwkmwn3g2mp964m60kabmz0ip7kkhvhiqq7k74nxzj312";
+    sha256 = "0j37sqicj7rl982czqsl3ipxw7k8k4smcr63s0yklxwz7ch3353c";
   };
   goDeps = ./deps.nix;
   buildPhase = ''
diff --git a/pkgs/tools/backup/duplicacy/deps.nix b/pkgs/tools/backup/duplicacy/deps.nix
index 12d30b53b6c..e7bf7e91f89 100644
--- a/pkgs/tools/backup/duplicacy/deps.nix
+++ b/pkgs/tools/backup/duplicacy/deps.nix
@@ -4,27 +4,18 @@
     goPackagePath  = "cloud.google.com/go";
     fetch = {
       type = "git";
-      url = "https://code.googlesource.com/gocloud";
+      url = "https://github.com/googleapis/google-cloud-go";
       rev =  "2d3a6656c17a60b0815b7e06ab0be04eacb6e613";
       sha256 = "0fi3qj9fvc4bxbrwa1m5sxsb8yhvawiwigaddvmmizjykxbq5csq";
     };
   }
   {
-    goPackagePath  = "github.com/Azure/azure-sdk-for-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/Azure/azure-sdk-for-go";
-      rev =  "b7fadebe0e7f5c5720986080a01495bd8d27be37";
-      sha256 = "11zcmd17206byxhgz2a75qascilydlzjbz73l2mrqng3yyr20yk1";
-    };
-  }
-  {
     goPackagePath  = "github.com/Azure/go-autorest";
     fetch = {
       type = "git";
       url = "https://github.com/Azure/go-autorest";
-      rev =  "0ae36a9e544696de46fdadb7b0d5fb38af48c063";
-      sha256 = "0f2qcv24l9bx3jys2m9ycyy77vqlx7dbfa3frxlk19wnrwiv3p6g";
+      rev =  "9bc4033dd347c7f416fca46b2f42a043dc1fbdf6";
+      sha256 = "158xbd8wn1bna1k1ichlirz6a1zvlh3rg7klr9cnp72l2q8jwvcl";
     };
   }
   {
@@ -41,8 +32,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/aws/aws-sdk-go";
-      rev =  "a32b1dcd091264b5dee7b386149b6cc3823395c9";
-      sha256 = "1yicb7l6m4hs3mi724hz74wn8305qvx6g73mjqafaaqvh6dyn86m";
+      rev =  "851d5ffb66720c2540cc68020d4d8708950686c8";
+      sha256 = "16qp8ywcf04d2y1ibf3mpglcrxk07x8gak46a2l53lchps2mgcrp";
     };
   }
   {
@@ -59,8 +50,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/dgrijalva/jwt-go";
-      rev =  "dbeaa9332f19a944acb5736b4456cfcc02140e29";
-      sha256 = "0zk6l6kzsjdijfn7c4h0aywdjx5j2hjwi67vy1k6wr46hc8ks2hs";
+      rev =  "06ea1031745cb8b3dab3f6a236daf2b0aa468b7e";
+      sha256 = "08m27vlms74pfy5z79w67f9lk9zkx6a9jd68k3c4msxy75ry36mp";
     };
   }
   {
@@ -68,8 +59,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/gilbertchen/azure-sdk-for-go";
-      rev =  "bbf89bd4d716c184f158d1e1428c2dbef4a18307";
-      sha256 = "14563izc2y05k8s20fmhanvjydbcq8k5adp4cgw91d9bs52qivx7";
+      rev =  "8fd4663cab7c7c1c46d00449291c92ad23b0d0d9";
+      sha256 = "123fj5jni1pjj8i9adzd4r07n9hnlmfprlcjf5hqb1zjb72xi1p7";
     };
   }
   {
@@ -86,8 +77,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/gilbertchen/go-dropbox";
-      rev =  "90711b603312b1f973f3a5da3793ac4f1e5c2f2a";
-      sha256 = "0y2ydl3mjbkfbqyygrwq7vqig9hjh7cxvzsn2gxc1851haqp4h19";
+      rev =  "2233fa1dd846b3a3e8060b6c1ea12883deb9d288";
+      sha256 = "01fqxad5mm7rs0mp1ipp9aw80ski6sqyqljpf9dgify8dbiffl97";
     };
   }
   {
@@ -145,12 +136,12 @@
     };
   }
   {
-    goPackagePath  = "github.com/go-ini/ini";
+    goPackagePath  = "github.com/golang/groupcache";
     fetch = {
       type = "git";
-      url = "https://github.com/go-ini/ini";
-      rev =  "32e4c1e6bc4e7d0d8451aa6b75200d19e37a536a";
-      sha256 = "0mhgxw5q6b0pryhikx3k4wby7g32rwjjljzihi47lwn34kw5y1qn";
+      url = "https://github.com/golang/groupcache";
+      rev =  "8c9f03a8e57eb486e42badaed3fb287da51807ba";
+      sha256 = "0vjjr79r32icjzlb05wn02k59av7jx0rn1jijml8r4whlg7dnkfh";
     };
   }
   {
@@ -158,8 +149,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/golang/protobuf";
-      rev =  "1e59b77b52bf8e4b449a57e6f79f21226d571845";
-      sha256 = "19bkh81wnp6njg3931wky6hsnnl2d1ig20vfjxpv450sd3k6yys8";
+      rev =  "84668698ea25b64748563aa20726db66a6b8d299";
+      sha256 = "1gkd1942vk9n8kfzdwy1iil6wgvlwjq7a3y5jc49ck4lz9rhmgkq";
     };
   }
   {
@@ -167,8 +158,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/googleapis/gax-go";
-      rev =  "317e0006254c44a0ac427cc52a0e083ff0b9622f";
-      sha256 = "0h92x579vbrv2fka8q2ddy1kq6a63qbqa8zc09ygl6skzn9gw1dh";
+      rev =  "c8a15bac9b9fe955bd9f900272f9a306465d28cf";
+      sha256 = "13x3x7agq0b46wpchbd2sqli5l33z6hvfn1qjbiqvsgpbv7wd140";
     };
   }
   {
@@ -176,8 +167,26 @@
     fetch = {
       type = "git";
       url = "https://github.com/jmespath/go-jmespath";
-      rev =  "0b12d6b5";
-      sha256 = "1vv6hph8j6xgv7gwl9vvhlsaaqsm22sxxqmgmldi4v11783pc1ld";
+      rev =  "c2b33e84";
+      sha256 = "1r6w7ydx8ydryxk3sfhzsk8m6f1nsik9jg3i1zhi69v4kfl4d5cz";
+    };
+  }
+  {
+    goPackagePath  = "github.com/klauspost/cpuid";
+    fetch = {
+      type = "git";
+      url = "https://github.com/klauspost/cpuid";
+      rev =  "750c0591dbbd50ef88371c665ad49e426a4b830b";
+      sha256 = "1yiby4xa12j3kcw5q7dfsbcybhaxjkppvgz6ac2p2lcwha303b1g";
+    };
+  }
+  {
+    goPackagePath  = "github.com/klauspost/reedsolomon";
+    fetch = {
+      type = "git";
+      url = "https://github.com/klauspost/reedsolomon";
+      rev =  "7daa20bf74337a939c54f892a2eca9d9b578eb7f";
+      sha256 = "1xk4wqgrl63l95lqnszzbpa06apzxfmpwfnkrn1n8jb0ws7mi01m";
     };
   }
   {
@@ -185,8 +194,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/kr/fs";
-      rev =  "2788f0dbd16903de03cb8186e5c7d97b69ad387b";
-      sha256 = "1c0fipl4rsh0v5liq1ska1dl83v3llab4k6lm8mvrx9c4dyp71ly";
+      rev =  "1455def202f6e05b95cc7bfc7e8ae67ae5141eba";
+      sha256 = "11zg176x9hr9q7fsk95r6q0wf214gg4czy02slax4x56n79g6a7q";
     };
   }
   {
@@ -208,12 +217,30 @@
     };
   }
   {
+    goPackagePath  = "github.com/minio/highwayhash";
+    fetch = {
+      type = "git";
+      url = "https://github.com/minio/highwayhash";
+      rev =  "86a2a969d04373bf05ca722517d30fb1c9a3e4f9";
+      sha256 = "0kj2hs82sphag0h25xvprvf2fz3zlinmlif89sk9jp8h518aiahf";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mmcloughlin/avo";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mmcloughlin/avo";
+      rev =  "443f81d771042b019379ae4bfcd0a591cb47c88a";
+      sha256 = "1zc95crbyi7ylqq3jwv4ya55lyzn9x730szdm307vdss4gqlx8yn";
+    };
+  }
+  {
     goPackagePath  = "github.com/ncw/swift";
     fetch = {
       type = "git";
       url = "https://github.com/ncw/swift";
-      rev =  "ae9f0ea1605b9aa6434ed5c731ca35d83ba67c55";
-      sha256 = "0a0iwynhgxsl3czabl7ajnxpyw6x0dzbiqz6il8aw7kn10ld1rvl";
+      rev =  "3e1a09f21340e4828e7265aa89f4dc1495fa7ccc";
+      sha256 = "19gb8xh400hzlbdp3nx1f85jxzs36zk0py39vmjcg3fnvdjzblm2";
     };
   }
   {
@@ -221,8 +248,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/pkg/errors";
-      rev =  "645ef00459ed84a119197bfb8d8205042c6df63d";
-      sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
+      rev =  "614d223910a179a466c1767a985424175c39b465";
+      sha256 = "1761pybhc2kqr6v5fm8faj08x9bql8427yqg6vnfv6nhrasx1mwq";
     };
   }
   {
@@ -230,8 +257,17 @@
     fetch = {
       type = "git";
       url = "https://github.com/pkg/sftp";
-      rev =  "3edd153f213d8d4191a0ee4577c61cca19436632";
-      sha256 = "0iw6lijdljwh5xw5hsy0b578cr52h6vvm7hbnzlrvciwhh4sfhhp";
+      rev =  "5616182052227b951e76d9c9b79a616c608bd91b";
+      sha256 = "1rjlhlkr505a0wvync1ycfn9njfc6bib6bw44qnnm50hlfs59hz2";
+    };
+  }
+  {
+    goPackagePath  = "github.com/pkg/xattr";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pkg/xattr";
+      rev =  "dd870b5cfebab49617ea0c1da6176474e8a52bf4";
+      sha256 = "11ynkc61qrmf853g04sav8vawz8i6a8b73w71f3cq4djb4cnsw0d";
     };
   }
   {
@@ -253,12 +289,30 @@
     };
   }
   {
+    goPackagePath  = "go.opencensus.io";
+    fetch = {
+      type = "git";
+      url = "https://github.com/census-instrumentation/opencensus-go";
+      rev =  "d835ff86be02193d324330acdb7d65546b05f814";
+      sha256 = "0xj16iq5jp26hi2py7lsd8cvqh651fgn39y05gzvjdi88d9xd3nw";
+    };
+  }
+  {
     goPackagePath  = "golang.org/x/crypto";
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/crypto";
-      rev =  "9f005a07e0d31d45e6656d241bb5c0f2efd4bc94";
-      sha256 = "1mhmr6ljzl3iafsz4qy8vval7rmr828wh59dlqqqjqx6sqmcs1dv";
+      rev =  "056763e48d71961566155f089ac0f02f1dda9b5a";
+      sha256 = "0dcmns62hwid7hk4bmpl22z6ygjh168p23x3arzy320sd1lvap92";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/mod";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/mod";
+      rev =  "859b3ef565e237f9f1a0fb6b55385c497545680d";
+      sha256 = "0ldgbx2zpprbsfn6p8pfgs4nn87gwbfcv2z0fa7n8alwsq2yw78q";
     };
   }
   {
@@ -266,8 +320,8 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/net";
-      rev =  "9dfe39835686865bff950a07b394c12a98ddc811";
-      sha256 = "0z8mnl4mi88syafrgqys2ak2gg3yrbna25hpz88y3anl8x4jhg1a";
+      rev =  "d3edc9973b7eb1fb302b0ff2c62357091cea9a30";
+      sha256 = "12zbjwcsh9b0lwycqlkrnbyg5a6a9dzgj8hhgq399bdda5bd97y7";
     };
   }
   {
@@ -275,8 +329,8 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/oauth2";
-      rev =  "f95fa95eaa936d9d87489b15d1d18b97c1ba9c28";
-      sha256 = "0p9kis69wvhv8a2qbcjxvn9ggpdh81cbfjpq5pjga7n8k6d065fh";
+      rev =  "bf48bf16ab8d622ce64ec6ce98d2c98f916b6303";
+      sha256 = "1sirdib60zwmh93kf9qrx51r8544k1p9rs5mk0797wibz3m4mrdg";
     };
   }
   {
@@ -284,8 +338,8 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/sys";
-      rev =  "82aafbf43bf885069dc71b7e7c2f9d7a614d47da";
-      sha256 = "1jvngpvy0q40f7krkgmwf5bbjzhv449297awcr0y78kzn0cyawi2";
+      rev =  "59c9f1ba88faf592b225274f69c5ef1e4ebacf82";
+      sha256 = "014iiqjh9sikbcvacqiwhg6mvrsrr1va91wmc9yrnsm11c63yxfa";
     };
   }
   {
@@ -293,17 +347,35 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/text";
-      rev =  "88f656faf3f37f690df1a32515b479415e1a6769";
-      sha256 = "0zakmgg6dlwnkhignwjajn0dckzqq18zxvnmmg0fq6455x7fs673";
+      rev =  "342b2e1fbaa52c93f31447ad2c6abc048c63e475";
+      sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/tools";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/tools";
+      rev =  "5d1fdd8fa3469142b9369713b23d8413d6d83189";
+      sha256 = "0xp5ggnjnl1gqwi2ks042zimgkfv2qda9a57ar198xpyzdn1bv5s";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/xerrors";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/xerrors";
+      rev =  "5ec99f83aff198f5fbd629d6c8d8eb38a04218ca";
+      sha256 = "1dbzc3gmf2haazpv7cgmv97rq40g2xzwbglc17vas8dwhgwgwrzb";
     };
   }
   {
     goPackagePath  = "google.golang.org/api";
     fetch = {
       type = "git";
-      url = "https://code.googlesource.com/google-api-go-client";
-      rev =  "17b5f22a248d6d3913171c1a557552ace0d9c806";
-      sha256 = "0gs78qsxfg89kpiiray1x9jiv6bh328jmjkwd3ghnygf3l98kc8c";
+      url = "https://github.com/googleapis/google-api-go-client";
+      rev =  "52f0532eadbcc6f6b82d6f5edf66e610d10bfde6";
+      sha256 = "0l7q0mmq0v51wc72bk50nwaz9frl1pqp7gn5jhy1vzxdry930gkc";
     };
   }
   {
@@ -311,17 +383,17 @@
     fetch = {
       type = "git";
       url = "https://github.com/golang/appengine";
-      rev =  "150dc57a1b433e64154302bdc40b6bb8aefa313a";
-      sha256 = "0w3knznv39k8bm85ri62f83czcrxknql7dv6p9hk1a5jx3xljgxq";
+      rev =  "971852bfffca25b069c31162ae8f247a3dba083b";
+      sha256 = "05hbq4cs7bqw0zl17bx8rzdkszid3nyl92100scg3jjrg70dhm7w";
     };
   }
   {
     goPackagePath  = "google.golang.org/genproto";
     fetch = {
       type = "git";
-      url = "https://github.com/google/go-genproto";
-      rev =  "891aceb7c239e72692819142dfca057bdcbfcb96";
-      sha256 = "1axim84fqzsp6iialk6zl4fsbfpx658vssc6ccakn4yy1xc9h854";
+      url = "https://github.com/googleapis/go-genproto";
+      rev =  "baae70f3302d3efdff74db41e48a5d476d036906";
+      sha256 = "1xacik4i5w2bpkrxzrfm00ggy5vygbzh8jmm2yq4mxiv0lnsh9nk";
     };
   }
   {
@@ -329,8 +401,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/grpc/grpc-go";
-      rev =  "5a9f7b402fe85096d2e1d0383435ee1876e863d0";
-      sha256 = "1hlirgvmzb929jpb1dvh930646ih5ffg3b6pmlilqr7ffdkl5z3j";
+      rev =  "ac54eec90516cee50fc6b9b113b34628a85f976f";
+      sha256 = "17zfx4xgqjamk7rc1sivm5gppkh3j4qp3i294w9rqbv0rqi0c9pq";
     };
   }
 ]
\ No newline at end of file
diff --git a/pkgs/tools/backup/duplicity/default.nix b/pkgs/tools/backup/duplicity/default.nix
index 1f62834e4d1..712d1d6f86e 100644
--- a/pkgs/tools/backup/duplicity/default.nix
+++ b/pkgs/tools/backup/duplicity/default.nix
@@ -19,11 +19,11 @@ let
 in
 pythonPackages.buildPythonApplication rec {
   pname = "duplicity";
-  version = "0.8.13";
+  version = "0.8.15";
 
   src = fetchurl {
     url = "https://code.launchpad.net/duplicity/${majorMinor version}-series/${majorMinorPatch version}/+download/duplicity-${version}.tar.gz";
-    sha256 = "0lflg1ay4q4w9qzpmh6y2hza4fc3ig12q44qkd80ks17hj21bxa6";
+    sha256 = "1kg467mxg5a97v1rlv4shk32krgv8ys4nczq4b11av4bp1lgysdc";
   };
 
   patches = [
@@ -49,6 +49,7 @@ pythonPackages.buildPythonApplication rec {
   propagatedBuildInputs = with pythonPackages; [
     b2sdk
     boto
+    boto3
     cffi
     cryptography
     ecdsa
diff --git a/pkgs/tools/backup/duplicity/use-installed-scripts-in-test.patch b/pkgs/tools/backup/duplicity/use-installed-scripts-in-test.patch
index a3ba1422915..c02527cf394 100644
--- a/pkgs/tools/backup/duplicity/use-installed-scripts-in-test.patch
+++ b/pkgs/tools/backup/duplicity/use-installed-scripts-in-test.patch
@@ -38,12 +38,12 @@
          # """ERROR 2
 --- a/testing/functional/test_rdiffdir.py
 +++ b/testing/functional/test_rdiffdir.py
-@@ -38,7 +38,7 @@ class RdiffdirTest(FunctionalTestCase):
- 
-     def run_rdiffdir(self, argstring):
-         u"""Run rdiffdir with given arguments"""
--        self.run_cmd(u"../bin/rdiffdir " + argstring)
-+        self.run_cmd(u"rdiffdir " + argstring)
- 
-     def run_cycle(self, dirname_list):
-         u"""Run diff/patch cycle on directories in dirname_list"""
+@@ -42,7 +42,7 @@ class RdiffdirTest(FunctionalTestCase):
+         basepython = os.environ.get(u'TOXPYTHON', None)
+         if basepython is not None:
+             cmd_list.extend([basepython])
+-        cmd_list.extend([u"../bin/rdiffdir"])
++        cmd_list.extend([u"rdiffdir"])
+         cmd_list.extend(argstring.split())
+         cmdline = u" ".join([u'"%s"' % x for x in cmd_list])
+         self.run_cmd(cmdline)
diff --git a/pkgs/tools/bluetooth/blueberry/default.nix b/pkgs/tools/bluetooth/blueberry/default.nix
index 25e72c1b880..e954163b9e8 100644
--- a/pkgs/tools/bluetooth/blueberry/default.nix
+++ b/pkgs/tools/bluetooth/blueberry/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "blueberry";
-  version = "1.3.9";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "0llvz1h2dmvhvwkkvl0q4ggi1nmdbllw34ppnravs5lybqkicyw9";
+    sha256 = "19kmjp686h7lwmw5n7fc9giqbqm757pkbn42nfwlmasvzqsqlnz6";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/bootloaders/refind/0001-Fix-GCC-10-compile-problem.patch b/pkgs/tools/bootloaders/refind/0001-Fix-GCC-10-compile-problem.patch
new file mode 100644
index 00000000000..90b60235aad
--- /dev/null
+++ b/pkgs/tools/bootloaders/refind/0001-Fix-GCC-10-compile-problem.patch
@@ -0,0 +1,25 @@
+From e34a16301f425f273a67ed3abbc45840bc82d892 Mon Sep 17 00:00:00 2001
+From: srs5694 <srs5694@users.sourceforge.net>
+Date: Fri, 15 May 2020 12:34:14 -0400
+Subject: [PATCH] Fix GCC 10 compile problem
+
+---
+ Make.common | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Make.common b/Make.common
+index 3f0b919..95a3a97 100644
+--- a/Make.common
++++ b/Make.common
+@@ -60,7 +60,7 @@ endif
+ #
+ 
+ # ...for both GNU-EFI and TianoCore....
+-OPTIMFLAGS      = -Os -fno-strict-aliasing
++OPTIMFLAGS      = -Os -fno-strict-aliasing -fno-tree-loop-distribute-patterns
+ CFLAGS          = $(OPTIMFLAGS) -fno-stack-protector -fshort-wchar -Wall
+ 
+ # ...for GNU-EFI....
+-- 
+2.29.2
+
diff --git a/pkgs/tools/bootloaders/refind/default.nix b/pkgs/tools/bootloaders/refind/default.nix
index 5c7c68d9d9e..76786c26d81 100644
--- a/pkgs/tools/bootloaders/refind/default.nix
+++ b/pkgs/tools/bootloaders/refind/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./0001-toolchain.patch
+    ./0001-Fix-GCC-10-compile-problem.patch
   ];
 
   buildInputs = [ gnu-efi ];
diff --git a/pkgs/tools/cd-dvd/brasero/default.nix b/pkgs/tools/cd-dvd/brasero/default.nix
index cdc19887333..c9c71a99deb 100644
--- a/pkgs/tools/cd-dvd/brasero/default.nix
+++ b/pkgs/tools/cd-dvd/brasero/default.nix
@@ -36,7 +36,7 @@ in stdenv.mkDerivation rec {
   ];
 
   preFixup = ''
-    gappsWrapperArgs+=(--prefix PATH : "${binpath}" --prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH")
+    gappsWrapperArgs+=(--prefix PATH : "${binpath}")
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/compression/brotli/default.nix b/pkgs/tools/compression/brotli/default.nix
index f4f0ac41563..62873569aae 100644
--- a/pkgs/tools/compression/brotli/default.nix
+++ b/pkgs/tools/compression/brotli/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchFromGitHub, cmake, fetchpatch, staticOnly ? false }:
+{ stdenv, fetchFromGitHub, cmake, fetchpatch
+, staticOnly ? stdenv.hostPlatform.isStatic
+}:
 
 # ?TODO: there's also python lib in there
 
diff --git a/pkgs/tools/compression/bzip2/default.nix b/pkgs/tools/compression/bzip2/default.nix
index 3e20258cbbe..96d560145df 100644
--- a/pkgs/tools/compression/bzip2/default.nix
+++ b/pkgs/tools/compression/bzip2/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl
-, linkStatic ? (stdenv.hostPlatform.system == "i686-cygwin")
+, linkStatic ? with stdenv.hostPlatform; isStatic || isCygwin
 , autoreconfHook
 }:
 
diff --git a/pkgs/tools/compression/lz4/default.nix b/pkgs/tools/compression/lz4/default.nix
index 0124a0b3d63..7fceb3854eb 100644
--- a/pkgs/tools/compression/lz4/default.nix
+++ b/pkgs/tools/compression/lz4/default.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchFromGitHub, valgrind, fetchpatch
-, enableStatic ? false, enableShared ? true
+, enableStatic ? stdenv.hostPlatform.isStatic
+, enableShared ? !stdenv.hostPlatform.isStatic
 }:
 
 stdenv.mkDerivation rec {
diff --git a/pkgs/tools/compression/xz/default.nix b/pkgs/tools/compression/xz/default.nix
index 0b6082bb578..161619a0483 100644
--- a/pkgs/tools/compression/xz/default.nix
+++ b/pkgs/tools/compression/xz/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchurl, enableStatic ? false }:
+{ stdenv, fetchurl
+, enableStatic ? stdenv.hostPlatform.isStatic
+}:
 
 # Note: this package is used for bootstrapping fetchurl, and thus
 # cannot use fetchpatch! All mutable patches (generated by GitHub or
diff --git a/pkgs/tools/compression/zstd/default.nix b/pkgs/tools/compression/zstd/default.nix
index c26ca507525..d805602e0df 100644
--- a/pkgs/tools/compression/zstd/default.nix
+++ b/pkgs/tools/compression/zstd/default.nix
@@ -2,7 +2,7 @@
 , fixDarwinDylibNames
 , file
 , legacySupport ? false
-, static ? false
+, static ? stdenv.hostPlatform.isStatic
 }:
 
 stdenv.mkDerivation rec {
diff --git a/pkgs/tools/filesystems/android-file-transfer/default.nix b/pkgs/tools/filesystems/android-file-transfer/default.nix
index d9ae2cb7461..b52099bdeab 100644
--- a/pkgs/tools/filesystems/android-file-transfer/default.nix
+++ b/pkgs/tools/filesystems/android-file-transfer/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "android-file-transfer";
-  version = "4.1";
+  version = "4.2";
 
   src = fetchFromGitHub {
     owner = "whoozle";
     repo = "android-file-transfer-linux";
     rev = "v${version}";
-    sha256 = "0xmnwxr649wdzsa1vf3spl387hxs4pq0rldyrsr9hz43da4v081k";
+    sha256 = "125rq8ji83nw6chfw43i0h9c38hjqh1qjibb0gnf9wrigar9zc8b";
   };
 
   nativeBuildInputs = [ cmake readline pkgconfig ];
@@ -17,7 +17,7 @@ mkDerivation rec {
   meta = with stdenv.lib; {
     description = "Reliable MTP client with minimalistic UI";
     homepage = "https://whoozle.github.io/android-file-transfer-linux/";
-    license = licenses.lgpl21;
+    license = licenses.lgpl21Plus;
     maintainers = [ maintainers.xaverdh ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/tools/filesystems/bcachefs-tools/default.nix b/pkgs/tools/filesystems/bcachefs-tools/default.nix
index ee2af363a56..5b2a4e32242 100644
--- a/pkgs/tools/filesystems/bcachefs-tools/default.nix
+++ b/pkgs/tools/filesystems/bcachefs-tools/default.nix
@@ -6,13 +6,13 @@ assert fuseSupport -> fuse3 != null;
 
 stdenv.mkDerivation {
   pname = "bcachefs-tools";
-  version = "2020-08-25";
+  version = "2020-11-17";
 
   src = fetchFromGitHub {
     owner = "koverstreet";
     repo = "bcachefs-tools";
-    rev = "487ddeb03c574e902c5b749b4307e87e2150976a";
-    sha256 = "1pcid7apxmbl9dyvxcqby3k489wi69k8pl596ddzmkw5gmhgvgid";
+    rev = "41bec63b265a38dd9fa168b6042ea5bf07135048";
+    sha256 = "1y3187kpw1bmnl97isv28k2sw8cmrnsn31a0dw745adwm0n7z6fj";
   };
 
   postPatch = ''
@@ -22,11 +22,7 @@ stdenv.mkDerivation {
                 "INITRAMFS_DIR=${placeholder "out"}/etc/initramfs-tools"
   '';
 
-  enableParallelBuilding = true;
-
-  nativeBuildInputs = [
-    pkgconfig
-  ];
+  nativeBuildInputs = [ pkgconfig ];
 
   buildInputs = [
     libuuid libscrypt libsodium keyutils liburcu zlib libaio
@@ -34,22 +30,14 @@ stdenv.mkDerivation {
   ] ++ stdenv.lib.optional fuseSupport fuse3;
 
   doCheck = false; # needs bcachefs module loaded on builder
-
-  checkFlags = [
-    "BCACHEFS_TEST_USE_VALGRIND=no"
-  ];
-
-  checkInputs = [
-    valgrind
-  ];
+  checkFlags = [ "BCACHEFS_TEST_USE_VALGRIND=no" ];
+  checkInputs = [ valgrind ];
 
   preCheck = stdenv.lib.optionalString fuseSupport ''
     rm tests/test_fuse.py
   '';
 
-  installFlags = [
-    "PREFIX=${placeholder "out"}"
-  ];
+  installFlags = [ "PREFIX=${placeholder "out"}" ];
 
   meta = with stdenv.lib; {
     description = "Tool for managing bcachefs filesystems";
diff --git a/pkgs/tools/filesystems/e2fsprogs/default.nix b/pkgs/tools/filesystems/e2fsprogs/default.nix
index f846bf1f200..f26a41ce142 100644
--- a/pkgs/tools/filesystems/e2fsprogs/default.nix
+++ b/pkgs/tools/filesystems/e2fsprogs/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, buildPackages, fetchurl, fetchpatch, pkgconfig, libuuid, gettext, texinfo, shared ? true }:
+{ stdenv, buildPackages, fetchurl, fetchpatch, pkgconfig, libuuid, gettext, texinfo
+, shared ? !stdenv.hostPlatform.isStatic
+}:
 
 stdenv.mkDerivation rec {
   pname = "e2fsprogs";
diff --git a/pkgs/tools/filesystems/glusterfs/default.nix b/pkgs/tools/filesystems/glusterfs/default.nix
index f495b56e325..a4e6bc1182b 100644
--- a/pkgs/tools/filesystems/glusterfs/default.nix
+++ b/pkgs/tools/filesystems/glusterfs/default.nix
@@ -1,25 +1,17 @@
-{stdenv, fetchurl, fuse, bison, flex_2_5_35, openssl, python3, ncurses, readline,
+{stdenv, fetchFromGitHub, fuse, bison, flex_2_5_35, openssl, python3, ncurses, readline,
  autoconf, automake, libtool, pkgconfig, zlib, libaio, libxml2, acl, sqlite,
  liburcu, attr, makeWrapper, coreutils, gnused, gnugrep, which,
  openssh, gawk, findutils, util-linux, lvm2, btrfs-progs, e2fsprogs, xfsprogs, systemd,
  rsync, glibc, rpcsvc-proto, libtirpc
 }:
 let
-  s =
-  rec {
-    baseName="glusterfs";
-    # NOTE: On each glusterfs release, it should be checked if gluster added
-    #       new, or changed, Python scripts whose PYTHONPATH has to be set in
-    #       `postFixup` below, and whose runtime deps need to go into
-    #       `nativeBuildInputs`.
-    #       The command
-    #         find /nix/store/...-glusterfs-.../ -name '*.py' -executable
-    #       can help with finding new Python scripts.
-    version = "7.6";
-    name="${baseName}-${version}";
-    url="https://github.com/gluster/glusterfs/archive/v${version}.tar.gz";
-    sha256 = "0zdcv2jk8dp67id8ic30mkn97ccp07jf20g7v09a5k31pw9aqyih";
-  };
+  # NOTE: On each glusterfs release, it should be checked if gluster added
+  #       new, or changed, Python scripts whose PYTHONPATH has to be set in
+  #       `postFixup` below, and whose runtime deps need to go into
+  #       `nativeBuildInputs`.
+  #       The command
+  #         find /nix/store/...-glusterfs-.../ -name '*.py' -executable
+  #       can help with finding new Python scripts.
 
   buildInputs = [
     fuse bison flex_2_5_35 openssl ncurses readline
@@ -60,17 +52,18 @@ let
     which # which
     xfsprogs # xfs_info
   ];
-in
-stdenv.mkDerivation
-{
-  inherit (s) name version;
+in stdenv.mkDerivation rec {
+  pname = "glusterfs";
+  version = "8.3";
+
+  src = fetchFromGitHub {
+    owner = "gluster";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "09vvbymiacz2pzwnq6f2dd7g2zszzsivdncz45sh977v3z0n84az";
+  };
   inherit buildInputs propagatedBuildInputs;
 
-  patches = [
-    # Remove when https://bugzilla.redhat.com/show_bug.cgi?id=1489610 is fixed
-    ./glusterfs-fix-bug-1489610-glusterfind-var-data-under-prefix.patch
-  ];
-
   postPatch = ''
     sed -e '/chmod u+s/d' -i contrib/fuse-util/Makefile.am
     substituteInPlace libglusterfs/src/glusterfs/lvm-defaults.h \
@@ -91,7 +84,7 @@ stdenv.mkDerivation
   # but fails when the version is empty.
   # See upstream GlusterFS bug https://bugzilla.redhat.com/show_bug.cgi?id=1452705
   preConfigure = ''
-    echo "v${s.version}" > VERSION
+    echo "v${version}" > VERSION
     ./autogen.sh
     export PYTHON=${python3}/bin/python
     '';
@@ -109,7 +102,7 @@ stdenv.mkDerivation
   postInstall = ''
     cp -r $out/$out/* $out
     rm -r $out/nix
-    '';
+  '';
 
   postFixup = ''
     # glusterd invokes `gluster` and other utilities when telling other glusterd nodes to run commands.
@@ -153,7 +146,7 @@ stdenv.mkDerivation
     wrapProgram $out/share/glusterfs/scripts/eventsdash.py --set PATH "$GLUSTER_PATH" --set PYTHONPATH "$GLUSTER_PYTHONPATH" --set LD_LIBRARY_PATH "$GLUSTER_LD_LIBRARY_PATH"
     wrapProgram $out/libexec/glusterfs/glusterfind/brickfind.py --set PATH "$GLUSTER_PATH" --set PYTHONPATH "$GLUSTER_PYTHONPATH" --set LD_LIBRARY_PATH "$GLUSTER_LD_LIBRARY_PATH"
     wrapProgram $out/libexec/glusterfs/glusterfind/changelog.py --set PATH "$GLUSTER_PATH" --set PYTHONPATH "$GLUSTER_PYTHONPATH" --set LD_LIBRARY_PATH "$GLUSTER_LD_LIBRARY_PATH"
-    '';
+  '';
 
   doInstallCheck = true;
 
@@ -187,12 +180,7 @@ stdenv.mkDerivation
     rm -r $out/bin/conf.py
     '';
 
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
-
   meta = with stdenv.lib; {
-    inherit (s) version;
     description = "Distributed storage system";
     homepage = "https://www.gluster.org";
     license = licenses.lgpl3Plus; # dual licese: choice of lgpl3Plus or gpl2
diff --git a/pkgs/tools/filesystems/glusterfs/glusterfs-fix-bug-1489610-glusterfind-var-data-under-prefix.patch b/pkgs/tools/filesystems/glusterfs/glusterfs-fix-bug-1489610-glusterfind-var-data-under-prefix.patch
deleted file mode 100644
index f08d73cf3a6..00000000000
--- a/pkgs/tools/filesystems/glusterfs/glusterfs-fix-bug-1489610-glusterfind-var-data-under-prefix.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From f523afac49e24ecc0fa4ad85195135689cf445f0 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= <mail@nh2.me>
-Date: Wed, 27 Sep 2017 21:36:41 +0200
-Subject: [PATCH] Fix "glusterfind saves var data under $prefix instead of
- localstatedir". Fixes #1489610
-
-Change-Id: Id2362c20f34346c37acfb9eb1ad105d0b7b8b60f
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index f87d8a454..b4d3f5d10 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1118,7 +1118,7 @@ if test "x$exec_prefix" = xNONE; then
- 	exec_prefix="$(eval echo $prefix)"
- fi
- GLUSTERFS_LIBEXECDIR="$(eval echo $libexecdir)/glusterfs"
--GLUSTERFSD_MISCDIR="$(eval echo $prefix)/var/lib/misc/glusterfsd"
-+GLUSTERFSD_MISCDIR="$(eval echo $localstatedir)/lib/misc/glusterfsd"
- prefix=$old_prefix
- exec_prefix=$old_exec_prefix
-
---
-2.12.0
-
diff --git a/pkgs/tools/filesystems/nixpart/0.4/parted.nix b/pkgs/tools/filesystems/nixpart/0.4/parted.nix
index 7fe1b745466..d3fc9ce96f5 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/parted.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/parted.nix
@@ -1,5 +1,7 @@
 { stdenv, fetchurl, fetchpatch, lvm2, libuuid, gettext, readline
-, util-linux, check, enableStatic ? false }:
+, util-linux, check
+, enableStatic ? stdenv.hostPlatform.isStatic
+}:
 
 stdenv.mkDerivation rec {
   name = "parted-3.1";
diff --git a/pkgs/tools/filesystems/xfsprogs/default.nix b/pkgs/tools/filesystems/xfsprogs/default.nix
index 95e95ff6a18..2b0e6048741 100644
--- a/pkgs/tools/filesystems/xfsprogs/default.nix
+++ b/pkgs/tools/filesystems/xfsprogs/default.nix
@@ -1,22 +1,14 @@
-{ stdenv, buildPackages, fetchpatch, fetchgit, autoconf, automake, gettext, libtool, pkgconfig
-, icu, libuuid, readline
+{ stdenv, buildPackages, fetchpatch, fetchurl, autoconf, automake, gettext, libtool, pkgconfig
+, icu, libuuid, readline, inih
 }:
 
-let
-  gentooPatch = name: sha256: fetchpatch {
-    url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-fs/xfsprogs/files/${name}?id=2517dd766cf84d251631f4324f7ec4bce912abb9";
-    inherit sha256;
-  };
-in
-
 stdenv.mkDerivation rec {
   pname = "xfsprogs";
-  version = "4.19.0";
+  version = "5.10.0";
 
-  src = fetchgit {
-    url = "https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git";
-    rev = "v${version}";
-    sha256 = "18728hzfxr1bg4bdzqlxjs893ac1zwlfr7nmc2q4a1sxs0sphd1d";
+  src = fetchurl {
+    url = "mirror://kernel/linux/utils/fs/xfs/xfsprogs/${pname}-${version}.tar.xz";
+    sha256 = "1schqzjx836jd54l10pqds7hyli2m77df3snk95xbr23dpj1fh70";
   };
 
   outputs = [ "bin" "dev" "out" "doc" ];
@@ -26,26 +18,24 @@ stdenv.mkDerivation rec {
     autoconf automake libtool gettext pkgconfig
     libuuid # codegen tool uses libuuid
   ];
-  buildInputs = [ readline icu ];
+  buildInputs = [ readline icu inih ];
   propagatedBuildInputs = [ libuuid ]; # Dev headers include <uuid/uuid.h>
 
   enableParallelBuilding = true;
 
-  # Why is all this garbage needed? Why? Why?
-  patches = [
-    (gentooPatch "xfsprogs-4.15.0-sharedlibs.patch" "0bv2naxpiw7vcsg8p1v2i47wgfda91z1xy1kfwydbp4wmb4nbyyv")
-    (gentooPatch "xfsprogs-4.15.0-docdir.patch" "1srgdidvq2ka0rmfdwpqp92fapgh53w1h7rajm4nnby5vp2v8dfr")
-    (gentooPatch "xfsprogs-4.9.0-underlinking.patch" "1r7l8jphspy14i43zbfnjrnyrdm4cpgyfchblascxylmans0gci7")
-  ];
-
+  # @sbindir@ is replaced with /run/current-system/sw/bin to fix dependency cycles
   preConfigure = ''
-    sed -i Makefile -e '/cp include.install-sh/d'
+    for file in scrub/{xfs_scrub_all.cron.in,xfs_scrub@.service.in,xfs_scrub_all.service.in}; do
+      substituteInPlace "$file" \
+        --replace '@sbindir@' '/run/current-system/sw/bin'
+    done
     make configure
+    patchShebangs ./install-sh
   '';
 
   configureFlags = [
     "--disable-lib64"
-    "--enable-readline"
+    "--with-systemd-unit-dir=${placeholder "out"}/lib/systemd/system"
   ];
 
   installFlags = [ "install-dev" ];
@@ -60,6 +50,6 @@ stdenv.mkDerivation rec {
     description = "SGI XFS utilities";
     license = licenses.lgpl21;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ dezgeg ];
+    maintainers = with maintainers; [ dezgeg ajs124 ];
   };
 }
diff --git a/pkgs/tools/graphics/directx-shader-compiler/default.nix b/pkgs/tools/graphics/directx-shader-compiler/default.nix
new file mode 100644
index 00000000000..4e74d2c443f
--- /dev/null
+++ b/pkgs/tools/graphics/directx-shader-compiler/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchFromGitHub, cmake, python3, git }:
+
+stdenv.mkDerivation rec {
+  pname = "directx-shader-compiler";
+  version = "1.5.2010";
+
+  # Put headers in dev, there are lot of them which aren't necessary for
+  # using the compiler binary.
+  outputs = [ "out" "dev" ];
+
+  src = fetchFromGitHub {
+    owner = "microsoft";
+    repo = "DirectXShaderCompiler";
+    rev = "v${version}";
+    sha256 = "0ccfy1bfp0cm0pq63ri4yl1sr3fdn1a526bsnakg4bl6z4fwrnnj";
+    # We rely on the side effect of leaving the .git directory here for the
+    # version-grabbing functionality of the build system.
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake git python3 ];
+
+  configurePhase = ''
+    # Requires some additional flags to cmake from a file in the repo
+    additionalCMakeFlags=$(< utils/cmake-predefined-config-params)
+    cmakeFlags="$additionalCMakeFlags''${cmakeFlags:+ $cmakeFlags}"
+    cmakeConfigurePhase
+  '';
+
+  # The default install target installs heaps of LLVM stuff.
+  #
+  # Upstream issue: https://github.com/microsoft/DirectXShaderCompiler/issues/3276
+  #
+  # The following is based on the CI script:
+  # https://github.com/microsoft/DirectXShaderCompiler/blob/master/appveyor.yml#L63-L66
+  installPhase = ''
+    mkdir -p $out/bin $out/lib $dev/include
+    mv bin/dxc* $out/bin/
+    mv lib/libdxcompiler.so* lib/libdxcompiler.*dylib $out/lib/
+    cp -r $src/include/dxc $dev/include/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A compiler to compile HLSL programs into DXIL and SPIR-V";
+    homepage = "https://github.com/microsoft/DirectXShaderCompiler";
+    platforms = with platforms; linux ++ darwin;
+    license = licenses.ncsa;
+    maintainers = with maintainers; [ expipiplus1 ];
+  };
+}
diff --git a/pkgs/tools/graphics/fim/default.nix b/pkgs/tools/graphics/fim/default.nix
index 6a3d9a29db3..9a3163951d2 100644
--- a/pkgs/tools/graphics/fim/default.nix
+++ b/pkgs/tools/graphics/fim/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, autoconf, automake, pkgconfig
+{ gcc9Stdenv, fetchurl, autoconf, automake, pkgconfig, lib
 , perl, flex, bison, readline, libexif
 , x11Support ? true, SDL
 , svgSupport ? true, inkscape
@@ -9,7 +9,7 @@
 , pngSupport ? true, libpng
 }:
 
-stdenv.mkDerivation rec {
+gcc9Stdenv.mkDerivation rec {
   pname = "fim";
   version = "0.6";
 
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoconf automake pkgconfig ];
 
-  buildInputs = with stdenv.lib;
+  buildInputs = with lib;
     [ perl flex bison readline libexif ]
     ++ optional x11Support SDL
     ++ optional svgSupport inkscape
@@ -35,9 +35,9 @@ stdenv.mkDerivation rec {
     ++ optional jpegSupport libjpeg
     ++ optional pngSupport libpng;
 
-  NIX_CFLAGS_COMPILE = stdenv.lib.optionalString x11Support "-lSDL";
+  NIX_CFLAGS_COMPILE = lib.optionalString x11Support "-lSDL";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A lightweight, highly customizable and scriptable image viewer";
     longDescription = ''
       FIM (Fbi IMproved) is a lightweight, console based image viewer that aims
diff --git a/pkgs/tools/graphics/gifsicle/default.nix b/pkgs/tools/graphics/gifsicle/default.nix
index 007ba0f9972..72220fab480 100644
--- a/pkgs/tools/graphics/gifsicle/default.nix
+++ b/pkgs/tools/graphics/gifsicle/default.nix
@@ -1,4 +1,7 @@
-{ stdenv, fetchurl, xorgproto, libXt, libX11, gifview ? false, static ? false }:
+{ stdenv, fetchurl, xorgproto, libXt, libX11
+, gifview ? false
+, static ? stdenv.hostPlatform.isStatic
+}:
 
 with stdenv.lib;
 
diff --git a/pkgs/tools/graphics/graphviz/base.nix b/pkgs/tools/graphics/graphviz/base.nix
index a65f5ce455c..cdec8427005 100644
--- a/pkgs/tools/graphics/graphviz/base.nix
+++ b/pkgs/tools/graphics/graphviz/base.nix
@@ -79,6 +79,8 @@ stdenv.mkDerivation {
       --replace /usr/bin/vimdot $out/bin/vimdot \
   '';
 
+  enableParallelBuilding = true;
+
   meta = with stdenv.lib; {
     homepage = "https://graphviz.org";
     description = "Graph visualization tools";
diff --git a/pkgs/tools/graphics/jhead/default.nix b/pkgs/tools/graphics/jhead/default.nix
index 19a0e26d9cc..1d3696a8cd2 100644
--- a/pkgs/tools/graphics/jhead/default.nix
+++ b/pkgs/tools/graphics/jhead/default.nix
@@ -43,5 +43,10 @@ stdenv.mkDerivation rec {
     license = licenses.publicDomain;
     maintainers = with maintainers; [ rycee ];
     platforms = platforms.all;
+    # https://github.com/NixOS/nixpkgs/issues/90828
+    knownVulnerabilities = [
+      "CVE-2020-6624"
+      "CVE-2020-6625"
+    ];
   };
 }
diff --git a/pkgs/tools/graphics/ldgallery/compiler/default.nix b/pkgs/tools/graphics/ldgallery/compiler/default.nix
new file mode 100644
index 00000000000..37aa2983b49
--- /dev/null
+++ b/pkgs/tools/graphics/ldgallery/compiler/default.nix
@@ -0,0 +1,37 @@
+# generated with cabal2nix by ./generate.sh
+{ mkDerivation, aeson, base, cmdargs, containers, data-ordlist
+, directory, fetchgit, filepath, Glob, hpack, parallel-io, process
+, safe, stdenv, text, time, yaml
+}:
+mkDerivation {
+  pname = "ldgallery-compiler";
+  version = "2.0";
+  src = fetchgit {
+    url = "https://github.com/pacien/ldgallery.git";
+    sha256 = "1a82wy6ns1434gdba2l04crvr5waf03y02bappcxqci2cfb1cznz";
+    rev = "e93f7b1eb84c083d67567115284c0002a3a7d5fc";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/compiler; echo source root reset to $sourceRoot";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [
+    aeson base cmdargs containers data-ordlist directory filepath Glob
+    parallel-io process safe text time yaml
+  ];
+  libraryToolDepends = [ hpack ];
+  executableHaskellDepends = [
+    aeson base cmdargs containers data-ordlist directory filepath Glob
+    parallel-io process safe text time yaml
+  ];
+  testHaskellDepends = [
+    aeson base cmdargs containers data-ordlist directory filepath Glob
+    parallel-io process safe text time yaml
+  ];
+  prePatch = "hpack";
+  homepage = "https://ldgallery.pacien.org";
+  description = "A static generator which turns a collection of tagged pictures into a searchable web gallery";
+  license = stdenv.lib.licenses.agpl3;
+  maintainers = with stdenv.lib.maintainers; [ pacien ];
+}
diff --git a/pkgs/tools/graphics/ldgallery/compiler/generate.sh b/pkgs/tools/graphics/ldgallery/compiler/generate.sh
new file mode 100755
index 00000000000..355206cb0ff
--- /dev/null
+++ b/pkgs/tools/graphics/ldgallery/compiler/generate.sh
@@ -0,0 +1,19 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p cabal2nix
+
+set -euo pipefail
+
+if [ "$#" -ne 1 ] || [[ "$1" == -* ]]; then
+  echo "Regenerates the nix file for the ldgallery-compiler package."
+  echo "Usage: $0 <git release tag>"
+  exit 1
+fi
+
+echo "# generated with cabal2nix by ./generate.sh" > default.nix
+
+cabal2nix \
+  --maintainer pacien \
+  --subpath compiler \
+  --revision $1 \
+  "https://github.com/pacien/ldgallery.git" \
+  >> default.nix
diff --git a/pkgs/tools/graphics/ldgallery/default.nix b/pkgs/tools/graphics/ldgallery/default.nix
new file mode 100644
index 00000000000..77acafcb812
--- /dev/null
+++ b/pkgs/tools/graphics/ldgallery/default.nix
@@ -0,0 +1,53 @@
+{ lib, pkgs, makeWrapper, haskellPackages, haskell, pandoc, imagemagick7 }:
+
+with lib;
+with haskell.lib;
+
+let
+  ldgallery-viewer = pkgs.callPackage ./viewer { };
+  inherit (haskellPackages) ldgallery-compiler;
+
+in
+
+# making sure that the versions of the compiler and viewer parts are in sync
+assert ldgallery-compiler.version == versions.majorMinor ldgallery-viewer.version;
+
+justStaticExecutables (overrideCabal ldgallery-compiler (oldAttrs: {
+  pname = "ldgallery"; # bundled viewer + compiler
+
+  buildTools = (oldAttrs.buildTools or []) ++ [ makeWrapper pandoc ];
+
+  prePatch = ''
+    # add viewer dist to data
+    ln -s "${ldgallery-viewer}/share/ldgallery/viewer" "data/"
+
+    ${oldAttrs.prePatch or ""}
+  '';
+
+  postInstall = ''
+    ${oldAttrs.postInstall or ""}
+
+    # wrapper for runtime dependencies registration
+    wrapProgram "$out/bin/ldgallery" \
+      --prefix PATH : ${lib.makeBinPath [ imagemagick7 ]}
+
+    # bash completion
+    mkdir -p "$out/share/bash-completion/completions"
+    "$out/bin/ldgallery" \
+      --help=bash \
+      > "$out/share/bash-completion/completions/ldgallery"
+
+    # man pages
+    mkdir -p $out/share/man/man{1,7}
+    ln -s ${ldgallery-viewer}/share/man/man7/* "$out/share/man/man7/"
+    pandoc --standalone --to man \
+      "../ldgallery-quickstart.7.md" \
+      --output "$out/share/man/man7/ldgallery-quickstart.7"
+    pandoc --standalone --to man \
+      "ldgallery.1.md" \
+      --output "$out/share/man/man1/ldgallery.1"
+  '';
+
+  # other package metadata (maintainer, description, license, ...)
+  # are inherited from the compiler package
+}))
diff --git a/pkgs/tools/graphics/ldgallery/viewer/default.nix b/pkgs/tools/graphics/ldgallery/viewer/default.nix
new file mode 100644
index 00000000000..9559120069f
--- /dev/null
+++ b/pkgs/tools/graphics/ldgallery/viewer/default.nix
@@ -0,0 +1,53 @@
+{ lib, stdenv, fetchFromGitHub, pkgs, nodejs-12_x, pandoc }:
+
+with lib;
+
+let
+  # Note for maintainers:
+  # * keep version in sync with the ldgallery compiler
+  # * regenerate node-*.nix with `./generate.sh <git release tag>`
+  sourcePkg = fetchFromGitHub {
+    owner = "pacien";
+    repo = "ldgallery";
+    rev = "v2.0";
+    sha256 = "1a82wy6ns1434gdba2l04crvr5waf03y02bappcxqci2cfb1cznz";
+  };
+
+  nodePackages = import ./node-composition.nix {
+    inherit pkgs;
+    inherit (stdenv.hostPlatform) system;
+
+    # some native node dependencies still require NodeJS 12 with Python 2
+    nodejs = nodejs-12_x;
+  };
+
+  nodePkg = nodePackages.package.override {
+    src = "${sourcePkg}/viewer";
+    postInstall = "npm run build";
+  };
+
+in
+
+# making sure that the source and the node package are in sync
+assert versions.majorMinor nodePkg.version == removePrefix "v" sourcePkg.rev;
+
+stdenv.mkDerivation {
+  pname = nodePkg.packageName;
+  version = nodePkg.version;
+  src = nodePkg;
+
+  buildInputs = [ pandoc ];
+
+  installPhase = ''
+    mkdir -p "$out/share/ldgallery"
+    cp -rp "lib/node_modules/ldgallery-viewer/dist" \
+      "$out/share/ldgallery/viewer/"
+    cp -rp "lib/node_modules/ldgallery-viewer/examples" \
+      "$out/share/ldgallery/viewer/"
+
+    mkdir -p "$out/share/man/man7"
+    pandoc --standalone --to man \
+      "lib/node_modules/ldgallery-viewer/ldgallery-viewer.7.md" \
+      --output "$out/share/man/man7/ldgallery-viewer.7"
+  '';
+}
diff --git a/pkgs/tools/graphics/ldgallery/viewer/generate.sh b/pkgs/tools/graphics/ldgallery/viewer/generate.sh
new file mode 100755
index 00000000000..0874051b676
--- /dev/null
+++ b/pkgs/tools/graphics/ldgallery/viewer/generate.sh
@@ -0,0 +1,34 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -I nixpkgs=../../../../.. -i bash -p nodePackages.node2nix
+
+# TODO: merge with other node packages in nixpkgs/pkgs/development/node-packages once
+# * support for npm projects in sub-directories is added to node2nix:
+#   https://github.com/svanderburg/node2nix/issues/177
+# * we find a way to enable development dependencies for some of the packages
+
+set -euo pipefail
+
+if [ "$#" -ne 1 ] || [[ "$1" == -* ]]; then
+  echo "Regenerates the node composition and package nix files for the ldgallery-viewer package."
+  echo "Usage: $0 <git release tag>"
+  exit 1
+fi
+
+wget https://github.com/pacien/ldgallery/raw/$1/viewer/package.json
+wget https://github.com/pacien/ldgallery/raw/$1/viewer/package-lock.json
+
+# Development dependencies are required for this Vue application to build
+node2nix \
+  --node-env ../../../../development/node-packages/node-env.nix \
+  --development \
+  --input ./package.json \
+  --lock ./package-lock.json \
+  --output node-packages.nix \
+  --composition node-composition.nix
+
+rm package.json package-lock.json
+
+# Temporary quickfix to accomodate for the util-linux package rename.
+# See https://github.com/svanderburg/node2nix/issues/213
+git restore :/pkgs/development/node-packages/node-env.nix
+sed -i 's/utillinux/util-linux/g' node-composition.nix
diff --git a/pkgs/servers/matrix-appservice-discord/node-composition.nix b/pkgs/tools/graphics/ldgallery/viewer/node-composition.nix
index 6080388b05e..f6c53f6c58d 100644
--- a/pkgs/servers/matrix-appservice-discord/node-composition.nix
+++ b/pkgs/tools/graphics/ldgallery/viewer/node-composition.nix
@@ -5,7 +5,7 @@
   }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
 
 let
-  nodeEnv = import ../../development/node-packages/node-env.nix {
+  nodeEnv = import ../../../../development/node-packages/node-env.nix {
     inherit (pkgs) stdenv python2 util-linux runCommand writeTextFile;
     inherit nodejs;
     libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
diff --git a/pkgs/tools/graphics/ldgallery/viewer/node-packages.nix b/pkgs/tools/graphics/ldgallery/viewer/node-packages.nix
new file mode 100644
index 00000000000..14691f64065
--- /dev/null
+++ b/pkgs/tools/graphics/ldgallery/viewer/node-packages.nix
@@ -0,0 +1,13269 @@
+# This file has been generated by node2nix 1.8.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+  sources = {
+    "@babel/code-frame-7.10.3" = {
+      name = "_at_babel_slash_code-frame";
+      packageName = "@babel/code-frame";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.3.tgz";
+        sha512 = "fDx9eNW0qz0WkUeqL6tXEXzVlPh6Y5aCDEZesl0xBGA8ndRukX91Uk44ZqnkECp01NAZUdCAl+aiQNGi0k88Eg==";
+      };
+    };
+    "@babel/code-frame-7.5.5" = {
+      name = "_at_babel_slash_code-frame";
+      packageName = "@babel/code-frame";
+      version = "7.5.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz";
+        sha512 = "27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==";
+      };
+    };
+    "@babel/compat-data-7.10.3" = {
+      name = "_at_babel_slash_compat-data";
+      packageName = "@babel/compat-data";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.3.tgz";
+        sha512 = "BDIfJ9uNZuI0LajPfoYV28lX8kyCPMHY6uY4WH1lJdcicmAfxCK5ASzaeV0D/wsUaRH/cLk+amuxtC37sZ8TUg==";
+      };
+    };
+    "@babel/core-7.10.3" = {
+      name = "_at_babel_slash_core";
+      packageName = "@babel/core";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.10.3.tgz";
+        sha512 = "5YqWxYE3pyhIi84L84YcwjeEgS+fa7ZjK6IBVGTjDVfm64njkR2lfDhVR5OudLk8x2GK59YoSyVv+L/03k1q9w==";
+      };
+    };
+    "@babel/generator-7.10.3" = {
+      name = "_at_babel_slash_generator";
+      packageName = "@babel/generator";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.10.3.tgz";
+        sha512 = "drt8MUHbEqRzNR0xnF8nMehbY11b1SDkRw03PSNH/3Rb2Z35oxkddVSi3rcaak0YJQ86PCuE7Qx1jSFhbLNBMA==";
+      };
+    };
+    "@babel/helper-annotate-as-pure-7.10.1" = {
+      name = "_at_babel_slash_helper-annotate-as-pure";
+      packageName = "@babel/helper-annotate-as-pure";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.1.tgz";
+        sha512 = "ewp3rvJEwLaHgyWGe4wQssC2vjks3E80WiUe2BpMb0KhreTjMROCbxXcEovTrbeGVdQct5VjQfrv9EgC+xMzCw==";
+      };
+    };
+    "@babel/helper-builder-binary-assignment-operator-visitor-7.10.3" = {
+      name = "_at_babel_slash_helper-builder-binary-assignment-operator-visitor";
+      packageName = "@babel/helper-builder-binary-assignment-operator-visitor";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.3.tgz";
+        sha512 = "lo4XXRnBlU6eRM92FkiZxpo1xFLmv3VsPFk61zJKMm7XYJfwqXHsYJTY6agoc4a3L8QPw1HqWehO18coZgbT6A==";
+      };
+    };
+    "@babel/helper-compilation-targets-7.10.2" = {
+      name = "_at_babel_slash_helper-compilation-targets";
+      packageName = "@babel/helper-compilation-targets";
+      version = "7.10.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.2.tgz";
+        sha512 = "hYgOhF4To2UTB4LTaZepN/4Pl9LD4gfbJx8A34mqoluT8TLbof1mhUlYuNWTEebONa8+UlCC4X0TEXu7AOUyGA==";
+      };
+    };
+    "@babel/helper-create-class-features-plugin-7.10.3" = {
+      name = "_at_babel_slash_helper-create-class-features-plugin";
+      packageName = "@babel/helper-create-class-features-plugin";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.3.tgz";
+        sha512 = "iRT9VwqtdFmv7UheJWthGc/h2s7MqoweBF9RUj77NFZsg9VfISvBTum3k6coAhJ8RWv2tj3yUjA03HxPd0vfpQ==";
+      };
+    };
+    "@babel/helper-create-regexp-features-plugin-7.10.1" = {
+      name = "_at_babel_slash_helper-create-regexp-features-plugin";
+      packageName = "@babel/helper-create-regexp-features-plugin";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.1.tgz";
+        sha512 = "Rx4rHS0pVuJn5pJOqaqcZR4XSgeF9G/pO/79t+4r7380tXFJdzImFnxMU19f83wjSrmKHq6myrM10pFHTGzkUA==";
+      };
+    };
+    "@babel/helper-define-map-7.10.3" = {
+      name = "_at_babel_slash_helper-define-map";
+      packageName = "@babel/helper-define-map";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.3.tgz";
+        sha512 = "bxRzDi4Sin/k0drWCczppOhov1sBSdBvXJObM1NLHQzjhXhwRtn7aRWGvLJWCYbuu2qUk3EKs6Ci9C9ps8XokQ==";
+      };
+    };
+    "@babel/helper-explode-assignable-expression-7.10.3" = {
+      name = "_at_babel_slash_helper-explode-assignable-expression";
+      packageName = "@babel/helper-explode-assignable-expression";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.3.tgz";
+        sha512 = "0nKcR64XrOC3lsl+uhD15cwxPvaB6QKUDlD84OT9C3myRbhJqTMYir69/RWItUvHpharv0eJ/wk7fl34ONSwZw==";
+      };
+    };
+    "@babel/helper-function-name-7.10.3" = {
+      name = "_at_babel_slash_helper-function-name";
+      packageName = "@babel/helper-function-name";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.3.tgz";
+        sha512 = "FvSj2aiOd8zbeqijjgqdMDSyxsGHaMt5Tr0XjQsGKHD3/1FP3wksjnLAWzxw7lvXiej8W1Jt47SKTZ6upQNiRw==";
+      };
+    };
+    "@babel/helper-get-function-arity-7.10.3" = {
+      name = "_at_babel_slash_helper-get-function-arity";
+      packageName = "@babel/helper-get-function-arity";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.3.tgz";
+        sha512 = "iUD/gFsR+M6uiy69JA6fzM5seno8oE85IYZdbVVEuQaZlEzMO2MXblh+KSPJgsZAUx0EEbWXU0yJaW7C9CdAVg==";
+      };
+    };
+    "@babel/helper-hoist-variables-7.10.3" = {
+      name = "_at_babel_slash_helper-hoist-variables";
+      packageName = "@babel/helper-hoist-variables";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.3.tgz";
+        sha512 = "9JyafKoBt5h20Yv1+BXQMdcXXavozI1vt401KBiRc2qzUepbVnd7ogVNymY1xkQN9fekGwfxtotH2Yf5xsGzgg==";
+      };
+    };
+    "@babel/helper-member-expression-to-functions-7.10.3" = {
+      name = "_at_babel_slash_helper-member-expression-to-functions";
+      packageName = "@babel/helper-member-expression-to-functions";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.3.tgz";
+        sha512 = "q7+37c4EPLSjNb2NmWOjNwj0+BOyYlssuQ58kHEWk1Z78K5i8vTUsteq78HMieRPQSl/NtpQyJfdjt3qZ5V2vw==";
+      };
+    };
+    "@babel/helper-module-imports-7.10.3" = {
+      name = "_at_babel_slash_helper-module-imports";
+      packageName = "@babel/helper-module-imports";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.3.tgz";
+        sha512 = "Jtqw5M9pahLSUWA+76nhK9OG8nwYXzhQzVIGFoNaHnXF/r4l7kz4Fl0UAW7B6mqC5myoJiBP5/YQlXQTMfHI9w==";
+      };
+    };
+    "@babel/helper-module-transforms-7.10.1" = {
+      name = "_at_babel_slash_helper-module-transforms";
+      packageName = "@babel/helper-module-transforms";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.1.tgz";
+        sha512 = "RLHRCAzyJe7Q7sF4oy2cB+kRnU4wDZY/H2xJFGof+M+SJEGhZsb+GFj5j1AD8NiSaVBJ+Pf0/WObiXu/zxWpFg==";
+      };
+    };
+    "@babel/helper-optimise-call-expression-7.10.3" = {
+      name = "_at_babel_slash_helper-optimise-call-expression";
+      packageName = "@babel/helper-optimise-call-expression";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.3.tgz";
+        sha512 = "kT2R3VBH/cnSz+yChKpaKRJQJWxdGoc6SjioRId2wkeV3bK0wLLioFpJROrX0U4xr/NmxSSAWT/9Ih5snwIIzg==";
+      };
+    };
+    "@babel/helper-plugin-utils-7.10.3" = {
+      name = "_at_babel_slash_helper-plugin-utils";
+      packageName = "@babel/helper-plugin-utils";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.3.tgz";
+        sha512 = "j/+j8NAWUTxOtx4LKHybpSClxHoq6I91DQ/mKgAXn5oNUPIUiGppjPIX3TDtJWPrdfP9Kfl7e4fgVMiQR9VE/g==";
+      };
+    };
+    "@babel/helper-regex-7.10.1" = {
+      name = "_at_babel_slash_helper-regex";
+      packageName = "@babel/helper-regex";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.1.tgz";
+        sha512 = "7isHr19RsIJWWLLFn21ubFt223PjQyg1HY7CZEMRr820HttHPpVvrsIN3bUOo44DEfFV4kBXO7Abbn9KTUZV7g==";
+      };
+    };
+    "@babel/helper-remap-async-to-generator-7.10.3" = {
+      name = "_at_babel_slash_helper-remap-async-to-generator";
+      packageName = "@babel/helper-remap-async-to-generator";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.3.tgz";
+        sha512 = "sLB7666ARbJUGDO60ZormmhQOyqMX/shKBXZ7fy937s+3ID8gSrneMvKSSb+8xIM5V7Vn6uNVtOY1vIm26XLtA==";
+      };
+    };
+    "@babel/helper-replace-supers-7.10.1" = {
+      name = "_at_babel_slash_helper-replace-supers";
+      packageName = "@babel/helper-replace-supers";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.1.tgz";
+        sha512 = "SOwJzEfpuQwInzzQJGjGaiG578UYmyi2Xw668klPWV5n07B73S0a9btjLk/52Mlcxa+5AdIYqws1KyXRfMoB7A==";
+      };
+    };
+    "@babel/helper-simple-access-7.10.1" = {
+      name = "_at_babel_slash_helper-simple-access";
+      packageName = "@babel/helper-simple-access";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.1.tgz";
+        sha512 = "VSWpWzRzn9VtgMJBIWTZ+GP107kZdQ4YplJlCmIrjoLVSi/0upixezHCDG8kpPVTBJpKfxTH01wDhh+jS2zKbw==";
+      };
+    };
+    "@babel/helper-split-export-declaration-7.10.1" = {
+      name = "_at_babel_slash_helper-split-export-declaration";
+      packageName = "@babel/helper-split-export-declaration";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz";
+        sha512 = "UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==";
+      };
+    };
+    "@babel/helper-validator-identifier-7.10.3" = {
+      name = "_at_babel_slash_helper-validator-identifier";
+      packageName = "@babel/helper-validator-identifier";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.3.tgz";
+        sha512 = "bU8JvtlYpJSBPuj1VUmKpFGaDZuLxASky3LhaKj3bmpSTY6VWooSM8msk+Z0CZoErFye2tlABF6yDkT3FOPAXw==";
+      };
+    };
+    "@babel/helper-wrap-function-7.10.1" = {
+      name = "_at_babel_slash_helper-wrap-function";
+      packageName = "@babel/helper-wrap-function";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.1.tgz";
+        sha512 = "C0MzRGteVDn+H32/ZgbAv5r56f2o1fZSA/rj/TYo8JEJNHg+9BdSmKBUND0shxWRztWhjlT2cvHYuynpPsVJwQ==";
+      };
+    };
+    "@babel/helpers-7.10.1" = {
+      name = "_at_babel_slash_helpers";
+      packageName = "@babel/helpers";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.1.tgz";
+        sha512 = "muQNHF+IdU6wGgkaJyhhEmI54MOZBKsFfsXFhboz1ybwJ1Kl7IHlbm2a++4jwrmY5UYsgitt5lfqo1wMFcHmyw==";
+      };
+    };
+    "@babel/highlight-7.10.3" = {
+      name = "_at_babel_slash_highlight";
+      packageName = "@babel/highlight";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.3.tgz";
+        sha512 = "Ih9B/u7AtgEnySE2L2F0Xm0GaM729XqqLfHkalTsbjXGyqmf/6M0Cu0WpvqueUlW+xk88BHw9Nkpj49naU+vWw==";
+      };
+    };
+    "@babel/highlight-7.5.0" = {
+      name = "_at_babel_slash_highlight";
+      packageName = "@babel/highlight";
+      version = "7.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz";
+        sha512 = "7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==";
+      };
+    };
+    "@babel/parser-7.10.3" = {
+      name = "_at_babel_slash_parser";
+      packageName = "@babel/parser";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.10.3.tgz";
+        sha512 = "oJtNJCMFdIMwXGmx+KxuaD7i3b8uS7TTFYW/FNG2BT8m+fmGHoiPYoH0Pe3gya07WuFmM5FCDIr1x0irkD/hyA==";
+      };
+    };
+    "@babel/plugin-proposal-async-generator-functions-7.10.3" = {
+      name = "_at_babel_slash_plugin-proposal-async-generator-functions";
+      packageName = "@babel/plugin-proposal-async-generator-functions";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.3.tgz";
+        sha512 = "WUUWM7YTOudF4jZBAJIW9D7aViYC/Fn0Pln4RIHlQALyno3sXSjqmTA4Zy1TKC2D49RCR8Y/Pn4OIUtEypK3CA==";
+      };
+    };
+    "@babel/plugin-proposal-class-properties-7.10.1" = {
+      name = "_at_babel_slash_plugin-proposal-class-properties";
+      packageName = "@babel/plugin-proposal-class-properties";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.1.tgz";
+        sha512 = "sqdGWgoXlnOdgMXU+9MbhzwFRgxVLeiGBqTrnuS7LC2IBU31wSsESbTUreT2O418obpfPdGUR2GbEufZF1bpqw==";
+      };
+    };
+    "@babel/plugin-proposal-decorators-7.10.3" = {
+      name = "_at_babel_slash_plugin-proposal-decorators";
+      packageName = "@babel/plugin-proposal-decorators";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.10.3.tgz";
+        sha512 = "Rzwn5tcYFTdWWK3IrhMZkMDjzFQLIGYqHvv9XuzNnEB91Y6gHr/JjazYV1Yec9g0yMLhy1p/21eiW1P7f5UN4A==";
+      };
+    };
+    "@babel/plugin-proposal-dynamic-import-7.10.1" = {
+      name = "_at_babel_slash_plugin-proposal-dynamic-import";
+      packageName = "@babel/plugin-proposal-dynamic-import";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.1.tgz";
+        sha512 = "Cpc2yUVHTEGPlmiQzXj026kqwjEQAD9I4ZC16uzdbgWgitg/UHKHLffKNCQZ5+y8jpIZPJcKcwsr2HwPh+w3XA==";
+      };
+    };
+    "@babel/plugin-proposal-json-strings-7.10.1" = {
+      name = "_at_babel_slash_plugin-proposal-json-strings";
+      packageName = "@babel/plugin-proposal-json-strings";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.1.tgz";
+        sha512 = "m8r5BmV+ZLpWPtMY2mOKN7wre6HIO4gfIiV+eOmsnZABNenrt/kzYBwrh+KOfgumSWpnlGs5F70J8afYMSJMBg==";
+      };
+    };
+    "@babel/plugin-proposal-nullish-coalescing-operator-7.10.1" = {
+      name = "_at_babel_slash_plugin-proposal-nullish-coalescing-operator";
+      packageName = "@babel/plugin-proposal-nullish-coalescing-operator";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.1.tgz";
+        sha512 = "56cI/uHYgL2C8HVuHOuvVowihhX0sxb3nnfVRzUeVHTWmRHTZrKuAh/OBIMggGU/S1g/1D2CRCXqP+3u7vX7iA==";
+      };
+    };
+    "@babel/plugin-proposal-numeric-separator-7.10.1" = {
+      name = "_at_babel_slash_plugin-proposal-numeric-separator";
+      packageName = "@babel/plugin-proposal-numeric-separator";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.1.tgz";
+        sha512 = "jjfym4N9HtCiNfyyLAVD8WqPYeHUrw4ihxuAynWj6zzp2gf9Ey2f7ImhFm6ikB3CLf5Z/zmcJDri6B4+9j9RsA==";
+      };
+    };
+    "@babel/plugin-proposal-object-rest-spread-7.10.3" = {
+      name = "_at_babel_slash_plugin-proposal-object-rest-spread";
+      packageName = "@babel/plugin-proposal-object-rest-spread";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.3.tgz";
+        sha512 = "ZZh5leCIlH9lni5bU/wB/UcjtcVLgR8gc+FAgW2OOY+m9h1II3ItTO1/cewNUcsIDZSYcSaz/rYVls+Fb0ExVQ==";
+      };
+    };
+    "@babel/plugin-proposal-optional-catch-binding-7.10.1" = {
+      name = "_at_babel_slash_plugin-proposal-optional-catch-binding";
+      packageName = "@babel/plugin-proposal-optional-catch-binding";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.1.tgz";
+        sha512 = "VqExgeE62YBqI3ogkGoOJp1R6u12DFZjqwJhqtKc2o5m1YTUuUWnos7bZQFBhwkxIFpWYJ7uB75U7VAPPiKETA==";
+      };
+    };
+    "@babel/plugin-proposal-optional-chaining-7.10.3" = {
+      name = "_at_babel_slash_plugin-proposal-optional-chaining";
+      packageName = "@babel/plugin-proposal-optional-chaining";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.3.tgz";
+        sha512 = "yyG3n9dJ1vZ6v5sfmIlMMZ8azQoqx/5/nZTSWX1td6L1H1bsjzA8TInDChpafCZiJkeOFzp/PtrfigAQXxI1Ng==";
+      };
+    };
+    "@babel/plugin-proposal-private-methods-7.10.1" = {
+      name = "_at_babel_slash_plugin-proposal-private-methods";
+      packageName = "@babel/plugin-proposal-private-methods";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.1.tgz";
+        sha512 = "RZecFFJjDiQ2z6maFprLgrdnm0OzoC23Mx89xf1CcEsxmHuzuXOdniEuI+S3v7vjQG4F5sa6YtUp+19sZuSxHg==";
+      };
+    };
+    "@babel/plugin-proposal-unicode-property-regex-7.10.1" = {
+      name = "_at_babel_slash_plugin-proposal-unicode-property-regex";
+      packageName = "@babel/plugin-proposal-unicode-property-regex";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.1.tgz";
+        sha512 = "JjfngYRvwmPwmnbRZyNiPFI8zxCZb8euzbCG/LxyKdeTb59tVciKo9GK9bi6JYKInk1H11Dq9j/zRqIH4KigfQ==";
+      };
+    };
+    "@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.10.1" = {
+      name = "_at_babel_slash_plugin-syntax-class-properties";
+      packageName = "@babel/plugin-syntax-class-properties";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.1.tgz";
+        sha512 = "Gf2Yx/iRs1JREDtVZ56OrjjgFHCaldpTnuy9BHla10qyVT3YkIIGEtoDWhyop0ksu1GvNjHIoYRBqm3zoR1jyQ==";
+      };
+    };
+    "@babel/plugin-syntax-decorators-7.10.1" = {
+      name = "_at_babel_slash_plugin-syntax-decorators";
+      packageName = "@babel/plugin-syntax-decorators";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.10.1.tgz";
+        sha512 = "a9OAbQhKOwSle1Vr0NJu/ISg1sPfdEkfRKWpgPuzhnWWzForou2gIeUIIwjAMHRekhhpJ7eulZlYs0H14Cbi+g==";
+      };
+    };
+    "@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-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-jsx-7.10.1" = {
+      name = "_at_babel_slash_plugin-syntax-jsx";
+      packageName = "@babel/plugin-syntax-jsx";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.1.tgz";
+        sha512 = "+OxyOArpVFXQeXKLO9o+r2I4dIoVoy6+Uu0vKELrlweDM3QJADZj+Z+5ERansZqIZBcLj42vHnDI8Rz9BnRIuQ==";
+      };
+    };
+    "@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.1" = {
+      name = "_at_babel_slash_plugin-syntax-numeric-separator";
+      packageName = "@babel/plugin-syntax-numeric-separator";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.1.tgz";
+        sha512 = "uTd0OsHrpe3tH5gRPTxG8Voh99/WCU78vIm5NMRYPAqC8lR4vajt6KkCAknCHrx24vkPdd/05yfdGSB4EIY2mg==";
+      };
+    };
+    "@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-top-level-await-7.10.1" = {
+      name = "_at_babel_slash_plugin-syntax-top-level-await";
+      packageName = "@babel/plugin-syntax-top-level-await";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.1.tgz";
+        sha512 = "hgA5RYkmZm8FTFT3yu2N9Bx7yVVOKYT6yEdXXo6j2JTm0wNxgqaGeQVaSHRjhfnQbX91DtjFB6McRFSlcJH3xQ==";
+      };
+    };
+    "@babel/plugin-transform-arrow-functions-7.10.1" = {
+      name = "_at_babel_slash_plugin-transform-arrow-functions";
+      packageName = "@babel/plugin-transform-arrow-functions";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.1.tgz";
+        sha512 = "6AZHgFJKP3DJX0eCNJj01RpytUa3SOGawIxweHkNX2L6PYikOZmoh5B0d7hIHaIgveMjX990IAa/xK7jRTN8OA==";
+      };
+    };
+    "@babel/plugin-transform-async-to-generator-7.10.1" = {
+      name = "_at_babel_slash_plugin-transform-async-to-generator";
+      packageName = "@babel/plugin-transform-async-to-generator";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.1.tgz";
+        sha512 = "XCgYjJ8TY2slj6SReBUyamJn3k2JLUIiiR5b6t1mNCMSvv7yx+jJpaewakikp0uWFQSF7ChPPoe3dHmXLpISkg==";
+      };
+    };
+    "@babel/plugin-transform-block-scoped-functions-7.10.1" = {
+      name = "_at_babel_slash_plugin-transform-block-scoped-functions";
+      packageName = "@babel/plugin-transform-block-scoped-functions";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.1.tgz";
+        sha512 = "B7K15Xp8lv0sOJrdVAoukKlxP9N59HS48V1J3U/JGj+Ad+MHq+am6xJVs85AgXrQn4LV8vaYFOB+pr/yIuzW8Q==";
+      };
+    };
+    "@babel/plugin-transform-block-scoping-7.10.1" = {
+      name = "_at_babel_slash_plugin-transform-block-scoping";
+      packageName = "@babel/plugin-transform-block-scoping";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.1.tgz";
+        sha512 = "8bpWG6TtF5akdhIm/uWTyjHqENpy13Fx8chg7pFH875aNLwX8JxIxqm08gmAT+Whe6AOmaTeLPe7dpLbXt+xUw==";
+      };
+    };
+    "@babel/plugin-transform-classes-7.10.3" = {
+      name = "_at_babel_slash_plugin-transform-classes";
+      packageName = "@babel/plugin-transform-classes";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.3.tgz";
+        sha512 = "irEX0ChJLaZVC7FvvRoSIxJlmk0IczFLcwaRXUArBKYHCHbOhe57aG8q3uw/fJsoSXvZhjRX960hyeAGlVBXZw==";
+      };
+    };
+    "@babel/plugin-transform-computed-properties-7.10.3" = {
+      name = "_at_babel_slash_plugin-transform-computed-properties";
+      packageName = "@babel/plugin-transform-computed-properties";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.3.tgz";
+        sha512 = "GWzhaBOsdbjVFav96drOz7FzrcEW6AP5nax0gLIpstiFaI3LOb2tAg06TimaWU6YKOfUACK3FVrxPJ4GSc5TgA==";
+      };
+    };
+    "@babel/plugin-transform-destructuring-7.10.1" = {
+      name = "_at_babel_slash_plugin-transform-destructuring";
+      packageName = "@babel/plugin-transform-destructuring";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.1.tgz";
+        sha512 = "V/nUc4yGWG71OhaTH705pU8ZSdM6c1KmmLP8ys59oOYbT7RpMYAR3MsVOt6OHL0WzG7BlTU076va9fjJyYzJMA==";
+      };
+    };
+    "@babel/plugin-transform-dotall-regex-7.10.1" = {
+      name = "_at_babel_slash_plugin-transform-dotall-regex";
+      packageName = "@babel/plugin-transform-dotall-regex";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.1.tgz";
+        sha512 = "19VIMsD1dp02RvduFUmfzj8uknaO3uiHHF0s3E1OHnVsNj8oge8EQ5RzHRbJjGSetRnkEuBYO7TG1M5kKjGLOA==";
+      };
+    };
+    "@babel/plugin-transform-duplicate-keys-7.10.1" = {
+      name = "_at_babel_slash_plugin-transform-duplicate-keys";
+      packageName = "@babel/plugin-transform-duplicate-keys";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.1.tgz";
+        sha512 = "wIEpkX4QvX8Mo9W6XF3EdGttrIPZWozHfEaDTU0WJD/TDnXMvdDh30mzUl/9qWhnf7naicYartcEfUghTCSNpA==";
+      };
+    };
+    "@babel/plugin-transform-exponentiation-operator-7.10.1" = {
+      name = "_at_babel_slash_plugin-transform-exponentiation-operator";
+      packageName = "@babel/plugin-transform-exponentiation-operator";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.1.tgz";
+        sha512 = "lr/przdAbpEA2BUzRvjXdEDLrArGRRPwbaF9rvayuHRvdQ7lUTTkZnhZrJ4LE2jvgMRFF4f0YuPQ20vhiPYxtA==";
+      };
+    };
+    "@babel/plugin-transform-for-of-7.10.1" = {
+      name = "_at_babel_slash_plugin-transform-for-of";
+      packageName = "@babel/plugin-transform-for-of";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.1.tgz";
+        sha512 = "US8KCuxfQcn0LwSCMWMma8M2R5mAjJGsmoCBVwlMygvmDUMkTCykc84IqN1M7t+agSfOmLYTInLCHJM+RUoz+w==";
+      };
+    };
+    "@babel/plugin-transform-function-name-7.10.1" = {
+      name = "_at_babel_slash_plugin-transform-function-name";
+      packageName = "@babel/plugin-transform-function-name";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.1.tgz";
+        sha512 = "//bsKsKFBJfGd65qSNNh1exBy5Y9gD9ZN+DvrJ8f7HXr4avE5POW6zB7Rj6VnqHV33+0vXWUwJT0wSHubiAQkw==";
+      };
+    };
+    "@babel/plugin-transform-literals-7.10.1" = {
+      name = "_at_babel_slash_plugin-transform-literals";
+      packageName = "@babel/plugin-transform-literals";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.1.tgz";
+        sha512 = "qi0+5qgevz1NHLZroObRm5A+8JJtibb7vdcPQF1KQE12+Y/xxl8coJ+TpPW9iRq+Mhw/NKLjm+5SHtAHCC7lAw==";
+      };
+    };
+    "@babel/plugin-transform-member-expression-literals-7.10.1" = {
+      name = "_at_babel_slash_plugin-transform-member-expression-literals";
+      packageName = "@babel/plugin-transform-member-expression-literals";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.1.tgz";
+        sha512 = "UmaWhDokOFT2GcgU6MkHC11i0NQcL63iqeufXWfRy6pUOGYeCGEKhvfFO6Vz70UfYJYHwveg62GS83Rvpxn+NA==";
+      };
+    };
+    "@babel/plugin-transform-modules-amd-7.10.1" = {
+      name = "_at_babel_slash_plugin-transform-modules-amd";
+      packageName = "@babel/plugin-transform-modules-amd";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.1.tgz";
+        sha512 = "31+hnWSFRI4/ACFr1qkboBbrTxoBIzj7qA69qlq8HY8p7+YCzkCT6/TvQ1a4B0z27VeWtAeJd6pr5G04dc1iHw==";
+      };
+    };
+    "@babel/plugin-transform-modules-commonjs-7.10.1" = {
+      name = "_at_babel_slash_plugin-transform-modules-commonjs";
+      packageName = "@babel/plugin-transform-modules-commonjs";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.1.tgz";
+        sha512 = "AQG4fc3KOah0vdITwt7Gi6hD9BtQP/8bhem7OjbaMoRNCH5Djx42O2vYMfau7QnAzQCa+RJnhJBmFFMGpQEzrg==";
+      };
+    };
+    "@babel/plugin-transform-modules-systemjs-7.10.3" = {
+      name = "_at_babel_slash_plugin-transform-modules-systemjs";
+      packageName = "@babel/plugin-transform-modules-systemjs";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.3.tgz";
+        sha512 = "GWXWQMmE1GH4ALc7YXW56BTh/AlzvDWhUNn9ArFF0+Cz5G8esYlVbXfdyHa1xaD1j+GnBoCeoQNlwtZTVdiG/A==";
+      };
+    };
+    "@babel/plugin-transform-modules-umd-7.10.1" = {
+      name = "_at_babel_slash_plugin-transform-modules-umd";
+      packageName = "@babel/plugin-transform-modules-umd";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.1.tgz";
+        sha512 = "EIuiRNMd6GB6ulcYlETnYYfgv4AxqrswghmBRQbWLHZxN4s7mupxzglnHqk9ZiUpDI4eRWewedJJNj67PWOXKA==";
+      };
+    };
+    "@babel/plugin-transform-named-capturing-groups-regex-7.10.3" = {
+      name = "_at_babel_slash_plugin-transform-named-capturing-groups-regex";
+      packageName = "@babel/plugin-transform-named-capturing-groups-regex";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.3.tgz";
+        sha512 = "I3EH+RMFyVi8Iy/LekQm948Z4Lz4yKT7rK+vuCAeRm0kTa6Z5W7xuhRxDNJv0FPya/her6AUgrDITb70YHtTvA==";
+      };
+    };
+    "@babel/plugin-transform-new-target-7.10.1" = {
+      name = "_at_babel_slash_plugin-transform-new-target";
+      packageName = "@babel/plugin-transform-new-target";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.1.tgz";
+        sha512 = "MBlzPc1nJvbmO9rPr1fQwXOM2iGut+JC92ku6PbiJMMK7SnQc1rytgpopveE3Evn47gzvGYeCdgfCDbZo0ecUw==";
+      };
+    };
+    "@babel/plugin-transform-object-super-7.10.1" = {
+      name = "_at_babel_slash_plugin-transform-object-super";
+      packageName = "@babel/plugin-transform-object-super";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.1.tgz";
+        sha512 = "WnnStUDN5GL+wGQrJylrnnVlFhFmeArINIR9gjhSeYyvroGhBrSAXYg/RHsnfzmsa+onJrTJrEClPzgNmmQ4Gw==";
+      };
+    };
+    "@babel/plugin-transform-parameters-7.10.1" = {
+      name = "_at_babel_slash_plugin-transform-parameters";
+      packageName = "@babel/plugin-transform-parameters";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.1.tgz";
+        sha512 = "tJ1T0n6g4dXMsL45YsSzzSDZCxiHXAQp/qHrucOq5gEHncTA3xDxnd5+sZcoQp+N1ZbieAaB8r/VUCG0gqseOg==";
+      };
+    };
+    "@babel/plugin-transform-property-literals-7.10.1" = {
+      name = "_at_babel_slash_plugin-transform-property-literals";
+      packageName = "@babel/plugin-transform-property-literals";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.1.tgz";
+        sha512 = "Kr6+mgag8auNrgEpbfIWzdXYOvqDHZOF0+Bx2xh4H2EDNwcbRb9lY6nkZg8oSjsX+DH9Ebxm9hOqtKW+gRDeNA==";
+      };
+    };
+    "@babel/plugin-transform-regenerator-7.10.3" = {
+      name = "_at_babel_slash_plugin-transform-regenerator";
+      packageName = "@babel/plugin-transform-regenerator";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.3.tgz";
+        sha512 = "H5kNeW0u8mbk0qa1jVIVTeJJL6/TJ81ltD4oyPx0P499DhMJrTmmIFCmJ3QloGpQG8K9symccB7S7SJpCKLwtw==";
+      };
+    };
+    "@babel/plugin-transform-reserved-words-7.10.1" = {
+      name = "_at_babel_slash_plugin-transform-reserved-words";
+      packageName = "@babel/plugin-transform-reserved-words";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.1.tgz";
+        sha512 = "qN1OMoE2nuqSPmpTqEM7OvJ1FkMEV+BjVeZZm9V9mq/x1JLKQ4pcv8riZJMNN3u2AUGl0ouOMjRr2siecvHqUQ==";
+      };
+    };
+    "@babel/plugin-transform-runtime-7.10.3" = {
+      name = "_at_babel_slash_plugin-transform-runtime";
+      packageName = "@babel/plugin-transform-runtime";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.10.3.tgz";
+        sha512 = "b5OzMD1Hi8BBzgQdRHyVVaYrk9zG0wset1it2o3BgonkPadXfOv0aXRqd7864DeOIu3FGKP/h6lr15FE5mahVw==";
+      };
+    };
+    "@babel/plugin-transform-shorthand-properties-7.10.1" = {
+      name = "_at_babel_slash_plugin-transform-shorthand-properties";
+      packageName = "@babel/plugin-transform-shorthand-properties";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.1.tgz";
+        sha512 = "AR0E/lZMfLstScFwztApGeyTHJ5u3JUKMjneqRItWeEqDdHWZwAOKycvQNCasCK/3r5YXsuNG25funcJDu7Y2g==";
+      };
+    };
+    "@babel/plugin-transform-spread-7.10.1" = {
+      name = "_at_babel_slash_plugin-transform-spread";
+      packageName = "@babel/plugin-transform-spread";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.1.tgz";
+        sha512 = "8wTPym6edIrClW8FI2IoaePB91ETOtg36dOkj3bYcNe7aDMN2FXEoUa+WrmPc4xa1u2PQK46fUX2aCb+zo9rfw==";
+      };
+    };
+    "@babel/plugin-transform-sticky-regex-7.10.1" = {
+      name = "_at_babel_slash_plugin-transform-sticky-regex";
+      packageName = "@babel/plugin-transform-sticky-regex";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.1.tgz";
+        sha512 = "j17ojftKjrL7ufX8ajKvwRilwqTok4q+BjkknmQw9VNHnItTyMP5anPFzxFJdCQs7clLcWpCV3ma+6qZWLnGMA==";
+      };
+    };
+    "@babel/plugin-transform-template-literals-7.10.3" = {
+      name = "_at_babel_slash_plugin-transform-template-literals";
+      packageName = "@babel/plugin-transform-template-literals";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.3.tgz";
+        sha512 = "yaBn9OpxQra/bk0/CaA4wr41O0/Whkg6nqjqApcinxM7pro51ojhX6fv1pimAnVjVfDy14K0ULoRL70CA9jWWA==";
+      };
+    };
+    "@babel/plugin-transform-typeof-symbol-7.10.1" = {
+      name = "_at_babel_slash_plugin-transform-typeof-symbol";
+      packageName = "@babel/plugin-transform-typeof-symbol";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.1.tgz";
+        sha512 = "qX8KZcmbvA23zDi+lk9s6hC1FM7jgLHYIjuLgULgc8QtYnmB3tAVIYkNoKRQ75qWBeyzcoMoK8ZQmogGtC/w0g==";
+      };
+    };
+    "@babel/plugin-transform-unicode-escapes-7.10.1" = {
+      name = "_at_babel_slash_plugin-transform-unicode-escapes";
+      packageName = "@babel/plugin-transform-unicode-escapes";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.1.tgz";
+        sha512 = "zZ0Poh/yy1d4jeDWpx/mNwbKJVwUYJX73q+gyh4bwtG0/iUlzdEu0sLMda8yuDFS6LBQlT/ST1SJAR6zYwXWgw==";
+      };
+    };
+    "@babel/plugin-transform-unicode-regex-7.10.1" = {
+      name = "_at_babel_slash_plugin-transform-unicode-regex";
+      packageName = "@babel/plugin-transform-unicode-regex";
+      version = "7.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.1.tgz";
+        sha512 = "Y/2a2W299k0VIUdbqYm9X2qS6fE0CUBhhiPpimK6byy7OJ/kORLlIX+J6UrjgNu5awvs62k+6RSslxhcvVw2Tw==";
+      };
+    };
+    "@babel/preset-env-7.10.3" = {
+      name = "_at_babel_slash_preset-env";
+      packageName = "@babel/preset-env";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.3.tgz";
+        sha512 = "jHaSUgiewTmly88bJtMHbOd1bJf2ocYxb5BWKSDQIP5tmgFuS/n0gl+nhSrYDhT33m0vPxp+rP8oYYgPgMNQlg==";
+      };
+    };
+    "@babel/preset-modules-0.1.3" = {
+      name = "_at_babel_slash_preset-modules";
+      packageName = "@babel/preset-modules";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz";
+        sha512 = "Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==";
+      };
+    };
+    "@babel/runtime-7.10.3" = {
+      name = "_at_babel_slash_runtime";
+      packageName = "@babel/runtime";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.3.tgz";
+        sha512 = "RzGO0RLSdokm9Ipe/YD+7ww8X2Ro79qiXZF3HU9ljrM+qnJmH1Vqth+hbiQZy761LnMJTMitHDuKVYTk3k4dLw==";
+      };
+    };
+    "@babel/template-7.10.3" = {
+      name = "_at_babel_slash_template";
+      packageName = "@babel/template";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/template/-/template-7.10.3.tgz";
+        sha512 = "5BjI4gdtD+9fHZUsaxPHPNpwa+xRkDO7c7JbhYn2afvrkDu5SfAAbi9AIMXw2xEhO/BR35TqiW97IqNvCo/GqA==";
+      };
+    };
+    "@babel/traverse-7.10.3" = {
+      name = "_at_babel_slash_traverse";
+      packageName = "@babel/traverse";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.3.tgz";
+        sha512 = "qO6623eBFhuPm0TmmrUFMT1FulCmsSeJuVGhiLodk2raUDFhhTECLd9E9jC4LBIWziqt4wgF6KuXE4d+Jz9yug==";
+      };
+    };
+    "@babel/types-7.10.3" = {
+      name = "_at_babel_slash_types";
+      packageName = "@babel/types";
+      version = "7.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.10.3.tgz";
+        sha512 = "nZxaJhBXBQ8HVoIcGsf9qWep3Oh3jCENK54V4mRF7qaJabVsAYdbTtmSD8WmAp1R6ytPiu5apMwSXyxB1WlaBA==";
+      };
+    };
+    "@fortawesome/fontawesome-common-types-0.2.30" = {
+      name = "_at_fortawesome_slash_fontawesome-common-types";
+      packageName = "@fortawesome/fontawesome-common-types";
+      version = "0.2.30";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.30.tgz";
+        sha512 = "TsRwpTuKwFNiPhk1UfKgw7zNPeV5RhNp2Uw3pws+9gDAkPGKrtjR1y2lI3SYn7+YzyfuNknflpBA1LRKjt7hMg==";
+      };
+    };
+    "@fortawesome/fontawesome-svg-core-1.2.30" = {
+      name = "_at_fortawesome_slash_fontawesome-svg-core";
+      packageName = "@fortawesome/fontawesome-svg-core";
+      version = "1.2.30";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.30.tgz";
+        sha512 = "E3sAXATKCSVnT17HYmZjjbcmwihrNOCkoU7dVMlasrcwiJAHxSKeZ+4WN5O+ElgO/FaYgJmASl8p9N7/B/RttA==";
+      };
+    };
+    "@fortawesome/free-regular-svg-icons-5.14.0" = {
+      name = "_at_fortawesome_slash_free-regular-svg-icons";
+      packageName = "@fortawesome/free-regular-svg-icons";
+      version = "5.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-5.14.0.tgz";
+        sha512 = "6LCFvjGSMPoUQbn3NVlgiG4CY5iIY8fOm+to/D6QS/GvdqhDt+xZklQeERdCvVRbnFa1ITc1rJHPRXqkX5wztQ==";
+      };
+    };
+    "@fortawesome/free-solid-svg-icons-5.14.0" = {
+      name = "_at_fortawesome_slash_free-solid-svg-icons";
+      packageName = "@fortawesome/free-solid-svg-icons";
+      version = "5.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.14.0.tgz";
+        sha512 = "M933RDM8cecaKMWDSk3FRYdnzWGW7kBBlGNGfvqLVwcwhUPNj9gcw+xZMrqBdRqxnSXdl3zWzTCNNGEtFUq67Q==";
+      };
+    };
+    "@fortawesome/vue-fontawesome-2.0.0" = {
+      name = "_at_fortawesome_slash_vue-fontawesome";
+      packageName = "@fortawesome/vue-fontawesome";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fortawesome/vue-fontawesome/-/vue-fontawesome-2.0.0.tgz";
+        sha512 = "N3VKw7KzRfOm8hShUVldpinlm13HpvLBQgT63QS+aCrIRLwjoEUXY5Rcmttbfb6HkzZaeqjLqd/aZCQ53UjQpg==";
+      };
+    };
+    "@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==";
+      };
+    };
+    "@intervolga/optimize-cssnano-plugin-1.0.6" = {
+      name = "_at_intervolga_slash_optimize-cssnano-plugin";
+      packageName = "@intervolga/optimize-cssnano-plugin";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@intervolga/optimize-cssnano-plugin/-/optimize-cssnano-plugin-1.0.6.tgz";
+        sha512 = "zN69TnSr0viRSU6cEDIcuPcP67QcpQ6uHACg58FiN9PDrU6SLyGW3MR4tiISbYxy1kDWAVPwD+XwQTWE5cigAA==";
+      };
+    };
+    "@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.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==";
+      };
+    };
+    "@soda/friendly-errors-webpack-plugin-1.7.1" = {
+      name = "_at_soda_slash_friendly-errors-webpack-plugin";
+      packageName = "@soda/friendly-errors-webpack-plugin";
+      version = "1.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.1.tgz";
+        sha512 = "cWKrGaFX+rfbMrAxVv56DzhPNqOJPZuNIS2HGMELtgGzb+vsMzyig9mml5gZ/hr2BGtSLV+dP2LUEuAL8aG2mQ==";
+      };
+    };
+    "@soda/get-current-script-1.0.2" = {
+      name = "_at_soda_slash_get-current-script";
+      packageName = "@soda/get-current-script";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@soda/get-current-script/-/get-current-script-1.0.2.tgz";
+        sha512 = "T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w==";
+      };
+    };
+    "@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/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/eslint-visitor-keys-1.0.0" = {
+      name = "_at_types_slash_eslint-visitor-keys";
+      packageName = "@types/eslint-visitor-keys";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz";
+        sha512 = "OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==";
+      };
+    };
+    "@types/events-3.0.0" = {
+      name = "_at_types_slash_events";
+      packageName = "@types/events";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz";
+        sha512 = "EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==";
+      };
+    };
+    "@types/glob-7.1.1" = {
+      name = "_at_types_slash_glob";
+      packageName = "@types/glob";
+      version = "7.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz";
+        sha512 = "1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==";
+      };
+    };
+    "@types/hammerjs-2.0.36" = {
+      name = "_at_types_slash_hammerjs";
+      packageName = "@types/hammerjs";
+      version = "2.0.36";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.36.tgz";
+        sha512 = "7TUK/k2/QGpEAv/BCwSHlYu3NXZhQ9ZwBYpzr9tjlPIL2C5BeGhH3DmVavRx3ZNyELX5TLC91JTz/cen6AAtIQ==";
+      };
+    };
+    "@types/json-schema-7.0.4" = {
+      name = "_at_types_slash_json-schema";
+      packageName = "@types/json-schema";
+      version = "7.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz";
+        sha512 = "8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==";
+      };
+    };
+    "@types/marked-1.1.0" = {
+      name = "_at_types_slash_marked";
+      packageName = "@types/marked";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/marked/-/marked-1.1.0.tgz";
+        sha512 = "j8XXj6/l9kFvCwMyVqozznqpd/nk80krrW+QiIJN60Uu9gX5Pvn4/qPJ2YngQrR3QREPwmrE1f9/EWKVTFzoEw==";
+      };
+    };
+    "@types/minimatch-3.0.3" = {
+      name = "_at_types_slash_minimatch";
+      packageName = "@types/minimatch";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz";
+        sha512 = "tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==";
+      };
+    };
+    "@types/node-13.9.8" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "13.9.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-13.9.8.tgz";
+        sha512 = "1WgO8hsyHynlx7nhP1kr0OFzsgKz5XDQL+Lfc3b1Q3qIln/n8cKD4m09NJ0+P1Rq7Zgnc7N0+SsMnoD1rEb0kA==";
+      };
+    };
+    "@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/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/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.6" = {
+      name = "_at_types_slash_tapable";
+      packageName = "@types/tapable";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz";
+        sha512 = "W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==";
+      };
+    };
+    "@types/uglify-js-3.9.3" = {
+      name = "_at_types_slash_uglify-js";
+      packageName = "@types/uglify-js";
+      version = "3.9.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.9.3.tgz";
+        sha512 = "KswB5C7Kwduwjj04Ykz+AjvPcfgv/37Za24O2EDzYNbwyzOo8+ydtvzUfZ5UMguiVu29Gx44l1A6VsPPcmYu9w==";
+      };
+    };
+    "@types/webpack-4.41.22" = {
+      name = "_at_types_slash_webpack";
+      packageName = "@types/webpack";
+      version = "4.41.22";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.22.tgz";
+        sha512 = "JQDJK6pj8OMV9gWOnN1dcLCyU9Hzs6lux0wBO4lr1+gyEhIBR9U3FMrz12t2GPkg110XAxEAw2WHF6g7nZIbRQ==";
+      };
+    };
+    "@types/webpack-env-1.15.2" = {
+      name = "_at_types_slash_webpack-env";
+      packageName = "@types/webpack-env";
+      version = "1.15.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.15.2.tgz";
+        sha512 = "67ZgZpAlhIICIdfQrB5fnDvaKFcDxpKibxznfYRVAT4mQE41Dido/3Ty+E3xGBmTogc5+0Qb8tWhna+5B8z1iQ==";
+      };
+    };
+    "@types/webpack-sources-1.4.2" = {
+      name = "_at_types_slash_webpack-sources";
+      packageName = "@types/webpack-sources";
+      version = "1.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-1.4.2.tgz";
+        sha512 = "77T++JyKow4BQB/m9O96n9d/UUHWLQHlcqXb9Vsf4F1+wKNrrlWNFPDLKNT92RJnCSL6CieTc+NDXtCVZswdTw==";
+      };
+    };
+    "@typescript-eslint/eslint-plugin-2.34.0" = {
+      name = "_at_typescript-eslint_slash_eslint-plugin";
+      packageName = "@typescript-eslint/eslint-plugin";
+      version = "2.34.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz";
+        sha512 = "4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ==";
+      };
+    };
+    "@typescript-eslint/experimental-utils-2.34.0" = {
+      name = "_at_typescript-eslint_slash_experimental-utils";
+      packageName = "@typescript-eslint/experimental-utils";
+      version = "2.34.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz";
+        sha512 = "eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==";
+      };
+    };
+    "@typescript-eslint/parser-2.34.0" = {
+      name = "_at_typescript-eslint_slash_parser";
+      packageName = "@typescript-eslint/parser";
+      version = "2.34.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.34.0.tgz";
+        sha512 = "03ilO0ucSD0EPTw2X4PntSIRFtDPWjrVq7C3/Z3VQHRC7+13YB55rcJI3Jt+YgeHbjUdJPcPa7b23rXCBokuyA==";
+      };
+    };
+    "@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==";
+      };
+    };
+    "@vue/babel-helper-vue-jsx-merge-props-1.0.0" = {
+      name = "_at_vue_slash_babel-helper-vue-jsx-merge-props";
+      packageName = "@vue/babel-helper-vue-jsx-merge-props";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.0.0.tgz";
+        sha512 = "6tyf5Cqm4m6v7buITuwS+jHzPlIPxbFzEhXR5JGZpbrvOcp1hiQKckd305/3C7C36wFekNTQSxAtgeM0j0yoUw==";
+      };
+    };
+    "@vue/babel-plugin-transform-vue-jsx-1.1.2" = {
+      name = "_at_vue_slash_babel-plugin-transform-vue-jsx";
+      packageName = "@vue/babel-plugin-transform-vue-jsx";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.1.2.tgz";
+        sha512 = "YfdaoSMvD1nj7+DsrwfTvTnhDXI7bsuh+Y5qWwvQXlD24uLgnsoww3qbiZvWf/EoviZMrvqkqN4CBw0W3BWUTQ==";
+      };
+    };
+    "@vue/babel-preset-app-4.4.6" = {
+      name = "_at_vue_slash_babel-preset-app";
+      packageName = "@vue/babel-preset-app";
+      version = "4.4.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-4.4.6.tgz";
+        sha512 = "urIa6Qk3lKacLvscrzxMNyYlTqKFcPAUo5MohOjv1ISZ9PssHw693WTOrqSC0XksdMLtp/rnLvc6l5G8Muk0lw==";
+      };
+    };
+    "@vue/babel-preset-jsx-1.1.2" = {
+      name = "_at_vue_slash_babel-preset-jsx";
+      packageName = "@vue/babel-preset-jsx";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/babel-preset-jsx/-/babel-preset-jsx-1.1.2.tgz";
+        sha512 = "zDpVnFpeC9YXmvGIDSsKNdL7qCG2rA3gjywLYHPCKDT10erjxF4U+6ay9X6TW5fl4GsDlJp9bVfAVQAAVzxxvQ==";
+      };
+    };
+    "@vue/babel-sugar-functional-vue-1.1.2" = {
+      name = "_at_vue_slash_babel-sugar-functional-vue";
+      packageName = "@vue/babel-sugar-functional-vue";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.1.2.tgz";
+        sha512 = "YhmdJQSVEFF5ETJXzrMpj0nkCXEa39TvVxJTuVjzvP2rgKhdMmQzlJuMv/HpadhZaRVMCCF3AEjjJcK5q/cYzQ==";
+      };
+    };
+    "@vue/babel-sugar-inject-h-1.1.2" = {
+      name = "_at_vue_slash_babel-sugar-inject-h";
+      packageName = "@vue/babel-sugar-inject-h";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.1.2.tgz";
+        sha512 = "VRSENdTvD5htpnVp7i7DNuChR5rVMcORdXjvv5HVvpdKHzDZAYiLSD+GhnhxLm3/dMuk8pSzV+k28ECkiN5m8w==";
+      };
+    };
+    "@vue/babel-sugar-v-model-1.1.2" = {
+      name = "_at_vue_slash_babel-sugar-v-model";
+      packageName = "@vue/babel-sugar-v-model";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.1.2.tgz";
+        sha512 = "vLXPvNq8vDtt0u9LqFdpGM9W9IWDmCmCyJXuozlq4F4UYVleXJ2Fa+3JsnTZNJcG+pLjjfnEGHci2339Kj5sGg==";
+      };
+    };
+    "@vue/babel-sugar-v-on-1.1.2" = {
+      name = "_at_vue_slash_babel-sugar-v-on";
+      packageName = "@vue/babel-sugar-v-on";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.1.2.tgz";
+        sha512 = "T8ZCwC8Jp2uRtcZ88YwZtZXe7eQrJcfRq0uTFy6ShbwYJyz5qWskRFoVsdTi9o0WEhmQXxhQUewodOSCUPVmsQ==";
+      };
+    };
+    "@vue/cli-overlay-4.4.6" = {
+      name = "_at_vue_slash_cli-overlay";
+      packageName = "@vue/cli-overlay";
+      version = "4.4.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-4.4.6.tgz";
+        sha512 = "fzjg2gWQt+jw5fyLsD9HZNxGNQgZjLDI2s9bLWJwRucdfmncSi9neqA0TZyszGrgcJA4Qu4V5KgV0qwVSBYCaw==";
+      };
+    };
+    "@vue/cli-plugin-babel-4.4.6" = {
+      name = "_at_vue_slash_cli-plugin-babel";
+      packageName = "@vue/cli-plugin-babel";
+      version = "4.4.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/cli-plugin-babel/-/cli-plugin-babel-4.4.6.tgz";
+        sha512 = "9cX9mN+4DIbcqw3rV6UBOA0t5zikIkrBLQloUzsOBOu5Xb7/UoD7inInFj7bnyHUflr5LqbdWJ+etCQcWAIIXA==";
+      };
+    };
+    "@vue/cli-plugin-eslint-4.4.6" = {
+      name = "_at_vue_slash_cli-plugin-eslint";
+      packageName = "@vue/cli-plugin-eslint";
+      version = "4.4.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/cli-plugin-eslint/-/cli-plugin-eslint-4.4.6.tgz";
+        sha512 = "3a9rVpOKPQsDgAlRkhmBMHboGobivG/47BbQGE66Z8YJxrgF/AWikP3Jy67SmxtszRkyiWfw4aJFRV9r3MzffQ==";
+      };
+    };
+    "@vue/cli-plugin-router-4.4.6" = {
+      name = "_at_vue_slash_cli-plugin-router";
+      packageName = "@vue/cli-plugin-router";
+      version = "4.4.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/cli-plugin-router/-/cli-plugin-router-4.4.6.tgz";
+        sha512 = "TkLdn0ZYo3zgn78Rk8doPlR+4UkGjGW2R1eGEaZEkue/mw2VhUWtTk9cKLZaYrw0eY8Ro/j+OV6mD+scyrairg==";
+      };
+    };
+    "@vue/cli-plugin-typescript-4.4.6" = {
+      name = "_at_vue_slash_cli-plugin-typescript";
+      packageName = "@vue/cli-plugin-typescript";
+      version = "4.4.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/cli-plugin-typescript/-/cli-plugin-typescript-4.4.6.tgz";
+        sha512 = "FIIx9yqm19M62+2X4QwTrnlePdghsKnFbBPCHJawx3ULx30B11fL7X0uwmcq+kEAAHwAGBI6QyU7dgwPDRUCOw==";
+      };
+    };
+    "@vue/cli-plugin-vuex-4.4.6" = {
+      name = "_at_vue_slash_cli-plugin-vuex";
+      packageName = "@vue/cli-plugin-vuex";
+      version = "4.4.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.4.6.tgz";
+        sha512 = "Ho0YzUivn8BLPqFoFypntR8CMTEXYYHVr0GdnZW99XL+DbGw75f+tJfnrV9UFHDTfvZt7uewKiXDMlrzQ0l3Ug==";
+      };
+    };
+    "@vue/cli-service-4.4.6" = {
+      name = "_at_vue_slash_cli-service";
+      packageName = "@vue/cli-service";
+      version = "4.4.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/cli-service/-/cli-service-4.4.6.tgz";
+        sha512 = "k5OFGh2NnvRymCyq9DfBiNJvECUuun3pl5KMm3557IZyA5E5csv+RHoSW3dX8HHe0zXq18g52VswP1llvR9POw==";
+      };
+    };
+    "@vue/cli-shared-utils-4.4.6" = {
+      name = "_at_vue_slash_cli-shared-utils";
+      packageName = "@vue/cli-shared-utils";
+      version = "4.4.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.4.6.tgz";
+        sha512 = "ba+FZZCjiTSu2otnLjY4qXqASe7ZIQ/QBljk5oRPgqrR0p1NUkDPUcZhqa041aOaSW1yAfSfhOD7Q84nMnWhzQ==";
+      };
+    };
+    "@vue/component-compiler-utils-3.1.2" = {
+      name = "_at_vue_slash_component-compiler-utils";
+      packageName = "@vue/component-compiler-utils";
+      version = "3.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.1.2.tgz";
+        sha512 = "QLq9z8m79mCinpaEeSURhnNCN6djxpHw0lpP/bodMlt5kALfONpryMthvnrQOlTcIKoF+VoPi+lPHUYeDFPXug==";
+      };
+    };
+    "@vue/eslint-config-typescript-5.0.2" = {
+      name = "_at_vue_slash_eslint-config-typescript";
+      packageName = "@vue/eslint-config-typescript";
+      version = "5.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-5.0.2.tgz";
+        sha512 = "GEZOHKOnelgQf5npA+6VNuhJZu9xEJaics3SYUyRjaSay+2SCpEINHhEpt6fXoNy/aIFt8CkDlt9CaEb+QPIcg==";
+      };
+    };
+    "@vue/preload-webpack-plugin-1.1.1" = {
+      name = "_at_vue_slash_preload-webpack-plugin";
+      packageName = "@vue/preload-webpack-plugin";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.1.tgz";
+        sha512 = "8VCoJeeH8tCkzhkpfOkt+abALQkS11OIHhte5MBzYaKMTqK0A3ZAKEUVAffsOklhEv7t0yrQt696Opnu9oAx+w==";
+      };
+    };
+    "@vue/web-component-wrapper-1.2.0" = {
+      name = "_at_vue_slash_web-component-wrapper";
+      packageName = "@vue/web-component-wrapper";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/web-component-wrapper/-/web-component-wrapper-1.2.0.tgz";
+        sha512 = "Xn/+vdm9CjuC9p3Ae+lTClNutrVhsXpzxvoTXXtoys6kVRX9FkueSUAqSWAyZntmVLlR4DosBV4pH8y5Z/HbUw==";
+      };
+    };
+    "@webassemblyjs/ast-1.9.0" = {
+      name = "_at_webassemblyjs_slash_ast";
+      packageName = "@webassemblyjs/ast";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz";
+        sha512 = "C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==";
+      };
+    };
+    "@webassemblyjs/floating-point-hex-parser-1.9.0" = {
+      name = "_at_webassemblyjs_slash_floating-point-hex-parser";
+      packageName = "@webassemblyjs/floating-point-hex-parser";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz";
+        sha512 = "TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==";
+      };
+    };
+    "@webassemblyjs/helper-api-error-1.9.0" = {
+      name = "_at_webassemblyjs_slash_helper-api-error";
+      packageName = "@webassemblyjs/helper-api-error";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz";
+        sha512 = "NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==";
+      };
+    };
+    "@webassemblyjs/helper-buffer-1.9.0" = {
+      name = "_at_webassemblyjs_slash_helper-buffer";
+      packageName = "@webassemblyjs/helper-buffer";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz";
+        sha512 = "qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==";
+      };
+    };
+    "@webassemblyjs/helper-code-frame-1.9.0" = {
+      name = "_at_webassemblyjs_slash_helper-code-frame";
+      packageName = "@webassemblyjs/helper-code-frame";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz";
+        sha512 = "ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==";
+      };
+    };
+    "@webassemblyjs/helper-fsm-1.9.0" = {
+      name = "_at_webassemblyjs_slash_helper-fsm";
+      packageName = "@webassemblyjs/helper-fsm";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz";
+        sha512 = "OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==";
+      };
+    };
+    "@webassemblyjs/helper-module-context-1.9.0" = {
+      name = "_at_webassemblyjs_slash_helper-module-context";
+      packageName = "@webassemblyjs/helper-module-context";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz";
+        sha512 = "MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==";
+      };
+    };
+    "@webassemblyjs/helper-wasm-bytecode-1.9.0" = {
+      name = "_at_webassemblyjs_slash_helper-wasm-bytecode";
+      packageName = "@webassemblyjs/helper-wasm-bytecode";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz";
+        sha512 = "R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==";
+      };
+    };
+    "@webassemblyjs/helper-wasm-section-1.9.0" = {
+      name = "_at_webassemblyjs_slash_helper-wasm-section";
+      packageName = "@webassemblyjs/helper-wasm-section";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz";
+        sha512 = "XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==";
+      };
+    };
+    "@webassemblyjs/ieee754-1.9.0" = {
+      name = "_at_webassemblyjs_slash_ieee754";
+      packageName = "@webassemblyjs/ieee754";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz";
+        sha512 = "dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==";
+      };
+    };
+    "@webassemblyjs/leb128-1.9.0" = {
+      name = "_at_webassemblyjs_slash_leb128";
+      packageName = "@webassemblyjs/leb128";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz";
+        sha512 = "ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==";
+      };
+    };
+    "@webassemblyjs/utf8-1.9.0" = {
+      name = "_at_webassemblyjs_slash_utf8";
+      packageName = "@webassemblyjs/utf8";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz";
+        sha512 = "GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==";
+      };
+    };
+    "@webassemblyjs/wasm-edit-1.9.0" = {
+      name = "_at_webassemblyjs_slash_wasm-edit";
+      packageName = "@webassemblyjs/wasm-edit";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz";
+        sha512 = "FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==";
+      };
+    };
+    "@webassemblyjs/wasm-gen-1.9.0" = {
+      name = "_at_webassemblyjs_slash_wasm-gen";
+      packageName = "@webassemblyjs/wasm-gen";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz";
+        sha512 = "cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==";
+      };
+    };
+    "@webassemblyjs/wasm-opt-1.9.0" = {
+      name = "_at_webassemblyjs_slash_wasm-opt";
+      packageName = "@webassemblyjs/wasm-opt";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz";
+        sha512 = "Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==";
+      };
+    };
+    "@webassemblyjs/wasm-parser-1.9.0" = {
+      name = "_at_webassemblyjs_slash_wasm-parser";
+      packageName = "@webassemblyjs/wasm-parser";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz";
+        sha512 = "9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==";
+      };
+    };
+    "@webassemblyjs/wast-parser-1.9.0" = {
+      name = "_at_webassemblyjs_slash_wast-parser";
+      packageName = "@webassemblyjs/wast-parser";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz";
+        sha512 = "qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==";
+      };
+    };
+    "@webassemblyjs/wast-printer-1.9.0" = {
+      name = "_at_webassemblyjs_slash_wast-printer";
+      packageName = "@webassemblyjs/wast-printer";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz";
+        sha512 = "2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==";
+      };
+    };
+    "@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==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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-6.4.1" = {
+      name = "acorn";
+      packageName = "acorn";
+      version = "6.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz";
+        sha512 = "ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==";
+      };
+    };
+    "acorn-7.1.1" = {
+      name = "acorn";
+      packageName = "acorn";
+      version = "7.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz";
+        sha512 = "add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==";
+      };
+    };
+    "acorn-7.3.1" = {
+      name = "acorn";
+      packageName = "acorn";
+      version = "7.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz";
+        sha512 = "tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==";
+      };
+    };
+    "acorn-jsx-5.1.0" = {
+      name = "acorn-jsx";
+      packageName = "acorn-jsx";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.1.0.tgz";
+        sha512 = "tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==";
+      };
+    };
+    "acorn-walk-7.2.0" = {
+      name = "acorn-walk";
+      packageName = "acorn-walk";
+      version = "7.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz";
+        sha512 = "OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==";
+      };
+    };
+    "address-1.1.2" = {
+      name = "address";
+      packageName = "address";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/address/-/address-1.1.2.tgz";
+        sha512 = "aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==";
+      };
+    };
+    "aggregate-error-3.0.1" = {
+      name = "aggregate-error";
+      packageName = "aggregate-error";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz";
+        sha512 = "quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==";
+      };
+    };
+    "ajv-6.10.2" = {
+      name = "ajv";
+      packageName = "ajv";
+      version = "6.10.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz";
+        sha512 = "TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==";
+      };
+    };
+    "ajv-6.12.2" = {
+      name = "ajv";
+      packageName = "ajv";
+      version = "6.12.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz";
+        sha512 = "k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==";
+      };
+    };
+    "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.4.1" = {
+      name = "ajv-keywords";
+      packageName = "ajv-keywords";
+      version = "3.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz";
+        sha512 = "RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==";
+      };
+    };
+    "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";
+      };
+    };
+    "amdefine-1.0.1" = {
+      name = "amdefine";
+      packageName = "amdefine";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz";
+        sha1 = "4a5282ac164729e93619bcfd3ad151f817ce91f5";
+      };
+    };
+    "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-escapes-4.3.0" = {
+      name = "ansi-escapes";
+      packageName = "ansi-escapes";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz";
+        sha512 = "EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==";
+      };
+    };
+    "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-3.0.0" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz";
+        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";
+      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.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==";
+      };
+    };
+    "any-promise-1.3.0" = {
+      name = "any-promise";
+      packageName = "any-promise";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz";
+        sha1 = "abc6afeedcea52e809cdc0376aed3ce39635d17f";
+      };
+    };
+    "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.1" = {
+      name = "anymatch";
+      packageName = "anymatch";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz";
+        sha512 = "mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==";
+      };
+    };
+    "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==";
+      };
+    };
+    "arch-2.1.2" = {
+      name = "arch";
+      packageName = "arch";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/arch/-/arch-2.1.2.tgz";
+        sha512 = "NTBIIbAfkJeIletyABbVtdPgeKfDafR+1mZV/AyyfC1UkVkp9iUjV+wwmqtUgphHYajbI86jejBJp5e+jkGTiQ==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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-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-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";
+      };
+    };
+    "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==";
+      };
+    };
+    "asn1.js-4.10.1" = {
+      name = "asn1.js";
+      packageName = "asn1.js";
+      version = "4.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz";
+        sha512 = "p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==";
+      };
+    };
+    "assert-1.5.0" = {
+      name = "assert";
+      packageName = "assert";
+      version = "1.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz";
+        sha512 = "EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==";
+      };
+    };
+    "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";
+      };
+    };
+    "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";
+      };
+    };
+    "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==";
+      };
+    };
+    "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-foreach-0.1.3" = {
+      name = "async-foreach";
+      packageName = "async-foreach";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz";
+        sha1 = "36121f845c0578172de419a97dbeb1d16ec34542";
+      };
+    };
+    "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==";
+      };
+    };
+    "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";
+      };
+    };
+    "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.4" = {
+      name = "autoprefixer";
+      packageName = "autoprefixer";
+      version = "9.8.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.4.tgz";
+        sha512 = "84aYfXlpUe45lvmS+HoAWKCkirI/sw4JK0/bTeeqgHYco3dcsOn0NqdejISjptsYwNji/21dnkDri9PsYKk89A==";
+      };
+    };
+    "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.9.0" = {
+      name = "aws4";
+      packageName = "aws4";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aws4/-/aws4-1.9.0.tgz";
+        sha512 = "Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A==";
+      };
+    };
+    "babel-code-frame-6.26.0" = {
+      name = "babel-code-frame";
+      packageName = "babel-code-frame";
+      version = "6.26.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz";
+        sha1 = "63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b";
+      };
+    };
+    "babel-loader-8.1.0" = {
+      name = "babel-loader";
+      packageName = "babel-loader";
+      version = "8.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz";
+        sha512 = "7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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";
+      };
+    };
+    "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==";
+      };
+    };
+    "base64-js-1.3.1" = {
+      name = "base64-js";
+      packageName = "base64-js";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz";
+        sha512 = "mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==";
+      };
+    };
+    "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";
+      };
+    };
+    "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";
+      };
+    };
+    "bfj-6.1.2" = {
+      name = "bfj";
+      packageName = "bfj";
+      version = "6.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz";
+        sha512 = "BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw==";
+      };
+    };
+    "big.js-3.2.0" = {
+      name = "big.js";
+      packageName = "big.js";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz";
+        sha512 = "+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==";
+      };
+    };
+    "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.1.0" = {
+      name = "binary-extensions";
+      packageName = "binary-extensions";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz";
+        sha512 = "1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==";
+      };
+    };
+    "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==";
+      };
+    };
+    "block-stream-0.0.9" = {
+      name = "block-stream";
+      packageName = "block-stream";
+      version = "0.0.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz";
+        sha1 = "13ebfe778a03205cfe03751481ebb4b3300c126a";
+      };
+    };
+    "bluebird-3.7.2" = {
+      name = "bluebird";
+      packageName = "bluebird";
+      version = "3.7.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz";
+        sha512 = "XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==";
+      };
+    };
+    "bn.js-4.11.8" = {
+      name = "bn.js";
+      packageName = "bn.js";
+      version = "4.11.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz";
+        sha512 = "ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==";
+      };
+    };
+    "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==";
+      };
+    };
+    "brorand-1.1.0" = {
+      name = "brorand";
+      packageName = "brorand";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz";
+        sha1 = "12c25efe40a45e3c323eb8675a0a0ce57b22371f";
+      };
+    };
+    "browserify-aes-1.2.0" = {
+      name = "browserify-aes";
+      packageName = "browserify-aes";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz";
+        sha512 = "+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==";
+      };
+    };
+    "browserify-cipher-1.0.1" = {
+      name = "browserify-cipher";
+      packageName = "browserify-cipher";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz";
+        sha512 = "sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==";
+      };
+    };
+    "browserify-des-1.0.2" = {
+      name = "browserify-des";
+      packageName = "browserify-des";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz";
+        sha512 = "BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==";
+      };
+    };
+    "browserify-rsa-4.0.1" = {
+      name = "browserify-rsa";
+      packageName = "browserify-rsa";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz";
+        sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524";
+      };
+    };
+    "browserify-sign-4.0.4" = {
+      name = "browserify-sign";
+      packageName = "browserify-sign";
+      version = "4.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz";
+        sha1 = "aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298";
+      };
+    };
+    "browserify-zlib-0.2.0" = {
+      name = "browserify-zlib";
+      packageName = "browserify-zlib";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz";
+        sha512 = "Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==";
+      };
+    };
+    "browserslist-4.11.1" = {
+      name = "browserslist";
+      packageName = "browserslist";
+      version = "4.11.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.11.1.tgz";
+        sha512 = "DCTr3kDrKEYNw6Jb9HFxVLQNaue8z+0ZfRBRjmCunKDEXEBajKDj2Y+Uelg+Pi29OnvaSGwjOsnRyNEkXzHg5g==";
+      };
+    };
+    "browserslist-4.12.2" = {
+      name = "browserslist";
+      packageName = "browserslist";
+      version = "4.12.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.12.2.tgz";
+        sha512 = "MfZaeYqR8StRZdstAK9hCKDd2StvePCYp5rHzQCPicUjfFliDgmuaBNPHYUTpAywBN8+Wc/d7NYVFkO0aqaBUw==";
+      };
+    };
+    "buefy-0.8.15" = {
+      name = "buefy";
+      packageName = "buefy";
+      version = "0.8.15";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buefy/-/buefy-0.8.15.tgz";
+        sha512 = "rDTtLNIip+uFpB1Z9E9YllLPYUkJUIFsf7tBhutNfP9SYGrcDhXnUsIEhPHSxGEeddPlX9YT98Mx1zhOz622vg==";
+      };
+    };
+    "buffer-4.9.2" = {
+      name = "buffer";
+      packageName = "buffer";
+      version = "4.9.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz";
+        sha512 = "xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==";
+      };
+    };
+    "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==";
+      };
+    };
+    "buffer-json-2.0.0" = {
+      name = "buffer-json";
+      packageName = "buffer-json";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer-json/-/buffer-json-2.0.0.tgz";
+        sha512 = "+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw==";
+      };
+    };
+    "buffer-xor-1.0.3" = {
+      name = "buffer-xor";
+      packageName = "buffer-xor";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz";
+        sha1 = "26e61ed1422fb70dd42e6e36729ed51d855fe8d9";
+      };
+    };
+    "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";
+      };
+    };
+    "builtin-status-codes-3.0.0" = {
+      name = "builtin-status-codes";
+      packageName = "builtin-status-codes";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz";
+        sha1 = "85982878e21b98e1c66425e03d0174788f569ee8";
+      };
+    };
+    "bulma-0.7.5" = {
+      name = "bulma";
+      packageName = "bulma";
+      version = "0.7.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bulma/-/bulma-0.7.5.tgz";
+        sha512 = "cX98TIn0I6sKba/DhW0FBjtaDpxTelU166pf7ICXpCCuplHWyu6C9LYZmL5PEsnePIeJaiorsTEzzNk3Tsm1hw==";
+      };
+    };
+    "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-12.0.4" = {
+      name = "cacache";
+      packageName = "cacache";
+      version = "12.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz";
+        sha512 = "a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==";
+      };
+    };
+    "cacache-13.0.1" = {
+      name = "cacache";
+      packageName = "cacache";
+      version = "13.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz";
+        sha512 = "5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==";
+      };
+    };
+    "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==";
+      };
+    };
+    "cache-loader-4.1.0" = {
+      name = "cache-loader";
+      packageName = "cache-loader";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cache-loader/-/cache-loader-4.1.0.tgz";
+        sha512 = "ftOayxve0PwKzBF/GLsZNC9fJBXl8lkZE3TOsjkboHfVHVkL39iUEs1FO07A33mizmci5Dudt38UZrrYXDtbhw==";
+      };
+    };
+    "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-3.0.0" = {
+      name = "camel-case";
+      packageName = "camel-case";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz";
+        sha1 = "ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73";
+      };
+    };
+    "camelcase-2.1.1" = {
+      name = "camelcase";
+      packageName = "camelcase";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz";
+        sha1 = "7c1d16d679a1bbe59ca02cacecfb011e201f5a1f";
+      };
+    };
+    "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-keys-2.1.0" = {
+      name = "camelcase-keys";
+      packageName = "camelcase-keys";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz";
+        sha1 = "308beeaffdf28119051efa1d932213c91b8f92e7";
+      };
+    };
+    "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-lite-1.0.30001038" = {
+      name = "caniuse-lite";
+      packageName = "caniuse-lite";
+      version = "1.0.30001038";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001038.tgz";
+        sha512 = "zii9quPo96XfOiRD4TrfYGs+QsGZpb2cGiMAzPjtf/hpFgB6zCPZgJb7I1+EATeMw/o+lG8FyRAnI+CWStHcaQ==";
+      };
+    };
+    "caniuse-lite-1.0.30001090" = {
+      name = "caniuse-lite";
+      packageName = "caniuse-lite";
+      version = "1.0.30001090";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001090.tgz";
+        sha512 = "QzPRKDCyp7RhjczTPZaqK3CjPA5Ht2UnXhZhCI4f7QiB5JK6KEuZBxIzyWnB3wO4hgAj4GMRxAhuiacfw0Psjg==";
+      };
+    };
+    "case-sensitive-paths-webpack-plugin-2.3.0" = {
+      name = "case-sensitive-paths-webpack-plugin";
+      packageName = "case-sensitive-paths-webpack-plugin";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz";
+        sha512 = "/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ==";
+      };
+    };
+    "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";
+      };
+    };
+    "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-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==";
+      };
+    };
+    "chardet-0.7.0" = {
+      name = "chardet";
+      packageName = "chardet";
+      version = "0.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz";
+        sha512 = "mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==";
+      };
+    };
+    "check-types-8.0.3" = {
+      name = "check-types";
+      packageName = "check-types";
+      version = "8.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz";
+        sha512 = "YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==";
+      };
+    };
+    "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.4.0" = {
+      name = "chokidar";
+      packageName = "chokidar";
+      version = "3.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz";
+        sha512 = "aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==";
+      };
+    };
+    "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==";
+      };
+    };
+    "chrome-trace-event-1.0.2" = {
+      name = "chrome-trace-event";
+      packageName = "chrome-trace-event";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz";
+        sha512 = "9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==";
+      };
+    };
+    "ci-info-1.6.0" = {
+      name = "ci-info";
+      packageName = "ci-info";
+      version = "1.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz";
+        sha512 = "vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==";
+      };
+    };
+    "cipher-base-1.0.4" = {
+      name = "cipher-base";
+      packageName = "cipher-base";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz";
+        sha512 = "Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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==";
+      };
+    };
+    "cli-cursor-2.1.0" = {
+      name = "cli-cursor";
+      packageName = "cli-cursor";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz";
+        sha1 = "b35dac376479facc3e94747d41d0d0f5238ffcb5";
+      };
+    };
+    "cli-cursor-3.1.0" = {
+      name = "cli-cursor";
+      packageName = "cli-cursor";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz";
+        sha512 = "I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==";
+      };
+    };
+    "cli-highlight-2.1.4" = {
+      name = "cli-highlight";
+      packageName = "cli-highlight";
+      version = "2.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.4.tgz";
+        sha512 = "s7Zofobm20qriqDoU9sXptQx0t2R9PEgac92mENNm7xaEe1hn71IIMsXMK+6encA6WRCWWxIGQbipr3q998tlQ==";
+      };
+    };
+    "cli-spinners-2.2.0" = {
+      name = "cli-spinners";
+      packageName = "cli-spinners";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.2.0.tgz";
+        sha512 = "tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ==";
+      };
+    };
+    "cli-table3-0.5.1" = {
+      name = "cli-table3";
+      packageName = "cli-table3";
+      version = "0.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz";
+        sha512 = "7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==";
+      };
+    };
+    "cli-width-2.2.0" = {
+      name = "cli-width";
+      packageName = "cli-width";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz";
+        sha1 = "ff19ede8a9a5e579324147b0c11f0fbcbabed639";
+      };
+    };
+    "clipboardy-2.3.0" = {
+      name = "clipboardy";
+      packageName = "clipboardy";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz";
+        sha512 = "mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==";
+      };
+    };
+    "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==";
+      };
+    };
+    "cliui-6.0.0" = {
+      name = "cliui";
+      packageName = "cliui";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz";
+        sha512 = "t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==";
+      };
+    };
+    "clone-1.0.4" = {
+      name = "clone";
+      packageName = "clone";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz";
+        sha1 = "da309cc263df15994c688ca902179ca3c7cd7c7e";
+      };
+    };
+    "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==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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";
+      };
+    };
+    "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.2" = {
+      name = "color";
+      packageName = "color";
+      version = "3.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color/-/color-3.1.2.tgz";
+        sha512 = "vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==";
+      };
+    };
+    "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.3" = {
+      name = "color-string";
+      packageName = "color-string";
+      version = "1.5.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz";
+        sha512 = "dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==";
+      };
+    };
+    "colorette-1.2.0" = {
+      name = "colorette";
+      packageName = "colorette";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/colorette/-/colorette-1.2.0.tgz";
+        sha512 = "soRSroY+OF/8OdA3PTQXwaDJeMc7TfknKKrxeSCencL2a4+Tx5zhxmmv7hdpCjhKBjehzp8+bwe/T68K0hpIjw==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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==";
+      };
+    };
+    "commander-2.17.1" = {
+      name = "commander";
+      packageName = "commander";
+      version = "2.17.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz";
+        sha512 = "wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==";
+      };
+    };
+    "commander-2.19.0" = {
+      name = "commander";
+      packageName = "commander";
+      version = "2.19.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz";
+        sha512 = "6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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";
+      };
+    };
+    "concat-stream-1.6.2" = {
+      name = "concat-stream";
+      packageName = "concat-stream";
+      version = "1.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz";
+        sha512 = "27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==";
+      };
+    };
+    "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==";
+      };
+    };
+    "console-browserify-1.2.0" = {
+      name = "console-browserify";
+      packageName = "console-browserify";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz";
+        sha512 = "ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==";
+      };
+    };
+    "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";
+      };
+    };
+    "consolidate-0.15.1" = {
+      name = "consolidate";
+      packageName = "consolidate";
+      version = "0.15.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz";
+        sha512 = "DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==";
+      };
+    };
+    "constants-browserify-1.0.0" = {
+      name = "constants-browserify";
+      packageName = "constants-browserify";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz";
+        sha1 = "c20b96d8c617748aaf1c16021760cd27fcb8cb75";
+      };
+    };
+    "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-concurrently-1.0.5" = {
+      name = "copy-concurrently";
+      packageName = "copy-concurrently";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz";
+        sha512 = "f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==";
+      };
+    };
+    "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-5.1.1" = {
+      name = "copy-webpack-plugin";
+      packageName = "copy-webpack-plugin";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.1.1.tgz";
+        sha512 = "P15M5ZC8dyCjQHWwd4Ia/dm0SgVvZJMYeykVIVYXbGyqO4dWB5oyPHp9i7wjwo5LhtlhKbiBCdS2NvM07Wlybg==";
+      };
+    };
+    "core-js-3.6.5" = {
+      name = "core-js";
+      packageName = "core-js";
+      version = "3.6.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz";
+        sha512 = "vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==";
+      };
+    };
+    "core-js-compat-3.6.5" = {
+      name = "core-js-compat";
+      packageName = "core-js-compat";
+      version = "3.6.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz";
+        sha512 = "7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==";
+      };
+    };
+    "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==";
+      };
+    };
+    "create-ecdh-4.0.3" = {
+      name = "create-ecdh";
+      packageName = "create-ecdh";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz";
+        sha512 = "GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==";
+      };
+    };
+    "create-hash-1.2.0" = {
+      name = "create-hash";
+      packageName = "create-hash";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz";
+        sha512 = "z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==";
+      };
+    };
+    "create-hmac-1.1.7" = {
+      name = "create-hmac";
+      packageName = "create-hmac";
+      version = "1.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz";
+        sha512 = "MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==";
+      };
+    };
+    "cross-spawn-3.0.1" = {
+      name = "cross-spawn";
+      packageName = "cross-spawn";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz";
+        sha1 = "1256037ecb9f0c5f79e3d6ef135e30770184b982";
+      };
+    };
+    "cross-spawn-5.1.0" = {
+      name = "cross-spawn";
+      packageName = "cross-spawn";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz";
+        sha1 = "e8bd0efee58fcff6f8f94510a0a554bbfa235449";
+      };
+    };
+    "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-browserify-3.12.0" = {
+      name = "crypto-browserify";
+      packageName = "crypto-browserify";
+      version = "3.12.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz";
+        sha512 = "fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==";
+      };
+    };
+    "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-loader-3.6.0" = {
+      name = "css-loader";
+      packageName = "css-loader";
+      version = "3.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz";
+        sha512 = "M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==";
+      };
+    };
+    "css-select-1.2.0" = {
+      name = "css-select";
+      packageName = "css-select";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz";
+        sha1 = "2b3a110539c5355f1cd8d314623e870b121ec858";
+      };
+    };
+    "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.0.0-alpha.39" = {
+      name = "css-tree";
+      packageName = "css-tree";
+      version = "1.0.0-alpha.39";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz";
+        sha512 = "7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==";
+      };
+    };
+    "css-what-2.1.3" = {
+      name = "css-what";
+      packageName = "css-what";
+      version = "2.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz";
+        sha512 = "a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==";
+      };
+    };
+    "css-what-3.3.0" = {
+      name = "css-what";
+      packageName = "css-what";
+      version = "3.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-what/-/css-what-3.3.0.tgz";
+        sha512 = "pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg==";
+      };
+    };
+    "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.10" = {
+      name = "cssnano";
+      packageName = "cssnano";
+      version = "4.1.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz";
+        sha512 = "5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==";
+      };
+    };
+    "cssnano-preset-default-4.0.7" = {
+      name = "cssnano-preset-default";
+      packageName = "cssnano-preset-default";
+      version = "4.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz";
+        sha512 = "x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==";
+      };
+    };
+    "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.0.3" = {
+      name = "csso";
+      packageName = "csso";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz";
+        sha512 = "NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==";
+      };
+    };
+    "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";
+      };
+    };
+    "cyclist-1.0.1" = {
+      name = "cyclist";
+      packageName = "cyclist";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz";
+        sha1 = "596e9698fd0c80e12038c2b82d6eb1b35b6224d9";
+      };
+    };
+    "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";
+      };
+    };
+    "de-indent-1.0.2" = {
+      name = "de-indent";
+      packageName = "de-indent";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz";
+        sha1 = "b2038e846dc33baa5796128d0804b455b8c1e21d";
+      };
+    };
+    "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.6" = {
+      name = "debug";
+      packageName = "debug";
+      version = "3.2.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz";
+        sha512 = "mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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";
+      };
+    };
+    "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";
+      };
+    };
+    "deepmerge-1.5.2" = {
+      name = "deepmerge";
+      packageName = "deepmerge";
+      version = "1.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz";
+        sha512 = "95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==";
+      };
+    };
+    "deepmerge-4.2.2" = {
+      name = "deepmerge";
+      packageName = "deepmerge";
+      version = "4.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz";
+        sha512 = "FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==";
+      };
+    };
+    "default-gateway-4.2.0" = {
+      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==";
+      };
+    };
+    "default-gateway-5.0.5" = {
+      name = "default-gateway";
+      packageName = "default-gateway";
+      version = "5.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/default-gateway/-/default-gateway-5.0.5.tgz";
+        sha512 = "z2RnruVmj8hVMmAnEJMTIJNijhKCDiGjbLP+BHJFOT7ld3Bo5qcIBpVYDniqhbMIIf+jZDlkP2MkPXiQy/DBLA==";
+      };
+    };
+    "defaults-1.0.3" = {
+      name = "defaults";
+      packageName = "defaults";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz";
+        sha1 = "c656051e9817d9ff08ed881477f3fe4019f3ef7d";
+      };
+    };
+    "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==";
+      };
+    };
+    "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";
+      };
+    };
+    "des.js-1.0.1" = {
+      name = "des.js";
+      packageName = "des.js";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz";
+        sha512 = "Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==";
+      };
+    };
+    "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.4" = {
+      name = "detect-node";
+      packageName = "detect-node";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz";
+        sha512 = "ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==";
+      };
+    };
+    "diff-4.0.2" = {
+      name = "diff";
+      packageName = "diff";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz";
+        sha512 = "58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==";
+      };
+    };
+    "diffie-hellman-5.0.3" = {
+      name = "diffie-hellman";
+      packageName = "diffie-hellman";
+      version = "5.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz";
+        sha512 = "kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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-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==";
+      };
+    };
+    "domain-browser-1.2.0" = {
+      name = "domain-browser";
+      packageName = "domain-browser";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz";
+        sha512 = "jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==";
+      };
+    };
+    "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.0.1" = {
+      name = "domelementtype";
+      packageName = "domelementtype";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz";
+        sha512 = "5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==";
+      };
+    };
+    "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==";
+      };
+    };
+    "domutils-1.5.1" = {
+      name = "domutils";
+      packageName = "domutils";
+      version = "1.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz";
+        sha1 = "dcd8488a26f563d61079e48c9f7b7e32373682cf";
+      };
+    };
+    "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==";
+      };
+    };
+    "dot-object-1.9.0" = {
+      name = "dot-object";
+      packageName = "dot-object";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dot-object/-/dot-object-1.9.0.tgz";
+        sha512 = "7MPN6y7XhAO4vM4eguj5+5HNKLjJYfkVG1ZR1Aput4Q4TR6SYeSjhpVQ77IzJHoSHffKbDxBC+48aCiiRurDPw==";
+      };
+    };
+    "dot-prop-5.2.0" = {
+      name = "dot-prop";
+      packageName = "dot-prop";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz";
+        sha512 = "uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==";
+      };
+    };
+    "dotenv-8.2.0" = {
+      name = "dotenv";
+      packageName = "dotenv";
+      version = "8.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz";
+        sha512 = "8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==";
+      };
+    };
+    "dotenv-expand-5.1.0" = {
+      name = "dotenv-expand";
+      packageName = "dotenv-expand";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz";
+        sha512 = "YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==";
+      };
+    };
+    "duplexer-0.1.1" = {
+      name = "duplexer";
+      packageName = "duplexer";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz";
+        sha1 = "ace6ff808c1ce66b57d1ebf97977acb02334cfc1";
+      };
+    };
+    "duplexify-3.7.1" = {
+      name = "duplexify";
+      packageName = "duplexify";
+      version = "3.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz";
+        sha512 = "07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==";
+      };
+    };
+    "easy-stack-1.0.0" = {
+      name = "easy-stack";
+      packageName = "easy-stack";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/easy-stack/-/easy-stack-1.0.0.tgz";
+        sha1 = "12c91b3085a37f0baa336e9486eac4bf94e3e788";
+      };
+    };
+    "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";
+      };
+    };
+    "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.393" = {
+      name = "electron-to-chromium";
+      packageName = "electron-to-chromium";
+      version = "1.3.393";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.393.tgz";
+        sha512 = "Ko3/VdhZAaMaJBLBFqEJ+M1qMiBI8sJfPY/hSJvDrkB3Do8LJsL9tmXy4w7o9nPXif/jFaZGSlXTQWU8XVsYtg==";
+      };
+    };
+    "electron-to-chromium-1.3.483" = {
+      name = "electron-to-chromium";
+      packageName = "electron-to-chromium";
+      version = "1.3.483";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.483.tgz";
+        sha512 = "+05RF8S9rk8S0G8eBCqBRBaRq7+UN3lDs2DAvnG8SBSgQO3hjy0+qt4CmRk5eiuGbTcaicgXfPmBi31a+BD3lg==";
+      };
+    };
+    "elliptic-6.5.2" = {
+      name = "elliptic";
+      packageName = "elliptic";
+      version = "6.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz";
+        sha512 = "f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==";
+      };
+    };
+    "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-2.1.0" = {
+      name = "emojis-list";
+      packageName = "emojis-list";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz";
+        sha1 = "4daa4d9db00f9819880c79fa457ae5b09a1fd389";
+      };
+    };
+    "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-4.1.1" = {
+      name = "enhanced-resolve";
+      packageName = "enhanced-resolve";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz";
+        sha512 = "98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==";
+      };
+    };
+    "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.0.3" = {
+      name = "entities";
+      packageName = "entities";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz";
+        sha512 = "MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==";
+      };
+    };
+    "errno-0.1.7" = {
+      name = "errno";
+      packageName = "errno";
+      version = "0.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz";
+        sha512 = "MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==";
+      };
+    };
+    "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==";
+      };
+    };
+    "error-stack-parser-2.0.6" = {
+      name = "error-stack-parser";
+      packageName = "error-stack-parser";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz";
+        sha512 = "d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==";
+      };
+    };
+    "es-abstract-1.17.0-next.1" = {
+      name = "es-abstract";
+      packageName = "es-abstract";
+      version = "1.17.0-next.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0-next.1.tgz";
+        sha512 = "7MmGr03N7Rnuid6+wyhD9sHNE2n4tFSwExnU2lQl3lIo2ShXWGePY80zYaoMOmILWv57H0amMjZGHNzzGG70Rw==";
+      };
+    };
+    "es-abstract-1.17.6" = {
+      name = "es-abstract";
+      packageName = "es-abstract";
+      version = "1.17.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz";
+        sha512 = "Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==";
+      };
+    };
+    "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==";
+      };
+    };
+    "escalade-3.0.1" = {
+      name = "escalade";
+      packageName = "escalade";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escalade/-/escalade-3.0.1.tgz";
+        sha512 = "DR6NO3h9niOT+MZs7bjxlj2a1k+POu5RN8CLTPX2+i78bRi9eLe7+0zXgUHMnGXWybYcL61E9hGhPKqedy8tQA==";
+      };
+    };
+    "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-6.8.0" = {
+      name = "eslint";
+      packageName = "eslint";
+      version = "6.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz";
+        sha512 = "K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==";
+      };
+    };
+    "eslint-config-prettier-6.11.0" = {
+      name = "eslint-config-prettier";
+      packageName = "eslint-config-prettier";
+      version = "6.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz";
+        sha512 = "oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA==";
+      };
+    };
+    "eslint-loader-2.2.1" = {
+      name = "eslint-loader";
+      packageName = "eslint-loader";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.2.1.tgz";
+        sha512 = "RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg==";
+      };
+    };
+    "eslint-plugin-prettier-3.1.4" = {
+      name = "eslint-plugin-prettier";
+      packageName = "eslint-plugin-prettier";
+      version = "3.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.4.tgz";
+        sha512 = "jZDa8z76klRqo+TdGDTFJSavwbnWK2ZpqGKNZ+VvweMW516pDUMmQ2koXvxEE4JhzNvTv+radye/bWGBmA6jmg==";
+      };
+    };
+    "eslint-plugin-vue-6.2.2" = {
+      name = "eslint-plugin-vue";
+      packageName = "eslint-plugin-vue";
+      version = "6.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-6.2.2.tgz";
+        sha512 = "Nhc+oVAHm0uz/PkJAWscwIT4ijTrK5fqNqz9QB1D35SbbuMG1uB6Yr5AJpvPSWg+WOw7nYNswerYh0kOk64gqQ==";
+      };
+    };
+    "eslint-scope-4.0.3" = {
+      name = "eslint-scope";
+      packageName = "eslint-scope";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz";
+        sha512 = "p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==";
+      };
+    };
+    "eslint-scope-5.0.0" = {
+      name = "eslint-scope";
+      packageName = "eslint-scope";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz";
+        sha512 = "oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==";
+      };
+    };
+    "eslint-utils-1.4.3" = {
+      name = "eslint-utils";
+      packageName = "eslint-utils";
+      version = "1.4.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz";
+        sha512 = "fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==";
+      };
+    };
+    "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.1.0" = {
+      name = "eslint-visitor-keys";
+      packageName = "eslint-visitor-keys";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz";
+        sha512 = "8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==";
+      };
+    };
+    "esm-3.2.25" = {
+      name = "esm";
+      packageName = "esm";
+      version = "3.2.25";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz";
+        sha512 = "U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==";
+      };
+    };
+    "espree-6.1.2" = {
+      name = "espree";
+      packageName = "espree";
+      version = "6.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/espree/-/espree-6.1.2.tgz";
+        sha512 = "2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA==";
+      };
+    };
+    "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.0.1" = {
+      name = "esquery";
+      packageName = "esquery";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz";
+        sha512 = "SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==";
+      };
+    };
+    "esrecurse-4.2.1" = {
+      name = "esrecurse";
+      packageName = "esrecurse";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz";
+        sha512 = "64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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-pubsub-4.3.0" = {
+      name = "event-pubsub";
+      packageName = "event-pubsub";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/event-pubsub/-/event-pubsub-4.3.0.tgz";
+        sha512 = "z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ==";
+      };
+    };
+    "eventemitter3-4.0.4" = {
+      name = "eventemitter3";
+      packageName = "eventemitter3";
+      version = "4.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz";
+        sha512 = "rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==";
+      };
+    };
+    "events-3.1.0" = {
+      name = "events";
+      packageName = "events";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/events/-/events-3.1.0.tgz";
+        sha512 = "Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==";
+      };
+    };
+    "eventsource-1.0.7" = {
+      name = "eventsource";
+      packageName = "eventsource";
+      version = "1.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz";
+        sha512 = "4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==";
+      };
+    };
+    "evp_bytestokey-1.0.3" = {
+      name = "evp_bytestokey";
+      packageName = "evp_bytestokey";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz";
+        sha512 = "/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==";
+      };
+    };
+    "execa-0.8.0" = {
+      name = "execa";
+      packageName = "execa";
+      version = "0.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz";
+        sha1 = "d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da";
+      };
+    };
+    "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-3.4.0" = {
+      name = "execa";
+      packageName = "execa";
+      version = "3.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz";
+        sha512 = "r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==";
+      };
+    };
+    "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";
+      };
+    };
+    "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-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";
+      };
+    };
+    "external-editor-3.1.0" = {
+      name = "external-editor";
+      packageName = "external-editor";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz";
+        sha512 = "hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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-2.0.1" = {
+      name = "fast-deep-equal";
+      packageName = "fast-deep-equal";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz";
+        sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49";
+      };
+    };
+    "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-diff-1.2.0" = {
+      name = "fast-diff";
+      packageName = "fast-diff";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz";
+        sha512 = "xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==";
+      };
+    };
+    "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-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";
+      };
+    };
+    "faye-websocket-0.10.0" = {
+      name = "faye-websocket";
+      packageName = "faye-websocket";
+      version = "0.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz";
+        sha1 = "4e492f8d04dfb6f89003507f6edbf2d501e7c6f4";
+      };
+    };
+    "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==";
+      };
+    };
+    "figgy-pudding-3.5.2" = {
+      name = "figgy-pudding";
+      packageName = "figgy-pudding";
+      version = "3.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz";
+        sha512 = "0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==";
+      };
+    };
+    "figures-3.1.0" = {
+      name = "figures";
+      packageName = "figures";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz";
+        sha512 = "ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==";
+      };
+    };
+    "file-entry-cache-5.0.1" = {
+      name = "file-entry-cache";
+      packageName = "file-entry-cache";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz";
+        sha512 = "bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==";
+      };
+    };
+    "file-loader-4.3.0" = {
+      name = "file-loader";
+      packageName = "file-loader";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/file-loader/-/file-loader-4.3.0.tgz";
+        sha512 = "aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA==";
+      };
+    };
+    "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==";
+      };
+    };
+    "filesize-3.6.1" = {
+      name = "filesize";
+      packageName = "filesize";
+      version = "3.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz";
+        sha512 = "7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==";
+      };
+    };
+    "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-0.1.1" = {
+      name = "find-cache-dir";
+      packageName = "find-cache-dir";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz";
+        sha1 = "c8defae57c8a52a8a784f9e31c57c742e993a0b9";
+      };
+    };
+    "find-cache-dir-2.1.0" = {
+      name = "find-cache-dir";
+      packageName = "find-cache-dir";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz";
+        sha512 = "Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==";
+      };
+    };
+    "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-1.1.2" = {
+      name = "find-up";
+      packageName = "find-up";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz";
+        sha1 = "6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f";
+      };
+    };
+    "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-5.0.2" = {
+      name = "flat";
+      packageName = "flat";
+      version = "5.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz";
+        sha512 = "b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==";
+      };
+    };
+    "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==";
+      };
+    };
+    "flatted-2.0.1" = {
+      name = "flatted";
+      packageName = "flatted";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz";
+        sha512 = "a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==";
+      };
+    };
+    "flush-write-stream-1.1.1" = {
+      name = "flush-write-stream";
+      packageName = "flush-write-stream";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz";
+        sha512 = "3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==";
+      };
+    };
+    "follow-redirects-1.12.1" = {
+      name = "follow-redirects";
+      packageName = "follow-redirects";
+      version = "1.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.12.1.tgz";
+        sha512 = "tmRv0AVuR7ZyouUHLeNSiO6pqulF7dYa3s19c6t+wz9LD69/uSzdMxJ2S91nTI9U3rt/IldxpzMOFejp6f0hjg==";
+      };
+    };
+    "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";
+      };
+    };
+    "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";
+      };
+    };
+    "fork-ts-checker-webpack-plugin-3.1.1" = {
+      name = "fork-ts-checker-webpack-plugin";
+      packageName = "fork-ts-checker-webpack-plugin";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-3.1.1.tgz";
+        sha512 = "DuVkPNrM12jR41KM2e+N+styka0EgLkTnXmNcXdgOM37vtGeY+oCBK/Jx0hzSeEU6memFCtWb4htrHPMDfwwUQ==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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";
+      };
+    };
+    "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-7.0.1" = {
+      name = "fs-extra";
+      packageName = "fs-extra";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz";
+        sha512 = "YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==";
+      };
+    };
+    "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-write-stream-atomic-1.0.10" = {
+      name = "fs-write-stream-atomic";
+      packageName = "fs-write-stream-atomic";
+      version = "1.0.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz";
+        sha1 = "b47df53493ef911df75731e70a9ded0189db40c9";
+      };
+    };
+    "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.12" = {
+      name = "fsevents";
+      packageName = "fsevents";
+      version = "1.2.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.12.tgz";
+        sha512 = "Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q==";
+      };
+    };
+    "fsevents-2.1.3" = {
+      name = "fsevents";
+      packageName = "fsevents";
+      version = "2.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz";
+        sha512 = "Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==";
+      };
+    };
+    "fstream-1.0.12" = {
+      name = "fstream";
+      packageName = "fstream";
+      version = "1.0.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz";
+        sha512 = "WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==";
+      };
+    };
+    "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";
+      };
+    };
+    "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";
+      };
+    };
+    "gaze-1.1.3" = {
+      name = "gaze";
+      packageName = "gaze";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz";
+        sha512 = "BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==";
+      };
+    };
+    "gensync-1.0.0-beta.1" = {
+      name = "gensync";
+      packageName = "gensync";
+      version = "1.0.0-beta.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz";
+        sha512 = "r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==";
+      };
+    };
+    "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-stdin-4.0.1" = {
+      name = "get-stdin";
+      packageName = "get-stdin";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz";
+        sha1 = "b968c6b0a04384324902e8bf1a5df32579a450fe";
+      };
+    };
+    "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-stream-3.0.0" = {
+      name = "get-stream";
+      packageName = "get-stream";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz";
+        sha1 = "8e943d1358dc37555054ecbe2edb05aa174ede14";
+      };
+    };
+    "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.1.0" = {
+      name = "get-stream";
+      packageName = "get-stream";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz";
+        sha512 = "EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==";
+      };
+    };
+    "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";
+      };
+    };
+    "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-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.0" = {
+      name = "glob-parent";
+      packageName = "glob-parent";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz";
+        sha512 = "qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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";
+      };
+    };
+    "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.3.0" = {
+      name = "globals";
+      packageName = "globals";
+      version = "12.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globals/-/globals-12.3.0.tgz";
+        sha512 = "wAfjdLgFsPZsklLJvOBUBmzYE8/CwhEqSBEMRXA3qxIiNtyqvjYurAtIfDh6chlEPUfmTY3MnZh5Hfh4q0UlIw==";
+      };
+    };
+    "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-7.1.1" = {
+      name = "globby";
+      packageName = "globby";
+      version = "7.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz";
+        sha1 = "fb2ccff9401f8600945dfada97440cca972b8680";
+      };
+    };
+    "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==";
+      };
+    };
+    "globule-1.3.2" = {
+      name = "globule";
+      packageName = "globule";
+      version = "1.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz";
+        sha512 = "7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==";
+      };
+    };
+    "graceful-fs-4.2.3" = {
+      name = "graceful-fs";
+      packageName = "graceful-fs";
+      version = "4.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz";
+        sha512 = "a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==";
+      };
+    };
+    "gzip-size-5.1.1" = {
+      name = "gzip-size";
+      packageName = "gzip-size";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz";
+        sha512 = "FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==";
+      };
+    };
+    "hammerjs-2.0.8" = {
+      name = "hammerjs";
+      packageName = "hammerjs";
+      version = "2.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz";
+        sha1 = "04ef77862cff2bb79d30f7692095930222bf60f1";
+      };
+    };
+    "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==";
+      };
+    };
+    "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.3" = {
+      name = "har-validator";
+      packageName = "har-validator";
+      version = "5.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz";
+        sha512 = "sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==";
+      };
+    };
+    "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-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.1" = {
+      name = "has-symbols";
+      packageName = "has-symbols";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz";
+        sha512 = "PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==";
+      };
+    };
+    "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";
+      };
+    };
+    "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";
+      };
+    };
+    "hash-base-3.0.4" = {
+      name = "hash-base";
+      packageName = "hash-base";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz";
+        sha1 = "5fc8686847ecd73499403319a6b0a3f3f6ae4918";
+      };
+    };
+    "hash-sum-1.0.2" = {
+      name = "hash-sum";
+      packageName = "hash-sum";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz";
+        sha1 = "33b40777754c6432573c120cc3808bbd10d47f04";
+      };
+    };
+    "hash-sum-2.0.0" = {
+      name = "hash-sum";
+      packageName = "hash-sum";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz";
+        sha512 = "WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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==";
+      };
+    };
+    "highlight.js-9.18.1" = {
+      name = "highlight.js";
+      packageName = "highlight.js";
+      version = "9.18.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.1.tgz";
+        sha512 = "OrVKYz70LHsnCgmbXctv/bfuvntIKDz177h0Co37DQ5jamGZLVmoCVMtjMtNZY3X9DrCcKfklHPNeA0uPZhSJg==";
+      };
+    };
+    "hmac-drbg-1.0.1" = {
+      name = "hmac-drbg";
+      packageName = "hmac-drbg";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz";
+        sha1 = "d2745701025a6c775a6c545793ed502fc0c649a1";
+      };
+    };
+    "hoopy-0.1.4" = {
+      name = "hoopy";
+      packageName = "hoopy";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz";
+        sha512 = "HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==";
+      };
+    };
+    "hosted-git-info-2.8.5" = {
+      name = "hosted-git-info";
+      packageName = "hosted-git-info";
+      version = "2.8.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz";
+        sha512 = "kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==";
+      };
+    };
+    "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-comment-regex-1.1.2" = {
+      name = "html-comment-regex";
+      packageName = "html-comment-regex";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz";
+        sha512 = "P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==";
+      };
+    };
+    "html-entities-1.3.1" = {
+      name = "html-entities";
+      packageName = "html-entities";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz";
+        sha512 = "rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==";
+      };
+    };
+    "html-minifier-3.5.21" = {
+      name = "html-minifier";
+      packageName = "html-minifier";
+      version = "3.5.21";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz";
+        sha512 = "LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==";
+      };
+    };
+    "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-webpack-plugin-3.2.0" = {
+      name = "html-webpack-plugin";
+      packageName = "html-webpack-plugin";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz";
+        sha1 = "b01abbd723acaaa7b37b6af4492ebda03d9dd37b";
+      };
+    };
+    "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==";
+      };
+    };
+    "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-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==";
+      };
+    };
+    "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";
+      };
+    };
+    "https-browserify-1.0.0" = {
+      name = "https-browserify";
+      packageName = "https-browserify";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz";
+        sha1 = "ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73";
+      };
+    };
+    "human-signals-1.1.1" = {
+      name = "human-signals";
+      packageName = "human-signals";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz";
+        sha512 = "SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==";
+      };
+    };
+    "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==";
+      };
+    };
+    "icss-utils-4.1.1" = {
+      name = "icss-utils";
+      packageName = "icss-utils";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz";
+        sha512 = "4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==";
+      };
+    };
+    "ieee754-1.1.13" = {
+      name = "ieee754";
+      packageName = "ieee754";
+      version = "1.1.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz";
+        sha512 = "4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==";
+      };
+    };
+    "iferr-0.1.5" = {
+      name = "iferr";
+      packageName = "iferr";
+      version = "0.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz";
+        sha1 = "c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501";
+      };
+    };
+    "ignore-3.3.10" = {
+      name = "ignore";
+      packageName = "ignore";
+      version = "3.3.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz";
+        sha512 = "Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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.2.1" = {
+      name = "import-fresh";
+      packageName = "import-fresh";
+      version = "3.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz";
+        sha512 = "6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==";
+      };
+    };
+    "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-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==";
+      };
+    };
+    "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";
+      };
+    };
+    "in-publish-2.0.1" = {
+      name = "in-publish";
+      packageName = "in-publish";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz";
+        sha512 = "oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==";
+      };
+    };
+    "indent-string-2.1.0" = {
+      name = "indent-string";
+      packageName = "indent-string";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz";
+        sha1 = "8e2d48348742121b4a8218b7a137e9a52049dc80";
+      };
+    };
+    "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.1" = {
+      name = "inherits";
+      packageName = "inherits";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz";
+        sha1 = "b17d08d326b4423e568eff719f91b0b1cbdf69f1";
+      };
+    };
+    "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==";
+      };
+    };
+    "inquirer-7.0.1" = {
+      name = "inquirer";
+      packageName = "inquirer";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inquirer/-/inquirer-7.0.1.tgz";
+        sha512 = "V1FFQ3TIO15det8PijPLFR9M9baSlnRs9nL7zWu1MNVA2T9YVl9ZbrHJhYs7e9X8jeMZ3lr2JH/rdHFgNCBdYw==";
+      };
+    };
+    "inquirer-7.2.0" = {
+      name = "inquirer";
+      packageName = "inquirer";
+      version = "7.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inquirer/-/inquirer-7.2.0.tgz";
+        sha512 = "E0c4rPwr9ByePfNlTIB8z51kK1s2n6jrHuJeEHENl/sbq2G/S1auvibgEwNR4uSyiU+PiYHqSwsgGiXjG8p5ZQ==";
+      };
+    };
+    "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==";
+      };
+    };
+    "invariant-2.2.4" = {
+      name = "invariant";
+      packageName = "invariant";
+      version = "2.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz";
+        sha512 = "phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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-arguments-1.0.4" = {
+      name = "is-arguments";
+      packageName = "is-arguments";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz";
+        sha512 = "xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==";
+      };
+    };
+    "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-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-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-callable-1.1.5" = {
+      name = "is-callable";
+      packageName = "is-callable";
+      version = "1.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz";
+        sha512 = "ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==";
+      };
+    };
+    "is-callable-1.2.0" = {
+      name = "is-callable";
+      packageName = "is-callable";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz";
+        sha512 = "pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==";
+      };
+    };
+    "is-ci-1.2.1" = {
+      name = "is-ci";
+      packageName = "is-ci";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz";
+        sha512 = "s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==";
+      };
+    };
+    "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-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-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-docker-2.0.0" = {
+      name = "is-docker";
+      packageName = "is-docker";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz";
+        sha512 = "pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ==";
+      };
+    };
+    "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-finite-1.1.0" = {
+      name = "is-finite";
+      packageName = "is-finite";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz";
+        sha512 = "cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==";
+      };
+    };
+    "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-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-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-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-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-promise-2.1.0" = {
+      name = "is-promise";
+      packageName = "is-promise";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz";
+        sha1 = "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa";
+      };
+    };
+    "is-regex-1.0.5" = {
+      name = "is-regex";
+      packageName = "is-regex";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz";
+        sha512 = "vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==";
+      };
+    };
+    "is-regex-1.1.0" = {
+      name = "is-regex";
+      packageName = "is-regex";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz";
+        sha512 = "iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==";
+      };
+    };
+    "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-svg-3.0.0" = {
+      name = "is-svg";
+      packageName = "is-svg";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz";
+        sha512 = "gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==";
+      };
+    };
+    "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-utf8-0.2.1" = {
+      name = "is-utf8";
+      packageName = "is-utf8";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz";
+        sha1 = "4b0da1442104d1b336340e80797e865cf39f7d72";
+      };
+    };
+    "is-valid-glob-1.0.0" = {
+      name = "is-valid-glob";
+      packageName = "is-valid-glob";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz";
+        sha1 = "29bf3eff701be2d4d315dbacc39bc39fe8f601aa";
+      };
+    };
+    "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-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";
+      };
+    };
+    "is-wsl-2.2.0" = {
+      name = "is-wsl";
+      packageName = "is-wsl";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz";
+        sha512 = "fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==";
+      };
+    };
+    "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";
+      };
+    };
+    "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";
+      };
+    };
+    "javascript-stringify-2.0.1" = {
+      name = "javascript-stringify";
+      packageName = "javascript-stringify";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.0.1.tgz";
+        sha512 = "yV+gqbd5vaOYjqlbk16EG89xB5udgjqQF3C5FAORDg4f/IS1Yc5ERCv5e/57yBcfJYw05V5JyIXabhwb75Xxow==";
+      };
+    };
+    "jest-worker-25.5.0" = {
+      name = "jest-worker";
+      packageName = "jest-worker";
+      version = "25.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz";
+        sha512 = "/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==";
+      };
+    };
+    "js-base64-2.6.2" = {
+      name = "js-base64";
+      packageName = "js-base64";
+      version = "2.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-base64/-/js-base64-2.6.2.tgz";
+        sha512 = "1hgLrLIrmCgZG+ID3VoLNLOSwjGnoZa8tyrUdEteMeIzsT6PH7PMLyUvbDwzNE56P3PNxyvuIOx4Uh2E5rzQIw==";
+      };
+    };
+    "js-message-1.0.5" = {
+      name = "js-message";
+      packageName = "js-message";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-message/-/js-message-1.0.5.tgz";
+        sha1 = "2300d24b1af08e89dd095bc1a4c9c9cfcb892d15";
+      };
+    };
+    "js-queue-2.0.0" = {
+      name = "js-queue";
+      packageName = "js-queue";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-queue/-/js-queue-2.0.0.tgz";
+        sha1 = "362213cf860f468f0125fc6c96abc1742531f948";
+      };
+    };
+    "js-tokens-3.0.2" = {
+      name = "js-tokens";
+      packageName = "js-tokens";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz";
+        sha1 = "9866df395102130e38f7f996bceb65443209c25b";
+      };
+    };
+    "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==";
+      };
+    };
+    "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";
+      };
+    };
+    "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-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-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";
+      };
+    };
+    "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";
+      };
+    };
+    "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-0.5.1" = {
+      name = "json5";
+      packageName = "json5";
+      version = "0.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz";
+        sha1 = "1eade7acc012034ad84e2396767ead9fa5495821";
+      };
+    };
+    "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.1.3" = {
+      name = "json5";
+      packageName = "json5";
+      version = "2.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz";
+        sha512 = "KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==";
+      };
+    };
+    "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";
+      };
+    };
+    "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";
+      };
+    };
+    "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==";
+      };
+    };
+    "launch-editor-2.2.1" = {
+      name = "launch-editor";
+      packageName = "launch-editor";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/launch-editor/-/launch-editor-2.2.1.tgz";
+        sha512 = "On+V7K2uZK6wK7x691ycSUbLD/FyKKelArkbaAMSSJU8JmqmhwN2+mnJDNINuJWSrh2L0kDk+ZQtbC/gOWUwLw==";
+      };
+    };
+    "launch-editor-middleware-2.2.1" = {
+      name = "launch-editor-middleware";
+      packageName = "launch-editor-middleware";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/launch-editor-middleware/-/launch-editor-middleware-2.2.1.tgz";
+        sha512 = "s0UO2/gEGiCgei3/2UN3SMuUj1phjQN8lcpnvgLSz26fAzNWPQ6Nf/kF5IFClnfU2ehp6LrmKdMU/beveO+2jg==";
+      };
+    };
+    "leven-3.1.0" = {
+      name = "leven";
+      packageName = "leven";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz";
+        sha512 = "qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==";
+      };
+    };
+    "levenary-1.1.1" = {
+      name = "levenary";
+      packageName = "levenary";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz";
+        sha512 = "mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==";
+      };
+    };
+    "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";
+      };
+    };
+    "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-1.1.0" = {
+      name = "load-json-file";
+      packageName = "load-json-file";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz";
+        sha1 = "956905708d58b4bab4c2261b04f59f31c99374c0";
+      };
+    };
+    "loader-fs-cache-1.0.3" = {
+      name = "loader-fs-cache";
+      packageName = "loader-fs-cache";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz";
+        sha512 = "ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA==";
+      };
+    };
+    "loader-runner-2.4.0" = {
+      name = "loader-runner";
+      packageName = "loader-runner";
+      version = "2.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz";
+        sha512 = "Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==";
+      };
+    };
+    "loader-utils-0.2.17" = {
+      name = "loader-utils";
+      packageName = "loader-utils";
+      version = "0.2.17";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz";
+        sha1 = "f86e6374d43205a6e6c60e9196f17c0299bfb348";
+      };
+    };
+    "loader-utils-1.2.3" = {
+      name = "loader-utils";
+      packageName = "loader-utils";
+      version = "1.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz";
+        sha512 = "fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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.15" = {
+      name = "lodash";
+      packageName = "lodash";
+      version = "4.17.15";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz";
+        sha512 = "8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==";
+      };
+    };
+    "lodash.defaultsdeep-4.6.1" = {
+      name = "lodash.defaultsdeep";
+      packageName = "lodash.defaultsdeep";
+      version = "4.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz";
+        sha512 = "3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==";
+      };
+    };
+    "lodash.kebabcase-4.1.1" = {
+      name = "lodash.kebabcase";
+      packageName = "lodash.kebabcase";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz";
+        sha1 = "8489b1cb0d29ff88195cceca448ff6d6cc295c36";
+      };
+    };
+    "lodash.mapvalues-4.6.0" = {
+      name = "lodash.mapvalues";
+      packageName = "lodash.mapvalues";
+      version = "4.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz";
+        sha1 = "1bafa5005de9dd6f4f26668c30ca37230cc9689c";
+      };
+    };
+    "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.transform-4.6.0" = {
+      name = "lodash.transform";
+      packageName = "lodash.transform";
+      version = "4.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.transform/-/lodash.transform-4.6.0.tgz";
+        sha1 = "12306422f63324aed8483d3f38332b5f670547a0";
+      };
+    };
+    "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-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==";
+      };
+    };
+    "loglevel-1.6.8" = {
+      name = "loglevel";
+      packageName = "loglevel";
+      version = "1.6.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz";
+        sha512 = "bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA==";
+      };
+    };
+    "loose-envify-1.4.0" = {
+      name = "loose-envify";
+      packageName = "loose-envify";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz";
+        sha512 = "lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==";
+      };
+    };
+    "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-1.1.4" = {
+      name = "lower-case";
+      packageName = "lower-case";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz";
+        sha1 = "9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac";
+      };
+    };
+    "lru-cache-4.1.5" = {
+      name = "lru-cache";
+      packageName = "lru-cache";
+      version = "4.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz";
+        sha512 = "sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==";
+      };
+    };
+    "lru-cache-5.1.1" = {
+      name = "lru-cache";
+      packageName = "lru-cache";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz";
+        sha512 = "KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==";
+      };
+    };
+    "make-dir-2.1.0" = {
+      name = "make-dir";
+      packageName = "make-dir";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz";
+        sha512 = "LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==";
+      };
+    };
+    "make-dir-3.0.2" = {
+      name = "make-dir";
+      packageName = "make-dir";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz";
+        sha512 = "rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==";
+      };
+    };
+    "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-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";
+      };
+    };
+    "marked-1.1.1" = {
+      name = "marked";
+      packageName = "marked";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/marked/-/marked-1.1.1.tgz";
+        sha512 = "mJzT8D2yPxoPh7h0UXkB+dBj4FykPJ2OIfxAWeIHrvoHDkFxukV/29QxoFQoPM6RLEwhIFdJpmKBlqVM3s2ZIw==";
+      };
+    };
+    "md5.js-1.3.5" = {
+      name = "md5.js";
+      packageName = "md5.js";
+      version = "1.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz";
+        sha512 = "xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==";
+      };
+    };
+    "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==";
+      };
+    };
+    "mdn-data-2.0.6" = {
+      name = "mdn-data";
+      packageName = "mdn-data";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz";
+        sha512 = "rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==";
+      };
+    };
+    "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";
+      };
+    };
+    "memory-fs-0.5.0" = {
+      name = "memory-fs";
+      packageName = "memory-fs";
+      version = "0.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz";
+        sha512 = "jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==";
+      };
+    };
+    "meow-3.7.0" = {
+      name = "meow";
+      packageName = "meow";
+      version = "3.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz";
+        sha1 = "72cb668b425228290abbfa856892587308a801fb";
+      };
+    };
+    "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-source-map-1.1.0" = {
+      name = "merge-source-map";
+      packageName = "merge-source-map";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz";
+        sha512 = "Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==";
+      };
+    };
+    "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.3.0" = {
+      name = "merge2";
+      packageName = "merge2";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz";
+        sha512 = "2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==";
+      };
+    };
+    "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";
+      };
+    };
+    "microevent.ts-0.1.1" = {
+      name = "microevent.ts";
+      packageName = "microevent.ts";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz";
+        sha512 = "jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==";
+      };
+    };
+    "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.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==";
+      };
+    };
+    "miller-rabin-4.0.1" = {
+      name = "miller-rabin";
+      packageName = "miller-rabin";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz";
+        sha512 = "115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==";
+      };
+    };
+    "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.4.6" = {
+      name = "mime";
+      packageName = "mime";
+      version = "2.4.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz";
+        sha512 = "RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==";
+      };
+    };
+    "mime-db-1.42.0" = {
+      name = "mime-db";
+      packageName = "mime-db";
+      version = "1.42.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz";
+        sha512 = "UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ==";
+      };
+    };
+    "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.25" = {
+      name = "mime-types";
+      packageName = "mime-types";
+      version = "2.1.25";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz";
+        sha512 = "5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==";
+      };
+    };
+    "mimic-fn-1.2.0" = {
+      name = "mimic-fn";
+      packageName = "mimic-fn";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz";
+        sha512 = "jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==";
+      };
+    };
+    "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==";
+      };
+    };
+    "mini-css-extract-plugin-0.9.0" = {
+      name = "mini-css-extract-plugin";
+      packageName = "mini-css-extract-plugin";
+      version = "0.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz";
+        sha512 = "lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A==";
+      };
+    };
+    "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==";
+      };
+    };
+    "minimalistic-crypto-utils-1.0.1" = {
+      name = "minimalistic-crypto-utils";
+      packageName = "minimalistic-crypto-utils";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz";
+        sha1 = "f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a";
+      };
+    };
+    "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-0.0.8" = {
+      name = "minimist";
+      packageName = "minimist";
+      version = "0.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz";
+        sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
+      };
+    };
+    "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-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.3" = {
+      name = "minipass-pipeline";
+      packageName = "minipass-pipeline";
+      version = "1.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.3.tgz";
+        sha512 = "cFOknTvng5vqnwOpDsZTWhNll6Jf8o2x+/diplafmxpuIymAjzoOolZG0VvQf3V2HgqzJNhnuKHYp2BqDgz8IQ==";
+      };
+    };
+    "mississippi-3.0.0" = {
+      name = "mississippi";
+      packageName = "mississippi";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz";
+        sha512 = "x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==";
+      };
+    };
+    "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.1" = {
+      name = "mkdirp";
+      packageName = "mkdirp";
+      version = "0.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz";
+        sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
+      };
+    };
+    "mkdirp-0.5.4" = {
+      name = "mkdirp";
+      packageName = "mkdirp";
+      version = "0.5.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz";
+        sha512 = "iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==";
+      };
+    };
+    "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==";
+      };
+    };
+    "move-concurrently-1.0.1" = {
+      name = "move-concurrently";
+      packageName = "move-concurrently";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz";
+        sha1 = "be2c005fda32e0b29af1f05d7c4b33214c701f92";
+      };
+    };
+    "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";
+      };
+    };
+    "mute-stream-0.0.8" = {
+      name = "mute-stream";
+      packageName = "mute-stream";
+      version = "0.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz";
+        sha512 = "nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==";
+      };
+    };
+    "mz-2.7.0" = {
+      name = "mz";
+      packageName = "mz";
+      version = "2.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz";
+        sha512 = "z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==";
+      };
+    };
+    "nan-2.14.0" = {
+      name = "nan";
+      packageName = "nan";
+      version = "2.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz";
+        sha512 = "INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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.1" = {
+      name = "neo-async";
+      packageName = "neo-async";
+      version = "2.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz";
+        sha512 = "iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==";
+      };
+    };
+    "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-2.3.2" = {
+      name = "no-case";
+      packageName = "no-case";
+      version = "2.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz";
+        sha512 = "rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==";
+      };
+    };
+    "node-forge-0.9.0" = {
+      name = "node-forge";
+      packageName = "node-forge";
+      version = "0.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz";
+        sha512 = "7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==";
+      };
+    };
+    "node-gyp-3.8.0" = {
+      name = "node-gyp";
+      packageName = "node-gyp";
+      version = "3.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz";
+        sha512 = "3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==";
+      };
+    };
+    "node-ipc-9.1.1" = {
+      name = "node-ipc";
+      packageName = "node-ipc";
+      version = "9.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-ipc/-/node-ipc-9.1.1.tgz";
+        sha512 = "FAyICv0sIRJxVp3GW5fzgaf9jwwRQxAKDJlmNFUL5hOy+W4X/I5AypyHoq0DXXbo9o/gt79gj++4cMr4jVWE/w==";
+      };
+    };
+    "node-libs-browser-2.2.1" = {
+      name = "node-libs-browser";
+      packageName = "node-libs-browser";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz";
+        sha512 = "h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==";
+      };
+    };
+    "node-releases-1.1.53" = {
+      name = "node-releases";
+      packageName = "node-releases";
+      version = "1.1.53";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.53.tgz";
+        sha512 = "wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ==";
+      };
+    };
+    "node-releases-1.1.58" = {
+      name = "node-releases";
+      packageName = "node-releases";
+      version = "1.1.58";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.58.tgz";
+        sha512 = "NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg==";
+      };
+    };
+    "node-sass-4.14.1" = {
+      name = "node-sass";
+      packageName = "node-sass";
+      version = "4.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz";
+        sha512 = "sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==";
+      };
+    };
+    "nopt-3.0.6" = {
+      name = "nopt";
+      packageName = "nopt";
+      version = "3.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz";
+        sha1 = "c6465dbf08abcd4db359317f79ac68a646b28ff9";
+      };
+    };
+    "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-path-1.0.0" = {
+      name = "normalize-path";
+      packageName = "normalize-path";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-path/-/normalize-path-1.0.0.tgz";
+        sha1 = "32d0e472f91ff345701c15a8311018d3b0a90379";
+      };
+    };
+    "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-url-1.9.1" = {
+      name = "normalize-url";
+      packageName = "normalize-url";
+      version = "1.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz";
+        sha1 = "2cc0d66b31ea23036458436e3620d85954c66c3c";
+      };
+    };
+    "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==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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";
+      };
+    };
+    "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";
+      };
+    };
+    "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==";
+      };
+    };
+    "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-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==";
+      };
+    };
+    "object-inspect-1.7.0" = {
+      name = "object-inspect";
+      packageName = "object-inspect";
+      version = "1.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz";
+        sha512 = "a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==";
+      };
+    };
+    "object-is-1.1.2" = {
+      name = "object-is";
+      packageName = "object-is";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz";
+        sha512 = "5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==";
+      };
+    };
+    "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.0" = {
+      name = "object.assign";
+      packageName = "object.assign";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz";
+        sha512 = "exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==";
+      };
+    };
+    "object.getownpropertydescriptors-2.1.0" = {
+      name = "object.getownpropertydescriptors";
+      packageName = "object.getownpropertydescriptors";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz";
+        sha512 = "Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==";
+      };
+    };
+    "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.1" = {
+      name = "object.values";
+      packageName = "object.values";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz";
+        sha512 = "WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==";
+      };
+    };
+    "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-2.0.1" = {
+      name = "onetime";
+      packageName = "onetime";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz";
+        sha1 = "067428230fd67443b2794b22bba528b6867962d4";
+      };
+    };
+    "onetime-5.1.0" = {
+      name = "onetime";
+      packageName = "onetime";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz";
+        sha512 = "5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==";
+      };
+    };
+    "open-6.4.0" = {
+      name = "open";
+      packageName = "open";
+      version = "6.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/open/-/open-6.4.0.tgz";
+        sha512 = "IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==";
+      };
+    };
+    "opener-1.5.1" = {
+      name = "opener";
+      packageName = "opener";
+      version = "1.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz";
+        sha512 = "goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==";
+      };
+    };
+    "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.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==";
+      };
+    };
+    "ora-3.4.0" = {
+      name = "ora";
+      packageName = "ora";
+      version = "3.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz";
+        sha512 = "eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==";
+      };
+    };
+    "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==";
+      };
+    };
+    "os-browserify-0.3.0" = {
+      name = "os-browserify";
+      packageName = "os-browserify";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz";
+        sha1 = "854373c7f5c2315914fc9bfc6bd8238fdda1ec27";
+      };
+    };
+    "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-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-finally-2.0.1" = {
+      name = "p-finally";
+      packageName = "p-finally";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz";
+        sha512 = "vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==";
+      };
+    };
+    "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.2.1" = {
+      name = "p-limit";
+      packageName = "p-limit";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz";
+        sha512 = "85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==";
+      };
+    };
+    "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-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-3.0.0" = {
+      name = "p-map";
+      packageName = "p-map";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz";
+        sha512 = "d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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==";
+      };
+    };
+    "parallel-transform-1.2.0" = {
+      name = "parallel-transform";
+      packageName = "parallel-transform";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz";
+        sha512 = "P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==";
+      };
+    };
+    "param-case-2.1.1" = {
+      name = "param-case";
+      packageName = "param-case";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz";
+        sha1 = "df94fd8cf6531ecf75e6bef9a0858fbc72be2247";
+      };
+    };
+    "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-asn1-5.1.5" = {
+      name = "parse-asn1";
+      packageName = "parse-asn1";
+      version = "5.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz";
+        sha512 = "jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==";
+      };
+    };
+    "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.0.0" = {
+      name = "parse-json";
+      packageName = "parse-json";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz";
+        sha512 = "OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==";
+      };
+    };
+    "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-htmlparser2-tree-adapter-5.1.1" = {
+      name = "parse5-htmlparser2-tree-adapter";
+      packageName = "parse5-htmlparser2-tree-adapter";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-5.1.1.tgz";
+        sha512 = "CF+TKjXqoqyDwHqBhFQ+3l5t83xYi6fVT1tQNg+Ye0JRLnTxWvIroCjEp1A0k4lneHNBGnICUf0cfYVYGEazqw==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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-browserify-0.0.1" = {
+      name = "path-browserify";
+      packageName = "path-browserify";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz";
+        sha512 = "BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==";
+      };
+    };
+    "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-2.1.0" = {
+      name = "path-exists";
+      packageName = "path-exists";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz";
+        sha1 = "0feb6c64f0fc518d9a754dd5efb62c7022761f4b";
+      };
+    };
+    "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-type-1.1.0" = {
+      name = "path-type";
+      packageName = "path-type";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz";
+        sha1 = "59c44f7ee491da704da415da5a4070ba4f8fe441";
+      };
+    };
+    "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==";
+      };
+    };
+    "pbkdf2-3.0.17" = {
+      name = "pbkdf2";
+      packageName = "pbkdf2";
+      version = "3.0.17";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz";
+        sha512 = "U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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-1.0.0" = {
+      name = "pkg-dir";
+      packageName = "pkg-dir";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz";
+        sha1 = "7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4";
+      };
+    };
+    "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==";
+      };
+    };
+    "pkg-up-2.0.0" = {
+      name = "pkg-up";
+      packageName = "pkg-up";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz";
+        sha1 = "c819ac728059a461cab1c3889a2be3c49a004d7f";
+      };
+    };
+    "pnp-webpack-plugin-1.6.4" = {
+      name = "pnp-webpack-plugin";
+      packageName = "pnp-webpack-plugin";
+      version = "1.6.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz";
+        sha512 = "7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==";
+      };
+    };
+    "portfinder-1.0.26" = {
+      name = "portfinder";
+      packageName = "portfinder";
+      version = "1.0.26";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/portfinder/-/portfinder-1.0.26.tgz";
+        sha512 = "Xi7mKxJHHMI3rIUrnm/jjUgwhbYMkp/XKEcZX3aG4BrumLpq3nmoQMX+ClYnDZnZ/New7IatC1no5RX0zo1vXQ==";
+      };
+    };
+    "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-7.0.32" = {
+      name = "postcss";
+      packageName = "postcss";
+      version = "7.0.32";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz";
+        sha512 = "03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==";
+      };
+    };
+    "postcss-calc-7.0.2" = {
+      name = "postcss-calc";
+      packageName = "postcss-calc";
+      version = "7.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.2.tgz";
+        sha512 = "rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ==";
+      };
+    };
+    "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-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-load-config-2.1.0" = {
+      name = "postcss-load-config";
+      packageName = "postcss-load-config";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz";
+        sha512 = "4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==";
+      };
+    };
+    "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-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-2.0.0" = {
+      name = "postcss-modules-extract-imports";
+      packageName = "postcss-modules-extract-imports";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz";
+        sha512 = "LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==";
+      };
+    };
+    "postcss-modules-local-by-default-3.0.2" = {
+      name = "postcss-modules-local-by-default";
+      packageName = "postcss-modules-local-by-default";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz";
+        sha512 = "jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ==";
+      };
+    };
+    "postcss-modules-scope-2.2.0" = {
+      name = "postcss-modules-scope";
+      packageName = "postcss-modules-scope";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz";
+        sha512 = "YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==";
+      };
+    };
+    "postcss-modules-values-3.0.0" = {
+      name = "postcss-modules-values";
+      packageName = "postcss-modules-values";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz";
+        sha512 = "1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==";
+      };
+    };
+    "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-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-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-6.0.2" = {
+      name = "postcss-selector-parser";
+      packageName = "postcss-selector-parser";
+      version = "6.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz";
+        sha512 = "36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==";
+      };
+    };
+    "postcss-svgo-4.0.2" = {
+      name = "postcss-svgo";
+      packageName = "postcss-svgo";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz";
+        sha512 = "C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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";
+      };
+    };
+    "prepend-http-1.0.4" = {
+      name = "prepend-http";
+      packageName = "prepend-http";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz";
+        sha1 = "d4f4562b0ce3696e41ac52d0e002e57a635dc6dc";
+      };
+    };
+    "prettier-1.19.1" = {
+      name = "prettier";
+      packageName = "prettier";
+      version = "1.19.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz";
+        sha512 = "s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==";
+      };
+    };
+    "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==";
+      };
+    };
+    "pretty-error-2.1.1" = {
+      name = "pretty-error";
+      packageName = "pretty-error";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz";
+        sha1 = "5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3";
+      };
+    };
+    "private-0.1.8" = {
+      name = "private";
+      packageName = "private";
+      version = "0.1.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/private/-/private-0.1.8.tgz";
+        sha512 = "VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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";
+      };
+    };
+    "pseudomap-1.0.2" = {
+      name = "pseudomap";
+      packageName = "pseudomap";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz";
+        sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3";
+      };
+    };
+    "psl-1.6.0" = {
+      name = "psl";
+      packageName = "psl";
+      version = "1.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/psl/-/psl-1.6.0.tgz";
+        sha512 = "SYKKmVel98NCOYXpkwUqZqh0ahZeeKfmisiLIcEZdsb+WbLv02g/dI5BUmZnIyOe7RzZtLax81nnb2HbvC2tzA==";
+      };
+    };
+    "public-encrypt-4.0.3" = {
+      name = "public-encrypt";
+      packageName = "public-encrypt";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz";
+        sha512 = "zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==";
+      };
+    };
+    "pump-2.0.1" = {
+      name = "pump";
+      packageName = "pump";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz";
+        sha512 = "ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==";
+      };
+    };
+    "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==";
+      };
+    };
+    "pumpify-1.5.1" = {
+      name = "pumpify";
+      packageName = "pumpify";
+      version = "1.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz";
+        sha512 = "oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==";
+      };
+    };
+    "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-1.4.1" = {
+      name = "punycode";
+      packageName = "punycode";
+      version = "1.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz";
+        sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e";
+      };
+    };
+    "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.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==";
+      };
+    };
+    "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==";
+      };
+    };
+    "query-string-4.3.4" = {
+      name = "query-string";
+      packageName = "query-string";
+      version = "4.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz";
+        sha1 = "bbb693b9ca915c232515b228b1a02b609043dbeb";
+      };
+    };
+    "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";
+      };
+    };
+    "querystring-es3-0.2.1" = {
+      name = "querystring-es3";
+      packageName = "querystring-es3";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz";
+        sha1 = "9ec61f79049875707d69414596fd907a4d711e73";
+      };
+    };
+    "querystringify-2.1.1" = {
+      name = "querystringify";
+      packageName = "querystringify";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz";
+        sha512 = "w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==";
+      };
+    };
+    "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==";
+      };
+    };
+    "randomfill-1.0.4" = {
+      name = "randomfill";
+      packageName = "randomfill";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz";
+        sha512 = "87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==";
+      };
+    };
+    "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-pkg-1.1.0" = {
+      name = "read-pkg";
+      packageName = "read-pkg";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz";
+        sha1 = "f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28";
+      };
+    };
+    "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-1.0.1" = {
+      name = "read-pkg-up";
+      packageName = "read-pkg-up";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz";
+        sha1 = "9d63c13276c065918d57f002a57f40a1b643fb02";
+      };
+    };
+    "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-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.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==";
+      };
+    };
+    "redent-1.0.0" = {
+      name = "redent";
+      packageName = "redent";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz";
+        sha1 = "cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde";
+      };
+    };
+    "regenerate-1.4.1" = {
+      name = "regenerate";
+      packageName = "regenerate";
+      version = "1.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz";
+        sha512 = "j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==";
+      };
+    };
+    "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.13.5" = {
+      name = "regenerator-runtime";
+      packageName = "regenerator-runtime";
+      version = "0.13.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz";
+        sha512 = "ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==";
+      };
+    };
+    "regenerator-transform-0.14.4" = {
+      name = "regenerator-transform";
+      packageName = "regenerator-transform";
+      version = "0.14.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz";
+        sha512 = "EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw==";
+      };
+    };
+    "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.0" = {
+      name = "regexp.prototype.flags";
+      packageName = "regexp.prototype.flags";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz";
+        sha512 = "2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==";
+      };
+    };
+    "regexpp-2.0.1" = {
+      name = "regexpp";
+      packageName = "regexpp";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz";
+        sha512 = "lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==";
+      };
+    };
+    "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.0" = {
+      name = "regexpu-core";
+      packageName = "regexpu-core";
+      version = "4.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz";
+        sha512 = "TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==";
+      };
+    };
+    "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.4" = {
+      name = "regjsparser";
+      packageName = "regjsparser";
+      version = "0.6.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz";
+        sha512 = "64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==";
+      };
+    };
+    "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";
+      };
+    };
+    "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.3" = {
+      name = "renderkid";
+      packageName = "renderkid";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz";
+        sha512 = "z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==";
+      };
+    };
+    "repeat-element-1.1.3" = {
+      name = "repeat-element";
+      packageName = "repeat-element";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz";
+        sha512 = "ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==";
+      };
+    };
+    "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";
+      };
+    };
+    "repeating-2.0.1" = {
+      name = "repeating";
+      packageName = "repeating";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz";
+        sha1 = "5214c53a926d3552707527fbab415dbc08d06dda";
+      };
+    };
+    "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==";
+      };
+    };
+    "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-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.14.1" = {
+      name = "resolve";
+      packageName = "resolve";
+      version = "1.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve/-/resolve-1.14.1.tgz";
+        sha512 = "fn5Wobh4cxbLzuHaE+nphztHy43/b++4M6SsGFC2gB8uYwf0C8LcarfCz1un7UTW8OFQg9iNjZ4xpcFVGebDPg==";
+      };
+    };
+    "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-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-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";
+      };
+    };
+    "restore-cursor-2.0.0" = {
+      name = "restore-cursor";
+      packageName = "restore-cursor";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz";
+        sha1 = "9f7ee287f82fd326d4fd162923d62129eee0dfaf";
+      };
+    };
+    "restore-cursor-3.1.0" = {
+      name = "restore-cursor";
+      packageName = "restore-cursor";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz";
+        sha512 = "l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==";
+      };
+    };
+    "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";
+      };
+    };
+    "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==";
+      };
+    };
+    "ripemd160-2.0.2" = {
+      name = "ripemd160";
+      packageName = "ripemd160";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz";
+        sha512 = "ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==";
+      };
+    };
+    "run-async-2.3.0" = {
+      name = "run-async";
+      packageName = "run-async";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz";
+        sha1 = "0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0";
+      };
+    };
+    "run-async-2.4.1" = {
+      name = "run-async";
+      packageName = "run-async";
+      version = "2.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz";
+        sha512 = "tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==";
+      };
+    };
+    "run-queue-1.0.3" = {
+      name = "run-queue";
+      packageName = "run-queue";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz";
+        sha1 = "e848396f057d223f24386924618e25694161ec47";
+      };
+    };
+    "rxjs-6.5.3" = {
+      name = "rxjs";
+      packageName = "rxjs";
+      version = "6.5.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz";
+        sha512 = "wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==";
+      };
+    };
+    "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-graph-2.2.5" = {
+      name = "sass-graph";
+      packageName = "sass-graph";
+      version = "2.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz";
+        sha512 = "VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==";
+      };
+    };
+    "sass-loader-8.0.2" = {
+      name = "sass-loader";
+      packageName = "sass-loader";
+      version = "8.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.2.tgz";
+        sha512 = "7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ==";
+      };
+    };
+    "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.6.1" = {
+      name = "schema-utils";
+      packageName = "schema-utils";
+      version = "2.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.1.tgz";
+        sha512 = "0WXHDs1VDJyo+Zqs9TKLKyD/h7yDpHUhEFsM2CzkICFdoX1av+GBq/J2xRTFfsQO5kBfhZzANf2VcIm84jqDbg==";
+      };
+    };
+    "schema-utils-2.7.0" = {
+      name = "schema-utils";
+      packageName = "schema-utils";
+      version = "2.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz";
+        sha512 = "0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==";
+      };
+    };
+    "scss-tokenizer-0.2.3" = {
+      name = "scss-tokenizer";
+      packageName = "scss-tokenizer";
+      version = "0.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz";
+        sha1 = "8eb06db9a9723333824d3f5530641149847ce5d1";
+      };
+    };
+    "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.7" = {
+      name = "selfsigned";
+      packageName = "selfsigned";
+      version = "1.10.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz";
+        sha512 = "8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==";
+      };
+    };
+    "semver-5.3.0" = {
+      name = "semver";
+      packageName = "semver";
+      version = "5.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz";
+        sha1 = "9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f";
+      };
+    };
+    "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==";
+      };
+    };
+    "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-2.1.2" = {
+      name = "serialize-javascript";
+      packageName = "serialize-javascript";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz";
+        sha512 = "rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==";
+      };
+    };
+    "serialize-javascript-3.1.0" = {
+      name = "serialize-javascript";
+      packageName = "serialize-javascript";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz";
+        sha512 = "JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==";
+      };
+    };
+    "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-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==";
+      };
+    };
+    "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.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==";
+      };
+    };
+    "sha.js-2.4.11" = {
+      name = "sha.js";
+      packageName = "sha.js";
+      version = "2.4.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz";
+        sha512 = "QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==";
+      };
+    };
+    "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==";
+      };
+    };
+    "shell-quote-1.7.2" = {
+      name = "shell-quote";
+      packageName = "shell-quote";
+      version = "1.7.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz";
+        sha512 = "mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==";
+      };
+    };
+    "signal-exit-3.0.2" = {
+      name = "signal-exit";
+      packageName = "signal-exit";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz";
+        sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d";
+      };
+    };
+    "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-1.0.0" = {
+      name = "slash";
+      packageName = "slash";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz";
+        sha1 = "c41f2f6c39fc16d1cd17ad4b5d896114ae470d55";
+      };
+    };
+    "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==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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.20" = {
+      name = "sockjs";
+      packageName = "sockjs";
+      version = "0.3.20";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz";
+        sha512 = "SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==";
+      };
+    };
+    "sockjs-client-1.4.0" = {
+      name = "sockjs-client";
+      packageName = "sockjs-client";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz";
+        sha512 = "5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==";
+      };
+    };
+    "sort-keys-1.1.2" = {
+      name = "sort-keys";
+      packageName = "sort-keys";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz";
+        sha1 = "441b6d4d346798f1b4e49e8920adfba0e543f9ad";
+      };
+    };
+    "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.4.4" = {
+      name = "source-map";
+      packageName = "source-map";
+      version = "0.4.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz";
+        sha1 = "eba4f5da9c0dc999de68032d8b4f76173652036b";
+      };
+    };
+    "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-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.16" = {
+      name = "source-map-support";
+      packageName = "source-map-support";
+      version = "0.5.16";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz";
+        sha512 = "efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==";
+      };
+    };
+    "source-map-url-0.4.0" = {
+      name = "source-map-url";
+      packageName = "source-map-url";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz";
+        sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3";
+      };
+    };
+    "spdx-correct-3.1.0" = {
+      name = "spdx-correct";
+      packageName = "spdx-correct";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz";
+        sha512 = "lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==";
+      };
+    };
+    "spdx-exceptions-2.2.0" = {
+      name = "spdx-exceptions";
+      packageName = "spdx-exceptions";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz";
+        sha512 = "2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==";
+      };
+    };
+    "spdx-expression-parse-3.0.0" = {
+      name = "spdx-expression-parse";
+      packageName = "spdx-expression-parse";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz";
+        sha512 = "Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==";
+      };
+    };
+    "spdx-license-ids-3.0.5" = {
+      name = "spdx-license-ids";
+      packageName = "spdx-license-ids";
+      version = "3.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz";
+        sha512 = "J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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";
+      };
+    };
+    "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==";
+      };
+    };
+    "ssri-6.0.1" = {
+      name = "ssri";
+      packageName = "ssri";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz";
+        sha512 = "3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==";
+      };
+    };
+    "ssri-7.1.0" = {
+      name = "ssri";
+      packageName = "ssri";
+      version = "7.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz";
+        sha512 = "77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==";
+      };
+    };
+    "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==";
+      };
+    };
+    "stackframe-1.2.0" = {
+      name = "stackframe";
+      packageName = "stackframe";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz";
+        sha512 = "GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==";
+      };
+    };
+    "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";
+      };
+    };
+    "stdout-stream-1.4.1" = {
+      name = "stdout-stream";
+      packageName = "stdout-stream";
+      version = "1.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz";
+        sha512 = "j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==";
+      };
+    };
+    "stream-browserify-2.0.2" = {
+      name = "stream-browserify";
+      packageName = "stream-browserify";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz";
+        sha512 = "nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==";
+      };
+    };
+    "stream-each-1.2.3" = {
+      name = "stream-each";
+      packageName = "stream-each";
+      version = "1.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz";
+        sha512 = "vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==";
+      };
+    };
+    "stream-http-2.8.3" = {
+      name = "stream-http";
+      packageName = "stream-http";
+      version = "2.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz";
+        sha512 = "+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==";
+      };
+    };
+    "stream-shift-1.0.1" = {
+      name = "stream-shift";
+      packageName = "stream-shift";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz";
+        sha512 = "AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==";
+      };
+    };
+    "strict-uri-encode-1.1.0" = {
+      name = "strict-uri-encode";
+      packageName = "strict-uri-encode";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz";
+        sha1 = "279b225df1d582b1f54e65addd4352e18faa0713";
+      };
+    };
+    "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-width-2.1.1" = {
+      name = "string-width";
+      packageName = "string-width";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz";
+        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";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz";
+        sha512 = "zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==";
+      };
+    };
+    "string.prototype.trimend-1.0.1" = {
+      name = "string.prototype.trimend";
+      packageName = "string.prototype.trimend";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz";
+        sha512 = "LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==";
+      };
+    };
+    "string.prototype.trimleft-2.1.1" = {
+      name = "string.prototype.trimleft";
+      packageName = "string.prototype.trimleft";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz";
+        sha512 = "iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==";
+      };
+    };
+    "string.prototype.trimright-2.1.1" = {
+      name = "string.prototype.trimright";
+      packageName = "string.prototype.trimright";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz";
+        sha512 = "qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==";
+      };
+    };
+    "string.prototype.trimstart-1.0.1" = {
+      name = "string.prototype.trimstart";
+      packageName = "string.prototype.trimstart";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz";
+        sha512 = "XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==";
+      };
+    };
+    "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-ansi-4.0.0" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz";
+        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";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz";
+        sha512 = "AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==";
+      };
+    };
+    "strip-bom-2.0.0" = {
+      name = "strip-bom";
+      packageName = "strip-bom";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz";
+        sha1 = "6219a85616520491f35788bdbf1447a99c7e6b0e";
+      };
+    };
+    "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-1.0.1" = {
+      name = "strip-indent";
+      packageName = "strip-indent";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz";
+        sha1 = "0c7962a6adefa7bbd4ac366460a638552ae1a0a2";
+      };
+    };
+    "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-json-comments-3.0.1" = {
+      name = "strip-json-comments";
+      packageName = "strip-json-comments";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz";
+        sha512 = "VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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-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.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==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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==";
+      };
+    };
+    "tar-2.2.2" = {
+      name = "tar";
+      packageName = "tar";
+      version = "2.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz";
+        sha512 = "FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==";
+      };
+    };
+    "terser-4.6.10" = {
+      name = "terser";
+      packageName = "terser";
+      version = "4.6.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/terser/-/terser-4.6.10.tgz";
+        sha512 = "qbF/3UOo11Hggsbsqm2hPa6+L4w7bkr+09FNseEe8xrcVD3APGLFqE+Oz1ZKAxjYnFsj80rLOfgAtJ0LNJjtTA==";
+      };
+    };
+    "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-webpack-plugin-1.4.3" = {
+      name = "terser-webpack-plugin";
+      packageName = "terser-webpack-plugin";
+      version = "1.4.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz";
+        sha512 = "QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==";
+      };
+    };
+    "terser-webpack-plugin-2.3.7" = {
+      name = "terser-webpack-plugin";
+      packageName = "terser-webpack-plugin";
+      version = "2.3.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.7.tgz";
+        sha512 = "xzYyaHUNhzgaAdBsXxk2Yvo/x1NJdslUaussK3fdpBbvttm1iIwU+c26dj9UxJcwk2c5UWt5F55MUTIA8BE7Dg==";
+      };
+    };
+    "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";
+      };
+    };
+    "thenify-3.3.1" = {
+      name = "thenify";
+      packageName = "thenify";
+      version = "3.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz";
+        sha512 = "RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==";
+      };
+    };
+    "thenify-all-1.6.0" = {
+      name = "thenify-all";
+      packageName = "thenify-all";
+      version = "1.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz";
+        sha1 = "1a1918d402d8fc3f98fbf234db0bcc8cc10e9726";
+      };
+    };
+    "thread-loader-2.1.3" = {
+      name = "thread-loader";
+      packageName = "thread-loader";
+      version = "2.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/thread-loader/-/thread-loader-2.1.3.tgz";
+        sha512 = "wNrVKH2Lcf8ZrWxDF/khdlLlsTMczdcwPA9VEK4c2exlEPynYWxi9op3nPTo5lAnDIkE0rQEB3VBP+4Zncc9Hg==";
+      };
+    };
+    "through-2.3.8" = {
+      name = "through";
+      packageName = "through";
+      version = "2.3.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/through/-/through-2.3.8.tgz";
+        sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+      };
+    };
+    "through2-2.0.5" = {
+      name = "through2";
+      packageName = "through2";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz";
+        sha512 = "/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==";
+      };
+    };
+    "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==";
+      };
+    };
+    "timers-browserify-2.0.11" = {
+      name = "timers-browserify";
+      packageName = "timers-browserify";
+      version = "2.0.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz";
+        sha512 = "60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==";
+      };
+    };
+    "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";
+      };
+    };
+    "tmp-0.0.33" = {
+      name = "tmp";
+      packageName = "tmp";
+      version = "0.0.33";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz";
+        sha512 = "jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==";
+      };
+    };
+    "to-arraybuffer-1.0.1" = {
+      name = "to-arraybuffer";
+      packageName = "to-arraybuffer";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz";
+        sha1 = "7d229b1fcc637e466ca081180836a7aabff83f43";
+      };
+    };
+    "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==";
+      };
+    };
+    "toposort-1.0.7" = {
+      name = "toposort";
+      packageName = "toposort";
+      version = "1.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz";
+        sha1 = "2e68442d9f64ec720b8cc89e6443ac6caa950029";
+      };
+    };
+    "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==";
+      };
+    };
+    "trim-newlines-1.0.0" = {
+      name = "trim-newlines";
+      packageName = "trim-newlines";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz";
+        sha1 = "5887966bb582a4503a41eb524f7d35011815a613";
+      };
+    };
+    "true-case-path-1.0.3" = {
+      name = "true-case-path";
+      packageName = "true-case-path";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz";
+        sha512 = "m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==";
+      };
+    };
+    "tryer-1.0.1" = {
+      name = "tryer";
+      packageName = "tryer";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz";
+        sha512 = "c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==";
+      };
+    };
+    "ts-loader-6.2.2" = {
+      name = "ts-loader";
+      packageName = "ts-loader";
+      version = "6.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ts-loader/-/ts-loader-6.2.2.tgz";
+        sha512 = "HDo5kXZCBml3EUPcc7RlZOV/JGlLHwppTLEHb3SHnr5V7NXD4klMEkrhJe5wgRbaWsSXi+Y1SIBN/K9B6zWGWQ==";
+      };
+    };
+    "ts-pnp-1.2.0" = {
+      name = "ts-pnp";
+      packageName = "ts-pnp";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz";
+        sha512 = "csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==";
+      };
+    };
+    "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.20.1" = {
+      name = "tslint";
+      packageName = "tslint";
+      version = "5.20.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz";
+        sha512 = "EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==";
+      };
+    };
+    "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==";
+      };
+    };
+    "tsutils-3.17.1" = {
+      name = "tsutils";
+      packageName = "tsutils";
+      version = "3.17.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz";
+        sha512 = "kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==";
+      };
+    };
+    "tty-browserify-0.0.0" = {
+      name = "tty-browserify";
+      packageName = "tty-browserify";
+      version = "0.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz";
+        sha1 = "a157ba402da24e9bf957f9aa69d524eed42901a6";
+      };
+    };
+    "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";
+      };
+    };
+    "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";
+      };
+    };
+    "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-0.0.6" = {
+      name = "typedarray";
+      packageName = "typedarray";
+      version = "0.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz";
+        sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
+      };
+    };
+    "typescript-3.9.5" = {
+      name = "typescript";
+      packageName = "typescript";
+      version = "3.9.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typescript/-/typescript-3.9.5.tgz";
+        sha512 = "hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ==";
+      };
+    };
+    "uglify-js-3.4.10" = {
+      name = "uglify-js";
+      packageName = "uglify-js";
+      version = "3.4.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz";
+        sha512 = "Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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==";
+      };
+    };
+    "upper-case-1.1.3" = {
+      name = "upper-case";
+      packageName = "upper-case";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz";
+        sha1 = "f6b4501c2ec4cdd26ba78be7222961de77621598";
+      };
+    };
+    "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==";
+      };
+    };
+    "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-loader-2.3.0" = {
+      name = "url-loader";
+      packageName = "url-loader";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/url-loader/-/url-loader-2.3.0.tgz";
+        sha512 = "goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog==";
+      };
+    };
+    "url-parse-1.4.7" = {
+      name = "url-parse";
+      packageName = "url-parse";
+      version = "1.4.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz";
+        sha512 = "d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==";
+      };
+    };
+    "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-0.10.3" = {
+      name = "util";
+      packageName = "util";
+      version = "0.10.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/util/-/util-0.10.3.tgz";
+        sha1 = "7afb1afe50805246489e3db7fe0ed379336ac0f9";
+      };
+    };
+    "util-0.11.1" = {
+      name = "util";
+      packageName = "util";
+      version = "0.11.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/util/-/util-0.11.1.tgz";
+        sha512 = "HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==";
+      };
+    };
+    "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.3.3" = {
+      name = "uuid";
+      packageName = "uuid";
+      version = "3.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz";
+        sha512 = "pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==";
+      };
+    };
+    "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==";
+      };
+    };
+    "v-lazy-image-1.4.0" = {
+      name = "v-lazy-image";
+      packageName = "v-lazy-image";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/v-lazy-image/-/v-lazy-image-1.4.0.tgz";
+        sha512 = "Xp/fM786hdXlP10HatvtNsvvPjW6yOsH17lvVEEuGiNMnyiafT9XVomQRRM4t+IzN21cz3SQcw9cqd486yhpgQ==";
+      };
+    };
+    "v8-compile-cache-2.1.0" = {
+      name = "v8-compile-cache";
+      packageName = "v8-compile-cache";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz";
+        sha512 = "usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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";
+      };
+    };
+    "vm-browserify-1.1.2" = {
+      name = "vm-browserify";
+      packageName = "vm-browserify";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz";
+        sha512 = "2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==";
+      };
+    };
+    "vue-2.6.12" = {
+      name = "vue";
+      packageName = "vue";
+      version = "2.6.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vue/-/vue-2.6.12.tgz";
+        sha512 = "uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg==";
+      };
+    };
+    "vue-class-component-7.2.5" = {
+      name = "vue-class-component";
+      packageName = "vue-class-component";
+      version = "7.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vue-class-component/-/vue-class-component-7.2.5.tgz";
+        sha512 = "0CSftHY0bDTD+4FbYkuFf6+iKDjZ4h2in2YYJDRMk5daZIjrgT9LjFHvP7Rzqy9/s1pij3zDtTSLRUjsPWMwqg==";
+      };
+    };
+    "vue-cli-plugin-buefy-0.3.7" = {
+      name = "vue-cli-plugin-buefy";
+      packageName = "vue-cli-plugin-buefy";
+      version = "0.3.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vue-cli-plugin-buefy/-/vue-cli-plugin-buefy-0.3.7.tgz";
+        sha512 = "w+1Wnj1VmoLJmv0yHoLUErnFkLSzz4yTGhCz7GudDKX7vB5NpVK+/xWmiFOytuDkleWeYrJgHN8CIOY7xe26jQ==";
+      };
+    };
+    "vue-cli-plugin-fontawesome-0.2.0" = {
+      name = "vue-cli-plugin-fontawesome";
+      packageName = "vue-cli-plugin-fontawesome";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vue-cli-plugin-fontawesome/-/vue-cli-plugin-fontawesome-0.2.0.tgz";
+        sha512 = "/4DzKldf4e6CcZ1E3hO19ZFVX36DqjewCytzXekpBL74KFcpWAFaAZEJkisPfMVsalbVn6AOk27VOA8nfnZAFg==";
+      };
+    };
+    "vue-cli-plugin-i18n-1.0.1" = {
+      name = "vue-cli-plugin-i18n";
+      packageName = "vue-cli-plugin-i18n";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vue-cli-plugin-i18n/-/vue-cli-plugin-i18n-1.0.1.tgz";
+        sha512 = "sLo6YzudaWgn5dOMvrKixE5bb/onYGxcxm+0YexqoOx0QtR+7hZ/P5WPFBMM9v/2i1ec2YYe2PvKTBel7KE+tA==";
+      };
+    };
+    "vue-dragscroll-2.1.0" = {
+      name = "vue-dragscroll";
+      packageName = "vue-dragscroll";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vue-dragscroll/-/vue-dragscroll-2.1.0.tgz";
+        sha512 = "ZNcvOdrnq9w4US2RqZOfp2cCJzEz1p4xZ1w4I+xKSAFlEOrXbryLe/iclspHH57dco5QT3Azd8/KD930WzadiQ==";
+      };
+    };
+    "vue-eslint-parser-7.0.0" = {
+      name = "vue-eslint-parser";
+      packageName = "vue-eslint-parser";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.0.0.tgz";
+        sha512 = "yR0dLxsTT7JfD2YQo9BhnQ6bUTLsZouuzt9SKRP7XNaZJV459gvlsJo4vT2nhZ/2dH9j3c53bIx9dnqU2prM9g==";
+      };
+    };
+    "vue-hot-reload-api-2.3.4" = {
+      name = "vue-hot-reload-api";
+      packageName = "vue-hot-reload-api";
+      version = "2.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz";
+        sha512 = "BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==";
+      };
+    };
+    "vue-i18n-8.21.0" = {
+      name = "vue-i18n";
+      packageName = "vue-i18n";
+      version = "8.21.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.21.0.tgz";
+        sha512 = "pKBq6Kg5hNacFHMFgPbpYsFlDIMRu4Ew/tpvTWns14CZoCxt7B3tmSNdrLruGMMivnJu1rhhRqsQqT6YwHkuQQ==";
+      };
+    };
+    "vue-i18n-extract-1.0.2" = {
+      name = "vue-i18n-extract";
+      packageName = "vue-i18n-extract";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vue-i18n-extract/-/vue-i18n-extract-1.0.2.tgz";
+        sha512 = "+zwDKvle4KcfloXZnj5hF01ViKDiFr5RMx5507D7oyDXpSleRpekF5YHgZa/+Ra6Go68//z0Nya58J9tKFsCjw==";
+      };
+    };
+    "vue-loader-15.9.3" = {
+      name = "vue-loader";
+      packageName = "vue-loader";
+      version = "15.9.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.3.tgz";
+        sha512 = "Y67VnGGgVLH5Voostx8JBZgPQTlDQeOVBLOEsjc2cXbCYBKexSKEpOA56x0YZofoDOTszrLnIShyOX1p9uCEHA==";
+      };
+    };
+    "vue-property-decorator-9.0.0" = {
+      name = "vue-property-decorator";
+      packageName = "vue-property-decorator";
+      version = "9.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vue-property-decorator/-/vue-property-decorator-9.0.0.tgz";
+        sha512 = "oegTNPItuHOkW0AP1MnbdNwkmyhfsUIIXvIRHpgC18tVoEo21/i6kItyeekjMs8JgZJeuHzsaTc/DZaJFH4IWQ==";
+      };
+    };
+    "vue-router-3.4.3" = {
+      name = "vue-router";
+      packageName = "vue-router";
+      version = "3.4.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vue-router/-/vue-router-3.4.3.tgz";
+        sha512 = "BADg1mjGWX18Dpmy6bOGzGNnk7B/ZA0RxuA6qedY/YJwirMfKXIDzcccmHbQI0A6k5PzMdMloc0ElHfyOoX35A==";
+      };
+    };
+    "vue-style-loader-4.1.2" = {
+      name = "vue-style-loader";
+      packageName = "vue-style-loader";
+      version = "4.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.2.tgz";
+        sha512 = "0ip8ge6Gzz/Bk0iHovU9XAUQaFt/G2B61bnWa2tCcqqdgfHs1lF9xXorFbE55Gmy92okFT+8bfmySuUOu13vxQ==";
+      };
+    };
+    "vue-template-compiler-2.6.12" = {
+      name = "vue-template-compiler";
+      packageName = "vue-template-compiler";
+      version = "2.6.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.12.tgz";
+        sha512 = "OzzZ52zS41YUbkCBfdXShQTe69j1gQDZ9HIX8miuC9C3rBCk9wIRjLiZZLrmX9V+Ftq/YEyv1JaVr5Y/hNtByg==";
+      };
+    };
+    "vue-template-es2015-compiler-1.9.1" = {
+      name = "vue-template-es2015-compiler";
+      packageName = "vue-template-es2015-compiler";
+      version = "1.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz";
+        sha512 = "4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==";
+      };
+    };
+    "vuex-3.5.1" = {
+      name = "vuex";
+      packageName = "vuex";
+      version = "3.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vuex/-/vuex-3.5.1.tgz";
+        sha512 = "w7oJzmHQs0FM9LXodfskhw9wgKBiaB+totOdb8sNzbTB2KDCEEwEs29NzBZFh/lmEK1t5tDmM1vtsO7ubG1DFw==";
+      };
+    };
+    "vuex-class-component-2.3.5" = {
+      name = "vuex-class-component";
+      packageName = "vuex-class-component";
+      version = "2.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vuex-class-component/-/vuex-class-component-2.3.5.tgz";
+        sha512 = "e7BhLrh5jZNHoeUajfQ5NFwA9gnVj69HKxBGRiw6FRZVpXTGewPo23S1//lb5Ed1RucIfQlqfwVpC/2mtej6bw==";
+      };
+    };
+    "watchpack-1.6.1" = {
+      name = "watchpack";
+      packageName = "watchpack";
+      version = "1.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/watchpack/-/watchpack-1.6.1.tgz";
+        sha512 = "+IF9hfUFOrYOOaKyfaI7h7dquUIOgyEMoQMLA7OP5FxegKA2+XdXThAZ9TU2kucfhDH7rfMHs1oPYziVGWRnZA==";
+      };
+    };
+    "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==";
+      };
+    };
+    "wcwidth-1.0.1" = {
+      name = "wcwidth";
+      packageName = "wcwidth";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz";
+        sha1 = "f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8";
+      };
+    };
+    "webpack-4.42.1" = {
+      name = "webpack";
+      packageName = "webpack";
+      version = "4.42.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack/-/webpack-4.42.1.tgz";
+        sha512 = "SGfYMigqEfdGchGhFFJ9KyRpQKnipvEvjc1TwrXEPCM6H5Wywu10ka8o3KGrMzSMxMQKt8aCHUFh5DaQ9UmyRg==";
+      };
+    };
+    "webpack-bundle-analyzer-3.8.0" = {
+      name = "webpack-bundle-analyzer";
+      packageName = "webpack-bundle-analyzer";
+      version = "3.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.8.0.tgz";
+        sha512 = "PODQhAYVEourCcOuU+NiYI7WdR8QyELZGgPvB1y2tjbUpbmcQOt5Q7jEK+ttd5se0KSBKD9SXHCEozS++Wllmw==";
+      };
+    };
+    "webpack-chain-6.4.0" = {
+      name = "webpack-chain";
+      packageName = "webpack-chain";
+      version = "6.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack-chain/-/webpack-chain-6.4.0.tgz";
+        sha512 = "f97PYqxU+9/u0IUqp/ekAHRhBD1IQwhBv3wlJo2nvyELpr2vNnUqO3XQEk+qneg0uWGP54iciotszpjfnEExFA==";
+      };
+    };
+    "webpack-dev-middleware-3.7.2" = {
+      name = "webpack-dev-middleware";
+      packageName = "webpack-dev-middleware";
+      version = "3.7.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz";
+        sha512 = "1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==";
+      };
+    };
+    "webpack-dev-server-3.11.0" = {
+      name = "webpack-dev-server";
+      packageName = "webpack-dev-server";
+      version = "3.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz";
+        sha512 = "PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==";
+      };
+    };
+    "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-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==";
+      };
+    };
+    "websocket-driver-0.6.5" = {
+      name = "websocket-driver";
+      packageName = "websocket-driver";
+      version = "0.6.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz";
+        sha1 = "5cb2556ceb85f4373c6d8238aa691c8454e13a36";
+      };
+    };
+    "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==";
+      };
+    };
+    "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-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";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz";
+        sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==";
+      };
+    };
+    "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==";
+      };
+    };
+    "worker-farm-1.7.0" = {
+      name = "worker-farm";
+      packageName = "worker-farm";
+      version = "1.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz";
+        sha512 = "rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==";
+      };
+    };
+    "worker-rpc-0.1.1" = {
+      name = "worker-rpc";
+      packageName = "worker-rpc";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz";
+        sha512 = "P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg==";
+      };
+    };
+    "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==";
+      };
+    };
+    "wrap-ansi-6.2.0" = {
+      name = "wrap-ansi";
+      packageName = "wrap-ansi";
+      version = "6.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz";
+        sha512 = "r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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==";
+      };
+    };
+    "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.0" = {
+      name = "y18n";
+      packageName = "y18n";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz";
+        sha512 = "r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==";
+      };
+    };
+    "yallist-2.1.2" = {
+      name = "yallist";
+      packageName = "yallist";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz";
+        sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
+      };
+    };
+    "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==";
+      };
+    };
+    "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-15.3.1" = {
+      name = "yargs";
+      packageName = "yargs";
+      version = "15.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz";
+        sha512 = "92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==";
+      };
+    };
+    "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-18.1.3" = {
+      name = "yargs-parser";
+      packageName = "yargs-parser";
+      version = "18.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz";
+        sha512 = "o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==";
+      };
+    };
+    "yorkie-2.0.0" = {
+      name = "yorkie";
+      packageName = "yorkie";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yorkie/-/yorkie-2.0.0.tgz";
+        sha512 = "jcKpkthap6x63MB4TxwCyuIGkV0oYP/YRyuQU5UO0Yz/E/ZAu+653/uov+phdmO54n6BcvFRyyt0RRrWdN2mpw==";
+      };
+    };
+  };
+  args = {
+    name = "ldgallery-viewer";
+    packageName = "ldgallery-viewer";
+    version = "2.0.0";
+    src = ./.;
+    dependencies = [
+      sources."@babel/code-frame-7.5.5"
+      (sources."@babel/compat-data-7.10.3" // {
+        dependencies = [
+          sources."browserslist-4.12.2"
+          sources."caniuse-lite-1.0.30001090"
+          sources."electron-to-chromium-1.3.483"
+          sources."node-releases-1.1.58"
+        ];
+      })
+      (sources."@babel/core-7.10.3" // {
+        dependencies = [
+          sources."@babel/code-frame-7.10.3"
+          sources."@babel/highlight-7.10.3"
+          sources."source-map-0.5.7"
+        ];
+      })
+      (sources."@babel/generator-7.10.3" // {
+        dependencies = [
+          sources."source-map-0.5.7"
+        ];
+      })
+      sources."@babel/helper-annotate-as-pure-7.10.1"
+      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.10.3"
+      (sources."@babel/helper-compilation-targets-7.10.2" // {
+        dependencies = [
+          sources."browserslist-4.12.2"
+          sources."caniuse-lite-1.0.30001090"
+          sources."electron-to-chromium-1.3.483"
+          sources."node-releases-1.1.58"
+        ];
+      })
+      sources."@babel/helper-create-class-features-plugin-7.10.3"
+      sources."@babel/helper-create-regexp-features-plugin-7.10.1"
+      sources."@babel/helper-define-map-7.10.3"
+      sources."@babel/helper-explode-assignable-expression-7.10.3"
+      sources."@babel/helper-function-name-7.10.3"
+      sources."@babel/helper-get-function-arity-7.10.3"
+      sources."@babel/helper-hoist-variables-7.10.3"
+      sources."@babel/helper-member-expression-to-functions-7.10.3"
+      sources."@babel/helper-module-imports-7.10.3"
+      sources."@babel/helper-module-transforms-7.10.1"
+      sources."@babel/helper-optimise-call-expression-7.10.3"
+      sources."@babel/helper-plugin-utils-7.10.3"
+      sources."@babel/helper-regex-7.10.1"
+      sources."@babel/helper-remap-async-to-generator-7.10.3"
+      sources."@babel/helper-replace-supers-7.10.1"
+      sources."@babel/helper-simple-access-7.10.1"
+      sources."@babel/helper-split-export-declaration-7.10.1"
+      sources."@babel/helper-validator-identifier-7.10.3"
+      sources."@babel/helper-wrap-function-7.10.1"
+      sources."@babel/helpers-7.10.1"
+      sources."@babel/highlight-7.5.0"
+      sources."@babel/parser-7.10.3"
+      sources."@babel/plugin-proposal-async-generator-functions-7.10.3"
+      sources."@babel/plugin-proposal-class-properties-7.10.1"
+      sources."@babel/plugin-proposal-decorators-7.10.3"
+      sources."@babel/plugin-proposal-dynamic-import-7.10.1"
+      sources."@babel/plugin-proposal-json-strings-7.10.1"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.10.1"
+      sources."@babel/plugin-proposal-numeric-separator-7.10.1"
+      sources."@babel/plugin-proposal-object-rest-spread-7.10.3"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.10.1"
+      sources."@babel/plugin-proposal-optional-chaining-7.10.3"
+      sources."@babel/plugin-proposal-private-methods-7.10.1"
+      sources."@babel/plugin-proposal-unicode-property-regex-7.10.1"
+      sources."@babel/plugin-syntax-async-generators-7.8.4"
+      sources."@babel/plugin-syntax-class-properties-7.10.1"
+      sources."@babel/plugin-syntax-decorators-7.10.1"
+      sources."@babel/plugin-syntax-dynamic-import-7.8.3"
+      sources."@babel/plugin-syntax-json-strings-7.8.3"
+      sources."@babel/plugin-syntax-jsx-7.10.1"
+      sources."@babel/plugin-syntax-nullish-coalescing-operator-7.8.3"
+      sources."@babel/plugin-syntax-numeric-separator-7.10.1"
+      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-top-level-await-7.10.1"
+      sources."@babel/plugin-transform-arrow-functions-7.10.1"
+      sources."@babel/plugin-transform-async-to-generator-7.10.1"
+      sources."@babel/plugin-transform-block-scoped-functions-7.10.1"
+      sources."@babel/plugin-transform-block-scoping-7.10.1"
+      sources."@babel/plugin-transform-classes-7.10.3"
+      sources."@babel/plugin-transform-computed-properties-7.10.3"
+      sources."@babel/plugin-transform-destructuring-7.10.1"
+      sources."@babel/plugin-transform-dotall-regex-7.10.1"
+      sources."@babel/plugin-transform-duplicate-keys-7.10.1"
+      sources."@babel/plugin-transform-exponentiation-operator-7.10.1"
+      sources."@babel/plugin-transform-for-of-7.10.1"
+      sources."@babel/plugin-transform-function-name-7.10.1"
+      sources."@babel/plugin-transform-literals-7.10.1"
+      sources."@babel/plugin-transform-member-expression-literals-7.10.1"
+      sources."@babel/plugin-transform-modules-amd-7.10.1"
+      sources."@babel/plugin-transform-modules-commonjs-7.10.1"
+      sources."@babel/plugin-transform-modules-systemjs-7.10.3"
+      sources."@babel/plugin-transform-modules-umd-7.10.1"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.10.3"
+      sources."@babel/plugin-transform-new-target-7.10.1"
+      sources."@babel/plugin-transform-object-super-7.10.1"
+      sources."@babel/plugin-transform-parameters-7.10.1"
+      sources."@babel/plugin-transform-property-literals-7.10.1"
+      sources."@babel/plugin-transform-regenerator-7.10.3"
+      sources."@babel/plugin-transform-reserved-words-7.10.1"
+      sources."@babel/plugin-transform-runtime-7.10.3"
+      sources."@babel/plugin-transform-shorthand-properties-7.10.1"
+      sources."@babel/plugin-transform-spread-7.10.1"
+      sources."@babel/plugin-transform-sticky-regex-7.10.1"
+      sources."@babel/plugin-transform-template-literals-7.10.3"
+      sources."@babel/plugin-transform-typeof-symbol-7.10.1"
+      sources."@babel/plugin-transform-unicode-escapes-7.10.1"
+      sources."@babel/plugin-transform-unicode-regex-7.10.1"
+      (sources."@babel/preset-env-7.10.3" // {
+        dependencies = [
+          sources."browserslist-4.12.2"
+          sources."caniuse-lite-1.0.30001090"
+          sources."electron-to-chromium-1.3.483"
+          sources."node-releases-1.1.58"
+        ];
+      })
+      sources."@babel/preset-modules-0.1.3"
+      sources."@babel/runtime-7.10.3"
+      (sources."@babel/template-7.10.3" // {
+        dependencies = [
+          sources."@babel/code-frame-7.10.3"
+          sources."@babel/highlight-7.10.3"
+        ];
+      })
+      (sources."@babel/traverse-7.10.3" // {
+        dependencies = [
+          sources."@babel/code-frame-7.10.3"
+          sources."@babel/highlight-7.10.3"
+        ];
+      })
+      sources."@babel/types-7.10.3"
+      sources."@fortawesome/fontawesome-common-types-0.2.30"
+      sources."@fortawesome/fontawesome-svg-core-1.2.30"
+      sources."@fortawesome/free-regular-svg-icons-5.14.0"
+      sources."@fortawesome/free-solid-svg-icons-5.14.0"
+      sources."@fortawesome/vue-fontawesome-2.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."@intervolga/optimize-cssnano-plugin-1.0.6"
+      sources."@mrmlnc/readdir-enhanced-2.2.1"
+      sources."@nodelib/fs.stat-1.1.3"
+      (sources."@soda/friendly-errors-webpack-plugin-1.7.1" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."ansi-styles-2.2.1"
+          sources."chalk-1.1.3"
+          sources."strip-ansi-3.0.1"
+          sources."supports-color-2.0.0"
+        ];
+      })
+      sources."@soda/get-current-script-1.0.2"
+      sources."@types/anymatch-1.3.1"
+      sources."@types/color-name-1.1.1"
+      sources."@types/eslint-visitor-keys-1.0.0"
+      sources."@types/events-3.0.0"
+      sources."@types/glob-7.1.1"
+      sources."@types/hammerjs-2.0.36"
+      sources."@types/json-schema-7.0.4"
+      sources."@types/marked-1.1.0"
+      sources."@types/minimatch-3.0.3"
+      sources."@types/node-13.9.8"
+      sources."@types/normalize-package-data-2.4.0"
+      sources."@types/q-1.5.4"
+      sources."@types/source-list-map-0.1.2"
+      sources."@types/tapable-1.0.6"
+      sources."@types/uglify-js-3.9.3"
+      sources."@types/webpack-4.41.22"
+      sources."@types/webpack-env-1.15.2"
+      (sources."@types/webpack-sources-1.4.2" // {
+        dependencies = [
+          sources."source-map-0.7.3"
+        ];
+      })
+      (sources."@typescript-eslint/eslint-plugin-2.34.0" // {
+        dependencies = [
+          sources."@typescript-eslint/experimental-utils-2.34.0"
+          sources."@typescript-eslint/typescript-estree-2.34.0"
+          sources."eslint-utils-2.1.0"
+          sources."semver-7.3.2"
+        ];
+      })
+      (sources."@typescript-eslint/experimental-utils-2.34.0" // {
+        dependencies = [
+          sources."eslint-utils-2.1.0"
+        ];
+      })
+      sources."@typescript-eslint/parser-2.34.0"
+      (sources."@typescript-eslint/typescript-estree-2.34.0" // {
+        dependencies = [
+          sources."semver-7.3.2"
+        ];
+      })
+      sources."@vue/babel-helper-vue-jsx-merge-props-1.0.0"
+      sources."@vue/babel-plugin-transform-vue-jsx-1.1.2"
+      (sources."@vue/babel-preset-app-4.4.6" // {
+        dependencies = [
+          sources."core-js-3.6.5"
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."@vue/babel-preset-jsx-1.1.2"
+      sources."@vue/babel-sugar-functional-vue-1.1.2"
+      sources."@vue/babel-sugar-inject-h-1.1.2"
+      sources."@vue/babel-sugar-v-model-1.1.2"
+      sources."@vue/babel-sugar-v-on-1.1.2"
+      sources."@vue/cli-overlay-4.4.6"
+      (sources."@vue/cli-plugin-babel-4.4.6" // {
+        dependencies = [
+          sources."@vue/cli-shared-utils-4.4.6"
+          sources."request-2.88.2"
+          sources."semver-6.3.0"
+          sources."tough-cookie-2.5.0"
+        ];
+      })
+      (sources."@vue/cli-plugin-eslint-4.4.6" // {
+        dependencies = [
+          sources."@vue/cli-shared-utils-4.4.6"
+          sources."ansi-styles-4.2.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."inquirer-7.2.0" // {
+            dependencies = [
+              sources."chalk-3.0.0"
+            ];
+          })
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."mimic-fn-2.1.0"
+          sources."onetime-5.1.0"
+          sources."request-2.88.2"
+          sources."restore-cursor-3.1.0"
+          sources."run-async-2.4.1"
+          sources."semver-6.3.0"
+          sources."string-width-4.2.0"
+          sources."supports-color-7.1.0"
+          sources."tough-cookie-2.5.0"
+        ];
+      })
+      (sources."@vue/cli-plugin-router-4.4.6" // {
+        dependencies = [
+          sources."@vue/cli-shared-utils-4.4.6"
+          sources."request-2.88.2"
+          sources."semver-6.3.0"
+          sources."tough-cookie-2.5.0"
+        ];
+      })
+      sources."@vue/cli-plugin-typescript-4.4.6"
+      sources."@vue/cli-plugin-vuex-4.4.6"
+      (sources."@vue/cli-service-4.4.6" // {
+        dependencies = [
+          sources."@vue/cli-plugin-router-4.4.6"
+          sources."@vue/cli-plugin-vuex-4.4.6"
+          sources."@vue/cli-shared-utils-4.4.6"
+          sources."acorn-7.3.1"
+          sources."ajv-6.12.2"
+          sources."browserslist-4.12.2"
+          sources."cacache-13.0.1"
+          sources."caniuse-lite-1.0.30001090"
+          sources."cliui-6.0.0"
+          sources."electron-to-chromium-1.3.483"
+          sources."fast-deep-equal-3.1.3"
+          sources."find-cache-dir-3.3.1"
+          sources."find-up-4.1.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."locate-path-5.0.0"
+          sources."make-dir-3.1.0"
+          sources."node-releases-1.1.58"
+          sources."p-limit-2.3.0"
+          sources."p-locate-4.1.0"
+          sources."path-exists-4.0.0"
+          sources."pkg-dir-4.2.0"
+          sources."request-2.88.2"
+          sources."schema-utils-2.7.0"
+          sources."semver-6.3.0"
+          sources."serialize-javascript-3.1.0"
+          sources."ssri-7.1.0"
+          sources."string-width-4.2.0"
+          sources."terser-4.8.0"
+          sources."terser-webpack-plugin-2.3.7"
+          sources."tough-cookie-2.5.0"
+        ];
+      })
+      (sources."@vue/cli-shared-utils-4.4.6" // {
+        dependencies = [
+          sources."request-2.88.2"
+          sources."semver-6.3.0"
+          sources."tough-cookie-2.5.0"
+        ];
+      })
+      (sources."@vue/component-compiler-utils-3.1.2" // {
+        dependencies = [
+          sources."hash-sum-1.0.2"
+          sources."lru-cache-4.1.5"
+          sources."yallist-2.1.2"
+        ];
+      })
+      sources."@vue/eslint-config-typescript-5.0.2"
+      sources."@vue/preload-webpack-plugin-1.1.1"
+      sources."@vue/web-component-wrapper-1.2.0"
+      sources."@webassemblyjs/ast-1.9.0"
+      sources."@webassemblyjs/floating-point-hex-parser-1.9.0"
+      sources."@webassemblyjs/helper-api-error-1.9.0"
+      sources."@webassemblyjs/helper-buffer-1.9.0"
+      sources."@webassemblyjs/helper-code-frame-1.9.0"
+      sources."@webassemblyjs/helper-fsm-1.9.0"
+      sources."@webassemblyjs/helper-module-context-1.9.0"
+      sources."@webassemblyjs/helper-wasm-bytecode-1.9.0"
+      sources."@webassemblyjs/helper-wasm-section-1.9.0"
+      sources."@webassemblyjs/ieee754-1.9.0"
+      sources."@webassemblyjs/leb128-1.9.0"
+      sources."@webassemblyjs/utf8-1.9.0"
+      sources."@webassemblyjs/wasm-edit-1.9.0"
+      sources."@webassemblyjs/wasm-gen-1.9.0"
+      sources."@webassemblyjs/wasm-opt-1.9.0"
+      sources."@webassemblyjs/wasm-parser-1.9.0"
+      sources."@webassemblyjs/wast-parser-1.9.0"
+      sources."@webassemblyjs/wast-printer-1.9.0"
+      sources."@xtuc/ieee754-1.2.0"
+      sources."@xtuc/long-4.2.2"
+      sources."abbrev-1.1.1"
+      sources."accepts-1.3.7"
+      sources."acorn-6.4.1"
+      sources."acorn-jsx-5.1.0"
+      sources."acorn-walk-7.2.0"
+      sources."address-1.1.2"
+      sources."aggregate-error-3.0.1"
+      sources."ajv-6.10.2"
+      sources."ajv-errors-1.0.1"
+      sources."ajv-keywords-3.4.1"
+      sources."alphanum-sort-1.0.2"
+      sources."amdefine-1.0.1"
+      sources."ansi-colors-3.2.4"
+      (sources."ansi-escapes-4.3.0" // {
+        dependencies = [
+          sources."type-fest-0.8.1"
+        ];
+      })
+      sources."ansi-html-0.0.7"
+      sources."ansi-regex-4.1.0"
+      sources."ansi-styles-3.2.1"
+      sources."any-promise-1.3.0"
+      (sources."anymatch-2.0.0" // {
+        dependencies = [
+          sources."normalize-path-2.1.1"
+        ];
+      })
+      sources."aproba-1.2.0"
+      sources."arch-2.1.2"
+      sources."are-we-there-yet-1.1.5"
+      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-1.1.1"
+      sources."array-union-1.0.2"
+      sources."array-uniq-1.0.3"
+      sources."array-unique-0.3.2"
+      sources."asn1-0.2.4"
+      sources."asn1.js-4.10.1"
+      (sources."assert-1.5.0" // {
+        dependencies = [
+          sources."inherits-2.0.1"
+          sources."util-0.10.3"
+        ];
+      })
+      sources."assert-plus-1.0.0"
+      sources."assign-symbols-1.0.0"
+      sources."astral-regex-1.0.0"
+      sources."async-2.6.3"
+      sources."async-each-1.0.3"
+      sources."async-foreach-0.1.3"
+      sources."async-limiter-1.0.1"
+      sources."asynckit-0.4.0"
+      sources."atob-2.1.2"
+      (sources."autoprefixer-9.8.4" // {
+        dependencies = [
+          sources."browserslist-4.12.2"
+          sources."caniuse-lite-1.0.30001090"
+          sources."electron-to-chromium-1.3.483"
+          sources."node-releases-1.1.58"
+        ];
+      })
+      sources."aws-sign2-0.7.0"
+      sources."aws4-1.9.0"
+      (sources."babel-code-frame-6.26.0" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."ansi-styles-2.2.1"
+          sources."chalk-1.1.3"
+          sources."js-tokens-3.0.2"
+          sources."strip-ansi-3.0.1"
+          sources."supports-color-2.0.0"
+        ];
+      })
+      (sources."babel-loader-8.1.0" // {
+        dependencies = [
+          sources."ajv-6.12.2"
+          sources."emojis-list-3.0.0"
+          sources."fast-deep-equal-3.1.3"
+          sources."json5-1.0.1"
+          sources."loader-utils-1.4.0"
+          sources."mkdirp-0.5.5"
+          sources."schema-utils-2.7.0"
+        ];
+      })
+      sources."babel-plugin-dynamic-import-node-2.3.3"
+      sources."balanced-match-1.0.0"
+      (sources."base-0.11.2" // {
+        dependencies = [
+          sources."define-property-1.0.0"
+          sources."is-accessor-descriptor-1.0.0"
+          sources."is-data-descriptor-1.0.0"
+          sources."is-descriptor-1.0.2"
+        ];
+      })
+      sources."base64-js-1.3.1"
+      sources."batch-0.6.1"
+      sources."bcrypt-pbkdf-1.0.2"
+      sources."bfj-6.1.2"
+      sources."big.js-5.2.2"
+      sources."binary-extensions-1.13.1"
+      sources."bindings-1.5.0"
+      sources."block-stream-0.0.9"
+      sources."bluebird-3.7.2"
+      sources."bn.js-4.11.8"
+      (sources."body-parser-1.19.0" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+          sources."qs-6.7.0"
+        ];
+      })
+      (sources."bonjour-3.5.0" // {
+        dependencies = [
+          sources."array-flatten-2.1.2"
+        ];
+      })
+      sources."boolbase-1.0.0"
+      sources."brace-expansion-1.1.11"
+      (sources."braces-2.3.2" // {
+        dependencies = [
+          sources."extend-shallow-2.0.1"
+        ];
+      })
+      sources."brorand-1.1.0"
+      sources."browserify-aes-1.2.0"
+      sources."browserify-cipher-1.0.1"
+      sources."browserify-des-1.0.2"
+      sources."browserify-rsa-4.0.1"
+      sources."browserify-sign-4.0.4"
+      sources."browserify-zlib-0.2.0"
+      sources."browserslist-4.11.1"
+      sources."buefy-0.8.15"
+      sources."buffer-4.9.2"
+      sources."buffer-from-1.1.1"
+      sources."buffer-indexof-1.1.1"
+      sources."buffer-json-2.0.0"
+      sources."buffer-xor-1.0.3"
+      sources."builtin-modules-1.1.1"
+      sources."builtin-status-codes-3.0.0"
+      sources."bulma-0.7.5"
+      sources."bytes-3.1.0"
+      sources."cacache-12.0.4"
+      sources."cache-base-1.0.1"
+      (sources."cache-loader-4.1.0" // {
+        dependencies = [
+          sources."find-cache-dir-3.3.1"
+          sources."find-up-4.1.0"
+          sources."locate-path-5.0.0"
+          sources."make-dir-3.0.2"
+          sources."p-locate-4.1.0"
+          sources."path-exists-4.0.0"
+          sources."pkg-dir-4.2.0"
+          sources."semver-6.3.0"
+        ];
+      })
+      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-3.0.0"
+      sources."camelcase-5.3.1"
+      (sources."camelcase-keys-2.1.0" // {
+        dependencies = [
+          sources."camelcase-2.1.1"
+        ];
+      })
+      sources."caniuse-api-3.0.0"
+      sources."caniuse-lite-1.0.30001038"
+      sources."case-sensitive-paths-webpack-plugin-2.3.0"
+      sources."caseless-0.12.0"
+      sources."chalk-2.4.2"
+      sources."chardet-0.7.0"
+      sources."check-types-8.0.3"
+      sources."chokidar-2.1.8"
+      sources."chownr-1.1.4"
+      sources."chrome-trace-event-1.0.2"
+      sources."ci-info-1.6.0"
+      sources."cipher-base-1.0.4"
+      (sources."class-utils-0.3.6" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+        ];
+      })
+      sources."clean-css-4.2.3"
+      sources."clean-stack-2.2.0"
+      sources."cli-cursor-2.1.0"
+      (sources."cli-highlight-2.1.4" // {
+        dependencies = [
+          sources."ansi-styles-4.2.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."supports-color-7.1.0"
+        ];
+      })
+      sources."cli-spinners-2.2.0"
+      sources."cli-table3-0.5.1"
+      sources."cli-width-2.2.0"
+      (sources."clipboardy-2.3.0" // {
+        dependencies = [
+          sources."is-wsl-2.2.0"
+        ];
+      })
+      (sources."cliui-5.0.0" // {
+        dependencies = [
+          sources."emoji-regex-7.0.3"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+          sources."wrap-ansi-5.1.0"
+        ];
+      })
+      sources."clone-1.0.4"
+      sources."clone-deep-4.0.1"
+      sources."coa-2.0.2"
+      sources."code-point-at-1.1.0"
+      sources."collection-visit-1.0.0"
+      sources."color-3.1.2"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."color-string-1.5.3"
+      sources."colorette-1.2.0"
+      sources."colors-1.4.0"
+      sources."combined-stream-1.0.8"
+      sources."commander-2.20.3"
+      sources."commondir-1.0.1"
+      sources."component-emitter-1.3.0"
+      (sources."compressible-2.0.18" // {
+        dependencies = [
+          sources."mime-db-1.44.0"
+        ];
+      })
+      (sources."compression-1.7.4" // {
+        dependencies = [
+          sources."bytes-3.0.0"
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."concat-map-0.0.1"
+      sources."concat-stream-1.6.2"
+      sources."connect-history-api-fallback-1.6.0"
+      sources."console-browserify-1.2.0"
+      sources."console-control-strings-1.1.0"
+      sources."consolidate-0.15.1"
+      sources."constants-browserify-1.0.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-concurrently-1.0.5"
+      sources."copy-descriptor-0.1.1"
+      (sources."copy-webpack-plugin-5.1.1" // {
+        dependencies = [
+          sources."globby-7.1.1"
+          sources."ignore-3.3.10"
+          sources."pify-3.0.0"
+          sources."schema-utils-1.0.0"
+          sources."slash-1.0.0"
+        ];
+      })
+      sources."core-js-3.6.5"
+      (sources."core-js-compat-3.6.5" // {
+        dependencies = [
+          sources."semver-7.0.0"
+        ];
+      })
+      sources."core-util-is-1.0.2"
+      (sources."cosmiconfig-5.2.1" // {
+        dependencies = [
+          sources."parse-json-4.0.0"
+        ];
+      })
+      sources."create-ecdh-4.0.3"
+      sources."create-hash-1.2.0"
+      sources."create-hmac-1.1.7"
+      sources."cross-spawn-6.0.5"
+      sources."crypto-browserify-3.12.0"
+      sources."css-color-names-0.0.4"
+      sources."css-declaration-sorter-4.0.1"
+      (sources."css-loader-3.6.0" // {
+        dependencies = [
+          sources."ajv-6.12.2"
+          sources."fast-deep-equal-3.1.3"
+          sources."schema-utils-2.7.0"
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."css-select-2.1.0"
+      sources."css-select-base-adapter-0.1.1"
+      sources."css-tree-1.0.0-alpha.37"
+      sources."css-what-3.3.0"
+      sources."cssesc-3.0.0"
+      sources."cssnano-4.1.10"
+      sources."cssnano-preset-default-4.0.7"
+      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.0.3" // {
+        dependencies = [
+          sources."css-tree-1.0.0-alpha.39"
+          sources."mdn-data-2.0.6"
+        ];
+      })
+      sources."currently-unhandled-0.4.1"
+      sources."cyclist-1.0.1"
+      sources."dashdash-1.14.1"
+      sources."de-indent-1.0.2"
+      sources."debug-4.1.1"
+      sources."decamelize-1.2.0"
+      sources."decode-uri-component-0.2.0"
+      sources."deep-equal-1.1.1"
+      sources."deep-is-0.1.3"
+      sources."deepmerge-1.5.2"
+      (sources."default-gateway-5.0.5" // {
+        dependencies = [
+          sources."cross-spawn-7.0.3"
+          sources."execa-3.4.0"
+          sources."get-stream-5.1.0"
+          sources."is-stream-2.0.0"
+          sources."mimic-fn-2.1.0"
+          sources."npm-run-path-4.0.1"
+          sources."onetime-5.1.0"
+          sources."p-finally-2.0.1"
+          sources."path-key-3.1.1"
+          sources."shebang-command-2.0.0"
+          sources."shebang-regex-3.0.0"
+          sources."which-2.0.2"
+        ];
+      })
+      sources."defaults-1.0.3"
+      sources."define-properties-1.1.3"
+      (sources."define-property-2.0.2" // {
+        dependencies = [
+          sources."is-accessor-descriptor-1.0.0"
+          sources."is-data-descriptor-1.0.0"
+          sources."is-descriptor-1.0.2"
+        ];
+      })
+      (sources."del-4.1.1" // {
+        dependencies = [
+          (sources."globby-6.1.0" // {
+            dependencies = [
+              sources."pify-2.3.0"
+            ];
+          })
+          sources."p-map-2.1.0"
+        ];
+      })
+      sources."delayed-stream-1.0.0"
+      sources."delegates-1.0.0"
+      sources."depd-1.1.2"
+      sources."des.js-1.0.1"
+      sources."destroy-1.0.4"
+      sources."detect-node-2.0.4"
+      sources."diff-4.0.2"
+      sources."diffie-hellman-5.0.3"
+      sources."dir-glob-2.2.2"
+      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.0.1"
+        ];
+      })
+      sources."domain-browser-1.2.0"
+      sources."domelementtype-1.3.1"
+      sources."domhandler-2.4.2"
+      sources."domutils-1.7.0"
+      sources."dot-object-1.9.0"
+      sources."dot-prop-5.2.0"
+      sources."dotenv-8.2.0"
+      sources."dotenv-expand-5.1.0"
+      sources."duplexer-0.1.1"
+      sources."duplexify-3.7.1"
+      sources."easy-stack-1.0.0"
+      sources."ecc-jsbn-0.1.2"
+      sources."ee-first-1.1.1"
+      sources."ejs-2.7.4"
+      sources."electron-to-chromium-1.3.393"
+      sources."elliptic-6.5.2"
+      sources."emoji-regex-8.0.0"
+      sources."emojis-list-2.1.0"
+      sources."encodeurl-1.0.2"
+      sources."end-of-stream-1.4.4"
+      (sources."enhanced-resolve-4.1.1" // {
+        dependencies = [
+          sources."memory-fs-0.5.0"
+        ];
+      })
+      sources."entities-2.0.3"
+      sources."errno-0.1.7"
+      sources."error-ex-1.3.2"
+      sources."error-stack-parser-2.0.6"
+      sources."es-abstract-1.17.0-next.1"
+      sources."es-to-primitive-1.2.1"
+      sources."escalade-3.0.1"
+      sources."escape-html-1.0.3"
+      sources."escape-string-regexp-1.0.5"
+      (sources."eslint-6.8.0" // {
+        dependencies = [
+          sources."glob-parent-5.1.0"
+          sources."globals-12.3.0"
+          sources."import-fresh-3.2.1"
+          sources."regexpp-2.0.1"
+          sources."resolve-from-4.0.0"
+          sources."semver-6.3.0"
+          sources."strip-ansi-5.2.0"
+          sources."type-fest-0.8.1"
+        ];
+      })
+      (sources."eslint-config-prettier-6.11.0" // {
+        dependencies = [
+          sources."get-stdin-6.0.0"
+        ];
+      })
+      sources."eslint-loader-2.2.1"
+      sources."eslint-plugin-prettier-3.1.4"
+      sources."eslint-plugin-vue-6.2.2"
+      sources."eslint-scope-5.0.0"
+      sources."eslint-utils-1.4.3"
+      sources."eslint-visitor-keys-1.1.0"
+      sources."esm-3.2.25"
+      (sources."espree-6.1.2" // {
+        dependencies = [
+          sources."acorn-7.1.1"
+        ];
+      })
+      sources."esprima-4.0.1"
+      sources."esquery-1.0.1"
+      sources."esrecurse-4.2.1"
+      sources."estraverse-4.3.0"
+      sources."esutils-2.0.3"
+      sources."etag-1.8.1"
+      sources."event-pubsub-4.3.0"
+      sources."eventemitter3-4.0.4"
+      sources."events-3.1.0"
+      sources."eventsource-1.0.7"
+      sources."evp_bytestokey-1.0.3"
+      sources."execa-1.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."ms-2.0.0"
+        ];
+      })
+      (sources."express-4.17.1" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+          sources."qs-6.7.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."is-accessor-descriptor-1.0.0"
+          sources."is-data-descriptor-1.0.0"
+          sources."is-descriptor-1.0.2"
+        ];
+      })
+      sources."extsprintf-1.3.0"
+      sources."fast-deep-equal-2.0.1"
+      sources."fast-diff-1.2.0"
+      sources."fast-glob-2.2.7"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."fast-levenshtein-2.0.6"
+      sources."faye-websocket-0.10.0"
+      sources."figgy-pudding-3.5.2"
+      sources."figures-3.1.0"
+      sources."file-entry-cache-5.0.1"
+      sources."file-loader-4.3.0"
+      sources."file-uri-to-path-1.0.0"
+      sources."filesize-3.6.1"
+      (sources."fill-range-4.0.0" // {
+        dependencies = [
+          sources."extend-shallow-2.0.1"
+        ];
+      })
+      (sources."finalhandler-1.1.2" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."find-cache-dir-2.1.0"
+      sources."find-up-3.0.0"
+      sources."flat-5.0.2"
+      (sources."flat-cache-2.0.1" // {
+        dependencies = [
+          sources."rimraf-2.6.3"
+        ];
+      })
+      sources."flatted-2.0.1"
+      sources."flush-write-stream-1.1.1"
+      sources."follow-redirects-1.12.1"
+      sources."for-in-1.0.2"
+      sources."forever-agent-0.6.1"
+      (sources."fork-ts-checker-webpack-plugin-3.1.1" // {
+        dependencies = [
+          sources."anymatch-3.1.1"
+          sources."binary-extensions-2.1.0"
+          sources."braces-3.0.2"
+          sources."chokidar-3.4.0"
+          sources."fill-range-7.0.1"
+          sources."fsevents-2.1.3"
+          sources."glob-parent-5.1.1"
+          sources."is-binary-path-2.1.0"
+          sources."is-number-7.0.0"
+          sources."readdirp-3.4.0"
+          sources."to-regex-range-5.0.1"
+        ];
+      })
+      sources."form-data-2.3.3"
+      sources."forwarded-0.1.2"
+      sources."fragment-cache-0.2.1"
+      sources."fresh-0.5.2"
+      sources."from2-2.3.0"
+      sources."fs-extra-7.0.1"
+      sources."fs-minipass-2.1.0"
+      sources."fs-write-stream-atomic-1.0.10"
+      sources."fs.realpath-1.0.0"
+      sources."fsevents-1.2.12"
+      sources."fstream-1.0.12"
+      sources."function-bind-1.1.1"
+      sources."functional-red-black-tree-1.0.1"
+      (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."gaze-1.1.3"
+      sources."gensync-1.0.0-beta.1"
+      sources."get-caller-file-2.0.5"
+      sources."get-stdin-4.0.1"
+      sources."get-stream-4.1.0"
+      sources."get-value-2.0.6"
+      sources."getpass-0.1.7"
+      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."globals-11.12.0"
+      sources."globby-9.2.0"
+      sources."globule-1.3.2"
+      sources."graceful-fs-4.2.3"
+      sources."gzip-size-5.1.1"
+      sources."hammerjs-2.0.8"
+      sources."handle-thing-2.0.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-3.0.0"
+      sources."has-symbols-1.0.1"
+      sources."has-unicode-2.0.1"
+      sources."has-value-1.0.0"
+      (sources."has-values-1.0.0" // {
+        dependencies = [
+          sources."kind-of-4.0.0"
+        ];
+      })
+      sources."hash-base-3.0.4"
+      sources."hash-sum-2.0.0"
+      sources."hash.js-1.1.7"
+      sources."he-1.2.0"
+      sources."hex-color-regex-1.1.0"
+      sources."highlight.js-9.18.1"
+      sources."hmac-drbg-1.0.1"
+      sources."hoopy-0.1.4"
+      sources."hosted-git-info-2.8.5"
+      sources."hpack.js-2.1.6"
+      sources."hsl-regex-1.0.0"
+      sources."hsla-regex-1.0.0"
+      sources."html-comment-regex-1.1.2"
+      sources."html-entities-1.3.1"
+      (sources."html-minifier-3.5.21" // {
+        dependencies = [
+          sources."commander-2.17.1"
+        ];
+      })
+      sources."html-tags-2.0.0"
+      (sources."html-webpack-plugin-3.2.0" // {
+        dependencies = [
+          sources."big.js-3.2.0"
+          sources."json5-0.5.1"
+          sources."loader-utils-0.2.17"
+          sources."util.promisify-1.0.0"
+        ];
+      })
+      (sources."htmlparser2-3.10.1" // {
+        dependencies = [
+          sources."entities-1.1.2"
+          sources."readable-stream-3.6.0"
+        ];
+      })
+      sources."http-deceiver-1.2.7"
+      (sources."http-errors-1.7.2" // {
+        dependencies = [
+          sources."inherits-2.0.3"
+        ];
+      })
+      sources."http-proxy-1.18.1"
+      sources."http-proxy-middleware-0.19.1"
+      sources."http-signature-1.2.0"
+      sources."https-browserify-1.0.0"
+      sources."human-signals-1.1.1"
+      sources."iconv-lite-0.4.24"
+      sources."icss-utils-4.1.1"
+      sources."ieee754-1.1.13"
+      sources."iferr-0.1.5"
+      sources."ignore-4.0.6"
+      sources."import-cwd-2.1.0"
+      sources."import-fresh-2.0.0"
+      sources."import-from-2.1.0"
+      sources."import-local-2.0.0"
+      sources."imurmurhash-0.1.4"
+      sources."in-publish-2.0.1"
+      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."inquirer-7.0.1" // {
+        dependencies = [
+          sources."ansi-regex-5.0.0"
+          sources."cli-cursor-3.1.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."mimic-fn-2.1.0"
+          sources."onetime-5.1.0"
+          sources."restore-cursor-3.1.0"
+          (sources."string-width-4.2.0" // {
+            dependencies = [
+              sources."strip-ansi-6.0.0"
+            ];
+          })
+          (sources."strip-ansi-5.2.0" // {
+            dependencies = [
+              sources."ansi-regex-4.1.0"
+            ];
+          })
+        ];
+      })
+      (sources."internal-ip-4.3.0" // {
+        dependencies = [
+          sources."default-gateway-4.2.0"
+        ];
+      })
+      sources."invariant-2.2.4"
+      sources."ip-1.1.5"
+      sources."ip-regex-2.1.0"
+      sources."ipaddr.js-1.9.1"
+      sources."is-absolute-url-2.1.0"
+      (sources."is-accessor-descriptor-0.1.6" // {
+        dependencies = [
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."is-arguments-1.0.4"
+      sources."is-arrayish-0.2.1"
+      sources."is-binary-path-1.0.1"
+      sources."is-buffer-1.1.6"
+      sources."is-callable-1.1.5"
+      sources."is-ci-1.2.1"
+      sources."is-color-stop-1.1.0"
+      (sources."is-data-descriptor-0.1.4" // {
+        dependencies = [
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."is-date-object-1.0.2"
+      (sources."is-descriptor-0.1.6" // {
+        dependencies = [
+          sources."kind-of-5.1.0"
+        ];
+      })
+      sources."is-directory-0.3.1"
+      sources."is-docker-2.0.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-number-3.0.0" // {
+        dependencies = [
+          sources."kind-of-3.2.2"
+        ];
+      })
+      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-1.1.0"
+      sources."is-plain-object-2.0.4"
+      sources."is-promise-2.1.0"
+      sources."is-regex-1.0.5"
+      sources."is-resolvable-1.1.0"
+      sources."is-stream-1.1.0"
+      sources."is-svg-3.0.0"
+      sources."is-symbol-1.0.3"
+      sources."is-typedarray-1.0.0"
+      sources."is-utf8-0.2.1"
+      sources."is-valid-glob-1.0.0"
+      sources."is-windows-1.0.2"
+      sources."is-wsl-1.1.0"
+      sources."isarray-1.0.0"
+      sources."isexe-2.0.0"
+      sources."isobject-3.0.1"
+      sources."isstream-0.1.2"
+      sources."javascript-stringify-2.0.1"
+      (sources."jest-worker-25.5.0" // {
+        dependencies = [
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.1.0"
+        ];
+      })
+      sources."js-base64-2.6.2"
+      sources."js-message-1.0.5"
+      sources."js-queue-2.0.0"
+      sources."js-tokens-4.0.0"
+      sources."js-yaml-3.13.1"
+      sources."jsbn-0.1.1"
+      sources."jsesc-2.5.2"
+      sources."json-parse-better-errors-1.0.2"
+      sources."json-schema-0.2.3"
+      sources."json-schema-traverse-0.4.1"
+      sources."json-stable-stringify-without-jsonify-1.0.1"
+      sources."json-stringify-safe-5.0.1"
+      sources."json3-3.3.3"
+      sources."json5-2.1.3"
+      sources."jsonfile-4.0.0"
+      sources."jsprim-1.4.1"
+      sources."killable-1.0.1"
+      sources."kind-of-6.0.3"
+      sources."launch-editor-2.2.1"
+      sources."launch-editor-middleware-2.2.1"
+      sources."leven-3.1.0"
+      sources."levenary-1.1.1"
+      sources."levn-0.3.0"
+      sources."lines-and-columns-1.1.6"
+      (sources."load-json-file-1.1.0" // {
+        dependencies = [
+          sources."parse-json-2.2.0"
+          sources."pify-2.3.0"
+        ];
+      })
+      (sources."loader-fs-cache-1.0.3" // {
+        dependencies = [
+          sources."find-cache-dir-0.1.1"
+          sources."find-up-1.1.2"
+          sources."path-exists-2.1.0"
+          sources."pkg-dir-1.0.0"
+        ];
+      })
+      sources."loader-runner-2.4.0"
+      (sources."loader-utils-1.2.3" // {
+        dependencies = [
+          sources."json5-1.0.1"
+        ];
+      })
+      sources."locate-path-3.0.0"
+      sources."lodash-4.17.15"
+      sources."lodash.defaultsdeep-4.6.1"
+      sources."lodash.kebabcase-4.1.1"
+      sources."lodash.mapvalues-4.6.0"
+      sources."lodash.memoize-4.1.2"
+      sources."lodash.transform-4.6.0"
+      sources."lodash.uniq-4.5.0"
+      sources."log-symbols-2.2.0"
+      sources."loglevel-1.6.8"
+      sources."loose-envify-1.4.0"
+      sources."loud-rejection-1.6.0"
+      sources."lower-case-1.1.4"
+      sources."lru-cache-5.1.1"
+      sources."make-dir-2.1.0"
+      sources."map-cache-0.2.2"
+      sources."map-obj-1.0.1"
+      sources."map-visit-1.0.0"
+      sources."marked-1.1.1"
+      sources."md5.js-1.3.5"
+      sources."mdn-data-2.0.4"
+      sources."media-typer-0.3.0"
+      sources."memory-fs-0.4.1"
+      sources."meow-3.7.0"
+      sources."merge-descriptors-1.0.1"
+      sources."merge-source-map-1.1.0"
+      sources."merge-stream-2.0.0"
+      sources."merge2-1.3.0"
+      sources."methods-1.1.2"
+      sources."microevent.ts-0.1.1"
+      sources."micromatch-3.1.10"
+      sources."miller-rabin-4.0.1"
+      sources."mime-2.4.6"
+      sources."mime-db-1.42.0"
+      sources."mime-types-2.1.25"
+      sources."mimic-fn-1.2.0"
+      (sources."mini-css-extract-plugin-0.9.0" // {
+        dependencies = [
+          sources."normalize-url-1.9.1"
+          sources."schema-utils-1.0.0"
+        ];
+      })
+      sources."minimalistic-assert-1.0.1"
+      sources."minimalistic-crypto-utils-1.0.1"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      (sources."minipass-3.1.3" // {
+        dependencies = [
+          sources."yallist-4.0.0"
+        ];
+      })
+      sources."minipass-collect-1.0.2"
+      sources."minipass-flush-1.0.5"
+      sources."minipass-pipeline-1.2.3"
+      sources."mississippi-3.0.0"
+      (sources."mixin-deep-1.3.2" // {
+        dependencies = [
+          sources."is-extendable-1.0.1"
+        ];
+      })
+      (sources."mkdirp-0.5.1" // {
+        dependencies = [
+          sources."minimist-0.0.8"
+        ];
+      })
+      sources."move-concurrently-1.0.1"
+      sources."ms-2.1.2"
+      sources."multicast-dns-6.2.3"
+      sources."multicast-dns-service-types-1.1.0"
+      sources."mute-stream-0.0.8"
+      sources."mz-2.7.0"
+      sources."nan-2.14.0"
+      sources."nanomatch-1.2.13"
+      sources."natural-compare-1.4.0"
+      sources."negotiator-0.6.2"
+      sources."neo-async-2.6.1"
+      sources."nice-try-1.0.5"
+      sources."no-case-2.3.2"
+      sources."node-forge-0.9.0"
+      (sources."node-gyp-3.8.0" // {
+        dependencies = [
+          sources."semver-5.3.0"
+        ];
+      })
+      sources."node-ipc-9.1.1"
+      (sources."node-libs-browser-2.2.1" // {
+        dependencies = [
+          sources."punycode-1.4.1"
+        ];
+      })
+      sources."node-releases-1.1.53"
+      (sources."node-sass-4.14.1" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."ansi-styles-2.2.1"
+          sources."chalk-1.1.3"
+          sources."cross-spawn-3.0.1"
+          sources."lru-cache-4.1.5"
+          sources."strip-ansi-3.0.1"
+          sources."supports-color-2.0.0"
+          sources."yallist-2.1.2"
+        ];
+      })
+      sources."nopt-3.0.6"
+      sources."normalize-package-data-2.5.0"
+      sources."normalize-path-3.0.0"
+      sources."normalize-range-0.1.2"
+      sources."normalize-url-3.3.0"
+      sources."npm-run-path-2.0.2"
+      sources."npmlog-4.1.2"
+      sources."nth-check-1.0.2"
+      sources."num2fraction-1.2.2"
+      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."kind-of-3.2.2"
+        ];
+      })
+      sources."object-hash-1.3.1"
+      sources."object-inspect-1.7.0"
+      (sources."object-is-1.1.2" // {
+        dependencies = [
+          sources."es-abstract-1.17.6"
+          sources."is-callable-1.2.0"
+          sources."is-regex-1.1.0"
+        ];
+      })
+      sources."object-keys-1.1.1"
+      sources."object-visit-1.0.1"
+      sources."object.assign-4.1.0"
+      sources."object.getownpropertydescriptors-2.1.0"
+      sources."object.pick-1.3.0"
+      sources."object.values-1.1.1"
+      sources."obuf-1.1.2"
+      sources."on-finished-2.3.0"
+      sources."on-headers-1.0.2"
+      sources."once-1.4.0"
+      sources."onetime-2.0.1"
+      sources."open-6.4.0"
+      sources."opener-1.5.1"
+      sources."opn-5.5.0"
+      sources."optionator-0.8.3"
+      (sources."ora-3.4.0" // {
+        dependencies = [
+          sources."strip-ansi-5.2.0"
+        ];
+      })
+      sources."original-1.0.2"
+      sources."os-browserify-0.3.0"
+      sources."os-homedir-1.0.2"
+      sources."os-tmpdir-1.0.2"
+      sources."osenv-0.1.5"
+      sources."p-finally-1.0.0"
+      sources."p-limit-2.2.1"
+      sources."p-locate-3.0.0"
+      sources."p-map-3.0.0"
+      sources."p-retry-3.0.1"
+      sources."p-try-2.2.0"
+      sources."pako-1.0.11"
+      sources."parallel-transform-1.2.0"
+      sources."param-case-2.1.1"
+      (sources."parent-module-1.0.1" // {
+        dependencies = [
+          sources."callsites-3.1.0"
+        ];
+      })
+      sources."parse-asn1-5.1.5"
+      sources."parse-json-5.0.0"
+      sources."parse5-5.1.1"
+      sources."parse5-htmlparser2-tree-adapter-5.1.1"
+      sources."parseurl-1.3.3"
+      sources."pascalcase-0.1.1"
+      sources."path-browserify-0.0.1"
+      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-to-regexp-0.1.7"
+      (sources."path-type-3.0.0" // {
+        dependencies = [
+          sources."pify-3.0.0"
+        ];
+      })
+      sources."pbkdf2-3.0.17"
+      sources."performance-now-2.1.0"
+      sources."picomatch-2.2.2"
+      sources."pify-4.0.1"
+      sources."pinkie-2.0.4"
+      sources."pinkie-promise-2.0.1"
+      sources."pkg-dir-3.0.0"
+      (sources."pkg-up-2.0.0" // {
+        dependencies = [
+          sources."find-up-2.1.0"
+          sources."locate-path-2.0.0"
+          sources."p-limit-1.3.0"
+          sources."p-locate-2.0.0"
+          sources."p-try-1.0.0"
+        ];
+      })
+      sources."pnp-webpack-plugin-1.6.4"
+      (sources."portfinder-1.0.26" // {
+        dependencies = [
+          sources."debug-3.2.6"
+        ];
+      })
+      sources."posix-character-classes-0.1.1"
+      (sources."postcss-7.0.32" // {
+        dependencies = [
+          sources."supports-color-6.1.0"
+        ];
+      })
+      sources."postcss-calc-7.0.2"
+      (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-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-load-config-2.1.0"
+      (sources."postcss-loader-3.0.0" // {
+        dependencies = [
+          sources."schema-utils-1.0.0"
+        ];
+      })
+      (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-2.0.0"
+      sources."postcss-modules-local-by-default-3.0.2"
+      sources."postcss-modules-scope-2.2.0"
+      sources."postcss-modules-values-3.0.0"
+      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-reduce-initial-4.0.3"
+      (sources."postcss-reduce-transforms-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      sources."postcss-selector-parser-6.0.2"
+      (sources."postcss-svgo-4.0.2" // {
+        dependencies = [
+          sources."postcss-value-parser-3.3.1"
+        ];
+      })
+      sources."postcss-unique-selectors-4.0.1"
+      sources."postcss-value-parser-4.1.0"
+      sources."prelude-ls-1.1.2"
+      sources."prepend-http-1.0.4"
+      sources."prettier-1.19.1"
+      sources."prettier-linter-helpers-1.0.0"
+      sources."pretty-error-2.1.1"
+      sources."private-0.1.8"
+      sources."process-0.11.10"
+      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."pseudomap-1.0.2"
+      sources."psl-1.6.0"
+      sources."public-encrypt-4.0.3"
+      sources."pump-3.0.0"
+      (sources."pumpify-1.5.1" // {
+        dependencies = [
+          sources."pump-2.0.1"
+        ];
+      })
+      sources."punycode-2.1.1"
+      sources."q-1.5.1"
+      sources."qs-6.5.2"
+      sources."query-string-4.3.4"
+      sources."querystring-0.2.0"
+      sources."querystring-es3-0.2.1"
+      sources."querystringify-2.1.1"
+      sources."randombytes-2.1.0"
+      sources."randomfill-1.0.4"
+      sources."range-parser-1.2.1"
+      sources."raw-body-2.4.0"
+      sources."read-pkg-5.2.0"
+      (sources."read-pkg-up-1.0.1" // {
+        dependencies = [
+          sources."find-up-1.1.2"
+          sources."path-exists-2.1.0"
+          sources."path-type-1.1.0"
+          sources."pify-2.3.0"
+          sources."read-pkg-1.1.0"
+        ];
+      })
+      sources."readable-stream-2.3.6"
+      sources."readdirp-2.2.1"
+      (sources."redent-1.0.0" // {
+        dependencies = [
+          sources."indent-string-2.1.0"
+          sources."strip-indent-1.0.1"
+        ];
+      })
+      sources."regenerate-1.4.1"
+      sources."regenerate-unicode-properties-8.2.0"
+      sources."regenerator-runtime-0.13.5"
+      sources."regenerator-transform-0.14.4"
+      sources."regex-not-1.0.2"
+      sources."regexp.prototype.flags-1.3.0"
+      sources."regexpp-3.1.0"
+      sources."regexpu-core-4.7.0"
+      sources."regjsgen-0.5.2"
+      (sources."regjsparser-0.6.4" // {
+        dependencies = [
+          sources."jsesc-0.5.0"
+        ];
+      })
+      sources."relateurl-0.2.7"
+      sources."remove-trailing-separator-1.1.0"
+      (sources."renderkid-2.0.3" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."css-select-1.2.0"
+          sources."css-what-2.1.3"
+          sources."domutils-1.5.1"
+          sources."strip-ansi-3.0.1"
+        ];
+      })
+      sources."repeat-element-1.1.3"
+      sources."repeat-string-1.6.1"
+      sources."repeating-2.0.1"
+      sources."request-2.88.2"
+      sources."require-directory-2.1.1"
+      sources."require-main-filename-2.0.0"
+      sources."requires-port-1.0.0"
+      sources."resize-observer-polyfill-1.5.1"
+      sources."resolve-1.14.1"
+      sources."resolve-cwd-2.0.0"
+      sources."resolve-from-3.0.0"
+      sources."resolve-url-0.2.1"
+      sources."restore-cursor-2.0.0"
+      sources."ret-0.1.15"
+      sources."retry-0.12.0"
+      sources."rgb-regex-1.0.1"
+      sources."rgba-regex-1.0.0"
+      sources."rimraf-2.7.1"
+      sources."ripemd160-2.0.2"
+      sources."run-async-2.3.0"
+      sources."run-queue-1.0.3"
+      sources."rxjs-6.5.3"
+      sources."safe-buffer-5.1.2"
+      sources."safe-regex-1.1.0"
+      sources."safer-buffer-2.1.2"
+      (sources."sass-graph-2.2.5" // {
+        dependencies = [
+          sources."emoji-regex-7.0.3"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+          sources."yargs-13.3.2"
+          sources."yargs-parser-13.1.2"
+        ];
+      })
+      (sources."sass-loader-8.0.2" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."sax-1.2.4"
+      sources."schema-utils-2.6.1"
+      (sources."scss-tokenizer-0.2.3" // {
+        dependencies = [
+          sources."source-map-0.4.4"
+        ];
+      })
+      sources."select-hose-2.0.0"
+      sources."selfsigned-1.10.7"
+      sources."semver-5.7.1"
+      (sources."send-0.17.1" // {
+        dependencies = [
+          (sources."debug-2.6.9" // {
+            dependencies = [
+              sources."ms-2.0.0"
+            ];
+          })
+          sources."mime-1.6.0"
+          sources."ms-2.1.1"
+        ];
+      })
+      sources."serialize-javascript-2.1.2"
+      (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-value-2.0.1" // {
+        dependencies = [
+          sources."extend-shallow-2.0.1"
+        ];
+      })
+      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."shell-quote-1.7.2"
+      sources."signal-exit-3.0.2"
+      (sources."simple-swizzle-0.2.2" // {
+        dependencies = [
+          sources."is-arrayish-0.3.2"
+        ];
+      })
+      sources."slash-2.0.0"
+      sources."slice-ansi-2.1.0"
+      (sources."snapdragon-0.8.2" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."define-property-0.2.5"
+          sources."extend-shallow-2.0.1"
+          sources."ms-2.0.0"
+          sources."source-map-0.5.7"
+        ];
+      })
+      (sources."snapdragon-node-2.1.1" // {
+        dependencies = [
+          sources."define-property-1.0.0"
+          sources."is-accessor-descriptor-1.0.0"
+          sources."is-data-descriptor-1.0.0"
+          sources."is-descriptor-1.0.2"
+        ];
+      })
+      (sources."snapdragon-util-3.0.1" // {
+        dependencies = [
+          sources."kind-of-3.2.2"
+        ];
+      })
+      (sources."sockjs-0.3.20" // {
+        dependencies = [
+          sources."uuid-3.4.0"
+        ];
+      })
+      (sources."sockjs-client-1.4.0" // {
+        dependencies = [
+          sources."debug-3.2.6"
+          sources."faye-websocket-0.11.3"
+        ];
+      })
+      sources."sort-keys-1.1.2"
+      sources."source-list-map-2.0.1"
+      sources."source-map-0.6.1"
+      sources."source-map-resolve-0.5.3"
+      sources."source-map-support-0.5.16"
+      sources."source-map-url-0.4.0"
+      sources."spdx-correct-3.1.0"
+      sources."spdx-exceptions-2.2.0"
+      sources."spdx-expression-parse-3.0.0"
+      sources."spdx-license-ids-3.0.5"
+      sources."spdy-4.0.2"
+      (sources."spdy-transport-3.0.0" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+        ];
+      })
+      sources."split-string-3.1.0"
+      sources."sprintf-js-1.0.3"
+      sources."sshpk-1.16.1"
+      sources."ssri-6.0.1"
+      sources."stable-0.1.8"
+      sources."stackframe-1.2.0"
+      (sources."static-extend-0.1.2" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+        ];
+      })
+      sources."statuses-1.5.0"
+      sources."stdout-stream-1.4.1"
+      sources."stream-browserify-2.0.2"
+      sources."stream-each-1.2.3"
+      sources."stream-http-2.8.3"
+      sources."stream-shift-1.0.1"
+      sources."strict-uri-encode-1.1.0"
+      (sources."string-width-2.1.1" // {
+        dependencies = [
+          sources."ansi-regex-3.0.0"
+          sources."strip-ansi-4.0.0"
+        ];
+      })
+      (sources."string.prototype.trimend-1.0.1" // {
+        dependencies = [
+          sources."es-abstract-1.17.6"
+          sources."is-callable-1.2.0"
+          sources."is-regex-1.1.0"
+        ];
+      })
+      sources."string.prototype.trimleft-2.1.1"
+      sources."string.prototype.trimright-2.1.1"
+      (sources."string.prototype.trimstart-1.0.1" // {
+        dependencies = [
+          sources."es-abstract-1.17.6"
+          sources."is-callable-1.2.0"
+          sources."is-regex-1.1.0"
+        ];
+      })
+      sources."string_decoder-1.1.1"
+      (sources."strip-ansi-6.0.0" // {
+        dependencies = [
+          sources."ansi-regex-5.0.0"
+        ];
+      })
+      sources."strip-bom-2.0.0"
+      sources."strip-eof-1.0.0"
+      sources."strip-final-newline-2.0.0"
+      sources."strip-indent-2.0.0"
+      sources."strip-json-comments-3.0.1"
+      (sources."stylehacks-4.0.3" // {
+        dependencies = [
+          sources."postcss-selector-parser-3.1.2"
+        ];
+      })
+      sources."supports-color-5.5.0"
+      sources."svg-tags-1.0.0"
+      sources."svgo-1.3.2"
+      (sources."table-5.4.6" // {
+        dependencies = [
+          sources."emoji-regex-7.0.3"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
+      sources."tapable-1.1.3"
+      sources."tar-2.2.2"
+      sources."terser-4.6.10"
+      (sources."terser-webpack-plugin-1.4.3" // {
+        dependencies = [
+          sources."schema-utils-1.0.0"
+        ];
+      })
+      sources."text-table-0.2.0"
+      sources."thenify-3.3.1"
+      sources."thenify-all-1.6.0"
+      sources."thread-loader-2.1.3"
+      sources."through-2.3.8"
+      sources."through2-2.0.5"
+      sources."thunky-1.1.0"
+      sources."timers-browserify-2.0.11"
+      sources."timsort-0.3.0"
+      sources."tmp-0.0.33"
+      sources."to-arraybuffer-1.0.1"
+      sources."to-fast-properties-2.0.0"
+      (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."toidentifier-1.0.0"
+      sources."toposort-1.0.7"
+      sources."tough-cookie-2.5.0"
+      sources."trim-newlines-1.0.0"
+      sources."true-case-path-1.0.3"
+      sources."tryer-1.0.1"
+      (sources."ts-loader-6.2.2" // {
+        dependencies = [
+          sources."braces-3.0.2"
+          sources."fill-range-7.0.1"
+          sources."is-number-7.0.0"
+          sources."micromatch-4.0.2"
+          sources."semver-6.3.0"
+          sources."to-regex-range-5.0.1"
+        ];
+      })
+      sources."ts-pnp-1.2.0"
+      sources."tslib-1.10.0"
+      (sources."tslint-5.20.1" // {
+        dependencies = [
+          sources."tsutils-2.29.0"
+        ];
+      })
+      sources."tsutils-3.17.1"
+      sources."tty-browserify-0.0.0"
+      sources."tunnel-agent-0.6.0"
+      sources."tweetnacl-0.14.5"
+      sources."type-check-0.3.2"
+      sources."type-fest-0.6.0"
+      sources."type-is-1.6.18"
+      sources."typedarray-0.0.6"
+      sources."typescript-3.9.5"
+      (sources."uglify-js-3.4.10" // {
+        dependencies = [
+          sources."commander-2.19.0"
+        ];
+      })
+      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."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."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."upper-case-1.1.3"
+      sources."uri-js-4.2.2"
+      sources."urix-0.1.0"
+      (sources."url-0.11.0" // {
+        dependencies = [
+          sources."punycode-1.3.2"
+        ];
+      })
+      sources."url-loader-2.3.0"
+      sources."url-parse-1.4.7"
+      sources."use-3.1.1"
+      (sources."util-0.11.1" // {
+        dependencies = [
+          sources."inherits-2.0.3"
+        ];
+      })
+      sources."util-deprecate-1.0.2"
+      (sources."util.promisify-1.0.1" // {
+        dependencies = [
+          sources."es-abstract-1.17.6"
+          sources."is-callable-1.2.0"
+          sources."is-regex-1.1.0"
+        ];
+      })
+      sources."utila-0.4.0"
+      sources."utils-merge-1.0.1"
+      sources."uuid-3.3.3"
+      sources."v-lazy-image-1.4.0"
+      sources."v8-compile-cache-2.1.0"
+      sources."validate-npm-package-license-3.0.4"
+      sources."vary-1.1.2"
+      sources."vendors-1.0.4"
+      sources."verror-1.10.0"
+      sources."vm-browserify-1.1.2"
+      sources."vue-2.6.12"
+      sources."vue-class-component-7.2.5"
+      sources."vue-cli-plugin-buefy-0.3.7"
+      sources."vue-cli-plugin-fontawesome-0.2.0"
+      (sources."vue-cli-plugin-i18n-1.0.1" // {
+        dependencies = [
+          sources."deepmerge-4.2.2"
+          sources."rimraf-3.0.2"
+        ];
+      })
+      sources."vue-dragscroll-2.1.0"
+      sources."vue-eslint-parser-7.0.0"
+      sources."vue-hot-reload-api-2.3.4"
+      sources."vue-i18n-8.21.0"
+      (sources."vue-i18n-extract-1.0.2" // {
+        dependencies = [
+          sources."emoji-regex-7.0.3"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+          sources."yargs-13.3.2"
+          sources."yargs-parser-13.1.2"
+        ];
+      })
+      (sources."vue-loader-15.9.3" // {
+        dependencies = [
+          sources."hash-sum-1.0.2"
+        ];
+      })
+      sources."vue-property-decorator-9.0.0"
+      sources."vue-router-3.4.3"
+      (sources."vue-style-loader-4.1.2" // {
+        dependencies = [
+          sources."hash-sum-1.0.2"
+        ];
+      })
+      sources."vue-template-compiler-2.6.12"
+      sources."vue-template-es2015-compiler-1.9.1"
+      sources."vuex-3.5.1"
+      sources."vuex-class-component-2.3.5"
+      sources."watchpack-1.6.1"
+      sources."wbuf-1.7.3"
+      sources."wcwidth-1.0.1"
+      (sources."webpack-4.42.1" // {
+        dependencies = [
+          sources."eslint-scope-4.0.3"
+          sources."mkdirp-0.5.4"
+          sources."schema-utils-1.0.0"
+        ];
+      })
+      (sources."webpack-bundle-analyzer-3.8.0" // {
+        dependencies = [
+          sources."acorn-7.3.1"
+        ];
+      })
+      sources."webpack-chain-6.4.0"
+      sources."webpack-dev-middleware-3.7.2"
+      (sources."webpack-dev-server-3.11.0" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."emoji-regex-7.0.3"
+          sources."is-absolute-url-3.0.3"
+          sources."schema-utils-1.0.0"
+          sources."semver-6.3.0"
+          (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."supports-color-6.1.0"
+          sources."yargs-13.3.2"
+          sources."yargs-parser-13.1.2"
+        ];
+      })
+      sources."webpack-log-2.0.0"
+      sources."webpack-merge-4.2.2"
+      sources."webpack-sources-1.4.3"
+      sources."websocket-driver-0.6.5"
+      sources."websocket-extensions-0.1.4"
+      sources."which-1.3.1"
+      sources."which-module-2.0.0"
+      sources."wide-align-1.1.3"
+      sources."word-wrap-1.2.3"
+      sources."worker-farm-1.7.0"
+      sources."worker-rpc-0.1.1"
+      (sources."wrap-ansi-6.2.0" // {
+        dependencies = [
+          sources."ansi-styles-4.2.1"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.0"
+        ];
+      })
+      sources."wrappy-1.0.2"
+      sources."write-1.0.3"
+      sources."ws-6.2.1"
+      sources."xtend-4.0.2"
+      sources."y18n-4.0.0"
+      sources."yallist-3.1.1"
+      (sources."yargs-15.3.1" // {
+        dependencies = [
+          sources."cliui-6.0.0"
+          sources."find-up-4.1.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."locate-path-5.0.0"
+          sources."p-locate-4.1.0"
+          sources."path-exists-4.0.0"
+          sources."string-width-4.2.0"
+        ];
+      })
+      sources."yargs-parser-18.1.3"
+      (sources."yorkie-2.0.0" // {
+        dependencies = [
+          sources."cross-spawn-5.1.0"
+          sources."execa-0.8.0"
+          sources."get-stream-3.0.0"
+          sources."lru-cache-4.1.5"
+          sources."normalize-path-1.0.0"
+          sources."yallist-2.1.2"
+        ];
+      })
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      homepage = https://ldgallery.pacien.org/;
+      license = "AGPL-3";
+    };
+    production = false;
+    bypassCache = true;
+    reconstructLock = false;
+  };
+in
+{
+  args = args;
+  sources = sources;
+  tarball = nodeEnv.buildNodeSourceDist args;
+  package = nodeEnv.buildNodePackage args;
+  shell = nodeEnv.buildNodeShell args;
+}
\ No newline at end of file
diff --git a/pkgs/tools/graphics/luxcorerender/default.nix b/pkgs/tools/graphics/luxcorerender/default.nix
index 3afb6ebd987..ff235c1f448 100644
--- a/pkgs/tools/graphics/luxcorerender/default.nix
+++ b/pkgs/tools/graphics/luxcorerender/default.nix
@@ -1,10 +1,10 @@
-{ stdenv, fetchFromGitHub, cmake, boost165, pkgconfig, python36
+{ stdenv, fetchFromGitHub, cmake, boost165, pkg-config, python36
 , tbb, openimageio, libjpeg, libpng, zlib, libtiff, ilmbase
 , freetype, openexr, libXdmcp, libxkbcommon, epoxy, at-spi2-core
 , dbus, doxygen, qt5, c-blosc, libGLU, gnome3, dconf, gtk3, pcre
 , bison, flex, libpthreadstubs, libX11
 , embree2, makeWrapper, gsettings-desktop-schemas, glib
-, withOpenCL ? true , opencl-headers, ocl-icd, opencl-clhpp
+, withOpenCL ? true , opencl-headers, ocl-icd, opencl-clhpp, rocm-opencl-runtime
 }:
 
 let
@@ -30,19 +30,21 @@ in stdenv.mkDerivation {
     inherit sha256;
   };
 
-  buildInputs =
-   [ embree2 pkgconfig cmake zlib boost_static libjpeg
-     libtiff libpng ilmbase freetype openexr openimageio
-     tbb qt5.full c-blosc libGLU pcre bison
-     flex libX11 libpthreadstubs python libXdmcp libxkbcommon
-     epoxy at-spi2-core dbus doxygen
-     # needed for GSETTINGS_SCHEMAS_PATH
-     gsettings-desktop-schemas glib gtk3
-     # needed for XDG_ICON_DIRS
-     gnome3.adwaita-icon-theme
-     makeWrapper
-     (stdenv.lib.getLib dconf)
-   ] ++ stdenv.lib.optionals withOpenCL [opencl-headers ocl-icd opencl-clhpp];
+  nativeBuildInputs = [ cmake pkg-config];
+
+  buildInputs = [
+    embree2 zlib boost_static libjpeg
+    libtiff libpng ilmbase freetype openexr openimageio
+    tbb qt5.full c-blosc libGLU pcre bison
+    flex libX11 libpthreadstubs python libXdmcp libxkbcommon
+    epoxy at-spi2-core dbus doxygen
+    # needed for GSETTINGS_SCHEMAS_PATH
+    gsettings-desktop-schemas glib gtk3
+    # needed for XDG_ICON_DIRS
+    gnome3.adwaita-icon-theme
+    makeWrapper
+    (stdenv.lib.getLib dconf)
+   ] ++ stdenv.lib.optionals withOpenCL [ opencl-headers ocl-icd opencl-clhpp rocm-opencl-runtime ];
 
   cmakeFlags = [
     "-DOpenEXR_Iex_INCLUDE_DIR=${openexr.dev}/include/OpenEXR"
@@ -55,7 +57,8 @@ in stdenv.mkDerivation {
     "-DEMBREE_LIBRARY=${embree2}/lib/libembree.so"
     "-DBoost_PYTHON_LIBRARY_RELEASE=${boost_static}/lib/libboost_python3-mt.so"
   ] ++ stdenv.lib.optional withOpenCL
-       "-DOPENCL_INCLUDE_DIR=${opencl-headers}/include";
+    "-DOPENCL_INCLUDE_DIR=${opencl-headers}/include";
+
   preConfigure = ''
     NIX_CFLAGS_COMPILE+=" -isystem ${python}/include/python${python.pythonVersion}"
     NIX_LDFLAGS+=" -lpython3"
diff --git a/pkgs/tools/graphics/optipng/default.nix b/pkgs/tools/graphics/optipng/default.nix
index 93c2f2c3502..571e89297c7 100644
--- a/pkgs/tools/graphics/optipng/default.nix
+++ b/pkgs/tools/graphics/optipng/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchurl, libpng, static ? false
+{ stdenv, fetchurl, libpng
+, static ? stdenv.hostPlatform.isStatic
 }:
 
 # This package comes with its own copy of zlib, libpng and pngxtern
diff --git a/pkgs/tools/graphics/vulkan-tools-lunarg/default.nix b/pkgs/tools/graphics/vulkan-tools-lunarg/default.nix
index 9ce87b4cb67..784d0321664 100644
--- a/pkgs/tools/graphics/vulkan-tools-lunarg/default.nix
+++ b/pkgs/tools/graphics/vulkan-tools-lunarg/default.nix
@@ -6,15 +6,16 @@
 stdenv.mkDerivation rec {
   pname = "vulkan-tools-lunarg";
   # The version must match that in vulkan-headers
-  version = "1.2.141.0";
+  version = "1.2.162.0";
 
-  src = (assert version == vulkan-headers.version; fetchFromGitHub {
-    owner = "LunarG";
-    repo = "VulkanTools";
-    rev = "sdk-${version}";
-    sha256 = "1zsgc1hdmivdahzrarx7a5byhgnmm5ahz366l92fmdb8pffgq42g";
-    fetchSubmodules = true;
-  });
+  src = (assert version == vulkan-headers.version;
+    fetchFromGitHub {
+      owner = "LunarG";
+      repo = "VulkanTools";
+      rev = "sdk-${version}";
+      sha256 = "13v4202bfd7d7nwi8w12ja9k1vi10p9xxypzkpi063hmsgzxm5k5";
+      fetchSubmodules = true;
+    });
 
   nativeBuildInputs = [ cmake pkgconfig python3 jq ];
 
diff --git a/pkgs/tools/graphics/vulkan-tools/default.nix b/pkgs/tools/graphics/vulkan-tools/default.nix
index ff620ef8287..76c1df3213c 100644
--- a/pkgs/tools/graphics/vulkan-tools/default.nix
+++ b/pkgs/tools/graphics/vulkan-tools/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vulkan-tools";
-  version = "1.2.141.0";
+  version = "1.2.162.0";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "Vulkan-Tools";
     rev = "sdk-${version}";
-    sha256 = "1ch56ihm7rmilipfyc4i4ww7l6i20fb3qikkpm1ch43kzn42zjaw";
+    sha256 = "088vqh956zma3p1qc3p6rsygf5s395b6cv8b1x0whp2a0a1y81xz";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/tools/misc/agedu/default.nix b/pkgs/tools/misc/agedu/default.nix
index c9bad789ad2..3cdfa36337f 100644
--- a/pkgs/tools/misc/agedu/default.nix
+++ b/pkgs/tools/misc/agedu/default.nix
@@ -1,15 +1,17 @@
 {stdenv, fetchgit, autoreconfHook, halibut}:
 let
-  date = "20200206";
-  rev = "963bc9d";
+  date = "20200705";
+  rev = "2a7d4a2";
 in
 stdenv.mkDerivation {
-  name = "agedu-${date}.${rev}";
+  pname = "agedu";
+  version = "${date}.${rev}";
+
   # upstream provides tarballs but it seems they disappear after the next version is released
   src = fetchgit {
     url = "https://git.tartarus.org/simon/agedu.git";
     inherit rev;
-    sha256 = "1jmvgg2v6aqgbgpxbndrdhgfhlglrq4yv4sdbjaj6bsz9fb8lqhc";
+    sha256 = "gRNscl/vhBoZaHFCs9JjDBHDRoEpILJLtiI4YV+K/b4=";
   };
 
   nativeBuildInputs = [autoreconfHook halibut];
diff --git a/pkgs/tools/misc/barman/default.nix b/pkgs/tools/misc/barman/default.nix
index 2105ad0ae01..da79110f9a8 100644
--- a/pkgs/tools/misc/barman/default.nix
+++ b/pkgs/tools/misc/barman/default.nix
@@ -4,12 +4,12 @@
 
 buildPythonApplication rec {
   pname = "barman";
-  version = "2.11";
+  version = "2.12";
 
   outputs = [ "out" "man" ];
   src = fetchurl {
     url = "mirror://sourceforge/pgbarman/${version}/barman-${version}.tar.gz";
-    sha256 = "0w5lh4aavab9ynfy2mq09ga6j4vss4k0vlc3g6f5a9i4175g9pmr";
+    sha256 = "Ts8I6tlP2GRp90OIIKXy+cRWWvUO3Sm86zq2dtVP5YE=";
   };
 
   propagatedBuildInputs = [ dateutil argh psycopg2 boto3 argcomplete ];
diff --git a/pkgs/tools/misc/bdf2psf/default.nix b/pkgs/tools/misc/bdf2psf/default.nix
index 676467c9b67..d7faaf46020 100644
--- a/pkgs/tools/misc/bdf2psf/default.nix
+++ b/pkgs/tools/misc/bdf2psf/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bdf2psf";
-  version = "1.199";
+  version = "1.200";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/c/console-setup/bdf2psf_${version}_all.deb";
-    sha256 = "0qs0qrdagvnh4z20wp4v3v4ry6j5jihlpv3iqzzhdzzxjfrw9m9y";
+    sha256 = "07z686h2fv9b3446fcym0sfzxwgkm9cc4bd3zhpv6j8bdfadnjxw";
   };
 
   nativeBuildInputs = [ dpkg ];
diff --git a/pkgs/tools/misc/betterdiscordctl/default.nix b/pkgs/tools/misc/betterdiscordctl/default.nix
new file mode 100644
index 00000000000..9d6159bda50
--- /dev/null
+++ b/pkgs/tools/misc/betterdiscordctl/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, fetchpatch }:
+
+stdenv.mkDerivation rec {
+  pname = "betterdiscordctl";
+  version = "1.7.0";
+
+  src = fetchFromGitHub {
+    owner = "bb010g";
+    repo = "betterdiscordctl";
+    rev = "v${version}";
+    sha256 = "0qpmm5l8jhm7k0kqblc0bnr9fl4b6z8iddhjar03bb4kqgr962fa";
+  };
+
+  patches = [
+    (fetchpatch { # Required till https://github.com/bb010g/betterdiscordctl/pull/67 is merged upstream.
+      url = "https://github.com/bb010g/betterdiscordctl/pull/67/commits/f1c7170fc2626d9aec4d244977b5a73c401aa1d4.patch";
+      sha256 = "003zqd9ljb9h674sjwjvvdfs7q4cw0p1ydg3lax132vb4vz9k0zi";
+    })
+  ];
+
+  preBuild = "sed -i 's/^nix=$/&yes/g;s/^DISABLE_UPGRADE=$/&yes/g' ./betterdiscordctl";
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mkdir -p $out/share/doc/betterdiscordctl
+    install -Dm744 betterdiscordctl $out/bin/betterdiscordctl
+    install -Dm644 README.md $out/share/doc/betterdiscordctl/README.md
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/bb010g/betterdiscordctl";
+    description = "A utility for managing BetterDiscord on Linux";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ivar bb010g ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/misc/broot/default.nix b/pkgs/tools/misc/broot/default.nix
index fb8e2508294..e4561c38228 100644
--- a/pkgs/tools/misc/broot/default.nix
+++ b/pkgs/tools/misc/broot/default.nix
@@ -11,14 +11,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "broot";
-  version = "1.0.8";
+  version = "1.1.10";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "06881c8qnh917y2mn5q5qlf86idz17xi2dapsad3m1zbdr53c25j";
+    sha256 = "04nidx43w4nnccgbrw30wg9ai8p7hbklxpn1gc6gr2325yhqvwhl";
   };
 
-  cargoSha256 = "1k5qm4h028172r7i2pz5l8886qviy7ni83qxn10a8d5hsgalarvx";
+  cargoHash = "sha256-4F9HIQ1BQx4EikyH0DwlDAkYIeUJJbMsj7ZX23QD+K8=";
 
   nativeBuildInputs = [
     makeWrapper
diff --git a/pkgs/tools/misc/calamares/default.nix b/pkgs/tools/misc/calamares/default.nix
index 815129f7f0f..a671090460e 100644
--- a/pkgs/tools/misc/calamares/default.nix
+++ b/pkgs/tools/misc/calamares/default.nix
@@ -6,16 +6,17 @@
 
 mkDerivation rec {
   pname = "calamares";
-  version = "3.2.17.1";
+  version = "3.2.35.1";
 
   # release including submodule
   src = fetchurl {
     url = "https://github.com/${pname}/${pname}/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "156zpjyw8w4y23aa60mvg3d3mr0kzfq5jkl7ixgahq33zpc17ms8";
+    sha256 = "s2wnwcdrcJLG5NhugSkntBCYfPuv3T/9+PclbmK0BJ4=";
   };
 
+  nativeBuildInputs = [ cmake extra-cmake-modules ];
   buildInputs = [
-    boost cmake extra-cmake-modules kparts.dev kpmcore.out kservice.dev
+    boost kparts.dev kpmcore.out kservice.dev
     libatasmart libxcb libyamlcpp parted polkit-qt python qtbase
     qtquickcontrols qtsvg qttools qtwebengine.dev util-linux
   ];
@@ -32,18 +33,14 @@ mkDerivation rec {
 
   POLKITQT-1_POLICY_FILES_INSTALL_DIR = "$(out)/share/polkit-1/actions";
 
-  patchPhase = ''
+  postPatch = ''
     sed -e "s,/usr/bin/calamares,$out/bin/calamares," \
         -i calamares.desktop \
         -i com.github.calamares.calamares.policy
 
     sed -e 's,/usr/share/zoneinfo,${tzdata}/share/zoneinfo,' \
-        -i src/modules/locale/timezonewidget/localeconst.h \
         -i src/modules/locale/SetTimezoneJob.cpp
 
-    sed -e 's,/usr/share/i18n/locales,${glibc.out}/share/i18n/locales,' \
-        -i src/modules/locale/timezonewidget/localeconst.h
-
     sed -e 's,/usr/share/X11/xkb/rules/base.lst,${xkeyboard_config}/share/X11/xkb/rules/base.lst,' \
         -i src/modules/keyboard/keyboardwidget/keyboardglobal.h
 
@@ -56,8 +53,8 @@ mkDerivation rec {
 
   meta = with lib; {
     description = "Distribution-independent installer framework";
-    license = licenses.gpl3;
-    maintainers = with lib.maintainers; [ manveru ];
+    license = with licenses; [ gpl3Plus bsd2 ];
+    maintainers = with maintainers; [ manveru ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/misc/clac/default.nix b/pkgs/tools/misc/clac/default.nix
index 8aea37ebddf..8d6e464e9bb 100644
--- a/pkgs/tools/misc/clac/default.nix
+++ b/pkgs/tools/misc/clac/default.nix
@@ -1,13 +1,14 @@
 { stdenv, fetchFromGitHub }:
+
 stdenv.mkDerivation rec {
   pname = "clac";
-  version = "0.0.0.20170503";
+  version = "0.3.3";
 
   src = fetchFromGitHub {
     owner = "soveran";
     repo = "clac";
-    rev = "e92bd5cbab0d694cef945e3478820c9505e06f04";
-    sha256 = "0j8p1npgq32s377c9lw959h5i2csq4yb27cvg7av17bji46816bv";
+    rev = version;
+    sha256 = "rsag8MWl/udwXC0Gj864fAuQ6ts1gzrN2N/zelazqjE=";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
@@ -17,12 +18,12 @@ stdenv.mkDerivation rec {
     cp README* LICENSE "$out/share/doc/${pname}"
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     inherit version;
     description = "Interactive stack-based calculator";
-    license = stdenv.lib.licenses.bsd2;
-    maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = stdenv.lib.platforms.unix;
     homepage = "https://github.com/soveran/clac";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/misc/cod/default.nix b/pkgs/tools/misc/cod/default.nix
index 945f4c61f1d..6dad6173ed4 100644
--- a/pkgs/tools/misc/cod/default.nix
+++ b/pkgs/tools/misc/cod/default.nix
@@ -4,8 +4,6 @@ buildGoModule rec {
   pname = "cod";
   version = "unstable-2020-09-10";
 
-  goPackagePath = "cod";
-
   src = fetchFromGitHub {
     owner = "dim-an";
     repo = pname;
diff --git a/pkgs/tools/misc/code-minimap/default.nix b/pkgs/tools/misc/code-minimap/default.nix
new file mode 100644
index 00000000000..8c43e2b903c
--- /dev/null
+++ b/pkgs/tools/misc/code-minimap/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "code-minimap";
+  version = "0.4.3";
+
+  src = fetchFromGitHub {
+    owner = "wfxr";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "03azqy4i15kfpd0gzjaw2di9xva4xdf95yb65b93z3y9y5wy4krc";
+  };
+
+  cargoSha256 = "1rxrdavj07i7qa5rf1i3aj7zdcp7c6lrg8yiy75r6lm4g98izzww";
+
+  meta = with stdenv.lib; {
+    description = "A high performance code minimap render";
+    homepage = "https://github.com/wfxr/code-minimap";
+    license = with licenses; [ asl20 /* or */ mit ];
+    maintainers = with maintainers; [ bsima ];
+  };
+}
diff --git a/pkgs/tools/misc/coreboot-utils/default.nix b/pkgs/tools/misc/coreboot-utils/default.nix
index 39e2e041e32..84a5d3b3255 100644
--- a/pkgs/tools/misc/coreboot-utils/default.nix
+++ b/pkgs/tools/misc/coreboot-utils/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, zlib, pciutils, coreutils, acpica-tools, iasl, makeWrapper, gnugrep, gnused, file, buildEnv }:
 
 let
-  version = "4.12";
+  version = "4.13";
 
   commonMeta = with stdenv.lib; {
     description = "Various coreboot-related tools";
@@ -16,7 +16,7 @@ let
 
     src = fetchurl {
       url = "https://coreboot.org/releases/coreboot-${version}.tar.xz";
-      sha256 = "1qibds9lsk22wf1sxwg0jg32fgcvc9an39vf74y1hwwvxq0d1jpd";
+      sha256 = "0sl50aajnah4a138sr3jjm3ydc8gfh5vvlhviz3ypp95b9jdlya7";
     };
 
     enableParallelBuilding = true;
@@ -89,7 +89,7 @@ let
       nativeBuildInputs = [ makeWrapper ];
       dontBuild = true;
       installPhase = "install -Dm755 acpidump-all $out/bin/acpidump-all";
-      postFixup = let 
+      postFixup = let
         binPath = [ coreutils  acpica-tools iasl gnugrep  gnused  file ];
       in "wrapProgram $out/bin/acpidump-all --set PATH ${stdenv.lib.makeBinPath binPath}";
     };
diff --git a/pkgs/tools/misc/direnv/default.nix b/pkgs/tools/misc/direnv/default.nix
index 185b97d7273..d76f50eeae0 100644
--- a/pkgs/tools/misc/direnv/default.nix
+++ b/pkgs/tools/misc/direnv/default.nix
@@ -2,36 +2,29 @@
 
 buildGoModule rec {
   pname = "direnv";
-  version = "2.25.1";
-
-  vendorSha256 = null;
+  version = "2.27.0";
 
   src = fetchFromGitHub {
     owner = "direnv";
     repo = "direnv";
     rev = "v${version}";
-    sha256 = "0bwr7zdzjm5p6bjyzafc2n57y83f0pv2bmj99rhi8f94hhfydlsf";
+    sha256 = "05vvn59xd2q4yjizh5fprjib5xqq58by80d5avsm8nb1qxf383b1";
   };
 
+  vendorSha256 = "084x7d7sshcsyim76d6pl6127nlqacgwwnm965srl9y5w5nqzba6";
+
   # we have no bash at the moment for windows
   BASH_PATH =
     stdenv.lib.optionalString (!stdenv.hostPlatform.isWindows)
     "${bash}/bin/bash";
 
-  # fix hardcoded GOFLAGS in makefile. remove once https://github.com/direnv/direnv/issues/718 is closed.
-  postPatch = ''
-    substituteInPlace GNUmakefile --replace "export GOFLAGS=-mod=vendor" ""
-  '';
-
   # replace the build phase to use the GNUMakefile instead
   buildPhase = ''
     make BASH_PATH=$BASH_PATH
   '';
 
   installPhase = ''
-    make install DESTDIR=$out
-    mkdir -p $out/share/fish/vendor_conf.d
-    echo "eval ($out/bin/direnv hook fish)" > $out/share/fish/vendor_conf.d/direnv.fish
+    make install PREFIX=$out
   '';
 
   checkInputs = [ fish zsh ];
diff --git a/pkgs/tools/misc/disfetch/default.nix b/pkgs/tools/misc/disfetch/default.nix
new file mode 100644
index 00000000000..d80247801f0
--- /dev/null
+++ b/pkgs/tools/misc/disfetch/default.nix
@@ -0,0 +1,29 @@
+{ stdenv
+, lib
+, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "disfetch";
+  version = "1.12";
+
+  src = fetchFromGitHub {
+    owner = "llathasa-veleth";
+    repo = "disfetch";
+    rev = version;
+    sha256 = "1zm8q0fx695x28zg8ihzk3w41439v47n68cw6k551x31mls939yn";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    install -Dm755 -t $out/bin disfetch
+  '';
+
+  meta = with lib; {
+    description = "Yet another *nix distro fetching program, but less complex";
+    homepage = "https://github.com/llathasa-veleth/disfetch";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = [ maintainers.vel ];
+  };
+}
diff --git a/pkgs/tools/misc/duf/default.nix b/pkgs/tools/misc/duf/default.nix
index 29456f54cd1..ed8a11e182c 100644
--- a/pkgs/tools/misc/duf/default.nix
+++ b/pkgs/tools/misc/duf/default.nix
@@ -21,7 +21,7 @@ buildGoModule rec {
     homepage = "https://github.com/muesli/duf/";
     description = "Disk Usage/Free Utility";
     license = licenses.mit;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ petabyteboy penguwin ];
   };
 }
diff --git a/pkgs/tools/misc/esptool/default.nix b/pkgs/tools/misc/esptool/default.nix
index 465e30e7615..d1d6bc1cb10 100644
--- a/pkgs/tools/misc/esptool/default.nix
+++ b/pkgs/tools/misc/esptool/default.nix
@@ -2,17 +2,31 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "esptool";
-  version = "2.7";
+  version = "3.0";
 
   src = fetchFromGitHub {
     owner = "espressif";
     repo = "esptool";
     rev = "v${version}";
-    sha256 = "1p5hx0rhs986ffqz78rdxg7jayndsq632399xby39k17kvd3mb31";
+    sha256 = "1y022qlcdgdx5a88lkc3sqavklz494afbfyh100lp7xfk3f2mjln";
   };
 
-  checkInputs = with python3.pkgs; [ flake8 flake8-future-import flake8-import-order openssl ];
-  propagatedBuildInputs = with python3.pkgs; [ pyserial pyaes ecdsa ];
+  checkInputs = with python3.pkgs;
+    [ flake8 flake8-future-import flake8-import-order openssl ];
+  propagatedBuildInputs = with python3.pkgs;
+    [ pyserial pyaes ecdsa reedsolo bitstring cryptography ];
+
+  # wrapPythonPrograms will overwrite esptool.py with a bash script,
+  # but espefuse.py tries to import it. Since we don't add any binary paths,
+  # use patchPythonScript directly.
+  dontWrapPythonPrograms = true;
+  postFixup = ''
+    buildPythonPath "$out $pythonPath"
+    for f in $out/bin/*.py; do
+        echo "Patching $f"
+        patchPythonScript "$f"
+    done
+  '';
 
   meta = with stdenv.lib; {
     description = "ESP8266 and ESP32 serial bootloader utility";
diff --git a/pkgs/tools/misc/ethminer/default.nix b/pkgs/tools/misc/ethminer/default.nix
index d593d677cc3..f84b0096d04 100644
--- a/pkgs/tools/misc/ethminer/default.nix
+++ b/pkgs/tools/misc/ethminer/default.nix
@@ -1,5 +1,5 @@
 {
-  stdenv,
+  clangStdenv,
   fetchFromGitHub,
   opencl-headers,
   cmake,
@@ -16,7 +16,11 @@
   cli11
 }:
 
-stdenv.mkDerivation rec {
+# 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 {
   pname = "ethminer";
   version = "0.18.0";
 
@@ -71,8 +75,5 @@ stdenv.mkDerivation rec {
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ nand0p ];
     license = licenses.gpl2;
-    # Doesn't build with gcc9, and if overlayed to use gcc8 stdenv fails on CUDA issues.
-    broken = true;
   };
-
 }
diff --git a/pkgs/tools/misc/fbcat/default.nix b/pkgs/tools/misc/fbcat/default.nix
new file mode 100644
index 00000000000..4f640f13a27
--- /dev/null
+++ b/pkgs/tools/misc/fbcat/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub } :
+
+stdenv.mkDerivation rec {
+  pname = "fbcat";
+  version = "0.5.1";
+
+  src = fetchFromGitHub {
+    owner = "jwilk";
+    repo = pname;
+    rev = version;
+    sha256 = "08y79br4a4cgkjnslw0hw57441ybsapaw7wjdbak19mv9lnl5ll9";
+  };
+
+  # hardcoded because makefile target "install" depends on libxslt dependencies from network
+  # that are just too hard to monkeypatch here
+  # so this is the simple fix.
+  installPhase = ''
+    mkdir -p $out
+    install -d $out/bin
+    install -m755 fbcat $out/bin/
+    install -m755 fbgrab $out/bin/
+    install -d $out/share/man/man1
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "http://jwilk.net/software/fbcat";
+    description = "Framebuffer screenshot tool";
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.matthiasbeyer ];
+    platforms = platforms.linux;
+  };
+}
+
diff --git a/pkgs/tools/misc/hdf4/default.nix b/pkgs/tools/misc/hdf4/default.nix
index 5e5154111dc..a1aff857527 100644
--- a/pkgs/tools/misc/hdf4/default.nix
+++ b/pkgs/tools/misc/hdf4/default.nix
@@ -1,8 +1,10 @@
 { stdenv
 , fetchpatch
 , fetchurl
+, fixDarwinDylibNames
 , cmake
 , libjpeg
+, libtirpc
 , zlib
 , szip ? null
 }:
@@ -15,17 +17,51 @@ stdenv.mkDerivation rec {
     sha256 = "04nbgfxyj5jg4d6sr28162cxbfwqgv0sa7vz1ayzvm8wbbpkbq5x";
   };
 
+  patches = [
+    # Note that the PPC, SPARC and s390 patches are only needed so the aarch64 patch applies cleanly
+    (fetchpatch {
+      url = "https://src.fedoraproject.org/rpms/hdf/raw/edbe5f49646b609f5bc9aeeee5a2be47e9556e8c/f/hdf-ppc.patch";
+      sha256 = "0dbbfpsvvqzy9zyfv38gd81zzc44gxjib9sd8scxqnkkqprj6jq0";
+    })
+    (fetchpatch {
+      url = "https://src.fedoraproject.org/rpms/hdf/raw/edbe5f49646b609f5bc9aeeee5a2be47e9556e8c/f/hdf-4.2.4-sparc.patch";
+      sha256 = "0ip4prcjpa404clm87ib7l71605mws54x9492n9pbz5yb51r9aqh";
+    })
+    (fetchpatch {
+      url = "https://src.fedoraproject.org/rpms/hdf/raw/edbe5f49646b609f5bc9aeeee5a2be47e9556e8c/f/hdf-s390.patch";
+      sha256 = "0aiqbr4s1l19y3r3y4wjd5fkv9cfc8rlr4apbh1p0d57wyvqa7i3";
+    })
+    (fetchpatch {
+      url = "https://src.fedoraproject.org/rpms/hdf/raw/edbe5f49646b609f5bc9aeeee5a2be47e9556e8c/f/hdf-arm.patch";
+      sha256 = "157k1avvkpf3x89m1fv4a1kgab6k3jv74rskazrmjivgzav4qaw3";
+    })
+    (fetchpatch {
+      url = "https://src.fedoraproject.org/rpms/hdf/raw/edbe5f49646b609f5bc9aeeee5a2be47e9556e8c/f/hdf-aarch64.patch";
+      sha256 = "112svcsilk16ybbsi8ywnxfl2p1v44zh3rfn4ijnl8z08vfqrvvs";
+    })
+  ];
+
   nativeBuildInputs = [
     cmake
+  ] ++ stdenv.lib.optionals stdenv.isDarwin [
+    fixDarwinDylibNames
   ];
 
   buildInputs = [
     libjpeg
+    libtirpc
     szip
     zlib
   ];
 
-  preConfigure = stdenv.lib.optionalString (szip != null) "export SZIP_INSTALL=${szip}";
+  preConfigure = ''
+    # Make tirpc discovery work with CMAKE_PREFIX_PATH
+    substituteInPlace config/cmake/FindXDR.cmake \
+      --replace 'find_path(XDR_INCLUDE_DIR NAMES rpc/types.h PATHS "/usr/include" "/usr/include/tirpc")' \
+                'find_path(XDR_INCLUDE_DIR NAMES rpc/types.h PATH_SUFFIXES include/tirpc)'
+  '' + stdenv.lib.optionalString (szip != null) ''
+    export SZIP_INSTALL=${szip}
+  '';
 
   cmakeFlags = [
     "-DBUILD_SHARED_LIBS=ON"
diff --git a/pkgs/tools/misc/hdf5/default.nix b/pkgs/tools/misc/hdf5/default.nix
index e56108767ab..891fadac12a 100644
--- a/pkgs/tools/misc/hdf5/default.nix
+++ b/pkgs/tools/misc/hdf5/default.nix
@@ -6,7 +6,7 @@
 , zlib ? null
 , szip ? null
 , mpi ? null
-, enableShared ? true
+, enableShared ? !stdenv.hostPlatform.isStatic
 }:
 
 # cpp and mpi options are mutually exclusive
diff --git a/pkgs/tools/misc/html-proofer/Gemfile.lock b/pkgs/tools/misc/html-proofer/Gemfile.lock
index 01b135dbf87..3bd45730313 100644
--- a/pkgs/tools/misc/html-proofer/Gemfile.lock
+++ b/pkgs/tools/misc/html-proofer/Gemfile.lock
@@ -5,8 +5,8 @@ GEM
       public_suffix (>= 2.0.2, < 5.0)
     ethon (0.12.0)
       ffi (>= 1.3.0)
-    ffi (1.13.1)
-    html-proofer (3.18.0)
+    ffi (1.14.2)
+    html-proofer (3.18.5)
       addressable (~> 2.3)
       mercenary (~> 0.3)
       nokogumbo (~> 2.0)
diff --git a/pkgs/tools/misc/html-proofer/gemset.nix b/pkgs/tools/misc/html-proofer/gemset.nix
index 13f3aed7337..d6801512ca4 100644
--- a/pkgs/tools/misc/html-proofer/gemset.nix
+++ b/pkgs/tools/misc/html-proofer/gemset.nix
@@ -26,10 +26,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
+      sha256 = "15hgiy09i8ywjihyzyvjvk42ivi3kmy6dm21s5sgg9j7y3h3zkkx";
       type = "gem";
     };
-    version = "1.13.1";
+    version = "1.14.2";
   };
   html-proofer = {
     dependencies = ["addressable" "mercenary" "nokogumbo" "parallel" "rainbow" "typhoeus" "yell"];
@@ -37,10 +37,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1icjr9hg8gk1dsy9gnhffkamh4d8yfkmqa4kfzdpbnvr50qvfmwz";
+      sha256 = "0bz0041fizdmggc5k9an4s3qk6diyybn2agcia2wr96vymfb2qjh";
       type = "gem";
     };
-    version = "3.18.0";
+    version = "3.18.5";
   };
   mercenary = {
     groups = ["default"];
diff --git a/pkgs/tools/misc/ipxe/default.nix b/pkgs/tools/misc/ipxe/default.nix
index 87b26f223bc..beb6f0e708b 100644
--- a/pkgs/tools/misc/ipxe/default.nix
+++ b/pkgs/tools/misc/ipxe/default.nix
@@ -19,7 +19,7 @@ in
 
 stdenv.mkDerivation rec {
   pname = "ipxe";
-  version = "1.20.1";
+  version = "1.21.1";
 
   nativeBuildInputs = [ perl cdrkit syslinux xz openssl gnu-efi mtools ];
 
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     owner = "ipxe";
     repo = "ipxe";
     rev = "v${version}";
-    sha256 = "0w7h7y97gj9nqvbmsg1zp6zj5mpbbpckqbbx7bpp6k3ahy5fk8zp";
+    sha256 = "1pkf1n1c0rdlzfls8fvjvi1sd9xjd9ijqlyz3wigr70ijcv6x8i9";
   };
 
   # not possible due to assembler code
diff --git a/pkgs/tools/misc/kcollectd/default.nix b/pkgs/tools/misc/kcollectd/default.nix
new file mode 100644
index 00000000000..ffc64b1455a
--- /dev/null
+++ b/pkgs/tools/misc/kcollectd/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, fetchFromGitLab
+, mkDerivation
+, qtbase
+, cmake
+, kconfig
+, kio
+, kiconthemes
+, kxmlgui
+, ki18n
+, kguiaddons
+, extra-cmake-modules
+, boost
+, shared-mime-info
+, rrdtool
+, breeze-icons
+}:
+
+mkDerivation rec {
+  pname = "kcollectd";
+  version = "0.11.99.0";
+  src = fetchFromGitLab {
+    owner = "aerusso";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0h4ymvzihzbmyv3z0bp28g94wxc6c7lgi3my0xbka3advxr811gn";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+    shared-mime-info
+  ];
+
+  buildInputs = [
+    qtbase
+    kconfig
+    kio
+    kxmlgui
+    kiconthemes
+    ki18n
+    kguiaddons
+    boost
+    rrdtool
+    # otherwise some buttons are blank
+    breeze-icons
+  ];
+
+  meta = with lib; {
+    description = "A graphical frontend to collectd";
+    homepage = "https://www.antonioerusso.com/projects/kcollectd/";
+    maintainers = [ maintainers.symphorien ];
+    license = [ lib.licenses.gpl3Plus ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/tools/misc/kermit/default.nix b/pkgs/tools/misc/kermit/default.nix
index f81d9b7266b..2155b8676be 100644
--- a/pkgs/tools/misc/kermit/default.nix
+++ b/pkgs/tools/misc/kermit/default.nix
@@ -16,12 +16,12 @@ stdenv.mkDerivation {
     tar xvzf $src
   '';
 
-  patchPhase = ''
+  postPatch = ''
     sed -i -e 's@-I/usr/include/ncurses@@' \
       -e 's@/usr/local@'"$out"@ makefile
   '';
 
-  buildPhase = "make -f makefile linux LNKFLAGS='-lcrypt -lresolv'";
+  buildPhase = "make -f makefile linux KFLAGS='-D_IO_file_flags' LNKFLAGS='-lcrypt -lresolv'";
 
   installPhase = ''
     mkdir -p $out/bin
@@ -35,6 +35,5 @@ stdenv.mkDerivation {
     license = licenses.bsd3;
     maintainers = with maintainers; [ pSub ];
     platforms = with platforms; linux;
-    broken = true;
   };
 }
diff --git a/pkgs/tools/misc/lf/default.nix b/pkgs/tools/misc/lf/default.nix
index da6fa0a338e..c3cb3200e06 100644
--- a/pkgs/tools/misc/lf/default.nix
+++ b/pkgs/tools/misc/lf/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "lf";
-  version = "17";
+  version = "18";
 
   src = fetchFromGitHub {
     owner = "gokcehan";
     repo = "lf";
     rev = "r${version}";
-    sha256 = "0hs70hbbwz9kbbf13l2v32yv70n4aw8sz7rky82qdcqcpnpisjq8";
+    sha256 = "1xzy85lz99kwzvpkkaqlylynn57nhn76dff3cxy304d23y3r26w6";
   };
 
-  vendorSha256 = "1xjanlq67b6n07pha6ljgnl3n2ks4x3albvca317l68cvjiw3shs";
+  vendorSha256 = "12njqs39ympi2mqal1cdn0smp80yzcs8xmca1iih8pbmxv51r2gg";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/misc/microplane/default.nix b/pkgs/tools/misc/microplane/default.nix
new file mode 100644
index 00000000000..f50a3c6ad8e
--- /dev/null
+++ b/pkgs/tools/misc/microplane/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  pname = "microplane";
+  version = "0.0.25";
+
+  src = fetchFromGitHub {
+    owner = "Clever";
+    repo = "microplane";
+    rev = "v${version}";
+    sha256 = "0vynkv3d70q8d079kgdmwbavyyrjssqnd223dl1rikyy7sd5sli8";
+  };
+
+  goPackagePath = "github.com/Clever/microplane";
+
+  subPackages = ["."];
+
+  # Regenerate deps.nix with the following steps:
+  # git clone git@github.com:Clever/microplane.git
+  # cd microplane
+  # git checkout v<version>
+  # dep2nix
+
+  goDeps = ./deps.nix;
+
+  buildFlagsArray = ''
+    -ldflags="-s -w -X main.version=v${version}"
+  '';
+
+  postInstall = ''
+    ln -s $out/bin/microplane $out/bin/mp
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A CLI tool to make git changes across many repos";
+    homepage = "https://github.com/Clever/microplane";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ dbirks ];
+  };
+}
diff --git a/pkgs/tools/misc/microplane/deps.nix b/pkgs/tools/misc/microplane/deps.nix
new file mode 100644
index 00000000000..f415bae4507
--- /dev/null
+++ b/pkgs/tools/misc/microplane/deps.nix
@@ -0,0 +1,228 @@
+# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
+[
+  {
+    goPackagePath  = "github.com/cpuguy83/go-md2man";
+    fetch = {
+      type = "git";
+      url = "https://github.com/cpuguy83/go-md2man";
+      rev =  "1d903dcb749992f3741d744c0f8376b4bd7eb3e1";
+      sha256 = "1p1ncq4vv244w9v144vplsb2vbl3369wdxn4gc7xbfafkjwn8bxc";
+    };
+  }
+  {
+    goPackagePath  = "github.com/davecgh/go-spew";
+    fetch = {
+      type = "git";
+      url = "https://github.com/davecgh/go-spew";
+      rev =  "346938d642f2ec3594ed81d874461961cd0faa76";
+      sha256 = "0d4jfmak5p6lb7n2r6yvf5p1zcw0l8j74kn55ghvr7zr7b7axm6c";
+    };
+  }
+  {
+    goPackagePath  = "github.com/facebookgo/errgroup";
+    fetch = {
+      type = "git";
+      url = "https://github.com/facebookgo/errgroup";
+      rev =  "779c8d7ef069c522bc72ee5f31a98d89a37f3fb6";
+      sha256 = "1kyqrnvr158f5lgb1pbianjd8xnmxxvpgz7qilmp7zvr69gykbas";
+    };
+  }
+  {
+    goPackagePath  = "github.com/fatih/color";
+    fetch = {
+      type = "git";
+      url = "https://github.com/fatih/color";
+      rev =  "570b54cabe6b8eb0bc2dfce68d964677d63b5260";
+      sha256 = "1hw9hgkfzbzqjhy29pqpk20xggxaqjv45wx8yn69488mw5ph7khh";
+    };
+  }
+  {
+    goPackagePath  = "github.com/golang/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/protobuf";
+      rev =  "130e6b02ab059e7b717a096f397c5b60111cae74";
+      sha256 = "0zk4d7gcykig9ld8f5h86fdxshm2gs93a2xkpf52jd5m4z59q26s";
+    };
+  }
+  {
+    goPackagePath  = "github.com/google/go-github";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/go-github";
+      rev =  "e881974953e6ab6d1a6a1610e98ed6401a3aa1ba";
+      sha256 = "0qaxcm2p655r1jd59rv1hd58driadw5hxlfy7h53c7pzcsmf2546";
+    };
+  }
+  {
+    goPackagePath  = "github.com/google/go-querystring";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/go-querystring";
+      rev =  "53e6ce116135b80d037921a7fdd5138cf32d7a8a";
+      sha256 = "0lkbm067nhmxk66pyjx59d77dbjjzwyi43gdvzyx2f8m1942rq7f";
+    };
+  }
+  {
+    goPackagePath  = "github.com/inconshreveable/mousetrap";
+    fetch = {
+      type = "git";
+      url = "https://github.com/inconshreveable/mousetrap";
+      rev =  "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75";
+      sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152";
+    };
+  }
+  {
+    goPackagePath  = "github.com/juju/errors";
+    fetch = {
+      type = "git";
+      url = "https://github.com/juju/errors";
+      rev =  "c7d06af17c68cd34c835053720b21f6549d9b0ee";
+      sha256 = "1dmj8wkpmkw4z4c7wmnscs4ykrcv7p8lgwb75g5akahwqjaf9zcp";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mattn/go-colorable";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-colorable";
+      rev =  "167de6bfdfba052fa6b2d3664c8f5272e23c9072";
+      sha256 = "1nwjmsppsjicr7anq8na6md7b1z84l9ppnlr045hhxjvbkqwalvx";
+    };
+  }
+  {
+    goPackagePath  = "github.com/mattn/go-isatty";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-isatty";
+      rev =  "0360b2af4f38e8d38c7fce2a9f4e702702d73a39";
+      sha256 = "06w45aqz2a6yrk25axbly2k5wmsccv8cspb94bfmz4izvw8h927n";
+    };
+  }
+  {
+    goPackagePath  = "github.com/nathanleiby/diffparser";
+    fetch = {
+      type = "git";
+      url = "https://github.com/nathanleiby/diffparser";
+      rev =  "936553ce5db1b73e63cbcd7546416d13538e8d85";
+      sha256 = "0qlxkbda4l1glwxdy52fhk3bqkyyc55si4xplf54jpi2x9khi2v4";
+    };
+  }
+  {
+    goPackagePath  = "github.com/pmezard/go-difflib";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pmezard/go-difflib";
+      rev =  "792786c7400a136282c1664665ae0a8db921c6c2";
+      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
+    };
+  }
+  {
+    goPackagePath  = "github.com/russross/blackfriday";
+    fetch = {
+      type = "git";
+      url = "https://github.com/russross/blackfriday";
+      rev =  "4048872b16cc0fc2c5fd9eacf0ed2c2fedaa0c8c";
+      sha256 = "17zg26ia43c8axrxp5q2bxh1asiqfhin4ah7h5d8ibil6pv7xbx4";
+    };
+  }
+  {
+    goPackagePath  = "github.com/spf13/cobra";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spf13/cobra";
+      rev =  "7b2c5ac9fc04fc5efafb60700713d4fa609b777b";
+      sha256 = "0k4xswdfd2ridj7m48ijb4klq9mxpw03g8h2rvq99yddi8vmlbvn";
+    };
+  }
+  {
+    goPackagePath  = "github.com/spf13/pflag";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spf13/pflag";
+      rev =  "e57e3eeb33f795204c1ca35f56c44f83227c6e66";
+      sha256 = "13mhx4i913jil32j295m3a36jzvq1y64xig0naadiz7q9ja011r2";
+    };
+  }
+  {
+    goPackagePath  = "github.com/stretchr/testify";
+    fetch = {
+      type = "git";
+      url = "https://github.com/stretchr/testify";
+      rev =  "69483b4bd14f5845b5a1e55bca19e954e827f1d0";
+      sha256 = "11lzrwkdzdd8yyag92akncc008h2f9d1bpc489mxiwp0jrmz4ivb";
+    };
+  }
+  {
+    goPackagePath  = "github.com/xanzy/go-gitlab";
+    fetch = {
+      type = "git";
+      url = "https://github.com/xanzy/go-gitlab";
+      rev =  "ee3313ca5478c4786248d63dd75e4cd8e1fad2db";
+      sha256 = "0xbn94rb9ihpw1g698xbz9vdl7393z9zbb0lck52nxs838gkr4mb";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/crypto";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/crypto";
+      rev =  "5c72a883971a4325f8c62bf07b6d38c20ea47a6a";
+      sha256 = "1cimmqpajys001x6yq8ycklc4w34y7iwrksv7ayv7m7fgzhcjn3d";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev =  "aabf50738bcdd9b207582cbe796b59ed65d56680";
+      sha256 = "0gq60lfzbyc6ggp5v3vbl6li818nmv0n32l9qf80ckpqpqkknkh5";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/oauth2";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/oauth2";
+      rev =  "bb50c06baba3d0c76f9d125c0719093e315b5b44";
+      sha256 = "19fkbykwjhwa0833cqcphv7sfwc1538ad5wlsdkgdwr59qb9d32i";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/sync";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sync";
+      rev =  "6e8e738ad208923de99951fe0b48239bfd864f28";
+      sha256 = "1avk27pszd5l5df6ff7j78wgla46ir1hhy2jwfl9a3c0ys602yx9";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev =  "28a7276518d399b9634904daad79e18b44d481bc";
+      sha256 = "0qsj394qyy27iaf8srl7bkbsx7sp4aifrv3z2xllkydya8y18rv8";
+    };
+  }
+  {
+    goPackagePath  = "google.golang.org/appengine";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/appengine";
+      rev =  "150dc57a1b433e64154302bdc40b6bb8aefa313a";
+      sha256 = "0w3knznv39k8bm85ri62f83czcrxknql7dv6p9hk1a5jx3xljgxq";
+    };
+  }
+  {
+    goPackagePath  = "gopkg.in/yaml.v2";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-yaml/yaml";
+      rev =  "eb3733d160e74a9c7e442f435eb3bea458e1d19f";
+      sha256 = "1srhvcaa9db3a6xj29mkjr5kg33y71pclrlx4vcwz5m1lgb5c7q6";
+    };
+  }
+]
\ No newline at end of file
diff --git a/pkgs/tools/misc/miniserve/default.nix b/pkgs/tools/misc/miniserve/default.nix
index 3e3c62fd093..93338ddf27b 100644
--- a/pkgs/tools/misc/miniserve/default.nix
+++ b/pkgs/tools/misc/miniserve/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "miniserve";
-  version = "0.10.3";
+  version = "0.10.4";
 
   src = fetchFromGitHub {
     owner = "svenstaro";
     repo = "miniserve";
     rev = "v${version}";
-    sha256 = "17m0h0ib7fl0kijagcwdcnvrdcb6z3knix9dl17abg5ivbvkwz8q";
+    sha256 = "0hskb72gnp66vkyxsqnxhjcqgvjj7wbd2nm5wxp94abc5l1fiigv";
   };
 
-  cargoSha256 = "0ddc8b9wph4r1qcy24p8yiaq9s2knii0d7dh0w0qnzrn6cmm17dg";
+  cargoSha256 = "0s1gdngpf6gxz2lyapblxxmc6aydg2i9kmrfvngkbmqh4as1a2vl";
 
   nativeBuildInputs = [ pkg-config zlib ];
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
diff --git a/pkgs/tools/misc/mutagen/default.nix b/pkgs/tools/misc/mutagen/default.nix
index 8d71f75622c..7e824cf90ca 100644
--- a/pkgs/tools/misc/mutagen/default.nix
+++ b/pkgs/tools/misc/mutagen/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, fetchzip }:
 
 buildGoModule rec {
   pname = "mutagen";
@@ -13,10 +13,26 @@ buildGoModule rec {
 
   vendorSha256 = "0szs9yc49fyh55ra1wf8zj76kdah0x49d45cgivk3gqh2hl17j6l";
 
+  agents = fetchzip {
+    name = "mutagen-agents-${version}";
+    # The package architecture does not matter since all packages contain identical mutagen-agents.tar.gz.
+    url = "https://github.com/mutagen-io/mutagen/releases/download/v${version}/mutagen_linux_amd64_v${version}.tar.gz";
+    stripRoot = false;
+    extraPostFetch = ''
+      rm $out/mutagen # Keep only mutagen-agents.tar.gz.
+    '';
+    sha256 = "0k8iif09kvxfxx6qm5qmkf3lr7ar6i98ivkndimj680ah9v1hkj8";
+  };
+
   doCheck = false;
 
   subPackages = [ "cmd/mutagen" "cmd/mutagen-agent" ];
 
+  postInstall = ''
+    install -d $out/libexec
+    ln -s ${agents}/mutagen-agents.tar.gz $out/libexec/
+  '';
+
   meta = with lib; {
     description = "Make remote development work with your local tools";
     homepage = "https://mutagen.io/";
diff --git a/pkgs/tools/misc/nix-direnv/default.nix b/pkgs/tools/misc/nix-direnv/default.nix
index 11cb0dcf554..392de7d1bd9 100644
--- a/pkgs/tools/misc/nix-direnv/default.nix
+++ b/pkgs/tools/misc/nix-direnv/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nix-direnv";
-  version = "1.1";
+  version = "1.2";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = "nix-direnv";
     rev = version;
-    sha256 = "sha256-xMz6e0OLeB3eltGrLV3Hew0lMjH5LSgqJ1l7JT2Ho/M=";
+    sha256 = "sha256-/mlM1EeUlr1nTUJ5rB41idzk3Mfy/htjjPUARYDFpb0=";
   };
 
   # Substitute instead of wrapping because the resulting file is
diff --git a/pkgs/tools/misc/nvimpager/default.nix b/pkgs/tools/misc/nvimpager/default.nix
new file mode 100644
index 00000000000..2c10c9fbfbb
--- /dev/null
+++ b/pkgs/tools/misc/nvimpager/default.nix
@@ -0,0 +1,47 @@
+{ fetchFromGitHub
+, stdenv
+, ncurses, neovim, procps
+, pandoc, lua51Packages, util-linux
+}:
+
+stdenv.mkDerivation rec {
+  pname = "nvimpager";
+  version = "0.9";
+
+  src = fetchFromGitHub {
+    owner = "lucc";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1xy5387szfw0bp8dr7d4z33wd4xva7q219rvz8gc0vvv1vsy73va";
+  };
+
+  buildInputs = [
+    ncurses # for tput
+    procps # for nvim_get_proc() which uses ps(1)
+  ];
+  nativeBuildInputs = [ pandoc ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+  buildFlags = [ "nvimpager.configured" ];
+  preBuild = ''
+    patchShebangs nvimpager
+    substituteInPlace nvimpager --replace ':-nvim' ':-${neovim}/bin/nvim'
+    '';
+
+  doCheck = true;
+  checkInputs = [ lua51Packages.busted util-linux neovim ];
+  checkPhase = ''script -c "busted --lpath './?.lua' test"'';
+
+  meta = with stdenv.lib; {
+    description = "Use neovim as pager";
+    longDescription = ''
+      Use neovim as a pager to view manpages, diffs, etc with nvim's syntax
+      highlighting.  Includes a cat mode to print highlighted files to stdout
+      and a ansi esc mode to highlight ansi escape sequences in neovim.
+    '';
+    homepage = "https://github.com/lucc/nvimpager";
+    license = licenses.bsd2;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.lucc ];
+  };
+}
diff --git a/pkgs/tools/misc/ovh-ttyrec/default.nix b/pkgs/tools/misc/ovh-ttyrec/default.nix
new file mode 100644
index 00000000000..5601509726a
--- /dev/null
+++ b/pkgs/tools/misc/ovh-ttyrec/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, zstd }:
+
+stdenv.mkDerivation rec {
+  pname = "ovh-ttyrec";
+  version = "1.1.6.6";
+
+  src = fetchFromGitHub {
+    owner = "ovh";
+    repo = "ovh-ttyrec";
+    rev = "v${version}";
+    sha256 = "176g3k2pzw6zpvmcc2f8idn6vhlygf7lfzxvrhysav2izc5dd130";
+  };
+
+  nativeBuildInputs = [ zstd ];
+
+  installPhase = ''
+    mkdir -p $out/{bin,man}
+    cp ttytime ttyplay ttyrec $out/bin
+    cp docs/*.1 $out/man
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/ovh/ovh-ttyrec/";
+    description = "Terminal interaction recorder and player";
+    license = licenses.bsd3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ chaduffy zimbatm ];
+  };
+}
diff --git a/pkgs/tools/misc/parted/default.nix b/pkgs/tools/misc/parted/default.nix
index b00a0836021..2b21b2f1427 100644
--- a/pkgs/tools/misc/parted/default.nix
+++ b/pkgs/tools/misc/parted/default.nix
@@ -11,7 +11,7 @@
 , python3
 , util-linux
 , check
-, enableStatic ? false
+, enableStatic ? stdenv.hostPlatform.isStatic
 }:
 
 stdenv.mkDerivation rec {
diff --git a/pkgs/tools/misc/patdiff/default.nix b/pkgs/tools/misc/patdiff/default.nix
index e0b54e56081..dcd06ce1d2b 100644
--- a/pkgs/tools/misc/patdiff/default.nix
+++ b/pkgs/tools/misc/patdiff/default.nix
@@ -4,8 +4,8 @@ with ocamlPackages;
 
 janePackage {
   pname = "patdiff";
-  hash = "1yqvxdmkgcwgx3npgncpdqwkpdxiqr1q41wci7589s8z7xi5nwyz";
-  buildInputs = [ core_extended expect_test_helpers patience_diff ocaml_pcre shell ];
+  hash = "1yslj6xxyv8rx8y5s1civ1zq8y6vvxmkszdds958zdm1p1ign54r";
+  buildInputs = [ core patience_diff ocaml_pcre ];
   meta = {
     description = "File Diff using the Patience Diff algorithm";
   };
diff --git a/pkgs/tools/misc/picocom/default.nix b/pkgs/tools/misc/picocom/default.nix
index 5dd83c4887b..1db8d00a902 100644
--- a/pkgs/tools/misc/picocom/default.nix
+++ b/pkgs/tools/misc/picocom/default.nix
@@ -1,36 +1,48 @@
-{ stdenv, fetchFromGitHub, makeWrapper, lrzsz, IOKit }:
-
-assert stdenv.isDarwin -> IOKit != null;
-
-with stdenv.lib;
+{ stdenv
+, fetchFromGitHub
+, installShellFiles
+, lrzsz
+, IOKit
+}:
 
 stdenv.mkDerivation rec {
   pname = "picocom";
-  version = "3.1";
+  # last tagged release is 3.1 but 3.2 is still considered a release
+  version = "3.2a";
 
+  # upstream is quiet as the original author is no longer active since March 2018
   src = fetchFromGitHub {
     owner = "npat-efault";
     repo = "picocom";
-    rev = version;
-    sha256 = "1vvjydqf0ax47nvdyyl67jafw5b3sfsav00xid6qpgia1gs2r72n";
+    rev = "1acf1ddabaf3576b4023c4f6f09c5a3e4b086fb8";
+    sha256 = "sha256-cs2bxqZfTbnY5d+VJ257C5hssaFvYup3tBKz68ROnAo=";
   };
 
-  buildInputs = [ makeWrapper ]
-    ++ optionals stdenv.isDarwin [ IOKit ];
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace '.picocom_history' '.cache/picocom_history'
 
-  installPhase = ''
-    mkdir -p $out/bin $out/share/man/man1
-    cp picocom $out/bin
-    cp picocom.1 $out/share/man/man1
+    substituteInPlace picocom.c \
+      --replace '"rz -vv"' '"${lrzsz}/bin/rz -vv"' \
+      --replace '"sz -vv"' '"${lrzsz}/bin/sz -vv"'
+  '';
 
-    wrapProgram $out/bin/picocom \
-      --prefix PATH ":" "${lrzsz}/bin"
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  buildInputs = stdenv.lib.optional stdenv.isDarwin IOKit;
+
+  installPhase = ''
+    install -Dm555 -t $out/bin picocom
+    installManPage picocom.1
+    installShellCompletion --bash bash_completion/picocom
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Minimal dumb-terminal emulation program";
     homepage = "https://github.com/npat-efault/picocom/";
-    license = stdenv.lib.licenses.gpl2Plus;
+    license = licenses.gpl2Plus;
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/misc/plantuml-server/default.nix b/pkgs/tools/misc/plantuml-server/default.nix
new file mode 100644
index 00000000000..11db08dd973
--- /dev/null
+++ b/pkgs/tools/misc/plantuml-server/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchFromGitHub, maven, jdk }:
+
+let
+  version = "1.2020.14";
+
+  src = fetchFromGitHub {
+    owner = "plantuml";
+    repo = "plantuml-server";
+    rev = "v${version}";
+    sha256 = "08g6ddpkly5yhjhw7gpsanyspar1752jy9cypwxsqrdzqrv738b8";
+  };
+
+  # 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 ];
+    buildPhase = ''
+      while mvn package -Dmaven.repo.local=$out/.m2; [ $? = 1 ]; do
+        echo "timeout, restart maven to continue downloading"
+      done
+    '';
+    # 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";
+  };
+in
+
+stdenv.mkDerivation rec {
+  pname = "plantuml-server";
+  inherit version;
+  inherit src;
+
+  buildInputs = [ jdk maven ];
+
+  buildPhase = ''
+    # '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
+  '';
+
+  installPhase = ''
+    mkdir -p "$out/webapps"
+    cp "target/plantuml.war" "$out/webapps/plantuml.war"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A web application to generate UML diagrams on-the-fly.";
+    homepage = "https://plantuml.com/";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ truh ];
+  };
+}
diff --git a/pkgs/tools/misc/snapper/default.nix b/pkgs/tools/misc/snapper/default.nix
index 177580c099b..3843f16f6a8 100644
--- a/pkgs/tools/misc/snapper/default.nix
+++ b/pkgs/tools/misc/snapper/default.nix
@@ -1,17 +1,18 @@
 { stdenv, fetchFromGitHub
 , autoreconfHook, pkgconfig, docbook_xsl, libxslt, docbook_xml_dtd_45
 , acl, attr, boost, btrfs-progs, dbus, diffutils, e2fsprogs, libxml2
-, lvm2, pam, python, util-linux, fetchpatch, json_c, nixosTests }:
+, lvm2, pam, python, util-linux, fetchpatch, json_c, nixosTests
+, ncurses }:
 
 stdenv.mkDerivation rec {
   pname = "snapper";
-  version = "0.8.14";
+  version = "0.8.15";
 
   src = fetchFromGitHub {
     owner = "openSUSE";
     repo = "snapper";
     rev = "v${version}";
-    sha256 = "1q687bjwy668klxnhsrc2rlhisa59j8bhmh1jw220rq7z0hm2khr";
+    sha256 = "1rqv1qfxr02qbkix1mpx91s4827irxryxkhby3ii0fdkm3ympsas";
   };
 
   nativeBuildInputs = [
@@ -20,7 +21,7 @@ stdenv.mkDerivation rec {
   ];
   buildInputs = [
     acl attr boost btrfs-progs dbus diffutils e2fsprogs libxml2
-    lvm2 pam python util-linux json_c
+    lvm2 pam python util-linux json_c ncurses
   ];
 
   passthru.tests.snapper = nixosTests.snapper;
diff --git a/pkgs/tools/misc/starship/default.nix b/pkgs/tools/misc/starship/default.nix
index 7e318b45a1f..4062699bc23 100644
--- a/pkgs/tools/misc/starship/default.nix
+++ b/pkgs/tools/misc/starship/default.nix
@@ -10,13 +10,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "starship";
-  version = "0.47.0";
+  version = "0.48.0";
 
   src = fetchFromGitHub {
     owner = "starship";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0vdfdwsaqrah0hgvr62qsww7s5znb1rg5kk068qpf06lmyc4gd8w";
+    sha256 = "1p37cfkcpqv74gp7g099alkqxanfc002kaq1cim6zkinx50gxjxw";
   };
 
   nativeBuildInputs = [ installShellFiles ] ++ stdenv.lib.optionals stdenv.isLinux [ pkg-config ];
@@ -31,7 +31,7 @@ rustPlatform.buildRustPackage rec {
     done
   '';
 
-  cargoSha256 = "01brsckfa2zy1aqs9vjwrn4w416i8b621bvkhicanz9q56xlnd77";
+  cargoSha256 = "02djpwvwrrp7f0ifiypx1cr1v4bkqxrhqfhy0abfjszza95fjasv";
 
   checkFlags = [
     "--skip=directory_in_home"
diff --git a/pkgs/tools/misc/topgrade/default.nix b/pkgs/tools/misc/topgrade/default.nix
index 04a11a92204..6a21bc56789 100644
--- a/pkgs/tools/misc/topgrade/default.nix
+++ b/pkgs/tools/misc/topgrade/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "topgrade";
-  version = "6.0.1";
+  version = "6.0.2";
 
   src = fetchFromGitHub {
     owner = "r-darwish";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1bpq4zki98vw793rvrk9qwgh62f1qwzh0cm4a3h0bif43kg836n0";
+    sha256 = "1pqf7rs9b8j54rwg8i8alvf65c4jfp5q2hv3yr60aiidfjrawp34";
   };
 
-  cargoSha256 = "1486pfiv4lfzdz3hj5z6s7q8lhzrldffji3fsf10z50sm4fhq73q";
+  cargoSha256 = "1wh7xywp92h3in9a2nr6sia6l3852kw4s688sr1c2wjdf2i58lsg";
 
   buildInputs = lib.optional stdenv.isDarwin Foundation;
 
diff --git a/pkgs/tools/misc/toybox/default.nix b/pkgs/tools/misc/toybox/default.nix
index 9b38db5a727..5ae211bd237 100644
--- a/pkgs/tools/misc/toybox/default.nix
+++ b/pkgs/tools/misc/toybox/default.nix
@@ -1,6 +1,7 @@
 {
   stdenv, lib, fetchFromGitHub, which,
-  enableStatic ? false,
+  buildPackages,
+  enableStatic ? stdenv.hostPlatform.isStatic,
   enableMinimal ? false,
   extraConfig ? ""
 }:
@@ -16,6 +17,7 @@ stdenv.mkDerivation rec {
     sha256 = "0cgbmv6qk1haj709hjx5q4sl7wgh91i459gzs1203adwc7rvk6jv";
   };
 
+  depsBuildBuild = [ buildPackages.stdenv.cc ]; # needed for cross
   buildInputs = lib.optionals enableStatic [ stdenv.cc.libc stdenv.cc.libc.static ];
 
   postPatch = "patchShebangs .";
diff --git a/pkgs/tools/misc/trash-cli/default.nix b/pkgs/tools/misc/trash-cli/default.nix
index fce992acd31..767e3ea9462 100644
--- a/pkgs/tools/misc/trash-cli/default.nix
+++ b/pkgs/tools/misc/trash-cli/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "trash-cli";
-  version = "0.20.11.23";
+  version = "0.20.12.26";
 
   src = fetchFromGitHub {
     owner = "andreafrancia";
     repo = "trash-cli";
     rev = version;
-    sha256 = "1fjkmpnbpzxniypql68cpwc2rrnih8b34p8pzabrf55f49wcmcph";
+    sha256 = "15iivl9xln1bw1zr2x5zvqyb6aj7mc8hfqi6dniq6xkp5m046ib7";
   };
 
   propagatedBuildInputs = [ python3Packages.psutil ];
diff --git a/pkgs/tools/misc/ttygif/default.nix b/pkgs/tools/misc/ttygif/default.nix
index 5a14dade01b..dd74f5effed 100644
--- a/pkgs/tools/misc/ttygif/default.nix
+++ b/pkgs/tools/misc/ttygif/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchFromGitHub, makeWrapper, imagemagick, xorg }:
 
 stdenv.mkDerivation rec {
   pname = "ttygif";
@@ -13,6 +13,12 @@ stdenv.mkDerivation rec {
 
   makeFlags = [ "CC:=$(CC)" "PREFIX=${placeholder "out"}" ];
 
+  nativeBuildInputs = [ makeWrapper ];
+  postInstall = ''
+    wrapProgram $out/bin/ttygif \
+      --prefix PATH : ${stdenv.lib.makeBinPath [ imagemagick xorg.xwd ]}
+  '';
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/icholy/ttygif";
     description = "Convert terminal recordings to animated gifs";
diff --git a/pkgs/tools/misc/ttyrec/clang-fixes.patch b/pkgs/tools/misc/ttyrec/clang-fixes.patch
deleted file mode 100644
index 126ab44090e..00000000000
--- a/pkgs/tools/misc/ttyrec/clang-fixes.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -ru ttyrec-1.0.8.orig/io.h ttyrec-1.0.8/io.h
---- ttyrec-1.0.8.orig/io.h	2006-06-11 17:52:50.000000000 +0200
-+++ ttyrec-1.0.8/io.h	2015-11-15 09:59:54.000000000 +0100
-@@ -9,5 +9,6 @@
- int     edup            (int oldfd);
- int     edup2           (int oldfd, int newfd);
- FILE*   efdopen         (int fd, const char *mode);
-+void    set_progname    (const char *name);
- 
- #endif
-diff -ru ttyrec-1.0.8.orig/ttyrec.c ttyrec-1.0.8/ttyrec.c
---- ttyrec-1.0.8.orig/ttyrec.c	2006-06-11 17:52:50.000000000 +0200
-+++ ttyrec-1.0.8/ttyrec.c	2015-11-15 09:59:41.000000000 +0100
-@@ -54,6 +54,7 @@
- #include <unistd.h>
- #include <string.h>
- #include <stdlib.h>
-+#include <signal.h>
- 
- #if defined(SVR4)
- #include <fcntl.h>
diff --git a/pkgs/tools/misc/ttyrec/default.nix b/pkgs/tools/misc/ttyrec/default.nix
deleted file mode 100644
index 97049276a32..00000000000
--- a/pkgs/tools/misc/ttyrec/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ stdenv, fetchurl }:
-
-stdenv.mkDerivation rec {
-  pname = "ttyrec";
-  version = "1.0.8";
-
-  src = fetchurl {
-    url = "http://0xcc.net/ttyrec/${pname}-${version}.tar.gz";
-    sha256 = "ef5e9bf276b65bb831f9c2554cd8784bd5b4ee65353808f82b7e2aef851587ec";
-  };
-
-  patches = [ ./clang-fixes.patch ];
-
-  makeFlags = stdenv.lib.optional stdenv.buildPlatform.isLinux "CFLAGS=-DSVR4"
-    ++ stdenv.lib.optional stdenv.cc.isClang "CC=clang";
-
-  installPhase = ''
-    mkdir -p $out/{bin,man}
-    cp ttytime ttyplay ttyrec $out/bin
-    cp *.1 $out/man
-  '';
-
-  meta = with stdenv.lib; {
-    homepage = "http://0xcc.net/ttyrec/";
-    description = "Terminal interaction recorder and player";
-    license = licenses.bsd3;
-    platforms = platforms.all;
-    maintainers = with maintainers; [ zimbatm ];
-    broken = true; # 2020-01-28
-  };
-}
diff --git a/pkgs/tools/misc/vorbisgain/default.nix b/pkgs/tools/misc/vorbisgain/default.nix
index fdb283d4dce..78e860f216a 100644
--- a/pkgs/tools/misc/vorbisgain/default.nix
+++ b/pkgs/tools/misc/vorbisgain/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     homepage = "https://sjeng.org/vorbisgain.html";
     description = "A utility that corrects the volume of an Ogg Vorbis file to a predefined standardized loudness";
     license = licenses.gpl2;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ pSub ];
   };
 }
diff --git a/pkgs/tools/misc/woof/default.nix b/pkgs/tools/misc/woof/default.nix
index e89ef8dab0e..158a83a99ca 100644
--- a/pkgs/tools/misc/woof/default.nix
+++ b/pkgs/tools/misc/woof/default.nix
@@ -1,24 +1,25 @@
-{ stdenv, fetchurl, python }:
+{ stdenv, fetchFromGitHub, python3 }:
 
 stdenv.mkDerivation rec {
-  version = "2012-05-31";
+  version = "2020-12-17";
   pname = "woof";
 
-  src = fetchurl {
-    url = "http://www.home.unix-ag.org/simon/woof-${version}.py";
-    sha256 = "d84353d07f768321a1921a67193510bf292cf0213295e8c7689176f32e945572";
+  src = fetchFromGitHub {
+    owner = "simon-budig";
+    repo = "woof";
+    rev = "4aab9bca5b80379522ab0bdc5a07e4d652c375c5";
+    sha256 = "0ypd2fs8isv6bqmlrdl2djgs5lnk91y1c3rn4ar6sfkpsqp9krjn";
   };
 
-  buildInputs = [ python ];
+  propagatedBuildInputs = [ python3 ];
 
   dontUnpack = true;
 
-  installPhase =
-    ''
-      mkdir -p $out/bin
-      cp $src $out/bin/woof
-      chmod +x $out/bin/woof
-    '';
+  installPhase = ''
+    mkdir -p $out/bin
+    cp $src/woof $out/bin/woof
+    chmod +x $out/bin/woof
+  '';
 
   meta = with stdenv.lib; {
     homepage = "http://www.home.unix-ag.org/simon/woof.html";
diff --git a/pkgs/tools/misc/yad/default.nix b/pkgs/tools/misc/yad/default.nix
index d00d737c17c..889c266d28e 100644
--- a/pkgs/tools/misc/yad/default.nix
+++ b/pkgs/tools/misc/yad/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "yad";
-  version = "6.0";
+  version = "7.2";
 
   src = fetchFromGitHub {
     owner = "v1cont";
     repo = "yad";
     rev = "v${version}";
-    sha256 = "07myjv0g0iwgclc6q9wkj25myhlc86ahy2lqma8vgv9i3rgy03p7";
+    sha256 = "0ih97hrcra2bg8q19b8819hip1p424z1vj61cl1ym5p477rp37yx";
   };
 
   configureFlags = [
diff --git a/pkgs/tools/misc/you-get/default.nix b/pkgs/tools/misc/you-get/default.nix
index 053d2ae59d2..6a13c455fe0 100644
--- a/pkgs/tools/misc/you-get/default.nix
+++ b/pkgs/tools/misc/you-get/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonApplication rec {
   pname = "you-get";
-  version = "0.4.1488";
+  version = "0.4.1500";
 
   # Tests aren't packaged, but they all hit the real network so
   # probably aren't suitable for a build environment anyway.
@@ -10,7 +10,7 @@ buildPythonApplication rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "28aec2f15e86ea1cbf9900827ade41388aa3f1ac43b4ab49999bce48f37cf9c3";
+    sha256 = "5a6cc0d661fe0cd4210bf467d6c89afd8611609e402690254722c1415736da92";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index 9e2afd9b068..5821bcbe786 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/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 = "2020.12.14";
+  version = "2021.01.03";
 
   src = fetchurl {
     url = "https://yt-dl.org/downloads/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0ws2nsvn0qlnnyxz9g95ffygscfmg5npzmwbq8iyyi6b2njsb0cn";
+    sha256 = "0qqixcr748nfhnihkjzayzdja26kgrsds45q5s8krmfm3b79ipli";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
@@ -63,6 +63,6 @@ buildPythonPackage rec {
     '';
     license = licenses.publicDomain;
     platforms = with platforms; linux ++ darwin;
-    maintainers = with maintainers; [ bluescreen303 phreedom AndersonTorres fpletz enzime ma27 zowoq ];
+    maintainers = with maintainers; [ bluescreen303 phreedom AndersonTorres fpletz ma27 zowoq ];
   };
 }
diff --git a/pkgs/tools/misc/ytree/default.nix b/pkgs/tools/misc/ytree/default.nix
index b8818ba6e5e..9edd287776b 100644
--- a/pkgs/tools/misc/ytree/default.nix
+++ b/pkgs/tools/misc/ytree/default.nix
@@ -6,15 +6,16 @@
 
 stdenv.mkDerivation rec {
   pname = "ytree";
-  version = "2.02";
+  version = "2.03";
 
   src = fetchurl {
     url = "https://han.de/~werner/${pname}-${version}.tar.gz";
-    sha256 = "1v70l244rc22f20gac1zha1smrhqkag45jn0iwgcyngfdfml3gz5";
+    sha256 = "sha256-WDqnFVLRNH4Oq+OaI2+loXS/Z93piHGFO5/iojO8rvE=";
   };
 
   buildInputs = [
-    ncurses readline
+    ncurses
+    readline
   ];
 
   # don't save timestamp, in order to improve reproducibility
diff --git a/pkgs/tools/misc/z-lua/default.nix b/pkgs/tools/misc/z-lua/default.nix
index 59149506e6c..2b5a4643549 100644
--- a/pkgs/tools/misc/z-lua/default.nix
+++ b/pkgs/tools/misc/z-lua/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "z-lua";
-  version = "1.8.7";
+  version = "1.8.10";
 
   src = fetchFromGitHub {
     owner = "skywind3000";
     repo = "z.lua";
     rev = version;
-    sha256 = "14n1abv7gh4zajq471bgzpcv8l1159g00h9x83h719i9kxxsa2ba";
+    sha256 = "0q0qs07kmkpjv68j2bjgsrv6shl76mssnchfv82vjf8abkf8343b";
   };
 
   dontBuild = true;
@@ -20,8 +20,10 @@ stdenv.mkDerivation rec {
   installPhase = ''
     runHook preInstall
 
-    install -Dm755 z.lua $out/bin/z
-    wrapProgram $out/bin/z --set LUA_CPATH "${lua52Packages.luafilesystem}/lib/lua/5.2/lfs.so" --set _ZL_USE_LFS 1;
+    install -Dm755 z.lua $out/bin/z.lua
+    wrapProgram $out/bin/z.lua --set LUA_CPATH "${lua52Packages.luafilesystem}/lib/lua/5.2/lfs.so" --set _ZL_USE_LFS 1;
+    # Create symlink for backwards compatibility. See: https://github.com/NixOS/nixpkgs/pull/96081
+    ln -s $out/bin/z.lua $out/bin/z
 
     runHook postInstall
   '';
diff --git a/pkgs/tools/misc/zalgo/default.nix b/pkgs/tools/misc/zalgo/default.nix
new file mode 100644
index 00000000000..d9538141af0
--- /dev/null
+++ b/pkgs/tools/misc/zalgo/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "zalgo";
+  version = "unstable-2020-08-26";
+
+  src = fetchFromGitHub {
+    owner = "lunasorcery";
+    repo = "zalgo";
+    rev = "6aa1f66cfe183f8164a666730dfeaf39133cf01a";
+    sha256 = "00q56yvfcj2f89wllrckvizihivqmd6l77nihb52ffqd99rdd24w";
+  };
+
+  installPhase = ''
+    install -Dm755 zalgo -t $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Read stdin and corrupt it with combining diacritics";
+    homepage = "https://github.com/lunasorcery/zalgo";
+    license = licenses.unfree;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ djanatyn ];
+  };
+}
diff --git a/pkgs/tools/networking/cjdns/default.nix b/pkgs/tools/networking/cjdns/default.nix
index 28a418c27f2..8cc891cce19 100644
--- a/pkgs/tools/networking/cjdns/default.nix
+++ b/pkgs/tools/networking/cjdns/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cjdns";
-  version = "21";
+  version = "21.1";
 
   src = fetchFromGitHub {
     owner = "cjdelisle";
     repo = "cjdns";
     rev = "cjdns-v${version}";
-    sha256 = "1s9d8yrdrj2gviig05jhr0fnzazb88lih0amxfk0av786rvh7ymj";
+    sha256 = "NOmk+vMZ8i0E2MjrUzksk+tkJ9XVVNEXlE5OOTNa+Y0=";
   };
 
   buildInputs = [ which python27 nodejs ] ++
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     homepage = "https://github.com/cjdelisle/cjdns";
     description = "Encrypted networking for regular people";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ehmry ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/tools/networking/corerad/default.nix b/pkgs/tools/networking/corerad/default.nix
index 38331163c12..6ac3c48100e 100644
--- a/pkgs/tools/networking/corerad/default.nix
+++ b/pkgs/tools/networking/corerad/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "corerad";
-  version = "0.2.8";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "mdlayher";
     repo = "corerad";
     rev = "v${version}";
-    sha256 = "053rihi8lqai3z837ddi441yl41lsg1zj9gl62s9vbjmq5l11fjh";
+    sha256 = "1q4wcliifas8xvwy7kcq4fbc1iv7dha3k6j1nbwl7pjqmyggs3f4";
   };
 
-  vendorSha256 = "1ra4yfplmgzxzs1nlbm0izg339fjnkfrw071y8w4m6q6wnzdhljb";
+  vendorSha256 = "07khxs15z9xzcmp4gyggdwqyz361y96h6ib92qax8k83cr0l494p";
 
   doCheck = false;
 
diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix
index c466a48434f..6f1c202a91c 100644
--- a/pkgs/tools/networking/curl/default.nix
+++ b/pkgs/tools/networking/curl/default.nix
@@ -7,7 +7,8 @@
 , gnutlsSupport ? false, gnutls ? null
 , wolfsslSupport ? false, wolfssl ? null
 , scpSupport ? zlibSupport && !stdenv.isSunOS && !stdenv.isCygwin, libssh2 ? null
-, gssSupport ? !stdenv.hostPlatform.isWindows, libkrb5 ? 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
 , c-aresSupport ? false, c-ares ? null
 , brotliSupport ? false, brotli ? null
 }:
@@ -34,14 +35,14 @@ assert gssSupport -> libkrb5 != null;
 
 stdenv.mkDerivation rec {
   pname = "curl";
-  version = "7.73.0";
+  version = "7.74.0";
 
   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 = "sha256-zzT+Cwe4APHAGkmabosq9Uj20OBE3KSinYikvuFG0TE=";
+    sha256 = "19bp3d91xq9vqwlbzq261j23mk9lz4lyka4gr2fm6dhnd3k66k8g";
   };
 
   outputs = [ "bin" "dev" "out" "man" "devdoc" ];
diff --git a/pkgs/tools/networking/dhcp/default.nix b/pkgs/tools/networking/dhcp/default.nix
index 5222f731efb..4a6eca89624 100644
--- a/pkgs/tools/networking/dhcp/default.nix
+++ b/pkgs/tools/networking/dhcp/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
     "-Wno-error=format-truncation"
     "-Wno-error=stringop-truncation"
     "-Wno-error=format-overflow"
+    "-Wno-error=stringop-overflow=8"
   ];
 
   installFlags = [ "DESTDIR=\${out}" ];
@@ -67,7 +68,7 @@ stdenv.mkDerivation rec {
     ''
       substituteInPlace configure --replace "/usr/bin/file" "${file}/bin/file"
       sed -i "includes/dhcpd.h" \
-	-"es|^ *#define \+_PATH_DHCLIENT_SCRIPT.*$|#define _PATH_DHCLIENT_SCRIPT \"$out/sbin/dhclient-script\"|g"
+          -e "s|^ *#define \+_PATH_DHCLIENT_SCRIPT.*$|#define _PATH_DHCLIENT_SCRIPT \"$out/sbin/dhclient-script\"|g"
 
       export AR='${stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ar'
     '';
diff --git a/pkgs/tools/networking/dropbear/default.nix b/pkgs/tools/networking/dropbear/default.nix
index 88217302915..605e95c9392 100644
--- a/pkgs/tools/networking/dropbear/default.nix
+++ b/pkgs/tools/networking/dropbear/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, glibc, zlib
-, enableStatic ? false
+, enableStatic ? stdenv.hostPlatform.isStatic
 , sftpPath ? "/run/current-system/sw/libexec/sftp-server"
 }:
 
diff --git a/pkgs/tools/networking/fdm/default.nix b/pkgs/tools/networking/fdm/default.nix
index fb125b486d7..cb5a781f5ef 100644
--- a/pkgs/tools/networking/fdm/default.nix
+++ b/pkgs/tools/networking/fdm/default.nix
@@ -1,20 +1,14 @@
 { stdenv, fetchFromGitHub, autoreconfHook, openssl, tdb, zlib, flex, bison }:
 
-let
-
-  baseName = "fdm";
-  version = "1.9.0.20170124";
-
-in
-
-stdenv.mkDerivation {
-  name = "${baseName}-${version}";
+stdenv.mkDerivation rec {
+  pname = "fdm";
+  version = "2.0";
 
   src = fetchFromGitHub {
     owner = "nicm";
-    repo = baseName;
-    rev = "cae4ea37b6b296d1b2e48f62934ea3a7f6085e33";
-    sha256 = "048191wdv1yprwinipmx2152gvd2iq1ssv7xfb1bzh6zirh1ya3n";
+    repo = pname;
+    rev = version;
+    sha256 = "0j2n271ni5wslgjq1f4zgz1nsvqjf895dxy3ij5c904bbp8ckcwq";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
@@ -23,7 +17,7 @@ stdenv.mkDerivation {
 
   meta = with stdenv.lib; {
     description = "Mail fetching and delivery tool - should do the job of getmail and procmail";
-    maintainers = with maintainers; [ raskin ];
+    maintainers = with maintainers; [ ninjin raskin ];
     platforms = with platforms; linux;
     homepage = "https://github.com/nicm/fdm";
     downloadPage = "https://github.com/nicm/fdm/releases";
diff --git a/pkgs/tools/networking/httpstat/default.nix b/pkgs/tools/networking/httpstat/default.nix
index e9987a51eae..f404090e5e3 100644
--- a/pkgs/tools/networking/httpstat/default.nix
+++ b/pkgs/tools/networking/httpstat/default.nix
@@ -2,12 +2,12 @@
 
 pythonPackages.buildPythonApplication rec {
   pname = "httpstat";
-  version = "1.3.0";
+  version = "1.3.1";
   src = fetchFromGitHub {
     owner = "reorx";
     repo = pname;
     rev = version;
-    sha256 = "18k2glnyzxlmry19ijmndim2vqqn3c86smd7xc3haw6k7qafifx1";
+    sha256 = "sha256-zUdis41sQpJ1E3LdNwaCVj6gexi/Rk21IBUgoFISiDM=";
   };
   doCheck = false; # No tests
   buildInputs = [ glibcLocales ];
diff --git a/pkgs/tools/networking/kapp/default.nix b/pkgs/tools/networking/kapp/default.nix
new file mode 100644
index 00000000000..13076338529
--- /dev/null
+++ b/pkgs/tools/networking/kapp/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+buildGoModule rec {
+  pname = "kapp";
+  version = "0.35.0";
+
+  src = fetchFromGitHub {
+    owner = "vmware-tanzu";
+    repo = "carvel-kapp";
+    rev = "v${version}";
+    sha256 = "1i4hpqpbwqb0yg3rx4z733zfslq3svmahfr39ss1ydylsipl02mg";
+  };
+
+  vendorSha256 = null;
+
+  subPackages = [ "cmd/kapp" ];
+
+  meta = with lib; {
+    description = "CLI tool that encourages Kubernetes users to manage bulk resources with an application abstraction for grouping";
+    homepage = "https://get-kapp.io";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ brodes ];
+  };
+}
diff --git a/pkgs/tools/networking/libreswan/default.nix b/pkgs/tools/networking/libreswan/default.nix
index 3e7719c40d4..7e6f2c475ca 100644
--- a/pkgs/tools/networking/libreswan/default.nix
+++ b/pkgs/tools/networking/libreswan/default.nix
@@ -29,6 +29,10 @@ stdenv.mkDerivation rec {
     "-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 = [ makeWrapper pkgconfig ];
@@ -82,7 +86,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.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.darwin ++ platforms.freebsd;
+    platforms = platforms.linux ++ platforms.freebsd;
     license = licenses.gpl2;
     maintainers = [ maintainers.afranchuk ];
   };
diff --git a/pkgs/tools/networking/megatools/default.nix b/pkgs/tools/networking/megatools/default.nix
index 43bbc62be95..2a957c8a3f4 100644
--- a/pkgs/tools/networking/megatools/default.nix
+++ b/pkgs/tools/networking/megatools/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchgit, autoreconfHook, pkg-config, glib, fuse, curl, glib-networking
-, asciidoc, libxml2, docbook_xsl, docbook_xml_dtd_45, libxslt, wrapGAppsHook }:
+, asciidoc, libxml2, docbook_xsl, docbook_xml_dtd_45, libxslt, wrapGAppsNoGuiHook }:
 
 stdenv.mkDerivation rec {
   pname = "megatools";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    autoreconfHook pkg-config wrapGAppsHook asciidoc libxml2
+    autoreconfHook pkg-config wrapGAppsNoGuiHook asciidoc libxml2
     docbook_xsl docbook_xml_dtd_45 libxslt
   ];
   buildInputs = [ glib glib-networking curl ]
diff --git a/pkgs/tools/networking/openssh/default.nix b/pkgs/tools/networking/openssh/default.nix
index f8a518ca4dc..ef98f482140 100644
--- a/pkgs/tools/networking/openssh/default.nix
+++ b/pkgs/tools/networking/openssh/default.nix
@@ -1,4 +1,5 @@
 { stdenv
+, pkgs
 , fetchurl
 , fetchpatch
 , zlib
@@ -66,7 +67,9 @@ stdenv.mkDerivation rec {
       substituteInPlace Makefile.in --replace '$(INSTALL) -m 4711' '$(INSTALL) -m 0711'
     '';
 
-  nativeBuildInputs = [ pkgconfig ] ++ optional (hpnSupport || withGssapiPatches) autoreconfHook;
+  nativeBuildInputs = [ pkgconfig ]
+    ++ optional (hpnSupport || withGssapiPatches) autoreconfHook
+    ++ optional withKerberos pkgs.kerberos.dev;
   buildInputs = [ zlib openssl libedit pam ]
     ++ optional withFIDO libfido2
     ++ optional withKerberos kerberos;
@@ -75,6 +78,22 @@ stdenv.mkDerivation rec {
     # Setting LD causes `configure' and `make' to disagree about which linker
     # to use: `configure' wants `gcc', but `make' wants `ld'.
     unset LD
+  ''
+  # Upstream build system does not support static build, so we fall back
+  # on fragile patching of configure script.
+  #
+  # libedit is found by pkgconfig, but without --static flag, required
+  # to get also transitive dependencies for static linkage, hence sed
+  # expression.
+  #
+  # Kerberos can be found either by krb5-config or by fall-back shell
+  # code in openssh's configure.ac. Neither of them support static
+  # build, but patching code for krb5-config is simpler, so to get it
+  # into PATH, kerberos.dev is added into buildInputs.
+  + optionalString stdenv.hostPlatform.isStatic ''
+    sed -i "s,PKGCONFIG --libs,PKGCONFIG --libs --static,g" configure
+    sed -i 's#KRB5CONF --libs`#KRB5CONF --libs` -lkrb5support -lkeyutils#g' configure
+    sed -i 's#KRB5CONF --libs gssapi`#KRB5CONF --libs gssapi` -lkrb5support -lkeyutils#g' configure
   '';
 
   # I set --disable-strip because later we strip anyway. And it fails to strip
diff --git a/pkgs/tools/networking/proxify/default.nix b/pkgs/tools/networking/proxify/default.nix
new file mode 100644
index 00000000000..4a75b3ca2f1
--- /dev/null
+++ b/pkgs/tools/networking/proxify/default.nix
@@ -0,0 +1,31 @@
+{ buildGoModule
+, fetchFromGitHub
+, stdenv
+}:
+
+buildGoModule rec {
+  pname = "proxify";
+  version = "0.0.3";
+
+  src = fetchFromGitHub {
+    owner = "projectdiscovery";
+    repo = "proxify";
+    rev = "v${version}";
+    sha256 = "15j2q9zrs8bdf72jgldkai3xbi4irk69wyjzv48r74rdgf2k49gn";
+  };
+
+  vendorSha256 = "1x78n88ri8kph827k03x1q06zpbbbp7793xsvc376ljda5n6bqig";
+
+  meta = with stdenv.lib; {
+    description = "Proxy tool for HTTP/HTTPS traffic capture";
+    longDescription = ''
+      This tool supports multiple operations such as request/response dump, filtering
+      and manipulation via DSL language, upstream HTTP/Socks5 proxy. Additionally a
+      replay utility allows to import the dumped traffic (request/responses with correct
+      domain name) into other tools by simply setting the upstream proxy to proxify.
+    '';
+    homepage = "https://github.com/projectdiscovery/proxify";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/networking/qr-filetransfer/default.nix b/pkgs/tools/networking/qr-filetransfer/default.nix
deleted file mode 100644
index bb62be6d3e2..00000000000
--- a/pkgs/tools/networking/qr-filetransfer/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
-
-buildGoPackage {
-  pname = "qr-filetransfer-unstable";
-  version = "2018-10-22";
-
-  goPackagePath = "github.com/claudiodangelis/qr-filetransfer";
-
-  src = fetchFromGitHub {
-    rev = "b1e5b91aa2aa469f870c62074e879d46e353edae";
-    owner = "claudiodangelis";
-    repo = "qr-filetransfer";
-    sha256 = "04cl3v6bzpaxp1scpsa42xxa1c1brbplq408bb7nixa98bacj4x1";
-  };
-
-  goDeps = ./deps.nix;
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/claudiodangelis/qr-filetransfer";
-    description = "Transfer files over wifi by scanning a QR code from your terminal";
-    longDescription = ''
-      qr-filetransfer binds a web server to the address of your Wi-Fi network
-      interface on a random port and creates a handler for it. The default
-      handler serves the content and exits the program when the transfer is
-      complete.
-    '';
-    license = licenses.mit;
-    maintainers = with maintainers; [ fgaz ];
-  };
-}
diff --git a/pkgs/tools/networking/qr-filetransfer/deps.nix b/pkgs/tools/networking/qr-filetransfer/deps.nix
deleted file mode 100644
index a15dd968943..00000000000
--- a/pkgs/tools/networking/qr-filetransfer/deps.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-  {
-    goPackagePath = "github.com/mattn/go-colorable";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-colorable";
-      rev = "efa589957cd060542a26d2dd7832fd6a6c6c3ade";
-      sha256 = "0kshi4hvm0ayrsxqxy0599iv81kryhd2fn9lwjyczpj593cq069r";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-isatty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-isatty";
-      rev = "3fb116b820352b7f0c281308a4d6250c22d94e27";
-      sha256 = "084hplr4n4g5nvp70clljk428hc963460xz0ggcj3xdi4w7hhsvv";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-runewidth";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-runewidth";
-      rev = "c88d7e5f2e24de48a200a2655ac8a0910be9a0f7";
-      sha256 = "14prmzjlv9z31n6caaaq1kwi4p0mp3x4pv5r7d0575lcampa41jw";
-    };
-  }
-  {
-    goPackagePath = "github.com/mdp/qrterminal";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mdp/qrterminal";
-      rev = "6967d3624af633162b77160078e12a4c14174470";
-      sha256 = "1f2zrdv9sw2a6ni1712d27cayr3f8whqagx6f0yglc5gdd9f3i2n";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "a5c9d58dba9a56f97aaa86f55e638b718c5a6c42";
-      sha256 = "02qv5i7yps35p7fa81345qz7k8i73gkigj69anwmpw9rhpmzayf9";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/cheggaaa/pb.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/cheggaaa/pb.v1";
-      rev = "007b75a044e968336a69a6c0c617251ab62ac14c";
-      sha256 = "0l8m5cy6fbir7nrsk985ap7dxp9qlfmh8r73g7j9zg7pfq3lkhad";
-    };
-  }
-  {
-    goPackagePath = "rsc.io/qr";
-    fetch = {
-      type = "git";
-      url = "https://github.com/rsc/qr";
-      rev = "ca9a01fc2f9505024045632c50e5e8cd6142fafe";
-      sha256 = "04yx493g0fqp8i59zjxnl4k3s0cl0kr5m8xh0ph8m10r1hkw0xr3";
-    };
-  }
-]
diff --git a/pkgs/tools/networking/qrcp/default.nix b/pkgs/tools/networking/qrcp/default.nix
new file mode 100644
index 00000000000..bf3b3936edd
--- /dev/null
+++ b/pkgs/tools/networking/qrcp/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "qrcp";
+  version = "0.7.0";
+
+  src = fetchFromGitHub {
+    owner = "claudiodangelis";
+    repo = "qrcp";
+    rev = version;
+    sha256 = "0rx0pzy7p3dklayr2lkmyfdc00x9v4pd5xnzydbjx12hncnkpw4l";
+  };
+
+  vendorSha256 = "0iffy43x3njcahrxl99a71v8p7im102nzv8iqbvd5c6m14rsckqa";
+
+  subPackages = [ "." ];
+
+  meta = with lib; {
+    homepage = "https://claudiodangelis.com/qrcp/";
+    description = "Transfer files over wifi by scanning a QR code from your terminal";
+    longDescription = ''
+      qrcp binds a web server to the address of your Wi-Fi network
+      interface on a random port and creates a handler for it. The default
+      handler serves the content and exits the program when the transfer is
+      complete.
+    '';
+    license = licenses.mit;
+    maintainers = with maintainers; [ fgaz ];
+  };
+}
diff --git a/pkgs/tools/networking/saldl/default.nix b/pkgs/tools/networking/saldl/default.nix
index d51e5515bd6..9c2b4915bf1 100644
--- a/pkgs/tools/networking/saldl/default.nix
+++ b/pkgs/tools/networking/saldl/default.nix
@@ -2,6 +2,7 @@
 , fetchFromGitHub
 , pkgconfig
 , wafHook
+, python3
 , asciidoc
 , docbook_xml_dtd_45
 , docbook_xsl
@@ -25,6 +26,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     pkgconfig
     wafHook
+    python3
     asciidoc
     docbook_xml_dtd_45
     docbook_xsl
diff --git a/pkgs/tools/networking/tcpdump/default.nix b/pkgs/tools/networking/tcpdump/default.nix
index fd7b203fbbf..fa555ad4f99 100644
--- a/pkgs/tools/networking/tcpdump/default.nix
+++ b/pkgs/tools/networking/tcpdump/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libpcap, perl }:
+{ stdenv, fetchurl, libpcap, perl, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "tcpdump";
@@ -9,6 +9,14 @@ stdenv.mkDerivation rec {
     sha256 = "0434vdcnbqaia672rggjzdn4bb8p8dchz559yiszzdk0sjrprm1c";
   };
 
+  patches = [
+    # Patch for CVE-2020-8037
+    (fetchpatch {
+      url = "https://github.com/the-tcpdump-group/tcpdump/commit/32027e199368dad9508965aae8cd8de5b6ab5231.patch";
+      sha256 = "sha256-bO3aV032ru9+M/9isBRjmH8jTZLKj9Zf9ha2rmOaZwc=";
+    })
+  ];
+
   postPatch = ''
     patchShebangs tests
   '';
diff --git a/pkgs/tools/networking/wavemon/default.nix b/pkgs/tools/networking/wavemon/default.nix
index 8549495e8f8..0f39a221f4d 100644
--- a/pkgs/tools/networking/wavemon/default.nix
+++ b/pkgs/tools/networking/wavemon/default.nix
@@ -1,18 +1,17 @@
-{ stdenv, fetchFromGitHub, ncurses, libnl, pkgconfig }:
+{ stdenv, fetchFromGitHub, ncurses, libnl, pkg-config }:
 
 stdenv.mkDerivation rec {
-  version = "0.9.2";
-  baseName = "wavemon";
-  name = "${baseName}-${version}";
+  pname = "wavemon";
+  version = "0.9.3";
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkg-config ];
   buildInputs = [ ncurses libnl ];
 
   src = fetchFromGitHub {
     owner = "uoaerg";
     repo = "wavemon";
     rev = "v${version}";
-    sha256 = "0y984wm03lzqf7bk06a07mw7d1fzjsp9x7zxcvlx4xqmv7wlgb29";
+    sha256 = "0m9n5asjxs1ir5rqprigqcrm976mgjvh4yql1jhfnbszwbf95193";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/package-management/cargo-download/Cargo.nix b/pkgs/tools/package-management/cargo-download/Cargo.nix
index 21740ce2ead..f96a3a207df 100644
--- a/pkgs/tools/package-management/cargo-download/Cargo.nix
+++ b/pkgs/tools/package-management/cargo-download/Cargo.nix
@@ -427,7 +427,7 @@ rec {
     serde_urlencoded = "0.5.1";
     tokio = "0.1.7";
     tokio_io = "0.1.10";
-    url = "1.6.0";
+    url = "1.6.1";
     uuid = "0.7.1";
   };
   deps.rustc_version."0.2.3" = {
@@ -464,7 +464,7 @@ rec {
     dtoa = "0.4.2";
     itoa = "0.3.4";
     serde = "1.0.21";
-    url = "1.6.0";
+    url = "1.6.1";
   };
   deps.siphasher."0.2.2" = {};
   deps.slab."0.4.0" = {};
@@ -639,7 +639,7 @@ rec {
   deps.unreachable."1.0.0" = {
     void = "1.0.2";
   };
-  deps.url."1.6.0" = {
+  deps.url."1.6.1" = {
     idna = "0.1.4";
     matches = "0.1.6";
     percent_encoding = "1.0.1";
diff --git a/pkgs/tools/package-management/cargo-download/crates-io.nix b/pkgs/tools/package-management/cargo-download/crates-io.nix
index e0c0abf4dc6..dde192585e0 100644
--- a/pkgs/tools/package-management/cargo-download/crates-io.nix
+++ b/pkgs/tools/package-management/cargo-download/crates-io.nix
@@ -4926,40 +4926,40 @@ rec {
 
 
 # end
-# url-1.6.0
+# url-1.6.1
 
-  crates.url."1.6.0" = deps: { features?(features_.url."1.6.0" deps {}) }: buildRustCrate {
+  crates.url."1.6.1" = deps: { features?(features_.url."1.6.1" deps {}) }: buildRustCrate {
     crateName = "url";
-    version = "1.6.0";
+    version = "1.6.1";
     description = "URL library for Rust, based on the WHATWG URL Standard";
     authors = [ "The rust-url developers" ];
-    sha256 = "1bvzl4dvjj84h46ai3x23wyafa2wwhchj08vr2brf25dxwc7mg18";
+    sha256 = "1qsnhmxznzaxl068a3ksz69kwcz7ghvl4zflg9qj7lyw4bk9ma38";
     dependencies = mapFeatures features ([
-      (crates."idna"."${deps."url"."1.6.0"."idna"}" deps)
-      (crates."matches"."${deps."url"."1.6.0"."matches"}" deps)
-      (crates."percent_encoding"."${deps."url"."1.6.0"."percent_encoding"}" deps)
+      (crates."idna"."${deps."url"."1.6.1"."idna"}" deps)
+      (crates."matches"."${deps."url"."1.6.1"."matches"}" deps)
+      (crates."percent_encoding"."${deps."url"."1.6.1"."percent_encoding"}" deps)
     ]);
-    features = mkFeatures (features."url"."1.6.0" or {});
+    features = mkFeatures (features."url"."1.6.1" or {});
   };
-  features_.url."1.6.0" = deps: f: updateFeatures f (rec {
-    idna."${deps.url."1.6.0".idna}".default = true;
-    matches."${deps.url."1.6.0".matches}".default = true;
-    percent_encoding."${deps.url."1.6.0".percent_encoding}".default = true;
+  features_.url."1.6.1" = deps: f: updateFeatures f (rec {
+    idna."${deps.url."1.6.1".idna}".default = true;
+    matches."${deps.url."1.6.1".matches}".default = true;
+    percent_encoding."${deps.url."1.6.1".percent_encoding}".default = true;
     url = fold recursiveUpdate {} [
-      { "1.6.0"."encoding" =
-        (f.url."1.6.0"."encoding" or false) ||
-        (f.url."1.6.0".query_encoding or false) ||
-        (url."1.6.0"."query_encoding" or false); }
-      { "1.6.0"."heapsize" =
-        (f.url."1.6.0"."heapsize" or false) ||
-        (f.url."1.6.0".heap_size or false) ||
-        (url."1.6.0"."heap_size" or false); }
-      { "1.6.0".default = (f.url."1.6.0".default or true); }
+      { "1.6.1"."encoding" =
+        (f.url."1.6.1"."encoding" or false) ||
+        (f.url."1.6.1".query_encoding or false) ||
+        (url."1.6.1"."query_encoding" or false); }
+      { "1.6.1"."heapsize" =
+        (f.url."1.6.1"."heapsize" or false) ||
+        (f.url."1.6.1".heap_size or false) ||
+        (url."1.6.1"."heap_size" or false); }
+      { "1.6.1".default = (f.url."1.6.1".default or true); }
     ];
   }) [
-    (features_.idna."${deps."url"."1.6.0"."idna"}" deps)
-    (features_.matches."${deps."url"."1.6.0"."matches"}" deps)
-    (features_.percent_encoding."${deps."url"."1.6.0"."percent_encoding"}" deps)
+    (features_.idna."${deps."url"."1.6.1"."idna"}" deps)
+    (features_.matches."${deps."url"."1.6.1"."matches"}" deps)
+    (features_.percent_encoding."${deps."url"."1.6.1"."percent_encoding"}" deps)
   ];
 
 
diff --git a/pkgs/tools/package-management/libdnf/darwin.patch b/pkgs/tools/package-management/libdnf/darwin.patch
new file mode 100644
index 00000000000..56bafb2f7b8
--- /dev/null
+++ b/pkgs/tools/package-management/libdnf/darwin.patch
@@ -0,0 +1,35 @@
+--- src/libdnf/hy-iutil.cpp	2020-12-02 07:53:42.000000000 -0800
++++ src/libdnf/hy-iutil.cpp	2020-12-21 14:24:14.000000000 -0800
+@@ -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>
+--- src/libdnf/hy-util.cpp	2020-12-02 07:53:42.000000000 -0800
++++ src/libdnf/hy-util.cpp	2020-12-21 14:23:21.000000000 -0800
+@@ -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/pkgs/tools/package-management/libdnf/default.nix b/pkgs/tools/package-management/libdnf/default.nix
new file mode 100644
index 00000000000..480222a45de
--- /dev/null
+++ b/pkgs/tools/package-management/libdnf/default.nix
@@ -0,0 +1,66 @@
+{ gcc9Stdenv, stdenv, fetchFromGitHub, cmake, gettext, pkg-config, gpgme, libsolv, openssl, check
+, pcre, json_c, libmodulemd, libsmartcols, sqlite, librepo, libyaml, rpm }:
+
+gcc9Stdenv.mkDerivation rec {
+  pname = "libdnf";
+  version = "0.55.2";
+
+  src = fetchFromGitHub {
+    owner = "rpm-software-management";
+    repo = pname;
+    rev = version;
+    sha256 = "0hiydwfa90nsrqk5ffa6ks1g73wnsgjgq7z7gwq9jj76a7gpfbfq";
+  };
+
+  patches = stdenv.lib.optionals stdenv.isDarwin [ ./darwin.patch ];
+
+  nativeBuildInputs = [
+    cmake
+    gettext
+    pkg-config
+  ];
+
+  buildInputs = [
+    check
+    gpgme
+    openssl
+    json_c
+    libsmartcols
+    libyaml
+    libmodulemd
+  ];
+
+  propagatedBuildInputs = [
+    sqlite
+    libsolv
+    librepo
+    rpm
+  ];
+
+  # See https://github.com/NixOS/nixpkgs/issues/107430
+  prePatch = ''
+    cp ${libsolv}/share/cmake/Modules/FindLibSolv.cmake cmake/modules/
+  '';
+
+  # See https://github.com/NixOS/nixpkgs/issues/107428
+  postPatch = ''
+    substituteInPlace CMakeLists.txt \
+      --replace "enable_testing()" "" \
+      --replace "add_subdirectory(tests)" ""
+  '';
+
+  cmakeFlags = [
+    "-DWITH_GTKDOC=OFF"
+    "-DWITH_HTML=OFF"
+    "-DWITH_BINDINGS=OFF"
+    "-DWITH_ZCHUNK=OFF"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Package management library.";
+    homepage = "https://github.com/rpm-software-management/libdnf";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux ++ platforms.darwin;
+    maintainers = with maintainers; [ rb2k ];
+  };
+}
diff --git a/pkgs/tools/package-management/librepo/default.nix b/pkgs/tools/package-management/librepo/default.nix
index 0e2cec68520..203d5e20f88 100644
--- a/pkgs/tools/package-management/librepo/default.nix
+++ b/pkgs/tools/package-management/librepo/default.nix
@@ -35,10 +35,10 @@ stdenv.mkDerivation rec {
     libxml2
     glib
     openssl
-    zchunk
     curl
     check
     gpgme
+    zchunk
   ];
 
   # librepo/fastestmirror.h includes curl/curl.h, and pkg-config specfile refers to others in here
@@ -48,9 +48,7 @@ stdenv.mkDerivation rec {
     libxml2
   ];
 
-  cmakeFlags = [
-    "-DPYTHON_DESIRED=${stdenv.lib.substring 0 1 python.pythonVersion}"
-  ];
+  cmakeFlags = [ "-DPYTHON_DESIRED=${stdenv.lib.substring 0 1 python.pythonVersion}" ];
 
   postFixup = ''
     moveToOutput "lib/${python.libPrefix}" "$py"
@@ -60,7 +58,7 @@ stdenv.mkDerivation rec {
     description = "Library providing C and Python (libcURL like) API for downloading linux repository metadata and packages";
     homepage = "https://rpm-software-management.github.io/librepo/";
     license = licenses.lgpl2Plus;
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ copumpkin ];
   };
 }
diff --git a/pkgs/tools/package-management/microdnf/default.nix b/pkgs/tools/package-management/microdnf/default.nix
new file mode 100644
index 00000000000..de473cf6a89
--- /dev/null
+++ b/pkgs/tools/package-management/microdnf/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, cmake, gettext, libdnf, pkg-config, glib, libpeas, libsmartcols, help2man }:
+
+stdenv.mkDerivation rec {
+  pname = "microdnf";
+  version = "3.6.0";
+
+  src = fetchFromGitHub {
+    owner = "rpm-software-management";
+    repo = pname;
+    rev = version;
+    sha256 = "0a7lc3qsnblvznzsz3544l3n84184xi85zf7c3m3jhnmpmxsg39h";
+  };
+
+  nativeBuildInputs = [ pkg-config cmake gettext help2man ];
+  buildInputs = [ libdnf glib libpeas libsmartcols ];
+
+  meta = with stdenv.lib; {
+    description = "Lightweight implementation of dnf in C";
+    homepage = "https://github.com/rpm-software-management/microdnf";
+    license = licenses.gpl2Plus;
+    maintainers = with stdenv.lib.maintainers; [ rb2k ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/tools/package-management/nfpm/default.nix b/pkgs/tools/package-management/nfpm/default.nix
index f10b90d0173..fff774d2aef 100644
--- a/pkgs/tools/package-management/nfpm/default.nix
+++ b/pkgs/tools/package-management/nfpm/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "nfpm";
-  version = "1.10.2";
+  version = "2.2.2";
 
   src = fetchFromGitHub {
     owner = "goreleaser";
     repo = pname;
     rev = "v${version}";
-    sha256 = "08qz9zfk19iwf8qfv7vmzvbl8w1vpjrry25w3pxsg93gyjw8v7mi";
+    sha256 = "0qv7xw74hf4fzi7v40fpgjyf01dyz6665dmd2pacpd9n6klnr1h3";
   };
 
-  vendorSha256 = "0qnfd47ykb6g28d3mnfncgmkvqd1myx47x563sxx4lcsq542q83n";
+  vendorSha256 = "0mdh4qrafdxlqqh0kl7wil7w3g5p499qi3yiw8znjkd49g85ws3w";
 
   doCheck = false;
 
diff --git a/pkgs/tools/package-management/nix-update/default.nix b/pkgs/tools/package-management/nix-update/default.nix
index 54492d173e8..4d9365677ab 100644
--- a/pkgs/tools/package-management/nix-update/default.nix
+++ b/pkgs/tools/package-management/nix-update/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonApplication rec {
   pname = "nix-update";
-  version = "0.2";
+  version = "0.3.1";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = pname;
     rev = version;
-    sha256 = "12fsxy2rv2dgk8l10ymp10j01jkcbn9w0fv5iyb5db85q4xsrsm5";
+    sha256 = "sha256-0icQi1HClLMVDOugKckF2J8tEDeMfmW5kgCItJ9n2eo=";
   };
 
   makeWrapperArgs = [
diff --git a/pkgs/tools/package-management/nix/aws-sdk-cpp-TransferManager-ContentEncoding.patch b/pkgs/tools/package-management/nix/aws-sdk-cpp-TransferManager-ContentEncoding.patch
new file mode 100644
index 00000000000..59cc305a60b
--- /dev/null
+++ b/pkgs/tools/package-management/nix/aws-sdk-cpp-TransferManager-ContentEncoding.patch
@@ -0,0 +1,127 @@
+From 7d58e303159b2fb343af9a1ec4512238efa147c7 Mon Sep 17 00:00:00 2001
+From: Eelco Dolstra <edolstra@gmail.com>
+Date: Mon, 6 Aug 2018 17:15:04 +0200
+Subject: [PATCH] TransferManager: Allow setting a content-encoding for S3 uploads
+
+--- a/aws-cpp-sdk-transfer/include/aws/transfer/TransferHandle.h
++++ b/aws-cpp-sdk-transfer/include/aws/transfer/TransferHandle.h
+@@ -297,6 +297,14 @@ namespace Aws
+              * Content type of the object being transferred
+              */
+             inline void SetContentType(const Aws::String& value) { std::lock_guard<std::mutex> locker(m_getterSetterLock); m_contentType = value; }
++            /**
++             * Content encoding of the object being transferred
++             */
++            inline const Aws::String GetContentEncoding() const { std::lock_guard<std::mutex> locker(m_getterSetterLock); return m_contentEncoding; }
++            /**
++             * Content type of the object being transferred
++             */
++            inline void SetContentEncoding(const Aws::String& value) { std::lock_guard<std::mutex> locker(m_getterSetterLock); m_contentEncoding = value; }
+             /**
+              * In case of an upload, this is the metadata that was placed on the object when it was uploaded.
+              * In the case of a download, this is the object metadata from the GetObject operation.
+@@ -383,6 +391,7 @@ namespace Aws
+             Aws::String m_key;
+             Aws::String m_fileName;
+             Aws::String m_contentType;
++            Aws::String m_contentEncoding;
+             Aws::String m_versionId;
+             Aws::Map<Aws::String, Aws::String> m_metadata;
+             TransferStatus m_status;
+--- a/aws-cpp-sdk-transfer/include/aws/transfer/TransferManager.h
++++ b/aws-cpp-sdk-transfer/include/aws/transfer/TransferManager.h
+@@ -154,7 +154,8 @@ namespace Aws
+                                                        const Aws::String& keyName,
+                                                        const Aws::String& contentType, 
+                                                        const Aws::Map<Aws::String, Aws::String>& metadata,
+-                                                       const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr);
++                                                       const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr,
++                                                       const Aws::String& contentEncoding = "");
+ 
+             /**
+              * Downloads the contents of bucketName/keyName in S3 to the file specified by writeToFile. This will perform a GetObject operation.
+@@ -246,7 +247,8 @@ namespace Aws
+                                                                    const Aws::Map<Aws::String,
+                                                                    Aws::String>& metadata,
+                                                                    const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context,
+-                                                                   const Aws::String& fileName = "");
++                                                                   const Aws::String& fileName = "",
++                                                                   const Aws::String& contentEncoding = "");
+ 
+             /**
+              * Submits the actual task to task schecduler
+@@ -262,7 +264,8 @@ namespace Aws
+                                                          const Aws::String& keyName,
+                                                          const Aws::String& contentType,
+                                                          const Aws::Map<Aws::String, Aws::String>& metadata,
+-                                                         const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context);
++                                                         const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context,
++                                                         const Aws::String& contentEncoding);
+ 
+             /**
+              * Uploads the contents of file, to bucketName/keyName in S3. contentType and metadata will be added to the object. If the object is larger than the configured bufferSize,
+--- a/aws-cpp-sdk-transfer/source/transfer/TransferManager.cpp
++++ b/aws-cpp-sdk-transfer/source/transfer/TransferManager.cpp
+@@ -87,9 +87,10 @@ namespace Aws
+                                                                     const Aws::String& bucketName,
+                                                                     const Aws::String& keyName, const Aws::String& contentType,
+                                                                     const Aws::Map<Aws::String, Aws::String>& metadata,
+-                                                                    const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context)
++                                                                    const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context,
++                                                                    const Aws::String& contentEncoding)
+         {
+-            return this->DoUploadFile(fileStream, bucketName, keyName, contentType, metadata, context);
++            return this->DoUploadFile(fileStream, bucketName, keyName, contentType, metadata, context, contentEncoding);
+         }
+ 
+         std::shared_ptr<TransferHandle> TransferManager::DownloadFile(const Aws::String& bucketName,
+@@ -286,6 +287,9 @@ namespace Aws
+                 createMultipartRequest.WithKey(handle->GetKey());
+                 createMultipartRequest.WithMetadata(handle->GetMetadata());
+ 
++                if (handle->GetContentEncoding() != "")
++                    createMultipartRequest.WithContentEncoding(handle->GetContentEncoding());
++
+                 auto createMultipartResponse = m_transferConfig.s3Client->CreateMultipartUpload(createMultipartRequest);
+                 if (createMultipartResponse.IsSuccess())
+                 {
+@@ -441,6 +445,9 @@ namespace Aws
+ 
+             putObjectRequest.SetContentType(handle->GetContentType());
+ 
++            if (handle->GetContentEncoding() != "")
++                putObjectRequest.SetContentEncoding(handle->GetContentEncoding());
++
+             auto buffer = m_bufferManager.Acquire();
+ 
+             auto lengthToWrite = (std::min)(m_transferConfig.bufferSize, handle->GetBytesTotalSize());
+@@ -1140,12 +1147,15 @@ namespace Aws
+                                                                                 const Aws::String& contentType,
+                                                                                 const Aws::Map<Aws::String, Aws::String>& metadata,
+                                                                                 const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context,
+-                                                                                const Aws::String& fileName)
++                                                                                const Aws::String& fileName,
++                                                                                const Aws::String& contentEncoding)
+         {
+             auto handle = Aws::MakeShared<TransferHandle>(CLASS_TAG, bucketName, keyName, 0, fileName);
+             handle->SetContentType(contentType);
+             handle->SetMetadata(metadata);
+             handle->SetContext(context);
++            if (contentEncoding != "")
++                handle->SetContentEncoding(contentEncoding);
+ 
+             if (!fileStream->good())
+             {
+@@ -1213,9 +1223,10 @@ namespace Aws
+                                                                       const Aws::String& keyName,
+                                                                       const Aws::String& contentType,
+                                                                       const Aws::Map<Aws::String, Aws::String>& metadata,
+-                                                                      const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context)
++                                                                      const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context,
++                                                                      const Aws::String& contentEncoding)
+         {
+-            auto handle = CreateUploadFileHandle(fileStream.get(), bucketName, keyName, contentType, metadata, context);
++            auto handle = CreateUploadFileHandle(fileStream.get(), bucketName, keyName, contentType, metadata, context, "", contentEncoding);
+             return SubmitUpload(handle, fileStream);
+         }
+ 
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index c17a1a82d9f..d997a0a87d6 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, fetchFromGitHub, callPackage
+{ lib, fetchurl, fetchFromGitHub, fetchpatch, callPackage
 , storeDir ? "/nix/store"
 , stateDir ? "/nix/var"
 , confDir ? "/etc"
@@ -8,7 +8,7 @@
 let
 
 common =
-  { lib, stdenv, fetchpatch, perl, curl, bzip2, sqlite, openssl ? null, xz
+  { lib, stdenv, perl, curl, bzip2, sqlite, openssl ? null, xz
   , bash, coreutils, gzip, gnutar
   , pkgconfig, boehmgc, perlPackages, libsodium, brotli, boost, editline, nlohmann_json
   , autoreconfHook, autoconf-archive, bison, flex
@@ -22,18 +22,17 @@ common =
   , confDir
   , withLibseccomp ? lib.any (lib.meta.platformMatch stdenv.hostPlatform) libseccomp.meta.platforms, libseccomp
   , withAWS ? !enableStatic && (stdenv.isLinux || stdenv.isDarwin), aws-sdk-cpp
-  , enableStatic ? false
+  , enableStatic ? stdenv.hostPlatform.isStatic
   , name, suffix ? "", src
-
+  , patches ? [ ]
   }:
   let
      sh = busybox-sandbox-shell;
      nix = stdenv.mkDerivation rec {
-      inherit name src;
+      inherit name src patches;
       version = lib.getVersion name;
 
       is24 = lib.versionAtLeast version "2.4pre";
-      isExactly24 = lib.versionAtLeast version "2.4" && lib.versionOlder version "2.4";
 
       VERSION_SUFFIX = suffix;
 
@@ -61,10 +60,9 @@ common =
               apis = ["s3" "transfer"];
               customMemoryManagement = false;
             }).overrideDerivation (args: {
-              patches = args.patches or [] ++ [(fetchpatch {
-                url = "https://github.com/edolstra/aws-sdk-cpp/commit/7d58e303159b2fb343af9a1ec4512238efa147c7.patch";
-                sha256 = "103phn6kyvs1yc7fibyin3lgxz699qakhw671kl207484im55id1";
-              })];
+              patches = args.patches or [] ++ [
+                ./aws-sdk-cpp-TransferManager-ContentEncoding.patch
+              ];
             }));
 
       propagatedBuildInputs = [ boehmgc ];
@@ -93,9 +91,15 @@ common =
             patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib $out/lib/libboost_thread.so.*
           ''}
         '' +
-        # For Nix 2.4, 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 && isExactly24) ''
+        # 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.
+        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
+        ) ''
           mkdir tmp/
           substitute corepkgs/config.nix.in tmp/config.nix.in \
             --subst-var-by bash ${bash}/bin/bash \
@@ -188,26 +192,40 @@ in rec {
   nix = nixStable;
 
   nixStable = callPackage common (rec {
-    name = "nix-2.3.9";
+    name = "nix-2.3.10";
     src = fetchurl {
       url = "https://nixos.org/releases/nix/${name}/${name}.tar.xz";
-      sha256 = "72331fdba220517a0ccabcf5c9735703c31674bfb4ef0b64da5d8f715d6022fa";
+      sha256 = "a8a85e55de43d017abbf13036edfb58674ca136691582f17080c1cd12787b7ab";
     };
 
+    patches = [(
+      fetchpatch {
+        url = "https://github.com/NixOS/nix/pull/4316.patch";
+        sha256 = "0bqlm4n9sac9prgr9xlfng92arisp1hiqvc9pfh4fibsppkgdfc5";
+      }
+    )];
+
     inherit storeDir stateDir confDir boehmgc;
   });
 
   nixUnstable = lib.lowPrio (callPackage common rec {
     name = "nix-2.4${suffix}";
-    suffix = "pre20201201_5a6ddb3";
+    suffix = "pre20201205_a5d85d0";
 
     src = fetchFromGitHub {
       owner = "NixOS";
       repo = "nix";
-      rev = "5a6ddb3de14a1684af6c793d663764d093fa7846";
-      sha256 = "0qhd3nxvqzszzsfvh89xhd239ycqb0kq2n0bzh9br78pcb60vj3g";
+      rev = "a5d85d07faa94cf3518e98273be4bee3d495f06a";
+      sha256 = "0g9jjhh0vs4hjrff5yx88x6sh7rk87ngvni3gnyxajqia957dipg";
     };
 
+    patches = [
+      (fetchpatch { # Fix build on gcc10
+        url = "https://github.com/NixOS/nix/commit/d4870462f8f539adeaa6dca476aff6f1f31e1981.patch";
+        sha256 = "mTvLvuxb2QVybRDgntKMq+b6da/s3YgM/ll2rWBeY/Y=";
+      })
+    ];
+
     inherit storeDir stateDir confDir boehmgc;
   });
 
diff --git a/pkgs/tools/package-management/protontricks/default.nix b/pkgs/tools/package-management/protontricks/default.nix
index 02bc599f47d..e4e60442c8f 100644
--- a/pkgs/tools/package-management/protontricks/default.nix
+++ b/pkgs/tools/package-management/protontricks/default.nix
@@ -1,31 +1,29 @@
-{ stdenv
-, lib
+{ lib
 , buildPythonApplication
 , fetchFromGitHub
 , setuptools_scm
 , vdf
-, wine
+, steam-run
 , winetricks
 , zenity
-, pytest
+, pytestCheckHook
 }:
 
 buildPythonApplication rec {
   pname = "protontricks";
-  version = "1.4.2";
+  version = "1.4.3";
 
   src = fetchFromGitHub {
     owner = "Matoking";
     repo = pname;
     rev = version;
-    sha256 = "0ri4phi1rna9snrxa6gl23walyack09mgax7zpjqfpxivwls3ach";
+    sha256 = "0a5727igwafwvj8rr5lv0lx8rlfji3qkzmrbp0d15w5dc4fhknp0";
   };
 
-  # Fix interpreter in mock run.sh for tests
-  postPatch = ''
-    substituteInPlace tests/conftest.py \
-      --replace '#!/bin/bash' '#!${stdenv.shell}' \
-  '';
+  patches = [
+    # Use steam-run to run Proton binaries
+    ./steam-run.patch
+  ];
 
   preBuild = ''
     export SETUPTOOLS_SCM_PRETEND_VERSION="${version}"
@@ -34,22 +32,30 @@ buildPythonApplication rec {
   nativeBuildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ vdf ];
 
-  # The wine install shipped with Proton must run under steam's
-  # chrootenv, but winetricks and zenity break when running under
-  # it. See https://github.com/NixOS/nix/issues/902.
-  #
-  # The current workaround is to use wine from nixpkgs
   makeWrapperArgs = [
-    "--set STEAM_RUNTIME 0"
-    "--set-default WINE ${wine}/bin/wine"
-    "--set-default WINESERVER ${wine}/bin/wineserver"
-    "--prefix PATH : ${lib.makeBinPath [ winetricks zenity ]}"
+    "--prefix PATH : ${lib.makeBinPath [
+      steam-run
+      (winetricks.override {
+        # Remove default build of wine to reduce closure size.
+        # Falls back to wine in PATH when --no-runtime is passed.
+        wine = null;
+      })
+      zenity
+    ]}"
   ];
 
-  checkInputs = [ pytest ];
-  checkPhase = "pytest";
+  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"
+  ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A simple wrapper for running Winetricks commands for Proton-enabled games";
     homepage = "https://github.com/Matoking/protontricks";
     license = licenses.gpl3;
diff --git a/pkgs/tools/package-management/protontricks/steam-run.patch b/pkgs/tools/package-management/protontricks/steam-run.patch
new file mode 100644
index 00000000000..536072cafc4
--- /dev/null
+++ b/pkgs/tools/package-management/protontricks/steam-run.patch
@@ -0,0 +1,254 @@
+diff --git a/src/protontricks/cli.py b/src/protontricks/cli.py
+index 6506dae..2f762c9 100755
+--- a/src/protontricks/cli.py
++++ b/src/protontricks/cli.py
+@@ -14,7 +14,7 @@ import os
+ import logging
+ 
+ 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):
+             "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 "
+-            "Runtime, valid path = custom Steam Runtime path, "
+-            "empty = enable automatically (default)"
++            "Runtime, empty = enable automatically (default)"
+         ),
+         formatter_class=argparse.RawTextHelpFormatter
+     )
+@@ -133,14 +132,10 @@ def main(args=None):
+         sys.exit(-1)
+ 
+     # 2. Find Steam Runtime if enabled
+-    steam_runtime_path = None
++    steam_runtime = False
+ 
+     if os.environ.get("STEAM_RUNTIME", "") != "0" and not args.no_runtime:
+-        steam_runtime_path = find_steam_runtime_path(steam_root=steam_root)
+-
+-        if not steam_runtime_path:
+-            print("Steam Runtime was enabled but couldn't be found!")
+-            sys.exit(-1)
++        steam_runtime = True
+     else:
+         logger.info("Steam Runtime disabled.")
+ 
+@@ -194,7 +189,7 @@ def main(args=None):
+             winetricks_path=winetricks_path,
+             proton_app=proton_app,
+             steam_app=steam_app,
+-            steam_runtime_path=steam_runtime_path,
++            steam_runtime=steam_runtime,
+             command=[winetricks_path, "--gui"]
+         )
+         return
+@@ -261,7 +256,7 @@ def main(args=None):
+             winetricks_path=winetricks_path,
+             proton_app=proton_app,
+             steam_app=steam_app,
+-            steam_runtime_path=steam_runtime_path,
++            steam_runtime=steam_runtime,
+             command=[winetricks_path] + args.winetricks_command)
+     elif args.command:
+         run_command(
+@@ -269,7 +264,7 @@ def main(args=None):
+             proton_app=proton_app,
+             steam_app=steam_app,
+             command=args.command,
+-            steam_runtime_path=steam_runtime_path,
++            steam_runtime=steam_runtime,
+             # 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 215b31d..aa545b8 100644
+--- a/src/protontricks/steam.py
++++ b/src/protontricks/steam.py
+@@ -11,7 +11,7 @@ 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"
+ )
+@@ -245,37 +245,6 @@ def find_steam_path():
+     return None, None
+ 
+ 
+-def find_steam_runtime_path(steam_root):
+-    """
+-    Find the Steam Runtime either using the STEAM_RUNTIME env or
+-    steam_root
+-    """
+-    env_steam_runtime = os.environ.get("STEAM_RUNTIME", "")
+-
+-    if env_steam_runtime == "0":
+-        # User has disabled Steam Runtime
+-        logger.info("STEAM_RUNTIME is 0. Disabling Steam Runtime.")
+-        return None
+-    elif env_steam_runtime and Path(env_steam_runtime).is_dir():
+-        # User has a custom Steam Runtime
+-        logger.info(
+-            "Using custom Steam Runtime at %s", env_steam_runtime)
+-        return Path(env_steam_runtime)
+-    elif env_steam_runtime in ["1", ""]:
+-        # User has enabled Steam Runtime or doesn't have STEAM_RUNTIME set;
+-        # default to enabled Steam Runtime in either case
+-        steam_runtime_path = steam_root / "ubuntu12_32" / "steam-runtime"
+-
+-        logger.info(
+-            "Using default Steam Runtime at %s", str(steam_runtime_path))
+-        return steam_runtime_path
+-
+-    logger.error(
+-        "Path in STEAM_RUNTIME doesn't point to a valid Steam Runtime!")
+-
+-    return None
+-
+-
+ APPINFO_STRUCT_HEADER = "<4sL"
+ APPINFO_STRUCT_SECTION = "<LLLLQ20sL"
+ 
+diff --git a/src/protontricks/util.py b/src/protontricks/util.py
+index a850427..390fc01 100644
+--- a/src/protontricks/util.py
++++ b/src/protontricks/util.py
+@@ -6,7 +6,7 @@ import stat
+ from pathlib import Path
+ from subprocess import check_output, run, PIPE
+ 
+-__all__ = ("get_runtime_library_paths", "create_wine_bin_dir", "run_command")
++__all__ = ("create_wine_bin_dir", "run_command")
+ 
+ logger = logging.getLogger("protontricks")
+ 
+@@ -25,70 +25,10 @@ def lower_dict(d):
+     return {k.lower(): v for k, v in d.items()}
+ 
+ 
+-def get_host_library_paths():
+-    """
+-    Get host library paths to use when creating the LD_LIBRARY_PATH environment
+-    variable for use with newer Steam Runtime installations
+-    """
+-    # 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)
+-
+-
+-def get_runtime_library_paths(steam_runtime_path, proton_app):
+-    """
+-    Get LD_LIBRARY_PATH value to run a command using Steam Runtime
+-    """
+-    if proton_app.required_tool_app:
+-        # 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 = next(
+-            proton_app.required_tool_app.install_path.glob("*/files/")
+-        )
+-        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 / "i686-pc-linux-gnu" / "lib"), os.pathsep,
+-            str(runtime_root / "x86_64-pc-linux-gnu" / "lib")
+-        ])
+-
+-    # Traditional LD_LIBRARY_PATH based Steam Runtime is used otherwise
+-    steam_runtime_paths = check_output([
+-        str(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,
+-        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} \"$@\""
+ )
+ 
+ 
+@@ -149,7 +89,7 @@ def create_wine_bin_dir(proton_app):
+ 
+ def run_command(
+         winetricks_path, proton_app, steam_app, command,
+-        steam_runtime_path=None,
++        steam_runtime=False,
+         **kwargs):
+     """Run an arbitrary command with the correct environment variables
+     for the given Proton app
+@@ -157,7 +97,7 @@ 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
+     """
+     # Make a copy of the environment variables to restore later
+     environ_copy = os.environ.copy()
+@@ -200,7 +140,7 @@ def run_command(
+     os.environ.pop("WINEARCH", "")
+ 
+     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(
+@@ -217,8 +157,6 @@ def run_command(
+         # 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)
+         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 19e1137..2ef56d6 100644
+--- a/tests/test_cli.py
++++ b/tests/test_cli.py
+@@ -114,9 +114,6 @@ 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))
+-        assert (
+-            "fake_steam_runtime/lib64" in command.env["PROTON_LD_LIBRARY_PATH"]
+-        )
+         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")
diff --git a/pkgs/tools/package-management/rpm/default.nix b/pkgs/tools/package-management/rpm/default.nix
index 8acf57570d7..ac470d3e26a 100644
--- a/pkgs/tools/package-management/rpm/default.nix
+++ b/pkgs/tools/package-management/rpm/default.nix
@@ -1,21 +1,22 @@
-{ stdenv, lib
+{ stdenv, lib, fetchpatch
 , pkgconfig, autoreconfHook
-, fetchurl, cpio, zlib, bzip2, file, elfutils, libbfd, libarchive, nspr, nss, popt, db, xz, python, lua, llvmPackages
+, fetchurl, cpio, zlib, bzip2, file, elfutils, libbfd, libgcrypt, libarchive, nspr, nss, popt, db, xz, python, lua, llvmPackages
+, sqlite
 }:
 
 stdenv.mkDerivation rec {
   pname = "rpm";
-  version = "4.15.1";
+  version = "4.16.1.2";
 
   src = fetchurl {
     url = "http://ftp.rpm.org/releases/rpm-${lib.versions.majorMinor version}.x/rpm-${version}.tar.bz2";
-    sha256 = "0c6jwail90fhha3bpx70w4a2i8ycxwvnx6zwxm121l8wc3wlbvyx";
+    sha256 = "1k6ank2aad7r503w12m6m494mxr6iccj52wqhwbc94pwxsf34mw3";
   };
 
   outputs = [ "out" "dev" "man" ];
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
-  buildInputs = [ cpio zlib bzip2 file libarchive nspr nss db xz python lua ]
+  buildInputs = [ cpio zlib bzip2 file libarchive libgcrypt nspr nss db xz python lua sqlite ]
                 ++ lib.optionals stdenv.cc.isClang [ llvmPackages.openmp ];
 
   # rpm/rpmlib.h includes popt.h, and then the pkg-config file mentions these as linkage requirements
@@ -28,14 +29,23 @@ stdenv.mkDerivation rec {
     "--with-external-db"
     "--with-lua"
     "--enable-python"
+    "--enable-ndb"
+    "--enable-sqlite"
     "--localstatedir=/var"
     "--sharedstatedir=/com"
   ];
 
-  postPatch = ''
-    # For Python3, the original expression evaluates as 'python3.4' but we want 'python3.4m' here
-    substituteInPlace configure.ac --replace 'python''${PYTHON_VERSION}' ${python.executable}
+  # Small fixes for ndb on darwin
+  # https://github.com/rpm-software-management/rpm/pull/1465
+  patches = [
+    (fetchpatch {
+      name = "darwin-support.patch";
+      url = "https://github.com/rpm-software-management/rpm/commit/2d20e371d5e38f4171235e5c64068cad30bda557.patch";
+      sha256 = "0p3j5q5a4hl357maf7018k3826jhcpqg6wfrnccrkv30g0ayk171";
+    })
+  ];
 
+  postPatch = ''
     substituteInPlace Makefile.am --replace '@$(MKDIR_P) $(DESTDIR)$(localstatedir)/tmp' ""
   '';
 
diff --git a/pkgs/tools/security/dnsx/default.nix b/pkgs/tools/security/dnsx/default.nix
new file mode 100644
index 00000000000..21bf7d4664c
--- /dev/null
+++ b/pkgs/tools/security/dnsx/default.nix
@@ -0,0 +1,31 @@
+{ buildGoModule
+, fetchFromGitHub
+, stdenv
+}:
+
+buildGoModule rec {
+  pname = "dnsx";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "projectdiscovery";
+    repo = "dnsx";
+    rev = "v${version}";
+    sha256 = "1pgq21pbnz2dm272zrhd455njj5vg4kywpd230acj675nlgir6y1";
+  };
+
+  vendorSha256 = "0j2cqvskzxbyfrvsv4gm4qwfjm0digizcg157z5iignnknddajax";
+
+  meta = with stdenv.lib; {
+    description = "Fast and multi-purpose DNS toolkit";
+    longDescription = ''
+      dnsx is a fast and multi-purpose DNS toolkit allow to run multiple
+      probers using retryabledns library, that allows you to perform
+      multiple DNS queries of your choice with a list of user supplied
+      resolvers.
+    '';
+    homepage = "https://github.com/projectdiscovery/dnsx";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/enpass/data.json b/pkgs/tools/security/enpass/data.json
index a4a3b919e64..7a52e260eb9 100644
--- a/pkgs/tools/security/enpass/data.json
+++ b/pkgs/tools/security/enpass/data.json
@@ -1,12 +1,12 @@
 {
   "amd64": {
-    "path": "pool/main/e/enpass/enpass_6.0.1.239_amd64.deb", 
-    "sha256": "408a2bb318564307607f13b52fec7667f425c01ac40cbe345ebfa191ab1479ba", 
-    "version": "6.0.1.239"
-  }, 
+    "path": "pool/main/e/enpass/enpass_6.5.1.723_amd64.deb",
+    "sha256": "d9bb408fa2253ce44ab5396898f7db13291ce23ae58964f4a27ade38bd5067bf",
+    "version": "6.5.1.723"
+  },
   "i386": {
     "path": "pool/main/e/enpass/enpass_5.6.9_i386.deb", 
     "sha256": "3f699ac3e2ecfd4afee1505d8d364d4f6b6b94c55ba989d0a80bd678ff66cb2c", 
     "version": "5.6.9"
   }
-}
\ No newline at end of file
+}
diff --git a/pkgs/tools/security/enpass/default.nix b/pkgs/tools/security/enpass/default.nix
index 370282d02d0..be2e5b06246 100644
--- a/pkgs/tools/security/enpass/default.nix
+++ b/pkgs/tools/security/enpass/default.nix
@@ -2,7 +2,7 @@
 , glib, libGLU, libGL, libpulseaudio, zlib, dbus, fontconfig, freetype
 , gtk3, pango
 , makeWrapper , python2Packages, lib
-, lsof, curl, libuuid, cups, mesa
+, lsof, curl, libuuid, cups, mesa, lzma, libxkbcommon
 }:
 
 let
@@ -38,6 +38,8 @@ let
     curl
     libuuid
     cups
+    lzma
+    libxkbcommon
   ]);
   package = stdenv.mkDerivation {
 
@@ -49,11 +51,12 @@ let
       url = "${baseUrl}/${data.path}";
     };
 
-    meta = {
-      description = "a well known password manager";
+    meta = with stdenv.lib; {
+      description = "A well known password manager";
       homepage = "https://www.enpass.io/";
-      license = lib.licenses.unfree;
+      license = licenses.unfree;
       platforms = [ "x86_64-linux" "i686-linux"];
+      maintainers = with maintainers; [ ewok ];
     };
 
     buildInputs = [makeWrapper dpkg];
diff --git a/pkgs/tools/security/ffuf/default.nix b/pkgs/tools/security/ffuf/default.nix
new file mode 100644
index 00000000000..77a286df4c6
--- /dev/null
+++ b/pkgs/tools/security/ffuf/default.nix
@@ -0,0 +1,34 @@
+{ buildGoModule
+, fetchFromGitHub
+, stdenv
+}:
+
+buildGoModule rec {
+  pname = "ffuf";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1jb2x0ybcb9zkqm7flpmr0hd3171xvnn6kxmfcgds4x8l9fbmxnr";
+  };
+
+  vendorSha256 = "0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5";
+
+  # tests don't pass due to an issue with the memory addresses
+  # https://github.com/ffuf/ffuf/issues/367
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Fast web fuzzer written in Go";
+    longDescription = ''
+      FFUF, or “Fuzz Faster you Fool” is an open source web fuzzing tool,
+      intended for discovering elements and content within web applications
+      or web servers.
+    '';
+    homepage = "https://github.com/ffuf/ffuf";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/gau/default.nix b/pkgs/tools/security/gau/default.nix
new file mode 100644
index 00000000000..cfbae951526
--- /dev/null
+++ b/pkgs/tools/security/gau/default.nix
@@ -0,0 +1,29 @@
+{ buildGoModule
+, fetchFromGitHub
+, stdenv
+}:
+
+buildGoModule rec {
+  pname = "gau";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "lc";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1srbql603vvlxc6p1ibw0982icdq9kcr1iamxlr8bmgldbm8215w";
+  };
+
+  vendorSha256 = "17ag2wvaxv2dyx3yx3fvlf36ww4a44660pn4gvpbrwacsan9as5s";
+
+  meta = with stdenv.lib; {
+    description = "Tool to fetch known URLs";
+    longDescription = ''
+      getallurls (gau) fetches known URLs from various sources for any
+      given domain.
+    '';
+    homepage = "https://github.com/lc/gau";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/ghidra/default.nix b/pkgs/tools/security/ghidra/default.nix
index e11d028f1f8..2e55b24f723 100644
--- a/pkgs/tools/security/ghidra/default.nix
+++ b/pkgs/tools/security/ghidra/default.nix
@@ -1,6 +1,15 @@
-{ stdenv, fetchzip, lib, makeWrapper, autoPatchelfHook
-, openjdk11, pam, makeDesktopItem, icoutils
-}: let
+{ stdenv
+, fetchzip
+, lib
+, makeWrapper
+, autoPatchelfHook
+, openjdk11
+, pam
+, makeDesktopItem
+, icoutils
+}:
+
+let
 
   pkg_path = "$out/lib/ghidra";
 
@@ -13,23 +22,22 @@
     categories = "Development;";
   };
 
-
 in stdenv.mkDerivation rec {
 
   pname = "ghidra";
-  version = "9.2";
-  versiondate = "20201113";
+  version = "9.2.1";
+  versiondate = "20201215";
 
   src = fetchzip {
     url = "https://www.ghidra-sre.org/ghidra_${version}_PUBLIC_${versiondate}.zip";
-    sha256 = "0lcvmbq04qkdsf0bz509frgw79bhyxyixkqg1k712p3576ng3nby";
+    sha256 = "0rjzmx0nbv9flb666mk3w2dqliyfzjyc4ldjfmb5d29wpgnf9bnz";
   };
 
   nativeBuildInputs = [
     makeWrapper
-    autoPatchelfHook
     icoutils
-  ];
+  ]
+  ++ lib.optionals stdenv.isLinux [ autoPatchelfHook ];
 
   buildInputs = [
     stdenv.cc.cc.lib
@@ -62,7 +70,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A software reverse engineering (SRE) suite of tools developed by NSA's Research Directorate in support of the Cybersecurity mission";
     homepage = "https://ghidra-sre.org/";
-    platforms = [ "x86_64-linux" ];
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
     license = licenses.asl20;
     maintainers = with maintainers; [ ck3d govanify ];
   };
diff --git a/pkgs/tools/security/gospider/default.nix b/pkgs/tools/security/gospider/default.nix
new file mode 100644
index 00000000000..b7c94c94023
--- /dev/null
+++ b/pkgs/tools/security/gospider/default.nix
@@ -0,0 +1,33 @@
+{ buildGoModule
+, fetchFromGitHub
+, stdenv
+}:
+
+buildGoModule rec {
+  pname = "gospider";
+  version = "1.1.4";
+
+  src = fetchFromGitHub {
+    owner = "jaeles-project";
+    repo = pname;
+    rev = version;
+    sha256 = "03gl8y2047iwa6bhmayyds3li21wy3sw1x4hpp9zgqgi95039q86";
+  };
+
+  vendorSha256 = "0dc4ddi26i38c5rvy9zbal27a7qvn17h64w1yhbig4iyb79b18ym";
+
+  # tests require internet access and API keys
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Fast web spider written in Go";
+    longDescription = ''
+      GoSpider is a fast web crawler that parses sitemap.xml and robots.txt file.
+      It can generate and verify link from JavaScript files, extract URLs from
+      various sources and can detect subdomains from the response source.
+    '';
+    homepage = "https://github.com/jaeles-project/gospider";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/httpx/default.nix b/pkgs/tools/security/httpx/default.nix
new file mode 100644
index 00000000000..c7d83075e9d
--- /dev/null
+++ b/pkgs/tools/security/httpx/default.nix
@@ -0,0 +1,30 @@
+{ buildGoModule
+, fetchFromGitHub
+, stdenv
+}:
+
+buildGoModule rec {
+  pname = "httpx";
+  version = "1.0.3";
+
+  src = fetchFromGitHub {
+    owner = "projectdiscovery";
+    repo = "httpx";
+    rev = "v${version}";
+    sha256 = "15ihc5926kbai16i59c7bmvgd162qq9dpd52g4vrp7dq4jrz155m";
+  };
+
+  vendorSha256 = "0fg93vhwpx113fpw8qg4ram4bdh6a8x3a36pr1c962s4vhrabwy2";
+
+  meta = with stdenv.lib; {
+    description = "Fast and multi-purpose HTTP toolkit";
+    longDescription = ''
+      httpx is a fast and multi-purpose HTTP toolkit allow to run multiple
+      probers using retryablehttp library, it is designed to maintain the
+      result reliability with increased threads.
+    '';
+    homepage = "https://github.com/projectdiscovery/httpx";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/jwt-cli/default.nix b/pkgs/tools/security/jwt-cli/default.nix
index 728ea0a92da..db73bb958eb 100644
--- a/pkgs/tools/security/jwt-cli/default.nix
+++ b/pkgs/tools/security/jwt-cli/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "jwt-cli";
-  version = "3.2.1";
+  version = "3.3.0";
 
   src = fetchFromGitHub {
     owner = "mike-engel";
     repo = pname;
     rev = version;
-    sha256 = "07mnkr7hi29fyyyn7llb30p4ndiqz4gf1lnhm44qm09alaxmfvws";
+    sha256 = "09zi55ffkhsckvqj84xnxn9bgfkrj9wnzqbh9hfsxzbk4xy7fc2h";
   };
 
-  cargoSha256 = "0jkzy7ssg9v9phhlldq6s4rfs3sn17y2r1k0jr10g9j15lzixa04";
+  cargoSha256 = "1k13pw202fr5mvd0ys39n3dxwcl3sd01j6izfb28k06b6pav3wc8";
 
   buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
 
diff --git a/pkgs/tools/security/naabu/default.nix b/pkgs/tools/security/naabu/default.nix
new file mode 100644
index 00000000000..a2295d87fec
--- /dev/null
+++ b/pkgs/tools/security/naabu/default.nix
@@ -0,0 +1,38 @@
+{ buildGoModule
+, fetchFromGitHub
+, lib
+, libpcap
+}:
+
+buildGoModule rec {
+  pname = "naabu";
+  version = "2.0.3";
+
+  src = fetchFromGitHub {
+    owner = "projectdiscovery";
+    repo = "naabu";
+    rev = "v${version}";
+    sha256 = "05iybf7q3y0piyw202yzld89fiz2dv2pmnpm1pd905phk5a23n1x";
+  };
+
+  vendorSha256 = "111qvkqdcdgir3dz267xckzlnfx72flnyi7ki7fa6ml7mkfyf70y";
+
+  buildInputs = [ libpcap ];
+
+  preBuild = ''
+    mv v2/* .
+  '';
+
+  meta = with lib; {
+    description = "Fast SYN/CONNECT port scanner";
+    longDescription = ''
+      Naabu is a port scanning tool written in Go that allows you to enumerate
+      valid ports for hosts in a fast and reliable manner. It is a really simple
+      tool that does fast SYN/CONNECT scans on the host/list of hosts and lists
+      all ports that return a reply.
+    '';
+    homepage = "https://github.com/projectdiscovery/naabu";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/neopg/default.nix b/pkgs/tools/security/neopg/default.nix
index 4f4f660e20f..8c0d31853ff 100644
--- a/pkgs/tools/security/neopg/default.nix
+++ b/pkgs/tools/security/neopg/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     '';
     maintainers = with maintainers; [ erictapen ];
     platforms = platforms.linux;
+    broken = true; # fails to build with recent versions of botan. https://github.com/das-labor/neopg/issues/98
   };
 }
diff --git a/pkgs/tools/security/nuclei/default.nix b/pkgs/tools/security/nuclei/default.nix
new file mode 100644
index 00000000000..22013352a38
--- /dev/null
+++ b/pkgs/tools/security/nuclei/default.nix
@@ -0,0 +1,36 @@
+{ buildGoModule
+, fetchFromGitHub
+, stdenv
+}:
+
+buildGoModule rec {
+  pname = "nuclei";
+  version = "2.2.0";
+
+  src = fetchFromGitHub {
+    owner = "projectdiscovery";
+    repo = "nuclei";
+    rev = "v${version}";
+    sha256 = "0xrvza86aczlnb11x58fiqch5g0q6gvpxwsi5dq3akfi95gk3a3x";
+  };
+
+  vendorSha256 = "1v3ax8l1lgp2vs50gsa2fhdd6bvyfdlkd118akrqmwxahyyyqycv";
+
+  preBuild = ''
+    mv v2/* .
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Tool for configurable targeted scanning";
+    longDescription = ''
+      Nuclei is used to send requests across targets based on a template
+      leading to zero false positives and providing effective scanning
+      for known paths. Main use cases for nuclei are during initial
+      reconnaissance phase to quickly check for low hanging fruits or
+      CVEs across targets that are known and easily detectable.
+    '';
+    homepage = "https://github.com/projectdiscovery/nuclei";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/onlykey-cli/default.nix b/pkgs/tools/security/onlykey-cli/default.nix
new file mode 100644
index 00000000000..b342f203b44
--- /dev/null
+++ b/pkgs/tools/security/onlykey-cli/default.nix
@@ -0,0 +1,24 @@
+{ lib, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "onlykey-cli";
+  version = "1.2.2";
+
+  src = python3Packages.fetchPypi {
+    inherit version;
+    pname = "onlykey";
+    sha256 = "1qkbgab5xlg7bd0jfzf8k5ppb1zhib76r050fiaqi5wibrqrfwdi";
+  };
+
+  # Requires having the physical onlykey (a usb security key)
+  doCheck = false;
+  propagatedBuildInputs =
+    with python3Packages; [ hidapi aenum six prompt_toolkit pynacl ecdsa cython ];
+
+  meta = with lib; {
+    description = "OnlyKey client and command-line tool";
+    homepage = "https://github.com/trustcrypto/python-onlykey";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ranfdev ];
+  };
+}
diff --git a/pkgs/tools/security/rbw/default.nix b/pkgs/tools/security/rbw/default.nix
index e8c4b1f541b..bd5e8866374 100644
--- a/pkgs/tools/security/rbw/default.nix
+++ b/pkgs/tools/security/rbw/default.nix
@@ -20,15 +20,15 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rbw";
-  version = "0.5.0";
+  version = "0.5.2";
 
   src = fetchCrate {
     inherit version;
     crateName = pname;
-    sha256 = "0p37kwkp153mkns4bh7k7gnksk6c31214wlw3faf42daav32mmgw";
+    sha256 = "1mxl71yz2iy5s6pbp33cwkfzzilkla4qqiskd6jsd5fdlrrwlxqm";
   };
 
-  cargoSha256 = "1vkgh0995xx0hr96mnzmdgd15gs6da7ynywqcjgcw5kr48bf1063";
+  cargoSha256 = "19gznam64s17kha3accgjks5rmd9kpqqgxg3dfrk7fg5v4431007";
 
   nativeBuildInputs = [
     pkgconfig
@@ -72,6 +72,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description = "Unofficial command line client for Bitwarden";
     homepage = "https://crates.io/crates/rbw";
+    changelog = "https://git.tozt.net/rbw/plain/CHANGELOG.md?id=${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ albakham luc65r marsam ];
   };
diff --git a/pkgs/tools/security/sequoia/default.nix b/pkgs/tools/security/sequoia/default.nix
index aa2a12fc351..201b4c56f2b 100644
--- a/pkgs/tools/security/sequoia/default.nix
+++ b/pkgs/tools/security/sequoia/default.nix
@@ -23,16 +23,16 @@ assert pythonSupport -> pythonPackages != null;
 
 rustPlatform.buildRustPackage rec {
   pname = "sequoia";
-  version = "0.20.0";
+  version = "1.0.0";
 
   src = fetchFromGitLab {
     owner = "sequoia-pgp";
     repo = "sequoia";
     rev = "v${version}";
-    sha256 = "sha256-br5GRzWprQTixNrE0WpNIB7Ayj5oEfyCg5JY4MnX5rA=";
+    sha256 = "0y80bl786m29ww3272qsl1ql0xc3pwd6iiqlkv3nmhnjsmygbn0d";
   };
 
-  cargoSha256 = "sha256-SpCdoLCtvU9jpG/ivB/+4KhRdKZxN3/+7P/RlR6n9/c=";
+  cargoSha256 = "03ngywa5z0c7qmdmhynk13xcivhg8gpivvpzg2gxp34gfr7j438l";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/tools/security/stegseek/default.nix b/pkgs/tools/security/stegseek/default.nix
new file mode 100644
index 00000000000..b3d518a719f
--- /dev/null
+++ b/pkgs/tools/security/stegseek/default.nix
@@ -0,0 +1,44 @@
+{ stdenv
+, cmake
+, fetchFromGitHub
+, libjpeg
+, libmcrypt
+, libmhash
+, libtool
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "stegseek";
+  version = "0.5";
+
+  src = fetchFromGitHub {
+    owner = "RickdeJager";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "19hzr5533b607ihmjj71x682qjr45s75cqxh9zap21z16346ahqn";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [
+    libjpeg
+    libmcrypt
+    libmhash
+    libtool
+    zlib
+  ];
+
+  doCheck = true;
+
+  meta = with stdenv.lib; {
+    description = "Tool to crack steganography";
+    longDescription = ''
+      Stegseek is a lightning fast steghide cracker that can be
+      used to extract hidden data from files.
+    '';
+    homepage = "https://github.com/RickdeJager/stegseek";
+    license = with licenses; [ gpl2Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/step-ca/default.nix b/pkgs/tools/security/step-ca/default.nix
index e5574be8ab9..f3c9990a3c7 100644
--- a/pkgs/tools/security/step-ca/default.nix
+++ b/pkgs/tools/security/step-ca/default.nix
@@ -1,19 +1,35 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ stdenv
+, lib
+, fetchFromGitHub
+, buildGoModule
+, pcsclite
+, PCSC
+, pkg-config
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "step-ca";
-  version = "0.13.3";
-
-  goPackagePath = "github.com/smallstep/certificates";
+  version = "0.15.6";
 
   src = fetchFromGitHub {
     owner = "smallstep";
     repo = "certificates";
     rev = "v${version}";
-    sha256 = "1i42j7v5a5qqqb9ng8irblfyzykhyws0394q3zac290ymjijxbnq";
+    sha256 = "0n26692ph4q4cmrqammfazmx1k9p2bydwqc57q4hz5ni6jd31zbz";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = "0w0phyqymcg2h2jjasxmkf4ryn4y1bqahcy94rs738cqr5ifyfbg";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs =
+    lib.optional stdenv.isLinux (lib.getDev pcsclite)
+    ++ lib.optional stdenv.isDarwin PCSC;
+
+  # Tests fail on darwin with
+  # panic: httptest: failed to listen on a port: listen tcp6 [::1]:0: bind: operation not permitted [recovered]
+  # probably some sandboxing issue
+  doCheck = stdenv.isLinux;
 
   meta = with lib; {
     description = "A private certificate authority (X.509 & SSH) & ACME server for secure automated certificate management, so you can use TLS everywhere & SSO for SSH";
diff --git a/pkgs/tools/security/step-ca/deps.nix b/pkgs/tools/security/step-ca/deps.nix
deleted file mode 100644
index 07607b6f65d..00000000000
--- a/pkgs/tools/security/step-ca/deps.nix
+++ /dev/null
@@ -1,291 +0,0 @@
-# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
-[
-  {
-    goPackagePath  = "github.com/AndreasBriese/bbloom";
-    fetch = {
-      type = "git";
-      url = "https://github.com/AndreasBriese/bbloom";
-      rev =  "e2d15f34fcf99d5dbb871c820ec73f710fca9815";
-      sha256 = "05kkrsmpragy69bj6s80pxlm3pbwxrkkx7wgk0xigs6y2n6ylpds";
-    };
-  }
-  {
-    goPackagePath  = "github.com/chzyer/readline";
-    fetch = {
-      type = "git";
-      url = "https://github.com/chzyer/readline";
-      rev =  "2972be24d48e78746da79ba8e24e8b488c9880de";
-      sha256 = "104q8dazj8yf6b089jjr82fy9h1g80zyyzvp3g8b44a7d8ngjj6r";
-    };
-  }
-  {
-    goPackagePath  = "github.com/dgraph-io/badger";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dgraph-io/badger";
-      rev =  "391b6d3b93e6014fe8c2971fcc0c1266e47dbbd9";
-      sha256 = "13zyd6irxagwfv4azgmpk2qg8f80plhxrcjl8x89jzsjkl0a0pkx";
-    };
-  }
-  {
-    goPackagePath  = "github.com/dgryski/go-farm";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dgryski/go-farm";
-      rev =  "6a90982ecee230ff6cba02d5bd386acc030be9d3";
-      sha256 = "1x3l4jgps0v1bjvd446kj4dp0ckswjckxgrng9afm275ixnf83ix";
-    };
-  }
-  {
-    goPackagePath  = "github.com/go-chi/chi";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-chi/chi";
-      rev =  "0ebf7795c516423a110473652e9ba3a59a504863";
-      sha256 = "18hwj6vni19ykp3bsmg9ggnl6y2hawym0vbsigdgx8craqbp7jb1";
-    };
-  }
-  {
-    goPackagePath  = "github.com/go-sql-driver/mysql";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-sql-driver/mysql";
-      rev =  "72cd26f257d44c1114970e19afddcd812016007e";
-      sha256 = "1fvsvwc1v2i0gqn01mynvi1shp5xm0xaym6xng09fcbqb56lbjx1";
-    };
-  }
-  {
-    goPackagePath  = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev =  "aa810b61a9c79d51363740d207bb46cf8e620ed5";
-      sha256 = "0kf4b59rcbb1cchfny2dm9jyznp8ri2hsb14n8iak1q8986xa0ab";
-    };
-  }
-  {
-    goPackagePath  = "github.com/juju/ansiterm";
-    fetch = {
-      type = "git";
-      url = "https://github.com/juju/ansiterm";
-      rev =  "720a0952cc2ac777afc295d9861263e2a4cf96a1";
-      sha256 = "0n6j0y7xhashp8gdkdl0r7vlbkdrkymrzxn9hxrx522k2isggs7h";
-    };
-  }
-  {
-    goPackagePath  = "github.com/konsorten/go-windows-terminal-sequences";
-    fetch = {
-      type = "git";
-      url = "https://github.com/konsorten/go-windows-terminal-sequences";
-      rev =  "5c8c8bd35d3832f5d134ae1e1e375b69a4d25242";
-      sha256 = "1lchgf27n276vma6iyxa0v1xds68n2g8lih5lavqnx5x6q5pw2ip";
-    };
-  }
-  {
-    goPackagePath  = "github.com/lunixbochs/vtclean";
-    fetch = {
-      type = "git";
-      url = "https://github.com/lunixbochs/vtclean";
-      rev =  "2d01aacdc34a083dca635ba869909f5fc0cd4f41";
-      sha256 = "1ss88dyx5hr4imvpg5lixvp0cf7c2qm4x9m8mdgshjpm92g5rqmf";
-    };
-  }
-  {
-    goPackagePath  = "github.com/manifoldco/promptui";
-    fetch = {
-      type = "git";
-      url = "https://github.com/manifoldco/promptui";
-      rev =  "157c96fb638a14d268b305cf2012582431fcc410";
-      sha256 = "0zha48i5f529q4j1qycybdzza4l9706hijiqws36ikd5jzg8i7wz";
-    };
-  }
-  {
-    goPackagePath  = "github.com/mattn/go-colorable";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-colorable";
-      rev =  "167de6bfdfba052fa6b2d3664c8f5272e23c9072";
-      sha256 = "1nwjmsppsjicr7anq8na6md7b1z84l9ppnlr045hhxjvbkqwalvx";
-    };
-  }
-  {
-    goPackagePath  = "github.com/mattn/go-isatty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-isatty";
-      rev =  "6ca4dbf54d38eea1a992b3c722a76a5d1c4cb25c";
-      sha256 = "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w";
-    };
-  }
-  {
-    goPackagePath  = "github.com/mmcloughlin/avo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mmcloughlin/avo";
-      rev =  "2e7d06bc7ada2979f17ccf8ebf486dba23b84fc7";
-      sha256 = "0fna1hhg193zy428lkj24a8853g3qviqs2c9xi96mji6ldprna5d";
-    };
-  }
-  {
-    goPackagePath  = "github.com/newrelic/go-agent";
-    fetch = {
-      type = "git";
-      url = "https://github.com/newrelic/go-agent";
-      rev =  "f5bce3387232559bcbe6a5f8227c4bf508dac1ba";
-      sha256 = "1zbp1cqhxp0sz3faymam6h1f91r1gl8dnnjx7qg8r06bd5fbzllb";
-    };
-  }
-  {
-    goPackagePath  = "github.com/pkg/errors";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pkg/errors";
-      rev =  "ba968bfe8b2f7e042a574c888954fccecfa385b4";
-      sha256 = "0g5qcb4d4fd96midz0zdk8b9kz8xkzwfa8kr1cliqbg8sxsy5vd1";
-    };
-  }
-  {
-    goPackagePath  = "github.com/rs/xid";
-    fetch = {
-      type = "git";
-      url = "https://github.com/rs/xid";
-      rev =  "15d26544def341f036c5f8dca987a4cbe575032c";
-      sha256 = "1vgw1dikqw273awcci6pzifs7shkl5ah4l88j1zjbnpgbiwzlx9j";
-    };
-  }
-  {
-    goPackagePath  = "github.com/samfoo/ansi";
-    fetch = {
-      type = "git";
-      url = "https://github.com/samfoo/ansi";
-      rev =  "b6bd2ded7189ce35bc02233b554eb56a5146af73";
-      sha256 = "0sw2d7c6l2ry34x0n4j37ydr8s7hxnax76yh6n35gb2g6f1h46sz";
-    };
-  }
-  {
-    goPackagePath  = "github.com/shurcooL/sanitized_anchor_name";
-    fetch = {
-      type = "git";
-      url = "https://github.com/shurcooL/sanitized_anchor_name";
-      rev =  "86672fcb3f950f35f2e675df2240550f2a50762f";
-      sha256 = "142m507s9971cl8qdmbcw7sqxnkgi3xqd8wzvfq15p0w7w8i4a3h";
-    };
-  }
-  {
-    goPackagePath  = "github.com/sirupsen/logrus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sirupsen/logrus";
-      rev =  "ad15b42461921f1fb3529b058c6786c6a45d5162";
-      sha256 = "02xdfcp4f6dqvpavwf1vvr794qgz2fx8929paam7wnvcxy7ib606";
-    };
-  }
-  {
-    goPackagePath  = "github.com/smallstep/assert";
-    fetch = {
-      type = "git";
-      url = "https://github.com/smallstep/assert";
-      rev =  "de77670473b5492f5d0bce155b5c01534c2d13f7";
-      sha256 = "15z2b4qyylnwgq2pzlaxsdabqxh8dbna4ddprk9rzmsvnfkpds16";
-    };
-  }
-  {
-    goPackagePath  = "github.com/smallstep/cli";
-    fetch = {
-      type = "git";
-      url = "https://github.com/smallstep/cli";
-      rev =  "eeecaac062cb548ee2ab7c7563bc3c2f2160f019";
-      sha256 = "1khhd1vgwqb08vki1nh0k4i2yk6jjdqmnq4f8anqn125zsj7hvdk";
-    };
-  }
-  {
-    goPackagePath  = "github.com/smallstep/nosql";
-    fetch = {
-      type = "git";
-      url = "https://github.com/smallstep/nosql";
-      rev =  "f80b3f432de0662f07ebd58fe52b0a119fe5dcd9";
-      sha256 = "155blxdgaprl1py5g8p52gipp0ckz3k6v41hgsp83nay01yynafb";
-    };
-  }
-  {
-    goPackagePath  = "github.com/urfave/cli";
-    fetch = {
-      type = "git";
-      url = "https://github.com/urfave/cli";
-      rev =  "b67dcf995b6a7b7f14fad5fcb7cc5441b05e814b";
-      sha256 = "0n5vq4nydlhb7w12jiwphvxqdy4jwpxc3zwlxyhf05lq1nxfb56h";
-    };
-  }
-  {
-    goPackagePath  = "go.etcd.io/bbolt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/etcd-io/bbolt";
-      rev =  "63597a96ec0ad9e6d43c3fc81e809909e0237461";
-      sha256 = "13d5l6p6c5wvkr6vn9hkhz9c593qifn7fgx0hg4d6jcvg1y0bnm2";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev =  "4d3f4d9ffa16a13f451c3b2999e9c49e9750bf06";
-      sha256 = "0sbsgjm6wqa162ssrf1gnpv62ak5wjn1bn8v7sxwwfg8a93z1028";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev =  "c44066c5c816ec500d459a2a324a753f78531ae0";
-      sha256 = "0mgww74bl15d0jvsh4f3qr1ckjzb8icb8hn0mgs5ppa0b2fgpc4f";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev =  "9b800f95dbbc54abff0acf7ee32d88ba4e328c89";
-      sha256 = "07v3l7q7y59cwvw0mc85i39v7qjcc1jh4svwi789rmrqqm5nq7q6";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev =  "f21a4dfb5e38f5895301dc265a8def02365cc3d0";
-      sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev =  "3a10b9bf0a52df7e992a8c3eb712a86d3c896c75";
-      sha256 = "19f3dijcc54jnd7458jab2dgpd0gzccmv2qympd9wi8cc8jpnhws";
-    };
-  }
-  {
-    goPackagePath  = "google.golang.org/appengine";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/appengine";
-      rev =  "54a98f90d1c46b7731eb8fb305d2a321c30ef610";
-      sha256 = "0l7mkdnwhidv8m686x432vmx8z5nqcrr9f46ddgvrxbh4wvyfcll";
-    };
-  }
-  {
-    goPackagePath  = "gopkg.in/square/go-jose.v2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/square/go-jose";
-      rev =  "730df5f748271903322feb182be83b43ebbbe27d";
-      sha256 = "11r93g9xrcjqj7qvq8sbd5hy5rnbpmim0vdsp6rbav8gl7wimaa3";
-    };
-  }
-]
\ No newline at end of file
diff --git a/pkgs/tools/security/step-cli/default.nix b/pkgs/tools/security/step-cli/default.nix
index d696b560f6d..2b6ec57bbf2 100644
--- a/pkgs/tools/security/step-cli/default.nix
+++ b/pkgs/tools/security/step-cli/default.nix
@@ -1,19 +1,26 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, fetchpatch
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "step-cli";
-  version = "0.13.3";
-
-  goPackagePath = "github.com/smallstep/cli";
+  version = "0.15.3-22-g3ddc5aa";
 
+  # 0.15.3 isn't enough, because we need https://github.com/smallstep/cli/pull/394
   src = fetchFromGitHub {
     owner = "smallstep";
     repo = "cli";
-    rev = "v${version}";
-    sha256 = "0b5hk9a8yq1nyh8m1gmf28yiha95xwsc4dk321g84hvai7g47pbr";
+    rev = "3ddc5aaafccb23ba9a20abfa70109a2923f298e3";
+    sha256 = "1kd04hi764xa3f9p6aw6k9f6wa4y6xsmzby5jxvvkhim4w78brw0";
   };
 
-  goDeps = ./deps.nix;
+  preCheck = ''
+    # Tries to connect to smallstep.com
+    rm command/certificate/remote_test.go
+  '';
+  vendorSha256 = "04hckq78g1p04b2q0rq4xw6d880hqhkabbx1pc3pf8r1m6jxwz10";
 
   meta = with lib; {
     description = "A zero trust swiss army knife for working with X509, OAuth, JWT, OATH OTP, etc";
diff --git a/pkgs/tools/security/step-cli/deps.nix b/pkgs/tools/security/step-cli/deps.nix
deleted file mode 100644
index bae1ba070a6..00000000000
--- a/pkgs/tools/security/step-cli/deps.nix
+++ /dev/null
@@ -1,453 +0,0 @@
-# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
-[
-  {
-    goPackagePath  = "github.com/AndreasBriese/bbloom";
-    fetch = {
-      type = "git";
-      url = "https://github.com/AndreasBriese/bbloom";
-      rev =  "e2d15f34fcf99d5dbb871c820ec73f710fca9815";
-      sha256 = "05kkrsmpragy69bj6s80pxlm3pbwxrkkx7wgk0xigs6y2n6ylpds";
-    };
-  }
-  {
-    goPackagePath  = "github.com/ThomasRooney/gexpect";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ThomasRooney/gexpect";
-      rev =  "5482f03509440585d13d8f648989e05903001842";
-      sha256 = "04zan78ndabxlwsw2hdcqbz32435pw2s04ljza07jlxnxzjp4kws";
-    };
-  }
-  {
-    goPackagePath  = "github.com/asaskevich/govalidator";
-    fetch = {
-      type = "git";
-      url = "https://github.com/asaskevich/govalidator";
-      rev =  "ccb8e960c48f04d6935e72476ae4a51028f9e22f";
-      sha256 = "1sih4yb6fqmdp5g6594yyida0qm7dvvqcfvf8pgikydkxyqb8g0k";
-    };
-  }
-  {
-    goPackagePath  = "github.com/boombuler/barcode";
-    fetch = {
-      type = "git";
-      url = "https://github.com/boombuler/barcode";
-      rev =  "3cfea5ab600ae37946be2b763b8ec2c1cf2d272d";
-      sha256 = "1fzb8wz1ny2sc78g9rm0bcm80pgwvkm2k6lmim2sb4jgm1j3sajd";
-    };
-  }
-  {
-    goPackagePath  = "github.com/chzyer/readline";
-    fetch = {
-      type = "git";
-      url = "https://github.com/chzyer/readline";
-      rev =  "2972be24d48e78746da79ba8e24e8b488c9880de";
-      sha256 = "104q8dazj8yf6b089jjr82fy9h1g80zyyzvp3g8b44a7d8ngjj6r";
-    };
-  }
-  {
-    goPackagePath  = "github.com/corpix/uarand";
-    fetch = {
-      type = "git";
-      url = "https://github.com/corpix/uarand";
-      rev =  "2b8494104d86337cdd41d0a49cbed8e4583c0ab4";
-      sha256 = "06ml5m8l9wbr96gvyg6z1syawn797f8kmq74nhgry3vqpngyb6yn";
-    };
-  }
-  {
-    goPackagePath  = "github.com/davecgh/go-spew";
-    fetch = {
-      type = "git";
-      url = "https://github.com/davecgh/go-spew";
-      rev =  "8991bc29aa16c548c550c7ff78260e27b9ab7c73";
-      sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y";
-    };
-  }
-  {
-    goPackagePath  = "github.com/dgraph-io/badger";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dgraph-io/badger";
-      rev =  "391b6d3b93e6014fe8c2971fcc0c1266e47dbbd9";
-      sha256 = "13zyd6irxagwfv4azgmpk2qg8f80plhxrcjl8x89jzsjkl0a0pkx";
-    };
-  }
-  {
-    goPackagePath  = "github.com/dgryski/go-farm";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dgryski/go-farm";
-      rev =  "6a90982ecee230ff6cba02d5bd386acc030be9d3";
-      sha256 = "1x3l4jgps0v1bjvd446kj4dp0ckswjckxgrng9afm275ixnf83ix";
-    };
-  }
-  {
-    goPackagePath  = "github.com/go-chi/chi";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-chi/chi";
-      rev =  "0ebf7795c516423a110473652e9ba3a59a504863";
-      sha256 = "18hwj6vni19ykp3bsmg9ggnl6y2hawym0vbsigdgx8craqbp7jb1";
-    };
-  }
-  {
-    goPackagePath  = "github.com/go-sql-driver/mysql";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-sql-driver/mysql";
-      rev =  "72cd26f257d44c1114970e19afddcd812016007e";
-      sha256 = "1fvsvwc1v2i0gqn01mynvi1shp5xm0xaym6xng09fcbqb56lbjx1";
-    };
-  }
-  {
-    goPackagePath  = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev =  "b5d812f8a3706043e23a9cd5babf2e5423744d30";
-      sha256 = "15am4s4646qy6iv0g3kkqq52rzykqjhm4bf08dk0fy2r58knpsyl";
-    };
-  }
-  {
-    goPackagePath  = "github.com/google/certificate-transparency-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/certificate-transparency-go";
-      rev =  "3629d6846518309d22c16fee15d1007262a459d2";
-      sha256 = "16vsq7dd2kbbk3vwlrhm3jrlg5kq16wf4iz6d1gnyc32s5fcy9d7";
-    };
-  }
-  {
-    goPackagePath  = "github.com/icrowley/fake";
-    fetch = {
-      type = "git";
-      url = "https://github.com/icrowley/fake";
-      rev =  "4178557ae428460c3780a381c824a1f3aceb6325";
-      sha256 = "1mv4bxfphaqbvacy49v4lf4gf2nmadzpmjq0jbdx93wi5bnkc977";
-    };
-  }
-  {
-    goPackagePath  = "github.com/juju/ansiterm";
-    fetch = {
-      type = "git";
-      url = "https://github.com/juju/ansiterm";
-      rev =  "720a0952cc2ac777afc295d9861263e2a4cf96a1";
-      sha256 = "0n6j0y7xhashp8gdkdl0r7vlbkdrkymrzxn9hxrx522k2isggs7h";
-    };
-  }
-  {
-    goPackagePath  = "github.com/kballard/go-shellquote";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kballard/go-shellquote";
-      rev =  "95032a82bc518f77982ea72343cc1ade730072f0";
-      sha256 = "1rspvmnsikdq95jmx3dykxd4k1rmgl98ryjrysvl0cf18hl1vq80";
-    };
-  }
-  {
-    goPackagePath  = "github.com/konsorten/go-windows-terminal-sequences";
-    fetch = {
-      type = "git";
-      url = "https://github.com/konsorten/go-windows-terminal-sequences";
-      rev =  "5c8c8bd35d3832f5d134ae1e1e375b69a4d25242";
-      sha256 = "1lchgf27n276vma6iyxa0v1xds68n2g8lih5lavqnx5x6q5pw2ip";
-    };
-  }
-  {
-    goPackagePath  = "github.com/kr/pty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/pty";
-      rev =  "db8e3cd836b82e82e0a9c8edc6896967dd31374f";
-      sha256 = "0knzlvndfgjm2k23vhp2xj1cv3fm31vbg5b20gdl1vnxk7rh549h";
-    };
-  }
-  {
-    goPackagePath  = "github.com/lunixbochs/vtclean";
-    fetch = {
-      type = "git";
-      url = "https://github.com/lunixbochs/vtclean";
-      rev =  "2d01aacdc34a083dca635ba869909f5fc0cd4f41";
-      sha256 = "1ss88dyx5hr4imvpg5lixvp0cf7c2qm4x9m8mdgshjpm92g5rqmf";
-    };
-  }
-  {
-    goPackagePath  = "github.com/manifoldco/promptui";
-    fetch = {
-      type = "git";
-      url = "https://github.com/manifoldco/promptui";
-      rev =  "157c96fb638a14d268b305cf2012582431fcc410";
-      sha256 = "0zha48i5f529q4j1qycybdzza4l9706hijiqws36ikd5jzg8i7wz";
-    };
-  }
-  {
-    goPackagePath  = "github.com/mattn/go-colorable";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-colorable";
-      rev =  "167de6bfdfba052fa6b2d3664c8f5272e23c9072";
-      sha256 = "1nwjmsppsjicr7anq8na6md7b1z84l9ppnlr045hhxjvbkqwalvx";
-    };
-  }
-  {
-    goPackagePath  = "github.com/mattn/go-isatty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-isatty";
-      rev =  "6ca4dbf54d38eea1a992b3c722a76a5d1c4cb25c";
-      sha256 = "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w";
-    };
-  }
-  {
-    goPackagePath  = "github.com/mmcloughlin/avo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mmcloughlin/avo";
-      rev =  "2e7d06bc7ada2979f17ccf8ebf486dba23b84fc7";
-      sha256 = "0fna1hhg193zy428lkj24a8853g3qviqs2c9xi96mji6ldprna5d";
-    };
-  }
-  {
-    goPackagePath  = "github.com/newrelic/go-agent";
-    fetch = {
-      type = "git";
-      url = "https://github.com/newrelic/go-agent";
-      rev =  "f5bce3387232559bcbe6a5f8227c4bf508dac1ba";
-      sha256 = "1zbp1cqhxp0sz3faymam6h1f91r1gl8dnnjx7qg8r06bd5fbzllb";
-    };
-  }
-  {
-    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/pquerna/otp";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pquerna/otp";
-      rev =  "b7b89250c468c06871d3837bee02e2d5c155ae19";
-      sha256 = "0gsl9rh8awira21z6cj26c6swasskx03z66q72yjc1mpbvyg6han";
-    };
-  }
-  {
-    goPackagePath  = "github.com/rs/xid";
-    fetch = {
-      type = "git";
-      url = "https://github.com/rs/xid";
-      rev =  "15d26544def341f036c5f8dca987a4cbe575032c";
-      sha256 = "1vgw1dikqw273awcci6pzifs7shkl5ah4l88j1zjbnpgbiwzlx9j";
-    };
-  }
-  {
-    goPackagePath  = "github.com/samfoo/ansi";
-    fetch = {
-      type = "git";
-      url = "https://github.com/samfoo/ansi";
-      rev =  "b6bd2ded7189ce35bc02233b554eb56a5146af73";
-      sha256 = "0sw2d7c6l2ry34x0n4j37ydr8s7hxnax76yh6n35gb2g6f1h46sz";
-    };
-  }
-  {
-    goPackagePath  = "github.com/shurcooL/sanitized_anchor_name";
-    fetch = {
-      type = "git";
-      url = "https://github.com/shurcooL/sanitized_anchor_name";
-      rev =  "86672fcb3f950f35f2e675df2240550f2a50762f";
-      sha256 = "142m507s9971cl8qdmbcw7sqxnkgi3xqd8wzvfq15p0w7w8i4a3h";
-    };
-  }
-  {
-    goPackagePath  = "github.com/sirupsen/logrus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sirupsen/logrus";
-      rev =  "ad15b42461921f1fb3529b058c6786c6a45d5162";
-      sha256 = "02xdfcp4f6dqvpavwf1vvr794qgz2fx8929paam7wnvcxy7ib606";
-    };
-  }
-  {
-    goPackagePath  = "github.com/smallstep/assert";
-    fetch = {
-      type = "git";
-      url = "https://github.com/smallstep/assert";
-      rev =  "de77670473b5492f5d0bce155b5c01534c2d13f7";
-      sha256 = "15z2b4qyylnwgq2pzlaxsdabqxh8dbna4ddprk9rzmsvnfkpds16";
-    };
-  }
-  {
-    goPackagePath  = "github.com/smallstep/certificates";
-    fetch = {
-      type = "git";
-      url = "https://github.com/smallstep/certificates";
-      rev =  "effb490d276f33b8cdab661df8b57a8ded67e082";
-      sha256 = "1i76bbm4rbpv4cw2ln36v0x74jjkss6j8pdh49hfvb75j2n32790";
-    };
-  }
-  {
-    goPackagePath  = "github.com/smallstep/certinfo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/smallstep/certinfo";
-      rev =  "78e21b44234ef6ddeb58f5e8aad2ed09975b694a";
-      sha256 = "0zrxql9173vzn7zirv4299j0vw2mzwknivrg8rzhdbkhvbfiql9q";
-    };
-  }
-  {
-    goPackagePath  = "github.com/smallstep/nosql";
-    fetch = {
-      type = "git";
-      url = "https://github.com/smallstep/nosql";
-      rev =  "a0934e12468769d8cbede3ed316c47a4b88de4ca";
-      sha256 = "08bg0sgrhkzflyl0ybi8v2vmk8bfk5pmcyfrizpxssyql7k27fam";
-    };
-  }
-  {
-    goPackagePath  = "github.com/smallstep/truststore";
-    fetch = {
-      type = "git";
-      url = "https://github.com/smallstep/truststore";
-      rev =  "e16045d94a61ca04b60d5d246da3117e7eeb1ecf";
-      sha256 = "15cv3dkn2npf6rwhkb575sdq089rf70rha8wrym4ygc8rjbgwbab";
-    };
-  }
-  {
-    goPackagePath  = "github.com/smallstep/zcrypto";
-    fetch = {
-      type = "git";
-      url = "https://github.com/smallstep/zcrypto";
-      rev =  "6bab21fcaafc3d150cf793b6d5f25fe32f49c80e";
-      sha256 = "129az7k556lmnhh14ayrwzrp1y205zdgwk3rj1xcmgisx5irliqp";
-    };
-  }
-  {
-    goPackagePath  = "github.com/smallstep/zlint";
-    fetch = {
-      type = "git";
-      url = "https://github.com/smallstep/zlint";
-      rev =  "d84eaafe274f9dc1f811ebfbb073e18c466e2a44";
-      sha256 = "1xm7b1wvbify20vk9f3kmgmi5mnj5x2z3czc0r4zylcqcwwjkfd6";
-    };
-  }
-  {
-    goPackagePath  = "github.com/stretchr/testify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/testify";
-      rev =  "f35b8ab0b5a2cef36673838d662e249dd9c94686";
-      sha256 = "0dlszlshlxbmmfxj5hlwgv3r22x0y1af45gn1vd198nvvs3pnvfs";
-    };
-  }
-  {
-    goPackagePath  = "github.com/urfave/cli";
-    fetch = {
-      type = "git";
-      url = "https://github.com/urfave/cli";
-      rev =  "b67dcf995b6a7b7f14fad5fcb7cc5441b05e814b";
-      sha256 = "0n5vq4nydlhb7w12jiwphvxqdy4jwpxc3zwlxyhf05lq1nxfb56h";
-    };
-  }
-  {
-    goPackagePath  = "github.com/weppos/publicsuffix-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/weppos/publicsuffix-go";
-      rev =  "386050f8211b04c965721c3591e7d96650a1ea86";
-      sha256 = "17nvc0m0azm418w4mcyk7r1qcik0099vjpn455ia0lxhbqbl701b";
-    };
-  }
-  {
-    goPackagePath  = "go.etcd.io/bbolt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/etcd-io/bbolt";
-      rev =  "63597a96ec0ad9e6d43c3fc81e809909e0237461";
-      sha256 = "13d5l6p6c5wvkr6vn9hkhz9c593qifn7fgx0hg4d6jcvg1y0bnm2";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev =  "4d3f4d9ffa16a13f451c3b2999e9c49e9750bf06";
-      sha256 = "0sbsgjm6wqa162ssrf1gnpv62ak5wjn1bn8v7sxwwfg8a93z1028";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev =  "c44066c5c816ec500d459a2a324a753f78531ae0";
-      sha256 = "0mgww74bl15d0jvsh4f3qr1ckjzb8icb8hn0mgs5ppa0b2fgpc4f";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev =  "9b800f95dbbc54abff0acf7ee32d88ba4e328c89";
-      sha256 = "07v3l7q7y59cwvw0mc85i39v7qjcc1jh4svwi789rmrqqm5nq7q6";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev =  "f21a4dfb5e38f5895301dc265a8def02365cc3d0";
-      sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev =  "3a10b9bf0a52df7e992a8c3eb712a86d3c896c75";
-      sha256 = "19f3dijcc54jnd7458jab2dgpd0gzccmv2qympd9wi8cc8jpnhws";
-    };
-  }
-  {
-    goPackagePath  = "google.golang.org/appengine";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/appengine";
-      rev =  "54a98f90d1c46b7731eb8fb305d2a321c30ef610";
-      sha256 = "0l7mkdnwhidv8m686x432vmx8z5nqcrr9f46ddgvrxbh4wvyfcll";
-    };
-  }
-  {
-    goPackagePath  = "gopkg.in/square/go-jose.v2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/square/go-jose";
-      rev =  "730df5f748271903322feb182be83b43ebbbe27d";
-      sha256 = "11r93g9xrcjqj7qvq8sbd5hy5rnbpmim0vdsp6rbav8gl7wimaa3";
-    };
-  }
-  {
-    goPackagePath  = "howett.net/plist";
-    fetch = {
-      type = "git";
-      url = "https://gitlab.howett.net/go/plist.git";
-      rev =  "591f970eefbbeb04d7b37f334a0c4c3256e32876";
-      sha256 = "1gr74rf6m8bgayf6mxcfaxb3cc49ldlhydzqfafx7di5nds5hxk9";
-    };
-  }
-]
diff --git a/pkgs/tools/security/sudo/default.nix b/pkgs/tools/security/sudo/default.nix
index ae29eeafd00..776823a6a28 100644
--- a/pkgs/tools/security/sudo/default.nix
+++ b/pkgs/tools/security/sudo/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sudo";
-  version = "1.9.4";
+  version = "1.9.4p2";
 
   src = fetchurl {
     url = "https://www.sudo.ws/dist/${pname}-${version}.tar.gz";
-    sha256 = "1w03257akspgkkl757vmpq3p30sb2n6y61hll038mw9sqwnbv4cb";
+    sha256 = "0r0g8z289ipw0zpkhmm33cpfm42j01jds2q1wilhh3flg7xg2jn3";
   };
 
   prePatch = ''
diff --git a/pkgs/tools/security/teler/default.nix b/pkgs/tools/security/teler/default.nix
new file mode 100644
index 00000000000..37866375859
--- /dev/null
+++ b/pkgs/tools/security/teler/default.nix
@@ -0,0 +1,33 @@
+{ buildGoModule
+, fetchFromGitHub
+, stdenv
+}:
+
+buildGoModule rec {
+  pname = "teler";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "kitabisa";
+    repo = "teler";
+    rev = "v${version}";
+    sha256 = "07pfqgms5cj4y6zm984qjmmw1c8j9yjbgrp2spi9vzk96s3k3qn3";
+  };
+
+  vendorSha256 = "06szi2jw3nayd7pljjlww2gsllgnfg8scnjmc6qv5xl6gf797kdz";
+
+  # test require internet access
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Real-time HTTP Intrusion Detection";
+    longDescription = ''
+      teler is an real-time intrusion detection and threat alert
+      based on web log that runs in a terminal with resources that
+      we collect and provide by the community.
+    '';
+    homepage = "https://github.com/kitabisa/teler";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/tor/default.nix b/pkgs/tools/security/tor/default.nix
index 04bf598d132..e46fd4790a3 100644
--- a/pkgs/tools/security/tor/default.nix
+++ b/pkgs/tools/security/tor/default.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchurl, pkgconfig, libevent, openssl, zlib, torsocks
 , libseccomp, systemd, libcap, lzma, zstd, scrypt, nixosTests
+, writeShellScript
 
 # for update.nix
 , writeScript
@@ -12,7 +13,21 @@
 , gnused
 , nix
 }:
-
+let
+  tor-client-auth-gen = writeShellScript "tor-client-auth-gen" ''
+    PATH="${stdenv.lib.makeBinPath [coreutils gnugrep openssl]}"
+    pem="$(openssl genpkey -algorithm x25519)"
+
+    printf private_key=descriptor:x25519:
+    echo "$pem" | grep -v " PRIVATE KEY" |
+    base64 -d | tail --bytes=32 | base32 | tr -d =
+
+    printf public_key=descriptor:x25519:
+    echo "$pem" | openssl pkey -in /dev/stdin -pubout |
+    grep -v " PUBLIC KEY" |
+    base64 -d | tail --bytes=32 | base32 | tr -d =
+  '';
+in
 stdenv.mkDerivation rec {
   pname = "tor";
   version = "0.4.4.6";
@@ -52,6 +67,7 @@ stdenv.mkDerivation rec {
     mkdir -p $geoip/share/tor
     mv $out/share/tor/geoip{,6} $geoip/share/tor
     rm -rf $out/share/tor
+    ln -s ${tor-client-auth-gen} $out/bin/tor-client-auth-gen
   '';
 
   passthru = {
diff --git a/pkgs/tools/security/vault/default.nix b/pkgs/tools/security/vault/default.nix
index 4b460e74024..d1d16a89d46 100644
--- a/pkgs/tools/security/vault/default.nix
+++ b/pkgs/tools/security/vault/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "vault";
-  version = "1.6.0";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "vault";
     rev = "v${version}";
-    sha256 = "13fasdiijxy87m33wfyd8gylyz556i0bdd7xp706ip2fcckrmz7a";
+    sha256 = "1pgyyl2zgnr3wy4k8c5xsk2s5dpl97xdfq67lpfss7fz1bij8x47";
   };
 
   goPackagePath = "github.com/hashicorp/vault";
diff --git a/pkgs/tools/security/vault/vault-bin.nix b/pkgs/tools/security/vault/vault-bin.nix
index 805afe89d31..01bb80f518a 100644
--- a/pkgs/tools/security/vault/vault-bin.nix
+++ b/pkgs/tools/security/vault/vault-bin.nix
@@ -1,26 +1,26 @@
 { stdenv, fetchurl, unzip }:
 
 let
-  version = "1.6.0";
+  version = "1.6.1";
 
   sources = let
     base = "https://releases.hashicorp.com/vault/${version}";
   in {
     x86_64-linux = fetchurl {
       url = "${base}/vault_${version}_linux_amd64.zip";
-      sha256 = "0fay6bw31x9kxmc52sh5qp63nfkwji74fbnlx8pj3smz3qnqw143";
+      sha256 = "1la2pylcj9y5gr7hr4aaa49427y3lgxi2phhl46pqmr7an62pkbm";
     };
     i686-linux = fetchurl {
       url = "${base}/vault_${version}_linux_386.zip";
-      sha256 = "0bjks9lpgl39cq55c9cyc0glhmyxzs37a2an8ynzza94gv5mgcxa";
+      sha256 = "1a2rhv5bpv43qp74a49msrwr7djzy86irsn73jl0xnkh0k6ijci1";
     };
     x86_64-darwin = fetchurl {
       url = "${base}/vault_${version}_darwin_amd64.zip";
-      sha256 = "0hl1k35x78y0hi3y5xjnzby1ygisqjyvdak7s61m9f363nsr1shh";
+      sha256 = "0snswwai2ya26crm3ksifrmbdnajr36v4vamh7g65plg6vzban9a";
     };
     aarch64-linux = fetchurl {
       url = "${base}/vault_${version}_linux_arm64.zip";
-      sha256 = "018a5i14x6phhx1axvx0bvqn4ggsimfizs48xbmykgiyfmzkrwgz";
+      sha256 = "0ix99da3xd4z200dgvpfc2h1sfx6l8cipichvfjlj39md45grs89";
     };
   };
 
@@ -45,6 +45,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 ];
+    maintainers = with maintainers; [ offline psyanticy mkaito Chili-Man ];
   };
 }
diff --git a/pkgs/tools/security/wad/default.nix b/pkgs/tools/security/wad/default.nix
new file mode 100644
index 00000000000..ee731798097
--- /dev/null
+++ b/pkgs/tools/security/wad/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonApplication
+, fetchPypi
+, mock
+, pytestCheckHook
+, six
+}:
+
+buildPythonApplication rec {
+  pname = "wad";
+  version = "0.4.6";
+
+  src = fetchPypi {
+    inherit pname;
+    inherit version;
+    sha256 = "02jq77h6g9v7n4qqq7qri6wmhggy257983dwgmpjsf4qsagkgwy8";
+  };
+
+  propagatedBuildInputs = [
+    six
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    mock
+  ];
+
+  pythonImportsCheck = [ "wad" ];
+
+  meta = with lib; {
+    description = "Tool for detecting technologies used by web applications";
+    longDescription = ''
+      WAD lets you analyze given URL(s) and detect technologies used by web
+      application behind that URL, from the OS and web server level, to the
+      programming platform and frameworks, as well as server- and client-side
+      applications, tools and libraries.
+    '';
+    homepage = "https://github.com/CERN-CERT/WAD";
+    # wad is GPLv3+, wappalyzer source is MIT
+    license = with licenses; [ gpl3Plus mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/system/bottom/default.nix b/pkgs/tools/system/bottom/default.nix
index c7835c5989c..1a975aef393 100644
--- a/pkgs/tools/system/bottom/default.nix
+++ b/pkgs/tools/system/bottom/default.nix
@@ -2,20 +2,24 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "bottom";
-  version = "0.5.4";
+  version = "0.5.6";
 
   src = fetchFromGitHub {
     owner = "ClementTsang";
     repo = pname;
     rev = version;
-    sha256 = "1rpwgwgl05n0s89mhyvabzvsa33ibkd1msyrwfll4wbcbsn0ish7";
+    sha256 = "sha256-88uEEsb+coX8PTKrem+0t5AkamCmqJsFYsENFTZSsys=";
   };
 
+  prePatch = ''
+    rm .cargo/config.toml
+  '';
+
   nativeBuildInputs = [ installShellFiles ];
 
   buildInputs = stdenv.lib.optional stdenv.hostPlatform.isDarwin darwin.apple_sdk.frameworks.IOKit;
 
-  cargoSha256 = "0ykl66gs7k49vfjpw5i8xsbc1blmqm79vrsci2irsl5w642lbig5";
+  cargoSha256 = "sha256-qnh4Tl6JRgxBJbu+t9IJX/XChIR15rTRLvsl+/ZvPxY=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/system/clinfo/default.nix b/pkgs/tools/system/clinfo/default.nix
index 9e9b4df8088..7db7386c111 100644
--- a/pkgs/tools/system/clinfo/default.nix
+++ b/pkgs/tools/system/clinfo/default.nix
@@ -4,16 +4,19 @@ stdenv.mkDerivation rec {
   pname = "clinfo";
   version = "3.0.20.11.20";
 
-    src = fetchFromGitHub {
-      owner = "Oblomov";
-      repo = "clinfo";
-      rev = version;
-      sha256 = "052xfkbmgfpalmhfwn0dj5114x2mzwz29y37qqhhsdpaxsz0y422";
-    };
+  src = fetchFromGitHub {
+    owner = "Oblomov";
+    repo = "clinfo";
+    rev = version;
+    sha256 = "052xfkbmgfpalmhfwn0dj5114x2mzwz29y37qqhhsdpaxsz0y422";
+  };
 
   buildInputs = [ ocl-icd opencl-headers ];
 
-  NIX_CFLAGS_COMPILE = [ "-Wno-error=stringop-truncation" ];
+  NIX_CFLAGS_COMPILE = [
+    "-Wno-error=stringop-overflow"
+    "-Wno-error=stringop-truncation"
+  ];
 
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
@@ -21,7 +24,7 @@ stdenv.mkDerivation rec {
     description = "Print all known information about all available OpenCL platforms and devices in the system";
     homepage = "https://github.com/Oblomov/clinfo";
     license = licenses.cc0;
-    platforms = platforms.linux;
     maintainers = with maintainers; [ athas ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/system/colorls/Gemfile.lock b/pkgs/tools/system/colorls/Gemfile.lock
index d138a167ce7..e9cd8cbf766 100644
--- a/pkgs/tools/system/colorls/Gemfile.lock
+++ b/pkgs/tools/system/colorls/Gemfile.lock
@@ -2,14 +2,16 @@ GEM
   remote: https://rubygems.org/
   specs:
     clocale (0.0.4)
-    colorls (1.4.2)
+    colorls (1.4.3)
       clocale (~> 0)
       filesize (~> 0)
       manpages (~> 0)
       rainbow (>= 2.2, < 4.0)
+      unicode-display_width (~> 1.7)
     filesize (0.2.0)
     manpages (0.6.1)
     rainbow (3.0.0)
+    unicode-display_width (1.7.0)
 
 PLATFORMS
   ruby
diff --git a/pkgs/tools/system/colorls/gemset.nix b/pkgs/tools/system/colorls/gemset.nix
index 2e4a26ff918..850aae35684 100644
--- a/pkgs/tools/system/colorls/gemset.nix
+++ b/pkgs/tools/system/colorls/gemset.nix
@@ -10,15 +10,15 @@
     version = "0.0.4";
   };
   colorls = {
-    dependencies = ["clocale" "filesize" "manpages" "rainbow"];
+    dependencies = ["clocale" "filesize" "manpages" "rainbow" "unicode-display_width"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0sw377wklld5zn1la0smxc2bg4rph2xf9d0h3zmxhmds06lb92db";
+      sha256 = "1w9d99qzgxw8wwa4z1vkdnr70fppx2g9shma6dz3ihjhajj2xvmq";
       type = "gem";
     };
-    version = "1.4.2";
+    version = "1.4.3";
   };
   filesize = {
     groups = ["default"];
@@ -50,4 +50,14 @@
     };
     version = "3.0.0";
   };
+  unicode-display_width = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06i3id27s60141x6fdnjn5rar1cywdwy64ilc59cz937303q3mna";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
 }
\ No newline at end of file
diff --git a/pkgs/tools/system/consul-template/default.nix b/pkgs/tools/system/consul-template/default.nix
index 69d5cd6bb73..fc388dd7cea 100644
--- a/pkgs/tools/system/consul-template/default.nix
+++ b/pkgs/tools/system/consul-template/default.nix
@@ -1,24 +1,27 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "consul-template";
-  version = "0.19.4";
-  rev = "v${version}";
-
-  goPackagePath = "github.com/hashicorp/consul-template";
+  version = "0.25.1";
 
   src = fetchFromGitHub {
-    inherit rev;
     owner = "hashicorp";
     repo = "consul-template";
-    sha256 = "06agjzpax45gw7s9b69cz9w523nx7ksikqcg0z0vipwrp7pwrydd";
+    rev = "v${version}";
+    sha256 = "1205rhv4mizpb1nbc2sry52n7wljcwb8xp7lpazh1r1cldfayr5b";
   };
 
+  vendorSha256 = "0hv4b6k8k7xkzkjgzcm5y8pqyiwyk790a1qw18gjslkwkyw5hjf2";
+
+  # consul-template tests depend on vault and consul services running to
+  # execute tests so we skip them here
+  doCheck = false;
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/hashicorp/consul-template/";
     description = "Generic template rendering and notifications with Consul";
     platforms = platforms.linux ++ platforms.darwin;
     license = licenses.mpl20;
-    maintainers = with maintainers; [ pradeepchhetri ];
+    maintainers = with maintainers; [ cpcloud pradeepchhetri ];
   };
 }
diff --git a/pkgs/tools/system/daemon/default.nix b/pkgs/tools/system/daemon/default.nix
index 29f976998d5..c419824f969 100644
--- a/pkgs/tools/system/daemon/default.nix
+++ b/pkgs/tools/system/daemon/default.nix
@@ -9,7 +9,11 @@ stdenv.mkDerivation rec {
     sha256 = "0b17zzl7bqnkn7a4pr3l6fxqfmxfld7izphrab5nvhc4wzng4spn";
   };
 
-  makeFlags = [ "PREFIX=$(out)" ];
+  makeFlags = [
+    "PREFIX=$(out)"
+    "CC=${stdenv.cc.targetPrefix}cc"
+  ];
+
   buildInputs = [ perl ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/system/efivar/default.nix b/pkgs/tools/system/efivar/default.nix
index ea0ed8afcfd..afff716c249 100644
--- a/pkgs/tools/system/efivar/default.nix
+++ b/pkgs/tools/system/efivar/default.nix
@@ -39,8 +39,9 @@ stdenv.mkDerivation rec {
       sha256 = "1ajj11wwsvamfspq4naanvw08h63gr0g71q0dfbrrywrhc0jlmdw";
     })
   ];
-  # We have no LTO here since commit 22284b07.
+  # We have no LTO here since commit 22284b07.  With GCC 10 that triggers a warning.
   postPatch = if stdenv.isi686 then "sed '/^OPTIMIZE /s/-flto//' -i Make.defaults" else null;
+  NIX_CFLAGS_COMPILE = if stdenv.isi686 then "-Wno-error=stringop-truncation" else null;
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ popt ];
diff --git a/pkgs/tools/system/gdu/default.nix b/pkgs/tools/system/gdu/default.nix
new file mode 100644
index 00000000000..a0b41772644
--- /dev/null
+++ b/pkgs/tools/system/gdu/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "gdu";
+  version = "2.1.0";
+
+  src = fetchFromGitHub {
+    owner = "dundee";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0gk36z8xzj7blwzs080fqsz76hn56c89xcsyil6n5cfkbyf85c6i";
+  };
+
+  vendorSha256 = "1jqbsda9bch3awdq816w4jybv7wz9mfflmvs5y2wsa2qnhn9nbyp";
+
+  buildFlagsArray = [ "-ldflags=-s -w -X main.AppVersion=${version}" ];
+
+  meta = with stdenv.lib; {
+    description = "Disk usage analyzer with console interface";
+    longDescription = ''
+      Gdu is intended primarily for SSD disks where it can fully
+      utilize parallel processing. However HDDs work as well, but
+      the performance gain is not so huge.
+    '';
+    homepage = "https://github.com/dundee/gdu";
+    license = with licenses; [ mit ];
+    maintainers = [ maintainers.fab ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/system/htop/default.nix b/pkgs/tools/system/htop/default.nix
index a36cb905d25..bf811942c3e 100644
--- a/pkgs/tools/system/htop/default.nix
+++ b/pkgs/tools/system/htop/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "htop";
-  version = "3.0.3";
+  version = "3.0.4";
 
   src = fetchFromGitHub {
     owner = "htop-dev";
     repo = pname;
     rev = version;
-    sha256 = "0ylig6g2w4r3qfb16cf922iriqyn64frkzpk87vpga16kclvf08y";
+    sha256 = "1fckfv96vzqjs3lzy0cgwsqv5vh1sxca3fhvgskmnkvr5bq6cia9";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/tools/system/inxi/default.nix b/pkgs/tools/system/inxi/default.nix
index 55adb86f742..14b14fa9ffd 100644
--- a/pkgs/tools/system/inxi/default.nix
+++ b/pkgs/tools/system/inxi/default.nix
@@ -22,13 +22,13 @@ let
     ++ recommendedDisplayInformationPrograms;
 in stdenv.mkDerivation rec {
   pname = "inxi";
-  version = "3.2.00-1";
+  version = "3.2.01-1";
 
   src = fetchFromGitHub {
     owner = "smxi";
     repo = "inxi";
     rev = version;
-    sha256 = "0hfhjfd8rzaabs0wbj390ybmig3gxymfi4gs4xbjvvwvg8fzdc0y";
+    sha256 = "15bakrv3jzj5h88c3bd0cfhh6hb8b4hm79924k1ygn29sqzgyw65";
   };
 
   buildInputs = [ perl makeWrapper ];
diff --git a/pkgs/tools/system/ipmitool/default.nix b/pkgs/tools/system/ipmitool/default.nix
index b5da2db67fe..196e59953fe 100644
--- a/pkgs/tools/system/ipmitool/default.nix
+++ b/pkgs/tools/system/ipmitool/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, openssl, fetchpatch, static ? false }:
+{ stdenv, lib, fetchurl, openssl, fetchpatch, static ? stdenv.hostPlatform.isStatic }:
 
 let
   pkgname = "ipmitool";
diff --git a/pkgs/tools/system/netdata/default.nix b/pkgs/tools/system/netdata/default.nix
index 8192dfe6c14..3c1fe75b581 100644
--- a/pkgs/tools/system/netdata/default.nix
+++ b/pkgs/tools/system/netdata/default.nix
@@ -15,14 +15,14 @@ with stdenv.lib;
 let
   go-d-plugin = callPackage ./go.d.plugin.nix {};
 in stdenv.mkDerivation rec {
-  version = "1.26.0";
+  version = "1.28.0";
   pname = "netdata";
 
   src = fetchFromGitHub {
     owner = "netdata";
     repo = "netdata";
     rev = "v${version}";
-    sha256 = "0pvl1y1qscwp1chrbmk43xf9ddjxgfm0hcslbdbljjis7ng4gacg";
+    sha256 = "1266jbfw55r1zh00xi6c90j2fs9hw8hmsb7686rh04l8mffny9f4";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/tools/system/netdata/go.d.plugin.nix b/pkgs/tools/system/netdata/go.d.plugin.nix
index 3cf3a1b116b..3b97747f879 100644
--- a/pkgs/tools/system/netdata/go.d.plugin.nix
+++ b/pkgs/tools/system/netdata/go.d.plugin.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "netdata-go.d.plugin";
-  version = "0.25.0";
+  version = "0.26.2";
 
   src = fetchFromGitHub {
     owner = "netdata";
     repo = "go.d.plugin";
     rev = "v${version}";
-    sha256 = "0cp1asw10a8ndndzq8r57mncrm8521aw3x081vrlfqvhp6qahr3j";
+    sha256 = "1jy5pc1ihyrg6sqyw0d48bsqa7kr7kqz10k3845g958vgfmfig59";
   };
 
   vendorSha256 = "16b6i9cpk8j7292qgjvida70rg7nixi6g94wayzikx01vmdbis5r";
diff --git a/pkgs/tools/system/pciutils/default.nix b/pkgs/tools/system/pciutils/default.nix
index cf6616417ed..c062e1f3bd0 100644
--- a/pkgs/tools/system/pciutils/default.nix
+++ b/pkgs/tools/system/pciutils/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, zlib, kmod, which
-, static ? stdenv.targetPlatform.isStatic
+, static ? stdenv.hostPlatform.isStatic
 , darwin ? null
 }:
 
diff --git a/pkgs/tools/system/rocm-smi/default.nix b/pkgs/tools/system/rocm-smi/default.nix
index 1ed1d913516..cd4eef89520 100644
--- a/pkgs/tools/system/rocm-smi/default.nix
+++ b/pkgs/tools/system/rocm-smi/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonApplication rec {
   pname = "rocm-smi";
-  version = "3.10.0";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "RadeonOpenCompute";
diff --git a/pkgs/tools/text/chroma/default.nix b/pkgs/tools/text/chroma/default.nix
index 438681e1728..390793ffaf1 100644
--- a/pkgs/tools/text/chroma/default.nix
+++ b/pkgs/tools/text/chroma/default.nix
@@ -1,16 +1,32 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, git }:
 
 buildGoModule rec {
   pname = "chroma";
-  version = "0.8.1";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner  = "alecthomas";
-    repo   = "chroma";
+    repo   = pname;
     rev    = "v${version}";
-    sha256 = "1gwwfn26aipzzvyy466gi6r54ypfy3ylnbi8c4xwch9pkgw16w98";
+    sha256 = "0vzxd0jvjaakwjvkkkjppakjb00z44k7gb5ng1i4924agh24n5ka";
+    leaveDotGit = true;
+    fetchSubmodules = true;
   };
 
+  nativeBuildInputs = [ git ];
+
+  # populate values otherwise taken care of by goreleaser
+  # https://github.com/alecthomas/chroma/issues/435
+  postPatch = ''
+    commit="$(git rev-parse HEAD)"
+    date=$(git show -s --format=%aI "$commit")
+
+    substituteInPlace cmd/chroma/main.go \
+      --replace 'version = "?"' 'version = "${version}"' \
+      --replace 'commit  = "?"' "commit = \"$commit\"" \
+      --replace 'date    = "?"' "date = \"$date\""
+  '';
+
   vendorSha256 = "16cnc4scgkx8jan81ymha2q1kidm6hzsnip5mmgbxpqcc2h7hv9m";
 
   subPackages = [ "cmd/chroma" ];
diff --git a/pkgs/tools/text/groff/default.nix b/pkgs/tools/text/groff/default.nix
index 20052f6c4ce..73c8ed68342 100644
--- a/pkgs/tools/text/groff/default.nix
+++ b/pkgs/tools/text/groff/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
     "--with-gs=${ghostscript}/bin/gs"
   ] ++ stdenv.lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
     "ac_cv_path_PERL=${buildPackages.perl}/bin/perl"
+    "gl_cv_func_signbit=yes"
   ];
 
   makeFlags = stdenv.lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
diff --git a/pkgs/tools/text/languagetool/default.nix b/pkgs/tools/text/languagetool/default.nix
index fc0ec487ad5..30029d2d4e9 100644
--- a/pkgs/tools/text/languagetool/default.nix
+++ b/pkgs/tools/text/languagetool/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [
       edwtjo
     ];
+    platforms = jre.meta.platforms;
     description = "A proofreading program for English, French German, Polish, and more";
   };
 }
diff --git a/pkgs/tools/text/ripgrep/default.nix b/pkgs/tools/text/ripgrep/default.nix
index 7bd8a74f458..c69c6fef8cb 100644
--- a/pkgs/tools/text/ripgrep/default.nix
+++ b/pkgs/tools/text/ripgrep/default.nix
@@ -1,4 +1,5 @@
 { stdenv
+, nixosTests
 , fetchFromGitHub
 , rustPlatform
 , asciidoctor
@@ -34,6 +35,8 @@ rustPlatform.buildRustPackage rec {
     installShellCompletion --zsh complete/_rg
   '';
 
+  passthru.tests = { inherit (nixosTests) ripgrep; };
+
   meta = with stdenv.lib; {
     description = "A utility that combines the usability of The Silver Searcher with the raw speed of grep";
     homepage = "https://github.com/BurntSushi/ripgrep";
diff --git a/pkgs/tools/text/ugrep/default.nix b/pkgs/tools/text/ugrep/default.nix
index 353d85931ad..84dc21aba3e 100644
--- a/pkgs/tools/text/ugrep/default.nix
+++ b/pkgs/tools/text/ugrep/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ugrep";
-  version = "3.0.6";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "Genivia";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1s8glpk7li45rcf2xi21qv65dldl8sd3mmalf54pbzfcjri5fwz6";
+    sha256 = "08pq759f2vvdbig64y3k9kicvgr2d5x8ara7b182dcm3slbpib3l";
   };
 
   buildInputs = [ boost bzip2 lz4 pcre2 xz zlib ];
diff --git a/pkgs/tools/text/vale/default.nix b/pkgs/tools/text/vale/default.nix
index 11c611710cd..52a5c9341f8 100644
--- a/pkgs/tools/text/vale/default.nix
+++ b/pkgs/tools/text/vale/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "vale";
-  version = "2.6.5";
+  version = "2.6.8";
 
   subPackages = [ "." ];
   outputs = [ "out" "data" ];
@@ -11,13 +11,11 @@ buildGoModule rec {
     owner  = "errata-ai";
     repo   = "vale";
     rev    = "v${version}";
-    sha256 = "0rvcxlw8xd7sjcsvr6di04l8ml990im2c8yl3hn8054wkp51yb4l";
+    sha256 = "sha256-evvnIM8sd/eHpI2FYOlgjvGn8awTVc1f5QDIYAvhqmk=";
   };
 
   vendorSha256 = null;
 
-  doCheck = false;
-
   postInstall = ''
     mkdir -p $data/share/vale
     cp -r styles $data/share/vale
diff --git a/pkgs/tools/typesetting/bibclean/default.nix b/pkgs/tools/typesetting/bibclean/default.nix
index d0e2c79c0bc..c95c6921a4e 100644
--- a/pkgs/tools/typesetting/bibclean/default.nix
+++ b/pkgs/tools/typesetting/bibclean/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
     description = "Prettyprint and syntax check BibTeX and Scribe bibliography data base files";
     homepage = "http://ftp.math.utah.edu/pub/bibclean";
     license = licenses.gpl2;
+    platforms = platforms.all;
     maintainers = with maintainers; [ dtzWill ];
   };
 }
diff --git a/pkgs/tools/typesetting/lowdown/default.nix b/pkgs/tools/typesetting/lowdown/default.nix
index 017066a2c22..ecd25bf8e83 100644
--- a/pkgs/tools/typesetting/lowdown/default.nix
+++ b/pkgs/tools/typesetting/lowdown/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lowdown";
-  version = "0.7.4";
+  version = "0.7.5";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://kristaps.bsd.lv/lowdown/snapshots/lowdown-${version}.tar.gz";
-    sha512 = "2iw5x3lf5knnscp0ifgk50yj48p54cbd34h94qrxa9vdybg2nnipklrqmmqblf6l7qph98h7jvlyr99m5qlrki9lvjr1jcgbgp31pn0";
+    sha512 = "1wfbrydbk0f0blhg5my3m5gw8bspwh3rdg4w4mcalnrwpypzd4zrggc4aj3zm72c5jikx6pnjb2k9w1s075k84f6q8p8chlzb3s4qd2";
   };
 
   nativeBuildInputs = [ which ];
diff --git a/pkgs/tools/typesetting/tectonic/default.nix b/pkgs/tools/typesetting/tectonic/default.nix
index fc4a971f230..d37a4a69570 100644
--- a/pkgs/tools/typesetting/tectonic/default.nix
+++ b/pkgs/tools/typesetting/tectonic/default.nix
@@ -3,16 +3,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tectonic";
-  version = "0.3.3";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "tectonic-typesetting";
     repo = "tectonic";
     rev = "tectonic@${version}";
-    sha256 = "1ncczcchyphprkrb8spya400gi212a6akx18fm3j4xdhmg9caj3f";
+    sha256 = "1p93428ln3sfsflc7spjpfcgy81c4z5y0xhwv5mkgzf55g8nrin1";
   };
 
-  cargoSha256 = "11xvq0l9xrppcplkshd5wxv90s97x4iavhzbdk9px992zl0m6ar6";
+  cargoSha256 = "0jzngl1iwrq20cx3l0mwdrrddvyw977rwb75nz1k4hkxjnicc1ga";
 
   nativeBuildInputs = [ pkgconfig ];
 
diff --git a/pkgs/tools/typesetting/tex/texlive/combine.nix b/pkgs/tools/typesetting/tex/texlive/combine.nix
index 891495c46ca..0625fe16090 100644
--- a/pkgs/tools/typesetting/tex/texlive/combine.nix
+++ b/pkgs/tools/typesetting/tex/texlive/combine.nix
@@ -36,7 +36,7 @@ let
   mkUniqueOutPaths = pkgs: uniqueStrings
     (map (p: p.outPath) (builtins.filter lib.isDerivation pkgs));
 
-in buildEnv {
+in (buildEnv {
   name = "texlive-${extraName}-${bin.texliveYear}";
 
   extraPrefix = "/share/texmf";
@@ -271,6 +271,6 @@ in buildEnv {
   ''
     + bin.cleanBrokenLinks
   ;
-}
+}).overrideAttrs (_: { allowSubstitutes = true; })
 # TODO: make TeX fonts visible by fontconfig: it should be enough to install an appropriate file
 #       similarly, deal with xe(la)tex font visibility?
diff --git a/pkgs/tools/virtualization/amazon-ecs-cli/default.nix b/pkgs/tools/virtualization/amazon-ecs-cli/default.nix
index 4c37054f4a0..bd63481054c 100644
--- a/pkgs/tools/virtualization/amazon-ecs-cli/default.nix
+++ b/pkgs/tools/virtualization/amazon-ecs-cli/default.nix
@@ -2,18 +2,18 @@
 
 stdenv.mkDerivation rec {
   pname = "amazon-ecs-cli";
-  version = "1.20.0";
+  version = "1.21.0";
 
   src =
     if stdenv.hostPlatform.system == "x86_64-linux" then
       fetchurl {
         url = "https://s3.amazonaws.com/amazon-ecs-cli/ecs-cli-linux-amd64-v${version}";
-        sha256 = "11cw2hk48x66wlsg5bzay95l2pgncwnawzj4xmqmbchhhvphrvxr";
+        sha256 = "sEHwhirU2EYwtBRegiIvN4yr7VKtmy7e6xx5gZOkuY0=";
       }
     else if stdenv.hostPlatform.system == "x86_64-darwin" then
       fetchurl {
         url = "https://s3.amazonaws.com/amazon-ecs-cli/ecs-cli-darwin-amd64-v${version}";
-        sha256 = "1f4yq04sgwkj2p0j598a8vc54dzihmqvg9daa6mxnqj403ln0rg1";
+        sha256 = "1viala49sifpcmgn3jw24h5bkrlm4ffadjiqagbxj3lr0r78i9nm";
       }
     else throw "Architecture not supported";
 
diff --git a/pkgs/tools/virtualization/shipyard/default.nix b/pkgs/tools/virtualization/shipyard/default.nix
new file mode 100644
index 00000000000..e3017e98a07
--- /dev/null
+++ b/pkgs/tools/virtualization/shipyard/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "shipyard";
+  version = "0.1.17";
+
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    owner = "shipyard-run";
+    repo = pname;
+    sha256 = "13cp7qpxchnyxdm26xwdcp557nj16f4h8vlj0p4h79z5g7pcklln";
+  };
+  vendorSha256 = "0gib9s09lz91wawbms9zq4wc5k6bdxfzpxm8q92h0bsjw1bj1hzs";
+
+  buildFlagsArray = [
+    "-ldflags=-s -w -X main.version=${version}"
+  ];
+
+  # Tests require a large variety of tools and resources to run including
+  # Kubernetes, Docker, and GCC.
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Shipyard is a tool for building modern cloud native development environments";
+    homepage = "https://shipyard.run";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ cpcloud ];
+  };
+}
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 3d4ce4b4536..01c80ea3d80 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -46,12 +46,22 @@ mapAliases ({
   ammonite-repl = ammonite; # added 2017-05-02
   amsn = throw "amsn has been removed due to being unmaintained."; # added 2020-12-09
   antimicro = throw "antimicro has been removed as it was broken, see antimicroX instead."; # added 2020-08-06
+  apacheKafka_0_9 = throw "kafka 0.9 is no longer supported. Please upgrade to a newer version."; # added 2020-12-21
+  apacheKafka_0_10 = throw "kafka 0.10 is no longer supported. Please upgrade to a newer version."; # added 2020-12-21
+  apacheKafka_0_11 = throw "kafka 0.11 is no longer supported. Please upgrade to a newer version."; # added 2020-12-21
+  apacheKafka_1_0 = throw "kafka 1.0 is no longer supported. Please upgrade to a newer version."; # added 2020-12-21
+  apacheKafka_1_1 = throw "kafka 1.1 is no longer supported. Please upgrade to a newer version."; # added 2020-12-21
+  apacheKafka_2_0 = throw "kafka 2.0 is no longer supported. Please upgrade to a newer version."; # added 2020-12-21
+  apacheKafka_2_1 = throw "kafka 2.1 is no longer supported. Please upgrade to a newer version."; # added 2020-12-21
+  apacheKafka_2_2 = throw "kafka 2.2 is no longer supported. Please upgrade to a newer version."; # added 2020-12-21
+  apacheKafka_2_3 = throw "kafka 2.3 is no longer supported. Please upgrade to a newer version."; # added 2020-12-21
   arduino_core = arduino-core;  # added 2015-02-04
   arora = throw "arora has been removed."; # added 2020-09-09
   asciidocFull = asciidoc-full;  # added 2014-06-22
   asterisk_15 = throw "asterisk_15: Asterisk 15 is end of life and has been removed."; # added 2020-10-07
   at_spi2_atk = at-spi2-atk; # added 2018-02-25
   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
   bar-xft = lemonbar-xft;  # added 2015-01-16
   bashCompletion = bash-completion; # Added 2016-09-28
@@ -68,6 +78,7 @@ mapAliases ({
   bittorrentSync = throw "bittorrentSync has been deprecated by resilio-sync."; # added 2019-06-03
   bittorrentSync14 = throw "bittorrentSync14 has been deprecated by resilio-sync."; # added 2019-06-03
   bittorrentSync20 = throw "bittorrentSync20 has been deprecated by resilio-sync."; # added 2019-06-03
+  bs1770gain = throw "bs1770gain has been removed from nixpkgs, as it had no maintainer or reverse dependencies."; # added 2021-01-02
   btc1 = throw "btc1 has been removed, it was abandoned by upstream"; # added 2020-11-03
   buildPerlPackage = perlPackages.buildPerlPackage; # added 2018-10-12
   buildGo112Package = throw "buildGo112Package has been removed"; # added 2020-04-26
@@ -88,6 +99,7 @@ mapAliases ({
   clangAnalyzer = clang-analyzer;  # added 2015-02-20
   clawsMail = claws-mail; # added 2016-04-29
   clutter_gtk = clutter-gtk; # added 2018-02-25
+  codimd = hedgedoc; # added 2020-11-29
   compton = picom; # added 2019-12-02
   compton-git = compton; # added 2019-05-20
   conntrack_tools = conntrack-tools; # added 2018-05
@@ -146,6 +158,7 @@ mapAliases ({
   firefoxWrapper = firefox;           # 2015-09
 
   firestr = throw "firestr has been removed."; # added 2019-12-08
+  fish-foreign-env = fishPlugins.foreign-env; # added 2020-12-29
   flameGraph = flamegraph; # added 2018-04-25
   flvtool2 = throw "flvtool2 has been removed."; # added 2020-11-03
   foldingathome = fahclient; # added 2020-09-03
@@ -483,12 +496,14 @@ mapAliases ({
   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
   qca-qt5 = libsForQt5.qca-qt5;  # added 2015-12-19
   qcsxcad = libsForQt5.qcsxcad;  # added 2020-11-05
+  qr-filetransfer = throw ''"qr-filetransfer" has been renamed to "qrcp"''; # added 2020-12-02
   quake3game = ioquake3; # added 2016-01-14
   qvim = throw "qvim has been removed."; # added 2020-08-31
   qwt6 = libsForQt5.qwt;  # added 2015-12-19
   qtcurve = libsForQt5.qtcurve;  # added 2020-11-07
   qtpfsgui = throw "qtpfsgui is now luminanceHDR"; # added 2019-06-26
   quaternion-git = throw "quaternion-git has been removed in favor of the stable version 'quaternion'"; # added 2020-04-09
+  raspberrypi-tools = throw "raspberrypi-tools has been removed in favor of identical 'libraspberrypi'"; # added 2020-12-24
   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
@@ -560,6 +575,7 @@ mapAliases ({
   smugline = throw "smugline has been removed from nixpkgs, as it's unmaintained and depends on deprecated libraries."; # added 2020-11-04
   slim = throw "slim has been removed. Please use a different display-manager"; # added 2019-11-11
   slimThemes = throw "slimThemes has been removed because slim has been also"; # added 2019-11-11
+  spectral = neochat; # added 2020-12-27
   sundials_3 = throw "sundials_3 was removed in 2020-02. outdated and no longer needed";
 
   # added 2020-02-10
@@ -652,6 +668,7 @@ mapAliases ({
   ucsFonts = ucs-fonts; # added 2016-07-15
   ultrastardx-beta = ultrastardx; # added 2017-08-12
   unicorn-emu = unicorn; # added 2020-10-29
+  unifiStable = unifi6; # added 2020-12-28
   usb_modeswitch = usb-modeswitch; # added 2016-05-10
   usbguard-nox = usbguard; # added 2019-09-04
   utillinux = util-linux; # added 2020-11-24
@@ -700,6 +717,10 @@ mapAliases ({
   gnome_user_docs = gnome-user-docs; # added 2019-11-20
   # spidermonkey is not ABI upwards-ompatible, so only allow this for nix-shell
   spidermonkey = spidermonkey_78; # added 2020-10-09
+  libtorrentRasterbar = libtorrent-rasterbar; # added 2020-12-20
+  libtorrentRasterbar-2_0_x = libtorrent-rasterbar-2_0_x; # added 2020-12-20
+  libtorrentRasterbar-1_2_x = libtorrent-rasterbar-1_2_x; # added 2020-12-20
+  libtorrentRasterbar-1_1_x = libtorrent-rasterbar-1_1_x; # added 2020-12-20
 
   # TODO(ekleog): add ‘wasm’ alias to ‘ocamlPackages.wasm’ after 19.03
   # branch-off
@@ -779,6 +800,9 @@ mapAliases ({
 
   ant-dracula-theme = throw "ant-dracula-theme is now dracula-theme, and theme name is Dracula instead of Ant-Dracula.";
 
+  /* Added 2021-01-02 */
+  ttyrec = ovh-ttyrec;
+
   /* 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 */
@@ -823,7 +847,7 @@ mapAliases ({
     kwallet-pam kwayland-integration kwin kwrited milou oxygen plasma-browser-integration
     plasma-desktop plasma-integration plasma-nm plasma-pa plasma-vault plasma-workspace
     plasma-workspace-wallpapers polkit-kde-agent powerdevil sddm-kcm
-    systemsettings user-manager xdg-desktop-portal-kde
+    systemsettings xdg-desktop-portal-kde
   ;
   inherit (plasma5.thirdParty)
     plasma-applet-caffeine-plus
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index f0c412e5c9b..100a2aea853 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -120,6 +120,10 @@ in
     { deps = [ autoconf264 automake111x gettext libtool ]; }
     ../build-support/setup-hooks/autoreconf.sh;
 
+  autoreconfHook269 = makeSetupHook
+    { deps = [ autoconf269 automake gettext libtool ]; }
+    ../build-support/setup-hooks/autoreconf.sh;
+
   autoPatchelfHook = makeSetupHook { name = "auto-patchelf-hook"; }
     ../build-support/setup-hooks/auto-patchelf.sh;
 
@@ -192,6 +196,8 @@ in
 
   corgi = callPackage ../development/tools/corgi { };
 
+  colobot = callPackage ../games/colobot {};
+
   colorz = callPackage ../tools/misc/colorz { };
 
   colorpicker = callPackage ../tools/misc/colorpicker { };
@@ -222,6 +228,8 @@ in
 
   ptags = callPackage ../development/tools/misc/ptags { };
 
+  ptouch-print = callPackage ../misc/ptouch-print { };
+
   demoit = callPackage ../servers/demoit { };
 
   deviceTree = callPackage ../os-specific/linux/device-tree {};
@@ -243,7 +251,9 @@ in
   archiver = callPackage ../applications/misc/archiver { };
 
   # It segfaults if it uses qt5.15
-  digitalbitbox = libsForQt514.callPackage ../applications/misc/digitalbitbox { };
+  digitalbitbox = libsForQt514.callPackage ../applications/misc/digitalbitbox {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   gretl = callPackage ../applications/science/math/gretl { };
 
@@ -957,6 +967,8 @@ in
 
   aws-google-auth = python3Packages.callPackage ../tools/admin/aws-google-auth { };
 
+  aws-nuke = callPackage ../tools/admin/aws-nuke { };
+
   aws-okta = callPackage ../tools/security/aws-okta { };
 
   aws-rotate-key = callPackage ../tools/admin/aws-rotate-key { };
@@ -977,6 +989,8 @@ in
 
   berglas = callPackage ../tools/admin/berglas/default.nix { };
 
+  betterdiscordctl = callPackage ../tools/misc/betterdiscordctl { };
+
   brakeman = callPackage ../development/tools/analysis/brakeman { };
 
   brewtarget = libsForQt514.callPackage ../applications/misc/brewtarget { } ;
@@ -1017,7 +1031,9 @@ in
 
   apg = callPackage ../tools/security/apg { };
 
-  apt-dater = callPackage ../tools/package-management/apt-dater { };
+  apt-dater = callPackage ../tools/package-management/apt-dater {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   autorevision = callPackage ../tools/misc/autorevision { };
 
@@ -1159,6 +1175,8 @@ in
 
   doona = callPackage ../tools/security/doona { };
 
+  droidcam = callPackage ../applications/video/droidcam { };
+
   ecdsautils = callPackage ../tools/security/ecdsautils { };
 
   sedutil = callPackage ../tools/security/sedutil { };
@@ -1305,6 +1323,8 @@ in
 
   gopass = callPackage ../tools/security/gopass { };
 
+  gospider = callPackage ../tools/security/gospider { };
+
   browserpass = callPackage ../tools/security/browserpass { };
 
   passff-host = callPackage ../tools/security/passff-host { };
@@ -1347,6 +1367,8 @@ in
 
   wiimms-iso-tools = callPackage ../tools/filesystems/wiimms-iso-tools { };
 
+  waypoint = callPackage ../applications/networking/cluster/waypoint { };
+
   xcodeenv = callPackage ../development/mobile/xcodeenv { };
 
   ssh-agents = callPackage ../tools/networking/ssh-agents { };
@@ -1599,12 +1621,15 @@ in
 
   boringtun = callPackage ../tools/networking/boringtun { };
 
+  # Upstream recommends qt5.12 and it doesn't build with qt5.15
   boomerang = libsForQt512.callPackage ../development/tools/boomerang { };
 
   boost-build = callPackage ../development/tools/boost-build { };
 
   boot = callPackage ../development/tools/build-managers/boot { };
 
+  bowtie = callPackage ../applications/science/biology/bowtie { };
+
   bowtie2 = callPackage ../applications/science/biology/bowtie2 { };
 
   boxfs = callPackage ../tools/filesystems/boxfs { };
@@ -1747,6 +1772,8 @@ in
     gflags = null; # only required for examples/tests
   };
 
+  craftos-pc = callPackage ../misc/emulators/craftos-pc { };
+
   gcdemu = callPackage ../misc/emulators/cdemu/gui.nix { };
 
   image-analyzer = callPackage ../misc/emulators/cdemu/analyzer.nix { };
@@ -1855,6 +1882,8 @@ in
 
   cpulimit = callPackage ../tools/misc/cpulimit { };
 
+  code-minimap = callPackage ../tools/misc/code-minimap { };
+
   codesearch = callPackage ../tools/text/codesearch { };
 
   codec2 = callPackage ../development/libraries/codec2 { };
@@ -1880,6 +1909,10 @@ in
 
   cppclean = callPackage ../development/tools/cppclean {};
 
+  credhub-cli = callPackage ../tools/admin/credhub-cli {
+    buildGoModule = buildGo114Module;
+  };
+
   crex = callPackage ../tools/misc/crex { };
 
   cri-tools = callPackage ../tools/virtualization/cri-tools {};
@@ -1989,6 +2022,8 @@ in
 
   discocss = callPackage ../tools/misc/discocss { };
 
+  disfetch = callPackage ../tools/misc/disfetch { };
+
   disk-filltest = callPackage ../tools/system/disk-filltest { };
 
   diskscan = callPackage ../tools/misc/diskscan { };
@@ -2009,6 +2044,8 @@ in
 
   dlx = callPackage ../misc/emulators/dlx { };
 
+  dgen-sdl = callPackage ../misc/emulators/dgen-sdl { };
+
   doitlive = callPackage ../tools/misc/doitlive { };
 
   dokuwiki = callPackage ../servers/web-apps/dokuwiki { };
@@ -2200,6 +2237,8 @@ in
 
   gdrive = callPackage ../applications/networking/gdrive { };
 
+  gdu = callPackage ../tools/system/gdu { };
+
   go-chromecast = callPackage ../applications/video/go-chromecast { };
 
   go-rice = callPackage ../tools/misc/go.rice {};
@@ -2343,6 +2382,8 @@ in
 
   kapacitor = callPackage ../servers/monitoring/kapacitor { };
 
+  kaldi = callPackage ../tools/audio/kaldi { };
+
   kisslicer = callPackage ../tools/misc/kisslicer { };
 
   klaus = with python3Packages; toPythonApplication klaus;
@@ -2445,6 +2486,8 @@ in
 
   monetdb = callPackage ../servers/sql/monetdb { };
 
+  monado = callPackage ../applications/graphics/monado {};
+
   mons = callPackage ../tools/misc/mons {};
 
   mousetweaks = callPackage ../applications/accessibility/mousetweaks {
@@ -2497,6 +2540,8 @@ in
 
   ocrmypdf = callPackage ../tools/text/ocrmypdf { };
 
+  ocrfeeder = callPackage ../applications/graphics/ocrfeeder { };
+
   onboard = callPackage ../applications/misc/onboard { };
 
   oneshot = callPackage ../tools/networking/oneshot { };
@@ -2579,8 +2624,12 @@ in
 
   shell-hist = callPackage ../tools/misc/shell-hist { };
 
+  shellhub-agent = callPackage ../applications/networking/shellhub-agent { };
+
   simdjson = callPackage ../development/libraries/simdjson { };
 
+  shipyard = callPackage ../tools/virtualization/shipyard { };
+
   simg2img = callPackage ../tools/filesystems/simg2img { };
 
   simplenes = callPackage ../misc/emulators/simplenes { };
@@ -2601,7 +2650,9 @@ in
 
   statserial = callPackage ../tools/misc/statserial { };
 
-  step-ca = callPackage ../tools/security/step-ca { };
+  step-ca = callPackage ../tools/security/step-ca {
+    inherit (darwin.apple_sdk.frameworks) PCSC;
+  };
 
   step-cli = callPackage ../tools/security/step-cli { };
 
@@ -2957,9 +3008,7 @@ in
 
   cmt = callPackage ../applications/audio/cmt {};
 
-  codimd = callPackage ../servers/web-apps/codimd {
-    nodejs = nodejs-12_x;
-  };
+  hedgedoc = callPackage ../servers/web-apps/hedgedoc { };
 
   colord = callPackage ../tools/misc/colord { };
 
@@ -3329,13 +3378,13 @@ in
 
   ddrutility = callPackage ../tools/system/ddrutility { };
 
-  deluge-2_x = callPackage ../applications/networking/p2p/deluge/2 {
+  deluge-2_x = callPackage ../applications/networking/p2p/deluge {
     pythonPackages = python3Packages;
-    libtorrentRasterbar = libtorrentRasterbar.override { python = python3; };
+    libtorrent-rasterbar = libtorrent-rasterbar-1_2_x.override { python = python3; };
   };
-  deluge-1_x = callPackage ../applications/networking/p2p/deluge/1 {
+  deluge-1_x = callPackage ../applications/networking/p2p/deluge/1.nix {
     pythonPackages = python2Packages;
-    libtorrentRasterbar = libtorrentRasterbar-1_1_x;
+    libtorrent-rasterbar = libtorrent-rasterbar-1_1_x;
   };
   deluge = deluge-2_x;
 
@@ -3367,6 +3416,8 @@ in
 
   dnstop = callPackage ../tools/networking/dnstop { };
 
+  dnsx = callPackage ../tools/security/dnsx { };
+
   dhcp = callPackage ../tools/networking/dhcp { };
 
   dhcpdump = callPackage ../tools/networking/dhcpdump { };
@@ -3491,7 +3542,9 @@ in
 
   duc = callPackage ../tools/misc/duc { };
 
-  duff = callPackage ../tools/filesystems/duff { };
+  duff = callPackage ../tools/filesystems/duff {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   dumptorrent = callPackage ../tools/misc/dumptorrent { };
 
@@ -3555,7 +3608,9 @@ in
 
   eflite = callPackage ../applications/audio/eflite {};
 
-  eid-mw = callPackage ../tools/security/eid-mw { };
+  eid-mw = callPackage ../tools/security/eid-mw {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   epubcheck = callPackage ../tools/text/epubcheck { };
 
@@ -3736,6 +3791,10 @@ in
 
   emem = callPackage ../applications/misc/emem { };
 
+  emulsion = callPackage ../applications/graphics/emulsion {
+    inherit (darwin.apple_sdk.frameworks) AppKit CoreGraphics CoreServices Foundation OpenGL;
+  };
+
   emv = callPackage ../tools/misc/emv { };
 
   enblend-enfuse = callPackage ../tools/graphics/enblend-enfuse { };
@@ -3883,6 +3942,8 @@ in
 
   feedreader = callPackage ../applications/networking/feedreaders/feedreader {};
 
+  feeds = callPackage ../applications/networking/feedreaders/feeds {};
+
   fend = callPackage ../tools/misc/fend { };
 
   ferm = callPackage ../tools/networking/ferm { };
@@ -3981,6 +4042,8 @@ in
 
   feedgnuplot = callPackage ../tools/graphics/feedgnuplot { };
 
+  fbcat = callPackage ../tools/misc/fbcat { };
+
   fbv = callPackage ../tools/graphics/fbv { };
 
   fbvnc = callPackage ../tools/admin/fbvnc {};
@@ -4047,6 +4110,8 @@ in
 
   freedroidrpg = callPackage ../games/freedroidrpg { };
 
+  freenukum = callPackage ../games/freenukum { };
+
   freebind = callPackage ../tools/networking/freebind { };
 
   freeipmi = callPackage ../tools/system/freeipmi {};
@@ -4131,6 +4196,8 @@ in
 
   garmintools = callPackage ../development/libraries/garmintools {};
 
+  gau = callPackage ../tools/security/gau { };
+
   gauge = callPackage ../development/tools/gauge { };
 
   gawk = callPackage ../tools/text/gawk {
@@ -4261,7 +4328,9 @@ in
 
   gmvault = callPackage ../tools/networking/gmvault { };
 
-  gnash = callPackage ../misc/gnash { };
+  gnash = callPackage ../misc/gnash {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   gnirehtet = callPackage ../tools/networking/gnirehtet { };
 
@@ -4497,7 +4566,9 @@ in
 
   gsmartcontrol = callPackage ../tools/misc/gsmartcontrol { };
 
-  gsmlib = callPackage ../development/libraries/gsmlib { };
+  gsmlib = callPackage ../development/libraries/gsmlib {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   gssdp = callPackage ../development/libraries/gssdp { };
 
@@ -4736,6 +4807,8 @@ in
 
   httptunnel = callPackage ../tools/networking/httptunnel { };
 
+  httpx = callPackage ../tools/security/httpx { };
+
   hubicfuse = callPackage ../tools/filesystems/hubicfuse { };
 
   humanfriendly = with python3Packages; toPythonApplication humanfriendly;
@@ -4773,6 +4846,8 @@ in
 
   icecast = callPackage ../servers/icecast { };
 
+  icemon = libsForQt5.callPackage ../applications/networking/icemon { };
+
   icepeak = haskell.lib.justStaticExecutables haskellPackages.icepeak;
 
   iceshelf = callPackage ../tools/backup/iceshelf { };
@@ -4882,9 +4957,7 @@ in
 
   ipfs = callPackage ../applications/networking/ipfs { };
   ipfs-migrator = callPackage ../applications/networking/ipfs-migrator { };
-  ipfs-cluster = callPackage ../applications/networking/ipfs-cluster {
-    buildGoModule = buildGo114Module;
-  };
+  ipfs-cluster = callPackage ../applications/networking/ipfs-cluster { };
 
   ipget = callPackage ../applications/networking/ipget { };
 
@@ -5085,6 +5158,8 @@ in
 
   keyfuzz = callPackage ../tools/inputmethods/keyfuzz { };
 
+  keystore-explorer = callPackage ../applications/misc/keystore-explorer { };
+
   kibana6 = callPackage ../development/tools/misc/kibana/6.x.nix { };
   kibana6-oss = callPackage ../development/tools/misc/kibana/6.x.nix {
     enableUnfree = false;
@@ -5130,9 +5205,9 @@ in
 
   peruse = libsForQt5.callPackage ../tools/misc/peruse { };
 
-  ksmoothdock = libsForQt514.callPackage ../applications/misc/ksmoothdock { };
+  ksmoothdock = libsForQt5.callPackage ../applications/misc/ksmoothdock { };
 
-  kstars = libsForQt514.callPackage ../applications/science/astronomy/kstars { };
+  kstars = libsForQt5.callPackage ../applications/science/astronomy/kstars { };
 
   kytea = callPackage ../tools/text/kytea { };
 
@@ -5142,6 +5217,8 @@ in
 
   ldc = callPackage ../development/compilers/ldc { };
 
+  ldgallery = callPackage ../tools/graphics/ldgallery { };
+
   lbreakout2 = callPackage ../games/lbreakout2 { };
 
   lefthook = gitAndTools.lefthook;
@@ -5164,9 +5241,15 @@ in
 
   libcloudproviders = callPackage ../development/libraries/libcloudproviders { };
 
-  libcoap = callPackage ../applications/networking/libcoap {};
+  libcoap = callPackage ../applications/networking/libcoap {
+    autoconf = buildPackages.autoconf269;
+  };
+
+  libcryptui = callPackage ../development/libraries/libcryptui {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
-  libcryptui = callPackage ../development/libraries/libcryptui { };
+  libsmartcols = callPackage ../development/libraries/libsmartcols { };
 
   libsmi = callPackage ../development/libraries/libsmi { };
 
@@ -5224,6 +5307,8 @@ in
 
   lvmsync = callPackage ../tools/backup/lvmsync { };
 
+  kapp = callPackage ../tools/networking/kapp {};
+
   kdbg = libsForQt5.callPackage ../development/tools/misc/kdbg { };
 
   kippo = callPackage ../servers/kippo { };
@@ -5266,7 +5351,7 @@ in
 
   mdcat = callPackage ../tools/text/mdcat {
     inherit (darwin.apple_sdk.frameworks) Security;
-    inherit (pythonPackages) ansi2html;
+    inherit (python3Packages) ansi2html;
   };
 
   medfile = callPackage ../development/libraries/medfile { };
@@ -5311,6 +5396,8 @@ in
 
   mxisd = callPackage ../servers/mxisd { };
 
+  naabu = callPackage ../tools/security/naabu { };
+
   nagstamon = callPackage ../tools/misc/nagstamon {
     pythonPackages = python3Packages;
   };
@@ -5381,6 +5468,8 @@ in
 
   file-rename = callPackage ../tools/filesystems/file-rename { };
 
+  kcollectd = libsForQt5.callPackage ../tools/misc/kcollectd {};
+
   kea = callPackage ../tools/networking/kea { };
 
   keysmith = libsForQt5.callPackage ../tools/security/keysmith { };
@@ -5548,6 +5637,8 @@ in
 
   linuxquota = callPackage ../tools/misc/linuxquota { };
 
+  liquidctl = with python3Packages; toPythonApplication liquidctl;
+
   localtime = callPackage ../tools/system/localtime { };
 
   logcheck = callPackage ../tools/system/logcheck { };
@@ -5584,7 +5675,9 @@ in
 
   lv = callPackage ../tools/text/lv { };
 
-  lxc = callPackage ../os-specific/linux/lxc { };
+  lxc = callPackage ../os-specific/linux/lxc {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
   lxcfs = callPackage ../os-specific/linux/lxcfs { };
   lxd = callPackage ../tools/admin/lxd { };
 
@@ -5731,6 +5824,10 @@ in
 
   mgba = libsForQt5.callPackage ../misc/emulators/mgba { };
 
+  microdnf = callPackage ../tools/package-management/microdnf { };
+
+  microplane = callPackage ../tools/misc/microplane { };
+
   microserver = callPackage ../servers/microserver { };
 
   midisheetmusic = callPackage ../applications/audio/midisheetmusic { };
@@ -5921,6 +6018,8 @@ in
 
   neo-cowsay = callPackage ../tools/misc/neo-cowsay { };
 
+  neochat = libsForQt5.callPackage ../applications/networking/instant-messengers/neochat { };
+
   neofetch = callPackage ../tools/misc/neofetch { };
 
   nerdfonts = callPackage ../data/fonts/nerdfonts { };
@@ -6040,9 +6139,18 @@ in
   # with different versions we pin Go for all versions.
   nomad_0_11 = callPackage ../applications/networking/cluster/nomad/0.11.nix {
     buildGoPackage = buildGo114Package;
+    inherit (linuxPackages) nvidia_x11;
+    nvidiaGpuSupport = config.cudaSupport or (!stdenv.isLinux);
   };
   nomad_0_12 = callPackage ../applications/networking/cluster/nomad/0.12.nix {
     buildGoPackage = buildGo114Package;
+    inherit (linuxPackages) nvidia_x11;
+    nvidiaGpuSupport = config.cudaSupport or (!stdenv.isLinux);
+  };
+  nomad_1_0 = callPackage ../applications/networking/cluster/nomad/1.0.nix {
+    buildGoPackage = buildGo115Package;
+    inherit (linuxPackages) nvidia_x11;
+    nvidiaGpuSupport = config.cudaSupport or (!stdenv.isLinux);
   };
 
   notable = callPackage ../applications/misc/notable { };
@@ -6155,6 +6263,8 @@ in
 
   nssmdns = callPackage ../tools/networking/nss-mdns { };
 
+  nvimpager = callPackage ../tools/misc/nvimpager { };
+
   nwdiag = with python3Packages; toPythonApplication nwdiag;
 
   nxdomain = python3.pkgs.callPackage ../tools/networking/nxdomain { };
@@ -6171,6 +6281,8 @@ in
 
   oathToolkit = callPackage ../tools/security/oath-toolkit { };
 
+  oatpp = callPackage ../development/libraries/oatpp { };
+
   obex_data_server = callPackage ../tools/bluetooth/obex-data-server { };
 
   obexd = callPackage ../tools/bluetooth/obexd { };
@@ -6224,6 +6336,8 @@ in
 
   onioncircuits = callPackage ../tools/security/onioncircuits { };
 
+  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 { };
 
@@ -6344,7 +6458,9 @@ in
 
   opn2bankeditor = callPackage ../tools/audio/opl3bankeditor/opn2bankeditor.nix { };
 
-  orangefs = callPackage ../tools/filesystems/orangefs { };
+  orangefs = callPackage ../tools/filesystems/orangefs {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   os-prober = callPackage ../tools/misc/os-prober {};
 
@@ -6366,6 +6482,8 @@ in
 
   overmind = callPackage ../applications/misc/overmind { };
 
+  ovh-ttyrec = callPackage ../tools/misc/ovh-ttyrec { };
+
   owncloud-client = libsForQt514.callPackage ../applications/networking/owncloud-client { };
 
   oxidized = callPackage ../tools/admin/oxidized { };
@@ -6408,6 +6526,8 @@ in
 
   papertrail = callPackage ../tools/text/papertrail { };
 
+  pappl = callPackage ../applications/printing/pappl { };
+
   par2cmdline = callPackage ../tools/networking/par2cmdline { };
 
   parallel = callPackage ../tools/misc/parallel { };
@@ -6416,7 +6536,9 @@ in
 
   parastoo-fonts = callPackage ../data/fonts/parastoo-fonts { };
 
-  parcellite = callPackage ../tools/misc/parcellite { };
+  parcellite = callPackage ../tools/misc/parcellite {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   patchutils = callPackage ../tools/text/patchutils { };
 
@@ -6588,6 +6710,8 @@ in
     graphviz = graphviz_2_32;
   };
 
+  plantuml-server = callPackage ../tools/misc/plantuml-server { };
+
   plan9port = callPackage ../tools/system/plan9port { };
 
   platformioPackages = dontRecurseIntoAttrs (callPackage ../development/arduino/platformio { });
@@ -6597,6 +6721,8 @@ in
 
   playbar2 = libsForQt5.callPackage ../applications/audio/playbar2 { };
 
+  plujain-ramp = callPackage ../applications/audio/plujain-ramp { };
+
   plex = callPackage ../servers/plex { };
   plexRaw = callPackage ../servers/plex/raw.nix { };
 
@@ -6702,6 +6828,8 @@ in
 
   proxychains = callPackage ../tools/networking/proxychains { };
 
+  proxify = callPackage ../tools/networking/proxify { };
+
   proxytunnel = callPackage ../tools/misc/proxytunnel {
     openssl = openssl_1_0_2;
   };
@@ -6834,7 +6962,7 @@ in
 
   qshowdiff = callPackage ../tools/text/qshowdiff { };
 
-  qr-filetransfer = callPackage ../tools/networking/qr-filetransfer { };
+  qrcp = callPackage ../tools/networking/qrcp { };
 
   qtikz = libsForQt5.callPackage ../applications/graphics/ktikz { };
 
@@ -6906,6 +7034,8 @@ in
 
   rep = callPackage ../development/tools/rep { };
 
+  reicast = callPackage ../misc/emulators/reicast { };
+
   reredirect = callPackage ../tools/misc/reredirect { };
 
   retext = libsForQt5.callPackage ../applications/editors/retext { };
@@ -6923,6 +7053,8 @@ in
 
   rtptools = callPackage ../tools/networking/rtptools { };
 
+  rtss = callPackage ../development/tools/misc/rtss { };
+
   reaverwps = callPackage ../tools/networking/reaver-wps {};
 
   reaverwps-t6x = callPackage ../tools/networking/reaver-wps-t6x {};
@@ -6973,6 +7105,9 @@ in
 
   rescuetime = libsForQt5.callPackage ../applications/misc/rescuetime { };
 
+  inherit (callPackage ../development/misc/resholve { })
+    resholve resholvePackage;
+
   reuse = callPackage ../tools/package-management/reuse { };
 
   rewritefs = callPackage ../os-specific/linux/rewritefs { };
@@ -7327,6 +7462,7 @@ in
 
   sleuthkit = callPackage ../tools/system/sleuthkit {};
 
+  # Not updated upstream since 2018, doesn't support qt newer than 5.12
   sleepyhead = libsForQt512.callPackage ../applications/misc/sleepyhead {};
 
   slirp4netns = callPackage ../tools/networking/slirp4netns/default.nix { };
@@ -7352,7 +7488,9 @@ in
 
   smenu = callPackage ../tools/misc/smenu { };
 
-  smesh = callPackage ../development/libraries/smesh {};
+  smesh = callPackage ../development/libraries/smesh {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
 
   smu = callPackage ../tools/text/smu { };
 
@@ -7443,6 +7581,8 @@ in
 
   solaar = callPackage ../applications/misc/solaar {};
 
+  solanum = callPackage ../servers/irc/solanum {};
+
   sourceHighlight = callPackage ../tools/text/source-highlight { };
 
   spacebar = callPackage ../os-specific/darwin/spacebar {
@@ -7585,8 +7725,9 @@ in
   sysbench = callPackage ../development/tools/misc/sysbench {};
 
   system-config-printer = callPackage ../tools/misc/system-config-printer {
+    autoreconfHook = buildPackages.autoreconfHook269;
     libxml2 = libxml2Python;
-   };
+  };
 
   systembus-notify = callPackage ../applications/misc/systembus-notify { };
 
@@ -7662,6 +7803,8 @@ in
     pythonPackages = python3Packages;
   };
 
+  teler = callPackage ../tools/security/teler { };
+
   termius = callPackage ../applications/networking/termius { };
 
   termplay = callPackage ../tools/misc/termplay { };
@@ -7869,14 +8012,16 @@ in
 
   ttf2pt1 = callPackage ../tools/misc/ttf2pt1 { };
 
-  ttfautohint = libsForQt5.callPackage ../tools/misc/ttfautohint { };
+  ttfautohint = libsForQt5.callPackage ../tools/misc/ttfautohint {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
   ttfautohint-nox = ttfautohint.override { enableGUI = false; };
 
   tty-clock = callPackage ../tools/misc/tty-clock { };
 
-  ttyplot = callPackage ../tools/misc/ttyplot { };
+  tty-share = callPackage ../applications/misc/tty-share { };
 
-  ttyrec = callPackage ../tools/misc/ttyrec { };
+  ttyplot = callPackage ../tools/misc/ttyplot { };
 
   ttygif = callPackage ../tools/misc/ttygif { };
 
@@ -8028,7 +8173,9 @@ in
 
   verilator = callPackage ../applications/science/electronics/verilator {};
 
-  verilog = callPackage ../applications/science/electronics/verilog {};
+  verilog = callPackage ../applications/science/electronics/verilog {
+    autoconf = buildPackages.autoconf269;
+  };
 
   versus = callPackage ../applications/networking/versus { };
 
@@ -8137,6 +8284,7 @@ in
 
   watchman = callPackage ../development/tools/watchman {
     inherit (darwin.apple_sdk.frameworks) CoreServices;
+    autoconf = buildPackages.autoconf269;
   };
 
   wavefunctioncollapse = callPackage ../tools/graphics/wavefunctioncollapse {};
@@ -8165,6 +8313,8 @@ in
 
   wimboot = callPackage ../tools/misc/wimboot { };
 
+  wire = callPackage ../development/tools/wire { };
+
   wireguard-tools = callPackage ../tools/networking/wireguard-tools { };
 
   woff2 = callPackage ../development/web/woff2 { };
@@ -8259,7 +8409,9 @@ in
 
   uhttpmock = callPackage ../development/libraries/uhttpmock { };
 
-  uim = callPackage ../tools/inputmethods/uim { };
+  uim = callPackage ../tools/inputmethods/uim {
+    autoconf = buildPackages.autoconf269;
+  };
 
   uhub = callPackage ../servers/uhub { };
 
@@ -8296,6 +8448,8 @@ in
 
   xbrightness = callPackage ../tools/X11/xbrightness { };
 
+  xdg-launch = callPackage ../applications/misc/xdg-launch { };
+
   xkbvalidate = callPackage ../tools/X11/xkbvalidate { };
 
   xfstests = callPackage ../tools/misc/xfstests { };
@@ -8451,6 +8605,7 @@ in
     # It needs a cross compiler for mipsel to build the firmware it will
     # load into the Ben Nanonote
     gccCross = pkgsCross.ben-nanonote.buildPackages.gccCrossStageStatic;
+    autoconf = buildPackages.autoconf269;
   };
 
   clipnotify = callPackage ../tools/misc/clipnotify { };
@@ -8578,7 +8733,9 @@ in
 
   zbackup = callPackage ../tools/backup/zbackup {};
 
-  zbar = libsForQt5.callPackage ../tools/graphics/zbar { };
+  zbar = libsForQt5.callPackage ../tools/graphics/zbar {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   zdelta = callPackage ../tools/compression/zdelta { };
 
@@ -8667,8 +8824,8 @@ in
   any-nix-shell = callPackage ../shells/any-nix-shell { };
 
   bash = lowPrio (callPackage ../shells/bash/4.4.nix { });
-  bash_5 = lowPrio (callPackage ../shells/bash/5.0.nix { });
-  bashInteractive_5 = lowPrio (callPackage ../shells/bash/5.0.nix {
+  bash_5 = lowPrio (callPackage ../shells/bash/5.1.nix { });
+  bashInteractive_5 = lowPrio (callPackage ../shells/bash/5.1.nix {
     interactive = true;
     withDocs = true;
   });
@@ -8695,9 +8852,11 @@ in
 
   fish = callPackage ../shells/fish { };
 
-  fish-foreign-env = callPackage ../shells/fish/fish-foreign-env { };
+  fishPlugins = recurseIntoAttrs (callPackage ../shells/fish/plugins { });
 
-  ion = callPackage ../shells/ion { };
+  ion = callPackage ../shells/ion {
+    inherit (darwin) Security;
+  };
 
   jush = callPackage ../shells/jush { };
 
@@ -8872,7 +9031,7 @@ in
   colm = callPackage ../development/compilers/colm { };
 
   colmap = libsForQt514.callPackage ../applications/science/misc/colmap { };
-  colmapWithCuda = colmap.override { cudaSupport = true; };
+  colmapWithCuda = colmap.override { cudaSupport = true; cudatoolkit = cudatoolkit_11; };
 
   chickenPackages_4 = callPackage ../development/compilers/chicken/4 { };
   chickenPackages_5 = callPackage ../development/compilers/chicken/5 { };
@@ -8928,7 +9087,10 @@ in
     llvmPackages = llvmPackages_latest;
   };
 
-  clang-analyzer = callPackage ../development/tools/analysis/clang-analyzer { };
+  clang-analyzer = callPackage ../development/tools/analysis/clang-analyzer {
+    llvmPackages = llvmPackages_latest;
+    inherit (llvmPackages_latest) clang;
+  };
 
   #Use this instead of stdenv to build with clang
   clangStdenv = if stdenv.cc.isClang then stdenv else lowPrio llvmPackages.stdenv;
@@ -8981,8 +9143,9 @@ in
     crystal_0_33
     crystal_0_34
     crystal_0_35
-    crystal
-    crystal2nix;
+    crystal;
+
+  crystal2nix = callPackage ../development/compilers/crystal2nix { };
 
   icr = callPackage ../development/tools/icr { };
 
@@ -9018,6 +9181,8 @@ in
 
   fasmg = callPackage ../development/compilers/fasmg { };
 
+  flasm = callPackage ../development/compilers/flasm { };
+
   flyctl = callPackage ../development/web/flyctl { };
 
   flutterPackages =
@@ -9038,10 +9203,10 @@ in
 
   gccFun = callPackage (if (with stdenv.targetPlatform; isVc4 || libc == "relibc")
     then ../development/compilers/gcc/6
-    else ../development/compilers/gcc/9);
+    else ../development/compilers/gcc/10);
   gcc = if (with stdenv.targetPlatform; isVc4 || libc == "relibc")
-    then gcc6 else gcc9;
-
+    then gcc6 else
+      if stdenv.targetPlatform.isAarch64 then gcc9 else gcc10;
   gcc-unwrapped = gcc.cc;
 
   gccStdenv = if stdenv.cc.isGNU then stdenv else stdenv.override {
@@ -9379,7 +9544,8 @@ in
   gcc-arm-embedded-7 = callPackage ../development/compilers/gcc-arm-embedded/7 {};
   gcc-arm-embedded-8 = callPackage ../development/compilers/gcc-arm-embedded/8 {};
   gcc-arm-embedded-9 = callPackage ../development/compilers/gcc-arm-embedded/9 {};
-  gcc-arm-embedded = gcc-arm-embedded-9;
+  gcc-arm-embedded-10 = callPackage ../development/compilers/gcc-arm-embedded/10 {};
+  gcc-arm-embedded = gcc-arm-embedded-10;
 
   gdc = gdc9;
   gdc9 = wrapCC (gcc9.cc.override {
@@ -9404,7 +9570,7 @@ in
 
   # Please update doc/languages-frameworks/haskell.section.md, “Our
   # current default compiler is”, if you bump this:
-  haskellPackages = dontRecurseIntoAttrs haskell.packages.ghc8102;
+  haskellPackages = dontRecurseIntoAttrs haskell.packages.ghc8103;
 
   inherit (haskellPackages) ghc;
 
@@ -9495,6 +9661,13 @@ in
     buildPackages = buildPackages // { stdenv = gcc8Stdenv; };
   });
 
+  go_2-dev = callPackage ../development/compilers/go/2-dev.nix ({
+    inherit (darwin.apple_sdk.frameworks) Security Foundation;
+  } // lib.optionalAttrs stdenv.isAarch64 {
+    stdenv = gcc8Stdenv;
+    buildPackages = buildPackages // { stdenv = gcc8Stdenv; };
+  });
+
   go = go_1_15;
 
   go-repo-root = callPackage ../development/tools/go-repo-root { };
@@ -9533,7 +9706,7 @@ in
 
   openjfx11 = callPackage ../development/compilers/openjdk/openjfx/11.nix { };
 
-  openjfx14 = callPackage ../development/compilers/openjdk/openjfx/14.nix { };
+  openjfx15 = callPackage ../development/compilers/openjdk/openjfx/15.nix { };
 
   openjdk8-bootstrap =
     if adoptopenjdk-hotspot-bin-8.meta.available then
@@ -9583,21 +9756,27 @@ in
     else
       openjdk11.override { headless = true; };
 
-  openjdk14-bootstrap =
-    if adoptopenjdk-hotspot-bin-13.meta.available then
-      adoptopenjdk-hotspot-bin-13
+  openjdk15-bootstrap =
+    if adoptopenjdk-hotspot-bin-14.meta.available then
+      adoptopenjdk-hotspot-bin-14
     else
-      /* adoptopenjdk not available for i686, so fall back to our old builds of 12 & 13 for bootstrapping */
-      callPackage ../development/compilers/openjdk/13.nix {
+      /* adoptopenjdk not available for i686, so fall back to our old builds of 12, 13, & 14 for bootstrapping */
+      callPackage ../development/compilers/openjdk/14.nix {
         openjfx = openjfx11; /* need this despite next line :-( */
         enableJavaFX = false;
         headless = true;
         inherit (gnome2) GConf gnome_vfs;
-        openjdk13-bootstrap = callPackage ../development/compilers/openjdk/12.nix {
+        openjdk14-bootstrap = callPackage ../development/compilers/openjdk/13.nix {
           openjfx = openjfx11; /* need this despite next line :-( */
           enableJavaFX = false;
           headless = true;
           inherit (gnome2) GConf gnome_vfs;
+          openjdk13-bootstrap = callPackage ../development/compilers/openjdk/12.nix {
+            openjfx = openjfx11; /* need this despite next line :-( */
+            enableJavaFX = false;
+            headless = true;
+            inherit (gnome2) GConf gnome_vfs;
+          };
         };
       };
 
@@ -9605,27 +9784,27 @@ in
   jdk11_headless = openjdk11_headless;
 
   /* Latest JDK */
-  openjdk14 =
+  openjdk15 =
     if stdenv.isDarwin then
       callPackage ../development/compilers/openjdk/darwin { }
     else
       callPackage ../development/compilers/openjdk {
-        openjfx = openjfx14;
+        openjfx = openjfx15;
         inherit (gnome2) GConf gnome_vfs;
       };
 
-  openjdk14_headless =
+  openjdk15_headless =
     if stdenv.isDarwin then
-      openjdk14
+      openjdk15
     else
-      openjdk14.override { headless = true; };
+      openjdk15.override { headless = true; };
 
-  jdk14 = openjdk14;
-  jdk14_headless = openjdk14_headless;
+  jdk15 = openjdk15;
+  jdk15_headless = openjdk15_headless;
 
   /* default JDK */
 
-  jdk = jdk14;
+  jdk = jdk15;
 
   # Since the introduction of the Java Platform Module System in Java 9, Java
   # no longer ships a separate JRE package.
@@ -9634,13 +9813,13 @@ in
   # 'jre_minimal' to build a bespoke JRE containing only the modules you need.
   #
   # For a general-purpose system, 'jre' defaults to the full JDK:
-  jre = jdk14;
-  jre_headless = jdk14_headless;
+  jre = jdk15;
+  jre_headless = jdk15_headless;
 
   jre_minimal = callPackage ../development/compilers/openjdk/jre.nix { };
 
-  openjdk = openjdk14;
-  openjdk_headless = openjdk14_headless;
+  openjdk = openjdk15;
+  openjdk_headless = openjdk15_headless;
 
   inherit (callPackages ../development/compilers/graalvm {
     gcc = if stdenv.targetPlatform.isDarwin then gcc8 else gcc;
@@ -9722,7 +9901,6 @@ in
 
   knightos-kimg = callPackage ../development/tools/knightos/kimg {
     asciidoc = asciidoc-full;
-    imagemagick = imagemagick7Big;
   };
 
   knightos-kpack = callPackage ../development/tools/knightos/kpack { };
@@ -9923,7 +10101,10 @@ in
 
   neko = callPackage ../development/compilers/neko { };
 
-  nextpnr = libsForQt5.callPackage ../development/compilers/nextpnr {
+  nextpnr = callPackage ../development/compilers/nextpnr { };
+
+  nextpnrWithGui = libsForQt5.callPackage ../development/compilers/nextpnr {
+    enableGui = true;
     inherit (darwin.apple_sdk.frameworks) OpenGL;
   };
 
@@ -10038,11 +10219,9 @@ 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;
-    llvmPackages = if stdenv.cc.isClang then llvmPackages_5 else llvmPackages_10;
   };
   rust_1_48 = callPackage ../development/compilers/rust/1_48.nix {
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
-    llvmPackages = if stdenv.cc.isClang then llvmPackages_5 else llvmPackages_11;
   };
   rust = rust_1_48;
 
@@ -10056,7 +10235,6 @@ in
 
   buildRustCrate = callPackage ../build-support/rust/build-rust-crate { };
   buildRustCrateHelpers = callPackage ../build-support/rust/build-rust-crate/helpers.nix { };
-  buildRustCrateTests = recurseIntoAttrs (callPackage ../build-support/rust/build-rust-crate/test { });
   cratesIO = callPackage ../build-support/rust/crates-io.nix { };
 
   cargo-web = callPackage ../development/tools/cargo-web {
@@ -10141,6 +10319,7 @@ in
   cargo-watch = callPackage ../development/tools/rust/cargo-watch {
     inherit (darwin.apple_sdk.frameworks) CoreServices;
   };
+  cargo-wipe = callPackage ../development/tools/rust/cargo-wipe { };
   cargo-xbuild = callPackage ../development/tools/rust/cargo-xbuild { };
   cargo-generate = callPackage ../development/tools/rust/cargo-generate {
     inherit (darwin.apple_sdk.frameworks) Security;
@@ -10203,7 +10382,9 @@ in
 
   solc = callPackage ../development/compilers/solc { };
 
-  souffle = callPackage ../development/compilers/souffle { };
+  souffle = callPackage ../development/compilers/souffle {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   spasm-ng = callPackage ../development/compilers/spasm-ng { };
 
@@ -10496,7 +10677,7 @@ in
 
   ### LUA interpreters
   luaInterpreters = callPackage ./../development/interpreters/lua-5 {};
-  inherit (luaInterpreters) lua5_1 lua5_2 lua5_2_compat lua5_3 lua5_3_compat luajit_2_1 luajit_2_0;
+  inherit (luaInterpreters) lua5_1 lua5_2 lua5_2_compat lua5_3 lua5_3_compat lua5_4 lua5_4_compat luajit_2_1 luajit_2_0;
 
   lua5 = lua5_2_compat;
   lua = lua5;
@@ -10542,19 +10723,16 @@ in
   octave = callPackage ../development/interpreters/octave {
     python = python3;
     mkDerivation = stdenv.mkDerivation;
-    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   };
   octave-jit = callPackage ../development/interpreters/octave {
     python = python3;
     enableJIT = true;
     mkDerivation = stdenv.mkDerivation;
-    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   };
   octaveFull = libsForQt5.callPackage ../development/interpreters/octave {
     python = python3;
     enableQt = true;
     overridePlatforms = ["x86_64-linux" "x86_64-darwin"];
-    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   };
 
   ocropus = callPackage ../applications/misc/ocropus { };
@@ -10765,6 +10943,7 @@ in
   inherit (callPackage ../development/interpreters/ruby {
     inherit (darwin) libiconv libobjc libunwind;
     inherit (darwin.apple_sdk.frameworks) Foundation;
+    autoreconfHook = buildPackages.autoreconfHook269;
     bison = buildPackages.bison_3_5;
   })
     ruby_2_5
@@ -10962,15 +11141,6 @@ in
   ant = apacheAnt;
 
   apacheKafka = apacheKafka_2_5;
-  apacheKafka_0_9 = callPackage ../servers/apache-kafka { majorVersion = "0.9"; };
-  apacheKafka_0_10 = callPackage ../servers/apache-kafka { majorVersion = "0.10"; };
-  apacheKafka_0_11 = callPackage ../servers/apache-kafka { majorVersion = "0.11"; };
-  apacheKafka_1_0 = callPackage ../servers/apache-kafka { majorVersion = "1.0"; };
-  apacheKafka_1_1 = callPackage ../servers/apache-kafka { majorVersion = "1.1"; };
-  apacheKafka_2_0 = callPackage ../servers/apache-kafka { majorVersion = "2.0"; };
-  apacheKafka_2_1 = callPackage ../servers/apache-kafka { majorVersion = "2.1"; };
-  apacheKafka_2_2 = callPackage ../servers/apache-kafka { majorVersion = "2.2"; };
-  apacheKafka_2_3 = callPackage ../servers/apache-kafka { majorVersion = "2.3"; };
   apacheKafka_2_4 = callPackage ../servers/apache-kafka { majorVersion = "2.4"; };
   apacheKafka_2_5 = callPackage ../servers/apache-kafka { majorVersion = "2.5"; };
 
@@ -10993,12 +11163,14 @@ in
 
   autobuild = callPackage ../development/tools/misc/autobuild { };
 
-  autoconf = callPackage ../development/tools/misc/autoconf { };
+  autoconf = autoconf270;
 
   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 { };
 
   autocutsel = callPackage ../tools/X11/autocutsel{ };
 
@@ -11468,6 +11640,8 @@ in
 
   fffuu = haskell.lib.justStaticExecutables (haskellPackages.callPackage ../tools/misc/fffuu { });
 
+  ffuf = callPackage ../tools/security/ffuf { };
+
   flow = callPackage ../development/tools/analysis/flow {
     ocamlPackages = ocaml-ng.ocamlPackages_4_07;
     inherit (darwin.apple_sdk.frameworks) CoreServices;
@@ -11488,6 +11662,7 @@ in
 
   fswatch = callPackage ../development/tools/misc/fswatch {
     inherit (darwin.apple_sdk.frameworks) CoreServices;
+    autoreconfHook = buildPackages.autoreconfHook269;
   };
 
   fujprog = callPackage ../development/tools/misc/fujprog {
@@ -11847,7 +12022,9 @@ in
 
   opengrok = callPackage ../development/tools/misc/opengrok { };
 
-  openocd = callPackage ../development/tools/misc/openocd { };
+  openocd = callPackage ../development/tools/misc/openocd {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   oprofile = callPackage ../development/tools/profiling/oprofile {
     libiberty_static = libiberty.override { staticBuild = true; };
@@ -12208,6 +12385,8 @@ in
 
   universal-ctags = callPackage ../development/tools/misc/universal-ctags { };
 
+  unused = callPackage ../development/tools/misc/unused { };
+
   vagrant = callPackage ../development/tools/vagrant {};
 
   vala-language-server = callPackage ../development/tools/vala-language-server {};
@@ -12409,10 +12588,16 @@ in
     inherit (darwin.apple_sdk.frameworks) AudioUnit CoreServices;
   };
 
+  aws-c-cal = callPackage ../development/libraries/aws-c-cal {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   aws-c-common = callPackage ../development/libraries/aws-c-common { };
 
   aws-c-event-stream = callPackage ../development/libraries/aws-c-event-stream { };
 
+  aws-c-io = callPackage ../development/libraries/aws-c-io { };
+
   aws-checksums = callPackage ../development/libraries/aws-checksums { };
 
   aws-sdk-cpp = callPackage ../development/libraries/aws-sdk-cpp {
@@ -12443,9 +12628,13 @@ in
 
   belle-sip = callPackage ../development/libraries/belle-sip { };
 
-  libbfd = callPackage ../development/libraries/libbfd { };
+  libbfd = callPackage ../development/libraries/libbfd {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
-  libopcodes = callPackage ../development/libraries/libopcodes { };
+  libopcodes = callPackage ../development/libraries/libopcodes {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   bicpl = callPackage ../development/libraries/science/biology/bicpl { };
 
@@ -12477,7 +12666,8 @@ in
   boost172 = callPackage ../development/libraries/boost/1.72.nix { };
   boost173 = callPackage ../development/libraries/boost/1.73.nix { };
   boost174 = callPackage ../development/libraries/boost/1.74.nix { };
-  boost17x = boost174;
+  boost175 = callPackage ../development/libraries/boost/1.75.nix { };
+  boost17x = boost175;
   boost = boost16x;
 
   boost_process = callPackage ../development/libraries/boost-process { };
@@ -12506,7 +12696,7 @@ in
 
   hercules-ci-agent = callPackage ../development/tools/continuous-integration/hercules-ci-agent { };
 
-  niv = haskell.lib.justStaticExecutables haskellPackages.niv;
+  niv = lib.getBin (haskell.lib.justStaticExecutables haskellPackages.niv);
 
   ormolu = haskellPackages.ormolu.bin;
 
@@ -12705,7 +12895,9 @@ in
       inherit suidHelper serviceDirectories apparmor;
     };
 
-  dee = callPackage ../development/libraries/dee { };
+  dee = callPackage ../development/libraries/dee {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   dhex = callPackage ../applications/editors/dhex { };
 
@@ -12729,6 +12921,8 @@ in
 
   docopt_cpp = callPackage ../development/libraries/docopt_cpp { };
 
+  docopts = callPackage ../development/tools/misc/docopts { };
+
   dotconf = callPackage ../development/libraries/dotconf { };
 
   draco = callPackage ../development/libraries/draco { };
@@ -12750,6 +12944,8 @@ in
 
   duckdb = callPackage ../development/libraries/duckdb {};
 
+  duckstation = libsForQt5.callPackage ../misc/emulators/duckstation {};
+
   easyloggingpp = callPackage ../development/libraries/easyloggingpp {};
 
   eccodes = callPackage ../development/libraries/eccodes {
@@ -12781,6 +12977,8 @@ in
 
   enet = callPackage ../development/libraries/enet { };
 
+  entt = callPackage ../development/libraries/entt { };
+
   epoxy = callPackage ../development/libraries/epoxy {};
 
   libesmtp = callPackage ../development/libraries/libesmtp { };
@@ -12809,6 +13007,7 @@ in
     inherit (gst_all_1)
       gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad
       gst-libav;
+    autoreconfHook = buildPackages.autoreconfHook269;
   };
 
   fcgi = callPackage ../development/libraries/fcgi { };
@@ -13003,6 +13202,7 @@ in
 
   gdal = callPackage ../development/libraries/gdal {
     pythonPackages = python3Packages;
+    autoreconfHook = buildPackages.autoreconfHook269;
   };
 
   gdal_1_11 = callPackage ../development/libraries/gdal/gdal-1_11.nix { };
@@ -13049,9 +13249,11 @@ in
 
   gle = callPackage ../development/libraries/gle { };
 
-  glew = callPackage ../development/libraries/glew { };
+  glew = callPackage ../development/libraries/glew {
+    inherit (darwin.apple_sdk.frameworks) OpenGL;
+  };
   glew110 = callPackage ../development/libraries/glew/1.10.nix {
-    inherit (darwin.apple_sdk.frameworks) AGL;
+    inherit (darwin.apple_sdk.frameworks) AGL OpenGL;
   };
 
   glfw = glfw3;
@@ -13221,6 +13423,7 @@ in
   gnutls = callPackage ../development/libraries/gnutls/default.nix {
     inherit (darwin.apple_sdk.frameworks) Security;
     util-linux = util-linuxMinimal; # break the cyclic dependency
+    autoconf = buildPackages.autoconf269;
   };
 
   gnutls-kdh = callPackage ../development/libraries/gnutls-kdh/3.5.nix {
@@ -13403,6 +13606,7 @@ in
 
   heimdal = callPackage ../development/libraries/kerberos/heimdal.nix {
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Security SystemConfiguration;
+    autoreconfHook = buildPackages.autoreconfHook269;
   };
   libheimdal = heimdal;
 
@@ -13422,11 +13626,12 @@ in
 
   hdt = callPackage ../misc/hdt {};
 
-  herqq = libsForQt514.callPackage ../development/libraries/herqq { };
+  herqq = libsForQt5.callPackage ../development/libraries/herqq { };
 
   hidapi = callPackage ../development/libraries/hidapi {
     # TODO: remove once `udev` is `systemdMinimal` everywhere.
     udev = systemdMinimal;
+    autoreconfHook = buildPackages.autoreconfHook269;
   };
 
   highfive = callPackage ../development/libraries/highfive { };
@@ -13439,7 +13644,9 @@ in
 
   hiredis-vip = callPackage ../development/libraries/hiredis-vip { };
 
-  hivex = callPackage ../development/libraries/hivex { };
+  hivex = callPackage ../development/libraries/hivex {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   hound = callPackage ../development/tools/misc/hound { };
 
@@ -13564,6 +13771,8 @@ in
 
   indilib = callPackage ../development/libraries/indilib { };
 
+  inih = callPackage ../development/libraries/inih { };
+
   iniparser = callPackage ../development/libraries/iniparser { };
 
   intel-gmmlib = callPackage ../development/libraries/intel-gmmlib { };
@@ -13714,6 +13923,8 @@ in
 
   lib3mf = callPackage ../development/libraries/lib3mf { };
 
+  libAfterImage = callPackage ../development/libraries/libAfterImage { };
+
   libaacs = callPackage ../development/libraries/libaacs { };
 
   libaal = callPackage ../development/libraries/libaal { };
@@ -13752,7 +13963,9 @@ in
   libayatana-appindicator-gtk3 = libayatana-appindicator.override { gtkVersion = "3"; };
   libayatana-appindicator = callPackage ../development/libraries/libayatana-appindicator { };
 
-  libarchive = callPackage ../development/libraries/libarchive { };
+  libarchive = callPackage ../development/libraries/libarchive {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   libasr = callPackage ../development/libraries/libasr { };
 
@@ -13959,6 +14172,8 @@ in
 
   libdnet = callPackage ../development/libraries/libdnet { };
 
+  libdnf = callPackage ../tools/package-management/libdnf { };
+
   libdrm = callPackage ../development/libraries/libdrm { };
 
   libdv = callPackage ../development/libraries/libdv { };
@@ -13984,7 +14199,9 @@ in
 
   libe57format = callPackage ../development/libraries/libe57format { };
 
-  libeatmydata = callPackage ../development/libraries/libeatmydata { };
+  libeatmydata = callPackage ../development/libraries/libeatmydata {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   libeb = callPackage ../development/libraries/libeb { };
 
@@ -14165,7 +14382,9 @@ in
 
   libgpiod = callPackage ../development/libraries/libgpiod { };
 
-  libgpod = callPackage ../development/libraries/libgpod { };
+  libgpod = callPackage ../development/libraries/libgpod {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   libgssglue = callPackage ../development/libraries/libgssglue { };
 
@@ -14372,18 +14591,7 @@ in
 
   libjpeg_original = callPackage ../development/libraries/libjpeg { };
   # also known as libturbojpeg
-  libjpeg_turbo = callPackage ../development/libraries/libjpeg-turbo (lib.optionalAttrs stdenv.isDarwin {
-    # cmake 3.19.1 has a bug. So far only noticed with this package.
-    # https://github.com/NixOS/nixpkgs/issues/105854
-    cmake = cmake.overrideAttrs(oldAttrs: {
-      patches = oldAttrs.patches ++ [
-        (fetchpatch {
-          url = "https://gitlab.kitware.com/cmake/cmake/-/commit/fcabf4a47e0c441ff80fad8f34e388b16738bd33.patch";
-          sha256 = "bVrjY8omtAEKe8G76hGtmO54LKJvhx3RTW6OF6Y7rsU=";
-        })
-      ];
-    });
-  });
+  libjpeg_turbo = callPackage ../development/libraries/libjpeg-turbo { };
   libjpeg = libjpeg_turbo;
 
   libjreen = callPackage ../development/libraries/libjreen { };
@@ -14411,6 +14619,7 @@ in
   libmatchbox = callPackage ../development/libraries/libmatchbox { };
 
   libmatheval = callPackage ../development/libraries/libmatheval {
+    autoconf = buildPackages.autoconf269;
     guile = guile_2_0;
   };
 
@@ -14660,13 +14869,18 @@ in
 
   libtomcrypt = callPackage ../development/libraries/libtomcrypt { };
 
-  libtorrentRasterbar-1_2_x = callPackage ../development/libraries/libtorrent-rasterbar/1.2 {
+  libtorrent-rasterbar-2_0_x = callPackage ../development/libraries/libtorrent-rasterbar {
+    inherit (darwin.apple_sdk.frameworks) SystemConfiguration;
+    python = python3;
+  };
+
+  libtorrent-rasterbar-1_2_x = callPackage ../development/libraries/libtorrent-rasterbar/1.2.nix {
     inherit (darwin.apple_sdk.frameworks) SystemConfiguration;
   };
 
-  libtorrentRasterbar-1_1_x = callPackage ../development/libraries/libtorrent-rasterbar/1.1 { };
+  libtorrent-rasterbar-1_1_x = callPackage ../development/libraries/libtorrent-rasterbar/1.1.nix { };
 
-  libtorrentRasterbar = libtorrentRasterbar-1_2_x;
+  libtorrent-rasterbar = libtorrent-rasterbar-2_0_x;
 
   # this is still the new version of the old API
   libtoxcore-new = callPackage ../development/libraries/libtoxcore/new-api.nix { };
@@ -14740,6 +14954,8 @@ in
     inherit (darwin.apple_sdk.frameworks) ApplicationServices CoreServices;
   };
 
+  libuvc = callPackage ../development/libraries/libuvc { };
+
   libv4l = lowPrio (v4l-utils.override {
     withUtils = false;
   });
@@ -14933,6 +15149,8 @@ in
 
   mbedtls = callPackage ../development/libraries/mbedtls { };
 
+  mdctags = callPackage ../development/tools/misc/mdctags { };
+
   mdds = callPackage ../development/libraries/mdds { };
 
   mediastreamer = callPackage ../development/libraries/mediastreamer { };
@@ -14959,7 +15177,7 @@ in
   libGLU = mesa_glu;
 
   mesa = callPackage ../development/libraries/mesa {
-    llvmPackages = llvmPackages_9;
+    llvmPackages = llvmPackages_latest;
     inherit (darwin.apple_sdk.frameworks) OpenGL;
     inherit (darwin.apple_sdk.libs) Xplugin;
   };
@@ -15072,6 +15290,8 @@ in
 
   notify-sharp = callPackage ../development/libraries/notify-sharp { };
 
+  notcurses = callPackage ../development/libraries/notcurses { };
+
   ncurses5 = ncurses.override {
     abiVersion = "5";
   };
@@ -15425,6 +15645,8 @@ in
   gnupth = callPackage ../development/libraries/pth { };
   pth = if stdenv.hostPlatform.isMusl then npth else gnupth;
 
+  pslib = callPackage ../development/libraries/pslib { };
+
   pstreams = callPackage ../development/libraries/pstreams {};
 
   pugixml = callPackage ../development/libraries/pugixml { };
@@ -15448,7 +15670,7 @@ in
 
   qjson = callPackage ../development/libraries/qjson { };
 
-  qolibri = libsForQt514.callPackage ../applications/misc/qolibri { };
+  qolibri = libsForQt5.callPackage ../applications/misc/qolibri { };
 
   qt3 = callPackage ../development/libraries/qt-3 {
     libpng = libpng12;
@@ -15568,7 +15790,7 @@ in
       kwin kwrited milou oxygen plasma-browser-integration plasma-desktop
       plasma-integration plasma-nm plasma-pa plasma-thunderbolt plasma-vault plasma-workspace
       plasma-workspace-wallpapers polkit-kde-agent powerdevil sddm-kcm
-      systemsettings user-manager xdg-desktop-portal-kde
+      systemsettings xdg-desktop-portal-kde
     ;
 
     inherit ((plasma5.override { libsForQt5 = self; }).thirdParty)
@@ -15579,9 +15801,9 @@ in
 
     inherit (kdeApplications.override { libsForQt5 = self; })
       libkdcraw libkexiv2 libkipi libkomparediff2 libksane libkcddb akonadi-contacts
-      akonadi-calendar akonadi-notes akonadi-search kidentitymanagement kontactinterface
-      kldap akonadi akregator ark bomber bovo dolphin dragon elisa ffmpegthumbs filelight
-      granatier gwenview k3b kaddressbook kalzium kapptemplate kapman kate katomic
+      akonadi-calendar akonadi-notes akonadi-search kaccounts-integration kidentitymanagement
+      kontactinterface kldap akonadi akregator ark bomber bovo dolphin dragon elisa ffmpegthumbs
+      filelight granatier gwenview k3b kaddressbook kalzium kapptemplate kapman kate katomic
       kblackbox kblocks kbounce kcachegrind kcalc kcharselect kcolorchooser
       kdenlive kdf kdialog kdiamond keditbookmarks kfind kfloppy kget kgpg khelpcenter
       kig kigo killbots kitinerary kleopatra klettres klines kmag kmail kmines kmix kmplot
@@ -15628,6 +15850,8 @@ in
 
     kreport = callPackage ../development/libraries/kreport { };
 
+    kquickimageedit = callPackage ../development/libraries/kquickimageedit { };
+
     ldutils = callPackage ../development/libraries/ldutils { };
 
     libcommuni = callPackage ../development/libraries/libcommuni { };
@@ -15676,6 +15900,12 @@ in
       suffix = "qt5";
     };
 
+    poppler_0_61 = callPackage ../development/libraries/poppler/0.61.nix {
+      lcms = lcms2;
+      qt5Support = true;
+      suffix = "qt5";
+    };
+
     pulseaudio-qt = callPackage ../development/libraries/pulseaudio-qt { };
 
     qca-qt5 = callPackage ../development/libraries/qca-qt5 { };
@@ -15721,6 +15951,8 @@ in
     # Not a library, but we do want it to be built for every qt version there
     # is, to allow users to choose the right build if needed.
     sddm = callPackage ../applications/display-managers/sddm { };
+
+    signond = callPackage ../development/libraries/signond {};
   };
 
   qtEnv = qt5.env;
@@ -15867,7 +16099,9 @@ in
 
   sbc = callPackage ../development/libraries/sbc { };
 
-  schroedinger = callPackage ../development/libraries/schroedinger { };
+  schroedinger = callPackage ../development/libraries/schroedinger {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   SDL = callPackage ../development/libraries/SDL ({
     inherit (darwin.apple_sdk.frameworks) OpenGL CoreAudio CoreServices AudioUnit Kernel Cocoa;
@@ -15934,6 +16168,8 @@ in
 
   graphite2 = callPackage ../development/libraries/silgraphite/graphite2.nix {};
 
+  s2n = callPackage ../development/libraries/s2n { };
+
   simavr = callPackage ../development/tools/simavr {
     avrgcc = pkgsCross.avr.buildPackages.gcc;
     avrlibc = pkgsCross.avr.libcCross;
@@ -16001,6 +16237,8 @@ in
 
   soapyairspy = callPackage ../applications/radio/soapyairspy { };
 
+  soapyaudio = callPackage ../applications/radio/soapyaudio { };
+
   soapybladerf = callPackage ../applications/radio/soapybladerf { };
 
   soapyhackrf = callPackage ../applications/radio/soapyhackrf { };
@@ -16013,6 +16251,7 @@ in
     extraPackages = [
       limesuite
       soapyairspy
+      soapyaudio
       soapybladerf
       soapyhackrf
       soapyremote
@@ -16144,6 +16383,8 @@ in
 
   steghide = callPackage ../tools/security/steghide {};
 
+  stegseek = callPackage ../tools/security/stegseek {};
+
   stlport = callPackage ../development/libraries/stlport { };
 
   streamlink = callPackage ../applications/video/streamlink { pythonPackages = python3Packages; };
@@ -16168,10 +16409,6 @@ in
     python = python3;
   };
 
-  sundials_2 = callPackage ../development/libraries/sundials/2.x.nix {
-    python = python3;
-  };
-
   sutils = callPackage ../tools/misc/sutils { };
 
   svrcore = callPackage ../development/libraries/svrcore { };
@@ -16198,9 +16435,7 @@ in
 
   taglib-sharp = callPackage ../development/libraries/taglib-sharp { };
 
-  talloc = callPackage ../development/libraries/talloc {
-    wafHook = wafHook.override { python = python3; };
-  };
+  talloc = callPackage ../development/libraries/talloc { };
 
   tclap = callPackage ../development/libraries/tclap {};
 
@@ -16283,7 +16518,9 @@ in
 
   totem-pl-parser = callPackage ../development/libraries/totem-pl-parser { };
 
-  tpm2-tss = callPackage ../development/libraries/tpm2-tss { };
+  tpm2-tss = callPackage ../development/libraries/tpm2-tss {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   tremor = callPackage ../development/libraries/tremor { };
 
@@ -16384,16 +16621,14 @@ in
 
   vte_290 = callPackage ../development/libraries/vte/2.90.nix { };
 
-  vtk = callPackage ../development/libraries/vtk {
+  vtk_7 = libsForQt515.callPackage ../development/libraries/vtk/7.x.nix {
     inherit (darwin) libobjc;
     inherit (darwin.apple_sdk.libs) xpc;
     inherit (darwin.apple_sdk.frameworks) Cocoa CoreServices DiskArbitration
                                           IOKit CFNetwork Security ApplicationServices
                                           CoreText IOSurface ImageIO OpenGL GLUT;
   };
-
-  vtk_7 = callPackage ../development/libraries/vtk/7.x.nix {
-    stdenv = if stdenv.isDarwin then stdenv else gcc8Stdenv;
+  vtk_8 = libsForQt515.callPackage ../development/libraries/vtk/8.x.nix {
     inherit (darwin) libobjc;
     inherit (darwin.apple_sdk.libs) xpc;
     inherit (darwin.apple_sdk.frameworks) Cocoa CoreServices DiskArbitration
@@ -16409,6 +16644,9 @@ in
                                           CoreText IOSurface ImageIO OpenGL GLUT;
   };
 
+  vtk = vtk_8;
+  vtkWithQt5 = vtk.override { enableQt = true; };
+
   vulkan-extension-layer = callPackage ../tools/graphics/vulkan-extension-layer { };
   vulkan-headers = callPackage ../development/libraries/vulkan-headers { };
   vulkan-loader = callPackage ../development/libraries/vulkan-loader { };
@@ -16416,8 +16654,6 @@ in
   vulkan-tools-lunarg = callPackage ../tools/graphics/vulkan-tools-lunarg { };
   vulkan-validation-layers = callPackage ../development/tools/vulkan-validation-layers { };
 
-  vtkWithQt5 = vtk.override { qtLib = qt514; };
-
   vxl = callPackage ../development/libraries/vxl {
     libpng = libpng12;
     stdenv = gcc6Stdenv; # upstream code incompatible with gcc7
@@ -16426,6 +16662,7 @@ in
   waffle = callPackage ../development/libraries/waffle { };
 
   wally-cli = callPackage ../development/tools/wally-cli { };
+  zsa-udev-rules = callPackage ../os-specific/linux/zsa-udev-rules { };
 
   wavpack = callPackage ../development/libraries/wavpack { };
 
@@ -16531,6 +16768,8 @@ in
 
   xdo = callPackage ../tools/misc/xdo { };
 
+  xed = callPackage ../development/libraries/xed { };
+
   xineLib = callPackage ../development/libraries/xine-lib { };
 
   xautolock = callPackage ../misc/screensavers/xautolock { };
@@ -16616,8 +16855,10 @@ in
 
   zmqpp = callPackage ../development/libraries/zmqpp { };
 
+  libzra = callPackage ../development/libraries/libzra { };
+
   zig = callPackage ../development/compilers/zig {
-    llvmPackages = llvmPackages_10;
+    llvmPackages = llvmPackages_11;
   };
 
   zimlib = callPackage ../development/libraries/zimlib { };
@@ -16803,17 +17044,13 @@ in
 
   perlcritic = perlPackages.PerlCritic;
 
-  sqitchMysql = callPackage ../development/tools/misc/sqitch {
-    name = "sqitch-mysql";
-    databaseModule = perlPackages.DBDmysql;
-    sqitchModule = perlPackages.AppSqitch;
-  };
+  sqitchMysql = (callPackage ../development/tools/misc/sqitch {
+    mysqlSupport = true;
+  }).overrideAttrs (oldAttrs: { pname = "sqitch-mysql"; });
 
-  sqitchPg = callPackage ../development/tools/misc/sqitch {
-    name = "sqitch-pg";
-    databaseModule = perlPackages.DBDPg;
-    sqitchModule = perlPackages.AppSqitch;
-  };
+  sqitchPg = (callPackage ../development/tools/misc/sqitch {
+    postgresqlSupport = true;
+  }).overrideAttrs (oldAttrs: { pname = "sqitch-pg"; });
 
   ### DEVELOPMENT / R MODULES
 
@@ -16954,7 +17191,9 @@ in
 
   cayley = callPackage ../servers/cayley { };
 
-  charybdis = callPackage ../servers/irc/charybdis { };
+  charybdis = callPackage ../servers/irc/charybdis {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   clamsmtp = callPackage ../servers/mail/clamsmtp { };
 
@@ -17000,6 +17239,8 @@ in
 
   diod = callPackage ../servers/diod { lua = lua5_1; };
 
+  directx-shader-compiler = callPackage ../tools/graphics/directx-shader-compiler {};
+
   dkimproxy = callPackage ../servers/mail/dkimproxy { };
 
   do-agent = callPackage ../servers/monitoring/do-agent { };
@@ -17077,11 +17318,14 @@ in
   gofish = callPackage ../servers/gopher/gofish { };
 
   grafana = callPackage ../servers/monitoring/grafana { };
+  grafanaPlugins = dontRecurseIntoAttrs (callPackage ../servers/monitoring/grafana/plugins { });
 
   grafana-loki = callPackage ../servers/monitoring/loki { };
 
   grafana_reporter = callPackage ../servers/monitoring/grafana-reporter { };
 
+  grafana-image-renderer = callPackage ../servers/monitoring/grafana-image-renderer { };
+
   gerbera = callPackage ../servers/gerbera {};
 
   gobetween = callPackage ../servers/gobetween { };
@@ -17112,6 +17356,8 @@ in
 
   hydron = callPackage ../servers/hydron { };
 
+  icecream = callPackage ../servers/icecream { };
+
   icingaweb2 = callPackage ../servers/icingaweb2 { };
   icingaweb2Modules = {
     theme-april = callPackage ../servers/icingaweb2/theme-april { };
@@ -17237,9 +17483,7 @@ in
 
   unit = callPackage ../servers/http/unit { };
 
-  ncdns = callPackage ../servers/dns/ncdns {
-    buildGoPackage = buildGo114Package;
-  };
+  ncdns = callPackage ../servers/dns/ncdns { };
 
   nginx = nginxStable;
 
@@ -17333,9 +17577,13 @@ in
     inherit (darwin.apple_sdk.frameworks) CoreServices AudioUnit Cocoa;
   };
 
-  pulseaudio = callPackage ../servers/pulseaudio {
+  pulseaudio = callPackage ../servers/pulseaudio ({
     inherit (darwin.apple_sdk.frameworks) CoreServices AudioUnit Cocoa;
-  };
+  } // stdenv.lib.optionalAttrs stdenv.isDarwin {
+    # Default autoreconfHook (2.70) fails on darwin,
+    # with "configure: error: *** Compiler does not support -std=gnu11"
+    autoreconfHook = buildPackages.autoreconfHook269;
+  });
 
   qpaeq = libsForQt5.callPackage ../servers/pulseaudio/qpaeq.nix { };
 
@@ -17554,6 +17802,7 @@ in
   prometheus-apcupsd-exporter = callPackage ../servers/monitoring/prometheus/apcupsd-exporter.nix { };
   prometheus-aws-s3-exporter = callPackage ../servers/monitoring/prometheus/aws-s3-exporter.nix { };
   prometheus-bind-exporter = callPackage ../servers/monitoring/prometheus/bind-exporter.nix { };
+  prometheus-bird-exporter = callPackage ../servers/monitoring/prometheus/bird-exporter.nix { };
   prometheus-blackbox-exporter = callPackage ../servers/monitoring/prometheus/blackbox-exporter.nix { };
   prometheus-collectd-exporter = callPackage ../servers/monitoring/prometheus/collectd-exporter.nix { };
   prometheus-cups-exporter = callPackage ../servers/monitoring/prometheus/cups-exporter.nix { };
@@ -17584,6 +17833,7 @@ 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-smokeping-prober = callPackage ../servers/monitoring/prometheus/smokeping-prober.nix { };
   prometheus-snmp-exporter = callPackage ../servers/monitoring/prometheus/snmp-exporter.nix { };
   prometheus-sql-exporter = callPackage ../servers/monitoring/prometheus/sql-exporter.nix { };
   prometheus-tor-exporter = callPackage ../servers/monitoring/prometheus/tor-exporter.nix { };
@@ -17770,7 +18020,9 @@ in
 
   tomcat_mysql_jdbc = callPackage ../servers/http/tomcat/jdbc/mysql { };
 
-  torque = callPackage ../servers/computing/torque { };
+  torque = callPackage ../servers/computing/torque {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   tt-rss = callPackage ../servers/tt-rss { };
   tt-rss-plugin-ff-instagram = callPackage ../servers/tt-rss/plugin-ff-instagram { };
@@ -17796,9 +18048,9 @@ in
 
   inherit (callPackages ../servers/unifi { })
     unifiLTS
-    unifiStable
-    unifiBeta;
-  unifi = unifiStable;
+    unifi5
+    unifi6;
+  unifi = unifi6;
 
   urserver = callPackage ../servers/urserver { };
 
@@ -18015,7 +18267,9 @@ in
 
   cpufrequtils = callPackage ../os-specific/linux/cpufrequtils { };
 
-  cpuset = callPackage ../os-specific/linux/cpuset { };
+  cpuset = callPackage ../os-specific/linux/cpuset {
+    pythonPackages = python3Packages;
+  };
 
   criu = callPackage ../os-specific/linux/criu { };
 
@@ -18058,6 +18312,8 @@ in
 
   dstat = callPackage ../os-specific/linux/dstat { };
 
+  erofs-utils = callPackage ../os-specific/linux/erofs-utils { };
+
   # unstable until the first 1.x release
   fscrypt-experimental = callPackage ../os-specific/linux/fscrypt { };
   fscryptctl-experimental = callPackage ../os-specific/linux/fscryptctl { };
@@ -18358,6 +18614,7 @@ in
     kernelPatches = [
       kernelPatches.bridge_stp_helper
       kernelPatches.request_key_helper
+      kernelPatches.rtl8761b_support
       kernelPatches.export_kernel_fpu_functions."5.3"
     ];
   };
@@ -18407,6 +18664,7 @@ in
     kernelPatches = [
       kernelPatches.bridge_stp_helper
       kernelPatches.request_key_helper
+      kernelPatches.wireless_syntax_error
     ];
   };
 
@@ -18433,6 +18691,14 @@ in
     ];
   };
 
+  linux_lqx = callPackage ../os-specific/linux/kernel/linux-lqx.nix {
+    kernelPatches = [
+      kernelPatches.bridge_stp_helper
+      kernelPatches.request_key_helper
+      kernelPatches.export_kernel_fpu_functions."5.3"
+    ];
+  };
+
   /* 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
@@ -18709,7 +18975,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_9;
+      linux_latest_for_hardened = pkgs.linux_5_10;
       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 {
@@ -18747,6 +19013,7 @@ in
 
   # zen-kernel
   linuxPackages_zen = recurseIntoAttrs (linuxPackagesFor pkgs.linux_zen);
+  linuxPackages_lqx = recurseIntoAttrs (linuxPackagesFor pkgs.linux_lqx);
 
   # A function to build a manually-configured kernel
   linuxManualConfig = makeOverridable (callPackage ../os-specific/linux/kernel/manual-config.nix {});
@@ -18809,6 +19076,8 @@ in
 
   libsmbios = callPackage ../os-specific/linux/libsmbios { };
 
+  libsurvive = callPackage ../development/libraries/libsurvive { };
+
   lm_sensors = callPackage ../os-specific/linux/lm-sensors { };
 
   lockdep = callPackage ../os-specific/linux/lockdep { };
@@ -18917,6 +19186,8 @@ in
 
   go-bindata-assetfs = callPackage ../development/tools/go-bindata-assetfs { };
 
+  go-minimock = callPackage ../development/tools/go-minimock { };
+
   go-protobuf = callPackage ../development/tools/go-protobuf { };
 
   go-symbols = callPackage ../development/tools/go-symbols { };
@@ -19094,7 +19365,7 @@ in
 
   raspberrypi-eeprom = callPackage ../os-specific/linux/raspberrypi-eeprom {};
 
-  raspberrypi-tools = callPackage ../os-specific/linux/firmware/raspberrypi/tools.nix {};
+  raspberrypi-armstubs = callPackage ../os-specific/linux/firmware/raspberrypi/armstubs.nix {};
 
   regionset = callPackage ../os-specific/linux/regionset { };
 
@@ -19114,6 +19385,8 @@ in
 
   rtl8723bs-firmware = callPackage ../os-specific/linux/firmware/rtl8723bs-firmware { };
 
+  rtl8761b-firmware = callPackage ../os-specific/linux/firmware/rtl8761b-firmware { };
+
   rtlwifi_new-firmware = callPackage ../os-specific/linux/firmware/rtlwifi_new-firmware { };
 
   s3ql = callPackage ../tools/backup/s3ql { };
@@ -19128,7 +19401,7 @@ in
 
   sdparm = callPackage ../os-specific/linux/sdparm { };
 
-  sdrangel = libsForQt512.callPackage ../applications/radio/sdrangel {  };
+  sdrangel = libsForQt5.callPackage ../applications/radio/sdrangel {  };
 
   sepolgen = callPackage ../os-specific/linux/sepolgen { };
 
@@ -19279,6 +19552,8 @@ in
     ubootRaspberryPi2
     ubootRaspberryPi3_32bit
     ubootRaspberryPi3_64bit
+    ubootRaspberryPi4_32bit
+    ubootRaspberryPi4_64bit
     ubootRaspberryPiZero
     ubootRock64
     ubootRockPi4
@@ -19722,6 +19997,10 @@ in
 
   kopia = callPackage ../tools/backup/kopia { };
 
+  kora-icon-theme = callPackage ../data/icons/kora-icon-theme {
+    inherit (kdeFrameworks) breeze-icons;
+  };
+
   koreader = callPackage ../applications/misc/koreader {};
 
   lato = callPackage ../data/fonts/lato {};
@@ -19812,6 +20091,8 @@ in
 
   meslo-lg = callPackage ../data/fonts/meslo-lg {};
 
+  meslo-lgs-nf = callPackage ../data/fonts/meslo-lgs-nf {};
+
   migmix = callPackage ../data/fonts/migmix {};
 
   migu = callPackage ../data/fonts/migu {};
@@ -19856,6 +20137,8 @@ in
 
   national-park-typeface = callPackage ../data/fonts/national-park { };
 
+  netease-music-tui = callPackage ../applications/audio/netease-music-tui { };
+
   nordic = callPackage ../data/themes/nordic { };
 
   nordic-polar = callPackage ../data/themes/nordic-polar { };
@@ -19865,6 +20148,8 @@ in
 
   nuclear = callPackage ../applications/audio/nuclear { };
 
+  nuclei = callPackage ../tools/security/nuclei { };
+
   nullmailer = callPackage ../servers/mail/nullmailer {
     stdenv = gccStdenv;
   };
@@ -20475,7 +20760,7 @@ in
 
   bevelbar = callPackage ../applications/window-managers/bevelbar { };
 
-  bibletime = libsForQt514.callPackage ../applications/misc/bibletime { };
+  bibletime = libsForQt5.callPackage ../applications/misc/bibletime { };
 
   bino3d = libsForQt5.callPackage ../applications/video/bino3d {
     glew = glew110;
@@ -20508,9 +20793,8 @@ in
   bitwig-studio2 =  callPackage ../applications/audio/bitwig-studio/bitwig-studio2.nix {
     inherit (pkgs) bitwig-studio1;
   };
-  bitwig-studio3 =  callPackage ../applications/audio/bitwig-studio/bitwig-studio3.nix {
-    inherit (pkgs) bitwig-studio1;
-  };
+  bitwig-studio3 =  callPackage ../applications/audio/bitwig-studio/bitwig-studio3.nix { };
+
   bitwig-studio = bitwig-studio3;
 
   bgpdump = callPackage ../tools/networking/bgpdump { };
@@ -20561,8 +20845,6 @@ in
 
   bristol = callPackage ../applications/audio/bristol { };
 
-  bs1770gain = callPackage ../applications/audio/bs1770gain { };
-
   bjumblr = callPackage ../applications/audio/bjumblr { };
 
   bschaffl = callPackage ../applications/audio/bschaffl { };
@@ -20597,13 +20879,10 @@ in
 
   calibre = calibre-py3;
 
-  calligra = libsForQt514.callPackage ../applications/office/calligra {
+  calligra = libsForQt5.callPackage ../applications/office/calligra {
     openjpeg = openjpeg_1;
-    poppler = poppler_0_61.override {
-      qt5Support = true;
-      # Must be using the same qt version as calligra itself.
-      qtbase = qt514.qtbase;
-    };
+    # Must use the same Qt version as Calligra itself:
+    poppler = libsForQt5.poppler_0_61;
   };
 
   perkeep = callPackage ../applications/misc/perkeep { };
@@ -20839,7 +21118,7 @@ in
 
   dfasma = libsForQt5.callPackage ../applications/audio/dfasma { };
 
-  dfilemanager = libsForQt514.callPackage ../applications/misc/dfilemanager { };
+  dfilemanager = libsForQt5.callPackage ../applications/misc/dfilemanager { };
 
   dia = callPackage ../applications/graphics/dia {
     inherit (pkgs.gnome2) libart_lgpl libgnomeui;
@@ -20987,7 +21266,11 @@ in
 
   elf-dissector = libsForQt5.callPackage ../applications/misc/elf-dissector { };
 
-  elinks = callPackage ../applications/networking/browsers/elinks { };
+  elfx86exts = callPackage ../applications/misc/elfx86exts { };
+
+  elinks = callPackage ../applications/networking/browsers/elinks {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   elvis = callPackage ../applications/editors/elvis { };
 
@@ -21113,7 +21396,7 @@ in
 
   etherape = callPackage ../applications/networking/sniffers/etherape { };
 
-  evilpixie = libsForQt514.callPackage ../applications/graphics/evilpixie { };
+  evilpixie = libsForQt5.callPackage ../applications/graphics/evilpixie { };
 
   exercism = callPackage ../applications/misc/exercism { };
 
@@ -21231,7 +21514,9 @@ in
 
   fritzing = libsForQt5.callPackage ../applications/science/electronics/fritzing { };
 
-  fsv = callPackage ../applications/misc/fsv { };
+  fsv = callPackage ../applications/misc/fsv {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   ft2-clone = callPackage ../applications/audio/ft2-clone { };
 
@@ -21425,12 +21710,16 @@ in
 
   wireshark = callPackage ../applications/networking/sniffers/wireshark {
     inherit (darwin.apple_sdk.frameworks) ApplicationServices SystemConfiguration;
+    libpcap = libpcap.override { withBluez = stdenv.isLinux; };
   };
   wireshark-qt = wireshark;
 
   # The GTK UI is deprecated by upstream. You probably want the QT version.
   wireshark-gtk = throw "wireshark-gtk is not supported anymore. Use wireshark-qt or wireshark-cli instead.";
-  wireshark-cli = wireshark.override { withQt = false; };
+  wireshark-cli = wireshark.override {
+    withQt = false;
+    libpcap = libpcap.override { withBluez = stdenv.isLinux; };
+  };
 
   sngrep = callPackage ../applications/networking/sniffers/sngrep {};
 
@@ -21577,6 +21866,7 @@ in
   getxbook = callPackage ../applications/misc/getxbook { };
 
   gimp = callPackage ../applications/graphics/gimp {
+    autoreconfHook = buildPackages.autoreconfHook269;
     gegl = gegl_0_4;
     lcms = lcms2;
     inherit (darwin.apple_sdk.frameworks) AppKit Cocoa;
@@ -21612,7 +21902,9 @@ in
 
   gitolite = callPackage ../applications/version-management/gitolite { };
 
-  gitoxide = callPackage ../applications/version-management/gitoxide { };
+  gitoxide = callPackage ../applications/version-management/gitoxide {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   inherit (gnome3) gitg;
 
@@ -21628,6 +21920,7 @@ in
   };
 
   jetbrains = (recurseIntoAttrs (callPackages ../applications/editors/jetbrains {
+    vmopts = config.jetbrains.vmopts or null;
     jdk = jetbrains.jdk;
   }) // {
     jdk = callPackage ../development/compilers/jetbrains-jdk {  };
@@ -21657,7 +21950,7 @@ in
 
   manul = callPackage ../development/tools/manul { };
 
-  mindforger = libsForQt514.callPackage ../applications/editors/mindforger { };
+  mindforger = libsForQt5.callPackage ../applications/editors/mindforger { };
 
   mi2ly = callPackage ../applications/audio/mi2ly {};
 
@@ -21727,6 +22020,8 @@ in
     java = if stdenv.isLinux then jre else jdk;
   };
 
+  qrcodegen = callPackage ../development/libraries/qrcodegen { };
+
   qrencode = callPackage ../development/libraries/qrencode { };
 
   geeqie = callPackage ../applications/graphics/geeqie { };
@@ -21832,6 +22127,8 @@ in
 
   heme = callPackage ../applications/editors/heme { };
 
+  herbe = callPackage ../applications/misc/herbe { };
+
   herbstluftwm = callPackage ../applications/window-managers/herbstluftwm {
     asciidoc = asciidoc-full;
   };
@@ -21948,8 +22245,6 @@ in
 
   spectrwm = callPackage ../applications/window-managers/spectrwm { };
 
-  spectral = qt5.callPackage ../applications/networking/instant-messengers/spectral { };
-
   spotify-cli-linux = callPackage ../applications/audio/spotify-cli-linux { };
 
   spotifyd = callPackage ../applications/audio/spotifyd {
@@ -21975,6 +22270,8 @@ in
 
   swaylock-effects = callPackage ../applications/window-managers/sway/lock-effects.nix { };
 
+  tiramisu = callPackage ../applications/misc/tiramisu { };
+
   waybar = callPackage ../applications/misc/waybar {};
 
   hikari = callPackage ../applications/window-managers/hikari { };
@@ -21987,10 +22284,14 @@ in
 
   i3altlayout = callPackage ../applications/window-managers/i3/altlayout.nix { };
 
+  i3-balance-workspace = python3Packages.callPackage ../applications/window-managers/i3/balance-workspace.nix { };
+
   i3-easyfocus = callPackage ../applications/window-managers/i3/easyfocus.nix { };
 
   i3-layout-manager = callPackage ../applications/window-managers/i3/layout-manager.nix { };
 
+  i3-resurrect = python3Packages.callPackage ../applications/window-managers/i3/i3-resurrect.nix { };
+
   i3blocks = callPackage ../applications/window-managers/i3/blocks.nix { };
 
   i3blocks-gaps = callPackage ../applications/window-managers/i3/blocks-gaps.nix { };
@@ -22272,14 +22573,14 @@ in
 
   k4dirstat = libsForQt5.callPackage ../applications/misc/k4dirstat { };
 
-  kdevelop-pg-qt = libsForQt514.callPackage ../applications/editors/kdevelop5/kdevelop-pg-qt.nix { };
+  kdevelop-pg-qt = libsForQt5.callPackage ../applications/editors/kdevelop5/kdevelop-pg-qt.nix { };
 
-  kdevelop-unwrapped = libsForQt514.callPackage ../applications/editors/kdevelop5/kdevelop.nix {
+  kdevelop-unwrapped = libsForQt5.callPackage ../applications/editors/kdevelop5/kdevelop.nix {
     llvmPackages = llvmPackages_10;
   };
 
-  kdev-php = libsForQt514.callPackage ../applications/editors/kdevelop5/kdev-php.nix { };
-  kdev-python = libsForQt514.callPackage ../applications/editors/kdevelop5/kdev-python.nix {
+  kdev-php = libsForQt5.callPackage ../applications/editors/kdevelop5/kdev-php.nix { };
+  kdev-python = libsForQt5.callPackage ../applications/editors/kdevelop5/kdev-python.nix {
     python = python3;
   };
 
@@ -22472,6 +22773,7 @@ in
   libreoffice-still = lowPrio (callPackage ../applications/office/libreoffice/wrapper.nix {
     libreoffice = callPackage ../applications/office/libreoffice
       (libreoffice-args // {
+        stdenv = gcc9Stdenv; # Fails in multiple ways with gcc10
         icu = icu64;
         variant = "still";
         jdk = jdk8;
@@ -22646,6 +22948,8 @@ in
 
   mda_lv2 = callPackage ../applications/audio/mda-lv2 { };
 
+  mediaelch = libsForQt5.callPackage ../applications/misc/mediaelch { };
+
   mediainfo = callPackage ../applications/misc/mediainfo { };
 
   mediainfo-gui = callPackage ../applications/misc/mediainfo-gui { };
@@ -22680,14 +22984,15 @@ in
 
   mercurialFull = appendToName "full" (pkgs.mercurial.override { guiSupport = true; });
 
-  # Needs qtwebkit which is broken on qt5.15
-  merkaartor = libsForQt514.callPackage ../applications/misc/merkaartor { };
+  merkaartor = libsForQt5.callPackage ../applications/misc/merkaartor { };
 
   meshlab = libsForQt5.callPackage ../applications/graphics/meshlab { };
 
   metersLv2 = callPackage ../applications/audio/meters_lv2 { };
 
-  mhwaveedit = callPackage ../applications/audio/mhwaveedit {};
+  mhwaveedit = callPackage ../applications/audio/mhwaveedit {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   michabo = libsForQt5.callPackage ../applications/misc/michabo { };
 
@@ -22790,6 +23095,7 @@ in
     mopidy-mpd
     mopidy-mpris
     mopidy-musicbox-webclient
+    mopidy-scrobbler
     mopidy-somafm
     mopidy-soundcloud
     mopidy-spotify
@@ -22910,14 +23216,16 @@ in
       else null;
   };
 
-  mup = callPackage ../applications/audio/mup { };
+  mup = callPackage ../applications/audio/mup {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   # TODO: we should probably merge these 2
   musescore =
     if stdenv.isDarwin then
       callPackage ../applications/audio/musescore/darwin.nix { }
     else
-      libsForQt5.callPackage ../applications/audio/musescore { };
+      libsForQt514.callPackage ../applications/audio/musescore { };
 
   mmh = callPackage ../applications/networking/mailreaders/mmh { };
   mutt = callPackage ../applications/networking/mailreaders/mutt { };
@@ -23072,6 +23380,8 @@ in
 
   station = callPackage ../applications/networking/station { };
 
+  stochas = callPackage ../applications/audio/stochas { };
+
   synapse = callPackage ../applications/misc/synapse { };
 
   synapse-bt = callPackage ../applications/networking/p2p/synapse-bt {
@@ -23092,6 +23402,8 @@ in
 
   sawfish = callPackage ../applications/window-managers/sawfish { };
 
+  sc68 = callPackage ../applications/audio/sc68 { };
+
   sidplayfp = callPackage ../applications/audio/sidplayfp { };
 
   sndpeek = callPackage ../applications/audio/sndpeek { };
@@ -23104,6 +23416,7 @@ in
 
   msmtp = callPackage ../applications/networking/msmtp {
     inherit (darwin.apple_sdk.frameworks) Security;
+    autoreconfHook = buildPackages.autoreconfHook269;
   };
 
   imapfilter = callPackage ../applications/networking/mailreaders/imapfilter.nix {
@@ -23174,7 +23487,7 @@ in
 
   nedit = callPackage ../applications/editors/nedit { };
 
-  ngt = callPackage ../development/libraries/ngt { enableAVX = false; };
+  ngt = callPackage ../development/libraries/ngt { };
 
   nheko = libsForQt5.callPackage ../applications/networking/instant-messengers/nheko { };
 
@@ -23265,6 +23578,11 @@ in
     libtiff = callPackage ../applications/graphics/opentoonz/libtiff.nix { };
   })).callPackage ../applications/graphics/opentoonz { };
 
+  opentabletdriver = callPackage ../tools/X11/opentabletdriver {
+    dotnet-sdk = dotnetCorePackages.sdk_5_0;
+    dotnet-netcore = dotnetCorePackages.net_5_0;
+  };
+
   opentx = libsForQt5.callPackage ../applications/misc/opentx { };
 
   opera = callPackage ../applications/networking/browsers/opera {};
@@ -23497,6 +23815,7 @@ in
 
   plexamp = callPackage ../applications/audio/plexamp { };
 
+  # Upstream says it supports only qt5.9 which is not packaged, and building with qt newer than 5.12 fails
   plex-media-player = libsForQt512.callPackage ../applications/video/plex-media-player { };
 
   plex-mpv-shim = python3Packages.callPackage ../applications/video/plex-mpv-shim { };
@@ -23804,7 +24123,9 @@ in
 
   rkdeveloptool = callPackage ../misc/rkdeveloptool { };
 
-  rofi-unwrapped = callPackage ../applications/misc/rofi { };
+  rofi-unwrapped = callPackage ../applications/misc/rofi {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
   rofi = callPackage ../applications/misc/rofi/wrapper.nix { };
 
   rofi-pass = callPackage ../tools/security/pass/rofi-pass.nix { };
@@ -23872,7 +24193,7 @@ in
 
   scribusUnstable = libsForQt5.callPackage ../applications/office/scribus/unstable.nix { };
 
-  seafile-client = libsForQt514.callPackage ../applications/networking/seafile-client { };
+  seafile-client = libsForQt5.callPackage ../applications/networking/seafile-client { };
 
   sent = callPackage ../applications/misc/sent { };
 
@@ -24078,7 +24399,9 @@ in
 
   soxr = callPackage ../applications/misc/audio/soxr { };
 
-  spek = callPackage ../applications/audio/spek { };
+  spek = callPackage ../applications/audio/spek {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   spotify-unwrapped = callPackage ../applications/audio/spotify {
     libgcrypt = libgcrypt_1_5;
@@ -24110,7 +24433,9 @@ in
 
   sslyze = with python3Packages; toPythonApplication sslyze;
 
-  ssr = callPackage ../applications/audio/soundscape-renderer {};
+  ssr = callPackage ../applications/audio/soundscape-renderer {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   ssrc = callPackage ../applications/audio/ssrc { };
 
@@ -24431,7 +24756,7 @@ in
 
   tribler = callPackage ../applications/networking/p2p/tribler { };
 
-  trojita = libsForQt514.callPackage ../applications/networking/mailreaders/trojita { };
+  trojita = libsForQt5.callPackage ../applications/networking/mailreaders/trojita { };
 
   tudu = callPackage ../applications/office/tudu { };
 
@@ -24453,6 +24778,10 @@ in
 
   twinkle = qt5.callPackage ../applications/networking/instant-messengers/twinkle { };
 
+  terminal-typeracer = callPackage ../applications/misc/terminal-typeracer {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   ueberzug = with python3Packages; toPythonApplication ueberzug;
 
   uhhyou.lv2 = callPackage ../applications/audio/uhhyou.lv2 { };
@@ -24464,7 +24793,10 @@ in
   uefitoolPackages = recurseIntoAttrs (callPackage ../tools/system/uefitool/variants.nix {});
   uefitool = uefitoolPackages.new-engine;
 
-  ungoogled-chromium = callPackage ../applications/networking/browsers/ungoogled-chromium (config.chromium or {});
+  ungoogled-chromium = callPackage ../applications/networking/browsers/chromium ((config.chromium or {}) // {
+    ungoogled = true;
+    channel = "ungoogled-chromium";
+  });
 
   unigine-valley = callPackage ../applications/graphics/unigine-valley { };
 
@@ -24493,7 +24825,9 @@ in
 
   vbindiff = callPackage ../applications/editors/vbindiff { };
 
-  vcprompt = callPackage ../applications/version-management/vcprompt { };
+  vcprompt = callPackage ../applications/version-management/vcprompt {
+    autoconf = buildPackages.autoconf269;
+  };
 
   vcs = callPackage ../applications/video/vcs { };
 
@@ -24701,6 +25035,8 @@ in
 
   vym = qt5.callPackage ../applications/misc/vym { };
 
+  wad = python3Packages.callPackage ../tools/security/wad { };
+
   waon = callPackage ../applications/audio/waon { };
 
   w3m = callPackage ../applications/networking/browsers/w3m { };
@@ -24735,6 +25071,14 @@ in
   way-cooler = throw ("way-cooler is abandoned by its author: " +
     "https://way-cooler.org/blog/2020/01/09/way-cooler-post-mortem.html");
 
+  wayfireApplications = wayfireApplications-unwrapped.withPlugins (plugins: [ plugins.wf-shell ]);
+  inherit (wayfireApplications) wayfire wcm;
+  wayfireApplications-unwrapped = callPackage ../applications/window-managers/wayfire/applications.nix { };
+  wayfirePlugins = callPackage ../applications/window-managers/wayfire/plugins.nix {
+    inherit (wayfireApplications-unwrapped) wayfire;
+  };
+  wf-config = callPackage ../applications/window-managers/wayfire/wf-config.nix { };
+
   waypipe = callPackage ../applications/networking/remote/waypipe { };
 
   wayv = callPackage ../tools/X11/wayv {};
@@ -24774,6 +25118,8 @@ in
 
   weston = callPackage ../applications/window-managers/weston { pipewire = pipewire_0_2; };
 
+  wio = callPackage ../applications/window-managers/wio { };
+
   whitebox-tools = callPackage ../applications/gis/whitebox-tools {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -24948,7 +25294,9 @@ in
     gtk = gtk2;
   };
 
-  x11basic = callPackage ../development/compilers/x11basic { };
+  x11basic = callPackage ../development/compilers/x11basic {
+    autoconf = buildPackages.autoconf269;
+  };
 
   x11vnc = callPackage ../tools/X11/x11vnc { };
 
@@ -25121,6 +25469,8 @@ in
 
   xkb-switch = callPackage ../tools/X11/xkb-switch { };
 
+  xkb-switch-i3 = callPackage ../tools/X11/xkb-switch-i3 { };
+
   xkblayout-state = callPackage ../applications/misc/xkblayout-state { };
 
   xlife = callPackage ../applications/graphics/xlife { };
@@ -25235,7 +25585,7 @@ in
 
   zam-plugins = callPackage ../applications/audio/zam-plugins { };
 
-  zanshin = libsForQt514.callPackage ../applications/office/zanshin {
+  zanshin = libsForQt5.callPackage ../applications/office/zanshin {
     boost = boost160;
   };
 
@@ -25253,7 +25603,9 @@ in
 
   zeronet = callPackage ../applications/networking/p2p/zeronet { };
 
-  zexy = callPackage ../applications/audio/pd-plugins/zexy  { };
+  zexy = callPackage ../applications/audio/pd-plugins/zexy {
+    autoconf = buildPackages.autoconf269;
+  };
 
   zgrviewer = callPackage ../applications/graphics/zgrviewer {};
 
@@ -25377,7 +25729,10 @@ in
   nbxplorer = callPackage ../applications/blockchains/nbxplorer { };
 
   pivx = libsForQt5.callPackage ../applications/blockchains/pivx.nix { withGui = true; };
-  pivxd = callPackage ../applications/blockchains/pivx.nix { withGui = false; };
+  pivxd = callPackage ../applications/blockchains/pivx.nix {
+    withGui = false;
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   ethabi = callPackage ../applications/blockchains/ethabi.nix { };
 
@@ -25452,6 +25807,7 @@ in
   anki = python3Packages.callPackage ../games/anki {
     inherit (darwin.apple_sdk.frameworks) CoreAudio;
   };
+  anki-bin = callPackage ../games/anki/bin.nix { buildFHSUserEnv = buildFHSUserEnvBubblewrap; };
 
   armagetronad = callPackage ../games/armagetronad { };
 
@@ -25525,6 +25881,10 @@ in
 
   chocolateDoom = callPackage ../games/chocolate-doom { };
 
+  clonehero-unwrapped = pkgs.callPackage ../games/clonehero { };
+
+  clonehero = pkgs.callPackage ../games/clonehero/fhs-wrapper.nix { };
+
   crispyDoom = callPackage ../games/crispy-doom { };
 
   cri-o = callPackage ../applications/virtualization/cri-o/wrapper.nix { };
@@ -25573,7 +25933,7 @@ in
 
   dhewm3 = callPackage ../games/dhewm3 {};
 
-  digikam = libsForQt514.callPackage ../applications/graphics/digikam {};
+  digikam = libsForQt5.callPackage ../applications/graphics/digikam {};
 
   displaycal = callPackage ../applications/graphics/displaycal {};
 
@@ -25655,7 +26015,10 @@ in
 
   freecell-solver = callPackage ../games/freecell-solver { };
 
-  freeciv = callPackage ../games/freeciv { qt5 = qt514; };
+  freeciv = callPackage ../games/freeciv {
+    autoreconfHook = buildPackages.autoreconfHook269;
+    qt5 = qt514;
+  };
 
   freeciv_gtk = freeciv.override {
     gtkClient = true;
@@ -25831,6 +26194,8 @@ in
 
   mari0 = callPackage ../games/mari0 { };
 
+  manaplus = callPackage ../games/manaplus { };
+
   mars = callPackage ../games/mars { };
 
   megaglest = callPackage ../games/megaglest {};
@@ -26013,6 +26378,8 @@ in
 
   quantumminigolf = callPackage ../games/quantumminigolf {};
 
+  r2mod_cli = callPackage ../games/r2mod_cli { };
+
   racer = callPackage ../games/racer { };
 
   redeclipse = callPackage ../games/redeclipse { };
@@ -26107,13 +26474,14 @@ in
   };
 
   # solarus and solarus-quest-editor must use the same version of Qt.
-  solarus = libsForQt514.callPackage ../games/solarus { };
-  solarus-quest-editor = libsForQt514.callPackage ../development/tools/solarus-quest-editor { };
+  solarus = libsForQt5.callPackage ../games/solarus { };
+  solarus-quest-editor = libsForQt5.callPackage ../development/tools/solarus-quest-editor { };
 
   # You still can override by passing more arguments.
   space-orbit = callPackage ../games/space-orbit { };
 
   spring = callPackage ../games/spring {
+    asciidoc = asciidoc-full;
     boost = boost155;
   };
 
@@ -26138,13 +26506,10 @@ in
 
   steamcmd = steamPackages.steamcmd;
 
-  protontricks = callPackage ../tools/package-management/protontricks {
-    inherit (python3Packages) buildPythonApplication pytest setuptools_scm vdf;
+  protontricks = python3Packages.callPackage ../tools/package-management/protontricks {
+    inherit steam-run;
+    inherit winetricks;
     inherit (gnome3) zenity;
-    wine = wineWowPackages.minimal;
-    winetricks = winetricks.override {
-      wine = wineWowPackages.minimal;
-    };
   };
 
   stepmania = callPackage ../games/stepmania {
@@ -26455,12 +26820,9 @@ in
   lumina = recurseIntoAttrs (callPackage ../desktops/lumina { });
 
   lxqt = recurseIntoAttrs (import ../desktops/lxqt {
-    # TODO: Update these to qt515 at some point. When doing it, please remove
-    # the choice of libsForQt5*.sddm in sddm's module.
-    qt5 = qt514;
-    libsForQt5 = libsForQt514;
     inherit pkgs;
     inherit (lib) makeScope;
+    inherit qt5 libsForQt5;
   });
 
   mate = recurseIntoAttrs (callPackage ../desktops/mate { });
@@ -26495,6 +26857,8 @@ in
     let
       mkPlasma5 = import ../desktops/plasma-5;
       attrs = {
+        # ATTN: The Qt version used in the NixOS Plasma module must be updated
+        # whenever this changes!
         inherit libsForQt5;
         inherit lib fetchurl;
         gconf = gnome2.GConf;
@@ -26635,7 +26999,9 @@ in
     neuron-version = neuron.version;
   };
 
-  kallisto = callPackage ../applications/science/biology/kallisto { };
+  kallisto = callPackage ../applications/science/biology/kallisto {
+    autoconf = buildPackages.autoconf269;
+  };
 
   kssd = callPackage ../applications/science/biology/kssd { };
 
@@ -27297,7 +27663,7 @@ in
     ecl = null;
   };
   maxima-ecl = maxima.override {
-    ecl = ecl_16_1_2;
+    inherit ecl;
     ecl-fasl = true;
     sbcl = null;
   };
@@ -27352,6 +27718,7 @@ in
   boinc = callPackage ../applications/science/misc/boinc { };
 
   celestia = callPackage ../applications/science/astronomy/celestia {
+    autoreconfHook = buildPackages.autoreconfHook269;
     lua = lua5_1;
     inherit (pkgs.gnome2) gtkglext;
   };
@@ -27408,6 +27775,8 @@ in
 
   stellarium = libsForQt5.callPackage ../applications/science/astronomy/stellarium { };
 
+  stellarsolver = libsForQt5.callPackage ../development/libraries/stellarsolver { };
+
   astrolabe-generator = callPackage ../applications/science/astronomy/astrolabe-generator { };
 
   tulip = callPackage ../applications/science/misc/tulip {
@@ -27479,6 +27848,8 @@ in
 
   betaflight-configurator = callPackage ../applications/science/robotics/betaflight-configurator { };
 
+  mission-planner = callPackage ../applications/science/robotics/mission-planner { };
+
   ### MISC
 
   acpilight = callPackage ../misc/acpilight { };
@@ -28300,6 +28671,8 @@ in
 
   snscrape = with python3Packages; toPythonApplication snscrape;
 
+  soundmodem = callPackage ../applications/radio/soundmodem {};
+
   soundOfSorting = callPackage ../misc/sound-of-sorting { };
 
   sourceAndTags = callPackage ../misc/source-and-tags {
@@ -28430,6 +28803,8 @@ in
     giflib = giflib_4_1;
   };
 
+  ViennaRNA = callPackage ../applications/science/molecular-dynamics/viennarna { };
+
   viewnior = callPackage ../applications/graphics/viewnior { };
 
   vimUtils = callPackage ../misc/vim-plugins/vim-utils.nix { };
@@ -28611,6 +28986,10 @@ in
 
   yaxg = callPackage ../tools/graphics/yaxg {};
 
+  yuzu = libsForQt5.callPackage ../misc/emulators/yuzu {
+    stdenv = gcc10Stdenv;
+  };
+
   zap = callPackage ../tools/networking/zap { };
 
   zigbee2mqtt = callPackage ../servers/zigbee2mqtt { };
@@ -28672,8 +29051,6 @@ in
 
   mpvc = callPackage ../applications/misc/mpvc { };
 
-  aucdtect = callPackage ../tools/audio/aucdtect { };
-
   togglesg-download = callPackage ../tools/misc/togglesg-download { };
 
   discord = import ../applications/networking/instant-messengers/discord {
@@ -28741,7 +29118,7 @@ in
   ghc-standalone-archive = callPackage ../os-specific/darwin/ghc-standalone-archive { inherit (darwin) cctools; };
 
   vdr = callPackage ../applications/video/vdr { };
-  vdrPlugins = recurseIntoAttrs (callPackages ../applications/video/vdr/plugins.nix { });
+  vdrPlugins = recurseIntoAttrs (callPackage ../applications/video/vdr/plugins.nix { });
   wrapVdr = callPackage ../applications/video/vdr/wrapper.nix {};
 
   chrome-export = callPackage ../tools/misc/chrome-export {};
@@ -28838,6 +29215,8 @@ in
     gcc-armhf-embedded = pkgsCross.armhf-embedded.buildPackages.gcc;
   };
 
+  new-session-manager = callPackage ../applications/audio/new-session-manager { };
+
   newlib = callPackage ../development/misc/newlib { };
   newlibCross = callPackage ../development/misc/newlib {
     stdenv = crossLibcStdenv;
@@ -28917,6 +29296,8 @@ in
 
   navidrome = callPackage ../servers/misc/navidrome {};
 
+  zalgo = callPackage ../tools/misc/zalgo { };
+
   zettlr = callPackage ../applications/misc/zettlr { };
 
   unifi-poller = callPackage ../servers/monitoring/unifi-poller {};
diff --git a/pkgs/top-level/beam-packages.nix b/pkgs/top-level/beam-packages.nix
index 14399d7ac95..52268276a03 100644
--- a/pkgs/top-level/beam-packages.nix
+++ b/pkgs/top-level/beam-packages.nix
@@ -1,4 +1,4 @@
-{ callPackage, wxGTK30, openssl_1_0_2 }:
+{ callPackage, wxGTK30, openssl_1_0_2, buildPackages }:
 
 rec {
   lib = callPackage ../development/beam-modules/lib.nix {};
@@ -20,6 +20,7 @@ rec {
       wxGTK = wxGTK30;
       # Can be enabled since the bug has been fixed in https://github.com/erlang/otp/pull/2508
       parallelBuild = true;
+      autoconf = buildPackages.autoconf269;
     };
     erlangR23_odbc = erlangR23.override { odbcSupport = true; };
     erlangR23_javac = erlangR23.override { javacSupport = true; };
@@ -33,6 +34,7 @@ rec {
       wxGTK = wxGTK30;
       # Can be enabled since the bug has been fixed in https://github.com/erlang/otp/pull/2508
       parallelBuild = true;
+      autoconf = buildPackages.autoconf269;
     };
     erlangR22_odbc = erlangR22.override { odbcSupport = true; };
     erlangR22_javac = erlangR22.override { javacSupport = true; };
@@ -44,6 +46,7 @@ rec {
     # R21
     erlangR21 = lib.callErlang ../development/interpreters/erlang/R21.nix {
       wxGTK = wxGTK30;
+      autoconf = buildPackages.autoconf269;
     };
     erlangR21_odbc = erlangR21.override { odbcSupport = true; };
     erlangR21_javac = erlangR21.override { javacSupport = true; };
@@ -55,6 +58,7 @@ rec {
     # R20
     erlangR20 = lib.callErlang ../development/interpreters/erlang/R20.nix {
       wxGTK = wxGTK30;
+      autoconf = buildPackages.autoconf269;
     };
     erlangR20_odbc = erlangR20.override { odbcSupport = true; };
     erlangR20_javac = erlangR20.override { javacSupport = true; };
@@ -67,6 +71,7 @@ rec {
     erlangR19 = lib.callErlang ../development/interpreters/erlang/R19.nix {
       wxGTK = wxGTK30;
       openssl = openssl_1_0_2;
+      autoconf = buildPackages.autoconf269;
     };
     erlangR19_odbc = erlangR19.override { odbcSupport = true; };
     erlangR19_javac = erlangR19.override { javacSupport = true; };
@@ -79,6 +84,7 @@ rec {
     erlangR18 = lib.callErlang ../development/interpreters/erlang/R18.nix {
       wxGTK = wxGTK30;
       openssl = openssl_1_0_2;
+      autoconf = buildPackages.autoconf269;
     };
     erlangR18_odbc = erlangR18.override { odbcSupport = true; };
     erlangR18_javac = erlangR18.override { javacSupport = true; };
@@ -89,6 +95,7 @@ rec {
 
     # Basho fork, using custom builder.
     erlang_basho_R16B02 = lib.callErlang ../development/interpreters/erlang/R16B02-basho.nix {
+      autoconf = buildPackages.autoconf269;
     };
     erlang_basho_R16B02_odbc = erlang_basho_R16B02.override {
       odbcSupport = true;
diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix
index d044ed80048..8075b7da4f5 100644
--- a/pkgs/top-level/emacs-packages.nix
+++ b/pkgs/top-level/emacs-packages.nix
@@ -4,7 +4,7 @@
 #
 # Recommended: simply use `emacsWithPackages` with the packages you want.
 #
-# Alterative: use `emacs`, install everything to a system or user profile
+# Alternative: use `emacs`, install everything to a system or user profile
 # and then add this at the start your `init.el`:
 /*
   (require 'package)
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index 2d25ea149a9..46e222261fc 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -104,6 +104,16 @@ in {
       buildLlvmPackages = buildPackages.llvmPackages_9;
       llvmPackages = pkgs.llvmPackages_9;
     };
+    ghc8103 = callPackage ../development/compilers/ghc/8.10.3.nix {
+      # aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
+      bootPkgs = if stdenv.isAarch64 || stdenv.isAarch32 then
+          packages.ghc8102BinaryMinimal
+        else
+          packages.ghc865Binary;
+      inherit (buildPackages.python3Packages) sphinx;
+      buildLlvmPackages = buildPackages.llvmPackages_9;
+      llvmPackages = pkgs.llvmPackages_9;
+    };
     ghc901 = callPackage ../development/compilers/ghc/9.0.1.nix {
       bootPkgs = packages.ghc8102Binary;
       inherit (buildPackages.python3Packages) sphinx;
@@ -206,6 +216,11 @@ in {
       ghc = bh.compiler.ghc8102;
       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
     };
+    ghc8103 = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc8103;
+      ghc = bh.compiler.ghc8103;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
+    };
     ghc901 = callPackage ../development/haskell-modules {
       buildHaskellPackages = bh.packages.ghc901;
       ghc = bh.compiler.ghc901;
diff --git a/pkgs/top-level/haxe-packages.nix b/pkgs/top-level/haxe-packages.nix
index 06b82a478a8..a3b4fd33256 100644
--- a/pkgs/top-level/haxe-packages.nix
+++ b/pkgs/top-level/haxe-packages.nix
@@ -61,8 +61,8 @@ let
 
     hxcpp = buildHaxeLib rec {
       libname = "hxcpp";
-      version = "3.4.64";
-      sha256 = "04gyjm6wqmsm0ifcfkxmq1yv8xrfzys3z5ajqnvvjrnks807mw8q";
+      version = "4.1.15";
+      sha256 = "1ybxcvwi4655563fjjgy6xv5c78grjxzadmi3l1ghds48k1rh50p";
       postFixup = ''
         for f in $out/lib/haxe/${withCommas libname}/${withCommas version}/{,project/libs/nekoapi/}bin/Linux{,64}/*; do
           chmod +w "$f"
diff --git a/pkgs/top-level/lua-packages.nix b/pkgs/top-level/lua-packages.nix
index d120e9f7a7f..d2410e2eef3 100644
--- a/pkgs/top-level/lua-packages.nix
+++ b/pkgs/top-level/lua-packages.nix
@@ -134,13 +134,13 @@ with self; {
 
   vicious = toLuaModule(stdenv.mkDerivation rec {
     pname = "vicious";
-    version = "2.3.1";
+    version = "2.5.0";
 
     src = fetchFromGitHub {
       owner = "Mic92";
       repo = "vicious";
       rev = "v${version}";
-      sha256 = "1yzhjn8rsvjjsfycdc993ms6jy2j5jh7x3r2ax6g02z5n0anvnbx";
+      sha256 = "0lb90334mz0my8ydsmnsnkki0xr58kinsg0hf9d6k4b0vjfi0r0a";
     };
 
     buildInputs = [ lua ];
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index 6fe157d2ea2..0615fe128bb 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -34,6 +34,8 @@ let
 
     apron = callPackage ../development/ocaml-modules/apron { };
 
+    arp = callPackage ../development/ocaml-modules/arp { };
+
     asn1-combinators = callPackage ../development/ocaml-modules/asn1-combinators { };
 
     astring = callPackage ../development/ocaml-modules/astring { };
@@ -115,7 +117,6 @@ let
     bin_prot_p4 = callPackage ../development/ocaml-modules/bin_prot { };
 
     bisect_ppx = callPackage ../development/ocaml-modules/bisect_ppx { };
-    bisect_ppx-ocamlbuild = callPackage ../development/ocaml-modules/bisect_ppx-ocamlbuild { };
 
     ocaml_cairo = callPackage ../development/ocaml-modules/ocaml-cairo { };
 
@@ -159,6 +160,8 @@ let
 
     cppo = callPackage ../development/tools/ocaml/cppo { };
 
+    cppo_ocamlbuild = callPackage ../development/tools/ocaml/cppo/ocamlbuild.nix { };
+
     cpu = callPackage ../development/ocaml-modules/cpu { };
 
     cpuid = callPackage ../development/ocaml-modules/cpuid { };
@@ -199,14 +202,30 @@ let
 
     decompress =  callPackage ../development/ocaml-modules/decompress { };
 
+    diet =  callPackage ../development/ocaml-modules/diet { };
+
     digestif =  callPackage ../development/ocaml-modules/digestif { };
 
     dispatch =  callPackage ../development/ocaml-modules/dispatch { };
 
     dns =  callPackage ../development/ocaml-modules/dns { };
 
+    dns-certify =  callPackage ../development/ocaml-modules/dns/certify.nix { };
+
+    dns-cli =  callPackage ../development/ocaml-modules/dns/cli.nix { };
+
     dns-client =  callPackage ../development/ocaml-modules/dns/client.nix { };
 
+    dns-mirage = callPackage ../development/ocaml-modules/dns/mirage.nix { };
+
+    dns-resolver = callPackage ../development/ocaml-modules/dns/resolver.nix { };
+
+    dns-server = callPackage ../development/ocaml-modules/dns/server.nix { };
+
+    dns-stub = callPackage ../development/ocaml-modules/dns/stub.nix { };
+
+    dns-tsig = callPackage ../development/ocaml-modules/dns/tsig.nix { };
+
     dolmen =  callPackage ../development/ocaml-modules/dolmen { };
 
     dolog = callPackage ../development/ocaml-modules/dolog { };
@@ -270,6 +289,8 @@ let
 
     estring = callPackage ../development/ocaml-modules/estring { };
 
+    ethernet = callPackage ../development/ocaml-modules/ethernet { };
+
     ezjsonm = callPackage ../development/ocaml-modules/ezjsonm { };
 
     ezxmlm = callPackage ../development/ocaml-modules/ezxmlm { };
@@ -407,6 +428,8 @@ let
 
     irmin = callPackage ../development/ocaml-modules/irmin { };
 
+    irmin-chunk = callPackage ../development/ocaml-modules/irmin/chunk.nix { };
+
     irmin-fs = callPackage ../development/ocaml-modules/irmin/fs.nix { };
 
     irmin-git = callPackage ../development/ocaml-modules/irmin/git.nix { };
@@ -501,6 +524,8 @@ let
 
     lwt_camlp4 = callPackage ../development/ocaml-modules/lwt/camlp4.nix { };
 
+    lwt-dllist = callPackage ../development/ocaml-modules/lwt-dllist { };
+
     lwt_log = callPackage ../development/ocaml-modules/lwt_log { };
 
     lwt_ppx = callPackage ../development/ocaml-modules/lwt/ppx.nix { };
@@ -543,6 +568,10 @@ let
       inherit (pkgs) gnuplot;
     };
 
+    mew = callPackage ../development/ocaml-modules/mew { };
+
+    mew_vi = callPackage ../development/ocaml-modules/mew_vi { };
+
     mezzo = callPackage ../development/compilers/mezzo { };
 
     minisat = callPackage ../development/ocaml-modules/minisat { };
@@ -551,6 +580,12 @@ let
 
     mirage-block = callPackage ../development/ocaml-modules/mirage-block { };
 
+    mirage-block-combinators = callPackage ../development/ocaml-modules/mirage-block/combinators.nix { };
+
+    mirage-block-ramdisk = callPackage ../development/ocaml-modules/mirage-block-ramdisk { };
+
+    mirage-block-unix = callPackage ../development/ocaml-modules/mirage-block-unix { };
+
     mirage-bootvar-unix = callPackage ../development/ocaml-modules/mirage-bootvar-unix { };
 
     mirage-channel = callPackage ../development/ocaml-modules/mirage-channel { };
@@ -561,12 +596,16 @@ let
 
     mirage-console = callPackage ../development/ocaml-modules/mirage-console { };
 
+    mirage-console-unix = callPackage ../development/ocaml-modules/mirage-console/unix.nix { };
+
     mirage-crypto = callPackage ../development/ocaml-modules/mirage-crypto { };
 
     mirage-crypto-pk = callPackage ../development/ocaml-modules/mirage-crypto/pk.nix { };
 
     mirage-crypto-rng = callPackage ../development/ocaml-modules/mirage-crypto/rng.nix { };
 
+    mirage-crypto-rng-async = callPackage ../development/ocaml-modules/mirage-crypto/rng-async.nix { };
+
     mirage-crypto-rng-mirage = callPackage ../development/ocaml-modules/mirage-crypto/rng-mirage.nix { };
 
     mirage-device = callPackage ../development/ocaml-modules/mirage-device { };
@@ -583,6 +622,8 @@ let
 
     mirage-logs = callPackage ../development/ocaml-modules/mirage-logs { };
 
+    mirage-nat = callPackage ../development/ocaml-modules/mirage-nat { };
+
     mirage-net = callPackage ../development/ocaml-modules/mirage-net { };
 
     mirage-profile = callPackage ../development/ocaml-modules/mirage-profile { };
@@ -591,6 +632,8 @@ let
 
     mirage-random = callPackage ../development/ocaml-modules/mirage-random { };
 
+    mirage-random-test = callPackage ../development/ocaml-modules/mirage-random-test { };
+
     mirage-runtime = callPackage ../development/ocaml-modules/mirage/runtime.nix { };
 
     mirage-stack = callPackage ../development/ocaml-modules/mirage-stack { };
@@ -605,6 +648,8 @@ let
 
     mirage-unix = callPackage ../development/ocaml-modules/mirage-unix { };
 
+    mirage-vnetif = callPackage ../development/ocaml-modules/mirage-vnetif { };
+
     mlgmp =  callPackage ../development/ocaml-modules/mlgmp { };
 
     mlgmpidl =  callPackage ../development/ocaml-modules/mlgmpidl { };
@@ -708,6 +753,8 @@ let
 
     syslog = callPackage ../development/ocaml-modules/syslog { };
 
+    syslog-message = callPackage ../development/ocaml-modules/syslog-message { };
+
     ocaml_text = callPackage ../development/ocaml-modules/ocaml-text { };
 
     ocaml-version = callPackage ../development/ocaml-modules/ocaml-version { };
@@ -788,6 +835,8 @@ let
 
     parse-argv = callPackage ../development/ocaml-modules/parse-argv { };
 
+    pcap-format = callPackage ../development/ocaml-modules/pcap-format { };
+
     pgsolver = callPackage ../development/ocaml-modules/pgsolver { };
 
     phylogenetics = callPackage ../development/ocaml-modules/phylogenetics { };
@@ -826,9 +875,7 @@ let
 
     spacetime_lib = callPackage ../development/ocaml-modules/spacetime_lib { };
 
-    sqlexpr = callPackage ../development/ocaml-modules/sqlexpr {
-      ocaml-migrate-parsetree = ocaml-migrate-parsetree-2-1;
-    };
+    tcpip = callPackage ../development/ocaml-modules/tcpip { };
 
     tsort = callPackage ../development/ocaml-modules/tsort { };
 
@@ -874,10 +921,7 @@ let
 
     pprint = callPackage ../development/ocaml-modules/pprint { };
 
-    ppx_blob =
-      if lib.versionAtLeast ocaml.version "4.02"
-      then callPackage ../development/ocaml-modules/ppx_blob {}
-      else null;
+    ppx_blob = callPackage ../development/ocaml-modules/ppx_blob { };
 
     ppx_cstruct = callPackage ../development/ocaml-modules/cstruct/ppx.nix {};
 
@@ -901,8 +945,6 @@ let
     ppx_irmin = callPackage ../development/ocaml-modules/irmin/ppx.nix {
     };
 
-    ppx_sqlexpr = callPackage ../development/ocaml-modules/sqlexpr/ppx.nix {};
-
     ppx_tools =
       if lib.versionAtLeast ocaml.version "4.02"
       then callPackage ../development/ocaml-modules/ppx_tools {}
@@ -982,6 +1024,8 @@ let
 
     topkg = callPackage ../development/ocaml-modules/topkg { };
 
+    trie = callPackage ../development/ocaml-modules/trie { };
+
     tsdl = callPackage ../development/ocaml-modules/tsdl { };
 
     twt = callPackage ../development/ocaml-modules/twt { };
@@ -1055,29 +1099,32 @@ let
 
     janePackage =
       if lib.versionOlder "4.08" ocaml.version
-      then callPackage ../development/ocaml-modules/janestreet/janePackage_0_13.nix {}
+      then callPackage ../development/ocaml-modules/janestreet/janePackage_0_14.nix {}
       else if lib.versionOlder "4.07" ocaml.version
       then callPackage ../development/ocaml-modules/janestreet/janePackage_0_12.nix {}
       else callPackage ../development/ocaml-modules/janestreet/janePackage.nix {};
 
     janeStreet =
     if lib.versionOlder "4.08" ocaml.version
-    then import ../development/ocaml-modules/janestreet/0.13.nix {
-      inherit ctypes dune-configurator janePackage num octavius ppxlib re zarith;
-      inherit (pkgs) openssl;
+    then import ../development/ocaml-modules/janestreet/0.14.nix {
+      inherit alcotest angstrom angstrom-async base64 cryptokit ctypes
+        dune-configurator faraday inotify janePackage js_of_ocaml
+        js_of_ocaml-ppx lambdasoup magic-mime num octavius ounit
+        ppxlib re tyxml uri-sexp zarith;
+      inherit (pkgs) openssl zstd;
     }
     else if lib.versionOlder "4.07" ocaml.version
     then import ../development/ocaml-modules/janestreet/0.12.nix {
       inherit ctypes janePackage num octavius re;
       inherit (pkgs) openssl;
-      ppxlib = ppxlib.override { legacy = true; };
+      ppxlib = ppxlib.override { version = "0.8.1"; };
     }
     else import ../development/ocaml-modules/janestreet {
       inherit janePackage ocamlbuild angstrom ctypes cryptokit;
       inherit magic-mime num ocaml-migrate-parsetree octavius ounit;
       inherit ppx_deriving re;
       inherit (pkgs) openssl;
-      ppxlib = ppxlib.override { legacy = true; };
+      ppxlib = ppxlib.override { version = "0.8.1"; };
     };
 
     janeStreet_0_9_0 = import ../development/ocaml-modules/janestreet/old.nix {
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 2475b1ab6be..9c19463923f 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -150,6 +150,20 @@ let
     buildInputs = [ pkgs.unzip ];
   };
 
+  AlgorithmLCSS = buildPerlPackage {
+    pname = "Algorithm-LCSS";
+    version = "0.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JF/JFREEMAN/Algorithm-LCSS-0.01.tar.gz";
+      sha256 = "0y0zc3sq283zpv67vy7a3h3dyvjn5svjxwknanmp38a2g36fyz3i";
+    };
+    propagatedBuildInputs = [ AlgorithmDiff ];
+    meta = {
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   AlgorithmMerge = buildPerlPackage {
     pname = "Algorithm-Merge";
     version = "0.08";
@@ -7489,6 +7503,7 @@ let
     };
     nativeBuildInputs = [ buildPackages.pkgconfig ];
     propagatedBuildInputs = [ pkgs.pkgconfig ];
+    doCheck = false; # expects test_glib-2.0.pc in PKG_CONFIG_PATH
     meta = {
       homepage = "http://gtk2-perl.sourceforge.net";
       description = "Simplistic interface to pkg-config";
@@ -8704,8 +8719,13 @@ let
       url = "mirror://cpan/authors/id/X/XA/XAOC/Glib-Object-Introspection-0.048.tar.gz";
       sha256 = "01dx5w6r4nl3rgnz7wvgvqfaa48xmzy90p95d5k6315q44610kx6";
     };
+    checkInputs = [ pkgs.cairo ];
     propagatedBuildInputs = [ pkgs.gobject-introspection Glib ];
     meta = {
+      broken = true; # TODO: tests failing because "failed to load libregress.so"
+      # see https://github.com/NixOS/nixpkgs/pull/68115
+      # and https://github.com/NixOS/nixpkgs/issues/68116
+      # adding pkgs.gnome3.gjs does not fix it
       description = "Dynamically create Perl language bindings";
       license = stdenv.lib.licenses.lgpl2Plus;
     };
@@ -12558,10 +12578,10 @@ let
 
   MetaCPANClient = buildPerlPackage {
     pname = "MetaCPAN-Client";
-    version = "2.028000";
+    version = "2.029000";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MI/MICKEY/MetaCPAN-Client-2.028000.tar.gz";
-      sha256 = "1fcafd1504e838ea37fa1769c751e096fe6ac7bba41c5f62959b156ea27d319a";
+      url = "mirror://cpan/authors/id/M/MI/MICKEY/MetaCPAN-Client-2.029000.tar.gz";
+      sha256 = "0z75qzrr6r9ijp469majavq8la2jbgn1dq02vdm5m6ip7f887n65";
     };
 
     # Most tests are online, so we only include offline tests
@@ -13499,6 +13519,22 @@ let
     };
   };
 
+  MojoSAML = buildPerlModule {
+    pname = "Mojo-SAML";
+    version = "0.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JB/JBERGER/Mojo-SAML-0.07.tar.gz";
+      sha256 = "03biykpz281z9nmd846jlxwzbaqlqwvh987aw9spl7bgvfn4rhkj";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+    propagatedBuildInputs = [ CryptOpenSSLRSA CryptOpenSSLX509 DataGUID Mojolicious XMLCanonicalizeXML ];
+    meta = {
+      description = "A SAML2 toolkit using the Mojo toolkit";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   MojoSQLite = buildPerlModule {
     pname = "Mojo-SQLite";
     version = "3.004";
@@ -13581,6 +13617,24 @@ let
     };
   };
 
+  MojoUserAgentCached = buildPerlPackage {
+    pname = "Mojo-UserAgent-Cached";
+    version = "1.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NI/NICOMEN/Mojo-UserAgent-Cached-1.12.tar.gz";
+      sha256 = "08pa3sz63sq2y3g3lbhy2msbnx0myb2igmmc28cm3kaznryvsgwm";
+    };
+    buildInputs = [ ModuleInstall ];
+    propagatedBuildInputs = [ AlgorithmLCSS CHI DataSerializer DevelStackTrace Mojolicious Readonly StringTruncate ];
+    doCheck = !stdenv.isDarwin;
+    meta = {
+      homepage = "https://github.com/nicomen/mojo-useragent-cached";
+      description = "Caching, Non-blocking I/O HTTP, Local file and WebSocket user agent";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   MonitoringPlugin = buildPerlPackage {
     pname = "Monitoring-Plugin";
     version = "0.40";
@@ -22888,6 +22942,21 @@ let
     };
   };
 
+  XMLCanonicalizeXML = buildPerlPackage {
+    pname = "XML-CanonicalizeXML";
+    version = "0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SJ/SJZASADA/XML-CanonicalizeXML-0.10.tar.gz";
+      sha256 = "1vl6wbqmq91mc0hkgfwlndbxcv2jm01hj7kpzprw3d6bh144ca77";
+    };
+    buildInputs = [ pkgs.libxml2 ];
+    meta = {
+      description = "Perl extension for inclusive (1.0 and 1.1) and exclusive canonicalization of XML using libxml2";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   XMLDescent = buildPerlModule {
     pname = "XML-Descent";
     version = "1.04";
diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix
index d5bebb9bd84..cc8ba346ae5 100644
--- a/pkgs/top-level/php-packages.nix
+++ b/pkgs/top-level/php-packages.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, pkgs, fetchgit, php, autoconf, pkgconfig, re2c
+{ stdenv, lib, pkgs, fetchgit, phpPackage, autoconf, pkgconfig, re2c
 , gettext, bzip2, curl, libxml2, openssl, gmp, icu64, oniguruma, libsodium
 , html-tidy, libzip, zlib, pcre, pcre2, libxslt, aspell, openldap, cyrus_sasl
 , uwimap, pam, libiconv, enchant1, libXpm, gd, libwebp, libjpeg, libpng
@@ -6,7 +6,7 @@
 , readline, rsync, fetchpatch, valgrind
 }:
 
-let
+lib.makeScope pkgs.newScope (self: with self; {
   buildPecl = import ../build-support/build-pecl.nix {
     php = php.unwrapped;
     inherit lib;
@@ -21,15 +21,10 @@ let
 
   pcre' = if (lib.versionAtLeast php.version "7.3") then pcre2 else pcre;
 
-  callPackage = pkgs.newScope {
-    inherit mkDerivation php buildPecl pcre';
-  };
-in
-{
-  inherit buildPecl;
+  php = phpPackage;
 
   # This is a set of interactive tools based on PHP.
-  packages = {
+  tools = {
     box = callPackage ../development/php-packages/box { };
 
     composer = callPackage ../development/php-packages/composer { };
@@ -550,4 +545,4 @@ in
 
     # Produce the final attribute set of all extensions defined.
   in builtins.listToAttrs namedExtensions);
-}
+})
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index ee967f655d6..ad775f0712b 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -167,6 +167,10 @@ in {
 
   adb-shell = callPackage ../development/python-modules/adb-shell { };
 
+  adblock = callPackage ../development/python-modules/adblock {
+    inherit (pkgs.darwin.apple_sdk.frameworks) CoreFoundation Security;
+  };
+
   addic7ed-cli = callPackage ../development/python-modules/addic7ed-cli { };
 
   adguardhome= callPackage ../development/python-modules/adguardhome { };
@@ -221,6 +225,10 @@ in {
 
   aiohttp-swagger = callPackage ../development/python-modules/aiohttp-swagger { };
 
+  aioitertools = callPackage ../development/python-modules/aioitertools { };
+
+  aiobotocore = callPackage ../development/python-modules/aiobotocore { };
+
   aiohue = callPackage ../development/python-modules/aiohue { };
 
   aioimaplib = callPackage ../development/python-modules/aioimaplib { };
@@ -233,12 +241,16 @@ in {
 
   aiolifx-effects = callPackage ../development/python-modules/aiolifx-effects { };
 
+  aiomultiprocess = callPackage ../development/python-modules/aiomultiprocess { };
+
   aiomysql = callPackage ../development/python-modules/aiomysql { };
 
   aionotify = callPackage ../development/python-modules/aionotify { };
 
   aioprocessing = callPackage ../development/python-modules/aioprocessing { };
 
+  aiopulse = callPackage ../development/python-modules/aiopulse { };
+
   aioredis = callPackage ../development/python-modules/aioredis { };
 
   aioresponses = callPackage ../development/python-modules/aioresponses { };
@@ -279,6 +291,8 @@ in {
 
   amazon_kclpy = callPackage ../development/python-modules/amazon_kclpy { };
 
+  ambiclimate = callPackage ../development/python-modules/ambiclimate { };
+
   amply = callPackage ../development/python-modules/amply { };
 
   amqp = callPackage ../development/python-modules/amqp { };
@@ -421,6 +435,8 @@ in {
 
   astropy-helpers = callPackage ../development/python-modules/astropy-helpers { };
 
+  astropy-extension-helpers = callPackage ../development/python-modules/astropy-extension-helpers { };
+
   astroquery = callPackage ../development/python-modules/astroquery { };
 
   asttokens = callPackage ../development/python-modules/asttokens { };
@@ -429,6 +445,8 @@ in {
 
   async_generator = callPackage ../development/python-modules/async_generator { };
 
+  asyncio-dgram = callPackage ../development/python-modules/asyncio-dgram { };
+
   asyncio-throttle = callPackage ../development/python-modules/asyncio-throttle { };
 
   asyncpg = callPackage ../development/python-modules/asyncpg { };
@@ -443,6 +461,8 @@ in {
 
   async-upnp-client = callPackage ../development/python-modules/async-upnp-client { };
 
+  asyncwhois = callPackage ../development/python-modules/asyncwhois { };
+
   atlassian-python-api = callPackage ../development/python-modules/atlassian-python-api { };
 
   atom = callPackage ../development/python-modules/atom { };
@@ -496,6 +516,8 @@ in {
 
   av = callPackage ../development/python-modules/av { inherit (pkgs) pkgconfig; };
 
+  avea = callPackage ../development/python-modules/avea { };
+
   avro3k = callPackage ../development/python-modules/avro3k { };
 
   avro = callPackage ../development/python-modules/avro { };
@@ -504,8 +526,8 @@ in {
 
   awesome-slugify = callPackage ../development/python-modules/awesome-slugify { };
 
+  awkward0 = callPackage ../development/python-modules/awkward0 { };
   awkward = callPackage ../development/python-modules/awkward { };
-  awkward1 = callPackage ../development/python-modules/awkward1 { };
 
   aws-adfs = callPackage ../development/python-modules/aws-adfs { };
 
@@ -595,6 +617,8 @@ in {
 
   azure-mgmt-cosmosdb = callPackage ../development/python-modules/azure-mgmt-cosmosdb { };
 
+  azure-mgmt-databoxedge = callPackage ../development/python-modules/azure-mgmt-databoxedge { };
+
   azure-mgmt-datafactory = callPackage ../development/python-modules/azure-mgmt-datafactory { };
 
   azure-mgmt-datalake-analytics = callPackage ../development/python-modules/azure-mgmt-datalake-analytics { };
@@ -908,6 +932,8 @@ in {
 
   blivet = callPackage ../development/python-modules/blivet { };
 
+  blockchain = callPackage ../development/python-modules/blockchain { };
+
   blockdiag = callPackage ../development/python-modules/blockdiag { };
 
   blockdiagcontrib-cisco = throw "blockdiagcontrib-cisco is not compatible with blockdiag 2.0.0 and has been removed."; # Added 2020-11-29
@@ -1041,7 +1067,9 @@ in {
 
   cachy = callPackage ../development/python-modules/cachy { };
 
-  cadquery = callPackage ../development/python-modules/cadquery { };
+  cadquery = callPackage ../development/python-modules/cadquery {
+    inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa;
+  };
 
   caffe = toPythonModule (pkgs.caffe.override {
     pythonSupport = true;
@@ -1106,6 +1134,8 @@ in {
 
   cement = callPackage ../development/python-modules/cement { };
 
+  connect-box = callPackage ../development/python-modules/connect_box { };
+
   cerberus = callPackage ../development/python-modules/cerberus { };
 
   certbot = callPackage ../development/python-modules/certbot { };
@@ -1175,6 +1205,8 @@ in {
 
   cirq = callPackage ../development/python-modules/cirq { };
 
+  ciscomobilityexpress = callPackage ../development/python-modules/ciscomobilityexpress { };
+
   ciso8601 = callPackage ../development/python-modules/ciso8601 { };
 
   citeproc-py = callPackage ../development/python-modules/citeproc-py { };
@@ -1320,6 +1352,8 @@ in {
 
   confluent-kafka = callPackage ../development/python-modules/confluent-kafka { };
 
+  confuse = callPackage ../development/python-modules/confuse { };
+
   connexion = callPackage ../development/python-modules/connexion { };
 
   consonance = callPackage ../development/python-modules/consonance { };
@@ -1530,6 +1564,8 @@ in {
 
   dbus-python = callPackage ../development/python-modules/dbus { inherit (pkgs) dbus pkgconfig; };
 
+  dbutils = callPackage ../development/python-modules/dbutils { };
+
   dcmstack = callPackage ../development/python-modules/dcmstack { };
 
   ddt = callPackage ../development/python-modules/ddt { };
@@ -1781,6 +1817,8 @@ in {
 
   dm-sonnet = callPackage ../development/python-modules/dm-sonnet { };
 
+  dnachisel = callPackage ../development/python-modules/dnachisel { };
+
   dnslib = callPackage ../development/python-modules/dnslib { };
 
   dnspython = if isPy3k then
@@ -1995,8 +2033,6 @@ in {
 
   exifread = callPackage ../development/python-modules/exifread { };
 
-  extension-helpers = callPackage ../development/python-modules/extension-helpers { };
-
   extras = callPackage ../development/python-modules/extras { };
 
   eyeD3 = callPackage ../development/python-modules/eyed3 { };
@@ -2129,6 +2165,8 @@ in {
 
   flaky = callPackage ../development/python-modules/flaky { };
 
+  flametree = callPackage ../development/python-modules/flametree { };
+
   flammkuchen = callPackage ../development/python-modules/flammkuchen { };
 
   flask-admin = callPackage ../development/python-modules/flask-admin { };
@@ -2432,6 +2470,8 @@ in {
 
   glances = throw "glances has moved to pkgs.glances"; # added 2020-20-28
 
+  glances-api = callPackage ../development/python-modules/glances-api { };
+
   glasgow = callPackage ../development/python-modules/glasgow { };
 
   glob2 = callPackage ../development/python-modules/glob2 { };
@@ -2781,6 +2821,8 @@ in {
 
   hocr-tools = callPackage ../development/python-modules/hocr-tools { };
 
+  hole = callPackage ../development/python-modules/hole { };
+
   holidays = callPackage ../development/python-modules/holidays { };
 
   holoviews = callPackage ../development/python-modules/holoviews { };
@@ -2816,8 +2858,6 @@ in {
 
   html-sanitizer = callPackage ../development/python-modules/html-sanitizer { };
 
-  htmltreediff = callPackage ../development/python-modules/htmltreediff { };
-
   HTSeq = callPackage ../development/python-modules/HTSeq { };
 
   httmock = callPackage ../development/python-modules/httmock { };
@@ -3174,6 +3214,8 @@ in {
 
   jsondiff = callPackage ../development/python-modules/jsondiff { };
 
+  jsonfield = callPackage ../development/python-modules/jsonfield { };
+
   jsonlines = callPackage ../development/python-modules/jsonlines { };
 
   jsonmerge = callPackage ../development/python-modules/jsonmerge { };
@@ -3375,9 +3417,13 @@ in {
 
   lazy-object-proxy = callPackage ../development/python-modules/lazy-object-proxy { };
 
+  ldap = callPackage ../development/python-modules/ldap {
+    inherit (pkgs) openldap cyrus_sasl;
+  };
+
   ldap3 = callPackage ../development/python-modules/ldap3 { };
 
-  ldap = callPackage ../development/python-modules/ldap { inherit (pkgs) openldap cyrus_sasl; };
+  ldapdomaindump = callPackage ../development/python-modules/ldapdomaindump { };
 
   ldappool = callPackage ../development/python-modules/ldappool { };
 
@@ -3512,7 +3558,10 @@ in {
 
   libtmux = callPackage ../development/python-modules/libtmux { };
 
-  libtorrentRasterbar = (toPythonModule (pkgs.libtorrentRasterbar.override { inherit python; })).python;
+  libtorrent-rasterbar = if isPy27 then
+    (toPythonModule (pkgs.libtorrent-rasterbar-1_2_x.override { inherit python; })).python
+  else
+    (toPythonModule (pkgs.libtorrent-rasterbar.override { inherit python; })).python;
 
   libusb1 = callPackage ../development/python-modules/libusb1 { inherit (pkgs) libusb1; };
 
@@ -3563,6 +3612,8 @@ in {
 
   linuxfd = callPackage ../development/python-modules/linuxfd { };
 
+  liquidctl = callPackage ../development/python-modules/liquidctl { };
+
   lirc = disabledIf isPy27 (toPythonModule (pkgs.lirc.override { python3 = python; }));
 
   littleutils = callPackage ../development/python-modules/littleutils { };
@@ -3789,6 +3840,8 @@ in {
 
   mechanize = callPackage ../development/python-modules/mechanize { };
 
+  mediafile = callPackage ../development/python-modules/mediafile { };
+
   meinheld = callPackage ../development/python-modules/meinheld { };
 
   meld3 = callPackage ../development/python-modules/meld3 { };
@@ -4110,6 +4163,8 @@ in {
 
   netcdf4 = callPackage ../development/python-modules/netcdf4 { };
 
+  netdata = callPackage ../development/python-modules/netdata { };
+
   netdisco = callPackage ../development/python-modules/netdisco { };
 
   netifaces = callPackage ../development/python-modules/netifaces { };
@@ -4344,6 +4399,8 @@ in {
 
   openrouteservice = callPackage ../development/python-modules/openrouteservice/default.nix { };
 
+  opensensemap-api = callPackage ../development/python-modules/opensensemap-api { };
+
   opentimestamps = callPackage ../development/python-modules/opentimestamps { };
 
   opentracing = callPackage ../development/python-modules/opentracing { };
@@ -4662,7 +4719,7 @@ in {
     inherit (pkgs.libsForQt5) soqt;
   };
 
-  pkgconfig = callPackage ../development/python-modules/pkgconfig { inherit (pkgs) pkgconfig; };
+  pkgconfig = callPackage ../development/python-modules/pkgconfig { inherit (pkgs) pkg-config; };
 
   pkginfo = callPackage ../development/python-modules/pkginfo { };
 
@@ -4670,10 +4727,14 @@ in {
 
   pysbd = callPackage ../development/python-modules/pysbd { };
 
+  python-codon-tables = callPackage ../development/python-modules/python-codon-tables { };
+
   python-csxcad = callPackage ../development/python-modules/python-csxcad { };
 
   python-openems = callPackage ../development/python-modules/python-openems { };
 
+  python-tado = callPackage ../development/python-modules/python-tado { };
+
   pkutils = callPackage ../development/python-modules/pkutils { };
 
   plac = callPackage ../development/python-modules/plac { };
@@ -5112,6 +5173,8 @@ in {
 
   pyepsg = callPackage ../development/python-modules/pyepsg { };
 
+  pyerfa = callPackage ../development/python-modules/pyerfa { };
+
   pyexcel = callPackage ../development/python-modules/pyexcel { };
 
   pyexcelerator = callPackage ../development/python-modules/pyexcelerator { };
@@ -5242,6 +5305,8 @@ in {
 
   pyhs100 = callPackage ../development/python-modules/pyhs100 { };
 
+  pyi2cflash = callPackage ../development/python-modules/pyi2cflash { };
+
   pyicloud = callPackage ../development/python-modules/pyicloud { };
 
   PyICU = callPackage ../development/python-modules/pyicu { };
@@ -5663,6 +5728,8 @@ in {
 
   pyspice = callPackage ../development/python-modules/pyspice { };
 
+  pyspiflash = callPackage ../development/python-modules/pyspiflash { };
+
   pyspinel = callPackage ../development/python-modules/pyspinel { };
 
   pyspotify = callPackage ../development/python-modules/pyspotify { };
@@ -5671,6 +5738,10 @@ in {
 
   pysptk = callPackage ../development/python-modules/pysptk { };
 
+  pysqlcipher3 = callPackage ../development/python-modules/pysqlcipher3 {
+    inherit (pkgs) sqlcipher;
+  };
+
   pysqlite = callPackage ../development/python-modules/pysqlite { };
 
   pysqueezebox = callPackage ../development/python-modules/pysqueezebox { };
@@ -5697,6 +5768,8 @@ in {
     inherit (pkgs) bash subversion apr aprutil expat neon openssl;
   };
 
+  pysychonaut = callPackage ../development/python-modules/pysychonaut { };
+
   pytabix = callPackage ../development/python-modules/pytabix { };
 
   pytado = callPackage ../development/python-modules/pytado { };
@@ -5958,7 +6031,10 @@ in {
 
   pythonIRClib = callPackage ../development/python-modules/pythonirclib { };
 
-  pythonix = callPackage ../development/python-modules/pythonix { inherit (pkgs) meson pkgconfig; };
+  pythonix = callPackage ../development/python-modules/pythonix {
+    inherit (pkgs) pkg-config;
+    meson = pkgs.meson.override { python3 = self.python; };
+  };
 
   python-jenkins = callPackage ../development/python-modules/python-jenkins { };
 
@@ -6004,6 +6080,8 @@ in {
 
   python-multipart = callPackage ../development/python-modules/python-multipart { };
 
+  python-mystrom = callPackage ../development/python-modules/python-mystrom { };
+
   python-nest = callPackage ../development/python-modules/python-nest { };
 
   pythonnet = callPackage
@@ -6016,11 +6094,15 @@ in {
 
   python-oauth2 = callPackage ../development/python-modules/python-oauth2 { };
 
-  pythonocc-core =
-    toPythonModule (callPackage ../development/python-modules/pythonocc-core { inherit (pkgs.xorg) libX11; });
+  pythonocc-core = toPythonModule (callPackage ../development/python-modules/pythonocc-core {
+    inherit (pkgs.xorg) libX11;
+    inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa;
+  });
 
   python-olm = callPackage ../development/python-modules/python-olm { };
 
+  python-opendata-transport = callPackage ../development/python-modules/python-opendata-transport { };
+
   python_openzwave = callPackage ../development/python-modules/python_openzwave { inherit (pkgs) pkgconfig; };
 
   python-otr = callPackage ../development/python-modules/python-otr { };
@@ -6090,10 +6172,14 @@ in {
 
   python-vlc = callPackage ../development/python-modules/python-vlc { };
 
+  python-whois = callPackage ../development/python-modules/python-whois { };
+
   python-wifi = callPackage ../development/python-modules/python-wifi { };
 
   python-xmp-toolkit = callPackage ../development/python-modules/python-xmp-toolkit { };
 
+  pyeverlights = callPackage ../development/python-modules/pyeverlights { };
+
   pytimeparse = callPackage ../development/python-modules/pytimeparse { };
 
   pytmx = callPackage ../development/python-modules/pytmx { };
@@ -6188,8 +6274,12 @@ in {
 
   pywick = callPackage ../development/python-modules/pywick { };
 
+  pywilight = callPackage ../development/python-modules/pywilight { };
+
   pywinrm = callPackage ../development/python-modules/pywinrm { };
 
+  pywizlight = callPackage ../development/python-modules/pywizlight { };
+
   pyxattr = let
     pyxattr' = callPackage ../development/python-modules/pyxattr { };
     pyxattr_2 = pyxattr'.overridePythonAttrs (oldAttrs: rec {
@@ -6328,6 +6418,8 @@ in {
 
   reedsolo = callPackage ../development/python-modules/reedsolo { };
 
+  reflink = callPackage ../development/python-modules/reflink { };
+
   regex = callPackage ../development/python-modules/regex { };
 
   regional = callPackage ../development/python-modules/regional { };
@@ -6549,6 +6641,10 @@ in {
 
   salmon-mail = callPackage ../development/python-modules/salmon-mail { };
 
+  sane = callPackage ../development/python-modules/sane {
+    inherit (pkgs) saneBackends;
+  };
+
   sampledata = callPackage ../development/python-modules/sampledata { };
 
   samplerate = callPackage ../development/python-modules/samplerate { };
@@ -6579,6 +6675,8 @@ in {
 
   schema = callPackage ../development/python-modules/schema { };
 
+  schiene = callPackage ../development/python-modules/schiene { };
+
   scikit-bio = callPackage ../development/python-modules/scikit-bio { };
 
   scikit-build = callPackage ../development/python-modules/scikit-build { };
@@ -7032,6 +7130,7 @@ in {
 
   sqlitedict = callPackage ../development/python-modules/sqlitedict { };
 
+  sqlite-fts4 = callPackage ../development/python-modules/sqlite-fts4 { };
   sqlite-utils = callPackage ../development/python-modules/sqlite-utils { };
 
   sqlmap = callPackage ../development/python-modules/sqlmap { };
@@ -7202,7 +7301,9 @@ in {
 
   telegram = callPackage ../development/python-modules/telegram { };
 
-  telethon = callPackage ../development/python-modules/telethon { };
+  telethon = callPackage ../development/python-modules/telethon {
+    inherit (pkgs) openssl;
+  };
 
   telethon-session-sqlalchemy = callPackage ../development/python-modules/telethon-session-sqlalchemy { };
 
@@ -7626,9 +7727,9 @@ in {
 
   update-dotdee = callPackage ../development/python-modules/update-dotdee { };
 
-  uproot = callPackage ../development/python-modules/uproot { };
+  uproot3 = callPackage ../development/python-modules/uproot3 { };
 
-  uproot-methods = callPackage ../development/python-modules/uproot-methods { };
+  uproot3-methods = callPackage ../development/python-modules/uproot3-methods { };
 
   uptime = callPackage ../development/python-modules/uptime { };
 
@@ -7704,6 +7805,8 @@ in {
 
   vidstab = callPackage ../development/python-modules/vidstab { };
 
+  ViennaRNA = toPythonModule pkgs.ViennaRNA;
+
   viewstate = callPackage ../development/python-modules/viewstate { };
 
   vine = callPackage ../development/python-modules/vine { };
@@ -7728,6 +7831,8 @@ in {
 
   vobject = callPackage ../development/python-modules/vobject { };
 
+  volkszaehler = callPackage ../development/python-modules/volkszaehler { };
+
   voluptuous = callPackage ../development/python-modules/voluptuous { };
 
   voluptuous-serialize = callPackage ../development/python-modules/voluptuous-serialize { };
@@ -7738,8 +7843,17 @@ in {
 
   vsts-cd-manager = callPackage ../development/python-modules/vsts-cd-manager { };
 
-  vtk = toPythonModule (pkgs.vtk_7.override {
-    inherit (self) python;
+  vtk = self.vtk_7;
+  vtk_7 = toPythonModule (pkgs.vtk_7.override {
+    pythonInterpreter = python;
+    enablePython = true;
+  });
+  vtk_8 = toPythonModule (pkgs.vtk_8.override {
+    pythonInterpreter = python;
+    enablePython = true;
+  });
+  vtk_9 = toPythonModule (pkgs.vtk_9.override {
+    pythonInterpreter = python;
     enablePython = true;
   });
 
@@ -7803,6 +7917,8 @@ in {
 
   webtest = callPackage ../development/python-modules/webtest { };
 
+  webthing = callPackage ../development/python-modules/webthing { };
+
   werkzeug = callPackage ../development/python-modules/werkzeug { };
 
   west = callPackage ../development/python-modules/west { };
@@ -7819,6 +7935,8 @@ in {
 
   whitenoise = callPackage ../development/python-modules/whitenoise { };
 
+  whois = callPackage ../development/python-modules/whois { };
+
   whoosh = callPackage ../development/python-modules/whoosh { };
 
   widgetsnbextension = callPackage ../development/python-modules/widgetsnbextension { };
@@ -7853,6 +7971,8 @@ in {
 
   WSME = callPackage ../development/python-modules/WSME { };
 
+  wsnsimpy = callPackage ../development/python-modules/wsnsimpy { };
+
   wsproto = if (pythonAtLeast "3.6") then
     callPackage ../development/python-modules/wsproto { }
   else
diff --git a/pkgs/top-level/release-alternatives.nix b/pkgs/top-level/release-alternatives.nix
index 7479377bd30..5e309a0129c 100644
--- a/pkgs/top-level/release-alternatives.nix
+++ b/pkgs/top-level/release-alternatives.nix
@@ -9,7 +9,7 @@ let
   blasUsers = [
     # "julia_07" "julia_10" "julia_11" "julia_13" "octave" "octaveFull"
     "fflas-ffpack" "linbox" "R" "ipopt" "hpl" "rspamd" "octopus"
-    "sundials" "sundials_2" "superlu" "suitesparse_5_3" "suitesparse_4_4"
+    "sundials" "superlu" "suitesparse_5_3" "suitesparse_4_4"
     "suitesparse_4_2" "scs" "scalapack" "petsc" "cholmod-extra"
     "arpack" "qrupdate" "libcint" "iml" "globalarrays" "arrayfire" "armadillo"
     "xfitter" "lammps" "plink-ng" "quantum-espresso" "siesta"
diff --git a/pkgs/top-level/static.nix b/pkgs/top-level/static.nix
index 6720a019cbc..48e4618762a 100644
--- a/pkgs/top-level/static.nix
+++ b/pkgs/top-level/static.nix
@@ -108,217 +108,27 @@ in {
       haskellStaticAdapter;
   };
 
-  nghttp2 = super.nghttp2.override {
-    enableApp = false;
-  };
-
-  ncurses = super.ncurses.override {
-    enableStatic = true;
-  };
-  libxml2 = super.libxml2.override ({
-    enableShared = false;
-    enableStatic = true;
-  } // optionalAttrs super.stdenv.hostPlatform.isDarwin {
-    pythonSupport = false;
-  });
   zlib = super.zlib.override {
-    static = true;
-    shared = false;
-    splitStaticOutput = false;
-
     # Don’t use new stdenv zlib because
     # it doesn’t like the --disable-shared flag
     stdenv = super.stdenv;
   };
-  xz = super.xz.override {
-    enableStatic = true;
-  };
-  busybox = super.busybox.override {
-    enableStatic = true;
-  };
-  libiberty = super.libiberty.override {
-    staticBuild = true;
-  };
-  libpfm = super.libpfm.override {
-    enableShared = false;
-  };
-  ipmitool = super.ipmitool.override {
-    static = true;
-  };
-  neon = super.neon.override {
-    static = true;
-    shared = false;
-  };
-  fmt = super.fmt.override {
-    enableShared = false;
-  };
-  gifsicle = super.gifsicle.override {
-    static = true;
-  };
-  bzip2 = super.bzip2.override {
-    linkStatic = true;
-  };
-  optipng = super.optipng.override {
-    static = true;
-  };
-  openblas = super.openblas.override {
-    enableStatic = true;
-    enableShared = false;
-  };
-  mkl = super.mkl.override { enableStatic = true; };
-  nix = super.nix.override { enableStatic = true; };
-  nixUnstable = super.nixUnstable.override { enableStatic = true; };
-  openssl = (super.openssl_1_1.override { static = true; }).overrideAttrs (o: {
+  openssl = super.openssl_1_1.overrideAttrs (o: {
     # OpenSSL doesn't like the `--enable-static` / `--disable-shared` flags.
     configureFlags = (removeUnknownConfigureFlags o.configureFlags);
   });
-  arrow-cpp = super.arrow-cpp.override {
-    enableShared = false;
-  };
   boost = super.boost.override {
-    enableStatic = true;
-    enableShared = false;
-
     # Don’t use new stdenv for boost because it doesn’t like the
     # --disable-shared flag
     stdenv = super.stdenv;
   };
-  thrift = super.thrift.override {
-    static = true;
-    twisted = null;
-  };
-  gmp = super.gmp.override {
-    withStatic = true;
-  };
-  gflags = super.gflags.override {
-    enableShared = false;
-  };
-  cdo = super.cdo.override {
-    enable_all_static = true;
-  };
-  gsm = super.gsm.override {
-    staticSupport = true;
-  };
-  crc32c = super.crc32c.override {
-    staticOnly = true;
-  };
-  parted = super.parted.override {
-    enableStatic = true;
-  };
-  libiconvReal = super.libiconvReal.override {
-    enableShared = false;
-    enableStatic = true;
-  };
   perl = super.perl.override {
     # Don’t use new stdenv zlib because
     # it doesn’t like the --disable-shared flag
     stdenv = super.stdenv;
   };
-  woff2 = super.woff2.override {
-    static = true;
-  };
-  snappy = super.snappy.override {
-    static = true;
-  };
-  lz4 = super.lz4.override {
-    enableShared = false;
-    enableStatic = true;
-  };
-  libressl = super.libressl.override {
-    buildShared = false;
-  };
-  libjpeg_turbo = super.libjpeg_turbo.override {
-    enableStatic = true;
-    enableShared = false;
-  };
-
-  darwin = super.darwin // {
-    libiconv = super.darwin.libiconv.override {
-      enableShared = false;
-      enableStatic = true;
-    };
-  };
-
-  kmod = super.kmod.override {
-    withStatic = true;
-  };
-
-  curl = super.curl.override {
-    # a very sad story: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=439039
-    gssSupport = false;
-  };
-
-  e2fsprogs = super.e2fsprogs.override {
-    shared = false;
-  };
-
-  brotli = super.brotli.override {
-    staticOnly = true;
-  };
-
-  zstd = super.zstd.override {
-    static = true;
-  };
-
-  llvmPackages_8 = super.llvmPackages_8 // {
-    libraries = super.llvmPackages_8.libraries // rec {
-      libcxxabi = super.llvmPackages_8.libraries.libcxxabi.override {
-        enableShared = false;
-      };
-      libcxx = super.llvmPackages_8.libraries.libcxx.override {
-        enableShared = false;
-        inherit libcxxabi;
-      };
-      libunwind = super.llvmPackages_8.libraries.libunwind.override {
-        enableShared = false;
-      };
-    };
-  };
 
   ocaml-ng = self.lib.mapAttrs (_: set:
     if set ? overrideScope' then set.overrideScope' ocamlStaticAdapter else set
   ) super.ocaml-ng;
-
-  python27 = super.python27.override { static = true; };
-  python36 = super.python36.override { static = true; };
-  python37 = super.python37.override { static = true; };
-  python38 = super.python38.override { static = true; };
-  python39 = super.python39.override { static = true; };
-  python3Minimal = super.python3Minimal.override { static = true; };
-
-  # Note: -static doesn’t work on darwin
-  libev = super.libev.override { static = !super.stdenv.hostPlatform.isDarwin; };
-
-  libexecinfo = super.libexecinfo.override { enableShared = false; };
-
-  tree-sitter = super.tree-sitter.override {
-    enableShared = false;
-    enableStatic = true;
-  };
-
-  xorg = super.xorg.overrideScope' (xorgself: xorgsuper: {
-    libX11 = xorgsuper.libX11.overrideAttrs (attrs: {
-      depsBuildBuild = attrs.depsBuildBuild ++ [ (self.buildPackages.stdenv.cc.libc.static or null) ];
-    });
-    xauth = xorgsuper.xauth.overrideAttrs (attrs: {
-      # missing transitive dependencies
-      preConfigure = attrs.preConfigure or "" + ''
-        export NIX_CFLAGS_LINK="$NIX_CFLAGS_LINK -lxcb -lXau -lXdmcp"
-      '';
-    });
-    xdpyinfo = xorgsuper.xdpyinfo.overrideAttrs (attrs: {
-      # missing transitive dependencies
-      preConfigure = attrs.preConfigure or "" + ''
-        export NIX_CFLAGS_LINK="$NIX_CFLAGS_LINK -lXau -lXdmcp"
-      '';
-    });
-    libxcb = xorgsuper.libxcb.overrideAttrs (attrs: {
-      configureFlags = attrs.configureFlags ++ [ "--disable-shared" ];
-    });
-    libXi= xorgsuper.libXi.overrideAttrs (attrs: {
-      configureFlags = attrs.configureFlags ++ [ "--disable-shared" ];
-    });
-  });
-
-  libcap = super.libcap.override { pam = null; };
 }